@vantreeseba/drizzle-graphql 7.3.0 → 7.4.0
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/README.md +62 -0
- package/dist/README.md +62 -0
- package/dist/index.cjs +180 -103
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +91 -23
- package/dist/index.d.ts +91 -23
- package/dist/index.js +178 -102
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -103,6 +103,10 @@ var getOrCreateLoader = (context, key, batchFn) => {
|
|
|
103
103
|
import pluralize from "pluralize";
|
|
104
104
|
var uncapitalize = (input) => input?.length ? `${input[0].toLocaleLowerCase()}${input.length > 1 ? input.slice(1, input.length) : ""}` : input;
|
|
105
105
|
var capitalize = (input) => input?.length ? `${input[0].toLocaleUpperCase()}${input.length > 1 ? input.slice(1, input.length) : ""}` : input;
|
|
106
|
+
var singularizeMapper = (tableName) => ({
|
|
107
|
+
singular: uncapitalize(pluralize.singular(tableName)),
|
|
108
|
+
plural: uncapitalize(pluralize.plural(tableName))
|
|
109
|
+
});
|
|
106
110
|
|
|
107
111
|
// src/util/data-mappers/index.ts
|
|
108
112
|
import { getTableColumns as getTableColumns2, is as is2, One } from "drizzle-orm";
|
|
@@ -1898,7 +1902,7 @@ var generateSelectFields = (tables, tableName, relationMap, fromTableName, fromR
|
|
|
1898
1902
|
]);
|
|
1899
1903
|
continue;
|
|
1900
1904
|
}
|
|
1901
|
-
const targetDistinctEnum = cacheCtx.
|
|
1905
|
+
const targetDistinctEnum = cacheCtx.featureOf(targetTableName).distinct ? generateDistinctEnum(tables[targetTableName], resolveTypeName(targetTableName, typeNameMapper)) : void 0;
|
|
1902
1906
|
rawRelationFields.push([
|
|
1903
1907
|
relationName,
|
|
1904
1908
|
{
|
|
@@ -2008,7 +2012,7 @@ var generateTableTypes = (tableName, tables, relationMap, withReturning, relatio
|
|
|
2008
2012
|
const updateFields = Object.fromEntries(
|
|
2009
2013
|
columnEntries.map(([columnName, column]) => {
|
|
2010
2014
|
const converted = drizzleColumnToGraphQLType(column, columnName, tableName, true, false, true);
|
|
2011
|
-
const operations = cacheCtx.
|
|
2015
|
+
const operations = cacheCtx.featureOf(tableName).fieldUpdateOperations ? fieldUpdateInputType(column, columnName, tableName) : void 0;
|
|
2012
2016
|
const field = operations ? { ...converted, type: operations } : converted;
|
|
2013
2017
|
return [columnName, { ...field, ...inputFieldDocs(cacheCtx.docs, column, tableName, columnName, field.type) }];
|
|
2014
2018
|
})
|
|
@@ -3433,6 +3437,38 @@ import {
|
|
|
3433
3437
|
} from "graphql";
|
|
3434
3438
|
import { parseResolveInfo as parseResolveInfo2 } from "graphql-parse-resolve-info";
|
|
3435
3439
|
|
|
3440
|
+
// src/util/features.ts
|
|
3441
|
+
var featureDefaults = {
|
|
3442
|
+
aggregates: true,
|
|
3443
|
+
groupBy: true,
|
|
3444
|
+
relationAggregates: true,
|
|
3445
|
+
distinct: true,
|
|
3446
|
+
insert: true,
|
|
3447
|
+
update: true,
|
|
3448
|
+
updateMany: true,
|
|
3449
|
+
delete: true,
|
|
3450
|
+
upsert: false,
|
|
3451
|
+
fieldUpdateOperations: false,
|
|
3452
|
+
countMutations: false,
|
|
3453
|
+
requireWhere: false
|
|
3454
|
+
};
|
|
3455
|
+
var resolveTableFeatures = (features) => {
|
|
3456
|
+
const cache = /* @__PURE__ */ new Map();
|
|
3457
|
+
const names = Object.keys(featureDefaults);
|
|
3458
|
+
return (tableName) => {
|
|
3459
|
+
let resolved = cache.get(tableName);
|
|
3460
|
+
if (!resolved) {
|
|
3461
|
+
resolved = {};
|
|
3462
|
+
for (const name of names) {
|
|
3463
|
+
const configured = features?.[name];
|
|
3464
|
+
resolved[name] = configured === void 0 ? featureDefaults[name] : typeof configured === "function" ? !!configured(tableName) : !!configured;
|
|
3465
|
+
}
|
|
3466
|
+
cache.set(tableName, resolved);
|
|
3467
|
+
}
|
|
3468
|
+
return resolved;
|
|
3469
|
+
};
|
|
3470
|
+
};
|
|
3471
|
+
|
|
3436
3472
|
// src/util/builders/aggregates.ts
|
|
3437
3473
|
import {
|
|
3438
3474
|
and as and2,
|
|
@@ -4192,6 +4228,8 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4192
4228
|
const excludedTables = new Set(options.exclude?.tables ?? []);
|
|
4193
4229
|
const tableEntries = schemaEntries.filter(([key, value]) => is4(value, MySqlTable) && !excludedTables.has(key));
|
|
4194
4230
|
const tables = Object.fromEntries(tableEntries);
|
|
4231
|
+
const featureOf = resolveTableFeatures(features);
|
|
4232
|
+
const anyTable = (feature) => tableEntries.some(([name]) => featureOf(name)[feature]);
|
|
4195
4233
|
if (!tableEntries.length) {
|
|
4196
4234
|
throw new Error(
|
|
4197
4235
|
"Drizzle-GraphQL Error: No tables detected in Drizzle-ORM's database instance. Did you forget to pass schema to drizzle constructor?"
|
|
@@ -4234,9 +4272,9 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4234
4272
|
complexity,
|
|
4235
4273
|
limits,
|
|
4236
4274
|
docs: options.docs ?? {},
|
|
4237
|
-
|
|
4275
|
+
featureOf
|
|
4238
4276
|
};
|
|
4239
|
-
const relationAggregateFactory =
|
|
4277
|
+
const relationAggregateFactory = anyTable("relationAggregates") ? createRelationAggregateFactory(db, tables, cacheCtx, typeNameMapper, filterCtx) : void 0;
|
|
4240
4278
|
const queries = {};
|
|
4241
4279
|
const mutations = {};
|
|
4242
4280
|
const mutationTxCtx = createMutationTxCtx(options.transactions);
|
|
@@ -4254,7 +4292,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4254
4292
|
prefixes.insert,
|
|
4255
4293
|
prefixes.update,
|
|
4256
4294
|
resolverFactory,
|
|
4257
|
-
relationAggregateFactory
|
|
4295
|
+
featureOf(tableName).relationAggregates ? relationAggregateFactory : void 0
|
|
4258
4296
|
)
|
|
4259
4297
|
])
|
|
4260
4298
|
);
|
|
@@ -4268,10 +4306,11 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4268
4306
|
});
|
|
4269
4307
|
const inputs = {};
|
|
4270
4308
|
const outputs = {};
|
|
4271
|
-
if (
|
|
4309
|
+
if (["insert", "upsert", "update", "delete"].some((feature) => anyTable(feature))) {
|
|
4272
4310
|
outputs.MutationReturn = mutationReturnType;
|
|
4273
4311
|
}
|
|
4274
4312
|
for (const [tableName, tableTypes] of Object.entries(gqlSchemaTypes)) {
|
|
4313
|
+
const tableFeatures = featureOf(tableName);
|
|
4275
4314
|
const { insertInput, updateInput, tableFilters, tableOrder } = tableTypes.inputs;
|
|
4276
4315
|
const { selectSingleOutput, selectArrOutput } = tableTypes.outputs;
|
|
4277
4316
|
const {
|
|
@@ -4303,7 +4342,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4303
4342
|
typeName,
|
|
4304
4343
|
typeNameMapper,
|
|
4305
4344
|
filterCtx,
|
|
4306
|
-
|
|
4345
|
+
tableFeatures.distinct,
|
|
4307
4346
|
limits
|
|
4308
4347
|
);
|
|
4309
4348
|
const selectSingleGenerated = generateSelectSingle(
|
|
@@ -4319,7 +4358,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4319
4358
|
filterCtx,
|
|
4320
4359
|
limits
|
|
4321
4360
|
);
|
|
4322
|
-
const insertArrGenerated =
|
|
4361
|
+
const insertArrGenerated = tableFeatures.insert ? generateInsertArray(
|
|
4323
4362
|
db,
|
|
4324
4363
|
tableName,
|
|
4325
4364
|
schema[tableName],
|
|
@@ -4327,7 +4366,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4327
4366
|
createArrayFieldName,
|
|
4328
4367
|
mutationTxCtx
|
|
4329
4368
|
) : void 0;
|
|
4330
|
-
const insertSingleGenerated =
|
|
4369
|
+
const insertSingleGenerated = tableFeatures.insert ? generateInsertSingle(
|
|
4331
4370
|
db,
|
|
4332
4371
|
tableName,
|
|
4333
4372
|
schema[tableName],
|
|
@@ -4335,7 +4374,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4335
4374
|
createSingleFieldName,
|
|
4336
4375
|
mutationTxCtx
|
|
4337
4376
|
) : void 0;
|
|
4338
|
-
const onConflictInput =
|
|
4377
|
+
const onConflictInput = tableFeatures.upsert ? generateOnConflictInput({
|
|
4339
4378
|
table: schema[tableName],
|
|
4340
4379
|
typeName,
|
|
4341
4380
|
uniqueSets: [],
|
|
@@ -4360,7 +4399,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4360
4399
|
true,
|
|
4361
4400
|
mutationTxCtx
|
|
4362
4401
|
) : void 0;
|
|
4363
|
-
const updateGenerated =
|
|
4402
|
+
const updateGenerated = tableFeatures.update ? generateUpdate(
|
|
4364
4403
|
db,
|
|
4365
4404
|
tableName,
|
|
4366
4405
|
schema[tableName],
|
|
@@ -4368,11 +4407,11 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4368
4407
|
tableFilters,
|
|
4369
4408
|
updateFieldName,
|
|
4370
4409
|
false,
|
|
4371
|
-
|
|
4410
|
+
tableFeatures.requireWhere,
|
|
4372
4411
|
filterCtx,
|
|
4373
4412
|
mutationTxCtx
|
|
4374
4413
|
) : void 0;
|
|
4375
|
-
const updateSingleGenerated =
|
|
4414
|
+
const updateSingleGenerated = tableFeatures.update ? generateUpdate(
|
|
4376
4415
|
db,
|
|
4377
4416
|
tableName,
|
|
4378
4417
|
schema[tableName],
|
|
@@ -4380,11 +4419,11 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4380
4419
|
tableFilters,
|
|
4381
4420
|
updateSingleFieldName,
|
|
4382
4421
|
true,
|
|
4383
|
-
|
|
4422
|
+
tableFeatures.requireWhere,
|
|
4384
4423
|
filterCtx,
|
|
4385
4424
|
mutationTxCtx
|
|
4386
4425
|
) : void 0;
|
|
4387
|
-
const updateManyInput =
|
|
4426
|
+
const updateManyInput = tableFeatures.update && tableFeatures.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
4388
4427
|
const updateManyGenerated = updateManyInput ? generateUpdateMany(
|
|
4389
4428
|
db,
|
|
4390
4429
|
tableName,
|
|
@@ -4394,29 +4433,29 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4394
4433
|
filterCtx,
|
|
4395
4434
|
mutationTxCtx
|
|
4396
4435
|
) : void 0;
|
|
4397
|
-
const deleteGenerated =
|
|
4436
|
+
const deleteGenerated = tableFeatures.delete ? generateDelete(
|
|
4398
4437
|
db,
|
|
4399
4438
|
tableName,
|
|
4400
4439
|
schema[tableName],
|
|
4401
4440
|
tableFilters,
|
|
4402
4441
|
deleteFieldName,
|
|
4403
4442
|
false,
|
|
4404
|
-
|
|
4443
|
+
tableFeatures.requireWhere,
|
|
4405
4444
|
filterCtx,
|
|
4406
4445
|
mutationTxCtx
|
|
4407
4446
|
) : void 0;
|
|
4408
|
-
const deleteSingleGenerated =
|
|
4447
|
+
const deleteSingleGenerated = tableFeatures.delete ? generateDelete(
|
|
4409
4448
|
db,
|
|
4410
4449
|
tableName,
|
|
4411
4450
|
schema[tableName],
|
|
4412
4451
|
tableFilters,
|
|
4413
4452
|
deleteSingleFieldName,
|
|
4414
4453
|
true,
|
|
4415
|
-
|
|
4454
|
+
tableFeatures.requireWhere,
|
|
4416
4455
|
filterCtx,
|
|
4417
4456
|
mutationTxCtx
|
|
4418
4457
|
) : void 0;
|
|
4419
|
-
const updateCountGenerated =
|
|
4458
|
+
const updateCountGenerated = tableFeatures.update && tableFeatures.countMutations ? generateWriteCount({
|
|
4420
4459
|
db,
|
|
4421
4460
|
tableName,
|
|
4422
4461
|
table: schema[tableName],
|
|
@@ -4424,23 +4463,23 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4424
4463
|
setArgs: updateInput,
|
|
4425
4464
|
filterArgs: tableFilters,
|
|
4426
4465
|
fieldName: updateCountFieldName,
|
|
4427
|
-
requireWhere:
|
|
4466
|
+
requireWhere: tableFeatures.requireWhere,
|
|
4428
4467
|
filterCtx,
|
|
4429
4468
|
txCtx: mutationTxCtx
|
|
4430
4469
|
}) : void 0;
|
|
4431
|
-
const deleteCountGenerated =
|
|
4470
|
+
const deleteCountGenerated = tableFeatures.delete && tableFeatures.countMutations ? generateWriteCount({
|
|
4432
4471
|
db,
|
|
4433
4472
|
tableName,
|
|
4434
4473
|
table: schema[tableName],
|
|
4435
4474
|
kind: "delete",
|
|
4436
4475
|
filterArgs: tableFilters,
|
|
4437
4476
|
fieldName: deleteCountFieldName,
|
|
4438
|
-
requireWhere:
|
|
4477
|
+
requireWhere: tableFeatures.requireWhere,
|
|
4439
4478
|
filterCtx,
|
|
4440
4479
|
txCtx: mutationTxCtx
|
|
4441
4480
|
}) : void 0;
|
|
4442
|
-
const aggregateType =
|
|
4443
|
-
const aggregateGenerated =
|
|
4481
|
+
const aggregateType = tableFeatures.aggregates ? generateAggregateTypes(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
4482
|
+
const aggregateGenerated = tableFeatures.aggregates ? generateAggregate(
|
|
4444
4483
|
db,
|
|
4445
4484
|
tableName,
|
|
4446
4485
|
schema[tableName],
|
|
@@ -4449,7 +4488,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4449
4488
|
tableFilters,
|
|
4450
4489
|
filterCtx
|
|
4451
4490
|
) : void 0;
|
|
4452
|
-
const groupByType =
|
|
4491
|
+
const groupByType = tableFeatures.aggregates && tableFeatures.groupBy ? generateGroupByType(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
4453
4492
|
const groupByEnum = groupByType ? generateGroupByEnum(schema[tableName], tableName, typeName) : void 0;
|
|
4454
4493
|
const havingInput = groupByEnum ? generateHavingInput(schema[tableName], tableName, typeName) : void 0;
|
|
4455
4494
|
const groupByGenerated = groupByType && groupByEnum && havingInput ? generateGroupBy(
|
|
@@ -4527,9 +4566,9 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4527
4566
|
}
|
|
4528
4567
|
const activeInputs = [
|
|
4529
4568
|
// The insert input types the upsert mutations too, so either feature keeps it.
|
|
4530
|
-
...
|
|
4569
|
+
...tableFeatures.insert || onConflictInput ? [insertInput] : [],
|
|
4531
4570
|
...onConflictInput ? [onConflictInput] : [],
|
|
4532
|
-
...
|
|
4571
|
+
...tableFeatures.update ? [updateInput] : [],
|
|
4533
4572
|
...updateManyInput ? [updateManyInput] : [],
|
|
4534
4573
|
tableFilters,
|
|
4535
4574
|
tableOrder
|
|
@@ -5567,6 +5606,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5567
5606
|
const excludedTables = new Set(options.exclude?.tables ?? []);
|
|
5568
5607
|
const tableEntries = schemaEntries.filter(([key, value]) => is6(value, PgTable) && !excludedTables.has(key));
|
|
5569
5608
|
const tables = Object.fromEntries(tableEntries);
|
|
5609
|
+
const featureOf = resolveTableFeatures(features);
|
|
5610
|
+
const anyTable = (feature) => tableEntries.some(([name]) => featureOf(name)[feature]);
|
|
5570
5611
|
if (!tableEntries.length) {
|
|
5571
5612
|
throw new Error(
|
|
5572
5613
|
"Drizzle-GraphQL Error: No tables detected in Drizzle-ORM's database instance. Did you forget to pass schema to drizzle constructor?"
|
|
@@ -5604,7 +5645,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5604
5645
|
complexity,
|
|
5605
5646
|
limits,
|
|
5606
5647
|
docs: options.docs ?? {},
|
|
5607
|
-
|
|
5648
|
+
featureOf
|
|
5608
5649
|
};
|
|
5609
5650
|
const nestedPlans = features.nestedWrites ? buildNestedWritePlans(
|
|
5610
5651
|
tables,
|
|
@@ -5615,7 +5656,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5615
5656
|
) : void 0;
|
|
5616
5657
|
const nestedTypes = nestedPlans ? createNestedWriteTypes({ plans: nestedPlans, cacheCtx, typeNameMapper, insertPrefix: prefixes.insert }) : void 0;
|
|
5617
5658
|
const nestedRuntime = nestedPlans ? createNestedWriteRuntime({ plans: nestedPlans, filterCtx }) : void 0;
|
|
5618
|
-
const relationAggregateFactory =
|
|
5659
|
+
const relationAggregateFactory = anyTable("relationAggregates") ? createRelationAggregateFactory(db, tables, cacheCtx, typeNameMapper, filterCtx) : void 0;
|
|
5619
5660
|
const queries = {};
|
|
5620
5661
|
const mutations = {};
|
|
5621
5662
|
const mutationTxCtx = createMutationTxCtx(options.transactions);
|
|
@@ -5633,7 +5674,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5633
5674
|
prefixes.insert,
|
|
5634
5675
|
prefixes.update,
|
|
5635
5676
|
resolverFactory,
|
|
5636
|
-
relationAggregateFactory,
|
|
5677
|
+
featureOf(tableName).relationAggregates ? relationAggregateFactory : void 0,
|
|
5637
5678
|
nestedTypes
|
|
5638
5679
|
)
|
|
5639
5680
|
])
|
|
@@ -5641,6 +5682,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5641
5682
|
const inputs = {};
|
|
5642
5683
|
const outputs = {};
|
|
5643
5684
|
for (const [tableName, tableTypes] of Object.entries(gqlSchemaTypes)) {
|
|
5685
|
+
const tableFeatures = featureOf(tableName);
|
|
5644
5686
|
const { insertInput, updateInput, tableFilters, tableOrder } = tableTypes.inputs;
|
|
5645
5687
|
const { selectSingleOutput, selectArrOutput, singleTableItemOutput, arrTableItemOutput } = tableTypes.outputs;
|
|
5646
5688
|
const {
|
|
@@ -5672,7 +5714,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5672
5714
|
typeName,
|
|
5673
5715
|
typeNameMapper,
|
|
5674
5716
|
filterCtx,
|
|
5675
|
-
|
|
5717
|
+
tableFeatures.distinct,
|
|
5676
5718
|
limits
|
|
5677
5719
|
);
|
|
5678
5720
|
const selectSingleGenerated = generateSelectSingle2(
|
|
@@ -5688,7 +5730,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5688
5730
|
filterCtx,
|
|
5689
5731
|
limits
|
|
5690
5732
|
);
|
|
5691
|
-
const insertArrGenerated =
|
|
5733
|
+
const insertArrGenerated = tableFeatures.insert ? generateInsertArray2(
|
|
5692
5734
|
db,
|
|
5693
5735
|
tableName,
|
|
5694
5736
|
schema[tableName],
|
|
@@ -5703,7 +5745,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5703
5745
|
nestedRuntime,
|
|
5704
5746
|
limits
|
|
5705
5747
|
) : void 0;
|
|
5706
|
-
const insertSingleGenerated =
|
|
5748
|
+
const insertSingleGenerated = tableFeatures.insert ? generateInsertSingle2(
|
|
5707
5749
|
db,
|
|
5708
5750
|
tableName,
|
|
5709
5751
|
schema[tableName],
|
|
@@ -5718,8 +5760,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5718
5760
|
nestedRuntime,
|
|
5719
5761
|
limits
|
|
5720
5762
|
) : void 0;
|
|
5721
|
-
const uniqueSets =
|
|
5722
|
-
const onConflictInput =
|
|
5763
|
+
const uniqueSets = tableFeatures.upsert ? getUniqueColumnSets(schema[tableName], getTableConfig2) : [];
|
|
5764
|
+
const onConflictInput = tableFeatures.upsert ? generateOnConflictInput({
|
|
5723
5765
|
table: schema[tableName],
|
|
5724
5766
|
typeName,
|
|
5725
5767
|
uniqueSets,
|
|
@@ -5762,7 +5804,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5762
5804
|
nestedRuntime,
|
|
5763
5805
|
limits
|
|
5764
5806
|
) : void 0;
|
|
5765
|
-
const updateGenerated =
|
|
5807
|
+
const updateGenerated = tableFeatures.update ? generateUpdate2(
|
|
5766
5808
|
db,
|
|
5767
5809
|
tableName,
|
|
5768
5810
|
schema[tableName],
|
|
@@ -5773,14 +5815,14 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5773
5815
|
updateFieldName,
|
|
5774
5816
|
typeName,
|
|
5775
5817
|
false,
|
|
5776
|
-
|
|
5818
|
+
tableFeatures.requireWhere,
|
|
5777
5819
|
typeNameMapper,
|
|
5778
5820
|
filterCtx,
|
|
5779
5821
|
mutationTxCtx,
|
|
5780
5822
|
nestedRuntime,
|
|
5781
5823
|
limits
|
|
5782
5824
|
) : void 0;
|
|
5783
|
-
const updateSingleGenerated =
|
|
5825
|
+
const updateSingleGenerated = tableFeatures.update ? generateUpdate2(
|
|
5784
5826
|
db,
|
|
5785
5827
|
tableName,
|
|
5786
5828
|
schema[tableName],
|
|
@@ -5791,14 +5833,14 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5791
5833
|
updateSingleFieldName,
|
|
5792
5834
|
typeName,
|
|
5793
5835
|
true,
|
|
5794
|
-
|
|
5836
|
+
tableFeatures.requireWhere,
|
|
5795
5837
|
typeNameMapper,
|
|
5796
5838
|
filterCtx,
|
|
5797
5839
|
mutationTxCtx,
|
|
5798
5840
|
nestedRuntime,
|
|
5799
5841
|
limits
|
|
5800
5842
|
) : void 0;
|
|
5801
|
-
const updateManyInput =
|
|
5843
|
+
const updateManyInput = tableFeatures.update && tableFeatures.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
5802
5844
|
const updateManyGenerated = updateManyInput ? generateUpdateMany2(
|
|
5803
5845
|
db,
|
|
5804
5846
|
tableName,
|
|
@@ -5814,7 +5856,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5814
5856
|
nestedRuntime,
|
|
5815
5857
|
limits
|
|
5816
5858
|
) : void 0;
|
|
5817
|
-
const deleteGenerated =
|
|
5859
|
+
const deleteGenerated = tableFeatures.delete ? generateDelete2(
|
|
5818
5860
|
db,
|
|
5819
5861
|
tableName,
|
|
5820
5862
|
schema[tableName],
|
|
@@ -5822,12 +5864,12 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5822
5864
|
deleteFieldName,
|
|
5823
5865
|
typeName,
|
|
5824
5866
|
false,
|
|
5825
|
-
|
|
5867
|
+
tableFeatures.requireWhere,
|
|
5826
5868
|
filterCtx,
|
|
5827
5869
|
{ tableName, relationMap: namedRelations, tables },
|
|
5828
5870
|
mutationTxCtx
|
|
5829
5871
|
) : void 0;
|
|
5830
|
-
const deleteSingleGenerated =
|
|
5872
|
+
const deleteSingleGenerated = tableFeatures.delete ? generateDelete2(
|
|
5831
5873
|
db,
|
|
5832
5874
|
tableName,
|
|
5833
5875
|
schema[tableName],
|
|
@@ -5835,12 +5877,12 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5835
5877
|
deleteSingleFieldName,
|
|
5836
5878
|
typeName,
|
|
5837
5879
|
true,
|
|
5838
|
-
|
|
5880
|
+
tableFeatures.requireWhere,
|
|
5839
5881
|
filterCtx,
|
|
5840
5882
|
{ tableName, relationMap: namedRelations, tables },
|
|
5841
5883
|
mutationTxCtx
|
|
5842
5884
|
) : void 0;
|
|
5843
|
-
const updateCountGenerated =
|
|
5885
|
+
const updateCountGenerated = tableFeatures.update && tableFeatures.countMutations ? generateWriteCount({
|
|
5844
5886
|
db,
|
|
5845
5887
|
tableName,
|
|
5846
5888
|
table: schema[tableName],
|
|
@@ -5848,24 +5890,24 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5848
5890
|
setArgs: updateInput,
|
|
5849
5891
|
filterArgs: tableFilters,
|
|
5850
5892
|
fieldName: updateCountFieldName,
|
|
5851
|
-
requireWhere:
|
|
5893
|
+
requireWhere: tableFeatures.requireWhere,
|
|
5852
5894
|
filterCtx,
|
|
5853
5895
|
txCtx: mutationTxCtx,
|
|
5854
5896
|
nested: nestedRuntime
|
|
5855
5897
|
}) : void 0;
|
|
5856
|
-
const deleteCountGenerated =
|
|
5898
|
+
const deleteCountGenerated = tableFeatures.delete && tableFeatures.countMutations ? generateWriteCount({
|
|
5857
5899
|
db,
|
|
5858
5900
|
tableName,
|
|
5859
5901
|
table: schema[tableName],
|
|
5860
5902
|
kind: "delete",
|
|
5861
5903
|
filterArgs: tableFilters,
|
|
5862
5904
|
fieldName: deleteCountFieldName,
|
|
5863
|
-
requireWhere:
|
|
5905
|
+
requireWhere: tableFeatures.requireWhere,
|
|
5864
5906
|
filterCtx,
|
|
5865
5907
|
txCtx: mutationTxCtx
|
|
5866
5908
|
}) : void 0;
|
|
5867
|
-
const aggregateType =
|
|
5868
|
-
const aggregateGenerated =
|
|
5909
|
+
const aggregateType = tableFeatures.aggregates ? generateAggregateTypes(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
5910
|
+
const aggregateGenerated = tableFeatures.aggregates ? generateAggregate(
|
|
5869
5911
|
db,
|
|
5870
5912
|
tableName,
|
|
5871
5913
|
schema[tableName],
|
|
@@ -5874,7 +5916,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5874
5916
|
tableFilters,
|
|
5875
5917
|
filterCtx
|
|
5876
5918
|
) : void 0;
|
|
5877
|
-
const groupByType =
|
|
5919
|
+
const groupByType = tableFeatures.aggregates && tableFeatures.groupBy ? generateGroupByType(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
5878
5920
|
const groupByEnum = groupByType ? generateGroupByEnum(schema[tableName], tableName, typeName) : void 0;
|
|
5879
5921
|
const havingInput = groupByEnum ? generateHavingInput(schema[tableName], tableName, typeName) : void 0;
|
|
5880
5922
|
const groupByGenerated = groupByType && groupByEnum && havingInput ? generateGroupBy(
|
|
@@ -6002,9 +6044,9 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
6002
6044
|
}
|
|
6003
6045
|
const activeInputs = [
|
|
6004
6046
|
// The insert input types the upsert mutations too, so either feature keeps it.
|
|
6005
|
-
...
|
|
6047
|
+
...tableFeatures.insert || onConflictInput ? [insertInput] : [],
|
|
6006
6048
|
...onConflictInput ? [onConflictInput] : [],
|
|
6007
|
-
...
|
|
6049
|
+
...tableFeatures.update ? [updateInput] : [],
|
|
6008
6050
|
...updateManyInput ? [updateManyInput] : [],
|
|
6009
6051
|
tableFilters,
|
|
6010
6052
|
tableOrder
|
|
@@ -6589,6 +6631,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6589
6631
|
const excludedTables = new Set(options.exclude?.tables ?? []);
|
|
6590
6632
|
const tableEntries = schemaEntries.filter(([key, value]) => is7(value, SQLiteTable) && !excludedTables.has(key));
|
|
6591
6633
|
const tables = Object.fromEntries(tableEntries);
|
|
6634
|
+
const featureOf = resolveTableFeatures(features);
|
|
6635
|
+
const anyTable = (feature) => tableEntries.some(([name]) => featureOf(name)[feature]);
|
|
6592
6636
|
if (!tableEntries.length) {
|
|
6593
6637
|
throw new Error(
|
|
6594
6638
|
"Drizzle-GraphQL Error: No tables detected in Drizzle-ORM's database instance. Did you forget to pass schema to drizzle constructor?"
|
|
@@ -6626,7 +6670,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6626
6670
|
complexity,
|
|
6627
6671
|
limits,
|
|
6628
6672
|
docs: options.docs ?? {},
|
|
6629
|
-
|
|
6673
|
+
featureOf
|
|
6630
6674
|
};
|
|
6631
6675
|
if (features.nestedWrites && db.resultKind === "sync") {
|
|
6632
6676
|
throw new Error(
|
|
@@ -6642,7 +6686,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6642
6686
|
) : void 0;
|
|
6643
6687
|
const nestedTypes = nestedPlans ? createNestedWriteTypes({ plans: nestedPlans, cacheCtx, typeNameMapper, insertPrefix: prefixes.insert }) : void 0;
|
|
6644
6688
|
const nestedRuntime = nestedPlans ? createNestedWriteRuntime({ plans: nestedPlans, filterCtx }) : void 0;
|
|
6645
|
-
const relationAggregateFactory =
|
|
6689
|
+
const relationAggregateFactory = anyTable("relationAggregates") ? createRelationAggregateFactory(db, tables, cacheCtx, typeNameMapper, filterCtx) : void 0;
|
|
6646
6690
|
const queries = {};
|
|
6647
6691
|
const mutations = {};
|
|
6648
6692
|
if (options.transactions && db.resultKind === "sync") {
|
|
@@ -6665,7 +6709,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6665
6709
|
prefixes.insert,
|
|
6666
6710
|
prefixes.update,
|
|
6667
6711
|
resolverFactory,
|
|
6668
|
-
relationAggregateFactory,
|
|
6712
|
+
featureOf(tableName).relationAggregates ? relationAggregateFactory : void 0,
|
|
6669
6713
|
nestedTypes
|
|
6670
6714
|
)
|
|
6671
6715
|
])
|
|
@@ -6673,6 +6717,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6673
6717
|
const inputs = {};
|
|
6674
6718
|
const outputs = {};
|
|
6675
6719
|
for (const [tableName, tableTypes] of Object.entries(gqlSchemaTypes)) {
|
|
6720
|
+
const tableFeatures = featureOf(tableName);
|
|
6676
6721
|
const { insertInput, updateInput, tableFilters, tableOrder } = tableTypes.inputs;
|
|
6677
6722
|
const { selectSingleOutput, selectArrOutput, singleTableItemOutput, arrTableItemOutput } = tableTypes.outputs;
|
|
6678
6723
|
const {
|
|
@@ -6704,7 +6749,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6704
6749
|
typeName,
|
|
6705
6750
|
typeNameMapper,
|
|
6706
6751
|
filterCtx,
|
|
6707
|
-
|
|
6752
|
+
tableFeatures.distinct,
|
|
6708
6753
|
limits
|
|
6709
6754
|
);
|
|
6710
6755
|
const selectSingleGenerated = generateSelectSingle3(
|
|
@@ -6720,7 +6765,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6720
6765
|
filterCtx,
|
|
6721
6766
|
limits
|
|
6722
6767
|
);
|
|
6723
|
-
const insertArrGenerated =
|
|
6768
|
+
const insertArrGenerated = tableFeatures.insert ? generateInsertArray3(
|
|
6724
6769
|
db,
|
|
6725
6770
|
tableName,
|
|
6726
6771
|
schema[tableName],
|
|
@@ -6735,7 +6780,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6735
6780
|
nestedRuntime,
|
|
6736
6781
|
limits
|
|
6737
6782
|
) : void 0;
|
|
6738
|
-
const insertSingleGenerated =
|
|
6783
|
+
const insertSingleGenerated = tableFeatures.insert ? generateInsertSingle3(
|
|
6739
6784
|
db,
|
|
6740
6785
|
tableName,
|
|
6741
6786
|
schema[tableName],
|
|
@@ -6750,8 +6795,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6750
6795
|
nestedRuntime,
|
|
6751
6796
|
limits
|
|
6752
6797
|
) : void 0;
|
|
6753
|
-
const uniqueSets =
|
|
6754
|
-
const onConflictInput =
|
|
6798
|
+
const uniqueSets = tableFeatures.upsert ? getUniqueColumnSets(schema[tableName], getTableConfig3) : [];
|
|
6799
|
+
const onConflictInput = tableFeatures.upsert ? generateOnConflictInput({
|
|
6755
6800
|
table: schema[tableName],
|
|
6756
6801
|
typeName,
|
|
6757
6802
|
uniqueSets,
|
|
@@ -6794,7 +6839,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6794
6839
|
nestedRuntime,
|
|
6795
6840
|
limits
|
|
6796
6841
|
) : void 0;
|
|
6797
|
-
const updateGenerated =
|
|
6842
|
+
const updateGenerated = tableFeatures.update ? generateUpdate3(
|
|
6798
6843
|
db,
|
|
6799
6844
|
tableName,
|
|
6800
6845
|
schema[tableName],
|
|
@@ -6805,14 +6850,14 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6805
6850
|
updateFieldName,
|
|
6806
6851
|
typeName,
|
|
6807
6852
|
false,
|
|
6808
|
-
|
|
6853
|
+
tableFeatures.requireWhere,
|
|
6809
6854
|
typeNameMapper,
|
|
6810
6855
|
filterCtx,
|
|
6811
6856
|
mutationTxCtx,
|
|
6812
6857
|
nestedRuntime,
|
|
6813
6858
|
limits
|
|
6814
6859
|
) : void 0;
|
|
6815
|
-
const updateSingleGenerated =
|
|
6860
|
+
const updateSingleGenerated = tableFeatures.update ? generateUpdate3(
|
|
6816
6861
|
db,
|
|
6817
6862
|
tableName,
|
|
6818
6863
|
schema[tableName],
|
|
@@ -6823,14 +6868,14 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6823
6868
|
updateSingleFieldName,
|
|
6824
6869
|
typeName,
|
|
6825
6870
|
true,
|
|
6826
|
-
|
|
6871
|
+
tableFeatures.requireWhere,
|
|
6827
6872
|
typeNameMapper,
|
|
6828
6873
|
filterCtx,
|
|
6829
6874
|
mutationTxCtx,
|
|
6830
6875
|
nestedRuntime,
|
|
6831
6876
|
limits
|
|
6832
6877
|
) : void 0;
|
|
6833
|
-
const updateManyInput =
|
|
6878
|
+
const updateManyInput = tableFeatures.update && tableFeatures.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
6834
6879
|
const updateManyGenerated = updateManyInput ? generateUpdateMany3(
|
|
6835
6880
|
db,
|
|
6836
6881
|
tableName,
|
|
@@ -6846,7 +6891,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6846
6891
|
nestedRuntime,
|
|
6847
6892
|
limits
|
|
6848
6893
|
) : void 0;
|
|
6849
|
-
const deleteGenerated =
|
|
6894
|
+
const deleteGenerated = tableFeatures.delete ? generateDelete3(
|
|
6850
6895
|
db,
|
|
6851
6896
|
tableName,
|
|
6852
6897
|
schema[tableName],
|
|
@@ -6854,12 +6899,12 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6854
6899
|
deleteFieldName,
|
|
6855
6900
|
typeName,
|
|
6856
6901
|
false,
|
|
6857
|
-
|
|
6902
|
+
tableFeatures.requireWhere,
|
|
6858
6903
|
filterCtx,
|
|
6859
6904
|
{ tableName, relationMap: namedRelations, tables },
|
|
6860
6905
|
mutationTxCtx
|
|
6861
6906
|
) : void 0;
|
|
6862
|
-
const deleteSingleGenerated =
|
|
6907
|
+
const deleteSingleGenerated = tableFeatures.delete ? generateDelete3(
|
|
6863
6908
|
db,
|
|
6864
6909
|
tableName,
|
|
6865
6910
|
schema[tableName],
|
|
@@ -6867,12 +6912,12 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6867
6912
|
deleteSingleFieldName,
|
|
6868
6913
|
typeName,
|
|
6869
6914
|
true,
|
|
6870
|
-
|
|
6915
|
+
tableFeatures.requireWhere,
|
|
6871
6916
|
filterCtx,
|
|
6872
6917
|
{ tableName, relationMap: namedRelations, tables },
|
|
6873
6918
|
mutationTxCtx
|
|
6874
6919
|
) : void 0;
|
|
6875
|
-
const updateCountGenerated =
|
|
6920
|
+
const updateCountGenerated = tableFeatures.update && tableFeatures.countMutations ? generateWriteCount({
|
|
6876
6921
|
db,
|
|
6877
6922
|
tableName,
|
|
6878
6923
|
table: schema[tableName],
|
|
@@ -6880,24 +6925,24 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6880
6925
|
setArgs: updateInput,
|
|
6881
6926
|
filterArgs: tableFilters,
|
|
6882
6927
|
fieldName: updateCountFieldName,
|
|
6883
|
-
requireWhere:
|
|
6928
|
+
requireWhere: tableFeatures.requireWhere,
|
|
6884
6929
|
filterCtx,
|
|
6885
6930
|
txCtx: mutationTxCtx,
|
|
6886
6931
|
nested: nestedRuntime
|
|
6887
6932
|
}) : void 0;
|
|
6888
|
-
const deleteCountGenerated =
|
|
6933
|
+
const deleteCountGenerated = tableFeatures.delete && tableFeatures.countMutations ? generateWriteCount({
|
|
6889
6934
|
db,
|
|
6890
6935
|
tableName,
|
|
6891
6936
|
table: schema[tableName],
|
|
6892
6937
|
kind: "delete",
|
|
6893
6938
|
filterArgs: tableFilters,
|
|
6894
6939
|
fieldName: deleteCountFieldName,
|
|
6895
|
-
requireWhere:
|
|
6940
|
+
requireWhere: tableFeatures.requireWhere,
|
|
6896
6941
|
filterCtx,
|
|
6897
6942
|
txCtx: mutationTxCtx
|
|
6898
6943
|
}) : void 0;
|
|
6899
|
-
const aggregateType =
|
|
6900
|
-
const aggregateGenerated =
|
|
6944
|
+
const aggregateType = tableFeatures.aggregates ? generateAggregateTypes(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
6945
|
+
const aggregateGenerated = tableFeatures.aggregates ? generateAggregate(
|
|
6901
6946
|
db,
|
|
6902
6947
|
tableName,
|
|
6903
6948
|
schema[tableName],
|
|
@@ -6906,7 +6951,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6906
6951
|
tableFilters,
|
|
6907
6952
|
filterCtx
|
|
6908
6953
|
) : void 0;
|
|
6909
|
-
const groupByType =
|
|
6954
|
+
const groupByType = tableFeatures.aggregates && tableFeatures.groupBy ? generateGroupByType(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
6910
6955
|
const groupByEnum = groupByType ? generateGroupByEnum(schema[tableName], tableName, typeName) : void 0;
|
|
6911
6956
|
const havingInput = groupByEnum ? generateHavingInput(schema[tableName], tableName, typeName) : void 0;
|
|
6912
6957
|
const groupByGenerated = groupByType && groupByEnum && havingInput ? generateGroupBy(
|
|
@@ -7034,9 +7079,9 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
7034
7079
|
}
|
|
7035
7080
|
const activeInputs = [
|
|
7036
7081
|
// The insert input types the upsert mutations too, so either feature keeps it.
|
|
7037
|
-
...
|
|
7082
|
+
...tableFeatures.insert || onConflictInput ? [insertInput] : [],
|
|
7038
7083
|
...onConflictInput ? [onConflictInput] : [],
|
|
7039
|
-
...
|
|
7084
|
+
...tableFeatures.update ? [updateInput] : [],
|
|
7040
7085
|
...updateManyInput ? [updateManyInput] : [],
|
|
7041
7086
|
tableFilters,
|
|
7042
7087
|
tableOrder
|
|
@@ -7097,22 +7142,11 @@ var buildSchema = (db, config) => {
|
|
|
7097
7142
|
list: config?.suffixes?.list ?? "",
|
|
7098
7143
|
single: config?.suffixes?.single ?? "Single"
|
|
7099
7144
|
};
|
|
7100
|
-
const typeNameMapper = config?.typeNameMapper;
|
|
7101
|
-
const
|
|
7102
|
-
|
|
7103
|
-
|
|
7104
|
-
|
|
7105
|
-
distinct: config?.features?.distinct ?? true,
|
|
7106
|
-
insert: config?.features?.insert ?? true,
|
|
7107
|
-
update: config?.features?.update ?? true,
|
|
7108
|
-
updateMany: config?.features?.updateMany ?? true,
|
|
7109
|
-
delete: config?.features?.delete ?? true,
|
|
7110
|
-
upsert: config?.features?.upsert ?? false,
|
|
7111
|
-
nestedWrites: config?.features?.nestedWrites ?? false,
|
|
7112
|
-
fieldUpdateOperations: config?.features?.fieldUpdateOperations ?? false,
|
|
7113
|
-
countMutations: config?.features?.countMutations ?? false,
|
|
7114
|
-
requireWhere: config?.features?.requireWhere ?? false
|
|
7115
|
-
};
|
|
7145
|
+
const typeNameMapper = config?.typeNameMapper === "singularize" ? singularizeMapper : config?.typeNameMapper;
|
|
7146
|
+
const tableKeys = Object.entries(schema).filter(([, value]) => is8(value, Table)).map(([key]) => key);
|
|
7147
|
+
const excludedTableNames = new Set(config?.exclude?.tables ?? []);
|
|
7148
|
+
const featureTables = tableKeys.filter((key) => !excludedTableNames.has(key));
|
|
7149
|
+
const forTable = resolveTableFeatures(config?.features);
|
|
7116
7150
|
const complexityConfig = config?.complexity ?? true;
|
|
7117
7151
|
const complexity = complexityConfig === false ? void 0 : {
|
|
7118
7152
|
defaultListSize: (complexityConfig === true ? void 0 : complexityConfig.defaultListSize) ?? 10,
|
|
@@ -7149,10 +7183,8 @@ var buildSchema = (db, config) => {
|
|
|
7149
7183
|
} : void 0;
|
|
7150
7184
|
const exclude = config?.exclude;
|
|
7151
7185
|
if (exclude) {
|
|
7152
|
-
const tableNames = new Set(
|
|
7153
|
-
|
|
7154
|
-
);
|
|
7155
|
-
const excludedTables = new Set(exclude.tables ?? []);
|
|
7186
|
+
const tableNames = new Set(tableKeys);
|
|
7187
|
+
const excludedTables = excludedTableNames;
|
|
7156
7188
|
for (const tableName of excludedTables) {
|
|
7157
7189
|
if (!tableNames.has(tableName)) {
|
|
7158
7190
|
throw new Error(
|
|
@@ -7190,6 +7222,49 @@ var buildSchema = (db, config) => {
|
|
|
7190
7222
|
}
|
|
7191
7223
|
}
|
|
7192
7224
|
}
|
|
7225
|
+
const featureConflicts = /* @__PURE__ */ new Map();
|
|
7226
|
+
const noteConflict = (message, tableName) => {
|
|
7227
|
+
const tables = featureConflicts.get(message);
|
|
7228
|
+
if (tables) {
|
|
7229
|
+
tables.push(tableName);
|
|
7230
|
+
} else {
|
|
7231
|
+
featureConflicts.set(message, [tableName]);
|
|
7232
|
+
}
|
|
7233
|
+
};
|
|
7234
|
+
for (const tableName of featureTables) {
|
|
7235
|
+
const tableFeatures = forTable(tableName);
|
|
7236
|
+
if (tableFeatures.upsert) {
|
|
7237
|
+
const missing = [!tableFeatures.insert ? "insert" : void 0, !tableFeatures.update ? "update" : void 0].filter(Boolean).join(" and ");
|
|
7238
|
+
if (missing) {
|
|
7239
|
+
noteConflict(
|
|
7240
|
+
`upsert is on while ${missing} is off, so the upsert mutations are a second write path past the operation you turned off`,
|
|
7241
|
+
tableName
|
|
7242
|
+
);
|
|
7243
|
+
}
|
|
7244
|
+
}
|
|
7245
|
+
if (config?.features?.nestedWrites && (!tableFeatures.insert || !tableFeatures.update)) {
|
|
7246
|
+
noteConflict(
|
|
7247
|
+
"nestedWrites is on while this table's own insert or update is off, so a nested `create` or `connect` under another table's mutation can still write it",
|
|
7248
|
+
tableName
|
|
7249
|
+
);
|
|
7250
|
+
}
|
|
7251
|
+
if (config?.features?.updateMany !== void 0 && tableFeatures.updateMany && !tableFeatures.update) {
|
|
7252
|
+
noteConflict("updateMany is on while update is off, so no batch update is generated", tableName);
|
|
7253
|
+
}
|
|
7254
|
+
if (config?.features?.groupBy !== void 0 && tableFeatures.groupBy && !tableFeatures.aggregates) {
|
|
7255
|
+
noteConflict("groupBy is on while aggregates is off, so no grouped query is generated", tableName);
|
|
7256
|
+
}
|
|
7257
|
+
if (tableFeatures.countMutations && !tableFeatures.update && !tableFeatures.delete) {
|
|
7258
|
+
noteConflict(
|
|
7259
|
+
"countMutations is on while update and delete are both off, so no count mutation is generated",
|
|
7260
|
+
tableName
|
|
7261
|
+
);
|
|
7262
|
+
}
|
|
7263
|
+
}
|
|
7264
|
+
for (const [message, tables] of featureConflicts) {
|
|
7265
|
+
const listed = tables.length > 5 ? `${tables.slice(0, 5).join(", ")} and ${tables.length - 5} more` : tables.join(", ");
|
|
7266
|
+
console.warn(`Drizzle-GraphQL Warning: config.features \u2014 ${message} (${listed}).`);
|
|
7267
|
+
}
|
|
7193
7268
|
const eagerOpt = config?.eagerLoadRelations;
|
|
7194
7269
|
const shouldEagerLoad = eagerOpt === void 0 || eagerOpt === true ? () => true : eagerOpt === false ? () => false : eagerOpt;
|
|
7195
7270
|
if (!typeNameMapper && suffixes.list === suffixes.single) {
|
|
@@ -7216,7 +7291,7 @@ var buildSchema = (db, config) => {
|
|
|
7216
7291
|
conflictDoNothing: config?.conflictDoNothing ?? false,
|
|
7217
7292
|
typeNameMapper,
|
|
7218
7293
|
shouldEagerLoad,
|
|
7219
|
-
features,
|
|
7294
|
+
features: config?.features ?? {},
|
|
7220
7295
|
complexity,
|
|
7221
7296
|
scalars: config?.scalars,
|
|
7222
7297
|
mapColumnType: config?.mapColumnType,
|
|
@@ -7277,6 +7352,7 @@ export {
|
|
|
7277
7352
|
drizzleExecutorKey,
|
|
7278
7353
|
extractFilters,
|
|
7279
7354
|
extractOrderBy,
|
|
7280
|
-
extractRelationJoinColumns
|
|
7355
|
+
extractRelationJoinColumns,
|
|
7356
|
+
singularizeMapper
|
|
7281
7357
|
};
|
|
7282
7358
|
//# sourceMappingURL=index.js.map
|