# shared/manifests/taxonomy.root.manifest.ts

> 28 lines of code and 11 definitions.

Tree: GovLab Extension Host
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/governance#file-governance-shared-manifests-taxonomy-root-manifest-ts
Source text: https://banes-lab.com/source/governance/shared/manifests/taxonomy.root.manifest.ts.txt

Listed in [shared/manifests](https://banes-lab.com/api/source/governance/shared/manifests.md), after [shared/manifests/taxonomy.manifest.ts](https://banes-lab.com/source/governance/shared/manifests/taxonomy.manifest.ts.md) and before [shared/manifests/verb.manifest.ts](https://banes-lab.com/source/governance/shared/manifests/verb.manifest.ts.md).

## Definitions

- `testMarkerOf` (lexical_declaration, line 23, exported)
- `isTestRoot` (lexical_declaration, line 14, exported)
- `fixtureMarkerOf` (lexical_declaration, line 28, exported)
- `taxonomyRoots` (lexical_declaration, line 6, exported)
- `testMarkers` (lexical_declaration, line 33, exported)
- `{ mirrors: MIRRORS, roots: TAXONOMY_ROOTS }` (lexical_declaration, line 4)
- `mirrorSourceOf` (lexical_declaration, line 10, exported)
- `markerSegmentOf` (lexical_declaration, line 18)
- `segments` (lexical_declaration, line 19)
- `marker` (lexical_declaration, line 29, exported)
- `host` (lexical_declaration, line 34, exported)

## Contained in

- [shared/manifests](https://banes-lab.com/anatomy/governance/folder-governance-shared-manifests.md)

## Uses

- [shared/manifests/taxonomy.manifest.ts](https://banes-lab.com/source/governance/shared/manifests/taxonomy.manifest.ts.md)

## Used by

- [rules/eslint/closure-no-inline-exported-types.eslint.rule.ts](https://banes-lab.com/source/governance/rules/eslint/closure-no-inline-exported-types.eslint.rule.ts.md)
- [shared/analyzers/taxonomy.analyzer.ts](https://banes-lab.com/source/governance/shared/analyzers/taxonomy.analyzer.ts.md)
- [shared/analyzers/taxonomy.coverage.analyzer.ts](https://banes-lab.com/source/governance/shared/analyzers/taxonomy.coverage.analyzer.ts.md)
- [shared/analyzers/taxonomy.tree.analyzer.ts](https://banes-lab.com/source/governance/shared/analyzers/taxonomy.tree.analyzer.ts.md)

## Linked from

- [rules/eslint](https://banes-lab.com/anatomy/governance/folder-governance-rules-eslint.md)
- [shared/analyzers](https://banes-lab.com/anatomy/governance/folder-governance-shared-analyzers.md)
- [shared/manifests](https://banes-lab.com/anatomy/governance/folder-governance-shared-manifests.md)

## Source

```typescript
import { JURISDICTION } from "../registries/taxonomy.registry.ts";
import { vocabularyFor } from "./taxonomy.manifest.ts";

const { mirrors: MIRRORS, roots: TAXONOMY_ROOTS } = JURISDICTION;

export const taxonomyRoots = function taxonomyRoots(): string[] {
    return [...TAXONOMY_ROOTS];
};

export const mirrorSourceOf = function mirrorSourceOf(root?: string): string | undefined {
    return root === undefined ? undefined : MIRRORS.get(root);
};

export const isTestRoot = function isTestRoot(root?: string): boolean {
    return root !== undefined && MIRRORS.has(root);
};

const markerSegmentOf = function markerSegmentOf(basename: string): string {
    const segments = basename.split(vocabularyFor().separator);
    return segments.length > 2 ? (segments.at(-2) ?? "") : "";
};

export const testMarkerOf = function testMarkerOf(basename: string): string | undefined {
    const marker = markerSegmentOf(basename);
    return vocabularyFor().testMarkers.includes(marker) ? marker : undefined;
};

export const fixtureMarkerOf = function fixtureMarkerOf(basename: string, root?: string): string | undefined {
    const marker = markerSegmentOf(basename);
    return vocabularyFor(root).fixtureMarkers.includes(marker) ? marker : undefined;
};

export const testMarkers = function testMarkers(): string[] {
    const host = vocabularyFor();
    return [...host.testMarkers, ...host.fixtureMarkers];
};
```
