pothos-drizzle-generator 0.1.7 → 0.1.9
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.
|
@@ -16,21 +16,10 @@ class PothosDrizzleGenerator extends core_1.BasePlugin {
|
|
|
16
16
|
const generator = this.generator;
|
|
17
17
|
const builder = this.builder;
|
|
18
18
|
const tables = generator.getTables();
|
|
19
|
+
const modelObjects = {};
|
|
19
20
|
for (const [modelName, { table, tableInfo, relations, columns, operations, executable, limit, where, orderBy, inputData, depthLimit, },] of Object.entries(tables)) {
|
|
20
|
-
const objectRef = builder.objectRef(`${tableInfo.name}_`);
|
|
21
|
-
objectRef.implement({
|
|
22
|
-
fields: (t) => Object.fromEntries(columns.map((c) => {
|
|
23
|
-
return [
|
|
24
|
-
c.name,
|
|
25
|
-
t.expose(c.name, {
|
|
26
|
-
type: generator.getDataType(c),
|
|
27
|
-
nullable: !c.notNull,
|
|
28
|
-
}),
|
|
29
|
-
];
|
|
30
|
-
})),
|
|
31
|
-
});
|
|
32
21
|
const filterRelations = Object.entries(relations).filter(([, relay]) => tables[relay.targetTableName]);
|
|
33
|
-
builder.drizzleObject(modelName, {
|
|
22
|
+
modelObjects[modelName] = builder.drizzleObject(modelName, {
|
|
34
23
|
name: tableInfo.name,
|
|
35
24
|
fields: (t) => {
|
|
36
25
|
const relayList = filterRelations.map(([relayName, relay]) => {
|
|
@@ -316,7 +305,7 @@ class PothosDrizzleGenerator extends core_1.BasePlugin {
|
|
|
316
305
|
type: modelName,
|
|
317
306
|
nullable: false,
|
|
318
307
|
args: { input: t.arg({ type: inputCreate, required: true }) },
|
|
319
|
-
resolve: async (
|
|
308
|
+
resolve: async (query, _parent, args, ctx, info) => {
|
|
320
309
|
const operation = "createOne";
|
|
321
310
|
if (executable?.({
|
|
322
311
|
modelName,
|
|
@@ -332,6 +321,7 @@ class PothosDrizzleGenerator extends core_1.BasePlugin {
|
|
|
332
321
|
if (p.depthLimit !== undefined &&
|
|
333
322
|
(0, utils_js_1.getQueryDepth)(info) > p.depthLimit)
|
|
334
323
|
throw new Error("Depth limit exceeded");
|
|
324
|
+
query({});
|
|
335
325
|
return generator.getClient(ctx)
|
|
336
326
|
.insert(table)
|
|
337
327
|
.values({ ...args.input, ...p.input })
|
|
@@ -349,7 +339,7 @@ class PothosDrizzleGenerator extends core_1.BasePlugin {
|
|
|
349
339
|
type: [modelName],
|
|
350
340
|
nullable: false,
|
|
351
341
|
args: { input: t.arg({ type: [inputCreate], required: true }) },
|
|
352
|
-
resolve: async (
|
|
342
|
+
resolve: async (query, _parent, args, ctx, info) => {
|
|
353
343
|
const operation = "createMany";
|
|
354
344
|
if (executable?.({
|
|
355
345
|
modelName,
|
|
@@ -365,6 +355,9 @@ class PothosDrizzleGenerator extends core_1.BasePlugin {
|
|
|
365
355
|
if (p.depthLimit !== undefined &&
|
|
366
356
|
(0, utils_js_1.getQueryDepth)(info) > p.depthLimit)
|
|
367
357
|
throw new Error("Depth limit exceeded");
|
|
358
|
+
if (!args.input.length)
|
|
359
|
+
return [];
|
|
360
|
+
query({});
|
|
368
361
|
return generator.getClient(ctx)
|
|
369
362
|
.insert(table)
|
|
370
363
|
.values(args.input.map((v) => ({ ...v, ...p.args })))
|
|
@@ -384,7 +377,7 @@ class PothosDrizzleGenerator extends core_1.BasePlugin {
|
|
|
384
377
|
input: t.arg({ type: inputUpdate, required: true }),
|
|
385
378
|
where: t.arg({ type: inputWhere }),
|
|
386
379
|
},
|
|
387
|
-
resolve: async (
|
|
380
|
+
resolve: async (query, _parent, args, ctx, info) => {
|
|
388
381
|
const operation = "update";
|
|
389
382
|
if (executable?.({
|
|
390
383
|
modelName,
|
|
@@ -400,6 +393,7 @@ class PothosDrizzleGenerator extends core_1.BasePlugin {
|
|
|
400
393
|
if (p.depthLimit !== undefined &&
|
|
401
394
|
(0, utils_js_1.getQueryDepth)(info) > p.depthLimit)
|
|
402
395
|
throw new Error("Depth limit exceeded");
|
|
396
|
+
query({});
|
|
403
397
|
return generator.getClient(ctx)
|
|
404
398
|
.update(table)
|
|
405
399
|
.set(args.input)
|
|
@@ -415,13 +409,13 @@ class PothosDrizzleGenerator extends core_1.BasePlugin {
|
|
|
415
409
|
if (operations.includes("delete")) {
|
|
416
410
|
builder.mutationType({
|
|
417
411
|
fields: (t) => ({
|
|
418
|
-
[`delete${tableInfo.name}`]: t.
|
|
419
|
-
type: [
|
|
412
|
+
[`delete${tableInfo.name}`]: t.drizzleField({
|
|
413
|
+
type: [modelName],
|
|
420
414
|
nullable: false,
|
|
421
415
|
args: {
|
|
422
416
|
where: t.arg({ type: inputWhere }),
|
|
423
417
|
},
|
|
424
|
-
resolve: async (_parent, args, ctx, info) => {
|
|
418
|
+
resolve: async (query, _parent, args, ctx, info) => {
|
|
425
419
|
const operation = "delete";
|
|
426
420
|
if (executable?.({
|
|
427
421
|
modelName,
|
|
@@ -437,6 +431,7 @@ class PothosDrizzleGenerator extends core_1.BasePlugin {
|
|
|
437
431
|
if (p.depthLimit !== undefined &&
|
|
438
432
|
(0, utils_js_1.getQueryDepth)(info) > p.depthLimit)
|
|
439
433
|
throw new Error("Depth limit exceeded");
|
|
434
|
+
query({});
|
|
440
435
|
return generator.getClient(ctx)
|
|
441
436
|
.delete(table)
|
|
442
437
|
.where((0, utils_js_1.createWhereQuery)(table, {
|
|
@@ -64,7 +64,7 @@ declare global {
|
|
|
64
64
|
ctx: Types["Context"];
|
|
65
65
|
modelName: U;
|
|
66
66
|
operation: (typeof OperationBasic)[number];
|
|
67
|
-
}) => RelationsFilter<Relations<Types>[
|
|
67
|
+
}) => RelationsFilter<Relations<Types>[any], Relations<Types>> | undefined;
|
|
68
68
|
inputFields?: <U extends TableNames<Types>>(params: {
|
|
69
69
|
modelName: U;
|
|
70
70
|
}) => {
|
|
@@ -78,7 +78,7 @@ declare global {
|
|
|
78
78
|
ctx: Types["Context"];
|
|
79
79
|
modelName: U;
|
|
80
80
|
operation: (typeof OperationBasic)[number];
|
|
81
|
-
}) => PgInsertValue<
|
|
81
|
+
}) => PgInsertValue<AnyTable<Types> extends PgTable ? AnyTable<Types> : never, true> | undefined;
|
|
82
82
|
};
|
|
83
83
|
models?: {
|
|
84
84
|
[U in TableNames<Types>]?: {
|
|
@@ -13,21 +13,10 @@ export class PothosDrizzleGenerator extends BasePlugin {
|
|
|
13
13
|
const generator = this.generator;
|
|
14
14
|
const builder = this.builder;
|
|
15
15
|
const tables = generator.getTables();
|
|
16
|
+
const modelObjects = {};
|
|
16
17
|
for (const [modelName, { table, tableInfo, relations, columns, operations, executable, limit, where, orderBy, inputData, depthLimit, },] of Object.entries(tables)) {
|
|
17
|
-
const objectRef = builder.objectRef(`${tableInfo.name}_`);
|
|
18
|
-
objectRef.implement({
|
|
19
|
-
fields: (t) => Object.fromEntries(columns.map((c) => {
|
|
20
|
-
return [
|
|
21
|
-
c.name,
|
|
22
|
-
t.expose(c.name, {
|
|
23
|
-
type: generator.getDataType(c),
|
|
24
|
-
nullable: !c.notNull,
|
|
25
|
-
}),
|
|
26
|
-
];
|
|
27
|
-
})),
|
|
28
|
-
});
|
|
29
18
|
const filterRelations = Object.entries(relations).filter(([, relay]) => tables[relay.targetTableName]);
|
|
30
|
-
builder.drizzleObject(modelName, {
|
|
19
|
+
modelObjects[modelName] = builder.drizzleObject(modelName, {
|
|
31
20
|
name: tableInfo.name,
|
|
32
21
|
fields: (t) => {
|
|
33
22
|
const relayList = filterRelations.map(([relayName, relay]) => {
|
|
@@ -313,7 +302,7 @@ export class PothosDrizzleGenerator extends BasePlugin {
|
|
|
313
302
|
type: modelName,
|
|
314
303
|
nullable: false,
|
|
315
304
|
args: { input: t.arg({ type: inputCreate, required: true }) },
|
|
316
|
-
resolve: async (
|
|
305
|
+
resolve: async (query, _parent, args, ctx, info) => {
|
|
317
306
|
const operation = "createOne";
|
|
318
307
|
if (executable?.({
|
|
319
308
|
modelName,
|
|
@@ -329,6 +318,7 @@ export class PothosDrizzleGenerator extends BasePlugin {
|
|
|
329
318
|
if (p.depthLimit !== undefined &&
|
|
330
319
|
getQueryDepth(info) > p.depthLimit)
|
|
331
320
|
throw new Error("Depth limit exceeded");
|
|
321
|
+
query({});
|
|
332
322
|
return generator.getClient(ctx)
|
|
333
323
|
.insert(table)
|
|
334
324
|
.values({ ...args.input, ...p.input })
|
|
@@ -346,7 +336,7 @@ export class PothosDrizzleGenerator extends BasePlugin {
|
|
|
346
336
|
type: [modelName],
|
|
347
337
|
nullable: false,
|
|
348
338
|
args: { input: t.arg({ type: [inputCreate], required: true }) },
|
|
349
|
-
resolve: async (
|
|
339
|
+
resolve: async (query, _parent, args, ctx, info) => {
|
|
350
340
|
const operation = "createMany";
|
|
351
341
|
if (executable?.({
|
|
352
342
|
modelName,
|
|
@@ -362,6 +352,9 @@ export class PothosDrizzleGenerator extends BasePlugin {
|
|
|
362
352
|
if (p.depthLimit !== undefined &&
|
|
363
353
|
getQueryDepth(info) > p.depthLimit)
|
|
364
354
|
throw new Error("Depth limit exceeded");
|
|
355
|
+
if (!args.input.length)
|
|
356
|
+
return [];
|
|
357
|
+
query({});
|
|
365
358
|
return generator.getClient(ctx)
|
|
366
359
|
.insert(table)
|
|
367
360
|
.values(args.input.map((v) => ({ ...v, ...p.args })))
|
|
@@ -381,7 +374,7 @@ export class PothosDrizzleGenerator extends BasePlugin {
|
|
|
381
374
|
input: t.arg({ type: inputUpdate, required: true }),
|
|
382
375
|
where: t.arg({ type: inputWhere }),
|
|
383
376
|
},
|
|
384
|
-
resolve: async (
|
|
377
|
+
resolve: async (query, _parent, args, ctx, info) => {
|
|
385
378
|
const operation = "update";
|
|
386
379
|
if (executable?.({
|
|
387
380
|
modelName,
|
|
@@ -397,6 +390,7 @@ export class PothosDrizzleGenerator extends BasePlugin {
|
|
|
397
390
|
if (p.depthLimit !== undefined &&
|
|
398
391
|
getQueryDepth(info) > p.depthLimit)
|
|
399
392
|
throw new Error("Depth limit exceeded");
|
|
393
|
+
query({});
|
|
400
394
|
return generator.getClient(ctx)
|
|
401
395
|
.update(table)
|
|
402
396
|
.set(args.input)
|
|
@@ -412,13 +406,13 @@ export class PothosDrizzleGenerator extends BasePlugin {
|
|
|
412
406
|
if (operations.includes("delete")) {
|
|
413
407
|
builder.mutationType({
|
|
414
408
|
fields: (t) => ({
|
|
415
|
-
[`delete${tableInfo.name}`]: t.
|
|
416
|
-
type: [
|
|
409
|
+
[`delete${tableInfo.name}`]: t.drizzleField({
|
|
410
|
+
type: [modelName],
|
|
417
411
|
nullable: false,
|
|
418
412
|
args: {
|
|
419
413
|
where: t.arg({ type: inputWhere }),
|
|
420
414
|
},
|
|
421
|
-
resolve: async (_parent, args, ctx, info) => {
|
|
415
|
+
resolve: async (query, _parent, args, ctx, info) => {
|
|
422
416
|
const operation = "delete";
|
|
423
417
|
if (executable?.({
|
|
424
418
|
modelName,
|
|
@@ -434,6 +428,7 @@ export class PothosDrizzleGenerator extends BasePlugin {
|
|
|
434
428
|
if (p.depthLimit !== undefined &&
|
|
435
429
|
getQueryDepth(info) > p.depthLimit)
|
|
436
430
|
throw new Error("Depth limit exceeded");
|
|
431
|
+
query({});
|
|
437
432
|
return generator.getClient(ctx)
|
|
438
433
|
.delete(table)
|
|
439
434
|
.where(createWhereQuery(table, {
|
|
@@ -64,7 +64,7 @@ declare global {
|
|
|
64
64
|
ctx: Types["Context"];
|
|
65
65
|
modelName: U;
|
|
66
66
|
operation: (typeof OperationBasic)[number];
|
|
67
|
-
}) => RelationsFilter<Relations<Types>[
|
|
67
|
+
}) => RelationsFilter<Relations<Types>[any], Relations<Types>> | undefined;
|
|
68
68
|
inputFields?: <U extends TableNames<Types>>(params: {
|
|
69
69
|
modelName: U;
|
|
70
70
|
}) => {
|
|
@@ -78,7 +78,7 @@ declare global {
|
|
|
78
78
|
ctx: Types["Context"];
|
|
79
79
|
modelName: U;
|
|
80
80
|
operation: (typeof OperationBasic)[number];
|
|
81
|
-
}) => PgInsertValue<
|
|
81
|
+
}) => PgInsertValue<AnyTable<Types> extends PgTable ? AnyTable<Types> : never, true> | undefined;
|
|
82
82
|
};
|
|
83
83
|
models?: {
|
|
84
84
|
[U in TableNames<Types>]?: {
|