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/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
- GraphQLInputObjectType,
10
- GraphQLList,
11
- GraphQLNonNull,
12
- GraphQLObjectType,
13
- GraphQLResolveInfo,
14
- GraphQLScalarType,
15
- GraphQLSchema,
16
- } from 'graphql';
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
- Filters,
20
- GetRemappedTableDataType,
21
- GetRemappedTableInsertDataType,
22
- GetRemappedTableUpdateDataType,
23
- OrderByArgs,
24
- } from '@/util/builders';
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
- | PgDatabase<any, TSchema>
28
- | BaseSQLiteDatabase<any, any, TSchema>
29
- | MySqlDatabase<any, any, TSchema>;
36
+ | PgDatabase<any, TSchema>
37
+ | BaseSQLiteDatabase<any, any, TSchema>
38
+ | MySqlDatabase<any, any, TSchema>;
30
39
 
31
- export type AnyQueryBuiler<TConfig extends TablesRelationalConfig = any, TFields extends TableRelationalConfig = any> =
32
- | PgQuery<TConfig, TFields>
33
- | MySqlQuery<any, TConfig, TFields>
34
- | SQLiteQuery<any, any, TConfig, TFields>;
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
- [K in keyof TSchema as TSchema[K] extends Table ? K : never]: TSchema[K] extends Table ? TSchema[K] : never;
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
- [K in keyof TSchema as TSchema[K] extends Relations ? K : never]: TSchema[K] extends Relations ? TSchema[K] : never;
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<TTable extends Table, TSchemaRelations extends Record<string, Relations>> = {
45
- [
46
- K in keyof TSchemaRelations as TSchemaRelations[K]['table']['_']['name'] extends TTable['_']['name'] ? K
47
- : never
48
- ]: TSchemaRelations[K]['table']['_']['name'] extends TTable['_']['name']
49
- ? TSchemaRelations[K] extends Relations<any, infer RelationConfig> ? RelationConfig
50
- : never
51
- : never;
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<TTableSchema extends Record<string, Table>, TName extends string> = {
55
- [
56
- K in keyof TTableSchema as TTableSchema[K]['_']['name'] extends TName ? K
57
- : never
58
- ]: TTableSchema[K]['_']['name'] extends TName ? TTableSchema[K] : never;
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
- isSuccess: boolean;
86
+ isSuccess: boolean;
63
87
  };
64
88
 
65
89
  export type QueryArgs<TTable extends Table, isSingle extends boolean> = Partial<
66
- (isSingle extends true ? {
67
- offset: number;
68
- }
69
- : {
70
- offset: number;
71
- limit: number;
72
- }) & {
73
- where: Filters<TTable>;
74
- orderBy: OrderByArgs<TTable>;
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<TTable extends Table, isSingle extends boolean> = isSingle extends true ? {
79
- values: GetRemappedTableInsertDataType<TTable>;
80
- }
81
- : {
82
- values: Array<GetRemappedTableInsertDataType<TTable>>;
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
- set: GetRemappedTableUpdateDataType<TTable>;
87
- where?: Filters<TTable>;
115
+ set: GetRemappedTableUpdateDataType<TTable>;
116
+ where?: Filters<TTable>;
88
117
  }>;
89
118
 
90
119
  export type DeleteArgs<TTable extends Table> = {
91
- where?: Filters<TTable>;
120
+ where?: Filters<TTable>;
92
121
  };
93
122
 
94
123
  export type SelectResolver<
95
- TTable extends Table,
96
- TTables extends Record<string, Table>,
97
- TRelations extends Record<string, Relation>,
124
+ TTable extends Table,
125
+ TTables extends Record<string, Table>,
126
+ TRelations extends Record<string, Relation>
98
127
  > = (
99
- source: any,
100
- args: Partial<QueryArgs<TTable, false>>,
101
- context: any,
102
- info: GraphQLResolveInfo,
128
+ source: any,
129
+ args: Partial<QueryArgs<TTable, false>>,
130
+ context: any,
131
+ info: GraphQLResolveInfo
103
132
  ) => Promise<
104
- keyof TRelations extends infer RelKey ? RelKey extends string ? Array<
105
- & GetRemappedTableDataType<TTable>
106
- & {
107
- [K in RelKey]: TRelations[K] extends One<string> ?
108
- | GetRemappedTableDataType<
109
- ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T]
110
- : never
111
- >
112
- | null
113
- : TRelations[K] extends Many<string> ? Array<
114
- GetRemappedTableDataType<
115
- ExtractTableByName<
116
- TTables,
117
- TRelations[K]['referencedTableName']
118
- > extends infer T ? T[keyof T]
119
- : never
120
- >
121
- >
122
- : never;
123
- }
124
- >
125
- : Array<GetRemappedTableDataType<TTable>>
126
- : Array<GetRemappedTableDataType<TTable>>
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
- TTable extends Table,
131
- TTables extends Record<string, Table>,
132
- TRelations extends Record<string, Relation>,
165
+ TTable extends Table,
166
+ TTables extends Record<string, Table>,
167
+ TRelations extends Record<string, Relation>
133
168
  > = (
134
- source: any,
135
- args: Partial<QueryArgs<TTable, true>>,
136
- context: any,
137
- info: GraphQLResolveInfo,
169
+ source: any,
170
+ args: Partial<QueryArgs<TTable, true>>,
171
+ context: any,
172
+ info: GraphQLResolveInfo
138
173
  ) => Promise<
139
- | (keyof TRelations extends infer RelKey ? RelKey extends string ?
140
- & GetRemappedTableDataType<TTable>
141
- & {
142
- [K in RelKey]: TRelations[K] extends One<string> ?
143
- | GetRemappedTableDataType<
144
- ExtractTableByName<TTables, TRelations[K]['referencedTableName']> extends infer T ? T[keyof T]
145
- : never
146
- >
147
- | null
148
- : TRelations[K] extends Many<string> ? Array<
149
- GetRemappedTableDataType<
150
- ExtractTableByName<
151
- TTables,
152
- TRelations[K]['referencedTableName']
153
- > extends infer T ? T[keyof T]
154
- : never
155
- >
156
- >
157
- : never;
158
- }
159
- : GetRemappedTableDataType<TTable>
160
- : GetRemappedTableDataType<TTable>)
161
- | null
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<TTable extends Table, IsReturnless extends boolean> = (
165
- source: any,
166
- args: Partial<InsertArgs<TTable, false>>,
167
- context: any,
168
- info: GraphQLResolveInfo,
169
- ) => Promise<IsReturnless extends false ? Array<GetRemappedTableDataType<TTable>> : MutationReturnlessResult>;
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<TTable extends Table, IsReturnless extends boolean> = (
172
- source: any,
173
- args: Partial<InsertArgs<TTable, true>>,
174
- context: any,
175
- info: GraphQLResolveInfo,
176
- ) => Promise<IsReturnless extends false ? GetRemappedTableDataType<TTable> | undefined : MutationReturnlessResult>;
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<TTable extends Table, IsReturnless extends boolean> = (
179
- source: any,
180
- args: UpdateArgs<TTable>,
181
- context: any,
182
- info: GraphQLResolveInfo,
183
- ) => Promise<IsReturnless extends false ? GetRemappedTableDataType<TTable> | undefined : MutationReturnlessResult>;
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<TTable extends Table, IsReturnless extends boolean> = (
186
- source: any,
187
- args: DeleteArgs<TTable>,
188
- context: any,
189
- info: GraphQLResolveInfo,
190
- ) => Promise<IsReturnless extends false ? GetRemappedTableDataType<TTable> | undefined : MutationReturnlessResult>;
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
- TSchemaTables extends Record<string, Table>,
194
- TSchemaRelations extends Record<string, Relations>,
195
- TInputs extends Record<string, GraphQLInputObjectType>,
196
- TOutputs extends Record<string, GraphQLObjectType>,
197
- > =
198
- & {
199
- [TName in keyof TSchemaTables as TName extends string ? `${Uncapitalize<TName>}` : never]: TName extends string ? {
200
- type: GraphQLNonNull<GraphQLList<GraphQLNonNull<TOutputs[`${Capitalize<TName>}SelectItem`]>>>;
201
- args: {
202
- offset: {
203
- type: GraphQLScalarType<number, number>;
204
- };
205
- limit: {
206
- type: GraphQLScalarType<number, number>;
207
- };
208
- orderBy: {
209
- type: TInputs[`${Capitalize<TName>}OrderBy`] extends GraphQLInputObjectType
210
- ? TInputs[`${Capitalize<TName>}OrderBy`]
211
- : never;
212
- };
213
- where: {
214
- type: TInputs[`${Capitalize<TName>}Filters`] extends GraphQLInputObjectType
215
- ? TInputs[`${Capitalize<TName>}Filters`]
216
- : never;
217
- };
218
- };
219
- resolve: SelectResolver<
220
- TSchemaTables[TName],
221
- TSchemaTables,
222
- ExtractTableRelations<TSchemaTables[TName], TSchemaRelations> extends infer R ? R[keyof R] : never
223
- >;
224
- }
225
- : never;
226
- }
227
- & {
228
- [TName in keyof TSchemaTables as TName extends string ? `${Uncapitalize<TName>}Single` : never]: TName extends
229
- string ? {
230
- type: TOutputs[`${Capitalize<TName>}SelectItem`];
231
- args: {
232
- offset: {
233
- type: GraphQLScalarType<number, number>;
234
- };
235
- orderBy: {
236
- type: TInputs[`${Capitalize<TName>}OrderBy`] extends GraphQLInputObjectType
237
- ? TInputs[`${Capitalize<TName>}OrderBy`]
238
- : never;
239
- };
240
- where: {
241
- type: TInputs[`${Capitalize<TName>}Filters`] extends GraphQLInputObjectType
242
- ? TInputs[`${Capitalize<TName>}Filters`]
243
- : never;
244
- };
245
- };
246
- resolve: SelectSingleResolver<
247
- TSchemaTables[TName],
248
- TSchemaTables,
249
- ExtractTableRelations<TSchemaTables[TName], TSchemaRelations> extends infer R ? R[keyof R] : never
250
- >;
251
- }
252
- : never;
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
- TSchemaTables extends Record<string, Table>,
257
- TInputs extends Record<string, GraphQLInputObjectType>,
258
- TOutputs extends Record<string, GraphQLObjectType>,
259
- IsReturnless extends boolean,
260
- > =
261
- & {
262
- [
263
- TName in keyof TSchemaTables as TName extends string ? `insertInto${Capitalize<TName>}`
264
- : never
265
- ]: TName extends string ? {
266
- type: IsReturnless extends true
267
- ? TOutputs['MutationReturn'] extends GraphQLObjectType ? TOutputs['MutationReturn']
268
- : never
269
- : GraphQLNonNull<GraphQLList<GraphQLNonNull<TOutputs[`${Capitalize<TName>}Item`]>>>;
270
- args: {
271
- values: {
272
- type: GraphQLNonNull<GraphQLList<GraphQLNonNull<TInputs[`${Capitalize<TName>}InsertInput`]>>>;
273
- };
274
- };
275
- resolve: InsertArrResolver<TSchemaTables[TName], IsReturnless>;
276
- }
277
- : never;
278
- }
279
- & {
280
- [
281
- TName in keyof TSchemaTables as TName extends string ? `insertInto${Capitalize<TName>}Single`
282
- : never
283
- ]: TName extends string ? {
284
- type: IsReturnless extends true
285
- ? TOutputs['MutationReturn'] extends GraphQLObjectType ? TOutputs['MutationReturn']
286
- : never
287
- : TOutputs[`${Capitalize<TName>}Item`];
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
- args: {
290
- values: {
291
- type: GraphQLNonNull<TInputs[`${Capitalize<TName>}InsertInput`]>;
292
- };
293
- };
294
- resolve: InsertResolver<TSchemaTables[TName], IsReturnless>;
295
- }
296
- : never;
297
- }
298
- & {
299
- [TName in keyof TSchemaTables as TName extends string ? `update${Capitalize<TName>}` : never]: TName extends string
300
- ? {
301
- type: IsReturnless extends true
302
- ? TOutputs['MutationReturn'] extends GraphQLObjectType ? TOutputs['MutationReturn']
303
- : never
304
- : GraphQLNonNull<GraphQLList<GraphQLNonNull<TOutputs[`${Capitalize<TName>}Item`]>>>;
305
- args: {
306
- set: {
307
- type: GraphQLNonNull<TInputs[`${Capitalize<TName>}UpdateInput`]>;
308
- };
309
- where: {
310
- type: TInputs[`${Capitalize<TName>}Filters`] extends GraphQLInputObjectType
311
- ? TInputs[`${Capitalize<TName>}Filters`]
312
- : never;
313
- };
314
- };
315
- resolve: UpdateResolver<TSchemaTables[TName], IsReturnless>;
316
- }
317
- : never;
318
- }
319
- & {
320
- [
321
- TName in keyof TSchemaTables as TName extends string ? `deleteFrom${Capitalize<TName>}`
322
- : never
323
- ]: TName extends string ? {
324
- type: IsReturnless extends true
325
- ? TOutputs['MutationReturn'] extends GraphQLObjectType ? TOutputs['MutationReturn']
326
- : never
327
- : GraphQLNonNull<GraphQLList<GraphQLNonNull<TOutputs[`${Capitalize<TName>}Item`]>>>;
328
- args: {
329
- where: {
330
- type: TInputs[`${Capitalize<TName>}Filters`] extends GraphQLInputObjectType
331
- ? TInputs[`${Capitalize<TName>}Filters`]
332
- : never;
333
- };
334
- };
335
- resolve: DeleteResolver<TSchemaTables[TName], IsReturnless>;
336
- }
337
- : never;
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
- [TName in keyof TSchema as TName extends string ? `${Capitalize<TName>}InsertInput` : never]:
343
- GraphQLInputObjectType;
344
- }
345
- & {
346
- [TName in keyof TSchema as TName extends string ? `${Capitalize<TName>}UpdateInput` : never]:
347
- GraphQLInputObjectType;
348
- }
349
- & {
350
- [TName in keyof TSchema as TName extends string ? `${Capitalize<TName>}OrderBy` : never]: GraphQLInputObjectType;
351
- }
352
- & {
353
- [TName in keyof TSchema as TName extends string ? `${Capitalize<TName>}Filters` : never]: GraphQLInputObjectType;
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 GeneratedOutputs<TSchema extends Record<string, Table>, IsReturnless extends Boolean> =
357
- & {
358
- [TName in keyof TSchema as TName extends string ? `${Capitalize<TName>}SelectItem` : never]: GraphQLObjectType;
359
- }
360
- & (IsReturnless extends true ? {
361
- MutationReturn: GraphQLObjectType;
362
- }
363
- : {
364
- [TName in keyof TSchema as TName extends string ? `${Capitalize<TName>}Item` : never]: GraphQLObjectType;
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
- TDatabase extends AnyDrizzleDB<TSchema>,
369
- TSchema extends Record<string, unknown> = TDatabase extends AnyDrizzleDB<infer ISchema> ? ISchema : never,
370
- TSchemaTables extends ExtractTables<TSchema> = ExtractTables<TSchema>,
371
- TSchemaRelations extends ExtractRelations<TSchema> = ExtractRelations<TSchema>,
372
- TInputs extends GeneratedInputs<TSchemaTables> = GeneratedInputs<TSchemaTables>,
373
- TOutputs extends GeneratedOutputs<
374
- TSchemaTables,
375
- TDatabase extends MySqlDatabase<any, any, any, any> ? true : false
376
- > = GeneratedOutputs<TSchemaTables, TDatabase extends MySqlDatabase<any, any, any, any> ? true : false>,
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
- queries: QueriesCore<TSchemaTables, TSchemaRelations, TInputs, TOutputs>;
379
- mutations: MutationsCore<
380
- TSchemaTables,
381
- TInputs,
382
- TOutputs,
383
- TDatabase extends MySqlDatabase<any, any, any, any> ? true : false
384
- >;
385
- inputs: TInputs;
386
- types: TOutputs;
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
- TDatabase extends AnyDrizzleDB<any>,
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
- * Determines whether generated mutations will be passed to returned schema.
399
- *
400
- * Set value to `false` to omit mutations from returned schema.
401
- *
402
- * Flag is treated as if set to `true` by default.
403
- */
404
- mutations?: boolean;
405
- /**
406
- * Limits depth of generated relation fields on queries.
407
- *
408
- * Expects non-negative integer or undefined.
409
- *
410
- * Set value to `undefined` to not limit relation depth.
411
- *
412
- * Set value to `0` to omit relations altogether.
413
- *
414
- * Value is treated as if set to `undefined` by default.
415
- */
416
- relationsDepthLimit?: number;
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
  };