@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.cjs
CHANGED
|
@@ -42,7 +42,8 @@ __export(index_exports, {
|
|
|
42
42
|
drizzleExecutorKey: () => drizzleExecutorKey,
|
|
43
43
|
extractFilters: () => extractFilters,
|
|
44
44
|
extractOrderBy: () => extractOrderBy,
|
|
45
|
-
extractRelationJoinColumns: () => extractRelationJoinColumns
|
|
45
|
+
extractRelationJoinColumns: () => extractRelationJoinColumns,
|
|
46
|
+
singularizeMapper: () => singularizeMapper
|
|
46
47
|
});
|
|
47
48
|
module.exports = __toCommonJS(index_exports);
|
|
48
49
|
var import_drizzle_orm10 = require("drizzle-orm");
|
|
@@ -105,6 +106,10 @@ var getOrCreateLoader = (context, key, batchFn) => {
|
|
|
105
106
|
var import_pluralize = __toESM(require("pluralize"), 1);
|
|
106
107
|
var uncapitalize = (input) => input?.length ? `${input[0].toLocaleLowerCase()}${input.length > 1 ? input.slice(1, input.length) : ""}` : input;
|
|
107
108
|
var capitalize = (input) => input?.length ? `${input[0].toLocaleUpperCase()}${input.length > 1 ? input.slice(1, input.length) : ""}` : input;
|
|
109
|
+
var singularizeMapper = (tableName) => ({
|
|
110
|
+
singular: uncapitalize(import_pluralize.default.singular(tableName)),
|
|
111
|
+
plural: uncapitalize(import_pluralize.default.plural(tableName))
|
|
112
|
+
});
|
|
108
113
|
|
|
109
114
|
// src/util/data-mappers/index.ts
|
|
110
115
|
var import_drizzle_orm2 = require("drizzle-orm");
|
|
@@ -1882,7 +1887,7 @@ var generateSelectFields = (tables, tableName, relationMap, fromTableName, fromR
|
|
|
1882
1887
|
]);
|
|
1883
1888
|
continue;
|
|
1884
1889
|
}
|
|
1885
|
-
const targetDistinctEnum = cacheCtx.
|
|
1890
|
+
const targetDistinctEnum = cacheCtx.featureOf(targetTableName).distinct ? generateDistinctEnum(tables[targetTableName], resolveTypeName(targetTableName, typeNameMapper)) : void 0;
|
|
1886
1891
|
rawRelationFields.push([
|
|
1887
1892
|
relationName,
|
|
1888
1893
|
{
|
|
@@ -1992,7 +1997,7 @@ var generateTableTypes = (tableName, tables, relationMap, withReturning, relatio
|
|
|
1992
1997
|
const updateFields = Object.fromEntries(
|
|
1993
1998
|
columnEntries.map(([columnName, column]) => {
|
|
1994
1999
|
const converted = drizzleColumnToGraphQLType(column, columnName, tableName, true, false, true);
|
|
1995
|
-
const operations = cacheCtx.
|
|
2000
|
+
const operations = cacheCtx.featureOf(tableName).fieldUpdateOperations ? fieldUpdateInputType(column, columnName, tableName) : void 0;
|
|
1996
2001
|
const field = operations ? { ...converted, type: operations } : converted;
|
|
1997
2002
|
return [columnName, { ...field, ...inputFieldDocs(cacheCtx.docs, column, tableName, columnName, field.type) }];
|
|
1998
2003
|
})
|
|
@@ -3410,6 +3415,38 @@ var import_mysql_core2 = require("drizzle-orm/mysql-core");
|
|
|
3410
3415
|
var import_graphql7 = require("graphql");
|
|
3411
3416
|
var import_graphql_parse_resolve_info2 = require("graphql-parse-resolve-info");
|
|
3412
3417
|
|
|
3418
|
+
// src/util/features.ts
|
|
3419
|
+
var featureDefaults = {
|
|
3420
|
+
aggregates: true,
|
|
3421
|
+
groupBy: true,
|
|
3422
|
+
relationAggregates: true,
|
|
3423
|
+
distinct: true,
|
|
3424
|
+
insert: true,
|
|
3425
|
+
update: true,
|
|
3426
|
+
updateMany: true,
|
|
3427
|
+
delete: true,
|
|
3428
|
+
upsert: false,
|
|
3429
|
+
fieldUpdateOperations: false,
|
|
3430
|
+
countMutations: false,
|
|
3431
|
+
requireWhere: false
|
|
3432
|
+
};
|
|
3433
|
+
var resolveTableFeatures = (features) => {
|
|
3434
|
+
const cache = /* @__PURE__ */ new Map();
|
|
3435
|
+
const names = Object.keys(featureDefaults);
|
|
3436
|
+
return (tableName) => {
|
|
3437
|
+
let resolved = cache.get(tableName);
|
|
3438
|
+
if (!resolved) {
|
|
3439
|
+
resolved = {};
|
|
3440
|
+
for (const name of names) {
|
|
3441
|
+
const configured = features?.[name];
|
|
3442
|
+
resolved[name] = configured === void 0 ? featureDefaults[name] : typeof configured === "function" ? !!configured(tableName) : !!configured;
|
|
3443
|
+
}
|
|
3444
|
+
cache.set(tableName, resolved);
|
|
3445
|
+
}
|
|
3446
|
+
return resolved;
|
|
3447
|
+
};
|
|
3448
|
+
};
|
|
3449
|
+
|
|
3413
3450
|
// src/util/builders/aggregates.ts
|
|
3414
3451
|
var import_drizzle_orm5 = require("drizzle-orm");
|
|
3415
3452
|
var import_graphql6 = require("graphql");
|
|
@@ -4144,6 +4181,8 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4144
4181
|
const excludedTables = new Set(options.exclude?.tables ?? []);
|
|
4145
4182
|
const tableEntries = schemaEntries.filter(([key, value]) => (0, import_drizzle_orm6.is)(value, import_mysql_core2.MySqlTable) && !excludedTables.has(key));
|
|
4146
4183
|
const tables = Object.fromEntries(tableEntries);
|
|
4184
|
+
const featureOf = resolveTableFeatures(features);
|
|
4185
|
+
const anyTable = (feature) => tableEntries.some(([name]) => featureOf(name)[feature]);
|
|
4147
4186
|
if (!tableEntries.length) {
|
|
4148
4187
|
throw new Error(
|
|
4149
4188
|
"Drizzle-GraphQL Error: No tables detected in Drizzle-ORM's database instance. Did you forget to pass schema to drizzle constructor?"
|
|
@@ -4186,9 +4225,9 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4186
4225
|
complexity,
|
|
4187
4226
|
limits,
|
|
4188
4227
|
docs: options.docs ?? {},
|
|
4189
|
-
|
|
4228
|
+
featureOf
|
|
4190
4229
|
};
|
|
4191
|
-
const relationAggregateFactory =
|
|
4230
|
+
const relationAggregateFactory = anyTable("relationAggregates") ? createRelationAggregateFactory(db, tables, cacheCtx, typeNameMapper, filterCtx) : void 0;
|
|
4192
4231
|
const queries = {};
|
|
4193
4232
|
const mutations = {};
|
|
4194
4233
|
const mutationTxCtx = createMutationTxCtx(options.transactions);
|
|
@@ -4206,7 +4245,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4206
4245
|
prefixes.insert,
|
|
4207
4246
|
prefixes.update,
|
|
4208
4247
|
resolverFactory,
|
|
4209
|
-
relationAggregateFactory
|
|
4248
|
+
featureOf(tableName).relationAggregates ? relationAggregateFactory : void 0
|
|
4210
4249
|
)
|
|
4211
4250
|
])
|
|
4212
4251
|
);
|
|
@@ -4220,10 +4259,11 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4220
4259
|
});
|
|
4221
4260
|
const inputs = {};
|
|
4222
4261
|
const outputs = {};
|
|
4223
|
-
if (
|
|
4262
|
+
if (["insert", "upsert", "update", "delete"].some((feature) => anyTable(feature))) {
|
|
4224
4263
|
outputs.MutationReturn = mutationReturnType;
|
|
4225
4264
|
}
|
|
4226
4265
|
for (const [tableName, tableTypes] of Object.entries(gqlSchemaTypes)) {
|
|
4266
|
+
const tableFeatures = featureOf(tableName);
|
|
4227
4267
|
const { insertInput, updateInput, tableFilters, tableOrder } = tableTypes.inputs;
|
|
4228
4268
|
const { selectSingleOutput, selectArrOutput } = tableTypes.outputs;
|
|
4229
4269
|
const {
|
|
@@ -4255,7 +4295,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4255
4295
|
typeName,
|
|
4256
4296
|
typeNameMapper,
|
|
4257
4297
|
filterCtx,
|
|
4258
|
-
|
|
4298
|
+
tableFeatures.distinct,
|
|
4259
4299
|
limits
|
|
4260
4300
|
);
|
|
4261
4301
|
const selectSingleGenerated = generateSelectSingle(
|
|
@@ -4271,7 +4311,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4271
4311
|
filterCtx,
|
|
4272
4312
|
limits
|
|
4273
4313
|
);
|
|
4274
|
-
const insertArrGenerated =
|
|
4314
|
+
const insertArrGenerated = tableFeatures.insert ? generateInsertArray(
|
|
4275
4315
|
db,
|
|
4276
4316
|
tableName,
|
|
4277
4317
|
schema[tableName],
|
|
@@ -4279,7 +4319,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4279
4319
|
createArrayFieldName,
|
|
4280
4320
|
mutationTxCtx
|
|
4281
4321
|
) : void 0;
|
|
4282
|
-
const insertSingleGenerated =
|
|
4322
|
+
const insertSingleGenerated = tableFeatures.insert ? generateInsertSingle(
|
|
4283
4323
|
db,
|
|
4284
4324
|
tableName,
|
|
4285
4325
|
schema[tableName],
|
|
@@ -4287,7 +4327,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4287
4327
|
createSingleFieldName,
|
|
4288
4328
|
mutationTxCtx
|
|
4289
4329
|
) : void 0;
|
|
4290
|
-
const onConflictInput =
|
|
4330
|
+
const onConflictInput = tableFeatures.upsert ? generateOnConflictInput({
|
|
4291
4331
|
table: schema[tableName],
|
|
4292
4332
|
typeName,
|
|
4293
4333
|
uniqueSets: [],
|
|
@@ -4312,7 +4352,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4312
4352
|
true,
|
|
4313
4353
|
mutationTxCtx
|
|
4314
4354
|
) : void 0;
|
|
4315
|
-
const updateGenerated =
|
|
4355
|
+
const updateGenerated = tableFeatures.update ? generateUpdate(
|
|
4316
4356
|
db,
|
|
4317
4357
|
tableName,
|
|
4318
4358
|
schema[tableName],
|
|
@@ -4320,11 +4360,11 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4320
4360
|
tableFilters,
|
|
4321
4361
|
updateFieldName,
|
|
4322
4362
|
false,
|
|
4323
|
-
|
|
4363
|
+
tableFeatures.requireWhere,
|
|
4324
4364
|
filterCtx,
|
|
4325
4365
|
mutationTxCtx
|
|
4326
4366
|
) : void 0;
|
|
4327
|
-
const updateSingleGenerated =
|
|
4367
|
+
const updateSingleGenerated = tableFeatures.update ? generateUpdate(
|
|
4328
4368
|
db,
|
|
4329
4369
|
tableName,
|
|
4330
4370
|
schema[tableName],
|
|
@@ -4332,11 +4372,11 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4332
4372
|
tableFilters,
|
|
4333
4373
|
updateSingleFieldName,
|
|
4334
4374
|
true,
|
|
4335
|
-
|
|
4375
|
+
tableFeatures.requireWhere,
|
|
4336
4376
|
filterCtx,
|
|
4337
4377
|
mutationTxCtx
|
|
4338
4378
|
) : void 0;
|
|
4339
|
-
const updateManyInput =
|
|
4379
|
+
const updateManyInput = tableFeatures.update && tableFeatures.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
4340
4380
|
const updateManyGenerated = updateManyInput ? generateUpdateMany(
|
|
4341
4381
|
db,
|
|
4342
4382
|
tableName,
|
|
@@ -4346,29 +4386,29 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4346
4386
|
filterCtx,
|
|
4347
4387
|
mutationTxCtx
|
|
4348
4388
|
) : void 0;
|
|
4349
|
-
const deleteGenerated =
|
|
4389
|
+
const deleteGenerated = tableFeatures.delete ? generateDelete(
|
|
4350
4390
|
db,
|
|
4351
4391
|
tableName,
|
|
4352
4392
|
schema[tableName],
|
|
4353
4393
|
tableFilters,
|
|
4354
4394
|
deleteFieldName,
|
|
4355
4395
|
false,
|
|
4356
|
-
|
|
4396
|
+
tableFeatures.requireWhere,
|
|
4357
4397
|
filterCtx,
|
|
4358
4398
|
mutationTxCtx
|
|
4359
4399
|
) : void 0;
|
|
4360
|
-
const deleteSingleGenerated =
|
|
4400
|
+
const deleteSingleGenerated = tableFeatures.delete ? generateDelete(
|
|
4361
4401
|
db,
|
|
4362
4402
|
tableName,
|
|
4363
4403
|
schema[tableName],
|
|
4364
4404
|
tableFilters,
|
|
4365
4405
|
deleteSingleFieldName,
|
|
4366
4406
|
true,
|
|
4367
|
-
|
|
4407
|
+
tableFeatures.requireWhere,
|
|
4368
4408
|
filterCtx,
|
|
4369
4409
|
mutationTxCtx
|
|
4370
4410
|
) : void 0;
|
|
4371
|
-
const updateCountGenerated =
|
|
4411
|
+
const updateCountGenerated = tableFeatures.update && tableFeatures.countMutations ? generateWriteCount({
|
|
4372
4412
|
db,
|
|
4373
4413
|
tableName,
|
|
4374
4414
|
table: schema[tableName],
|
|
@@ -4376,23 +4416,23 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4376
4416
|
setArgs: updateInput,
|
|
4377
4417
|
filterArgs: tableFilters,
|
|
4378
4418
|
fieldName: updateCountFieldName,
|
|
4379
|
-
requireWhere:
|
|
4419
|
+
requireWhere: tableFeatures.requireWhere,
|
|
4380
4420
|
filterCtx,
|
|
4381
4421
|
txCtx: mutationTxCtx
|
|
4382
4422
|
}) : void 0;
|
|
4383
|
-
const deleteCountGenerated =
|
|
4423
|
+
const deleteCountGenerated = tableFeatures.delete && tableFeatures.countMutations ? generateWriteCount({
|
|
4384
4424
|
db,
|
|
4385
4425
|
tableName,
|
|
4386
4426
|
table: schema[tableName],
|
|
4387
4427
|
kind: "delete",
|
|
4388
4428
|
filterArgs: tableFilters,
|
|
4389
4429
|
fieldName: deleteCountFieldName,
|
|
4390
|
-
requireWhere:
|
|
4430
|
+
requireWhere: tableFeatures.requireWhere,
|
|
4391
4431
|
filterCtx,
|
|
4392
4432
|
txCtx: mutationTxCtx
|
|
4393
4433
|
}) : void 0;
|
|
4394
|
-
const aggregateType =
|
|
4395
|
-
const aggregateGenerated =
|
|
4434
|
+
const aggregateType = tableFeatures.aggregates ? generateAggregateTypes(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
4435
|
+
const aggregateGenerated = tableFeatures.aggregates ? generateAggregate(
|
|
4396
4436
|
db,
|
|
4397
4437
|
tableName,
|
|
4398
4438
|
schema[tableName],
|
|
@@ -4401,7 +4441,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4401
4441
|
tableFilters,
|
|
4402
4442
|
filterCtx
|
|
4403
4443
|
) : void 0;
|
|
4404
|
-
const groupByType =
|
|
4444
|
+
const groupByType = tableFeatures.aggregates && tableFeatures.groupBy ? generateGroupByType(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
4405
4445
|
const groupByEnum = groupByType ? generateGroupByEnum(schema[tableName], tableName, typeName) : void 0;
|
|
4406
4446
|
const havingInput = groupByEnum ? generateHavingInput(schema[tableName], tableName, typeName) : void 0;
|
|
4407
4447
|
const groupByGenerated = groupByType && groupByEnum && havingInput ? generateGroupBy(
|
|
@@ -4479,9 +4519,9 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4479
4519
|
}
|
|
4480
4520
|
const activeInputs = [
|
|
4481
4521
|
// The insert input types the upsert mutations too, so either feature keeps it.
|
|
4482
|
-
...
|
|
4522
|
+
...tableFeatures.insert || onConflictInput ? [insertInput] : [],
|
|
4483
4523
|
...onConflictInput ? [onConflictInput] : [],
|
|
4484
|
-
...
|
|
4524
|
+
...tableFeatures.update ? [updateInput] : [],
|
|
4485
4525
|
...updateManyInput ? [updateManyInput] : [],
|
|
4486
4526
|
tableFilters,
|
|
4487
4527
|
tableOrder
|
|
@@ -5508,6 +5548,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5508
5548
|
const excludedTables = new Set(options.exclude?.tables ?? []);
|
|
5509
5549
|
const tableEntries = schemaEntries.filter(([key, value]) => (0, import_drizzle_orm8.is)(value, import_pg_core2.PgTable) && !excludedTables.has(key));
|
|
5510
5550
|
const tables = Object.fromEntries(tableEntries);
|
|
5551
|
+
const featureOf = resolveTableFeatures(features);
|
|
5552
|
+
const anyTable = (feature) => tableEntries.some(([name]) => featureOf(name)[feature]);
|
|
5511
5553
|
if (!tableEntries.length) {
|
|
5512
5554
|
throw new Error(
|
|
5513
5555
|
"Drizzle-GraphQL Error: No tables detected in Drizzle-ORM's database instance. Did you forget to pass schema to drizzle constructor?"
|
|
@@ -5545,7 +5587,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5545
5587
|
complexity,
|
|
5546
5588
|
limits,
|
|
5547
5589
|
docs: options.docs ?? {},
|
|
5548
|
-
|
|
5590
|
+
featureOf
|
|
5549
5591
|
};
|
|
5550
5592
|
const nestedPlans = features.nestedWrites ? buildNestedWritePlans(
|
|
5551
5593
|
tables,
|
|
@@ -5556,7 +5598,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5556
5598
|
) : void 0;
|
|
5557
5599
|
const nestedTypes = nestedPlans ? createNestedWriteTypes({ plans: nestedPlans, cacheCtx, typeNameMapper, insertPrefix: prefixes.insert }) : void 0;
|
|
5558
5600
|
const nestedRuntime = nestedPlans ? createNestedWriteRuntime({ plans: nestedPlans, filterCtx }) : void 0;
|
|
5559
|
-
const relationAggregateFactory =
|
|
5601
|
+
const relationAggregateFactory = anyTable("relationAggregates") ? createRelationAggregateFactory(db, tables, cacheCtx, typeNameMapper, filterCtx) : void 0;
|
|
5560
5602
|
const queries = {};
|
|
5561
5603
|
const mutations = {};
|
|
5562
5604
|
const mutationTxCtx = createMutationTxCtx(options.transactions);
|
|
@@ -5574,7 +5616,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5574
5616
|
prefixes.insert,
|
|
5575
5617
|
prefixes.update,
|
|
5576
5618
|
resolverFactory,
|
|
5577
|
-
relationAggregateFactory,
|
|
5619
|
+
featureOf(tableName).relationAggregates ? relationAggregateFactory : void 0,
|
|
5578
5620
|
nestedTypes
|
|
5579
5621
|
)
|
|
5580
5622
|
])
|
|
@@ -5582,6 +5624,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5582
5624
|
const inputs = {};
|
|
5583
5625
|
const outputs = {};
|
|
5584
5626
|
for (const [tableName, tableTypes] of Object.entries(gqlSchemaTypes)) {
|
|
5627
|
+
const tableFeatures = featureOf(tableName);
|
|
5585
5628
|
const { insertInput, updateInput, tableFilters, tableOrder } = tableTypes.inputs;
|
|
5586
5629
|
const { selectSingleOutput, selectArrOutput, singleTableItemOutput, arrTableItemOutput } = tableTypes.outputs;
|
|
5587
5630
|
const {
|
|
@@ -5613,7 +5656,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5613
5656
|
typeName,
|
|
5614
5657
|
typeNameMapper,
|
|
5615
5658
|
filterCtx,
|
|
5616
|
-
|
|
5659
|
+
tableFeatures.distinct,
|
|
5617
5660
|
limits
|
|
5618
5661
|
);
|
|
5619
5662
|
const selectSingleGenerated = generateSelectSingle2(
|
|
@@ -5629,7 +5672,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5629
5672
|
filterCtx,
|
|
5630
5673
|
limits
|
|
5631
5674
|
);
|
|
5632
|
-
const insertArrGenerated =
|
|
5675
|
+
const insertArrGenerated = tableFeatures.insert ? generateInsertArray2(
|
|
5633
5676
|
db,
|
|
5634
5677
|
tableName,
|
|
5635
5678
|
schema[tableName],
|
|
@@ -5644,7 +5687,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5644
5687
|
nestedRuntime,
|
|
5645
5688
|
limits
|
|
5646
5689
|
) : void 0;
|
|
5647
|
-
const insertSingleGenerated =
|
|
5690
|
+
const insertSingleGenerated = tableFeatures.insert ? generateInsertSingle2(
|
|
5648
5691
|
db,
|
|
5649
5692
|
tableName,
|
|
5650
5693
|
schema[tableName],
|
|
@@ -5659,8 +5702,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5659
5702
|
nestedRuntime,
|
|
5660
5703
|
limits
|
|
5661
5704
|
) : void 0;
|
|
5662
|
-
const uniqueSets =
|
|
5663
|
-
const onConflictInput =
|
|
5705
|
+
const uniqueSets = tableFeatures.upsert ? getUniqueColumnSets(schema[tableName], import_pg_core2.getTableConfig) : [];
|
|
5706
|
+
const onConflictInput = tableFeatures.upsert ? generateOnConflictInput({
|
|
5664
5707
|
table: schema[tableName],
|
|
5665
5708
|
typeName,
|
|
5666
5709
|
uniqueSets,
|
|
@@ -5703,7 +5746,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5703
5746
|
nestedRuntime,
|
|
5704
5747
|
limits
|
|
5705
5748
|
) : void 0;
|
|
5706
|
-
const updateGenerated =
|
|
5749
|
+
const updateGenerated = tableFeatures.update ? generateUpdate2(
|
|
5707
5750
|
db,
|
|
5708
5751
|
tableName,
|
|
5709
5752
|
schema[tableName],
|
|
@@ -5714,14 +5757,14 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5714
5757
|
updateFieldName,
|
|
5715
5758
|
typeName,
|
|
5716
5759
|
false,
|
|
5717
|
-
|
|
5760
|
+
tableFeatures.requireWhere,
|
|
5718
5761
|
typeNameMapper,
|
|
5719
5762
|
filterCtx,
|
|
5720
5763
|
mutationTxCtx,
|
|
5721
5764
|
nestedRuntime,
|
|
5722
5765
|
limits
|
|
5723
5766
|
) : void 0;
|
|
5724
|
-
const updateSingleGenerated =
|
|
5767
|
+
const updateSingleGenerated = tableFeatures.update ? generateUpdate2(
|
|
5725
5768
|
db,
|
|
5726
5769
|
tableName,
|
|
5727
5770
|
schema[tableName],
|
|
@@ -5732,14 +5775,14 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5732
5775
|
updateSingleFieldName,
|
|
5733
5776
|
typeName,
|
|
5734
5777
|
true,
|
|
5735
|
-
|
|
5778
|
+
tableFeatures.requireWhere,
|
|
5736
5779
|
typeNameMapper,
|
|
5737
5780
|
filterCtx,
|
|
5738
5781
|
mutationTxCtx,
|
|
5739
5782
|
nestedRuntime,
|
|
5740
5783
|
limits
|
|
5741
5784
|
) : void 0;
|
|
5742
|
-
const updateManyInput =
|
|
5785
|
+
const updateManyInput = tableFeatures.update && tableFeatures.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
5743
5786
|
const updateManyGenerated = updateManyInput ? generateUpdateMany2(
|
|
5744
5787
|
db,
|
|
5745
5788
|
tableName,
|
|
@@ -5755,7 +5798,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5755
5798
|
nestedRuntime,
|
|
5756
5799
|
limits
|
|
5757
5800
|
) : void 0;
|
|
5758
|
-
const deleteGenerated =
|
|
5801
|
+
const deleteGenerated = tableFeatures.delete ? generateDelete2(
|
|
5759
5802
|
db,
|
|
5760
5803
|
tableName,
|
|
5761
5804
|
schema[tableName],
|
|
@@ -5763,12 +5806,12 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5763
5806
|
deleteFieldName,
|
|
5764
5807
|
typeName,
|
|
5765
5808
|
false,
|
|
5766
|
-
|
|
5809
|
+
tableFeatures.requireWhere,
|
|
5767
5810
|
filterCtx,
|
|
5768
5811
|
{ tableName, relationMap: namedRelations, tables },
|
|
5769
5812
|
mutationTxCtx
|
|
5770
5813
|
) : void 0;
|
|
5771
|
-
const deleteSingleGenerated =
|
|
5814
|
+
const deleteSingleGenerated = tableFeatures.delete ? generateDelete2(
|
|
5772
5815
|
db,
|
|
5773
5816
|
tableName,
|
|
5774
5817
|
schema[tableName],
|
|
@@ -5776,12 +5819,12 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5776
5819
|
deleteSingleFieldName,
|
|
5777
5820
|
typeName,
|
|
5778
5821
|
true,
|
|
5779
|
-
|
|
5822
|
+
tableFeatures.requireWhere,
|
|
5780
5823
|
filterCtx,
|
|
5781
5824
|
{ tableName, relationMap: namedRelations, tables },
|
|
5782
5825
|
mutationTxCtx
|
|
5783
5826
|
) : void 0;
|
|
5784
|
-
const updateCountGenerated =
|
|
5827
|
+
const updateCountGenerated = tableFeatures.update && tableFeatures.countMutations ? generateWriteCount({
|
|
5785
5828
|
db,
|
|
5786
5829
|
tableName,
|
|
5787
5830
|
table: schema[tableName],
|
|
@@ -5789,24 +5832,24 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5789
5832
|
setArgs: updateInput,
|
|
5790
5833
|
filterArgs: tableFilters,
|
|
5791
5834
|
fieldName: updateCountFieldName,
|
|
5792
|
-
requireWhere:
|
|
5835
|
+
requireWhere: tableFeatures.requireWhere,
|
|
5793
5836
|
filterCtx,
|
|
5794
5837
|
txCtx: mutationTxCtx,
|
|
5795
5838
|
nested: nestedRuntime
|
|
5796
5839
|
}) : void 0;
|
|
5797
|
-
const deleteCountGenerated =
|
|
5840
|
+
const deleteCountGenerated = tableFeatures.delete && tableFeatures.countMutations ? generateWriteCount({
|
|
5798
5841
|
db,
|
|
5799
5842
|
tableName,
|
|
5800
5843
|
table: schema[tableName],
|
|
5801
5844
|
kind: "delete",
|
|
5802
5845
|
filterArgs: tableFilters,
|
|
5803
5846
|
fieldName: deleteCountFieldName,
|
|
5804
|
-
requireWhere:
|
|
5847
|
+
requireWhere: tableFeatures.requireWhere,
|
|
5805
5848
|
filterCtx,
|
|
5806
5849
|
txCtx: mutationTxCtx
|
|
5807
5850
|
}) : void 0;
|
|
5808
|
-
const aggregateType =
|
|
5809
|
-
const aggregateGenerated =
|
|
5851
|
+
const aggregateType = tableFeatures.aggregates ? generateAggregateTypes(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
5852
|
+
const aggregateGenerated = tableFeatures.aggregates ? generateAggregate(
|
|
5810
5853
|
db,
|
|
5811
5854
|
tableName,
|
|
5812
5855
|
schema[tableName],
|
|
@@ -5815,7 +5858,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5815
5858
|
tableFilters,
|
|
5816
5859
|
filterCtx
|
|
5817
5860
|
) : void 0;
|
|
5818
|
-
const groupByType =
|
|
5861
|
+
const groupByType = tableFeatures.aggregates && tableFeatures.groupBy ? generateGroupByType(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
5819
5862
|
const groupByEnum = groupByType ? generateGroupByEnum(schema[tableName], tableName, typeName) : void 0;
|
|
5820
5863
|
const havingInput = groupByEnum ? generateHavingInput(schema[tableName], tableName, typeName) : void 0;
|
|
5821
5864
|
const groupByGenerated = groupByType && groupByEnum && havingInput ? generateGroupBy(
|
|
@@ -5943,9 +5986,9 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5943
5986
|
}
|
|
5944
5987
|
const activeInputs = [
|
|
5945
5988
|
// The insert input types the upsert mutations too, so either feature keeps it.
|
|
5946
|
-
...
|
|
5989
|
+
...tableFeatures.insert || onConflictInput ? [insertInput] : [],
|
|
5947
5990
|
...onConflictInput ? [onConflictInput] : [],
|
|
5948
|
-
...
|
|
5991
|
+
...tableFeatures.update ? [updateInput] : [],
|
|
5949
5992
|
...updateManyInput ? [updateManyInput] : [],
|
|
5950
5993
|
tableFilters,
|
|
5951
5994
|
tableOrder
|
|
@@ -6525,6 +6568,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6525
6568
|
const excludedTables = new Set(options.exclude?.tables ?? []);
|
|
6526
6569
|
const tableEntries = schemaEntries.filter(([key, value]) => (0, import_drizzle_orm9.is)(value, import_sqlite_core2.SQLiteTable) && !excludedTables.has(key));
|
|
6527
6570
|
const tables = Object.fromEntries(tableEntries);
|
|
6571
|
+
const featureOf = resolveTableFeatures(features);
|
|
6572
|
+
const anyTable = (feature) => tableEntries.some(([name]) => featureOf(name)[feature]);
|
|
6528
6573
|
if (!tableEntries.length) {
|
|
6529
6574
|
throw new Error(
|
|
6530
6575
|
"Drizzle-GraphQL Error: No tables detected in Drizzle-ORM's database instance. Did you forget to pass schema to drizzle constructor?"
|
|
@@ -6562,7 +6607,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6562
6607
|
complexity,
|
|
6563
6608
|
limits,
|
|
6564
6609
|
docs: options.docs ?? {},
|
|
6565
|
-
|
|
6610
|
+
featureOf
|
|
6566
6611
|
};
|
|
6567
6612
|
if (features.nestedWrites && db.resultKind === "sync") {
|
|
6568
6613
|
throw new Error(
|
|
@@ -6578,7 +6623,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6578
6623
|
) : void 0;
|
|
6579
6624
|
const nestedTypes = nestedPlans ? createNestedWriteTypes({ plans: nestedPlans, cacheCtx, typeNameMapper, insertPrefix: prefixes.insert }) : void 0;
|
|
6580
6625
|
const nestedRuntime = nestedPlans ? createNestedWriteRuntime({ plans: nestedPlans, filterCtx }) : void 0;
|
|
6581
|
-
const relationAggregateFactory =
|
|
6626
|
+
const relationAggregateFactory = anyTable("relationAggregates") ? createRelationAggregateFactory(db, tables, cacheCtx, typeNameMapper, filterCtx) : void 0;
|
|
6582
6627
|
const queries = {};
|
|
6583
6628
|
const mutations = {};
|
|
6584
6629
|
if (options.transactions && db.resultKind === "sync") {
|
|
@@ -6601,7 +6646,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6601
6646
|
prefixes.insert,
|
|
6602
6647
|
prefixes.update,
|
|
6603
6648
|
resolverFactory,
|
|
6604
|
-
relationAggregateFactory,
|
|
6649
|
+
featureOf(tableName).relationAggregates ? relationAggregateFactory : void 0,
|
|
6605
6650
|
nestedTypes
|
|
6606
6651
|
)
|
|
6607
6652
|
])
|
|
@@ -6609,6 +6654,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6609
6654
|
const inputs = {};
|
|
6610
6655
|
const outputs = {};
|
|
6611
6656
|
for (const [tableName, tableTypes] of Object.entries(gqlSchemaTypes)) {
|
|
6657
|
+
const tableFeatures = featureOf(tableName);
|
|
6612
6658
|
const { insertInput, updateInput, tableFilters, tableOrder } = tableTypes.inputs;
|
|
6613
6659
|
const { selectSingleOutput, selectArrOutput, singleTableItemOutput, arrTableItemOutput } = tableTypes.outputs;
|
|
6614
6660
|
const {
|
|
@@ -6640,7 +6686,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6640
6686
|
typeName,
|
|
6641
6687
|
typeNameMapper,
|
|
6642
6688
|
filterCtx,
|
|
6643
|
-
|
|
6689
|
+
tableFeatures.distinct,
|
|
6644
6690
|
limits
|
|
6645
6691
|
);
|
|
6646
6692
|
const selectSingleGenerated = generateSelectSingle3(
|
|
@@ -6656,7 +6702,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6656
6702
|
filterCtx,
|
|
6657
6703
|
limits
|
|
6658
6704
|
);
|
|
6659
|
-
const insertArrGenerated =
|
|
6705
|
+
const insertArrGenerated = tableFeatures.insert ? generateInsertArray3(
|
|
6660
6706
|
db,
|
|
6661
6707
|
tableName,
|
|
6662
6708
|
schema[tableName],
|
|
@@ -6671,7 +6717,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6671
6717
|
nestedRuntime,
|
|
6672
6718
|
limits
|
|
6673
6719
|
) : void 0;
|
|
6674
|
-
const insertSingleGenerated =
|
|
6720
|
+
const insertSingleGenerated = tableFeatures.insert ? generateInsertSingle3(
|
|
6675
6721
|
db,
|
|
6676
6722
|
tableName,
|
|
6677
6723
|
schema[tableName],
|
|
@@ -6686,8 +6732,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6686
6732
|
nestedRuntime,
|
|
6687
6733
|
limits
|
|
6688
6734
|
) : void 0;
|
|
6689
|
-
const uniqueSets =
|
|
6690
|
-
const onConflictInput =
|
|
6735
|
+
const uniqueSets = tableFeatures.upsert ? getUniqueColumnSets(schema[tableName], import_sqlite_core2.getTableConfig) : [];
|
|
6736
|
+
const onConflictInput = tableFeatures.upsert ? generateOnConflictInput({
|
|
6691
6737
|
table: schema[tableName],
|
|
6692
6738
|
typeName,
|
|
6693
6739
|
uniqueSets,
|
|
@@ -6730,7 +6776,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6730
6776
|
nestedRuntime,
|
|
6731
6777
|
limits
|
|
6732
6778
|
) : void 0;
|
|
6733
|
-
const updateGenerated =
|
|
6779
|
+
const updateGenerated = tableFeatures.update ? generateUpdate3(
|
|
6734
6780
|
db,
|
|
6735
6781
|
tableName,
|
|
6736
6782
|
schema[tableName],
|
|
@@ -6741,14 +6787,14 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6741
6787
|
updateFieldName,
|
|
6742
6788
|
typeName,
|
|
6743
6789
|
false,
|
|
6744
|
-
|
|
6790
|
+
tableFeatures.requireWhere,
|
|
6745
6791
|
typeNameMapper,
|
|
6746
6792
|
filterCtx,
|
|
6747
6793
|
mutationTxCtx,
|
|
6748
6794
|
nestedRuntime,
|
|
6749
6795
|
limits
|
|
6750
6796
|
) : void 0;
|
|
6751
|
-
const updateSingleGenerated =
|
|
6797
|
+
const updateSingleGenerated = tableFeatures.update ? generateUpdate3(
|
|
6752
6798
|
db,
|
|
6753
6799
|
tableName,
|
|
6754
6800
|
schema[tableName],
|
|
@@ -6759,14 +6805,14 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6759
6805
|
updateSingleFieldName,
|
|
6760
6806
|
typeName,
|
|
6761
6807
|
true,
|
|
6762
|
-
|
|
6808
|
+
tableFeatures.requireWhere,
|
|
6763
6809
|
typeNameMapper,
|
|
6764
6810
|
filterCtx,
|
|
6765
6811
|
mutationTxCtx,
|
|
6766
6812
|
nestedRuntime,
|
|
6767
6813
|
limits
|
|
6768
6814
|
) : void 0;
|
|
6769
|
-
const updateManyInput =
|
|
6815
|
+
const updateManyInput = tableFeatures.update && tableFeatures.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
6770
6816
|
const updateManyGenerated = updateManyInput ? generateUpdateMany3(
|
|
6771
6817
|
db,
|
|
6772
6818
|
tableName,
|
|
@@ -6782,7 +6828,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6782
6828
|
nestedRuntime,
|
|
6783
6829
|
limits
|
|
6784
6830
|
) : void 0;
|
|
6785
|
-
const deleteGenerated =
|
|
6831
|
+
const deleteGenerated = tableFeatures.delete ? generateDelete3(
|
|
6786
6832
|
db,
|
|
6787
6833
|
tableName,
|
|
6788
6834
|
schema[tableName],
|
|
@@ -6790,12 +6836,12 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6790
6836
|
deleteFieldName,
|
|
6791
6837
|
typeName,
|
|
6792
6838
|
false,
|
|
6793
|
-
|
|
6839
|
+
tableFeatures.requireWhere,
|
|
6794
6840
|
filterCtx,
|
|
6795
6841
|
{ tableName, relationMap: namedRelations, tables },
|
|
6796
6842
|
mutationTxCtx
|
|
6797
6843
|
) : void 0;
|
|
6798
|
-
const deleteSingleGenerated =
|
|
6844
|
+
const deleteSingleGenerated = tableFeatures.delete ? generateDelete3(
|
|
6799
6845
|
db,
|
|
6800
6846
|
tableName,
|
|
6801
6847
|
schema[tableName],
|
|
@@ -6803,12 +6849,12 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6803
6849
|
deleteSingleFieldName,
|
|
6804
6850
|
typeName,
|
|
6805
6851
|
true,
|
|
6806
|
-
|
|
6852
|
+
tableFeatures.requireWhere,
|
|
6807
6853
|
filterCtx,
|
|
6808
6854
|
{ tableName, relationMap: namedRelations, tables },
|
|
6809
6855
|
mutationTxCtx
|
|
6810
6856
|
) : void 0;
|
|
6811
|
-
const updateCountGenerated =
|
|
6857
|
+
const updateCountGenerated = tableFeatures.update && tableFeatures.countMutations ? generateWriteCount({
|
|
6812
6858
|
db,
|
|
6813
6859
|
tableName,
|
|
6814
6860
|
table: schema[tableName],
|
|
@@ -6816,24 +6862,24 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6816
6862
|
setArgs: updateInput,
|
|
6817
6863
|
filterArgs: tableFilters,
|
|
6818
6864
|
fieldName: updateCountFieldName,
|
|
6819
|
-
requireWhere:
|
|
6865
|
+
requireWhere: tableFeatures.requireWhere,
|
|
6820
6866
|
filterCtx,
|
|
6821
6867
|
txCtx: mutationTxCtx,
|
|
6822
6868
|
nested: nestedRuntime
|
|
6823
6869
|
}) : void 0;
|
|
6824
|
-
const deleteCountGenerated =
|
|
6870
|
+
const deleteCountGenerated = tableFeatures.delete && tableFeatures.countMutations ? generateWriteCount({
|
|
6825
6871
|
db,
|
|
6826
6872
|
tableName,
|
|
6827
6873
|
table: schema[tableName],
|
|
6828
6874
|
kind: "delete",
|
|
6829
6875
|
filterArgs: tableFilters,
|
|
6830
6876
|
fieldName: deleteCountFieldName,
|
|
6831
|
-
requireWhere:
|
|
6877
|
+
requireWhere: tableFeatures.requireWhere,
|
|
6832
6878
|
filterCtx,
|
|
6833
6879
|
txCtx: mutationTxCtx
|
|
6834
6880
|
}) : void 0;
|
|
6835
|
-
const aggregateType =
|
|
6836
|
-
const aggregateGenerated =
|
|
6881
|
+
const aggregateType = tableFeatures.aggregates ? generateAggregateTypes(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
6882
|
+
const aggregateGenerated = tableFeatures.aggregates ? generateAggregate(
|
|
6837
6883
|
db,
|
|
6838
6884
|
tableName,
|
|
6839
6885
|
schema[tableName],
|
|
@@ -6842,7 +6888,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6842
6888
|
tableFilters,
|
|
6843
6889
|
filterCtx
|
|
6844
6890
|
) : void 0;
|
|
6845
|
-
const groupByType =
|
|
6891
|
+
const groupByType = tableFeatures.aggregates && tableFeatures.groupBy ? generateGroupByType(schema[tableName], tableName, typeName, cacheCtx) : void 0;
|
|
6846
6892
|
const groupByEnum = groupByType ? generateGroupByEnum(schema[tableName], tableName, typeName) : void 0;
|
|
6847
6893
|
const havingInput = groupByEnum ? generateHavingInput(schema[tableName], tableName, typeName) : void 0;
|
|
6848
6894
|
const groupByGenerated = groupByType && groupByEnum && havingInput ? generateGroupBy(
|
|
@@ -6970,9 +7016,9 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6970
7016
|
}
|
|
6971
7017
|
const activeInputs = [
|
|
6972
7018
|
// The insert input types the upsert mutations too, so either feature keeps it.
|
|
6973
|
-
...
|
|
7019
|
+
...tableFeatures.insert || onConflictInput ? [insertInput] : [],
|
|
6974
7020
|
...onConflictInput ? [onConflictInput] : [],
|
|
6975
|
-
...
|
|
7021
|
+
...tableFeatures.update ? [updateInput] : [],
|
|
6976
7022
|
...updateManyInput ? [updateManyInput] : [],
|
|
6977
7023
|
tableFilters,
|
|
6978
7024
|
tableOrder
|
|
@@ -7033,22 +7079,11 @@ var buildSchema = (db, config) => {
|
|
|
7033
7079
|
list: config?.suffixes?.list ?? "",
|
|
7034
7080
|
single: config?.suffixes?.single ?? "Single"
|
|
7035
7081
|
};
|
|
7036
|
-
const typeNameMapper = config?.typeNameMapper;
|
|
7037
|
-
const
|
|
7038
|
-
|
|
7039
|
-
|
|
7040
|
-
|
|
7041
|
-
distinct: config?.features?.distinct ?? true,
|
|
7042
|
-
insert: config?.features?.insert ?? true,
|
|
7043
|
-
update: config?.features?.update ?? true,
|
|
7044
|
-
updateMany: config?.features?.updateMany ?? true,
|
|
7045
|
-
delete: config?.features?.delete ?? true,
|
|
7046
|
-
upsert: config?.features?.upsert ?? false,
|
|
7047
|
-
nestedWrites: config?.features?.nestedWrites ?? false,
|
|
7048
|
-
fieldUpdateOperations: config?.features?.fieldUpdateOperations ?? false,
|
|
7049
|
-
countMutations: config?.features?.countMutations ?? false,
|
|
7050
|
-
requireWhere: config?.features?.requireWhere ?? false
|
|
7051
|
-
};
|
|
7082
|
+
const typeNameMapper = config?.typeNameMapper === "singularize" ? singularizeMapper : config?.typeNameMapper;
|
|
7083
|
+
const tableKeys = Object.entries(schema).filter(([, value]) => (0, import_drizzle_orm10.is)(value, import_drizzle_orm10.Table)).map(([key]) => key);
|
|
7084
|
+
const excludedTableNames = new Set(config?.exclude?.tables ?? []);
|
|
7085
|
+
const featureTables = tableKeys.filter((key) => !excludedTableNames.has(key));
|
|
7086
|
+
const forTable = resolveTableFeatures(config?.features);
|
|
7052
7087
|
const complexityConfig = config?.complexity ?? true;
|
|
7053
7088
|
const complexity = complexityConfig === false ? void 0 : {
|
|
7054
7089
|
defaultListSize: (complexityConfig === true ? void 0 : complexityConfig.defaultListSize) ?? 10,
|
|
@@ -7085,10 +7120,8 @@ var buildSchema = (db, config) => {
|
|
|
7085
7120
|
} : void 0;
|
|
7086
7121
|
const exclude = config?.exclude;
|
|
7087
7122
|
if (exclude) {
|
|
7088
|
-
const tableNames = new Set(
|
|
7089
|
-
|
|
7090
|
-
);
|
|
7091
|
-
const excludedTables = new Set(exclude.tables ?? []);
|
|
7123
|
+
const tableNames = new Set(tableKeys);
|
|
7124
|
+
const excludedTables = excludedTableNames;
|
|
7092
7125
|
for (const tableName of excludedTables) {
|
|
7093
7126
|
if (!tableNames.has(tableName)) {
|
|
7094
7127
|
throw new Error(
|
|
@@ -7126,6 +7159,49 @@ var buildSchema = (db, config) => {
|
|
|
7126
7159
|
}
|
|
7127
7160
|
}
|
|
7128
7161
|
}
|
|
7162
|
+
const featureConflicts = /* @__PURE__ */ new Map();
|
|
7163
|
+
const noteConflict = (message, tableName) => {
|
|
7164
|
+
const tables = featureConflicts.get(message);
|
|
7165
|
+
if (tables) {
|
|
7166
|
+
tables.push(tableName);
|
|
7167
|
+
} else {
|
|
7168
|
+
featureConflicts.set(message, [tableName]);
|
|
7169
|
+
}
|
|
7170
|
+
};
|
|
7171
|
+
for (const tableName of featureTables) {
|
|
7172
|
+
const tableFeatures = forTable(tableName);
|
|
7173
|
+
if (tableFeatures.upsert) {
|
|
7174
|
+
const missing = [!tableFeatures.insert ? "insert" : void 0, !tableFeatures.update ? "update" : void 0].filter(Boolean).join(" and ");
|
|
7175
|
+
if (missing) {
|
|
7176
|
+
noteConflict(
|
|
7177
|
+
`upsert is on while ${missing} is off, so the upsert mutations are a second write path past the operation you turned off`,
|
|
7178
|
+
tableName
|
|
7179
|
+
);
|
|
7180
|
+
}
|
|
7181
|
+
}
|
|
7182
|
+
if (config?.features?.nestedWrites && (!tableFeatures.insert || !tableFeatures.update)) {
|
|
7183
|
+
noteConflict(
|
|
7184
|
+
"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",
|
|
7185
|
+
tableName
|
|
7186
|
+
);
|
|
7187
|
+
}
|
|
7188
|
+
if (config?.features?.updateMany !== void 0 && tableFeatures.updateMany && !tableFeatures.update) {
|
|
7189
|
+
noteConflict("updateMany is on while update is off, so no batch update is generated", tableName);
|
|
7190
|
+
}
|
|
7191
|
+
if (config?.features?.groupBy !== void 0 && tableFeatures.groupBy && !tableFeatures.aggregates) {
|
|
7192
|
+
noteConflict("groupBy is on while aggregates is off, so no grouped query is generated", tableName);
|
|
7193
|
+
}
|
|
7194
|
+
if (tableFeatures.countMutations && !tableFeatures.update && !tableFeatures.delete) {
|
|
7195
|
+
noteConflict(
|
|
7196
|
+
"countMutations is on while update and delete are both off, so no count mutation is generated",
|
|
7197
|
+
tableName
|
|
7198
|
+
);
|
|
7199
|
+
}
|
|
7200
|
+
}
|
|
7201
|
+
for (const [message, tables] of featureConflicts) {
|
|
7202
|
+
const listed = tables.length > 5 ? `${tables.slice(0, 5).join(", ")} and ${tables.length - 5} more` : tables.join(", ");
|
|
7203
|
+
console.warn(`Drizzle-GraphQL Warning: config.features \u2014 ${message} (${listed}).`);
|
|
7204
|
+
}
|
|
7129
7205
|
const eagerOpt = config?.eagerLoadRelations;
|
|
7130
7206
|
const shouldEagerLoad = eagerOpt === void 0 || eagerOpt === true ? () => true : eagerOpt === false ? () => false : eagerOpt;
|
|
7131
7207
|
if (!typeNameMapper && suffixes.list === suffixes.single) {
|
|
@@ -7152,7 +7228,7 @@ var buildSchema = (db, config) => {
|
|
|
7152
7228
|
conflictDoNothing: config?.conflictDoNothing ?? false,
|
|
7153
7229
|
typeNameMapper,
|
|
7154
7230
|
shouldEagerLoad,
|
|
7155
|
-
features,
|
|
7231
|
+
features: config?.features ?? {},
|
|
7156
7232
|
complexity,
|
|
7157
7233
|
scalars: config?.scalars,
|
|
7158
7234
|
mapColumnType: config?.mapColumnType,
|
|
@@ -7214,6 +7290,7 @@ var buildSchema = (db, config) => {
|
|
|
7214
7290
|
drizzleExecutorKey,
|
|
7215
7291
|
extractFilters,
|
|
7216
7292
|
extractOrderBy,
|
|
7217
|
-
extractRelationJoinColumns
|
|
7293
|
+
extractRelationJoinColumns,
|
|
7294
|
+
singularizeMapper
|
|
7218
7295
|
});
|
|
7219
7296
|
//# sourceMappingURL=index.cjs.map
|