# core/loaders/coordination.loader.ts

> 19 lines of code and 7 definitions.

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

Listed in [core/loaders](https://banes-lab.com/api/source/build-scripts/core/loaders.md), after [core/loaders/catalog.loader.ts](https://banes-lab.com/source/build-scripts/core/loaders/catalog.loader.ts.md) and before [core/loaders/diagram.loader.ts](https://banes-lab.com/source/build-scripts/core/loaders/diagram.loader.ts.md).

## Definitions

- `listedFiles` (lexical_declaration, line 7)
- `shippedEntries` (lexical_declaration, line 15, exported)
- `MANIFEST` (lexical_declaration, line 4)
- `FILES_KEY` (lexical_declaration, line 5)
- `listed` (lexical_declaration, line 11)
- `manifest` (lexical_declaration, line 16, exported)
- `parsed` (lexical_declaration, line 20, exported)

## Contained in

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

## Linked from

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

## Source

```typescript
import { existsSync, readFileSync } from "node:fs";
import { join } from "node:path";

const MANIFEST = "package.json";
const FILES_KEY = "files";

const listedFiles = function listedFiles(parsed: unknown): string[] {
    if (typeof parsed !== "object" || parsed === null || !(FILES_KEY in parsed)) {
        return [];
    }
    const listed: unknown = parsed[FILES_KEY];
    return Array.isArray(listed) ? listed.filter((entry): entry is string => typeof entry === "string") : [];
};

export const shippedEntries = function shippedEntries(member: string): string[] {
    const manifest = join(member, MANIFEST);
    if (!existsSync(manifest)) {
        return [];
    }
    const parsed: unknown = JSON.parse(readFileSync(manifest, "utf8"));
    return [MANIFEST, ...listedFiles(parsed)];
};
```
