Interface: Parser
Defined in: packages/core/src/types.ts:81
Properties
name
name: string;
Defined in: packages/core/src/types.ts:82
Methods
anchor()?
optional anchor(rootDir): string | Promise<string | undefined> | undefined;
Defined in: packages/core/src/types.ts:97
The directory this source is anchored at, for toolchain-dependency
resolution. Already curried (options bound). run() calls it before
parse() and passes the result as ParseContext.anchorDir. Return
undefined (or omit the hook) to anchor on rootDir. Must not throw for an
ordinary "not found" case — a bad path is the parser's problem to surface
during parse().
Parameters
| Parameter | Type |
|---|---|
rootDir | string |
Returns
string | Promise<string | undefined> | undefined
parse()
parse(ctx):
| {
entities: {
[key: string]: {
additionalProperties?: FieldType;
dbName?: string;
doc?: string;
enums?: {
[key: string]: {
dbName?: string;
doc?: string;
name: string;
values: {
dbName?: string;
doc?: string;
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?: JsonValue[];
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;
};
};
}
| Promise<{
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:83
Parameters
| Parameter | Type |
|---|---|
ctx | ParseContext |
Returns
| {
entities: {
[key: string]: {
additionalProperties?: FieldType;
dbName?: string;
doc?: string;
enums?: {
[key: string]: {
dbName?: string;
doc?: string;
name: string;
values: {
dbName?: string;
doc?: string;
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?: JsonValue[];
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;
};
};
}
| Promise<{
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;
};
};
}>
watchPaths()?
optional watchPaths(ctx): string[] | Promise<string[]>;
Defined in: packages/core/src/types.ts:88
Metadata for cli --watch — the set of paths a watcher should observe.
run() never calls it.
Parameters
| Parameter | Type |
|---|---|
ctx | ParseContext |
Returns
string[] | Promise<string[]>