core/validators/concept.validator.ts
core/validators/concept.validator.ts is a file in GovLab Context. 17 lines of code and 3 definitions.
import { CONCEPTS, VARIANTS } from "#configuration/constants/concept.constants";
import type { UnresolvedConceptRef, VariantId } from "#types/concept.types";
export const unresolvedConceptRefsOf = function unresolvedConceptRefsOf(
resolve: (ref: string) => boolean,
): UnresolvedConceptRef[] {
return CONCEPTS.flatMap((concept) =>
[concept.home, ...concept.members].filter((ref) => !resolve(ref)).map((ref) => ({ concept: concept.id, ref })),
);
};
export const variantIdsOf = function variantIdsOf(collections: ReadonlyMap<string, readonly string[]>): VariantId[] {
return [...collections].flatMap(([collection, ids]) =>
ids.flatMap((id) => {
const canonical = VARIANTS.get(id);
return canonical === undefined ? [] : [{ canonical, collection, id }];
}),
);
};