# configuration/constants/graph.constants.ts

> 57 lines of code and 10 definitions.

Tree: GovLab Docs
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/docs#file-docs-configuration-constants-graph-constants-ts
Source text: https://banes-lab.com/source/docs/configuration/constants/graph.constants.ts.txt

Listed in [configuration/constants](https://banes-lab.com/api/source/docs/configuration/constants.md), after [configuration/constants/form.constants.ts](https://banes-lab.com/source/docs/configuration/constants/form.constants.ts.md) and before [configuration/constants/invocation.constants.ts](https://banes-lab.com/source/docs/configuration/constants/invocation.constants.ts.md).

## Definitions

- `NODE_KINDS` (lexical_declaration, line 4, exported)
- `EDGE_KINDS` (lexical_declaration, line 18, exported)
- `RECOGNIZER_NODE_KINDS` (lexical_declaration, line 28, exported)
- `RECOGNIZER_EDGE_KINDS` (lexical_declaration, line 38, exported)
- `CLASS_BY_KIND` (lexical_declaration, line 40, exported)
- `DEFAULT_CLASS` (lexical_declaration, line 52, exported)
- `CLASS_DEFS` (lexical_declaration, line 54, exported)
- `EDGE_BUDGET` (lexical_declaration, line 63, exported)
- `MODULE_ID` (lexical_declaration, line 65, exported)
- `DEFAULT_LABEL` (lexical_declaration, line 67, exported)

## Contained in

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

## Source

```typescript
import type { ClassDef } from "#types/diagram.types";
import type { CodeNodeKind } from "#types/graph.types";

export const NODE_KINDS: readonly string[] = [
    "entry",
    "factory",
    "method",
    "collaborator",
    "decision",
    "gate",
    "hook",
    "registry",
    "store",
    "exit",
    "fail-sink",
];

export const EDGE_KINDS: readonly string[] = [
    "call",
    "branch",
    "hook-register",
    "teardown",
    "data-flow",
    "dependency",
    "loop",
];

export const RECOGNIZER_NODE_KINDS: readonly string[] = [
    "collaborator",
    "decision",
    "gate",
    "hook",
    "registry",
    "store",
    "fail-sink",
];

export const RECOGNIZER_EDGE_KINDS: readonly string[] = ["branch", "hook-register", "teardown", "data-flow"];

export const CLASS_BY_KIND: ReadonlyMap<CodeNodeKind, string> = new Map<CodeNodeKind, string>([
    ["entry", "kEntry"],
    ["factory", "kEntry"],
    ["collaborator", "kCollab"],
    ["decision", "kGate"],
    ["gate", "kGate"],
    ["fail-sink", "kGate"],
    ["hook", "kHook"],
    ["registry", "kState"],
    ["store", "kState"],
]);

export const DEFAULT_CLASS = "kMethod";

export const CLASS_DEFS: readonly ClassDef[] = [
    { name: "kEntry", stroke: "#2f6f4f" },
    { name: "kCollab", stroke: "#7a5c1e" },
    { name: "kGate", stroke: "#8a3324" },
    { name: "kHook", stroke: "#3a5a8a" },
    { name: "kState", stroke: "#5a3a8a" },
    { name: "kMethod", stroke: "#555555" },
];

export const EDGE_BUDGET = 450;

export const MODULE_ID = "__module__";

export const DEFAULT_LABEL = "default";
```
