@vantreeseba/drizzle-graphql 7.0.0 → 7.1.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 +262 -7
- package/dist/README.md +262 -7
- package/dist/index.cjs +214 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +73 -2
- package/dist/index.d.ts +73 -2
- package/dist/index.js +214 -68
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1033,7 +1033,7 @@ var batchedPaginatedRelationQuery = async (db, targetTable, foreignCol, whereCon
|
|
|
1033
1033
|
}
|
|
1034
1034
|
return rows;
|
|
1035
1035
|
};
|
|
1036
|
-
var createRelationResolverFactory = (db, tables, nullOrdering, filterCtx) => ({ tableName, relationName, relEntry, isOne }) => {
|
|
1036
|
+
var createRelationResolverFactory = (db, tables, nullOrdering, filterCtx, limits) => ({ tableName, relationName, relEntry, isOne }) => {
|
|
1037
1037
|
const parentTable = tables[tableName];
|
|
1038
1038
|
const targetTableName = relEntry.targetTableName;
|
|
1039
1039
|
const targetTable = tables[targetTableName];
|
|
@@ -1045,6 +1045,7 @@ var createRelationResolverFactory = (db, tables, nullOrdering, filterCtx) => ({
|
|
|
1045
1045
|
return void 0;
|
|
1046
1046
|
}
|
|
1047
1047
|
const { localColPropName, foreignCol, foreignColPropName } = joinCols;
|
|
1048
|
+
const limitPolicy = isOne ? void 0 : limits?.(targetTableName);
|
|
1048
1049
|
const targetPkNames = relEntry.targetPkNames ?? [];
|
|
1049
1050
|
return async (parent, args, context, info) => {
|
|
1050
1051
|
if (parent[relationName] !== void 0) {
|
|
@@ -1054,7 +1055,8 @@ var createRelationResolverFactory = (db, tables, nullOrdering, filterCtx) => ({
|
|
|
1054
1055
|
if (localValue == null) {
|
|
1055
1056
|
return isOne ? null : [];
|
|
1056
1057
|
}
|
|
1057
|
-
const { where: whereArg, orderBy: orderByArg, limit, offset, after } = args ?? {};
|
|
1058
|
+
const { where: whereArg, orderBy: orderByArg, limit: requestedLimit, offset, after } = args ?? {};
|
|
1059
|
+
const limit = applyLimitPolicy(requestedLimit, limitPolicy, `${tableName}.${relationName}`);
|
|
1058
1060
|
const distinct = (args ?? {}).distinct?.length ? (args ?? {}).distinct : void 0;
|
|
1059
1061
|
const cursorSelected = !isOne && !!info && selectsCursorField(info, targetTable);
|
|
1060
1062
|
let cursorEntries;
|
|
@@ -1168,9 +1170,41 @@ var inputFieldDocs = (docs, column, tableName, columnName, fieldType) => {
|
|
|
1168
1170
|
}
|
|
1169
1171
|
return resolved;
|
|
1170
1172
|
};
|
|
1171
|
-
var
|
|
1173
|
+
var applyLimitPolicy = (limit, policy, fieldName) => {
|
|
1174
|
+
if (!policy) {
|
|
1175
|
+
return limit ?? void 0;
|
|
1176
|
+
}
|
|
1177
|
+
const { defaultLimit, maxLimit, clampToMax } = policy;
|
|
1178
|
+
if (limit == null) {
|
|
1179
|
+
const fallback = defaultLimit ?? maxLimit;
|
|
1180
|
+
if (fallback === void 0) {
|
|
1181
|
+
return void 0;
|
|
1182
|
+
}
|
|
1183
|
+
return maxLimit === void 0 ? fallback : Math.min(fallback, maxLimit);
|
|
1184
|
+
}
|
|
1185
|
+
if (maxLimit !== void 0 && limit > maxLimit) {
|
|
1186
|
+
if (clampToMax) {
|
|
1187
|
+
return maxLimit;
|
|
1188
|
+
}
|
|
1189
|
+
throw new GraphQLError4(`${fieldName}: 'limit' of ${limit} exceeds the maximum of ${maxLimit}.`);
|
|
1190
|
+
}
|
|
1191
|
+
return limit;
|
|
1192
|
+
};
|
|
1193
|
+
var resolveLimitPolicy = (global, table) => {
|
|
1194
|
+
const defaultLimit = table?.defaultLimit ?? global?.defaultLimit;
|
|
1195
|
+
const maxLimit = table?.maxLimit ?? global?.maxLimit;
|
|
1196
|
+
if (defaultLimit === void 0 && maxLimit === void 0) {
|
|
1197
|
+
return void 0;
|
|
1198
|
+
}
|
|
1199
|
+
return { defaultLimit, maxLimit, clampToMax: table?.clampToMax ?? global?.clampToMax ?? false };
|
|
1200
|
+
};
|
|
1201
|
+
var listFieldComplexity = (options, policy) => ({ args, childComplexity }) => {
|
|
1172
1202
|
const limit = args["limit"];
|
|
1173
|
-
const
|
|
1203
|
+
const requested = typeof limit === "number" && limit > 0 ? limit : void 0;
|
|
1204
|
+
let rows = requested ?? policy?.defaultLimit ?? options.defaultListSize;
|
|
1205
|
+
if (policy?.maxLimit !== void 0) {
|
|
1206
|
+
rows = Math.min(rows, policy.maxLimit);
|
|
1207
|
+
}
|
|
1174
1208
|
return rows * Math.max(childComplexity, 1);
|
|
1175
1209
|
};
|
|
1176
1210
|
var aggregateFieldComplexity = (options) => ({ childComplexity }) => options.aggregateCost + childComplexity;
|
|
@@ -1801,7 +1835,11 @@ var generateSelectFields = (tables, tableName, relationMap, fromTableName, fromR
|
|
|
1801
1835
|
},
|
|
1802
1836
|
resolve,
|
|
1803
1837
|
...relationDocs,
|
|
1804
|
-
...cacheCtx.complexity ? {
|
|
1838
|
+
...cacheCtx.complexity ? {
|
|
1839
|
+
extensions: {
|
|
1840
|
+
complexity: listFieldComplexity(cacheCtx.complexity, cacheCtx.limits?.(targetTableName))
|
|
1841
|
+
}
|
|
1842
|
+
} : {}
|
|
1805
1843
|
}
|
|
1806
1844
|
]);
|
|
1807
1845
|
const aggregateFieldName = `${relationName}Aggregate`;
|
|
@@ -2280,7 +2318,7 @@ var extractFilters = (table, tableName, filters, relationCtx) => {
|
|
|
2280
2318
|
}
|
|
2281
2319
|
return variants.length ? variants.length > 1 ? and(...variants) : variants[0] : void 0;
|
|
2282
2320
|
};
|
|
2283
|
-
var extractRelationsParamsInner = (relationMap, tables, tableName, typeName, originField, typeNameMapper, _isInitial = false, filterCtx) => {
|
|
2321
|
+
var extractRelationsParamsInner = (relationMap, tables, tableName, typeName, originField, typeNameMapper, _isInitial = false, filterCtx, limits) => {
|
|
2284
2322
|
const relationsForTable = relationMap[tableName];
|
|
2285
2323
|
if (!relationsForTable) {
|
|
2286
2324
|
return void 0;
|
|
@@ -2324,7 +2362,7 @@ var extractRelationsParamsInner = (relationMap, tables, tableName, typeName, ori
|
|
|
2324
2362
|
const relationField = Object.values(baseField).find((e) => e.name === relName);
|
|
2325
2363
|
const relationArgs = relationField?.args;
|
|
2326
2364
|
const offset = relationArgs?.offset ?? void 0;
|
|
2327
|
-
const limit = relationArgs?.limit ?? void 0;
|
|
2365
|
+
const limit = is3(relEntry.relation, One2) ? relationArgs?.limit ?? void 0 : applyLimitPolicy(relationArgs?.limit, limits?.(targetTableName), `${tableName}.${relName}`);
|
|
2328
2366
|
const relWhere = relationArgs?.where;
|
|
2329
2367
|
thisRecord.where = relWhere ? {
|
|
2330
2368
|
RAW: (aliasedTable2) => extractFilters(aliasedTable2, relName, relWhere, relationFilterCtx(filterCtx, targetTableName))
|
|
@@ -2342,18 +2380,29 @@ var extractRelationsParamsInner = (relationMap, tables, tableName, typeName, ori
|
|
|
2342
2380
|
relationField,
|
|
2343
2381
|
typeNameMapper,
|
|
2344
2382
|
false,
|
|
2345
|
-
filterCtx
|
|
2383
|
+
filterCtx,
|
|
2384
|
+
limits
|
|
2346
2385
|
) : void 0;
|
|
2347
2386
|
thisRecord.with = relWith;
|
|
2348
2387
|
args[relName] = thisRecord;
|
|
2349
2388
|
}
|
|
2350
2389
|
return args;
|
|
2351
2390
|
};
|
|
2352
|
-
var extractRelationsParams = (relationMap, tables, tableName, info, typeName, typeNameMapper, filterCtx) => {
|
|
2391
|
+
var extractRelationsParams = (relationMap, tables, tableName, info, typeName, typeNameMapper, filterCtx, limits) => {
|
|
2353
2392
|
if (!info) {
|
|
2354
2393
|
return void 0;
|
|
2355
2394
|
}
|
|
2356
|
-
return extractRelationsParamsInner(
|
|
2395
|
+
return extractRelationsParamsInner(
|
|
2396
|
+
relationMap,
|
|
2397
|
+
tables,
|
|
2398
|
+
tableName,
|
|
2399
|
+
typeName,
|
|
2400
|
+
info,
|
|
2401
|
+
typeNameMapper,
|
|
2402
|
+
true,
|
|
2403
|
+
filterCtx,
|
|
2404
|
+
limits
|
|
2405
|
+
);
|
|
2357
2406
|
};
|
|
2358
2407
|
var pruneNonEagerRelations = (relationMap, shouldEagerLoad) => {
|
|
2359
2408
|
const out = {};
|
|
@@ -2744,7 +2793,16 @@ var primaryKeyRestriction = (table, pkNames, keys) => {
|
|
|
2744
2793
|
};
|
|
2745
2794
|
var prepareMutationRelationColumns = (params) => {
|
|
2746
2795
|
const { relationMap, tables, tableName, typeName, typeNameMapper, table, pkNames, parsedInfo } = params;
|
|
2747
|
-
const withParams = relationMap[tableName] ? extractRelationsParams(
|
|
2796
|
+
const withParams = relationMap[tableName] ? extractRelationsParams(
|
|
2797
|
+
relationMap,
|
|
2798
|
+
tables,
|
|
2799
|
+
tableName,
|
|
2800
|
+
parsedInfo,
|
|
2801
|
+
typeName,
|
|
2802
|
+
typeNameMapper,
|
|
2803
|
+
void 0,
|
|
2804
|
+
params.limits
|
|
2805
|
+
) : void 0;
|
|
2748
2806
|
const hasRelations = !!(withParams && Object.keys(withParams).length);
|
|
2749
2807
|
const baseColumns = extractSelectedColumnsFromTreeSQLFormat(parsedInfo.fieldsByTypeName[typeName], table, {
|
|
2750
2808
|
tableName,
|
|
@@ -3048,7 +3106,16 @@ var runRelationalSelect = async (opts) => {
|
|
|
3048
3106
|
) : void 0
|
|
3049
3107
|
)
|
|
3050
3108
|
} : void 0,
|
|
3051
|
-
with: relationMap[tableName] ? extractRelationsParams(
|
|
3109
|
+
with: relationMap[tableName] ? extractRelationsParams(
|
|
3110
|
+
relationMap,
|
|
3111
|
+
tables,
|
|
3112
|
+
tableName,
|
|
3113
|
+
parsedInfo,
|
|
3114
|
+
typeName,
|
|
3115
|
+
typeNameMapper,
|
|
3116
|
+
filterCtx,
|
|
3117
|
+
opts.limits
|
|
3118
|
+
) : void 0
|
|
3052
3119
|
};
|
|
3053
3120
|
if (single) {
|
|
3054
3121
|
const result2 = await queryBase.findFirst(params);
|
|
@@ -3610,7 +3677,7 @@ var generateGroupBy = (db, tableName, table, typeName, fieldName, filterArgs, gr
|
|
|
3610
3677
|
};
|
|
3611
3678
|
|
|
3612
3679
|
// src/util/builders/mysql.ts
|
|
3613
|
-
var generateSelectArray = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx, distinctEnabled = true) => {
|
|
3680
|
+
var generateSelectArray = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx, distinctEnabled = true, limits) => {
|
|
3614
3681
|
const queryBase = db.query[tableName];
|
|
3615
3682
|
if (!queryBase) {
|
|
3616
3683
|
throw new Error(
|
|
@@ -3618,6 +3685,7 @@ var generateSelectArray = (db, tableName, tables, relationMap, orderArgs, filter
|
|
|
3618
3685
|
);
|
|
3619
3686
|
}
|
|
3620
3687
|
const table = tables[tableName];
|
|
3688
|
+
const limitPolicy = limits?.(tableName);
|
|
3621
3689
|
const pkNames = mysqlPrimaryKeyPropNames(table);
|
|
3622
3690
|
const queryArgs = selectArrayArgs(
|
|
3623
3691
|
orderArgs,
|
|
@@ -3640,8 +3708,10 @@ var generateSelectArray = (db, tableName, tables, relationMap, orderArgs, filter
|
|
|
3640
3708
|
typeNameMapper,
|
|
3641
3709
|
parsedInfo,
|
|
3642
3710
|
...args,
|
|
3711
|
+
limit: applyLimitPolicy(args.limit, limitPolicy, fieldName),
|
|
3643
3712
|
single: false,
|
|
3644
3713
|
filterCtx,
|
|
3714
|
+
limits,
|
|
3645
3715
|
pkNames,
|
|
3646
3716
|
db: executor,
|
|
3647
3717
|
// MySQL sorts NULLs as the smallest values (first in ASC).
|
|
@@ -3654,7 +3724,7 @@ var generateSelectArray = (db, tableName, tables, relationMap, orderArgs, filter
|
|
|
3654
3724
|
args: queryArgs
|
|
3655
3725
|
};
|
|
3656
3726
|
};
|
|
3657
|
-
var generateSelectSingle = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx) => {
|
|
3727
|
+
var generateSelectSingle = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx, limits) => {
|
|
3658
3728
|
const queryBase = db.query[tableName];
|
|
3659
3729
|
if (!queryBase) {
|
|
3660
3730
|
throw new Error(
|
|
@@ -3682,6 +3752,7 @@ var generateSelectSingle = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
3682
3752
|
...args,
|
|
3683
3753
|
single: true,
|
|
3684
3754
|
filterCtx,
|
|
3755
|
+
limits,
|
|
3685
3756
|
pkNames,
|
|
3686
3757
|
db: executor
|
|
3687
3758
|
});
|
|
@@ -3896,7 +3967,7 @@ var generateDelete = (db, tableName, table, filterArgs, fieldName, single, requi
|
|
|
3896
3967
|
};
|
|
3897
3968
|
var mysqlPrimaryKeyPropNames = (table) => getPrimaryKeyPropNamesFromConfig(table, getTableConfig);
|
|
3898
3969
|
var generateSchemaData = (db, schema, relations, options) => {
|
|
3899
|
-
const { relationsDepthLimit, prefixes, suffixes, typeNameMapper, shouldEagerLoad, features, complexity } = options;
|
|
3970
|
+
const { relationsDepthLimit, prefixes, suffixes, typeNameMapper, shouldEagerLoad, features, complexity, limits } = options;
|
|
3900
3971
|
const rawSchema = schema;
|
|
3901
3972
|
const schemaEntries = Object.entries(rawSchema);
|
|
3902
3973
|
const tableEntries = schemaEntries.filter(([_key, value]) => is4(value, MySqlTable));
|
|
@@ -3921,7 +3992,8 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
3921
3992
|
db,
|
|
3922
3993
|
tables,
|
|
3923
3994
|
"nulls-smallest",
|
|
3924
|
-
filterCtx
|
|
3995
|
+
filterCtx,
|
|
3996
|
+
limits
|
|
3925
3997
|
);
|
|
3926
3998
|
const cacheCtx = {
|
|
3927
3999
|
genericFilterCache: /* @__PURE__ */ new Map(),
|
|
@@ -3936,6 +4008,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
3936
4008
|
listRelationFilterCache: /* @__PURE__ */ new Map(),
|
|
3937
4009
|
aggregateTypeCache: /* @__PURE__ */ new Map(),
|
|
3938
4010
|
complexity,
|
|
4011
|
+
limits,
|
|
3939
4012
|
docs: options.docs ?? {},
|
|
3940
4013
|
features
|
|
3941
4014
|
};
|
|
@@ -4006,7 +4079,8 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4006
4079
|
typeName,
|
|
4007
4080
|
typeNameMapper,
|
|
4008
4081
|
filterCtx,
|
|
4009
|
-
features.distinct
|
|
4082
|
+
features.distinct,
|
|
4083
|
+
limits
|
|
4010
4084
|
);
|
|
4011
4085
|
const selectSingleGenerated = generateSelectSingle(
|
|
4012
4086
|
db,
|
|
@@ -4018,7 +4092,8 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4018
4092
|
singleFieldName,
|
|
4019
4093
|
typeName,
|
|
4020
4094
|
typeNameMapper,
|
|
4021
|
-
filterCtx
|
|
4095
|
+
filterCtx,
|
|
4096
|
+
limits
|
|
4022
4097
|
);
|
|
4023
4098
|
const insertArrGenerated = features.insert ? generateInsertArray(
|
|
4024
4099
|
db,
|
|
@@ -4168,7 +4243,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4168
4243
|
type: selectArrOutput,
|
|
4169
4244
|
args: selectArrGenerated.args,
|
|
4170
4245
|
resolve: selectArrGenerated.resolver,
|
|
4171
|
-
...complexity ? { extensions: { complexity: listFieldComplexity(complexity) } } : {}
|
|
4246
|
+
...complexity ? { extensions: { complexity: listFieldComplexity(complexity, limits?.(tableName)) } } : {}
|
|
4172
4247
|
};
|
|
4173
4248
|
queries[selectSingleGenerated.name] = {
|
|
4174
4249
|
type: selectSingleOutput,
|
|
@@ -4664,9 +4739,10 @@ var updateWithNestedOps = async (params) => {
|
|
|
4664
4739
|
};
|
|
4665
4740
|
|
|
4666
4741
|
// src/util/builders/pg.ts
|
|
4667
|
-
var generateSelectArray2 = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx, distinctEnabled = true) => {
|
|
4742
|
+
var generateSelectArray2 = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx, distinctEnabled = true, limits) => {
|
|
4668
4743
|
const queryBase = db.query[tableName];
|
|
4669
4744
|
const table = tables[tableName];
|
|
4745
|
+
const limitPolicy = limits?.(tableName);
|
|
4670
4746
|
const pkNames = pgPrimaryKeyPropNames(table);
|
|
4671
4747
|
const queryArgs = selectArrayArgs(
|
|
4672
4748
|
orderArgs,
|
|
@@ -4679,6 +4755,7 @@ var generateSelectArray2 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
4679
4755
|
try {
|
|
4680
4756
|
const parsedInfo = parseResolveInfo3(info, { deep: true });
|
|
4681
4757
|
const { executor, queryBase: requestQueryBase } = resolveQueryExecutor(db, context, tableName, queryBase);
|
|
4758
|
+
const limit = applyLimitPolicy(args.limit, limitPolicy, fieldName);
|
|
4682
4759
|
if (requestQueryBase) {
|
|
4683
4760
|
return await runRelationalSelect({
|
|
4684
4761
|
queryBase: requestQueryBase,
|
|
@@ -4690,15 +4767,17 @@ var generateSelectArray2 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
4690
4767
|
typeNameMapper,
|
|
4691
4768
|
parsedInfo,
|
|
4692
4769
|
...args,
|
|
4770
|
+
limit,
|
|
4693
4771
|
single: false,
|
|
4694
4772
|
filterCtx,
|
|
4773
|
+
limits,
|
|
4695
4774
|
pkNames,
|
|
4696
4775
|
db: executor,
|
|
4697
4776
|
// PostgreSQL sorts NULLs as the largest values (last in ASC).
|
|
4698
4777
|
nullOrdering: "nulls-largest"
|
|
4699
4778
|
});
|
|
4700
4779
|
}
|
|
4701
|
-
const { offset,
|
|
4780
|
+
const { offset, orderBy, where, distinct, after } = args;
|
|
4702
4781
|
const selectedColumnsSql = extractSelectedColumnsFromTreeSQLFormat(
|
|
4703
4782
|
parsedInfo.fieldsByTypeName[typeName],
|
|
4704
4783
|
table,
|
|
@@ -4788,7 +4867,7 @@ var generateSelectArray2 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
4788
4867
|
args: queryArgs
|
|
4789
4868
|
};
|
|
4790
4869
|
};
|
|
4791
|
-
var generateSelectSingle2 = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx) => {
|
|
4870
|
+
var generateSelectSingle2 = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx, limits) => {
|
|
4792
4871
|
const queryBase = db.query[tableName];
|
|
4793
4872
|
const queryArgs = selectSingleArgs(orderArgs, filterArgs);
|
|
4794
4873
|
const table = tables[tableName];
|
|
@@ -4812,6 +4891,7 @@ var generateSelectSingle2 = (db, tableName, tables, relationMap, orderArgs, filt
|
|
|
4812
4891
|
...args,
|
|
4813
4892
|
single: true,
|
|
4814
4893
|
filterCtx,
|
|
4894
|
+
limits,
|
|
4815
4895
|
pkNames,
|
|
4816
4896
|
db: executor
|
|
4817
4897
|
});
|
|
@@ -4845,7 +4925,7 @@ var generateSelectSingle2 = (db, tableName, tables, relationMap, orderArgs, filt
|
|
|
4845
4925
|
};
|
|
4846
4926
|
};
|
|
4847
4927
|
var pgPrimaryKeyPropNames = (table) => getPrimaryKeyPropNamesFromConfig(table, getTableConfig2);
|
|
4848
|
-
var generateInsertArray2 = (db, tableName, table, tables, relationMap, baseType, fieldName, typeName, typeNameMapper, conflictDoNothing = false, txCtx, nested) => {
|
|
4928
|
+
var generateInsertArray2 = (db, tableName, table, tables, relationMap, baseType, fieldName, typeName, typeNameMapper, conflictDoNothing = false, txCtx, nested, limits) => {
|
|
4849
4929
|
const queryArgs = {
|
|
4850
4930
|
values: {
|
|
4851
4931
|
type: new GraphQLNonNull7(new GraphQLList7(new GraphQLNonNull7(baseType)))
|
|
@@ -4874,7 +4954,8 @@ var generateInsertArray2 = (db, tableName, table, tables, relationMap, baseType,
|
|
|
4874
4954
|
typeNameMapper,
|
|
4875
4955
|
table,
|
|
4876
4956
|
pkNames,
|
|
4877
|
-
parsedInfo
|
|
4957
|
+
parsedInfo,
|
|
4958
|
+
limits
|
|
4878
4959
|
});
|
|
4879
4960
|
const returning = nestedEntries ? nested.withJoinColumns(tableName, mergedOps(nestedEntries), { ...columns }, table) : columns;
|
|
4880
4961
|
const runInsert = async (target, values) => {
|
|
@@ -4902,7 +4983,7 @@ var generateInsertArray2 = (db, tableName, table, tables, relationMap, baseType,
|
|
|
4902
4983
|
args: queryArgs
|
|
4903
4984
|
};
|
|
4904
4985
|
};
|
|
4905
|
-
var generateInsertSingle2 = (db, tableName, table, tables, relationMap, baseType, fieldName, typeName, typeNameMapper, conflictDoNothing = false, txCtx, nested) => {
|
|
4986
|
+
var generateInsertSingle2 = (db, tableName, table, tables, relationMap, baseType, fieldName, typeName, typeNameMapper, conflictDoNothing = false, txCtx, nested, limits) => {
|
|
4906
4987
|
const queryArgs = {
|
|
4907
4988
|
values: {
|
|
4908
4989
|
type: new GraphQLNonNull7(baseType)
|
|
@@ -4928,7 +5009,8 @@ var generateInsertSingle2 = (db, tableName, table, tables, relationMap, baseType
|
|
|
4928
5009
|
typeNameMapper,
|
|
4929
5010
|
table,
|
|
4930
5011
|
pkNames,
|
|
4931
|
-
parsedInfo
|
|
5012
|
+
parsedInfo,
|
|
5013
|
+
limits
|
|
4932
5014
|
});
|
|
4933
5015
|
const returning = nestedEntry ? nested.withJoinColumns(tableName, nestedEntry.ops, { ...columns }, table) : columns;
|
|
4934
5016
|
const runInsert = async (target, values) => {
|
|
@@ -4962,7 +5044,7 @@ var generateInsertSingle2 = (db, tableName, table, tables, relationMap, baseType
|
|
|
4962
5044
|
args: queryArgs
|
|
4963
5045
|
};
|
|
4964
5046
|
};
|
|
4965
|
-
var generateUpsert2 = (db, tableName, table, tables, relationMap, baseType, onConflictType, uniqueSets, fieldName, typeName, single, typeNameMapper, filterCtx, txCtx, nested) => {
|
|
5047
|
+
var generateUpsert2 = (db, tableName, table, tables, relationMap, baseType, onConflictType, uniqueSets, fieldName, typeName, single, typeNameMapper, filterCtx, txCtx, nested, limits) => {
|
|
4966
5048
|
const queryArgs = {
|
|
4967
5049
|
values: {
|
|
4968
5050
|
type: single ? new GraphQLNonNull7(baseType) : new GraphQLNonNull7(new GraphQLList7(new GraphQLNonNull7(baseType)))
|
|
@@ -4994,7 +5076,8 @@ var generateUpsert2 = (db, tableName, table, tables, relationMap, baseType, onCo
|
|
|
4994
5076
|
typeNameMapper,
|
|
4995
5077
|
table,
|
|
4996
5078
|
pkNames,
|
|
4997
|
-
parsedInfo
|
|
5079
|
+
parsedInfo,
|
|
5080
|
+
limits
|
|
4998
5081
|
});
|
|
4999
5082
|
const returning = nestedEntries ? nested.withJoinColumns(tableName, mergedOps(nestedEntries), { ...columns }, table) : columns;
|
|
5000
5083
|
const runUpsert = async (target, values) => {
|
|
@@ -5033,7 +5116,7 @@ var generateUpsert2 = (db, tableName, table, tables, relationMap, baseType, onCo
|
|
|
5033
5116
|
args: queryArgs
|
|
5034
5117
|
};
|
|
5035
5118
|
};
|
|
5036
|
-
var generateUpdate2 = (db, tableName, table, tables, relationMap, setArgs, filterArgs, fieldName, typeName, single, requireWhere, typeNameMapper, filterCtx, txCtx, nested) => {
|
|
5119
|
+
var generateUpdate2 = (db, tableName, table, tables, relationMap, setArgs, filterArgs, fieldName, typeName, single, requireWhere, typeNameMapper, filterCtx, txCtx, nested, limits) => {
|
|
5037
5120
|
const queryArgs = {
|
|
5038
5121
|
set: {
|
|
5039
5122
|
type: new GraphQLNonNull7(setArgs)
|
|
@@ -5060,7 +5143,8 @@ var generateUpdate2 = (db, tableName, table, tables, relationMap, setArgs, filte
|
|
|
5060
5143
|
typeNameMapper,
|
|
5061
5144
|
table,
|
|
5062
5145
|
pkNames,
|
|
5063
|
-
parsedInfo
|
|
5146
|
+
parsedInfo,
|
|
5147
|
+
limits
|
|
5064
5148
|
});
|
|
5065
5149
|
const entry = nested?.enabled(tableName) ? nested.split(tableName, set) : void 0;
|
|
5066
5150
|
const nestedOps = entry && nested.hasOps(entry.ops) ? entry.ops : void 0;
|
|
@@ -5107,7 +5191,7 @@ var generateUpdate2 = (db, tableName, table, tables, relationMap, setArgs, filte
|
|
|
5107
5191
|
args: queryArgs
|
|
5108
5192
|
};
|
|
5109
5193
|
};
|
|
5110
|
-
var generateUpdateMany2 = (db, tableName, table, tables, relationMap, updateManyInput, fieldName, typeName, typeNameMapper, filterCtx, txCtx, nested) => {
|
|
5194
|
+
var generateUpdateMany2 = (db, tableName, table, tables, relationMap, updateManyInput, fieldName, typeName, typeNameMapper, filterCtx, txCtx, nested, limits) => {
|
|
5111
5195
|
const queryArgs = {
|
|
5112
5196
|
updates: {
|
|
5113
5197
|
type: new GraphQLNonNull7(new GraphQLList7(new GraphQLNonNull7(updateManyInput)))
|
|
@@ -5134,7 +5218,8 @@ var generateUpdateMany2 = (db, tableName, table, tables, relationMap, updateMany
|
|
|
5134
5218
|
typeNameMapper,
|
|
5135
5219
|
table,
|
|
5136
5220
|
pkNames,
|
|
5137
|
-
parsedInfo
|
|
5221
|
+
parsedInfo,
|
|
5222
|
+
limits
|
|
5138
5223
|
});
|
|
5139
5224
|
const entries = updates.map(({ where, set }) => {
|
|
5140
5225
|
const split = nested?.enabled(tableName) ? nested.split(tableName, set) : void 0;
|
|
@@ -5252,7 +5337,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5252
5337
|
typeNameMapper,
|
|
5253
5338
|
shouldEagerLoad,
|
|
5254
5339
|
features,
|
|
5255
|
-
complexity
|
|
5340
|
+
complexity,
|
|
5341
|
+
limits
|
|
5256
5342
|
} = options;
|
|
5257
5343
|
const schemaEntries = Object.entries(schema);
|
|
5258
5344
|
const tableEntries = schemaEntries.filter(([_key, value]) => is6(value, PgTable));
|
|
@@ -5272,7 +5358,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5272
5358
|
db,
|
|
5273
5359
|
tables,
|
|
5274
5360
|
"nulls-largest",
|
|
5275
|
-
filterCtx
|
|
5361
|
+
filterCtx,
|
|
5362
|
+
limits
|
|
5276
5363
|
);
|
|
5277
5364
|
const cacheCtx = {
|
|
5278
5365
|
genericFilterCache: /* @__PURE__ */ new Map(),
|
|
@@ -5287,6 +5374,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5287
5374
|
listRelationFilterCache: /* @__PURE__ */ new Map(),
|
|
5288
5375
|
aggregateTypeCache: /* @__PURE__ */ new Map(),
|
|
5289
5376
|
complexity,
|
|
5377
|
+
limits,
|
|
5290
5378
|
docs: options.docs ?? {},
|
|
5291
5379
|
features
|
|
5292
5380
|
};
|
|
@@ -5356,7 +5444,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5356
5444
|
typeName,
|
|
5357
5445
|
typeNameMapper,
|
|
5358
5446
|
filterCtx,
|
|
5359
|
-
features.distinct
|
|
5447
|
+
features.distinct,
|
|
5448
|
+
limits
|
|
5360
5449
|
);
|
|
5361
5450
|
const selectSingleGenerated = generateSelectSingle2(
|
|
5362
5451
|
db,
|
|
@@ -5368,7 +5457,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5368
5457
|
singleFieldName,
|
|
5369
5458
|
typeName,
|
|
5370
5459
|
typeNameMapper,
|
|
5371
|
-
filterCtx
|
|
5460
|
+
filterCtx,
|
|
5461
|
+
limits
|
|
5372
5462
|
);
|
|
5373
5463
|
const insertArrGenerated = features.insert ? generateInsertArray2(
|
|
5374
5464
|
db,
|
|
@@ -5382,7 +5472,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5382
5472
|
typeNameMapper,
|
|
5383
5473
|
conflictDoNothing,
|
|
5384
5474
|
mutationTxCtx,
|
|
5385
|
-
nestedRuntime
|
|
5475
|
+
nestedRuntime,
|
|
5476
|
+
limits
|
|
5386
5477
|
) : void 0;
|
|
5387
5478
|
const insertSingleGenerated = features.insert ? generateInsertSingle2(
|
|
5388
5479
|
db,
|
|
@@ -5396,7 +5487,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5396
5487
|
typeNameMapper,
|
|
5397
5488
|
conflictDoNothing,
|
|
5398
5489
|
mutationTxCtx,
|
|
5399
|
-
nestedRuntime
|
|
5490
|
+
nestedRuntime,
|
|
5491
|
+
limits
|
|
5400
5492
|
) : void 0;
|
|
5401
5493
|
const uniqueSets = features.upsert ? getUniqueColumnSets(schema[tableName], getTableConfig2) : [];
|
|
5402
5494
|
const onConflictInput = features.upsert ? generateOnConflictInput({
|
|
@@ -5421,7 +5513,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5421
5513
|
typeNameMapper,
|
|
5422
5514
|
filterCtx,
|
|
5423
5515
|
mutationTxCtx,
|
|
5424
|
-
nestedRuntime
|
|
5516
|
+
nestedRuntime,
|
|
5517
|
+
limits
|
|
5425
5518
|
) : void 0;
|
|
5426
5519
|
const upsertSingleGenerated = onConflictInput ? generateUpsert2(
|
|
5427
5520
|
db,
|
|
@@ -5438,7 +5531,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5438
5531
|
typeNameMapper,
|
|
5439
5532
|
filterCtx,
|
|
5440
5533
|
mutationTxCtx,
|
|
5441
|
-
nestedRuntime
|
|
5534
|
+
nestedRuntime,
|
|
5535
|
+
limits
|
|
5442
5536
|
) : void 0;
|
|
5443
5537
|
const updateGenerated = features.update ? generateUpdate2(
|
|
5444
5538
|
db,
|
|
@@ -5455,7 +5549,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5455
5549
|
typeNameMapper,
|
|
5456
5550
|
filterCtx,
|
|
5457
5551
|
mutationTxCtx,
|
|
5458
|
-
nestedRuntime
|
|
5552
|
+
nestedRuntime,
|
|
5553
|
+
limits
|
|
5459
5554
|
) : void 0;
|
|
5460
5555
|
const updateSingleGenerated = features.update ? generateUpdate2(
|
|
5461
5556
|
db,
|
|
@@ -5472,7 +5567,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5472
5567
|
typeNameMapper,
|
|
5473
5568
|
filterCtx,
|
|
5474
5569
|
mutationTxCtx,
|
|
5475
|
-
nestedRuntime
|
|
5570
|
+
nestedRuntime,
|
|
5571
|
+
limits
|
|
5476
5572
|
) : void 0;
|
|
5477
5573
|
const updateManyInput = features.update && features.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
5478
5574
|
const updateManyGenerated = updateManyInput ? generateUpdateMany2(
|
|
@@ -5487,7 +5583,8 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5487
5583
|
typeNameMapper,
|
|
5488
5584
|
filterCtx,
|
|
5489
5585
|
mutationTxCtx,
|
|
5490
|
-
nestedRuntime
|
|
5586
|
+
nestedRuntime,
|
|
5587
|
+
limits
|
|
5491
5588
|
) : void 0;
|
|
5492
5589
|
const deleteGenerated = features.delete ? generateDelete2(
|
|
5493
5590
|
db,
|
|
@@ -5567,7 +5664,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
5567
5664
|
type: selectArrOutput,
|
|
5568
5665
|
args: selectArrGenerated.args,
|
|
5569
5666
|
resolve: selectArrGenerated.resolver,
|
|
5570
|
-
...complexity ? { extensions: { complexity: listFieldComplexity(complexity) } } : {}
|
|
5667
|
+
...complexity ? { extensions: { complexity: listFieldComplexity(complexity, limits?.(tableName)) } } : {}
|
|
5571
5668
|
};
|
|
5572
5669
|
queries[selectSingleGenerated.name] = {
|
|
5573
5670
|
type: selectSingleOutput,
|
|
@@ -5729,7 +5826,7 @@ import {
|
|
|
5729
5826
|
GraphQLNonNull as GraphQLNonNull8
|
|
5730
5827
|
} from "graphql";
|
|
5731
5828
|
import { parseResolveInfo as parseResolveInfo4 } from "graphql-parse-resolve-info";
|
|
5732
|
-
var generateSelectArray3 = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx, distinctEnabled = true) => {
|
|
5829
|
+
var generateSelectArray3 = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx, distinctEnabled = true, limits) => {
|
|
5733
5830
|
const queryBase = db.query[tableName];
|
|
5734
5831
|
if (!queryBase) {
|
|
5735
5832
|
throw new Error(
|
|
@@ -5737,6 +5834,7 @@ var generateSelectArray3 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
5737
5834
|
);
|
|
5738
5835
|
}
|
|
5739
5836
|
const table = tables[tableName];
|
|
5837
|
+
const limitPolicy = limits?.(tableName);
|
|
5740
5838
|
const pkNames = sqlitePrimaryKeyPropNames(table);
|
|
5741
5839
|
const queryArgs = selectArrayArgs(
|
|
5742
5840
|
orderArgs,
|
|
@@ -5759,8 +5857,10 @@ var generateSelectArray3 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
5759
5857
|
typeNameMapper,
|
|
5760
5858
|
parsedInfo,
|
|
5761
5859
|
...args,
|
|
5860
|
+
limit: applyLimitPolicy(args.limit, limitPolicy, fieldName),
|
|
5762
5861
|
single: false,
|
|
5763
5862
|
filterCtx,
|
|
5863
|
+
limits,
|
|
5764
5864
|
pkNames,
|
|
5765
5865
|
db: executor,
|
|
5766
5866
|
// SQLite sorts NULLs as the smallest values (first in ASC).
|
|
@@ -5773,7 +5873,7 @@ var generateSelectArray3 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
5773
5873
|
args: queryArgs
|
|
5774
5874
|
};
|
|
5775
5875
|
};
|
|
5776
|
-
var generateSelectSingle3 = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx) => {
|
|
5876
|
+
var generateSelectSingle3 = (db, tableName, tables, relationMap, orderArgs, filterArgs, fieldName, typeName, typeNameMapper, filterCtx, limits) => {
|
|
5777
5877
|
const queryBase = db.query[tableName];
|
|
5778
5878
|
if (!queryBase) {
|
|
5779
5879
|
throw new Error(
|
|
@@ -5801,6 +5901,7 @@ var generateSelectSingle3 = (db, tableName, tables, relationMap, orderArgs, filt
|
|
|
5801
5901
|
...args,
|
|
5802
5902
|
single: true,
|
|
5803
5903
|
filterCtx,
|
|
5904
|
+
limits,
|
|
5804
5905
|
pkNames,
|
|
5805
5906
|
db: executor
|
|
5806
5907
|
});
|
|
@@ -5812,7 +5913,7 @@ var generateSelectSingle3 = (db, tableName, tables, relationMap, orderArgs, filt
|
|
|
5812
5913
|
};
|
|
5813
5914
|
};
|
|
5814
5915
|
var sqlitePrimaryKeyPropNames = (table) => getPrimaryKeyPropNamesFromConfig(table, getTableConfig3);
|
|
5815
|
-
var generateInsertArray3 = (db, tableName, table, tables, relationMap, baseType, fieldName, typeName, typeNameMapper, conflictDoNothing = false, txCtx, nested) => {
|
|
5916
|
+
var generateInsertArray3 = (db, tableName, table, tables, relationMap, baseType, fieldName, typeName, typeNameMapper, conflictDoNothing = false, txCtx, nested, limits) => {
|
|
5816
5917
|
const queryArgs = {
|
|
5817
5918
|
values: {
|
|
5818
5919
|
type: new GraphQLNonNull8(new GraphQLList8(new GraphQLNonNull8(baseType)))
|
|
@@ -5841,7 +5942,8 @@ var generateInsertArray3 = (db, tableName, table, tables, relationMap, baseType,
|
|
|
5841
5942
|
typeNameMapper,
|
|
5842
5943
|
table,
|
|
5843
5944
|
pkNames,
|
|
5844
|
-
parsedInfo
|
|
5945
|
+
parsedInfo,
|
|
5946
|
+
limits
|
|
5845
5947
|
});
|
|
5846
5948
|
const returning = nestedEntries ? nested.withJoinColumns(tableName, mergedOps(nestedEntries), { ...columns }, table) : columns;
|
|
5847
5949
|
const runInsert = async (target, values) => {
|
|
@@ -5869,7 +5971,7 @@ var generateInsertArray3 = (db, tableName, table, tables, relationMap, baseType,
|
|
|
5869
5971
|
args: queryArgs
|
|
5870
5972
|
};
|
|
5871
5973
|
};
|
|
5872
|
-
var generateInsertSingle3 = (db, tableName, table, tables, relationMap, baseType, fieldName, typeName, typeNameMapper, conflictDoNothing = false, txCtx, nested) => {
|
|
5974
|
+
var generateInsertSingle3 = (db, tableName, table, tables, relationMap, baseType, fieldName, typeName, typeNameMapper, conflictDoNothing = false, txCtx, nested, limits) => {
|
|
5873
5975
|
const queryArgs = {
|
|
5874
5976
|
values: {
|
|
5875
5977
|
type: new GraphQLNonNull8(baseType)
|
|
@@ -5895,7 +5997,8 @@ var generateInsertSingle3 = (db, tableName, table, tables, relationMap, baseType
|
|
|
5895
5997
|
typeNameMapper,
|
|
5896
5998
|
table,
|
|
5897
5999
|
pkNames,
|
|
5898
|
-
parsedInfo
|
|
6000
|
+
parsedInfo,
|
|
6001
|
+
limits
|
|
5899
6002
|
});
|
|
5900
6003
|
const returning = nestedEntry ? nested.withJoinColumns(tableName, nestedEntry.ops, { ...columns }, table) : columns;
|
|
5901
6004
|
const runInsert = async (target, values) => {
|
|
@@ -5929,7 +6032,7 @@ var generateInsertSingle3 = (db, tableName, table, tables, relationMap, baseType
|
|
|
5929
6032
|
args: queryArgs
|
|
5930
6033
|
};
|
|
5931
6034
|
};
|
|
5932
|
-
var generateUpsert3 = (db, tableName, table, tables, relationMap, baseType, onConflictType, uniqueSets, fieldName, typeName, single, typeNameMapper, filterCtx, txCtx, nested) => {
|
|
6035
|
+
var generateUpsert3 = (db, tableName, table, tables, relationMap, baseType, onConflictType, uniqueSets, fieldName, typeName, single, typeNameMapper, filterCtx, txCtx, nested, limits) => {
|
|
5933
6036
|
const queryArgs = {
|
|
5934
6037
|
values: {
|
|
5935
6038
|
type: single ? new GraphQLNonNull8(baseType) : new GraphQLNonNull8(new GraphQLList8(new GraphQLNonNull8(baseType)))
|
|
@@ -5961,7 +6064,8 @@ var generateUpsert3 = (db, tableName, table, tables, relationMap, baseType, onCo
|
|
|
5961
6064
|
typeNameMapper,
|
|
5962
6065
|
table,
|
|
5963
6066
|
pkNames,
|
|
5964
|
-
parsedInfo
|
|
6067
|
+
parsedInfo,
|
|
6068
|
+
limits
|
|
5965
6069
|
});
|
|
5966
6070
|
const returning = nestedEntries ? nested.withJoinColumns(tableName, mergedOps(nestedEntries), { ...columns }, table) : columns;
|
|
5967
6071
|
const runUpsert = async (target, values) => {
|
|
@@ -6000,7 +6104,7 @@ var generateUpsert3 = (db, tableName, table, tables, relationMap, baseType, onCo
|
|
|
6000
6104
|
args: queryArgs
|
|
6001
6105
|
};
|
|
6002
6106
|
};
|
|
6003
|
-
var generateUpdate3 = (db, tableName, table, tables, relationMap, setArgs, filterArgs, fieldName, typeName, single, requireWhere, typeNameMapper, filterCtx, txCtx, nested) => {
|
|
6107
|
+
var generateUpdate3 = (db, tableName, table, tables, relationMap, setArgs, filterArgs, fieldName, typeName, single, requireWhere, typeNameMapper, filterCtx, txCtx, nested, limits) => {
|
|
6004
6108
|
const queryArgs = {
|
|
6005
6109
|
set: {
|
|
6006
6110
|
type: new GraphQLNonNull8(setArgs)
|
|
@@ -6027,7 +6131,8 @@ var generateUpdate3 = (db, tableName, table, tables, relationMap, setArgs, filte
|
|
|
6027
6131
|
typeNameMapper,
|
|
6028
6132
|
table,
|
|
6029
6133
|
pkNames,
|
|
6030
|
-
parsedInfo
|
|
6134
|
+
parsedInfo,
|
|
6135
|
+
limits
|
|
6031
6136
|
});
|
|
6032
6137
|
const entry = nested?.enabled(tableName) ? nested.split(tableName, set) : void 0;
|
|
6033
6138
|
const nestedOps = entry && nested.hasOps(entry.ops) ? entry.ops : void 0;
|
|
@@ -6074,7 +6179,7 @@ var generateUpdate3 = (db, tableName, table, tables, relationMap, setArgs, filte
|
|
|
6074
6179
|
args: queryArgs
|
|
6075
6180
|
};
|
|
6076
6181
|
};
|
|
6077
|
-
var generateUpdateMany3 = (db, tableName, table, tables, relationMap, updateManyInput, fieldName, typeName, typeNameMapper, filterCtx, txCtx, nested) => {
|
|
6182
|
+
var generateUpdateMany3 = (db, tableName, table, tables, relationMap, updateManyInput, fieldName, typeName, typeNameMapper, filterCtx, txCtx, nested, limits) => {
|
|
6078
6183
|
const queryArgs = {
|
|
6079
6184
|
updates: {
|
|
6080
6185
|
type: new GraphQLNonNull8(new GraphQLList8(new GraphQLNonNull8(updateManyInput)))
|
|
@@ -6101,7 +6206,8 @@ var generateUpdateMany3 = (db, tableName, table, tables, relationMap, updateMany
|
|
|
6101
6206
|
typeNameMapper,
|
|
6102
6207
|
table,
|
|
6103
6208
|
pkNames,
|
|
6104
|
-
parsedInfo
|
|
6209
|
+
parsedInfo,
|
|
6210
|
+
limits
|
|
6105
6211
|
});
|
|
6106
6212
|
const entries = updates.map(({ where, set }) => {
|
|
6107
6213
|
const split = nested?.enabled(tableName) ? nested.split(tableName, set) : void 0;
|
|
@@ -6247,7 +6353,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6247
6353
|
typeNameMapper,
|
|
6248
6354
|
shouldEagerLoad,
|
|
6249
6355
|
features,
|
|
6250
|
-
complexity
|
|
6356
|
+
complexity,
|
|
6357
|
+
limits
|
|
6251
6358
|
} = options;
|
|
6252
6359
|
const rawSchema = schema;
|
|
6253
6360
|
const schemaEntries = Object.entries(rawSchema);
|
|
@@ -6268,7 +6375,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6268
6375
|
db,
|
|
6269
6376
|
tables,
|
|
6270
6377
|
"nulls-smallest",
|
|
6271
|
-
filterCtx
|
|
6378
|
+
filterCtx,
|
|
6379
|
+
limits
|
|
6272
6380
|
);
|
|
6273
6381
|
const cacheCtx = {
|
|
6274
6382
|
genericFilterCache: /* @__PURE__ */ new Map(),
|
|
@@ -6283,6 +6391,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6283
6391
|
listRelationFilterCache: /* @__PURE__ */ new Map(),
|
|
6284
6392
|
aggregateTypeCache: /* @__PURE__ */ new Map(),
|
|
6285
6393
|
complexity,
|
|
6394
|
+
limits,
|
|
6286
6395
|
docs: options.docs ?? {},
|
|
6287
6396
|
features
|
|
6288
6397
|
};
|
|
@@ -6362,7 +6471,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6362
6471
|
typeName,
|
|
6363
6472
|
typeNameMapper,
|
|
6364
6473
|
filterCtx,
|
|
6365
|
-
features.distinct
|
|
6474
|
+
features.distinct,
|
|
6475
|
+
limits
|
|
6366
6476
|
);
|
|
6367
6477
|
const selectSingleGenerated = generateSelectSingle3(
|
|
6368
6478
|
db,
|
|
@@ -6374,7 +6484,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6374
6484
|
singleFieldName,
|
|
6375
6485
|
typeName,
|
|
6376
6486
|
typeNameMapper,
|
|
6377
|
-
filterCtx
|
|
6487
|
+
filterCtx,
|
|
6488
|
+
limits
|
|
6378
6489
|
);
|
|
6379
6490
|
const insertArrGenerated = features.insert ? generateInsertArray3(
|
|
6380
6491
|
db,
|
|
@@ -6388,7 +6499,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6388
6499
|
typeNameMapper,
|
|
6389
6500
|
conflictDoNothing,
|
|
6390
6501
|
mutationTxCtx,
|
|
6391
|
-
nestedRuntime
|
|
6502
|
+
nestedRuntime,
|
|
6503
|
+
limits
|
|
6392
6504
|
) : void 0;
|
|
6393
6505
|
const insertSingleGenerated = features.insert ? generateInsertSingle3(
|
|
6394
6506
|
db,
|
|
@@ -6402,7 +6514,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6402
6514
|
typeNameMapper,
|
|
6403
6515
|
conflictDoNothing,
|
|
6404
6516
|
mutationTxCtx,
|
|
6405
|
-
nestedRuntime
|
|
6517
|
+
nestedRuntime,
|
|
6518
|
+
limits
|
|
6406
6519
|
) : void 0;
|
|
6407
6520
|
const uniqueSets = features.upsert ? getUniqueColumnSets(schema[tableName], getTableConfig3) : [];
|
|
6408
6521
|
const onConflictInput = features.upsert ? generateOnConflictInput({
|
|
@@ -6427,7 +6540,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6427
6540
|
typeNameMapper,
|
|
6428
6541
|
filterCtx,
|
|
6429
6542
|
mutationTxCtx,
|
|
6430
|
-
nestedRuntime
|
|
6543
|
+
nestedRuntime,
|
|
6544
|
+
limits
|
|
6431
6545
|
) : void 0;
|
|
6432
6546
|
const upsertSingleGenerated = onConflictInput ? generateUpsert3(
|
|
6433
6547
|
db,
|
|
@@ -6444,7 +6558,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6444
6558
|
typeNameMapper,
|
|
6445
6559
|
filterCtx,
|
|
6446
6560
|
mutationTxCtx,
|
|
6447
|
-
nestedRuntime
|
|
6561
|
+
nestedRuntime,
|
|
6562
|
+
limits
|
|
6448
6563
|
) : void 0;
|
|
6449
6564
|
const updateGenerated = features.update ? generateUpdate3(
|
|
6450
6565
|
db,
|
|
@@ -6461,7 +6576,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6461
6576
|
typeNameMapper,
|
|
6462
6577
|
filterCtx,
|
|
6463
6578
|
mutationTxCtx,
|
|
6464
|
-
nestedRuntime
|
|
6579
|
+
nestedRuntime,
|
|
6580
|
+
limits
|
|
6465
6581
|
) : void 0;
|
|
6466
6582
|
const updateSingleGenerated = features.update ? generateUpdate3(
|
|
6467
6583
|
db,
|
|
@@ -6478,7 +6594,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6478
6594
|
typeNameMapper,
|
|
6479
6595
|
filterCtx,
|
|
6480
6596
|
mutationTxCtx,
|
|
6481
|
-
nestedRuntime
|
|
6597
|
+
nestedRuntime,
|
|
6598
|
+
limits
|
|
6482
6599
|
) : void 0;
|
|
6483
6600
|
const updateManyInput = features.update && features.updateMany ? generateUpdateManyInput({ typeName, updatePrefix: prefixes.update, updateInput, tableFilters }) : void 0;
|
|
6484
6601
|
const updateManyGenerated = updateManyInput ? generateUpdateMany3(
|
|
@@ -6493,7 +6610,8 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6493
6610
|
typeNameMapper,
|
|
6494
6611
|
filterCtx,
|
|
6495
6612
|
mutationTxCtx,
|
|
6496
|
-
nestedRuntime
|
|
6613
|
+
nestedRuntime,
|
|
6614
|
+
limits
|
|
6497
6615
|
) : void 0;
|
|
6498
6616
|
const deleteGenerated = features.delete ? generateDelete3(
|
|
6499
6617
|
db,
|
|
@@ -6573,7 +6691,7 @@ var generateSchemaData3 = (db, schema, relations, options) => {
|
|
|
6573
6691
|
type: selectArrOutput,
|
|
6574
6692
|
args: selectArrGenerated.args,
|
|
6575
6693
|
resolve: selectArrGenerated.resolver,
|
|
6576
|
-
...complexity ? { extensions: { complexity: listFieldComplexity(complexity) } } : {}
|
|
6694
|
+
...complexity ? { extensions: { complexity: listFieldComplexity(complexity, limits?.(tableName)) } } : {}
|
|
6577
6695
|
};
|
|
6578
6696
|
queries[selectSingleGenerated.name] = {
|
|
6579
6697
|
type: selectSingleOutput,
|
|
@@ -6769,6 +6887,33 @@ var buildSchema = (db, config) => {
|
|
|
6769
6887
|
};
|
|
6770
6888
|
const transactionsOpt = config?.transactions;
|
|
6771
6889
|
const transactions = transactionsOpt === void 0 || transactionsOpt === "none" ? void 0 : { timeoutMs: (transactionsOpt === "auto" ? void 0 : transactionsOpt.timeoutMs) ?? 3e4 };
|
|
6890
|
+
const limitsConfig = config?.limits;
|
|
6891
|
+
if (limitsConfig) {
|
|
6892
|
+
const check = (policy, where) => {
|
|
6893
|
+
for (const key of ["defaultLimit", "maxLimit"]) {
|
|
6894
|
+
const value = policy[key];
|
|
6895
|
+
if (value === void 0) {
|
|
6896
|
+
continue;
|
|
6897
|
+
}
|
|
6898
|
+
if (!Number.isInteger(value) || value < 1) {
|
|
6899
|
+
throw new Error(`Drizzle-GraphQL Error: config.limits${where}.${key} must be a positive integer.`);
|
|
6900
|
+
}
|
|
6901
|
+
}
|
|
6902
|
+
};
|
|
6903
|
+
check(limitsConfig, "");
|
|
6904
|
+
for (const [tableName, policy] of Object.entries(limitsConfig.tables ?? {})) {
|
|
6905
|
+
check(policy, `.tables.${tableName}`);
|
|
6906
|
+
}
|
|
6907
|
+
}
|
|
6908
|
+
const limitPolicyCache = /* @__PURE__ */ new Map();
|
|
6909
|
+
const limits = limitsConfig ? (tableName) => {
|
|
6910
|
+
if (limitPolicyCache.has(tableName)) {
|
|
6911
|
+
return limitPolicyCache.get(tableName);
|
|
6912
|
+
}
|
|
6913
|
+
const resolved = resolveLimitPolicy(limitsConfig, limitsConfig.tables?.[tableName]);
|
|
6914
|
+
limitPolicyCache.set(tableName, resolved);
|
|
6915
|
+
return resolved;
|
|
6916
|
+
} : void 0;
|
|
6772
6917
|
const eagerOpt = config?.eagerLoadRelations;
|
|
6773
6918
|
const shouldEagerLoad = eagerOpt === void 0 || eagerOpt === true ? () => true : eagerOpt === false ? () => false : eagerOpt;
|
|
6774
6919
|
if (!typeNameMapper && suffixes.list === suffixes.single) {
|
|
@@ -6801,6 +6946,7 @@ var buildSchema = (db, config) => {
|
|
|
6801
6946
|
mapColumnType: config?.mapColumnType,
|
|
6802
6947
|
enumNameMapper: config?.enumNameMapper,
|
|
6803
6948
|
transactions,
|
|
6949
|
+
limits,
|
|
6804
6950
|
docs: {
|
|
6805
6951
|
describeColumn: config?.describeColumn,
|
|
6806
6952
|
describeTable: config?.describeTable,
|