# runtime/entrypoints/metric.entrypoint.ts

> 71 lines of code and 10 definitions.

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

Listed in [runtime/entrypoints](https://banes-lab.com/api/source/stats/runtime/entrypoints.md).

## Definitions

- `ignore` (lexical_declaration, line 35)
- `state` (lexical_declaration, line 36)
- `workspace` (lexical_declaration, line 37)
- `taxonomy` (lexical_declaration, line 38)
- `appRoot` (lexical_declaration, line 39)
- `appContainers` (lexical_declaration, line 40)
- `target` (lexical_declaration, line 43)
- `authored` (lexical_declaration, line 63)
- `authoredFiles` (lexical_declaration, line 64)
- `authoredBytes` (lexical_declaration, line 65)

## Contained in

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

## Used by

- [core/analyzers/site.analyzer.ts](https://banes-lab.com/source/stats/core/analyzers/site.analyzer.ts.md)
- [core/loaders/document.loader.ts](https://banes-lab.com/source/stats/core/loaders/document.loader.ts.md)
- [core/loaders/folder.loader.ts](https://banes-lab.com/source/stats/core/loaders/folder.loader.ts.md)

## Linked from

- [core/analyzers](https://banes-lab.com/anatomy/stats/folder-stats-core-analyzers.md)
- [core/loaders](https://banes-lab.com/anatomy/stats/folder-stats-core-loaders.md)

## Source

```typescript
import {
    CENSUS_COMMAND,
    CENSUS_SUMMARY,
    authoredLine,
    taxonomyLine,
    wroteCensus,
} from "#configuration/strings/metric.strings";
import { ROOT, absolutePath, relativePath } from "@ssot/paths";
import { humanBytes, num } from "#core/formatters/metric.formatter";
import { memberIndex, workspaceMembers } from "#core/resolvers/package.resolver";
import { collectActiveRules } from "#core/analyzers/rule.analyzer";
import { collectAnalysis } from "#core/loaders/code.loader";
import { collectApp } from "#core/analyzers/site.analyzer";
import { collectDependencyGraph } from "#core/analyzers/dependency.analyzer";
import { collectDocArch } from "#core/loaders/document.loader";
import { collectFindings } from "#core/loaders/pattern.loader";
import { collectGit } from "#core/adapters/vcs.adapter";
import { collectMemory } from "#core/loaders/agent.loader";
import { collectQuality } from "#core/loaders/catalog.loader";
import { collectTaxonomy } from "#core/analyzers/taxonomy.analyzer";
import { collectTypescript } from "#core/loaders/config.loader";
import { collectVerifyReport } from "#core/loaders/report.loader";
import { collectWorkspace } from "#core/loaders/manifest.loader";
import { excludeMatcher } from "@govlab/quality/config";
import { otherGateClaims } from "#core/resolvers/folder.resolver";
import path from "node:path";
import process from "node:process";
import { renderReport } from "#core/reporters/report.reporter";
import { resolveArgv } from "@govlab/argv";
import { runScan } from "#core/analyzers/source.analyzer";
import { writeCensus } from "#core/persistence/metric.persistence";

resolveArgv({ command: CENSUS_COMMAND, flags: [], summary: CENSUS_SUMMARY });

const ignore = await excludeMatcher(ROOT);
const state = runScan({ ignore, members: memberIndex(ROOT), root: ROOT });
const workspace = collectWorkspace(ROOT);
const taxonomy = collectTaxonomy(ROOT, ignore, await otherGateClaims(ROOT));
const appRoot = relativePath("app.root");
const appContainers = taxonomy.roots
    .filter((entry) => entry.root.startsWith(`${appRoot}/`))
    .flatMap((entry) => entry.containers.map((container) => `${entry.root}/${container.name}`));
const target = await writeCensus(
    renderReport({
        activeRules: await collectActiveRules(ROOT),
        analysis: collectAnalysis(ROOT, ignore),
        app: collectApp(ROOT, appContainers, ignore),
        docs: collectDocArch(ROOT, ignore),
        findings: collectFindings(ROOT),
        git: collectGit(ROOT),
        graph: collectDependencyGraph(ROOT),
        memory: collectMemory(ROOT),
        packages: workspaceMembers(ROOT),
        quality: collectQuality(ROOT),
        state,
        taxonomy,
        typescript: collectTypescript(ROOT),
        verify: collectVerifyReport(ROOT),
        workspace,
    }),
    absolutePath("docArch.generated"),
);
const authored = [...state.authored.values()];
const authoredFiles = authored.reduce((sum, bucket) => sum + bucket.files, 0);
const authoredBytes = authored.reduce((sum, bucket) => sum + bucket.bytes, 0);

process.stdout.write(
    [
        wroteCensus(path.relative(ROOT, target)),
        authoredLine(num(authoredFiles), num(state.lines.code), humanBytes(authoredBytes), num(workspace.total)),
        taxonomyLine(num(taxonomy.totals.conformant), num(taxonomy.totals.assessed), num(taxonomy.ungovernedFiles)),
        "",
    ].join("\n"),
);
```
