core/formatters/anatomy.formatter.ts

core/formatters/anatomy.formatter.ts is a file in Bane's Lab Build Scripts. 33 lines of code and 3 definitions.

import type { AnatomyIndex } from "@banes-lab/web/types/record.types.js";
import type { AnatomyMeasures } from "@banes-lab/web/types/metric.types.js";
import type { DerivedTree } from "#types/anatomy.types";

export const renderAnatomyMeasures = function renderAnatomyMeasures(measures: AnatomyMeasures): string {
    return [
        'import type { AnatomyMeasures } from "#types/metric.types";',
        "",
        `export const ANATOMY_MEASURES: AnatomyMeasures = JSON.parse(${JSON.stringify(JSON.stringify(measures))});`,
        "",
    ].join("\n");
};

export const renderAnatomyIndex = function renderAnatomyIndex(index: AnatomyIndex): string {
    return [
        'import type { AnatomyIndex } from "#types/record.types";',
        "",
        `export const ANATOMY_INDEX: AnatomyIndex = JSON.parse(${JSON.stringify(JSON.stringify(index))});`,
        "",
    ].join("\n");
};

export const renderAnatomy = function renderAnatomy(trees: readonly DerivedTree[]): string {
    return [
        'import type { AnatomySnapshot } from "#types/anatomy.types";',
        "",
        ...trees.flatMap((tree) => [
            `export const ${tree.exportName}: AnatomySnapshot = JSON.parse(${JSON.stringify(JSON.stringify(tree.snapshot))});`,
            "",
        ]),
        "export const ANATOMY_SNAPSHOTS: ReadonlyMap<string, AnatomySnapshot> = new Map([",
        ...trees.map((tree) => `    [${JSON.stringify(tree.tab)}, ${tree.exportName}],`),
        "]);",
        "",
    ].join("\n");
};