# core/emitters/tool.prettier.emitter.ts

> 16 lines of code and 4 definitions.

Tree: GovLab Quality
Language: typescript
Layer: application
Canonical: https://banes-lab.com/anatomy/quality#file-quality-core-emitters-tool-prettier-emitter-ts
Source text: https://banes-lab.com/source/quality/core/emitters/tool.prettier.emitter.ts.txt

Listed in [core/emitters](https://banes-lab.com/api/source/quality/core/emitters.md), after [core/emitters/tool.emitter.ts](https://banes-lab.com/source/quality/core/emitters/tool.emitter.ts.md).

## Definitions

- `emitPrettierConfig` (lexical_declaration, line 5, exported)
- `concernMap` (lexical_declaration, line 8, exported)
- `out` (lexical_declaration, line 9, exported)
- `value` (lexical_declaration, line 11, exported)

## Contained in

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

## Used by

- [core/adapters/tool.prettier.adapter.ts](https://banes-lab.com/source/quality/core/adapters/tool.prettier.adapter.ts.md)

## Linked from

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

## Source

```typescript
import { CONCEPT_TO_PRETTIER_OPTION, PRETTIER_DEFAULTS } from "#configuration/constants/tool.constants";
import type { PrettierEmitPolicy } from "#types/tool.types";
import { resolveConcernMap } from "#core/converters/concern.converter";

export const emitPrettierConfig = function emitPrettierConfig(
    policy: PrettierEmitPolicy = {},
): Record<string, unknown> {
    const concernMap = resolveConcernMap(policy.concerns ?? {});
    const out: Record<string, unknown> = { ...PRETTIER_DEFAULTS, ...policy.base };
    for (const [concept, option] of CONCEPT_TO_PRETTIER_OPTION) {
        const value = concernMap.get(concept)?.value;
        if (value !== undefined) {
            out[option] = value;
        }
    }
    return out;
};
```
