# core/loaders/producer.loader.ts

> 8 lines of code and 2 definitions.

Tree: GovLab Quality
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/quality#file-quality-core-loaders-producer-loader-ts
Source text: https://banes-lab.com/source/quality/core/loaders/producer.loader.ts.txt

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

## Definitions

- `loadProducers` (lexical_declaration, line 7, exported)
- `PRODUCER_SUFFIX` (lexical_declaration, line 5)

## Contained in

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

## Uses

- [core/loaders/folder.loader.ts](https://banes-lab.com/source/quality/core/loaders/folder.loader.ts.md)
- [core/registries/producer.registry.ts](https://banes-lab.com/source/quality/core/registries/producer.registry.ts.md)

## Linked from

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

## Source

```typescript
import type { CatalogProducer } from "#types/catalog.types";
import { importFolder } from "#core/loaders/folder.loader";
import { registeredProducers } from "#core/registries/producer.registry";

const PRODUCER_SUFFIX = ".producer.ts";

export const loadProducers = async function loadProducers(): Promise<CatalogProducer[]> {
    await importFolder("govlab.quality.producers", PRODUCER_SUFFIX);
    return registeredProducers();
};
```
