# core/converters/document.converter.ts

> 20 lines of code and 3 definitions.

Tree: GovLab Docs
Language: typescript
Layer: processing
Canonical: https://banes-lab.com/anatomy/docs#file-docs-core-converters-document-converter-ts
Source text: https://banes-lab.com/source/docs/core/converters/document.converter.ts.txt

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

## Definitions

- `edgeList` (lexical_declaration, line 4)
- `docNodeOf` (lexical_declaration, line 9, exported)
- `raw` (lexical_declaration, line 5)

## Contained in

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

## Uses

- [core/parsers/metadata.parser.ts](https://banes-lab.com/source/docs/core/parsers/metadata.parser.ts.md)

## Used by

- [core/analyzers/document.analyzer.ts](https://banes-lab.com/source/docs/core/analyzers/document.analyzer.ts.md)
- [core/converters/catalog.converter.ts](https://banes-lab.com/source/docs/core/converters/catalog.converter.ts.md)

## Linked from

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

## Source

```typescript
import type { DocNode } from "#types/document.types";
import { fileTokens } from "#core/parsers/metadata.parser";

const edgeList = function edgeList(fields: Readonly<Record<string, string>>, key: string): string[] {
    const raw = fields[key];
    return typeof raw === "string" ? fileTokens(raw) : [];
};

export const docNodeOf = function docNodeOf(relDoc: string, fields: Readonly<Record<string, string>>): DocNode {
    return {
        concern: fields["concern"] ?? "",
        dependsOn: edgeList(fields, "depends-on"),
        governs: edgeList(fields, "governs"),
        links: edgeList(fields, "links"),
        name: fields["name"] ?? "",
        relPath: relDoc,
        status: fields["status"] ?? "",
        summary: fields["summary"] ?? "",
        supersedes: edgeList(fields, "supersedes"),
        type: fields["type"] ?? "",
    };
};
```
