# core/formatters/anatomy.formatter.ts

> 33 lines of code and 3 definitions.

Tree: Bane's Lab Build Scripts
Language: typescript
Layer: processing
Canonical: https://banes-lab.com/anatomy/build-scripts#file-build-scripts-core-formatters-anatomy-formatter-ts
Source text: https://banes-lab.com/source/build-scripts/core/formatters/anatomy.formatter.ts.txt

Listed in [core/formatters](https://banes-lab.com/api/source/build-scripts/core/formatters.md), before [core/formatters/catalog.formatter.ts](https://banes-lab.com/source/build-scripts/core/formatters/catalog.formatter.ts.md).

## Definitions

- `renderAnatomyMeasures` (lexical_declaration, line 5, exported)
- `renderAnatomyIndex` (lexical_declaration, line 14, exported)
- `renderAnatomy` (lexical_declaration, line 23, exported)

## Contained in

- [core/formatters](https://banes-lab.com/anatomy/build-scripts/folder-build-scripts-core-formatters.md)

## Used by

- [core/coordinators/anatomy.coordinator.ts](https://banes-lab.com/source/build-scripts/core/coordinators/anatomy.coordinator.ts.md)
- [core/coordinators/link.coordinator.ts](https://banes-lab.com/source/build-scripts/core/coordinators/link.coordinator.ts.md)

## Linked from

- [core/coordinators](https://banes-lab.com/anatomy/build-scripts/folder-build-scripts-core-coordinators.md)

## Source

```typescript
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");
};
```
