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.
@@ -1,35 +1,39 @@
1
- import type { Column, Relation, SQL, Table } from 'drizzle-orm';
2
- import type { PgArray } from 'drizzle-orm/pg-core';
1
+ import type { Column, Relation, SQL, Table } from "drizzle-orm";
2
+ import type { PgArray } from "drizzle-orm/pg-core";
3
3
  import type {
4
- GraphQLFieldConfigArgumentMap,
5
- GraphQLFieldResolver,
6
- GraphQLInputObjectType,
7
- GraphQLList,
8
- GraphQLNonNull,
9
- GraphQLObjectType,
10
- GraphQLScalarType,
11
- } from 'graphql';
12
- import type { ConvertedColumn, ConvertedRelationColumnWithArgs } from '../type-converter';
4
+ GraphQLFieldConfigArgumentMap,
5
+ GraphQLFieldResolver,
6
+ GraphQLInputObjectType,
7
+ GraphQLInterfaceType,
8
+ GraphQLList,
9
+ GraphQLNonNull,
10
+ GraphQLObjectType,
11
+ GraphQLScalarType,
12
+ } from "graphql";
13
+ import type {
14
+ ConvertedColumn,
15
+ ConvertedRelationColumnWithArgs,
16
+ } from "../type-converter";
13
17
 
14
18
  export type TableNamedRelations = {
15
- relation: Relation;
16
- targetTableName: string;
19
+ relation: Relation;
20
+ targetTableName: string;
17
21
  };
18
22
 
19
23
  export type TableSelectArgs = {
20
- offset: number;
21
- limit: number;
22
- where: Filters<Table>;
23
- orderBy: OrderByArgs<Table>;
24
+ offset: number;
25
+ limit: number;
26
+ where: Filters<Table>;
27
+ orderBy: OrderByArgs<Table>;
24
28
  };
25
29
 
26
30
  export type ProcessedTableSelectArgs = {
27
- columns: Record<string, true>;
28
- offset: number;
29
- limit: number;
30
- where: SQL;
31
- orderBy: SQL[];
32
- with?: Record<string, Partial<ProcessedTableSelectArgs>>;
31
+ columns: Record<string, true>;
32
+ offset: number;
33
+ limit: number;
34
+ where: SQL;
35
+ orderBy: SQL[];
36
+ with?: Record<string, Partial<ProcessedTableSelectArgs>>;
33
37
  };
34
38
 
35
39
  export type SelectedColumnsRaw = [string, true][];
@@ -37,195 +41,277 @@ export type SelectedColumnsRaw = [string, true][];
37
41
  export type SelectedSQLColumns = [string, Column][];
38
42
 
39
43
  export type SelectedColumns = {
40
- [columnName in keyof Table['_']['columns']]: true;
44
+ [columnName in keyof Table["_"]["columns"]]: true;
41
45
  };
42
46
 
43
47
  export type CreatedResolver = {
44
- name: string;
45
- resolver: GraphQLFieldResolver<any, any>;
46
- args: GraphQLFieldConfigArgumentMap;
48
+ name: string;
49
+ resolver: GraphQLFieldResolver<any, any>;
50
+ args: GraphQLFieldConfigArgumentMap;
47
51
  };
48
52
 
49
53
  export type ArgMapToArgsType<TArgMap extends GraphQLFieldConfigArgumentMap> = {
50
- [Key in keyof TArgMap]?: TArgMap[Key] extends { type: GraphQLScalarType<infer R, any> } ? R : never;
54
+ [Key in keyof TArgMap]?: TArgMap[Key] extends {
55
+ type: GraphQLScalarType<infer R, any>;
56
+ }
57
+ ? R
58
+ : never;
51
59
  };
52
60
 
53
- export type ColTypeIsNull<TColumn extends Column, TColType> = TColumn['_']['notNull'] extends true ? TColType
54
- : TColType | null;
55
-
56
- export type ColTypeIsNullOrUndefined<TColumn extends Column, TColType> = TColumn['_']['notNull'] extends true ? TColType
57
- : TColType | null | undefined;
58
-
59
- export type ColTypeIsNullOrUndefinedWithDefault<TColumn extends Column, TColType> = TColumn['_']['notNull'] extends true
60
- ? TColumn['_']['hasDefault'] extends true ? TColType | null | undefined
61
- : TColumn['defaultFn'] extends undefined ? TColType
62
- : TColType | null | undefined
63
- : TColType | null | undefined;
64
-
65
- export type GetColumnGqlDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean'
66
- ? ColTypeIsNull<TColumn, boolean>
67
- : TColumn['dataType'] extends 'json'
68
- ? TColumn['_']['columnType'] extends 'PgGeometryObject' ? ColTypeIsNull<TColumn, {
69
- x: number;
70
- y: number;
71
- }>
72
- : ColTypeIsNull<TColumn, string>
73
- : TColumn['dataType'] extends 'date' | 'string' | 'bigint'
74
- ? TColumn['enumValues'] extends [string, ...string[]] ? ColTypeIsNull<TColumn, TColumn['enumValues'][number]>
75
- : ColTypeIsNull<TColumn, string>
76
- : TColumn['dataType'] extends 'number' ? ColTypeIsNull<TColumn, number>
77
- : TColumn['dataType'] extends 'buffer' ? ColTypeIsNull<TColumn, number[]>
78
- : TColumn['dataType'] extends 'array' ? TColumn['columnType'] extends 'PgVector' ? ColTypeIsNull<TColumn, number[]>
79
- : TColumn['columnType'] extends 'PgGeometry' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, [number, number]>
80
- : ColTypeIsNull<
81
- TColumn,
82
- Array<
83
- GetColumnGqlDataType<TColumn extends { baseColumn: Column } ? TColumn['baseColumn'] : never> extends
84
- infer InnerColType ? InnerColType extends null | undefined ? never
85
- : InnerColType
86
- : never
87
- >
88
- >
89
- : never;
90
-
91
- export type GetColumnGqlInsertDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean'
92
- ? ColTypeIsNullOrUndefinedWithDefault<TColumn, boolean>
93
- : TColumn['dataType'] extends 'json'
94
- ? TColumn['_']['columnType'] extends 'PgGeometryObject' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, {
95
- x: number;
96
- y: number;
97
- }>
98
- : ColTypeIsNullOrUndefinedWithDefault<TColumn, string>
99
- : TColumn['dataType'] extends 'date' | 'string' | 'bigint'
100
- ? TColumn['enumValues'] extends [string, ...string[]]
101
- ? ColTypeIsNullOrUndefinedWithDefault<TColumn, TColumn['enumValues'][number]>
102
- : ColTypeIsNullOrUndefinedWithDefault<TColumn, string>
103
- : TColumn['dataType'] extends 'number' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number>
104
- : TColumn['dataType'] extends 'buffer' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number[]>
105
- : TColumn['dataType'] extends 'array'
106
- ? TColumn['columnType'] extends 'PgVector' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number[]>
107
- : TColumn['columnType'] extends 'PgGeometry' ? ColTypeIsNullOrUndefinedWithDefault<TColumn, [number, number]>
108
- : ColTypeIsNullOrUndefinedWithDefault<
109
- TColumn,
110
- Array<
111
- GetColumnGqlDataType<TColumn extends { baseColumn: Column } ? TColumn['baseColumn'] : never> extends
112
- infer InnerColType ? InnerColType extends null | undefined ? never
113
- : InnerColType
114
- : never
115
- >
116
- >
117
- : never;
118
-
119
- export type GetColumnGqlUpdateDataType<TColumn extends Column> = TColumn['dataType'] extends 'boolean'
120
- ? boolean | null | undefined
121
- : TColumn['dataType'] extends 'json' ? TColumn['_']['columnType'] extends 'PgGeometryObject' ?
122
- | {
123
- x: number;
124
- y: number;
125
- }
126
- | null
127
- | undefined
128
- : string | null | undefined
129
- : TColumn['dataType'] extends 'date' | 'string' | 'bigint'
130
- ? TColumn['enumValues'] extends [string, ...string[]] ? TColumn['enumValues'][number] | null | undefined
131
- : string | null | undefined
132
- : TColumn['dataType'] extends 'number' ? number | null | undefined
133
- : TColumn['dataType'] extends 'buffer' ? number[] | null | undefined
134
- : TColumn['dataType'] extends 'array' ? TColumn['columnType'] extends 'PgVector' ? number[] | null | undefined
135
- : TColumn['columnType'] extends 'PgGeometry' ? [number, number] | null | undefined
136
- :
137
- | Array<
138
- GetColumnGqlDataType<TColumn extends { baseColumn: Column } ? TColumn['baseColumn'] : never> extends
139
- infer InnerColType ? InnerColType extends null | undefined ? never
140
- : InnerColType
141
- : never
142
- >
143
- | null
144
- | undefined
145
- : never;
61
+ export type ColTypeIsNull<
62
+ TColumn extends Column,
63
+ TColType
64
+ > = TColumn["_"]["notNull"] extends true ? TColType : TColType | null;
65
+
66
+ export type ColTypeIsNullOrUndefined<
67
+ TColumn extends Column,
68
+ TColType
69
+ > = TColumn["_"]["notNull"] extends true
70
+ ? TColType
71
+ : TColType | null | undefined;
72
+
73
+ export type ColTypeIsNullOrUndefinedWithDefault<
74
+ TColumn extends Column,
75
+ TColType
76
+ > = TColumn["_"]["notNull"] extends true
77
+ ? TColumn["_"]["hasDefault"] extends true
78
+ ? TColType | null | undefined
79
+ : TColumn["defaultFn"] extends undefined
80
+ ? TColType
81
+ : TColType | null | undefined
82
+ : TColType | null | undefined;
83
+
84
+ export type GetColumnGqlDataType<TColumn extends Column> =
85
+ TColumn["dataType"] extends "boolean"
86
+ ? ColTypeIsNull<TColumn, boolean>
87
+ : TColumn["dataType"] extends "json"
88
+ ? TColumn["_"]["columnType"] extends "PgGeometryObject"
89
+ ? ColTypeIsNull<
90
+ TColumn,
91
+ {
92
+ x: number;
93
+ y: number;
94
+ }
95
+ >
96
+ : ColTypeIsNull<TColumn, string>
97
+ : TColumn["dataType"] extends "date" | "string" | "bigint"
98
+ ? TColumn["enumValues"] extends [string, ...string[]]
99
+ ? ColTypeIsNull<TColumn, TColumn["enumValues"][number]>
100
+ : ColTypeIsNull<TColumn, string>
101
+ : TColumn["dataType"] extends "number"
102
+ ? ColTypeIsNull<TColumn, number>
103
+ : TColumn["dataType"] extends "buffer"
104
+ ? ColTypeIsNull<TColumn, number[]>
105
+ : TColumn["dataType"] extends "array"
106
+ ? TColumn["columnType"] extends "PgVector"
107
+ ? ColTypeIsNull<TColumn, number[]>
108
+ : TColumn["columnType"] extends "PgGeometry"
109
+ ? ColTypeIsNullOrUndefinedWithDefault<TColumn, [number, number]>
110
+ : ColTypeIsNull<
111
+ TColumn,
112
+ Array<
113
+ GetColumnGqlDataType<
114
+ TColumn extends { baseColumn: Column }
115
+ ? TColumn["baseColumn"]
116
+ : never
117
+ > extends infer InnerColType
118
+ ? InnerColType extends null | undefined
119
+ ? never
120
+ : InnerColType
121
+ : never
122
+ >
123
+ >
124
+ : never;
125
+
126
+ export type GetColumnGqlInsertDataType<TColumn extends Column> =
127
+ TColumn["dataType"] extends "boolean"
128
+ ? ColTypeIsNullOrUndefinedWithDefault<TColumn, boolean>
129
+ : TColumn["dataType"] extends "json"
130
+ ? TColumn["_"]["columnType"] extends "PgGeometryObject"
131
+ ? ColTypeIsNullOrUndefinedWithDefault<
132
+ TColumn,
133
+ {
134
+ x: number;
135
+ y: number;
136
+ }
137
+ >
138
+ : ColTypeIsNullOrUndefinedWithDefault<TColumn, string>
139
+ : TColumn["dataType"] extends "date" | "string" | "bigint"
140
+ ? TColumn["enumValues"] extends [string, ...string[]]
141
+ ? ColTypeIsNullOrUndefinedWithDefault<
142
+ TColumn,
143
+ TColumn["enumValues"][number]
144
+ >
145
+ : ColTypeIsNullOrUndefinedWithDefault<TColumn, string>
146
+ : TColumn["dataType"] extends "number"
147
+ ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number>
148
+ : TColumn["dataType"] extends "buffer"
149
+ ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number[]>
150
+ : TColumn["dataType"] extends "array"
151
+ ? TColumn["columnType"] extends "PgVector"
152
+ ? ColTypeIsNullOrUndefinedWithDefault<TColumn, number[]>
153
+ : TColumn["columnType"] extends "PgGeometry"
154
+ ? ColTypeIsNullOrUndefinedWithDefault<TColumn, [number, number]>
155
+ : ColTypeIsNullOrUndefinedWithDefault<
156
+ TColumn,
157
+ Array<
158
+ GetColumnGqlDataType<
159
+ TColumn extends { baseColumn: Column }
160
+ ? TColumn["baseColumn"]
161
+ : never
162
+ > extends infer InnerColType
163
+ ? InnerColType extends null | undefined
164
+ ? never
165
+ : InnerColType
166
+ : never
167
+ >
168
+ >
169
+ : never;
170
+
171
+ export type GetColumnGqlUpdateDataType<TColumn extends Column> =
172
+ TColumn["dataType"] extends "boolean"
173
+ ? boolean | null | undefined
174
+ : TColumn["dataType"] extends "json"
175
+ ? TColumn["_"]["columnType"] extends "PgGeometryObject"
176
+ ?
177
+ | {
178
+ x: number;
179
+ y: number;
180
+ }
181
+ | null
182
+ | undefined
183
+ : string | null | undefined
184
+ : TColumn["dataType"] extends "date" | "string" | "bigint"
185
+ ? TColumn["enumValues"] extends [string, ...string[]]
186
+ ? TColumn["enumValues"][number] | null | undefined
187
+ : string | null | undefined
188
+ : TColumn["dataType"] extends "number"
189
+ ? number | null | undefined
190
+ : TColumn["dataType"] extends "buffer"
191
+ ? number[] | null | undefined
192
+ : TColumn["dataType"] extends "array"
193
+ ? TColumn["columnType"] extends "PgVector"
194
+ ? number[] | null | undefined
195
+ : TColumn["columnType"] extends "PgGeometry"
196
+ ? [number, number] | null | undefined
197
+ :
198
+ | Array<
199
+ GetColumnGqlDataType<
200
+ TColumn extends { baseColumn: Column }
201
+ ? TColumn["baseColumn"]
202
+ : never
203
+ > extends infer InnerColType
204
+ ? InnerColType extends null | undefined
205
+ ? never
206
+ : InnerColType
207
+ : never
208
+ >
209
+ | null
210
+ | undefined
211
+ : never;
146
212
 
147
213
  export type GetRemappedTableDataType<
148
- TTable extends Table,
149
- TColumns extends TTable['_']['columns'] = TTable['_']['columns'],
214
+ TTable extends Table,
215
+ TColumns extends TTable["_"]["columns"] = TTable["_"]["columns"]
150
216
  > = {
151
- [K in keyof TColumns]: GetColumnGqlDataType<TColumns[K]>;
217
+ [K in keyof TColumns]: GetColumnGqlDataType<TColumns[K]>;
152
218
  };
153
219
 
154
220
  export type GetRemappedTableInsertDataType<TTable extends Table> = {
155
- [K in keyof TTable['_']['columns']]: GetColumnGqlInsertDataType<TTable['_']['columns'][K]>;
221
+ [K in keyof TTable["_"]["columns"]]: GetColumnGqlInsertDataType<
222
+ TTable["_"]["columns"][K]
223
+ >;
156
224
  };
157
225
 
158
226
  export type GetRemappedTableUpdateDataType<TTable extends Table> = {
159
- [K in keyof TTable['_']['columns']]: GetColumnGqlUpdateDataType<TTable['_']['columns'][K]>;
227
+ [K in keyof TTable["_"]["columns"]]: GetColumnGqlUpdateDataType<
228
+ TTable["_"]["columns"][K]
229
+ >;
160
230
  };
161
231
 
162
- export type FilterColumnOperatorsCore<TColumn extends Column, TColType = GetColumnGqlDataType<TColumn>> = Partial<{
163
- eq: TColType;
164
- ne: TColType;
165
- lt: TColType;
166
- lte: TColType;
167
- gt: TColType;
168
- gte: TColType;
169
- like: string;
170
- notLike: string;
171
- ilike: string;
172
- notIlike: string;
173
- inArray: Array<TColType>;
174
- notInArray: Array<TColType>;
175
- isNull: boolean;
176
- isNotNull: boolean;
232
+ export type FilterColumnOperatorsCore<
233
+ TColumn extends Column,
234
+ TColType = GetColumnGqlDataType<TColumn>
235
+ > = Partial<{
236
+ eq: TColType;
237
+ ne: TColType;
238
+ lt: TColType;
239
+ lte: TColType;
240
+ gt: TColType;
241
+ gte: TColType;
242
+ like: string;
243
+ notLike: string;
244
+ ilike: string;
245
+ notIlike: string;
246
+ inArray: Array<TColType>;
247
+ notInArray: Array<TColType>;
248
+ isNull: boolean;
249
+ isNotNull: boolean;
177
250
  }>;
178
251
 
179
252
  export type FilterColumnOperators<
180
- TColumn extends Column,
181
- TOperators extends FilterColumnOperatorsCore<TColumn> = FilterColumnOperatorsCore<TColumn>,
253
+ TColumn extends Column,
254
+ TOperators extends FilterColumnOperatorsCore<TColumn> = FilterColumnOperatorsCore<TColumn>
182
255
  > = TOperators & {
183
- OR?: TOperators[];
256
+ OR?: TOperators[];
184
257
  };
185
258
 
186
- export type FiltersCore<TTable extends Table> = Partial<
187
- {
188
- [Column in keyof TTable['_']['columns']]: FilterColumnOperatorsCore<TTable['_']['columns'][Column]>;
189
- }
190
- >;
259
+ export type FiltersCore<TTable extends Table> = Partial<{
260
+ [Column in keyof TTable["_"]["columns"]]: FilterColumnOperatorsCore<
261
+ TTable["_"]["columns"][Column]
262
+ >;
263
+ }>;
191
264
 
192
- export type Filters<TTable extends Table, TFilterType = FiltersCore<TTable>> = TFilterType & {
193
- OR?: TFilterType[];
265
+ export type Filters<
266
+ TTable extends Table,
267
+ TFilterType = FiltersCore<TTable>
268
+ > = TFilterType & {
269
+ OR?: TFilterType[];
194
270
  };
195
271
 
196
272
  export type OrderByArgs<TTable extends Table> = {
197
- [Key in keyof TTable['_']['columns']]?: {
198
- direction: 'asc' | 'desc';
199
- priority: number;
200
- };
273
+ [Key in keyof TTable["_"]["columns"]]?: {
274
+ direction: "asc" | "desc";
275
+ priority: number;
276
+ };
201
277
  };
202
278
 
203
279
  export type GeneratedTableTypesInputs = {
204
- insertInput: GraphQLInputObjectType;
205
- updateInput: GraphQLInputObjectType;
206
- tableOrder: GraphQLInputObjectType;
207
- tableFilters: GraphQLInputObjectType;
280
+ insertInput: GraphQLInputObjectType;
281
+ updateInput: GraphQLInputObjectType;
282
+ tableOrder: GraphQLInputObjectType;
283
+ tableFilters: GraphQLInputObjectType;
208
284
  };
209
285
 
210
- export type GeneratedTableTypesOutputs<WithReturning extends boolean> = WithReturning extends true ? {
211
- selectSingleOutput: GraphQLObjectType;
212
- selectArrOutput: GraphQLNonNull<GraphQLList<GraphQLNonNull<GraphQLObjectType>>>;
213
- singleTableItemOutput: GraphQLObjectType;
214
- arrTableItemOutput: GraphQLNonNull<GraphQLList<GraphQLNonNull<GraphQLObjectType>>>;
215
- }
216
- : {
217
- selectSingleOutput: GraphQLObjectType;
218
- selectArrOutput: GraphQLNonNull<GraphQLList<GraphQLNonNull<GraphQLObjectType>>>;
219
- };
286
+ export type GeneratedTableTypesOutputs<WithReturning extends boolean> =
287
+ WithReturning extends true
288
+ ? {
289
+ selectSingleOutput: GraphQLObjectType;
290
+ selectArrOutput: GraphQLNonNull<
291
+ GraphQLList<GraphQLNonNull<GraphQLObjectType>>
292
+ >;
293
+ singleTableItemOutput: GraphQLObjectType;
294
+ arrTableItemOutput: GraphQLNonNull<
295
+ GraphQLList<GraphQLNonNull<GraphQLObjectType>>
296
+ >;
297
+ tableFieldsInterface: GraphQLInterfaceType;
298
+ }
299
+ : {
300
+ selectSingleOutput: GraphQLObjectType;
301
+ selectArrOutput: GraphQLNonNull<
302
+ GraphQLList<GraphQLNonNull<GraphQLObjectType>>
303
+ >;
304
+ tableFieldsInterface: GraphQLInterfaceType;
305
+ };
220
306
 
221
307
  export type GeneratedTableTypes<WithReturning extends boolean> = {
222
- inputs: GeneratedTableTypesInputs;
223
- outputs: GeneratedTableTypesOutputs<WithReturning>;
308
+ inputs: GeneratedTableTypesInputs;
309
+ outputs: GeneratedTableTypesOutputs<WithReturning>;
224
310
  };
225
311
 
226
312
  export type SelectData<TWithOrder extends boolean> = {
227
- filters: GraphQLInputObjectType;
228
- tableFields: Record<string, ConvertedColumn>;
229
- relationFields: Record<string, ConvertedRelationColumnWithArgs>;
230
- order: TWithOrder extends true ? GraphQLInputObjectType : undefined;
313
+ filters: GraphQLInputObjectType;
314
+ tableFields: Record<string, ConvertedColumn>;
315
+ relationFields: Record<string, ConvertedRelationColumnWithArgs>;
316
+ order: TWithOrder extends true ? GraphQLInputObjectType : undefined;
231
317
  };