# core/formatters/tab.formatter.ts

> 20 lines of code and 2 definitions.

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

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

## Definitions

- `renderTabs` (lexical_declaration, line 4, exported)
- `renderBakedTabs` (lexical_declaration, line 13, exported)

## Contained in

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

## Used by

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

## Linked from

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

## Source

```typescript
import type { BakedTabs } from "@banes-lab/web/types/vocabulary.types.js";
import type { PageTabs } from "#types/tab.types";

export const renderTabs = function renderTabs(pages: readonly PageTabs[]): string {
    return [
        'import type { PageTabs } from "#types/tab.types";',
        "",
        `export const PAGE_TABS: readonly PageTabs[] = JSON.parse(${JSON.stringify(JSON.stringify(pages))});`,
        "",
    ].join("\n");
};

export const renderBakedTabs = function renderBakedTabs(entries: readonly BakedTabs[]): string {
    return [
        'import type { Tab } from "#types/document.types";',
        "",
        ...entries.flatMap((entry) => [
            `export const ${entry.name}: readonly Tab[] = JSON.parse(${JSON.stringify(JSON.stringify(entry.tabs))});`,
            "",
        ]),
    ].join("\n");
};
```
