UNPKG

3.75 kBTypeScriptView Raw
1export declare namespace DMMF {
2 interface Document {
3 datamodel: Datamodel;
4 schema: Schema;
5 mappings: Mapping[];
6 }
7 interface Enum {
8 name: string;
9 values: string[];
10 dbName?: string | null;
11 documentation?: string;
12 }
13 interface Datamodel {
14 models: Model[];
15 enums: Enum[];
16 }
17 interface uniqueIndex {
18 name: string;
19 fields: string[];
20 }
21 interface Model {
22 name: string;
23 isEmbedded: boolean;
24 dbName: string | null;
25 fields: Field[];
26 fieldMap?: Record<string, Field>;
27 uniqueFields: string[][];
28 uniqueIndexes: uniqueIndex[];
29 documentation?: string;
30 idFields: string[];
31 [key: string]: any;
32 }
33 type FieldKind = 'scalar' | 'object' | 'enum';
34 interface Field {
35 kind: FieldKind;
36 name: string;
37 isRequired: boolean;
38 isList: boolean;
39 isUnique: boolean;
40 isId: boolean;
41 type: string;
42 dbNames: string[] | null;
43 isGenerated: boolean;
44 hasDefaultValue: boolean;
45 default?: FieldDefault | string | boolean | number;
46 relationToFields?: any[];
47 relationOnDelete?: string;
48 relationName?: string;
49 documentation?: string;
50 [key: string]: any;
51 }
52 interface FieldDefault {
53 name: string;
54 args: any[];
55 }
56 interface Schema {
57 rootQueryType?: string;
58 rootMutationType?: string;
59 inputTypes: InputType[];
60 outputTypes: OutputType[];
61 enums: Enum[];
62 }
63 interface Query {
64 name: string;
65 args: SchemaArg[];
66 output: QueryOutput;
67 }
68 interface QueryOutput {
69 name: string;
70 isRequired: boolean;
71 isList: boolean;
72 }
73 type ArgType = string | InputType | Enum;
74 interface SchemaArgInputType {
75 isRequired: boolean;
76 isNullable: boolean;
77 isList: boolean;
78 type: ArgType;
79 kind: FieldKind;
80 }
81 interface SchemaArg {
82 name: string;
83 inputType: SchemaArgInputType[];
84 isRelationFilter?: boolean;
85 nullEqualsUndefined?: boolean;
86 comment?: string;
87 }
88 interface OutputType {
89 name: string;
90 fields: SchemaField[];
91 fieldMap?: Record<string, SchemaField>;
92 isEmbedded?: boolean;
93 }
94 interface SchemaField {
95 name: string;
96 outputType: {
97 type: string | OutputType | Enum;
98 isList: boolean;
99 isRequired: boolean;
100 kind: FieldKind;
101 };
102 args: SchemaArg[];
103 }
104 interface InputType {
105 name: string;
106 isWhereType?: boolean;
107 isOrderType?: boolean;
108 atLeastOne?: boolean;
109 atMostOne?: boolean;
110 isOneOf?: boolean;
111 fields: SchemaArg[];
112 fieldMap?: Record<string, SchemaArg>;
113 }
114 interface Mapping {
115 model: string;
116 plural: string;
117 findOne?: string | null;
118 findMany?: string | null;
119 create?: string | null;
120 update?: string | null;
121 updateMany?: string | null;
122 upsert?: string | null;
123 delete?: string | null;
124 deleteMany?: string | null;
125 aggregate?: string | null;
126 }
127 enum ModelAction {
128 findOne = "findOne",
129 findMany = "findMany",
130 create = "create",
131 update = "update",
132 updateMany = "updateMany",
133 upsert = "upsert",
134 delete = "delete",
135 deleteMany = "deleteMany"
136 }
137}
138export interface BaseField {
139 name: string;
140 type: string | DMMF.Enum | DMMF.OutputType | DMMF.SchemaArg;
141 isList: boolean;
142 isRequired: boolean;
143}