# core/registries/representation.registry.ts

> 11 lines of code and 4 definitions.

Tree: GovLab Patterns
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/patterns#file-patterns-core-registries-representation-registry-ts
Source text: https://banes-lab.com/source/patterns/core/registries/representation.registry.ts.txt

Listed in [core/registries](https://banes-lab.com/api/source/patterns/core/registries.md), after [core/registries/pattern.registry.ts](https://banes-lab.com/source/patterns/core/registries/pattern.registry.ts.md).

## Definitions

- `definitionOf` (lexical_declaration, line 9, exported)
- `definedRepresentations` (lexical_declaration, line 13, exported)
- `definitions` (lexical_declaration, line 3)
- `registerRepresentation` (lexical_declaration, line 5, exported)

## Contained in

- [core/registries](https://banes-lab.com/anatomy/patterns/folder-patterns-core-registries.md)

## Used by

- [core/loaders/representation.loader.ts](https://banes-lab.com/source/patterns/core/loaders/representation.loader.ts.md)
- [core/selectors/representation.selector.ts](https://banes-lab.com/source/patterns/core/selectors/representation.selector.ts.md)

## Linked from

- [core/loaders](https://banes-lab.com/anatomy/patterns/folder-patterns-core-loaders.md)
- [core/selectors](https://banes-lab.com/anatomy/patterns/folder-patterns-core-selectors.md)

## Source

```typescript
import type { RepresentationDefinition } from "#types/representation.types";

const definitions = new Map<string, RepresentationDefinition>();

export const registerRepresentation = function registerRepresentation(definition: RepresentationDefinition): void {
    definitions.set(definition.name, definition);
};

export const definitionOf = function definitionOf(name: string): RepresentationDefinition | undefined {
    return definitions.get(name);
};

export const definedRepresentations = function definedRepresentations(): readonly string[] {
    return [...definitions.keys()];
};
```
