# core/persistence/coordination.persistence.ts

> 15 lines of code and 2 definitions.

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

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

## Definitions

- `supplyCoordination` (lexical_declaration, line 8, exported)
- `shipped` (lexical_declaration, line 12, exported)

## Contained in

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

## Uses

- [configuration/strings/coordination.strings.ts](https://banes-lab.com/source/build-scripts/configuration/strings/coordination.strings.ts.md)
- [core/persistence/folder.persistence.ts](https://banes-lab.com/source/build-scripts/core/persistence/folder.persistence.ts.md)

## Used by

- [core/coordinators/surface.coordinator.ts](https://banes-lab.com/source/build-scripts/core/coordinators/surface.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)
- [core/persistence](https://banes-lab.com/anatomy/build-scripts/folder-build-scripts-core-persistence.md)

## Source

```typescript
import { join, sep } from "node:path";
import type { FolderSync } from "#types/folder.types";
import { existsSync } from "node:fs";
import { memberMissing } from "#configuration/strings/coordination.strings";
import { shippedEntries } from "#core/loaders/coordination.loader";
import { syncFolder } from "#core/persistence/folder.persistence";

export const supplyCoordination = async function supplyCoordination(from: string, to: string): Promise<FolderSync> {
    if (!existsSync(from)) {
        throw new Error(memberMissing(from));
    }
    const shipped = shippedEntries(from).map((entry) => join(from, entry));
    return syncFolder(from, to, (source) =>
        shipped.some((entry) => source === entry || source.startsWith(entry + sep)),
    );
};
```
