drizzle-graphql-plus 0.8.6 → 0.8.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/types.ts +478 -360
- package/src/util/builders/common.ts +2 -0
- package/src/util/builders/mysql.ts +534 -449
- package/src/util/builders/pg.ts +583 -484
- package/src/util/builders/sqlite.ts +589 -491
- package/src/util/builders/types.ts +261 -175
package/src/types.ts
CHANGED
|
@@ -1,417 +1,535 @@
|
|
|
1
|
-
import type { Many, One, Relation, Relations, Table, TableRelationalConfig, TablesRelationalConfig } from 'drizzle-orm';
|
|
2
|
-
import type { MySqlDatabase } from 'drizzle-orm/mysql-core';
|
|
3
|
-
import type { RelationalQueryBuilder as MySqlQuery } from 'drizzle-orm/mysql-core/query-builders/query';
|
|
4
|
-
import type { PgDatabase } from 'drizzle-orm/pg-core';
|
|
5
|
-
import type { RelationalQueryBuilder as PgQuery } from 'drizzle-orm/pg-core/query-builders/query';
|
|
6
|
-
import type { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
|
|
7
|
-
import type { RelationalQueryBuilder as SQLiteQuery } from 'drizzle-orm/sqlite-core/query-builders/query';
|
|
8
1
|
import type {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} from
|
|
2
|
+
Many,
|
|
3
|
+
One,
|
|
4
|
+
Relation,
|
|
5
|
+
Relations,
|
|
6
|
+
Table,
|
|
7
|
+
TableRelationalConfig,
|
|
8
|
+
TablesRelationalConfig,
|
|
9
|
+
} from "drizzle-orm";
|
|
10
|
+
import type { MySqlDatabase } from "drizzle-orm/mysql-core";
|
|
11
|
+
import type { RelationalQueryBuilder as MySqlQuery } from "drizzle-orm/mysql-core/query-builders/query";
|
|
12
|
+
import type { PgDatabase } from "drizzle-orm/pg-core";
|
|
13
|
+
import type { RelationalQueryBuilder as PgQuery } from "drizzle-orm/pg-core/query-builders/query";
|
|
14
|
+
import type { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";
|
|
15
|
+
import type { RelationalQueryBuilder as SQLiteQuery } from "drizzle-orm/sqlite-core/query-builders/query";
|
|
16
|
+
import type {
|
|
17
|
+
GraphQLInputObjectType,
|
|
18
|
+
GraphQLInterfaceType,
|
|
19
|
+
GraphQLList,
|
|
20
|
+
GraphQLNonNull,
|
|
21
|
+
GraphQLObjectType,
|
|
22
|
+
GraphQLResolveInfo,
|
|
23
|
+
GraphQLScalarType,
|
|
24
|
+
GraphQLSchema,
|
|
25
|
+
} from "graphql";
|
|
17
26
|
|
|
18
27
|
import type {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
} from
|
|
28
|
+
Filters,
|
|
29
|
+
GetRemappedTableDataType,
|
|
30
|
+
GetRemappedTableInsertDataType,
|
|
31
|
+
GetRemappedTableUpdateDataType,
|
|
32
|
+
OrderByArgs,
|
|
33
|
+
} from "@/util/builders";
|
|
25
34
|
|
|
26
35
|
export type AnyDrizzleDB<TSchema extends Record<string, any>> =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
36
|
+
| PgDatabase<any, TSchema>
|
|
37
|
+
| BaseSQLiteDatabase<any, any, TSchema>
|
|
38
|
+
| MySqlDatabase<any, any, TSchema>;
|
|
30
39
|
|
|
31
|
-
export type AnyQueryBuiler<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
export type AnyQueryBuiler<
|
|
41
|
+
TConfig extends TablesRelationalConfig = any,
|
|
42
|
+
TFields extends TableRelationalConfig = any
|
|
43
|
+
> =
|
|
44
|
+
| PgQuery<TConfig, TFields>
|
|
45
|
+
| MySqlQuery<any, TConfig, TFields>
|
|
46
|
+
| SQLiteQuery<any, any, TConfig, TFields>;
|
|
35
47
|
|
|
36
48
|
export type ExtractTables<TSchema extends Record<string, Table | unknown>> = {
|
|
37
|
-
|
|
49
|
+
[K in keyof TSchema as TSchema[K] extends Table
|
|
50
|
+
? K
|
|
51
|
+
: never]: TSchema[K] extends Table ? TSchema[K] : never;
|
|
38
52
|
};
|
|
39
53
|
|
|
40
|
-
export type ExtractRelations<TSchema extends Record<string, Table | unknown>> =
|
|
41
|
-
|
|
42
|
-
|
|
54
|
+
export type ExtractRelations<TSchema extends Record<string, Table | unknown>> =
|
|
55
|
+
{
|
|
56
|
+
[K in keyof TSchema as TSchema[K] extends Relations
|
|
57
|
+
? K
|
|
58
|
+
: never]: TSchema[K] extends Relations ? TSchema[K] : never;
|
|
59
|
+
};
|
|
43
60
|
|
|
44
|
-
export type ExtractTableRelations<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
61
|
+
export type ExtractTableRelations<
|
|
62
|
+
TTable extends Table,
|
|
63
|
+
TSchemaRelations extends Record<string, Relations>
|
|
64
|
+
> = {
|
|
65
|
+
[K in keyof TSchemaRelations as TSchemaRelations[K]["table"]["_"]["name"] extends TTable["_"]["name"]
|
|
66
|
+
? K
|
|
67
|
+
: never]: TSchemaRelations[K]["table"]["_"]["name"] extends TTable["_"]["name"]
|
|
68
|
+
? TSchemaRelations[K] extends Relations<any, infer RelationConfig>
|
|
69
|
+
? RelationConfig
|
|
70
|
+
: never
|
|
71
|
+
: never;
|
|
52
72
|
};
|
|
53
73
|
|
|
54
|
-
export type ExtractTableByName<
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
74
|
+
export type ExtractTableByName<
|
|
75
|
+
TTableSchema extends Record<string, Table>,
|
|
76
|
+
TName extends string
|
|
77
|
+
> = {
|
|
78
|
+
[K in keyof TTableSchema as TTableSchema[K]["_"]["name"] extends TName
|
|
79
|
+
? K
|
|
80
|
+
: never]: TTableSchema[K]["_"]["name"] extends TName
|
|
81
|
+
? TTableSchema[K]
|
|
82
|
+
: never;
|
|
59
83
|
};
|
|
60
84
|
|
|
61
85
|
export type MutationReturnlessResult = {
|
|
62
|
-
|
|
86
|
+
isSuccess: boolean;
|
|
63
87
|
};
|
|
64
88
|
|
|
65
89
|
export type QueryArgs<TTable extends Table, isSingle extends boolean> = Partial<
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
90
|
+
(isSingle extends true
|
|
91
|
+
? {
|
|
92
|
+
offset: number;
|
|
93
|
+
}
|
|
94
|
+
: {
|
|
95
|
+
offset: number;
|
|
96
|
+
limit: number;
|
|
97
|
+
}) & {
|
|
98
|
+
where: Filters<TTable>;
|
|
99
|
+
orderBy: OrderByArgs<TTable>;
|
|
100
|
+
}
|
|
76
101
|
>;
|
|
77
102
|
|
|
78
|
-
export type InsertArgs<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
103
|
+
export type InsertArgs<
|
|
104
|
+
TTable extends Table,
|
|
105
|
+
isSingle extends boolean
|
|
106
|
+
> = isSingle extends true
|
|
107
|
+
? {
|
|
108
|
+
values: GetRemappedTableInsertDataType<TTable>;
|
|
109
|
+
}
|
|
110
|
+
: {
|
|
111
|
+
values: Array<GetRemappedTableInsertDataType<TTable>>;
|
|
112
|
+
};
|
|
84
113
|
|
|
85
114
|
export type UpdateArgs<TTable extends Table> = Partial<{
|
|
86
|
-
|
|
87
|
-
|
|
115
|
+
set: GetRemappedTableUpdateDataType<TTable>;
|
|
116
|
+
where?: Filters<TTable>;
|
|
88
117
|
}>;
|
|
89
118
|
|
|
90
119
|
export type DeleteArgs<TTable extends Table> = {
|
|
91
|
-
|
|
120
|
+
where?: Filters<TTable>;
|
|
92
121
|
};
|
|
93
122
|
|
|
94
123
|
export type SelectResolver<
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
124
|
+
TTable extends Table,
|
|
125
|
+
TTables extends Record<string, Table>,
|
|
126
|
+
TRelations extends Record<string, Relation>
|
|
98
127
|
> = (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
128
|
+
source: any,
|
|
129
|
+
args: Partial<QueryArgs<TTable, false>>,
|
|
130
|
+
context: any,
|
|
131
|
+
info: GraphQLResolveInfo
|
|
103
132
|
) => Promise<
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
133
|
+
keyof TRelations extends infer RelKey
|
|
134
|
+
? RelKey extends string
|
|
135
|
+
? Array<
|
|
136
|
+
GetRemappedTableDataType<TTable> & {
|
|
137
|
+
[K in RelKey]: TRelations[K] extends One<string>
|
|
138
|
+
? GetRemappedTableDataType<
|
|
139
|
+
ExtractTableByName<
|
|
140
|
+
TTables,
|
|
141
|
+
TRelations[K]["referencedTableName"]
|
|
142
|
+
> extends infer T
|
|
143
|
+
? T[keyof T]
|
|
144
|
+
: never
|
|
145
|
+
> | null
|
|
146
|
+
: TRelations[K] extends Many<string>
|
|
147
|
+
? Array<
|
|
148
|
+
GetRemappedTableDataType<
|
|
149
|
+
ExtractTableByName<
|
|
150
|
+
TTables,
|
|
151
|
+
TRelations[K]["referencedTableName"]
|
|
152
|
+
> extends infer T
|
|
153
|
+
? T[keyof T]
|
|
154
|
+
: never
|
|
155
|
+
>
|
|
156
|
+
>
|
|
157
|
+
: never;
|
|
158
|
+
}
|
|
159
|
+
>
|
|
160
|
+
: Array<GetRemappedTableDataType<TTable>>
|
|
161
|
+
: Array<GetRemappedTableDataType<TTable>>
|
|
127
162
|
>;
|
|
128
163
|
|
|
129
164
|
export type SelectSingleResolver<
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
165
|
+
TTable extends Table,
|
|
166
|
+
TTables extends Record<string, Table>,
|
|
167
|
+
TRelations extends Record<string, Relation>
|
|
133
168
|
> = (
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
169
|
+
source: any,
|
|
170
|
+
args: Partial<QueryArgs<TTable, true>>,
|
|
171
|
+
context: any,
|
|
172
|
+
info: GraphQLResolveInfo
|
|
138
173
|
) => Promise<
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
174
|
+
| (keyof TRelations extends infer RelKey
|
|
175
|
+
? RelKey extends string
|
|
176
|
+
? GetRemappedTableDataType<TTable> & {
|
|
177
|
+
[K in RelKey]: TRelations[K] extends One<string>
|
|
178
|
+
? GetRemappedTableDataType<
|
|
179
|
+
ExtractTableByName<
|
|
180
|
+
TTables,
|
|
181
|
+
TRelations[K]["referencedTableName"]
|
|
182
|
+
> extends infer T
|
|
183
|
+
? T[keyof T]
|
|
184
|
+
: never
|
|
185
|
+
> | null
|
|
186
|
+
: TRelations[K] extends Many<string>
|
|
187
|
+
? Array<
|
|
188
|
+
GetRemappedTableDataType<
|
|
189
|
+
ExtractTableByName<
|
|
190
|
+
TTables,
|
|
191
|
+
TRelations[K]["referencedTableName"]
|
|
192
|
+
> extends infer T
|
|
193
|
+
? T[keyof T]
|
|
194
|
+
: never
|
|
195
|
+
>
|
|
196
|
+
>
|
|
197
|
+
: never;
|
|
198
|
+
}
|
|
199
|
+
: GetRemappedTableDataType<TTable>
|
|
200
|
+
: GetRemappedTableDataType<TTable>)
|
|
201
|
+
| null
|
|
162
202
|
>;
|
|
163
203
|
|
|
164
|
-
export type InsertResolver<
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
204
|
+
export type InsertResolver<
|
|
205
|
+
TTable extends Table,
|
|
206
|
+
IsReturnless extends boolean
|
|
207
|
+
> = (
|
|
208
|
+
source: any,
|
|
209
|
+
args: Partial<InsertArgs<TTable, false>>,
|
|
210
|
+
context: any,
|
|
211
|
+
info: GraphQLResolveInfo
|
|
212
|
+
) => Promise<
|
|
213
|
+
IsReturnless extends false
|
|
214
|
+
? Array<GetRemappedTableDataType<TTable>>
|
|
215
|
+
: MutationReturnlessResult
|
|
216
|
+
>;
|
|
170
217
|
|
|
171
|
-
export type InsertArrResolver<
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
218
|
+
export type InsertArrResolver<
|
|
219
|
+
TTable extends Table,
|
|
220
|
+
IsReturnless extends boolean
|
|
221
|
+
> = (
|
|
222
|
+
source: any,
|
|
223
|
+
args: Partial<InsertArgs<TTable, true>>,
|
|
224
|
+
context: any,
|
|
225
|
+
info: GraphQLResolveInfo
|
|
226
|
+
) => Promise<
|
|
227
|
+
IsReturnless extends false
|
|
228
|
+
? GetRemappedTableDataType<TTable> | undefined
|
|
229
|
+
: MutationReturnlessResult
|
|
230
|
+
>;
|
|
177
231
|
|
|
178
|
-
export type UpdateResolver<
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
232
|
+
export type UpdateResolver<
|
|
233
|
+
TTable extends Table,
|
|
234
|
+
IsReturnless extends boolean
|
|
235
|
+
> = (
|
|
236
|
+
source: any,
|
|
237
|
+
args: UpdateArgs<TTable>,
|
|
238
|
+
context: any,
|
|
239
|
+
info: GraphQLResolveInfo
|
|
240
|
+
) => Promise<
|
|
241
|
+
IsReturnless extends false
|
|
242
|
+
? GetRemappedTableDataType<TTable> | undefined
|
|
243
|
+
: MutationReturnlessResult
|
|
244
|
+
>;
|
|
184
245
|
|
|
185
|
-
export type DeleteResolver<
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
246
|
+
export type DeleteResolver<
|
|
247
|
+
TTable extends Table,
|
|
248
|
+
IsReturnless extends boolean
|
|
249
|
+
> = (
|
|
250
|
+
source: any,
|
|
251
|
+
args: DeleteArgs<TTable>,
|
|
252
|
+
context: any,
|
|
253
|
+
info: GraphQLResolveInfo
|
|
254
|
+
) => Promise<
|
|
255
|
+
IsReturnless extends false
|
|
256
|
+
? GetRemappedTableDataType<TTable> | undefined
|
|
257
|
+
: MutationReturnlessResult
|
|
258
|
+
>;
|
|
191
259
|
|
|
192
260
|
export type QueriesCore<
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
> =
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
261
|
+
TSchemaTables extends Record<string, Table>,
|
|
262
|
+
TSchemaRelations extends Record<string, Relations>,
|
|
263
|
+
TInputs extends Record<string, GraphQLInputObjectType>,
|
|
264
|
+
TOutputs extends Record<string, GraphQLObjectType>
|
|
265
|
+
> = {
|
|
266
|
+
[TName in keyof TSchemaTables as TName extends string
|
|
267
|
+
? `${Uncapitalize<TName>}`
|
|
268
|
+
: never]: TName extends string
|
|
269
|
+
? {
|
|
270
|
+
type: GraphQLNonNull<
|
|
271
|
+
GraphQLList<
|
|
272
|
+
GraphQLNonNull<TOutputs[`${Capitalize<TName>}SelectItem`]>
|
|
273
|
+
>
|
|
274
|
+
>;
|
|
275
|
+
args: {
|
|
276
|
+
offset: {
|
|
277
|
+
type: GraphQLScalarType<number, number>;
|
|
278
|
+
};
|
|
279
|
+
limit: {
|
|
280
|
+
type: GraphQLScalarType<number, number>;
|
|
281
|
+
};
|
|
282
|
+
orderBy: {
|
|
283
|
+
type: TInputs[`${Capitalize<TName>}OrderBy`] extends GraphQLInputObjectType
|
|
284
|
+
? TInputs[`${Capitalize<TName>}OrderBy`]
|
|
285
|
+
: never;
|
|
286
|
+
};
|
|
287
|
+
where: {
|
|
288
|
+
type: TInputs[`${Capitalize<TName>}Filters`] extends GraphQLInputObjectType
|
|
289
|
+
? TInputs[`${Capitalize<TName>}Filters`]
|
|
290
|
+
: never;
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
resolve: SelectResolver<
|
|
294
|
+
TSchemaTables[TName],
|
|
295
|
+
TSchemaTables,
|
|
296
|
+
ExtractTableRelations<
|
|
297
|
+
TSchemaTables[TName],
|
|
298
|
+
TSchemaRelations
|
|
299
|
+
> extends infer R
|
|
300
|
+
? R[keyof R]
|
|
301
|
+
: never
|
|
302
|
+
>;
|
|
303
|
+
}
|
|
304
|
+
: never;
|
|
305
|
+
} & {
|
|
306
|
+
[TName in keyof TSchemaTables as TName extends string
|
|
307
|
+
? `${Uncapitalize<TName>}Single`
|
|
308
|
+
: never]: TName extends string
|
|
309
|
+
? {
|
|
310
|
+
type: TOutputs[`${Capitalize<TName>}SelectItem`];
|
|
311
|
+
args: {
|
|
312
|
+
offset: {
|
|
313
|
+
type: GraphQLScalarType<number, number>;
|
|
314
|
+
};
|
|
315
|
+
orderBy: {
|
|
316
|
+
type: TInputs[`${Capitalize<TName>}OrderBy`] extends GraphQLInputObjectType
|
|
317
|
+
? TInputs[`${Capitalize<TName>}OrderBy`]
|
|
318
|
+
: never;
|
|
319
|
+
};
|
|
320
|
+
where: {
|
|
321
|
+
type: TInputs[`${Capitalize<TName>}Filters`] extends GraphQLInputObjectType
|
|
322
|
+
? TInputs[`${Capitalize<TName>}Filters`]
|
|
323
|
+
: never;
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
resolve: SelectSingleResolver<
|
|
327
|
+
TSchemaTables[TName],
|
|
328
|
+
TSchemaTables,
|
|
329
|
+
ExtractTableRelations<
|
|
330
|
+
TSchemaTables[TName],
|
|
331
|
+
TSchemaRelations
|
|
332
|
+
> extends infer R
|
|
333
|
+
? R[keyof R]
|
|
334
|
+
: never
|
|
335
|
+
>;
|
|
336
|
+
}
|
|
337
|
+
: never;
|
|
338
|
+
};
|
|
254
339
|
|
|
255
340
|
export type MutationsCore<
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
> =
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
341
|
+
TSchemaTables extends Record<string, Table>,
|
|
342
|
+
TInputs extends Record<string, GraphQLInputObjectType>,
|
|
343
|
+
TOutputs extends Record<string, GraphQLObjectType>,
|
|
344
|
+
IsReturnless extends boolean
|
|
345
|
+
> = {
|
|
346
|
+
[TName in keyof TSchemaTables as TName extends string
|
|
347
|
+
? `insertInto${Capitalize<TName>}`
|
|
348
|
+
: never]: TName extends string
|
|
349
|
+
? {
|
|
350
|
+
type: IsReturnless extends true
|
|
351
|
+
? TOutputs["MutationReturn"] extends GraphQLObjectType
|
|
352
|
+
? TOutputs["MutationReturn"]
|
|
353
|
+
: never
|
|
354
|
+
: GraphQLNonNull<
|
|
355
|
+
GraphQLList<GraphQLNonNull<TOutputs[`${Capitalize<TName>}Item`]>>
|
|
356
|
+
>;
|
|
357
|
+
args: {
|
|
358
|
+
values: {
|
|
359
|
+
type: GraphQLNonNull<
|
|
360
|
+
GraphQLList<
|
|
361
|
+
GraphQLNonNull<TInputs[`${Capitalize<TName>}InsertInput`]>
|
|
362
|
+
>
|
|
363
|
+
>;
|
|
364
|
+
};
|
|
365
|
+
};
|
|
366
|
+
resolve: InsertArrResolver<TSchemaTables[TName], IsReturnless>;
|
|
367
|
+
}
|
|
368
|
+
: never;
|
|
369
|
+
} & {
|
|
370
|
+
[TName in keyof TSchemaTables as TName extends string
|
|
371
|
+
? `insertInto${Capitalize<TName>}Single`
|
|
372
|
+
: never]: TName extends string
|
|
373
|
+
? {
|
|
374
|
+
type: IsReturnless extends true
|
|
375
|
+
? TOutputs["MutationReturn"] extends GraphQLObjectType
|
|
376
|
+
? TOutputs["MutationReturn"]
|
|
377
|
+
: never
|
|
378
|
+
: TOutputs[`${Capitalize<TName>}Item`];
|
|
288
379
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
380
|
+
args: {
|
|
381
|
+
values: {
|
|
382
|
+
type: GraphQLNonNull<TInputs[`${Capitalize<TName>}InsertInput`]>;
|
|
383
|
+
};
|
|
384
|
+
};
|
|
385
|
+
resolve: InsertResolver<TSchemaTables[TName], IsReturnless>;
|
|
386
|
+
}
|
|
387
|
+
: never;
|
|
388
|
+
} & {
|
|
389
|
+
[TName in keyof TSchemaTables as TName extends string
|
|
390
|
+
? `update${Capitalize<TName>}`
|
|
391
|
+
: never]: TName extends string
|
|
392
|
+
? {
|
|
393
|
+
type: IsReturnless extends true
|
|
394
|
+
? TOutputs["MutationReturn"] extends GraphQLObjectType
|
|
395
|
+
? TOutputs["MutationReturn"]
|
|
396
|
+
: never
|
|
397
|
+
: GraphQLNonNull<
|
|
398
|
+
GraphQLList<GraphQLNonNull<TOutputs[`${Capitalize<TName>}Item`]>>
|
|
399
|
+
>;
|
|
400
|
+
args: {
|
|
401
|
+
set: {
|
|
402
|
+
type: GraphQLNonNull<TInputs[`${Capitalize<TName>}UpdateInput`]>;
|
|
403
|
+
};
|
|
404
|
+
where: {
|
|
405
|
+
type: TInputs[`${Capitalize<TName>}Filters`] extends GraphQLInputObjectType
|
|
406
|
+
? TInputs[`${Capitalize<TName>}Filters`]
|
|
407
|
+
: never;
|
|
408
|
+
};
|
|
409
|
+
};
|
|
410
|
+
resolve: UpdateResolver<TSchemaTables[TName], IsReturnless>;
|
|
411
|
+
}
|
|
412
|
+
: never;
|
|
413
|
+
} & {
|
|
414
|
+
[TName in keyof TSchemaTables as TName extends string
|
|
415
|
+
? `deleteFrom${Capitalize<TName>}`
|
|
416
|
+
: never]: TName extends string
|
|
417
|
+
? {
|
|
418
|
+
type: IsReturnless extends true
|
|
419
|
+
? TOutputs["MutationReturn"] extends GraphQLObjectType
|
|
420
|
+
? TOutputs["MutationReturn"]
|
|
421
|
+
: never
|
|
422
|
+
: GraphQLNonNull<
|
|
423
|
+
GraphQLList<GraphQLNonNull<TOutputs[`${Capitalize<TName>}Item`]>>
|
|
424
|
+
>;
|
|
425
|
+
args: {
|
|
426
|
+
where: {
|
|
427
|
+
type: TInputs[`${Capitalize<TName>}Filters`] extends GraphQLInputObjectType
|
|
428
|
+
? TInputs[`${Capitalize<TName>}Filters`]
|
|
429
|
+
: never;
|
|
430
|
+
};
|
|
431
|
+
};
|
|
432
|
+
resolve: DeleteResolver<TSchemaTables[TName], IsReturnless>;
|
|
433
|
+
}
|
|
434
|
+
: never;
|
|
435
|
+
};
|
|
339
436
|
|
|
340
|
-
export type GeneratedInputs<TSchema extends Record<string, Table>> =
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
437
|
+
export type GeneratedInputs<TSchema extends Record<string, Table>> = {
|
|
438
|
+
[TName in keyof TSchema as TName extends string
|
|
439
|
+
? `${Capitalize<TName>}InsertInput`
|
|
440
|
+
: never]: GraphQLInputObjectType;
|
|
441
|
+
} & {
|
|
442
|
+
[TName in keyof TSchema as TName extends string
|
|
443
|
+
? `${Capitalize<TName>}UpdateInput`
|
|
444
|
+
: never]: GraphQLInputObjectType;
|
|
445
|
+
} & {
|
|
446
|
+
[TName in keyof TSchema as TName extends string
|
|
447
|
+
? `${Capitalize<TName>}OrderBy`
|
|
448
|
+
: never]: GraphQLInputObjectType;
|
|
449
|
+
} & {
|
|
450
|
+
[TName in keyof TSchema as TName extends string
|
|
451
|
+
? `${Capitalize<TName>}Filters`
|
|
452
|
+
: never]: GraphQLInputObjectType;
|
|
453
|
+
};
|
|
355
454
|
|
|
356
|
-
export type
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
455
|
+
export type GeneratedInterfaces<TSchema extends Record<string, Table>> = {
|
|
456
|
+
[TName in keyof TSchema as TName extends string
|
|
457
|
+
? `${Capitalize<TName>}Fields`
|
|
458
|
+
: never]: GraphQLInterfaceType;
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
export type GeneratedOutputs<
|
|
462
|
+
TSchema extends Record<string, Table>,
|
|
463
|
+
IsReturnless extends Boolean
|
|
464
|
+
> = {
|
|
465
|
+
[TName in keyof TSchema as TName extends string
|
|
466
|
+
? `${Capitalize<TName>}SelectItem`
|
|
467
|
+
: never]: GraphQLObjectType;
|
|
468
|
+
} & (IsReturnless extends true
|
|
469
|
+
? {
|
|
470
|
+
MutationReturn: GraphQLObjectType;
|
|
471
|
+
}
|
|
472
|
+
: {
|
|
473
|
+
[TName in keyof TSchema as TName extends string
|
|
474
|
+
? `${Capitalize<TName>}Item`
|
|
475
|
+
: never]: GraphQLObjectType;
|
|
476
|
+
});
|
|
366
477
|
|
|
367
478
|
export type GeneratedEntities<
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
479
|
+
TDatabase extends AnyDrizzleDB<TSchema>,
|
|
480
|
+
TSchema extends Record<string, unknown> = TDatabase extends AnyDrizzleDB<
|
|
481
|
+
infer ISchema
|
|
482
|
+
>
|
|
483
|
+
? ISchema
|
|
484
|
+
: never,
|
|
485
|
+
TSchemaTables extends ExtractTables<TSchema> = ExtractTables<TSchema>,
|
|
486
|
+
TSchemaRelations extends ExtractRelations<TSchema> = ExtractRelations<TSchema>,
|
|
487
|
+
TInputs extends GeneratedInputs<TSchemaTables> = GeneratedInputs<TSchemaTables>,
|
|
488
|
+
TInterfaces extends GeneratedInterfaces<TSchemaTables> = GeneratedInterfaces<TSchemaTables>,
|
|
489
|
+
TOutputs extends GeneratedOutputs<
|
|
490
|
+
TSchemaTables,
|
|
491
|
+
TDatabase extends MySqlDatabase<any, any, any, any> ? true : false
|
|
492
|
+
> = GeneratedOutputs<
|
|
493
|
+
TSchemaTables,
|
|
494
|
+
TDatabase extends MySqlDatabase<any, any, any, any> ? true : false
|
|
495
|
+
>
|
|
377
496
|
> = {
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
497
|
+
queries: QueriesCore<TSchemaTables, TSchemaRelations, TInputs, TOutputs>;
|
|
498
|
+
mutations: MutationsCore<
|
|
499
|
+
TSchemaTables,
|
|
500
|
+
TInputs,
|
|
501
|
+
TOutputs,
|
|
502
|
+
TDatabase extends MySqlDatabase<any, any, any, any> ? true : false
|
|
503
|
+
>;
|
|
504
|
+
inputs: TInputs;
|
|
505
|
+
interfaces: TInterfaces;
|
|
506
|
+
types: TOutputs;
|
|
387
507
|
};
|
|
388
508
|
|
|
389
|
-
export type GeneratedData<
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
schema: GraphQLSchema;
|
|
393
|
-
entities: GeneratedEntities<TDatabase>;
|
|
509
|
+
export type GeneratedData<TDatabase extends AnyDrizzleDB<any>> = {
|
|
510
|
+
schema: GraphQLSchema;
|
|
511
|
+
entities: GeneratedEntities<TDatabase>;
|
|
394
512
|
};
|
|
395
513
|
|
|
396
514
|
export type BuildSchemaConfig = {
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
515
|
+
/**
|
|
516
|
+
* Determines whether generated mutations will be passed to returned schema.
|
|
517
|
+
*
|
|
518
|
+
* Set value to `false` to omit mutations from returned schema.
|
|
519
|
+
*
|
|
520
|
+
* Flag is treated as if set to `true` by default.
|
|
521
|
+
*/
|
|
522
|
+
mutations?: boolean;
|
|
523
|
+
/**
|
|
524
|
+
* Limits depth of generated relation fields on queries.
|
|
525
|
+
*
|
|
526
|
+
* Expects non-negative integer or undefined.
|
|
527
|
+
*
|
|
528
|
+
* Set value to `undefined` to not limit relation depth.
|
|
529
|
+
*
|
|
530
|
+
* Set value to `0` to omit relations altogether.
|
|
531
|
+
*
|
|
532
|
+
* Value is treated as if set to `undefined` by default.
|
|
533
|
+
*/
|
|
534
|
+
relationsDepthLimit?: number;
|
|
417
535
|
};
|