# core/guards/catalog.guard.ts

> 10 lines of code and 1 definition.

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

Listed in [core/guards](https://banes-lab.com/api/source/build-scripts/core/guards.md), before [core/guards/site.guard.ts](https://banes-lab.com/source/build-scripts/core/guards/site.guard.ts.md).

## Definitions

- `guardPages` (lexical_declaration, line 5, exported)

## Contained in

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

## Uses

- [configuration/strings/catalog.strings.ts](https://banes-lab.com/source/build-scripts/configuration/strings/catalog.strings.ts.md)

## Used by

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

## Linked from

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

## Source

```typescript
import type { Discovery } from "#types/site.types";
import { RESERVED_SEGMENTS } from "#configuration/constants/catalog.constants";
import { reservedPageId } from "#configuration/strings/catalog.strings";

export const guardPages = function guardPages(discovery: Discovery): void {
    for (const page of discovery.pages) {
        if (RESERVED_SEGMENTS.has(page.id)) {
            throw new Error(reservedPageId(page.id));
        }
    }
};
```
