types/context.types.ts

types/context.types.ts is a file in GovLab Context. 42 lines of code and 3 definitions.

import type { AlgoGrammar, ConcernJoinRow } from "#types/algorithm.types";
import type { ArchRelations, KindDefinition } from "#types/architecture.types";
import type { CheckGaps, CheckedRecord, DeclaredCheck } from "#types/check.types";
import type { CrossFaceIssues, ResolutionIssues } from "#types/validation.types";
import type { Layer, LayerEdge, LayerJoin, TensionResolution } from "#types/layer.types";
import type { Lexicon } from "#types/lexicon.types";
import type { Logger } from "#types/ontology.types";
import type { PagGrammar } from "#types/grammar.types";
import type { ReasonOntology } from "#types/reason.types";

export interface GovlabContextOptions {
    checks?: readonly DeclaredCheck[] | undefined;
    logger?: Logger | undefined;
    canonicalizeId?: ((term: string) => string) | undefined;
}

export interface Faces {
    arch: ArchRelations;
    algo: AlgoGrammar;
    lex: Lexicon;
    pag: PagGrammar;
    reason: ReasonOntology;
    layerJoin: LayerJoin;
}

export interface GovlabContext {
    arch: ArchRelations;
    algo: AlgoGrammar;
    pag: PagGrammar;
    lex: Lexicon;
    reason: ReasonOntology;
    slugify: (name: string) => string;
    checkGaps: () => CheckGaps;
    checkedRecords: () => CheckedRecord[];
    kindTaxonomy: () => readonly KindDefinition[];
    joinConcerns: () => ConcernJoinRow[];
    crossValidate: () => CrossFaceIssues;
    validateResolution: () => ResolutionIssues;
    layers: () => Layer[];
    topology: () => LayerEdge[];
    layerOf: (idOrName: string) => string | null;
    resolutions: () => TensionResolution[];
    resolveTension: (a: string, b: string) => TensionResolution | null;
    resolveRef: (ref: string) => boolean;
}