Skip to main content

Function: parseIR()

function parseIR(json): {
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?: | "date"
| "datetime"
| "uuid"
| "email"
| "url"
| "cuid"
| "cuid2"
| "ulid"
| "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/ir/src/validate.ts:579

Parameters​

ParameterType
jsonstring

Returns​

{
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?: | "date"
| "datetime"
| "uuid"
| "email"
| "url"
| "cuid"
| "cuid2"
| "ulid"
| "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;
};
};
};
};
}

irVersion​

irVersion: string;

sources​

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?: | "date"
| "datetime"
| "uuid"
| "email"
| "url"
| "cuid"
| "cuid2"
| "ulid"
| "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?: | "date"
| "datetime"
| "uuid"
| "email"
| "url"
| "cuid"
| "cuid2"
| "ulid"
| "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;
};
};
}