# core/adapters/markdown.adapter.ts

> 14 lines of code and 7 definitions.

Tree: GovLab Docs
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/docs#file-docs-core-adapters-markdown-adapter-ts
Source text: https://banes-lab.com/source/docs/core/adapters/markdown.adapter.ts.txt

Listed in [core/adapters](https://banes-lab.com/api/source/docs/core/adapters.md), after [core/adapters/diagram.adapter.ts](https://banes-lab.com/source/docs/core/adapters/diagram.adapter.ts.md) and before [core/adapters/shell.adapter.ts](https://banes-lab.com/source/docs/core/adapters/shell.adapter.ts.md).

## Definitions

- `OVERRIDES_KEY` (lexical_declaration, line 5)
- `MARKDOWN_PARSER` (lexical_declaration, line 6)
- `resolveOptions` (lexical_declaration, line 8)
- `resolved` (lexical_declaration, line 9)
- `base` (lexical_declaration, line 10)
- `OPTIONS` (lexical_declaration, line 14)
- `formatMarkdown` (lexical_declaration, line 16, exported)

## Contained in

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

## Source

```typescript
import { ROOT } from "@ssot/paths";
import { govlabPrettierConfig } from "@govlab/quality/config";
import prettier from "prettier";

const OVERRIDES_KEY = "overrides";
const MARKDOWN_PARSER = "markdown";

const resolveOptions = async function resolveOptions(): Promise<prettier.Options> {
    const resolved = await govlabPrettierConfig(ROOT);
    const base = Object.fromEntries(Object.entries(resolved).filter(([key]) => key !== OVERRIDES_KEY));
    return { ...base, parser: MARKDOWN_PARSER };
};

const OPTIONS = await resolveOptions();

export const formatMarkdown = async function formatMarkdown(markdown: string): Promise<string> {
    return prettier.format(markdown, OPTIONS);
};
```
