# domain/converters/surface.converter.ts

> 8 lines of code and 1 definition.

Tree: Bane's Lab Site
Language: typescript
Layer: processing
Canonical: https://banes-lab.com/anatomy/tree#file-domain-converters-surface-converter-ts
Source text: https://banes-lab.com/source/tree/domain/converters/surface.converter.ts.txt

Listed in [domain/converters](https://banes-lab.com/api/source/tree/domain/converters.md), after [domain/converters/structure.converter.ts](https://banes-lab.com/source/tree/domain/converters/structure.converter.ts.md) and before [domain/converters/tension.converter.ts](https://banes-lab.com/source/tree/domain/converters/tension.converter.ts.md).

## Definitions

- `transcriptOf` (lexical_declaration, line 5, exported)

## Contained in

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

## Source

```typescript
import { COMMAND_MARK } from "#configuration/constants/surface.constants";
import { LINE_BREAK } from "#configuration/constants/code.constants";
import type { SurfaceRecording } from "#types/surface.types";

export const transcriptOf = function transcriptOf(recording: SurfaceRecording): string {
    return recording.frames
        .map((frame) => COMMAND_MARK + frame.command + LINE_BREAK + frame.output.trimEnd())
        .join(LINE_BREAK + LINE_BREAK);
};
```
