@vantreeseba/drizzle-graphql 7.8.0 → 7.9.1
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 +57 -0
- package/dist/README.md +57 -0
- package/dist/index.cjs +114 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +66 -6
- package/dist/index.d.ts +66 -6
- package/dist/index.js +114 -41
- package/dist/index.js.map +1 -1
- package/dist/package.json +3 -10
- package/package.json +3 -10
package/dist/index.js
CHANGED
|
@@ -468,6 +468,7 @@ var remapToGraphQLCore = (key, value, tableName, column, relationMap) => {
|
|
|
468
468
|
return value;
|
|
469
469
|
};
|
|
470
470
|
var remapToGraphQLSingleOutput = (queryOutput, tableName, table, relationMap) => {
|
|
471
|
+
const columns = getTableColumns2(table);
|
|
471
472
|
for (const [key, value] of Object.entries(queryOutput)) {
|
|
472
473
|
if (value === void 0 || value === null) {
|
|
473
474
|
const relEntry = value === null ? relationMap?.[tableName]?.[key] : void 0;
|
|
@@ -478,7 +479,7 @@ var remapToGraphQLSingleOutput = (queryOutput, tableName, table, relationMap) =>
|
|
|
478
479
|
delete queryOutput[key];
|
|
479
480
|
continue;
|
|
480
481
|
}
|
|
481
|
-
const column =
|
|
482
|
+
const column = columns[key];
|
|
482
483
|
if (value === 0n && column && column.columnType === "SQLiteBigInt" && !column.notNull) {
|
|
483
484
|
delete queryOutput[key];
|
|
484
485
|
continue;
|
|
@@ -937,6 +938,7 @@ var resolveQueryExecutor = (db, context, tableName, buildTimeQueryBase) => {
|
|
|
937
938
|
queryBase: buildTimeQueryBase ? executor?.query?.[tableName] ?? buildTimeQueryBase : buildTimeQueryBase
|
|
938
939
|
};
|
|
939
940
|
};
|
|
941
|
+
var DEFAULT_TRANSACTION_TIMEOUT_MS = 3e4;
|
|
940
942
|
var createMutationTxCtx = (options) => options ? { timeoutMs: options.timeoutMs, fieldNames: /* @__PURE__ */ new Set(), states: /* @__PURE__ */ new WeakMap() } : void 0;
|
|
941
943
|
var includedByDirectives = (node, variables) => {
|
|
942
944
|
for (const directive of node.directives ?? []) {
|
|
@@ -1195,14 +1197,8 @@ var createRelationResolverFactory = (db, tables, nullOrdering, filterCtx, limits
|
|
|
1195
1197
|
if (localValue == null) {
|
|
1196
1198
|
return isOne ? null : [];
|
|
1197
1199
|
}
|
|
1198
|
-
const {
|
|
1199
|
-
|
|
1200
|
-
orderBy: orderByArg,
|
|
1201
|
-
limit: requestedLimit,
|
|
1202
|
-
offset,
|
|
1203
|
-
after,
|
|
1204
|
-
deleted
|
|
1205
|
-
} = args ?? {};
|
|
1200
|
+
const { where: whereArg, limit: requestedLimit, offset, after, deleted } = args ?? {};
|
|
1201
|
+
const orderByArg = isOne ? args?.orderBy : withDefaultOrderBy(args ?? {}, targetTableName, policies?.defaultOrderBy).orderBy;
|
|
1206
1202
|
const limit = applyLimitPolicy(requestedLimit, limitPolicy, `${tableName}.${relationName}`);
|
|
1207
1203
|
const distinct = (args ?? {}).distinct?.length ? (args ?? {}).distinct : void 0;
|
|
1208
1204
|
const cursorSelected = !isOne && !!info && selectsCursorField(info, targetTable);
|
|
@@ -1334,6 +1330,13 @@ var inputFieldDocs = (docs, column, tableName, columnName, fieldType) => {
|
|
|
1334
1330
|
}
|
|
1335
1331
|
return resolved;
|
|
1336
1332
|
};
|
|
1333
|
+
var withDefaultOrderBy = (args, tableName, defaults) => {
|
|
1334
|
+
if (!defaults || args?.orderBy != null) {
|
|
1335
|
+
return args;
|
|
1336
|
+
}
|
|
1337
|
+
const fallback = defaults(tableName);
|
|
1338
|
+
return fallback ? { ...args, orderBy: fallback } : args;
|
|
1339
|
+
};
|
|
1337
1340
|
var applyLimitPolicy = (limit, policy, fieldName) => {
|
|
1338
1341
|
if (!policy) {
|
|
1339
1342
|
return limit ?? void 0;
|
|
@@ -2800,11 +2803,12 @@ var withScope = (scope, tableName, table, condition, mode) => {
|
|
|
2800
2803
|
const predicate = scope?.on(tableName, table, mode);
|
|
2801
2804
|
return predicate ? and(condition, predicate) : condition;
|
|
2802
2805
|
};
|
|
2803
|
-
var bindPolicies = (policies, filterCtx) => policies?.scope || policies?.contextValues || policies?.softDelete || policies?.onWrite ? {
|
|
2806
|
+
var bindPolicies = (policies, filterCtx) => policies?.scope || policies?.contextValues || policies?.softDelete || policies?.onWrite || policies?.defaultOrderBy ? {
|
|
2804
2807
|
scope: policies.scope || policies.softDelete ? (context) => resolveScope(policies, context, filterCtx) : void 0,
|
|
2805
2808
|
contextValues: policies.contextValues,
|
|
2806
2809
|
softDelete: policies.softDelete,
|
|
2807
|
-
onWrite: policies.onWrite
|
|
2810
|
+
onWrite: policies.onWrite,
|
|
2811
|
+
defaultOrderBy: policies.defaultOrderBy
|
|
2808
2812
|
} : void 0;
|
|
2809
2813
|
var applyContextValues = (values, hooks, context) => {
|
|
2810
2814
|
if (!hooks) {
|
|
@@ -2833,7 +2837,7 @@ var stripContextValues = (values, hooks) => {
|
|
|
2833
2837
|
}
|
|
2834
2838
|
return values;
|
|
2835
2839
|
};
|
|
2836
|
-
var extractRelationsParamsInner = (relationMap, tables, tableName, typeName, originField, typeNameMapper, _isInitial = false, filterCtx, limits, scope) => {
|
|
2840
|
+
var extractRelationsParamsInner = (relationMap, tables, tableName, typeName, originField, typeNameMapper, _isInitial = false, filterCtx, limits, scope, defaultOrderBy) => {
|
|
2837
2841
|
const relationsForTable = relationMap[tableName];
|
|
2838
2842
|
if (!relationsForTable) {
|
|
2839
2843
|
return void 0;
|
|
@@ -2875,7 +2879,7 @@ var extractRelationsParamsInner = (relationMap, tables, tableName, typeName, ori
|
|
|
2875
2879
|
const thisRecord = {};
|
|
2876
2880
|
thisRecord.columns = columns;
|
|
2877
2881
|
const relationField = Object.values(baseField).find((e) => e.name === relName);
|
|
2878
|
-
const relationArgs = relationField?.args;
|
|
2882
|
+
const relationArgs = is3(relEntry.relation, One2) ? relationField?.args : relationField && withDefaultOrderBy(relationField.args ?? {}, targetTableName, defaultOrderBy);
|
|
2879
2883
|
const offset = relationArgs?.offset ?? void 0;
|
|
2880
2884
|
const limit = is3(relEntry.relation, One2) ? relationArgs?.limit ?? void 0 : applyLimitPolicy(relationArgs?.limit, limits?.(targetTableName), `${tableName}.${relName}`);
|
|
2881
2885
|
const relWhere = relationArgs?.where;
|
|
@@ -2904,14 +2908,15 @@ var extractRelationsParamsInner = (relationMap, tables, tableName, typeName, ori
|
|
|
2904
2908
|
false,
|
|
2905
2909
|
filterCtx,
|
|
2906
2910
|
limits,
|
|
2907
|
-
scope
|
|
2911
|
+
scope,
|
|
2912
|
+
defaultOrderBy
|
|
2908
2913
|
) : void 0;
|
|
2909
2914
|
thisRecord.with = relWith;
|
|
2910
2915
|
args[relName] = thisRecord;
|
|
2911
2916
|
}
|
|
2912
2917
|
return args;
|
|
2913
2918
|
};
|
|
2914
|
-
var extractRelationsParams = (relationMap, tables, tableName, info, typeName, typeNameMapper, filterCtx, limits, scope) => {
|
|
2919
|
+
var extractRelationsParams = (relationMap, tables, tableName, info, typeName, typeNameMapper, filterCtx, limits, scope, defaultOrderBy) => {
|
|
2915
2920
|
if (!info) {
|
|
2916
2921
|
return void 0;
|
|
2917
2922
|
}
|
|
@@ -2925,7 +2930,8 @@ var extractRelationsParams = (relationMap, tables, tableName, info, typeName, ty
|
|
|
2925
2930
|
true,
|
|
2926
2931
|
filterCtx,
|
|
2927
2932
|
limits,
|
|
2928
|
-
scope
|
|
2933
|
+
scope,
|
|
2934
|
+
defaultOrderBy
|
|
2929
2935
|
);
|
|
2930
2936
|
};
|
|
2931
2937
|
var pruneNonEagerRelations = (relationMap, shouldEagerLoad) => {
|
|
@@ -3336,7 +3342,8 @@ var prepareMutationRelationColumns = (params) => {
|
|
|
3336
3342
|
typeNameMapper,
|
|
3337
3343
|
void 0,
|
|
3338
3344
|
params.limits,
|
|
3339
|
-
params.scope
|
|
3345
|
+
params.scope,
|
|
3346
|
+
params.defaultOrderBy
|
|
3340
3347
|
) : void 0;
|
|
3341
3348
|
const hasRelations = !!(withParams && Object.keys(withParams).length);
|
|
3342
3349
|
const baseColumns = extractSelectedColumnsFromTreeSQLFormat(parsedInfo.fieldsByTypeName[typeName], table, {
|
|
@@ -3678,7 +3685,8 @@ var runRelationalSelect = async (opts) => {
|
|
|
3678
3685
|
typeNameMapper,
|
|
3679
3686
|
filterCtx,
|
|
3680
3687
|
opts.limits,
|
|
3681
|
-
scope
|
|
3688
|
+
scope,
|
|
3689
|
+
opts.defaultOrderBy
|
|
3682
3690
|
) : void 0
|
|
3683
3691
|
};
|
|
3684
3692
|
if (single) {
|
|
@@ -3964,7 +3972,7 @@ var parseAggregateRequest = (info, target, rootTypeName = `${target.typeName}Agg
|
|
|
3964
3972
|
for (const field of Object.values(selectionTree)) {
|
|
3965
3973
|
if (field.name === "count") {
|
|
3966
3974
|
request.count = true;
|
|
3967
|
-
request.selection
|
|
3975
|
+
request.selection["count"] = count();
|
|
3968
3976
|
continue;
|
|
3969
3977
|
}
|
|
3970
3978
|
if (!AGGREGATE_OPS.includes(field.name)) {
|
|
@@ -3990,7 +3998,7 @@ var parseAggregateRequest = (info, target, rootTypeName = `${target.typeName}Agg
|
|
|
3990
3998
|
var assembleAggregateRow = (row, request, target) => {
|
|
3991
3999
|
const result = {};
|
|
3992
4000
|
if (request.count) {
|
|
3993
|
-
result
|
|
4001
|
+
result["count"] = row["count"] == null ? 0 : Number(row["count"]);
|
|
3994
4002
|
}
|
|
3995
4003
|
for (const op of AGGREGATE_OPS) {
|
|
3996
4004
|
if (!request.ops[op].length) {
|
|
@@ -4316,7 +4324,8 @@ var generateSelectArray = (db, tableName, tables, relationMap, orderArgs, filter
|
|
|
4316
4324
|
);
|
|
4317
4325
|
return {
|
|
4318
4326
|
name: fieldName,
|
|
4319
|
-
resolver: async (_source,
|
|
4327
|
+
resolver: async (_source, rawArgs, context, info) => {
|
|
4328
|
+
const args = withDefaultOrderBy(rawArgs, tableName, policies?.defaultOrderBy);
|
|
4320
4329
|
try {
|
|
4321
4330
|
const parsedInfo = parseResolveInfo2(info, { deep: true });
|
|
4322
4331
|
const { executor, queryBase: requestQueryBase } = resolveQueryExecutor(db, context, tableName, queryBase);
|
|
@@ -4334,6 +4343,7 @@ var generateSelectArray = (db, tableName, tables, relationMap, orderArgs, filter
|
|
|
4334
4343
|
single: false,
|
|
4335
4344
|
filterCtx,
|
|
4336
4345
|
limits,
|
|
4346
|
+
defaultOrderBy: policies?.defaultOrderBy,
|
|
4337
4347
|
scope: policies?.scope?.(context),
|
|
4338
4348
|
pkNames,
|
|
4339
4349
|
db: executor,
|
|
@@ -4359,7 +4369,8 @@ var generateSelectSingle = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
4359
4369
|
const pkNames = mysqlPrimaryKeyPropNames(table);
|
|
4360
4370
|
return {
|
|
4361
4371
|
name: fieldName,
|
|
4362
|
-
resolver: async (_source,
|
|
4372
|
+
resolver: async (_source, rawArgs, context, info) => {
|
|
4373
|
+
const args = withDefaultOrderBy(rawArgs, tableName, policies?.defaultOrderBy);
|
|
4363
4374
|
try {
|
|
4364
4375
|
const parsedInfo = parseResolveInfo2(info, { deep: true });
|
|
4365
4376
|
const { executor, queryBase: requestQueryBase } = resolveQueryExecutor(db, context, tableName, queryBase);
|
|
@@ -4376,6 +4387,7 @@ var generateSelectSingle = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
4376
4387
|
single: true,
|
|
4377
4388
|
filterCtx,
|
|
4378
4389
|
limits,
|
|
4390
|
+
defaultOrderBy: policies?.defaultOrderBy,
|
|
4379
4391
|
scope: policies?.scope?.(context),
|
|
4380
4392
|
pkNames,
|
|
4381
4393
|
db: executor
|
|
@@ -4883,7 +4895,7 @@ var generateSchemaData = (db, schema, relations, options) => {
|
|
|
4883
4895
|
const inputs = {};
|
|
4884
4896
|
const outputs = {};
|
|
4885
4897
|
if (["insert", "upsert", "update", "delete"].some((feature) => anyTable(feature))) {
|
|
4886
|
-
outputs
|
|
4898
|
+
outputs["MutationReturn"] = mutationReturnType;
|
|
4887
4899
|
}
|
|
4888
4900
|
for (const [tableName, tableTypes] of Object.entries(gqlSchemaTypes)) {
|
|
4889
4901
|
const tableFeatures = featureOf(tableName);
|
|
@@ -5795,7 +5807,8 @@ var generateSelectArray2 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
5795
5807
|
);
|
|
5796
5808
|
return {
|
|
5797
5809
|
name: fieldName,
|
|
5798
|
-
resolver: async (_source,
|
|
5810
|
+
resolver: async (_source, rawArgs, context, info) => {
|
|
5811
|
+
const args = withDefaultOrderBy(rawArgs, tableName, policies?.defaultOrderBy);
|
|
5799
5812
|
try {
|
|
5800
5813
|
const parsedInfo = parseResolveInfo3(info, { deep: true });
|
|
5801
5814
|
const { executor, queryBase: requestQueryBase } = resolveQueryExecutor(db, context, tableName, queryBase);
|
|
@@ -5816,6 +5829,7 @@ var generateSelectArray2 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
5816
5829
|
single: false,
|
|
5817
5830
|
filterCtx,
|
|
5818
5831
|
limits,
|
|
5832
|
+
defaultOrderBy: policies?.defaultOrderBy,
|
|
5819
5833
|
pkNames,
|
|
5820
5834
|
db: executor,
|
|
5821
5835
|
scope,
|
|
@@ -5925,7 +5939,8 @@ var generateSelectSingle2 = (db, tableName, tables, relationMap, orderArgs, filt
|
|
|
5925
5939
|
const pkNames = pgPrimaryKeyPropNames(table);
|
|
5926
5940
|
return {
|
|
5927
5941
|
name: fieldName,
|
|
5928
|
-
resolver: async (_source,
|
|
5942
|
+
resolver: async (_source, rawArgs, context, info) => {
|
|
5943
|
+
const args = withDefaultOrderBy(rawArgs, tableName, policies?.defaultOrderBy);
|
|
5929
5944
|
try {
|
|
5930
5945
|
const parsedInfo = parseResolveInfo3(info, { deep: true });
|
|
5931
5946
|
const { executor, queryBase: requestQueryBase } = resolveQueryExecutor(db, context, tableName, queryBase);
|
|
@@ -5944,6 +5959,7 @@ var generateSelectSingle2 = (db, tableName, tables, relationMap, orderArgs, filt
|
|
|
5944
5959
|
single: true,
|
|
5945
5960
|
filterCtx,
|
|
5946
5961
|
limits,
|
|
5962
|
+
defaultOrderBy: policies?.defaultOrderBy,
|
|
5947
5963
|
pkNames,
|
|
5948
5964
|
db: executor,
|
|
5949
5965
|
scope
|
|
@@ -6037,7 +6053,8 @@ var generateInsertArray2 = (db, tableName, table, tables, relationMap, baseType,
|
|
|
6037
6053
|
pkNames,
|
|
6038
6054
|
parsedInfo,
|
|
6039
6055
|
limits,
|
|
6040
|
-
scope
|
|
6056
|
+
scope,
|
|
6057
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
6041
6058
|
});
|
|
6042
6059
|
const returning = nestedEntries ? nested.withJoinColumns(tableName, mergedOps(nestedEntries), { ...columns }, table) : columns;
|
|
6043
6060
|
const runInsert = async (target, values) => {
|
|
@@ -6127,7 +6144,8 @@ var generateInsertSingle2 = (db, tableName, table, tables, relationMap, baseType
|
|
|
6127
6144
|
pkNames,
|
|
6128
6145
|
parsedInfo,
|
|
6129
6146
|
limits,
|
|
6130
|
-
scope
|
|
6147
|
+
scope,
|
|
6148
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
6131
6149
|
});
|
|
6132
6150
|
const returning = nestedEntry ? nested.withJoinColumns(tableName, nestedEntry.ops, { ...columns }, table) : columns;
|
|
6133
6151
|
const runInsert = async (target, values) => {
|
|
@@ -6229,7 +6247,8 @@ var generateUpsert2 = (db, tableName, table, tables, relationMap, baseType, onCo
|
|
|
6229
6247
|
pkNames,
|
|
6230
6248
|
parsedInfo,
|
|
6231
6249
|
limits,
|
|
6232
|
-
scope
|
|
6250
|
+
scope,
|
|
6251
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
6233
6252
|
});
|
|
6234
6253
|
const returning = nestedEntries ? nested.withJoinColumns(tableName, mergedOps(nestedEntries), { ...columns }, table) : columns;
|
|
6235
6254
|
const runUpsert = async (target, values) => {
|
|
@@ -6327,7 +6346,8 @@ var generateUpdate2 = (db, tableName, table, tables, relationMap, setArgs, filte
|
|
|
6327
6346
|
pkNames,
|
|
6328
6347
|
parsedInfo,
|
|
6329
6348
|
limits,
|
|
6330
|
-
scope
|
|
6349
|
+
scope,
|
|
6350
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
6331
6351
|
});
|
|
6332
6352
|
const entry = nested?.enabled(tableName) ? nested.split(tableName, set) : void 0;
|
|
6333
6353
|
const nestedOps = entry && nested.hasOps(entry.ops) ? entry.ops : void 0;
|
|
@@ -6441,7 +6461,8 @@ var generateUpdateMany2 = (db, tableName, table, tables, relationMap, updateMany
|
|
|
6441
6461
|
pkNames,
|
|
6442
6462
|
parsedInfo,
|
|
6443
6463
|
limits,
|
|
6444
|
-
scope
|
|
6464
|
+
scope,
|
|
6465
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
6445
6466
|
});
|
|
6446
6467
|
const entries = updates.map(({ where, set }) => {
|
|
6447
6468
|
const split = nested?.enabled(tableName) ? nested.split(tableName, set) : void 0;
|
|
@@ -6636,7 +6657,7 @@ function generateSchemaData2(db, schema, relations, options) {
|
|
|
6636
6657
|
for (const excluded of excludedTables) {
|
|
6637
6658
|
delete namedRelations[excluded];
|
|
6638
6659
|
}
|
|
6639
|
-
attachTargetPrimaryKeys(namedRelations, tables, pgPrimaryKeyPropNames);
|
|
6660
|
+
attachTargetPrimaryKeys(namedRelations, tables, (table) => pgPrimaryKeyPropNames(table));
|
|
6640
6661
|
const eagerRelations = pruneNonEagerRelations(namedRelations, shouldEagerLoad);
|
|
6641
6662
|
const filterCtx = { tables, relationMap: namedRelations };
|
|
6642
6663
|
const tablePolicies = options.policies;
|
|
@@ -7250,7 +7271,8 @@ var generateSelectArray3 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
7250
7271
|
);
|
|
7251
7272
|
return {
|
|
7252
7273
|
name: fieldName,
|
|
7253
|
-
resolver: async (_source,
|
|
7274
|
+
resolver: async (_source, rawArgs, context, info) => {
|
|
7275
|
+
const args = withDefaultOrderBy(rawArgs, tableName, policies?.defaultOrderBy);
|
|
7254
7276
|
try {
|
|
7255
7277
|
const parsedInfo = parseResolveInfo4(info, { deep: true });
|
|
7256
7278
|
const { executor, queryBase: requestQueryBase } = resolveQueryExecutor(db, context, tableName, queryBase);
|
|
@@ -7268,6 +7290,7 @@ var generateSelectArray3 = (db, tableName, tables, relationMap, orderArgs, filte
|
|
|
7268
7290
|
single: false,
|
|
7269
7291
|
filterCtx,
|
|
7270
7292
|
limits,
|
|
7293
|
+
defaultOrderBy: policies?.defaultOrderBy,
|
|
7271
7294
|
pkNames,
|
|
7272
7295
|
db: executor,
|
|
7273
7296
|
scope: policies?.scope?.(context),
|
|
@@ -7293,7 +7316,8 @@ var generateSelectSingle3 = (db, tableName, tables, relationMap, orderArgs, filt
|
|
|
7293
7316
|
const pkNames = sqlitePrimaryKeyPropNames(table);
|
|
7294
7317
|
return {
|
|
7295
7318
|
name: fieldName,
|
|
7296
|
-
resolver: async (_source,
|
|
7319
|
+
resolver: async (_source, rawArgs, context, info) => {
|
|
7320
|
+
const args = withDefaultOrderBy(rawArgs, tableName, policies?.defaultOrderBy);
|
|
7297
7321
|
try {
|
|
7298
7322
|
const parsedInfo = parseResolveInfo4(info, { deep: true });
|
|
7299
7323
|
const { executor, queryBase: requestQueryBase } = resolveQueryExecutor(db, context, tableName, queryBase);
|
|
@@ -7310,6 +7334,7 @@ var generateSelectSingle3 = (db, tableName, tables, relationMap, orderArgs, filt
|
|
|
7310
7334
|
single: true,
|
|
7311
7335
|
filterCtx,
|
|
7312
7336
|
limits,
|
|
7337
|
+
defaultOrderBy: policies?.defaultOrderBy,
|
|
7313
7338
|
pkNames,
|
|
7314
7339
|
db: executor,
|
|
7315
7340
|
scope: policies?.scope?.(context)
|
|
@@ -7374,7 +7399,8 @@ var generateInsertArray3 = (db, tableName, table, tables, relationMap, baseType,
|
|
|
7374
7399
|
pkNames,
|
|
7375
7400
|
parsedInfo,
|
|
7376
7401
|
limits,
|
|
7377
|
-
scope
|
|
7402
|
+
scope,
|
|
7403
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
7378
7404
|
});
|
|
7379
7405
|
const returning = nestedEntries ? nested.withJoinColumns(tableName, mergedOps(nestedEntries), { ...columns }, table) : columns;
|
|
7380
7406
|
const runInsert = async (target, values) => {
|
|
@@ -7464,7 +7490,8 @@ var generateInsertSingle3 = (db, tableName, table, tables, relationMap, baseType
|
|
|
7464
7490
|
pkNames,
|
|
7465
7491
|
parsedInfo,
|
|
7466
7492
|
limits,
|
|
7467
|
-
scope
|
|
7493
|
+
scope,
|
|
7494
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
7468
7495
|
});
|
|
7469
7496
|
const returning = nestedEntry ? nested.withJoinColumns(tableName, nestedEntry.ops, { ...columns }, table) : columns;
|
|
7470
7497
|
const runInsert = async (target, values) => {
|
|
@@ -7566,7 +7593,8 @@ var generateUpsert3 = (db, tableName, table, tables, relationMap, baseType, onCo
|
|
|
7566
7593
|
pkNames,
|
|
7567
7594
|
parsedInfo,
|
|
7568
7595
|
limits,
|
|
7569
|
-
scope
|
|
7596
|
+
scope,
|
|
7597
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
7570
7598
|
});
|
|
7571
7599
|
const returning = nestedEntries ? nested.withJoinColumns(tableName, mergedOps(nestedEntries), { ...columns }, table) : columns;
|
|
7572
7600
|
const runUpsert = async (target, values) => {
|
|
@@ -7664,7 +7692,8 @@ var generateUpdate3 = (db, tableName, table, tables, relationMap, setArgs, filte
|
|
|
7664
7692
|
pkNames,
|
|
7665
7693
|
parsedInfo,
|
|
7666
7694
|
limits,
|
|
7667
|
-
scope
|
|
7695
|
+
scope,
|
|
7696
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
7668
7697
|
});
|
|
7669
7698
|
const entry = nested?.enabled(tableName) ? nested.split(tableName, set) : void 0;
|
|
7670
7699
|
const nestedOps = entry && nested.hasOps(entry.ops) ? entry.ops : void 0;
|
|
@@ -7778,7 +7807,8 @@ var generateUpdateMany3 = (db, tableName, table, tables, relationMap, updateMany
|
|
|
7778
7807
|
pkNames,
|
|
7779
7808
|
parsedInfo,
|
|
7780
7809
|
limits,
|
|
7781
|
-
scope
|
|
7810
|
+
scope,
|
|
7811
|
+
defaultOrderBy: policies?.defaultOrderBy
|
|
7782
7812
|
});
|
|
7783
7813
|
const entries = updates.map(({ where, set }) => {
|
|
7784
7814
|
const split = nested?.enabled(tableName) ? nested.split(tableName, set) : void 0;
|
|
@@ -8765,7 +8795,9 @@ var buildSchema = (db, config) => {
|
|
|
8765
8795
|
aggregateCost: (complexityConfig === true ? void 0 : complexityConfig.aggregateCost) ?? 10
|
|
8766
8796
|
};
|
|
8767
8797
|
const transactionsOpt = config?.transactions;
|
|
8768
|
-
const transactions = transactionsOpt === void 0 || transactionsOpt === "none" ? void 0 : {
|
|
8798
|
+
const transactions = transactionsOpt === void 0 || transactionsOpt === "none" ? void 0 : {
|
|
8799
|
+
timeoutMs: (transactionsOpt === "auto" ? void 0 : transactionsOpt.timeoutMs) ?? DEFAULT_TRANSACTION_TIMEOUT_MS
|
|
8800
|
+
};
|
|
8769
8801
|
const limitsConfig = config?.limits;
|
|
8770
8802
|
if (limitsConfig) {
|
|
8771
8803
|
const check = (policy, where) => {
|
|
@@ -8793,6 +8825,46 @@ var buildSchema = (db, config) => {
|
|
|
8793
8825
|
limitPolicyCache.set(tableName, resolved);
|
|
8794
8826
|
return resolved;
|
|
8795
8827
|
} : void 0;
|
|
8828
|
+
const defaultsConfig = config?.defaults;
|
|
8829
|
+
const defaultOrderByByTable = /* @__PURE__ */ new Map();
|
|
8830
|
+
if (defaultsConfig) {
|
|
8831
|
+
const defaultsTableNames = new Set(tableKeys);
|
|
8832
|
+
for (const [tableName, tableDefaults] of Object.entries(defaultsConfig)) {
|
|
8833
|
+
if (!defaultsTableNames.has(tableName)) {
|
|
8834
|
+
throw new Error(
|
|
8835
|
+
`Drizzle-GraphQL Error: config.defaults names '${tableName}', which is not a table in the Drizzle schema.`
|
|
8836
|
+
);
|
|
8837
|
+
}
|
|
8838
|
+
const orderBy = tableDefaults?.orderBy;
|
|
8839
|
+
if (!orderBy || !Object.keys(orderBy).length) {
|
|
8840
|
+
continue;
|
|
8841
|
+
}
|
|
8842
|
+
const columns = getColumns6(schema[tableName]);
|
|
8843
|
+
const normalized = {};
|
|
8844
|
+
for (const [columnName, entry] of Object.entries(orderBy)) {
|
|
8845
|
+
if (!columns[columnName]) {
|
|
8846
|
+
throw new Error(
|
|
8847
|
+
`Drizzle-GraphQL Error: config.defaults.${tableName}.orderBy names '${columnName}', which is not a column of '${tableName}'.`
|
|
8848
|
+
);
|
|
8849
|
+
}
|
|
8850
|
+
const direction = typeof entry === "string" ? entry : entry?.direction;
|
|
8851
|
+
if (direction !== "asc" && direction !== "desc") {
|
|
8852
|
+
throw new Error(
|
|
8853
|
+
`Drizzle-GraphQL Error: config.defaults.${tableName}.orderBy.${columnName} must be 'asc', 'desc', or { direction, priority? }.`
|
|
8854
|
+
);
|
|
8855
|
+
}
|
|
8856
|
+
const priority = typeof entry === "string" ? void 0 : entry?.priority;
|
|
8857
|
+
if (priority !== void 0 && !Number.isInteger(priority)) {
|
|
8858
|
+
throw new Error(
|
|
8859
|
+
`Drizzle-GraphQL Error: config.defaults.${tableName}.orderBy.${columnName}.priority must be an integer.`
|
|
8860
|
+
);
|
|
8861
|
+
}
|
|
8862
|
+
normalized[columnName] = priority === void 0 ? { direction } : { direction, priority };
|
|
8863
|
+
}
|
|
8864
|
+
defaultOrderByByTable.set(tableName, normalized);
|
|
8865
|
+
}
|
|
8866
|
+
}
|
|
8867
|
+
const defaultOrderBy = defaultOrderByByTable.size ? (tableName) => defaultOrderByByTable.get(tableName) : void 0;
|
|
8796
8868
|
const scopeConfig = config?.scope;
|
|
8797
8869
|
const contextValuesConfig = config?.contextValues;
|
|
8798
8870
|
if (scopeConfig || contextValuesConfig) {
|
|
@@ -8873,11 +8945,12 @@ var buildSchema = (db, config) => {
|
|
|
8873
8945
|
}
|
|
8874
8946
|
}
|
|
8875
8947
|
const onWrite = globalWriteHooks || writeHooks.size ? (tableName) => globalWriteHooks ?? writeHooks.get(tableName) : void 0;
|
|
8876
|
-
const policies = scopeConfig || contextValuesConfig || softDeleteInfos.size || onWrite ? {
|
|
8948
|
+
const policies = scopeConfig || contextValuesConfig || softDeleteInfos.size || onWrite || defaultOrderBy ? {
|
|
8877
8949
|
scope: scopeConfig ? (tableName) => scopeConfig[tableName] : void 0,
|
|
8878
8950
|
contextValues: contextValuesConfig ? (tableName) => contextValuesConfig[tableName] : void 0,
|
|
8879
8951
|
softDelete: softDeleteInfos.size ? (tableName) => softDeleteInfos.get(tableName) : void 0,
|
|
8880
|
-
onWrite
|
|
8952
|
+
onWrite,
|
|
8953
|
+
defaultOrderBy
|
|
8881
8954
|
} : void 0;
|
|
8882
8955
|
const exclude = config?.exclude;
|
|
8883
8956
|
if (exclude) {
|