# types/generator.types.ts

> 29 lines of code and 4 definitions.

Tree: Governance tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/governance#file-governance-types-generator-types-ts
Source text: https://banes-lab.com/source/governance/types/generator.types.ts.txt

Listed in [types](https://banes-lab.com/api/source/governance/types.md), after [types/field.types.ts](https://banes-lab.com/source/governance/types/field.types.ts.md) and before [types/location.types.ts](https://banes-lab.com/source/governance/types/location.types.ts.md).

## Definitions

- `WriteNode` (interface_declaration, line 3, exported)
- `InitResolver` (type_alias_declaration, line 23, exported)
- `WriteOwnership` (interface_declaration, line 25, exported)
- `WriteSite` (interface_declaration, line 30, exported)

## Source

```typescript
import type { Rule } from "eslint";

export interface WriteNode {
    type: string;
    name?: string;
    value?: unknown;
    computed?: boolean;
    callee?: WriteNode;
    object?: WriteNode;
    property?: WriteNode;
    arguments?: WriteNode[];
    elements?: WriteNode[];
    quasis?: { value?: { cooked?: unknown } }[];
    expressions?: WriteNode[];
    left?: WriteNode;
    right?: WriteNode;
    parent?: WriteNode;
    id?: WriteNode;
    init?: WriteNode;
    argument?: WriteNode;
}

export type InitResolver = (name: string) => WriteNode | null;

export interface WriteOwnership {
    owner: boolean;
    writers: ReadonlySet<string>;
}

export interface WriteSite {
    call: WriteNode;
    node: Rule.Node;
}
```
