configuration/schemas/architecture.schema.ts
configuration/schemas/architecture.schema.ts is a file in GovLab Context. 42 lines of code and 3 definitions.
import {
CLOSED,
LABEL,
LABELS,
OPTIONAL_LABEL,
OPTIONAL_LABELS,
OPTIONAL_OBJECT,
OPTIONAL_RECORDS,
OPTIONAL_TEXT,
TEXT,
} from "#configuration/constants/field.constants";
import { REFACTORS_RELATION, VIOLATES_RELATION } from "@govlab/constants";
import { freeRefs, optionalRefs } from "#core/factories/field.factory";
import type { KindSchema } from "#types/field.types";
export const PRINCIPLE_KIND = "principle";
const RELATED = optionalRefs("architecture", "referenced-by");
export const ARCH_SCHEMA: KindSchema = {
aliases: OPTIONAL_LABELS,
canon: OPTIONAL_LABELS,
check: OPTIONAL_OBJECT,
conflicts_with: RELATED,
definition: TEXT,
detected_by: LABELS,
distinctFrom: OPTIONAL_RECORDS,
enables: RELATED,
enforced_by: LABELS,
exemplar: OPTIONAL_OBJECT,
expressedBy: OPTIONAL_LABELS,
formed_by: OPTIONAL_TEXT,
id: OPTIONAL_LABEL,
mandatoryFor: OPTIONAL_LABEL,
measured_by: LABELS,
name: LABEL,
refactored_by: freeRefs(REFACTORS_RELATION),
reinforces: RELATED,
requires: RELATED,
scope: LABELS,
severity: CLOSED,
tensions_with: RELATED,
type: LABEL,
violated_by: freeRefs(VIOLATES_RELATION),
};