@vantreeseba/drizzle-graphql 5.3.0 → 5.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/dist/index.cjs +276 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +39 -1
- package/dist/index.d.ts +39 -1
- package/dist/index.js +276 -0
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2244,6 +2244,7 @@ var computeResolverFieldNames = (tableName, typeNameMapper, prefixes, suffixes)
|
|
|
2244
2244
|
const upsertArrayFieldName = `${upsertPrefix}${mapped ? capitalize(mapped.plural) : capitalize(tableName)}`;
|
|
2245
2245
|
const upsertSingleFieldName = mapped ? `${upsertPrefix}${capitalize(mapped.singular)}` : `${upsertPrefix}${capitalize(tableName)}${suffixes.single}`;
|
|
2246
2246
|
const updateFieldName = `${prefixes.update}${mapped ? capitalize(mapped.singular) : capitalize(tableName)}`;
|
|
2247
|
+
const updateManyFieldName = `${prefixes.update}${mapped ? capitalize(mapped.plural) : capitalize(tableName)}Many`;
|
|
2247
2248
|
const deleteFieldName = `${prefixes.delete}${mapped ? capitalize(mapped.singular) : capitalize(tableName)}`;
|
|
2248
2249
|
const writeSingleSuffix = suffixes.single === "" ? "Single" : suffixes.single;
|
|
2249
2250
|
const updateSingleFieldName = `${updateFieldName}${writeSingleSuffix}`;
|
|
@@ -2259,11 +2260,28 @@ var computeResolverFieldNames = (tableName, typeNameMapper, prefixes, suffixes)
|
|
|
2259
2260
|
upsertArrayFieldName,
|
|
2260
2261
|
upsertSingleFieldName,
|
|
2261
2262
|
updateFieldName,
|
|
2263
|
+
updateManyFieldName,
|
|
2262
2264
|
updateSingleFieldName,
|
|
2263
2265
|
deleteFieldName,
|
|
2264
2266
|
deleteSingleFieldName
|
|
2265
2267
|
};
|
|
2266
2268
|
};
|
|
2269
|
+
var generateUpdateManyInput = (params) => {
|
|
2270
|
+
const { typeName, updatePrefix, updateInput, tableFilters } = params;
|
|
2271
|
+
return new import_graphql4.GraphQLInputObjectType({
|
|
2272
|
+
name: `${capitalize(updatePrefix)}${typeName}ManyInput`,
|
|
2273
|
+
description: `One entry of a batch update of ${typeName}: the rows \`where\` matches get this entry's \`set\` applied.`,
|
|
2274
|
+
fields: {
|
|
2275
|
+
where: {
|
|
2276
|
+
type: tableFilters,
|
|
2277
|
+
description: "Rows this entry updates. An omitted filter updates every row."
|
|
2278
|
+
},
|
|
2279
|
+
set: {
|
|
2280
|
+
type: new import_graphql4.GraphQLNonNull(updateInput)
|
|
2281
|
+
}
|
|
2282
|
+
}
|
|
2283
|
+
});
|
|
2284
|
+
};
|
|
2267
2285
|
var extractRequiredFilters = (table, tableName, where, fieldName, relationCtx) => {
|
|
2268
2286
|
const filters = where ? extractFilters(table, tableName, where, relationCtx) : void 0;
|
|
2269
2287
|
if (!filters) {
|
|
@@ -3113,6 +3131,48 @@ var generateUpdate = (db, tableName, table, setArgs, filterArgs, fieldName, sing
|
|
|
3113
3131
|
args: queryArgs
|
|
3114
3132
|
};
|
|
3115
3133
|
};
|
|
3134
|
+
var generateUpdateMany = (db, tableName, table, updateManyInput, fieldName, filterCtx) => {
|
|
3135
|
+
const queryArgs = {
|
|
3136
|
+
updates: {
|
|
3137
|
+
type: new import_graphql6.GraphQLNonNull(new import_graphql6.GraphQLList(new import_graphql6.GraphQLNonNull(updateManyInput)))
|
|
3138
|
+
}
|
|
3139
|
+
};
|
|
3140
|
+
return {
|
|
3141
|
+
name: fieldName,
|
|
3142
|
+
resolver: async (_source, args, context, _info) => {
|
|
3143
|
+
try {
|
|
3144
|
+
const { updates } = args;
|
|
3145
|
+
if (!updates.length) {
|
|
3146
|
+
throw new import_graphql6.GraphQLError("No updates were provided!");
|
|
3147
|
+
}
|
|
3148
|
+
const entries = updates.map(({ where, set }) => {
|
|
3149
|
+
const input = remapFromGraphQLSingleInput(set, table);
|
|
3150
|
+
if (!Object.keys(input).length) {
|
|
3151
|
+
throw new import_graphql6.GraphQLError("Unable to update with no values specified!");
|
|
3152
|
+
}
|
|
3153
|
+
return {
|
|
3154
|
+
set: input,
|
|
3155
|
+
filters: where ? extractFilters(table, tableName, where, relationFilterCtx(filterCtx, tableName)) : void 0
|
|
3156
|
+
};
|
|
3157
|
+
});
|
|
3158
|
+
const executor = resolveExecutor(db, context);
|
|
3159
|
+
await executor.transaction(async (tx) => {
|
|
3160
|
+
for (const entry of entries) {
|
|
3161
|
+
let query = tx.update(table).set(entry.set);
|
|
3162
|
+
if (entry.filters) {
|
|
3163
|
+
query = query.where(entry.filters);
|
|
3164
|
+
}
|
|
3165
|
+
await query;
|
|
3166
|
+
}
|
|
3167
|
+
});
|
|
3168
|
+
return { isSuccess: true };
|
|
3169
|
+
} catch (e) {
|
|
3170
|
+
throw toGraphQLError(e);
|
|
3171
|
+
}
|
|
3172
|
+
},
|
|
3173
|
+
args: queryArgs
|
|
3174
|
+
};
|
|
3175
|
+
};
|
|
3116
3176
|
var generateDelete = (db, tableName, table, filterArgs, fieldName, single, requireWhere, filterCtx) => {
|
|
3117
3177
|
const queryArgs = {
|
|
3118
3178
|
where: {
|
|
@@ -3220,6 +3280,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
3220
3280
|
upsertArrayFieldName,
|
|
3221
3281
|
upsertSingleFieldName,
|
|
3222
3282
|
updateFieldName,
|
|
3283
|
+
updateManyFieldName,
|
|
3223
3284
|
updateSingleFieldName,
|
|
3224
3285
|
deleteFieldName,
|
|
3225
3286
|
deleteSingleFieldName
|
|
@@ -3282,6 +3343,15 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
3282
3343
|
features.requireWhere,
|
|
3283
3344
|
filterCtx
|
|
3284
3345
|
) : void 0;
|
|
3346
|
+
const updateManyInput = features.update && features.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
3347
|
+
const updateManyGenerated = updateManyInput ? generateUpdateMany(
|
|
3348
|
+
db,
|
|
3349
|
+
tableName,
|
|
3350
|
+
schema[tableName],
|
|
3351
|
+
updateManyInput,
|
|
3352
|
+
updateManyFieldName,
|
|
3353
|
+
filterCtx
|
|
3354
|
+
) : void 0;
|
|
3285
3355
|
const deleteGenerated = features.delete ? generateDelete(
|
|
3286
3356
|
db,
|
|
3287
3357
|
tableName,
|
|
@@ -3359,6 +3429,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
3359
3429
|
upsertArrGenerated,
|
|
3360
3430
|
upsertSingleGenerated,
|
|
3361
3431
|
updateGenerated,
|
|
3432
|
+
updateManyGenerated,
|
|
3362
3433
|
updateSingleGenerated,
|
|
3363
3434
|
deleteGenerated,
|
|
3364
3435
|
deleteSingleGenerated
|
|
@@ -3376,6 +3447,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
3376
3447
|
...features.insert || onConflictInput ? [insertInput] : [],
|
|
3377
3448
|
...onConflictInput ? [onConflictInput] : [],
|
|
3378
3449
|
...features.update ? [updateInput] : [],
|
|
3450
|
+
...updateManyInput ? [updateManyInput] : [],
|
|
3379
3451
|
tableFilters,
|
|
3380
3452
|
tableOrder
|
|
3381
3453
|
];
|
|
@@ -3795,6 +3867,78 @@ var generateUpdate2 = (db, tableName, table, tables, relationMap, setArgs, filte
|
|
|
3795
3867
|
args: queryArgs
|
|
3796
3868
|
};
|
|
3797
3869
|
};
|
|
3870
|
+
var generateUpdateMany2 = (db, tableName, table, tables, relationMap, updateManyInput, fieldName, typeName, typeNameMapper, filterCtx) => {
|
|
3871
|
+
const queryArgs = {
|
|
3872
|
+
updates: {
|
|
3873
|
+
type: new import_graphql7.GraphQLNonNull(new import_graphql7.GraphQLList(new import_graphql7.GraphQLNonNull(updateManyInput)))
|
|
3874
|
+
}
|
|
3875
|
+
};
|
|
3876
|
+
const pkNames = pgPrimaryKeyPropNames(table);
|
|
3877
|
+
return {
|
|
3878
|
+
name: fieldName,
|
|
3879
|
+
resolver: async (_source, args, context, info) => {
|
|
3880
|
+
try {
|
|
3881
|
+
const { updates } = args;
|
|
3882
|
+
if (!updates.length) {
|
|
3883
|
+
throw new import_graphql7.GraphQLError("No updates were provided!");
|
|
3884
|
+
}
|
|
3885
|
+
const parsedInfo = (0, import_graphql_parse_resolve_info3.parseResolveInfo)(info, {
|
|
3886
|
+
deep: true
|
|
3887
|
+
});
|
|
3888
|
+
const { columns, hasRelations, withParams } = prepareMutationRelationColumns({
|
|
3889
|
+
relationMap,
|
|
3890
|
+
tables,
|
|
3891
|
+
tableName,
|
|
3892
|
+
typeName,
|
|
3893
|
+
typeNameMapper,
|
|
3894
|
+
table,
|
|
3895
|
+
pkNames,
|
|
3896
|
+
parsedInfo
|
|
3897
|
+
});
|
|
3898
|
+
const entries = updates.map(({ where, set }) => {
|
|
3899
|
+
const input = remapFromGraphQLSingleInput(set, table);
|
|
3900
|
+
if (!Object.keys(input).length) {
|
|
3901
|
+
throw new import_graphql7.GraphQLError("Unable to update with no values specified!");
|
|
3902
|
+
}
|
|
3903
|
+
return {
|
|
3904
|
+
set: input,
|
|
3905
|
+
filters: where ? extractFilters(table, tableName, where, relationFilterCtx(filterCtx, tableName)) : void 0
|
|
3906
|
+
};
|
|
3907
|
+
});
|
|
3908
|
+
const executor = resolveExecutor(db, context);
|
|
3909
|
+
const perEntry = await executor.transaction(async (tx) => {
|
|
3910
|
+
const results = [];
|
|
3911
|
+
for (const entry of entries) {
|
|
3912
|
+
let query = tx.update(table).set(entry.set);
|
|
3913
|
+
if (entry.filters) {
|
|
3914
|
+
query = query.where(entry.filters);
|
|
3915
|
+
}
|
|
3916
|
+
results.push(await query.returning(columns));
|
|
3917
|
+
}
|
|
3918
|
+
return results;
|
|
3919
|
+
});
|
|
3920
|
+
const flatRows = perEntry.flat();
|
|
3921
|
+
const enriched = hasRelations ? await eagerLoadMutationRelations(executor, tableName, flatRows, pkNames, withParams) : flatRows;
|
|
3922
|
+
const output = [];
|
|
3923
|
+
let offset = 0;
|
|
3924
|
+
for (const rows of perEntry) {
|
|
3925
|
+
if (!rows.length) {
|
|
3926
|
+
output.push(null);
|
|
3927
|
+
continue;
|
|
3928
|
+
}
|
|
3929
|
+
for (let i = 0; i < rows.length; i++) {
|
|
3930
|
+
output.push(remapToGraphQLSingleOutput(enriched[offset + i], tableName, table, relationMap));
|
|
3931
|
+
}
|
|
3932
|
+
offset += rows.length;
|
|
3933
|
+
}
|
|
3934
|
+
return output;
|
|
3935
|
+
} catch (e) {
|
|
3936
|
+
throw toGraphQLError(e);
|
|
3937
|
+
}
|
|
3938
|
+
},
|
|
3939
|
+
args: queryArgs
|
|
3940
|
+
};
|
|
3941
|
+
};
|
|
3798
3942
|
var generateDelete2 = (db, tableName, table, filterArgs, fieldName, typeName, single, requireWhere, filterCtx, selectionCtx) => {
|
|
3799
3943
|
const queryArgs = {
|
|
3800
3944
|
where: {
|
|
@@ -3913,6 +4057,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
3913
4057
|
upsertArrayFieldName,
|
|
3914
4058
|
upsertSingleFieldName,
|
|
3915
4059
|
updateFieldName,
|
|
4060
|
+
updateManyFieldName,
|
|
3916
4061
|
updateSingleFieldName,
|
|
3917
4062
|
deleteFieldName,
|
|
3918
4063
|
deleteSingleFieldName
|
|
@@ -4034,6 +4179,19 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
4034
4179
|
typeNameMapper,
|
|
4035
4180
|
filterCtx
|
|
4036
4181
|
) : void 0;
|
|
4182
|
+
const updateManyInput = features.update && features.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
4183
|
+
const updateManyGenerated = updateManyInput ? generateUpdateMany2(
|
|
4184
|
+
db,
|
|
4185
|
+
tableName,
|
|
4186
|
+
schema[tableName],
|
|
4187
|
+
tables,
|
|
4188
|
+
eagerRelations,
|
|
4189
|
+
updateManyInput,
|
|
4190
|
+
updateManyFieldName,
|
|
4191
|
+
typeName,
|
|
4192
|
+
typeNameMapper,
|
|
4193
|
+
filterCtx
|
|
4194
|
+
) : void 0;
|
|
4037
4195
|
const deleteGenerated = features.delete ? generateDelete2(
|
|
4038
4196
|
db,
|
|
4039
4197
|
tableName,
|
|
@@ -4144,6 +4302,14 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
4144
4302
|
resolve: updateGenerated.resolver
|
|
4145
4303
|
};
|
|
4146
4304
|
}
|
|
4305
|
+
if (updateManyGenerated) {
|
|
4306
|
+
mutations[updateManyGenerated.name] = {
|
|
4307
|
+
// Nullable items: a no-match entry yields `null` in its slot.
|
|
4308
|
+
type: new import_graphql7.GraphQLNonNull(new import_graphql7.GraphQLList(singleTableItemOutput)),
|
|
4309
|
+
args: updateManyGenerated.args,
|
|
4310
|
+
resolve: updateManyGenerated.resolver
|
|
4311
|
+
};
|
|
4312
|
+
}
|
|
4147
4313
|
if (updateSingleGenerated) {
|
|
4148
4314
|
mutations[updateSingleGenerated.name] = {
|
|
4149
4315
|
type: singleTableItemOutput,
|
|
@@ -4170,6 +4336,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
4170
4336
|
...features.insert || onConflictInput ? [insertInput] : [],
|
|
4171
4337
|
...onConflictInput ? [onConflictInput] : [],
|
|
4172
4338
|
...features.update ? [updateInput] : [],
|
|
4339
|
+
...updateManyInput ? [updateManyInput] : [],
|
|
4173
4340
|
tableFilters,
|
|
4174
4341
|
tableOrder
|
|
4175
4342
|
];
|
|
@@ -4492,6 +4659,91 @@ var generateUpdate3 = (db, tableName, table, tables, relationMap, setArgs, filte
|
|
|
4492
4659
|
args: queryArgs
|
|
4493
4660
|
};
|
|
4494
4661
|
};
|
|
4662
|
+
var generateUpdateMany3 = (db, tableName, table, tables, relationMap, updateManyInput, fieldName, typeName, typeNameMapper, filterCtx) => {
|
|
4663
|
+
const queryArgs = {
|
|
4664
|
+
updates: {
|
|
4665
|
+
type: new import_graphql8.GraphQLNonNull(new import_graphql8.GraphQLList(new import_graphql8.GraphQLNonNull(updateManyInput)))
|
|
4666
|
+
}
|
|
4667
|
+
};
|
|
4668
|
+
const pkNames = sqlitePrimaryKeyPropNames(table);
|
|
4669
|
+
return {
|
|
4670
|
+
name: fieldName,
|
|
4671
|
+
resolver: async (_source, args, context, info) => {
|
|
4672
|
+
try {
|
|
4673
|
+
const { updates } = args;
|
|
4674
|
+
if (!updates.length) {
|
|
4675
|
+
throw new import_graphql8.GraphQLError("No updates were provided!");
|
|
4676
|
+
}
|
|
4677
|
+
const parsedInfo = (0, import_graphql_parse_resolve_info4.parseResolveInfo)(info, {
|
|
4678
|
+
deep: true
|
|
4679
|
+
});
|
|
4680
|
+
const { columns, hasRelations, withParams } = prepareMutationRelationColumns({
|
|
4681
|
+
relationMap,
|
|
4682
|
+
tables,
|
|
4683
|
+
tableName,
|
|
4684
|
+
typeName,
|
|
4685
|
+
typeNameMapper,
|
|
4686
|
+
table,
|
|
4687
|
+
pkNames,
|
|
4688
|
+
parsedInfo
|
|
4689
|
+
});
|
|
4690
|
+
const entries = updates.map(({ where, set }) => {
|
|
4691
|
+
const input = remapFromGraphQLSingleInput(set, table);
|
|
4692
|
+
if (!Object.keys(input).length) {
|
|
4693
|
+
throw new import_graphql8.GraphQLError("Unable to update with no values specified!");
|
|
4694
|
+
}
|
|
4695
|
+
return {
|
|
4696
|
+
set: input,
|
|
4697
|
+
filters: where ? extractFilters(table, tableName, where, relationFilterCtx(filterCtx, tableName)) : void 0
|
|
4698
|
+
};
|
|
4699
|
+
});
|
|
4700
|
+
const runEntry = (tx, entry) => {
|
|
4701
|
+
let query = tx.update(table).set(entry.set);
|
|
4702
|
+
if (entry.filters) {
|
|
4703
|
+
query = query.where(entry.filters);
|
|
4704
|
+
}
|
|
4705
|
+
return query.returning(columns).all();
|
|
4706
|
+
};
|
|
4707
|
+
const executor = resolveExecutor(db, context);
|
|
4708
|
+
const perEntry = await executor.transaction((tx) => {
|
|
4709
|
+
const first = runEntry(tx, entries[0]);
|
|
4710
|
+
if (typeof first?.then === "function") {
|
|
4711
|
+
return (async () => {
|
|
4712
|
+
const results2 = [await first];
|
|
4713
|
+
for (let i = 1; i < entries.length; i++) {
|
|
4714
|
+
results2.push(await runEntry(tx, entries[i]));
|
|
4715
|
+
}
|
|
4716
|
+
return results2;
|
|
4717
|
+
})();
|
|
4718
|
+
}
|
|
4719
|
+
const results = [first];
|
|
4720
|
+
for (let i = 1; i < entries.length; i++) {
|
|
4721
|
+
results.push(runEntry(tx, entries[i]));
|
|
4722
|
+
}
|
|
4723
|
+
return results;
|
|
4724
|
+
});
|
|
4725
|
+
const flatRows = perEntry.flat();
|
|
4726
|
+
const enriched = hasRelations ? await eagerLoadMutationRelations(executor, tableName, flatRows, pkNames, withParams) : flatRows;
|
|
4727
|
+
const output = [];
|
|
4728
|
+
let offset = 0;
|
|
4729
|
+
for (const rows of perEntry) {
|
|
4730
|
+
if (!rows.length) {
|
|
4731
|
+
output.push(null);
|
|
4732
|
+
continue;
|
|
4733
|
+
}
|
|
4734
|
+
for (let i = 0; i < rows.length; i++) {
|
|
4735
|
+
output.push(remapToGraphQLSingleOutput(enriched[offset + i], tableName, table, relationMap));
|
|
4736
|
+
}
|
|
4737
|
+
offset += rows.length;
|
|
4738
|
+
}
|
|
4739
|
+
return output;
|
|
4740
|
+
} catch (e) {
|
|
4741
|
+
throw toGraphQLError(e);
|
|
4742
|
+
}
|
|
4743
|
+
},
|
|
4744
|
+
args: queryArgs
|
|
4745
|
+
};
|
|
4746
|
+
};
|
|
4495
4747
|
var generateDelete3 = (db, tableName, table, filterArgs, fieldName, typeName, single, requireWhere, filterCtx, selectionCtx) => {
|
|
4496
4748
|
const queryArgs = {
|
|
4497
4749
|
where: {
|
|
@@ -4611,6 +4863,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
4611
4863
|
upsertArrayFieldName,
|
|
4612
4864
|
upsertSingleFieldName,
|
|
4613
4865
|
updateFieldName,
|
|
4866
|
+
updateManyFieldName,
|
|
4614
4867
|
updateSingleFieldName,
|
|
4615
4868
|
deleteFieldName,
|
|
4616
4869
|
deleteSingleFieldName
|
|
@@ -4732,6 +4985,19 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
4732
4985
|
typeNameMapper,
|
|
4733
4986
|
filterCtx
|
|
4734
4987
|
) : void 0;
|
|
4988
|
+
const updateManyInput = features.update && features.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
4989
|
+
const updateManyGenerated = updateManyInput ? generateUpdateMany3(
|
|
4990
|
+
db,
|
|
4991
|
+
tableName,
|
|
4992
|
+
schema[tableName],
|
|
4993
|
+
tables,
|
|
4994
|
+
eagerRelations,
|
|
4995
|
+
updateManyInput,
|
|
4996
|
+
updateManyFieldName,
|
|
4997
|
+
typeName,
|
|
4998
|
+
typeNameMapper,
|
|
4999
|
+
filterCtx
|
|
5000
|
+
) : void 0;
|
|
4735
5001
|
const deleteGenerated = features.delete ? generateDelete3(
|
|
4736
5002
|
db,
|
|
4737
5003
|
tableName,
|
|
@@ -4842,6 +5108,14 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
4842
5108
|
resolve: updateGenerated.resolver
|
|
4843
5109
|
};
|
|
4844
5110
|
}
|
|
5111
|
+
if (updateManyGenerated) {
|
|
5112
|
+
mutations[updateManyGenerated.name] = {
|
|
5113
|
+
// Nullable items: a no-match entry yields `null` in its slot.
|
|
5114
|
+
type: new import_graphql8.GraphQLNonNull(new import_graphql8.GraphQLList(singleTableItemOutput)),
|
|
5115
|
+
args: updateManyGenerated.args,
|
|
5116
|
+
resolve: updateManyGenerated.resolver
|
|
5117
|
+
};
|
|
5118
|
+
}
|
|
4845
5119
|
if (updateSingleGenerated) {
|
|
4846
5120
|
mutations[updateSingleGenerated.name] = {
|
|
4847
5121
|
type: singleTableItemOutput,
|
|
@@ -4868,6 +5142,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
4868
5142
|
...features.insert || onConflictInput ? [insertInput] : [],
|
|
4869
5143
|
...onConflictInput ? [onConflictInput] : [],
|
|
4870
5144
|
...features.update ? [updateInput] : [],
|
|
5145
|
+
...updateManyInput ? [updateManyInput] : [],
|
|
4871
5146
|
tableFilters,
|
|
4872
5147
|
tableOrder
|
|
4873
5148
|
];
|
|
@@ -4930,6 +5205,7 @@ var buildSchema = (db, config) => {
|
|
|
4930
5205
|
distinct: config?.features?.distinct ?? true,
|
|
4931
5206
|
insert: config?.features?.insert ?? true,
|
|
4932
5207
|
update: config?.features?.update ?? true,
|
|
5208
|
+
updateMany: config?.features?.updateMany ?? true,
|
|
4933
5209
|
delete: config?.features?.delete ?? true,
|
|
4934
5210
|
upsert: config?.features?.upsert ?? false,
|
|
4935
5211
|
requireWhere: config?.features?.requireWhere ?? false
|