core/formatters/canon.reference.formatter.ts

core/formatters/canon.reference.formatter.ts is a file in GovLab Quality. 21 lines of code and 2 definitions.

import { CONCEPT_PREFIX } from "#configuration/constants/canon.constants";

const JSON_INDENT = 4;

export const canonRefsModule = function canonRefsModule(entries: readonly [string, string[]][]): string {
    return `const CANON_REFS = new Map<string, string[]>(${JSON.stringify(entries, null, JSON_INDENT)});

export const isRegisteredConcept = function isRegisteredConcept(concept: string): boolean {
    return CANON_REFS.has(concept);
};

export const canonRefsFor = function canonRefsFor(concepts: readonly string[]): string[] {
    const out: string[] = [];
    for (const concept of concepts) {
        const refs = CANON_REFS.get(concept);
        if (refs) {
            out.push(...refs);
        } else {
            out.push(\`${CONCEPT_PREFIX}\${concept}\`);
        }
    }
    return out;
};
`;
};