# core/registries/anatomy.registry.ts

> 30 lines of code and 5 definitions.

Tree: Site tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/tree#file-core-registries-anatomy-registry-ts
Source text: https://banes-lab.com/assets/sources/source.aade0fc1f6c29c6cdc9d76472facd741ef79a36b42accc45b0dacedf5e919ca4.generated.txt

## Definitions

- `walkTreeOf` (lexical_declaration, line 25, exported)
- `collectWalks` (lexical_declaration, line 12)
- `ANATOMY_TREES` (lexical_declaration, line 6, exported)
- `walkTrees` (lexical_declaration, line 23)
- `found` (lexical_declaration, line 27, exported)

## Used by

- [core/loaders/walk.loader.ts](https://banes-lab.com/source/tree/core/loaders/walk.loader.ts.md)

## Source

```typescript
import { ANATOMY, BUILD_ANATOMY, COORDINATION_ANATOMY } from "#assets/anatomy.generated";
import type { AnatomyFolder, AnatomyTree } from "#types/anatomy.types";
import { BUILD_TAB, COORDINATION_TAB, TREE_TAB } from "#core/ids/anatomy.ids";
import { qualifiedSnapshot } from "#core/converters/folder.converter";

export const ANATOMY_TREES: readonly AnatomyTree[] = [
    { snapshot: ANATOMY, tab: TREE_TAB },
    { snapshot: qualifiedSnapshot(BUILD_TAB, BUILD_ANATOMY), tab: BUILD_TAB },
    { snapshot: qualifiedSnapshot(COORDINATION_TAB, COORDINATION_ANATOMY), tab: COORDINATION_TAB },
];

const collectWalks = function collectWalks(folder: AnatomyFolder, tab: string, into: Map<string, string>): void {
    for (const ref of [folder.walk, ...folder.files.map((file) => file.walk)]) {
        if (ref !== null && !into.has(ref.vector)) {
            into.set(ref.vector, tab);
        }
    }
    for (const child of folder.folders) {
        collectWalks(child, tab, into);
    }
};

let walkTrees: ReadonlyMap<string, string> | null = null;

export const walkTreeOf = function walkTreeOf(vector: string): string {
    if (walkTrees === null) {
        const found = new Map<string, string>();
        for (const tree of ANATOMY_TREES) {
            collectWalks(tree.snapshot.tree, tree.tab, found);
        }
        walkTrees = found;
    }
    return walkTrees.get(vector) ?? TREE_TAB;
};
```
