Skip to main content

Interface: GenerateContext

Defined in: packages/core/src/types.ts:127

Properties​

cycles​

cycles: Set<string>;

Defined in: packages/core/src/types.ts:139

${namespace}.${name} for every entity / type alias that takes part in a ref cycle in the merged IR (from @kurotako/ir's refCycleMembers, the same graph the validation union_cycle info channel reports). A generator consumes this to decide which references must be lazily wrapped / widened rather than emitted as a bare forward reference.


dependencies​

dependencies: Record<string, GeneratorArtifact>;

Defined in: packages/core/src/types.ts:131

Artifact of each private dependency (Generator.dependsOn), by driver name.


ir​

ir: {
irVersion: string;
sources: {
[key: string]: {
entities: {
[key: string]: {
additionalProperties?: FieldType;
dbName?: string;
doc?: string;
enums?: {
[key: string]: {
dbName?: string;
doc?: string;
name: string;
values: {
dbName?: ... | ...;
doc?: ... | ...;
name: string;
}[];
};
};
fields: {
constraints: {
format?: | "email"
| "url"
| "uuid"
| "cuid"
| "cuid2"
| "ulid"
| "datetime"
| "date"
| "time"
| "duration"
| "ipv4"
| "ipv6";
max?: number;
maxLength?: number;
min?: number;
minLength?: number;
regex?: string;
unique?: boolean;
};
dbName?: string;
default?: | {
kind: "value";
value: JsonValue;
}
| {
args?: ...[];
expr: string;
kind: "expr";
};
doc?: string;
hidden?: boolean;
list: boolean;
name: string;
nullable: boolean;
optional: boolean;
type: FieldType;
}[];
indexes: (
| {
fields: string[];
kind: "columns";
name?: string;
type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist";
}
| {
expression: string;
kind: "expression";
name?: string;
type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist";
})[];
name: string;
primaryKey?: string[];
relations: {
backRelation?: string;
cardinality: "one" | "many";
fkFields?: string[];
name: string;
onDelete?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction";
onUpdate?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction";
optional: boolean;
owning: boolean;
references?: string[];
target: {
entity: string;
namespace: string;
};
}[];
uniques: {
fields: string[];
name?: string;
}[];
};
};
enums: {
[key: string]: {
dbName?: string;
doc?: string;
name: string;
values: {
dbName?: string;
doc?: string;
name: string;
}[];
};
};
namespace: string;
parser: string;
parserVersion?: string;
typeAliases?: {
[key: string]: {
doc?: string;
name: string;
type: FieldType;
};
};
};
};
};

Defined in: packages/core/src/types.ts:129

Namespace-filtered deep clone of the merged IR.

irVersion​

readonly irVersion: string;

sources​

readonly sources: {
[key: string]: {
entities: {
[key: string]: {
additionalProperties?: FieldType;
dbName?: string;
doc?: string;
enums?: {
[key: string]: {
dbName?: string;
doc?: string;
name: string;
values: {
dbName?: ... | ...;
doc?: ... | ...;
name: string;
}[];
};
};
fields: {
constraints: {
format?: | "email"
| "url"
| "uuid"
| "cuid"
| "cuid2"
| "ulid"
| "datetime"
| "date"
| "time"
| "duration"
| "ipv4"
| "ipv6";
max?: number;
maxLength?: number;
min?: number;
minLength?: number;
regex?: string;
unique?: boolean;
};
dbName?: string;
default?: | {
kind: "value";
value: JsonValue;
}
| {
args?: ...[];
expr: string;
kind: "expr";
};
doc?: string;
hidden?: boolean;
list: boolean;
name: string;
nullable: boolean;
optional: boolean;
type: FieldType;
}[];
indexes: (
| {
fields: string[];
kind: "columns";
name?: string;
type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist";
}
| {
expression: string;
kind: "expression";
name?: string;
type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist";
})[];
name: string;
primaryKey?: string[];
relations: {
backRelation?: string;
cardinality: "one" | "many";
fkFields?: string[];
name: string;
onDelete?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction";
onUpdate?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction";
optional: boolean;
owning: boolean;
references?: string[];
target: {
entity: string;
namespace: string;
};
}[];
uniques: {
fields: string[];
name?: string;
}[];
};
};
enums: {
[key: string]: {
dbName?: string;
doc?: string;
name: string;
values: {
dbName?: string;
doc?: string;
name: string;
}[];
};
};
namespace: string;
parser: string;
parserVersion?: string;
typeAliases?: {
[key: string]: {
doc?: string;
name: string;
type: FieldType;
};
};
};
};
Index Signature​
[key: string]: {
entities: {
[key: string]: {
additionalProperties?: FieldType;
dbName?: string;
doc?: string;
enums?: {
[key: string]: {
dbName?: string;
doc?: string;
name: string;
values: {
dbName?: ... | ...;
doc?: ... | ...;
name: string;
}[];
};
};
fields: {
constraints: {
format?: | "email"
| "url"
| "uuid"
| "cuid"
| "cuid2"
| "ulid"
| "datetime"
| "date"
| "time"
| "duration"
| "ipv4"
| "ipv6";
max?: number;
maxLength?: number;
min?: number;
minLength?: number;
regex?: string;
unique?: boolean;
};
dbName?: string;
default?: | {
kind: "value";
value: JsonValue;
}
| {
args?: ...[];
expr: string;
kind: "expr";
};
doc?: string;
hidden?: boolean;
list: boolean;
name: string;
nullable: boolean;
optional: boolean;
type: FieldType;
}[];
indexes: (
| {
fields: string[];
kind: "columns";
name?: string;
type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist";
}
| {
expression: string;
kind: "expression";
name?: string;
type?: "btree" | "hash" | "gin" | "gist" | "brin" | "spgist";
})[];
name: string;
primaryKey?: string[];
relations: {
backRelation?: string;
cardinality: "one" | "many";
fkFields?: string[];
name: string;
onDelete?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction";
onUpdate?: "cascade" | "restrict" | "setNull" | "setDefault" | "noAction";
optional: boolean;
owning: boolean;
references?: string[];
target: {
entity: string;
namespace: string;
};
}[];
uniques: {
fields: string[];
name?: string;
}[];
};
};
enums: {
[key: string]: {
dbName?: string;
doc?: string;
name: string;
values: {
dbName?: string;
doc?: string;
name: string;
}[];
};
};
namespace: string;
parser: string;
parserVersion?: string;
typeAliases?: {
[key: string]: {
doc?: string;
name: string;
type: FieldType;
};
};
}

logger​

logger: Logger;

Defined in: packages/core/src/types.ts:146


segment​

segment: string;

Defined in: packages/core/src/types.ts:145

Sub-tree under <namespace>/ the generator emits into and builds its module specifiers from. generator.name for a top-level generator; a nested path (angular/zod) when the generator runs as a private dependency of another.