# runtime/entrypoints/catalog.entrypoint.ts

> 12 lines of code and 2 definitions.

Tree: GovLab Quality
Language: typescript
Layer: runtime
Canonical: https://banes-lab.com/anatomy/quality#file-quality-runtime-entrypoints-catalog-entrypoint-ts
Source text: https://banes-lab.com/source/quality/runtime/entrypoints/catalog.entrypoint.ts.txt

Listed in [runtime/entrypoints](https://banes-lab.com/api/source/quality/runtime/entrypoints.md), after [runtime/entrypoints/canon.entrypoint.ts](https://banes-lab.com/source/quality/runtime/entrypoints/canon.entrypoint.ts.md) and before [runtime/entrypoints/comment.entrypoint.ts](https://banes-lab.com/source/quality/runtime/entrypoints/comment.entrypoint.ts.md).

## Definitions

- `argv` (lexical_declaration, line 7)
- `namesOf` (lexical_declaration, line 9)

## Contained in

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

## Source

```typescript
import { FLAGS, LIST_SEPARATOR } from "#configuration/constants/invocation.constants";
import { flagValue, resolveArgv } from "@govlab/argv";
import { CATALOG_ARGV } from "#configuration/configs/invocation.config";
import process from "node:process";
import { regenerateCatalog } from "#core/coordinators/catalog.coordinator";

const argv = resolveArgv(CATALOG_ARGV);

const namesOf = function namesOf(flag: string): string[] {
    return (flagValue(argv, flag) ?? "").split(LIST_SEPARATOR).filter((name) => name.length > 0);
};

await regenerateCatalog({ knobs: namesOf(FLAGS.knobs), rules: namesOf(FLAGS.rules) }, (line) => {
    process.stdout.write(line);
});
```
