# runtime/entrypoints/writing.entrypoint.ts

> 15 lines of code and 2 definitions.

Tree: Build tree
Language: typescript
Layer: runtime
Canonical: https://banes-lab.com/anatomy/build#file-build-runtime-entrypoints-writing-entrypoint-ts
Source text: https://banes-lab.com/assets/sources/source.3a432e31a88ca8cb33ff1605ccfb97fb39a8dad7f18cbbf97e6565acf2102e6c.generated.txt

## Definitions

- `{ missing, sections }` (lexical_declaration, line 12)
- `absent` (lexical_declaration, line 13)

## Source

```typescript
import { CLEAN_WRITING, NO_PAYLOAD, UNREAD_SUFFIX } from "#configuration/strings/derivation.strings";
import { READING_SCOPE, READING_SIGNOFFS } from "#configuration/records/writing.record";
import { conclude, say } from "#core/reporters/derivation.reporter";
import { readSections, sitePages } from "#core/loaders/section.loader";
import { unreadCount, unsignedSections } from "#core/validators/writing.validator";
import { WRITING_COMMAND } from "#configuration/constants/contract.constants";
import { WRITING_SUMMARY } from "#configuration/strings/contract.strings";
import { resolveArgv } from "@govlab/argv";

resolveArgv({ command: WRITING_COMMAND, flags: [], summary: WRITING_SUMMARY });

const { missing, sections } = readSections(await sitePages());
const absent = missing
    .filter((page) => READING_SCOPE.includes(page))
    .map((page) => ({ file: page, message: `${NO_PAYLOAD}${page}` }));
say(`${String(unreadCount(READING_SCOPE, sections))}${UNREAD_SUFFIX}`);
conclude(WRITING_COMMAND, [...absent, ...unsignedSections(READING_SCOPE, READING_SIGNOFFS, sections)], CLEAN_WRITING);
```
