@pothos/plugin-drizzle 0.17.5 → 0.18.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/CHANGELOG.md +39 -0
- package/dts/connection-helpers.d.ts.map +1 -1
- package/dts/drizzle-field-builder.d.ts.map +1 -1
- package/dts/types.d.ts +5 -2
- package/dts/types.d.ts.map +1 -1
- package/dts/utils/config.d.ts +3 -0
- package/dts/utils/config.d.ts.map +1 -1
- package/dts/utils/cursors.d.ts +12 -8
- package/dts/utils/cursors.d.ts.map +1 -1
- package/dts/utils/selections.d.ts +1 -0
- package/dts/utils/selections.d.ts.map +1 -1
- package/esm/connection-helpers.d.ts.map +1 -1
- package/esm/connection-helpers.js +8 -7
- package/esm/connection-helpers.js.map +1 -1
- package/esm/drizzle-field-builder.d.ts.map +1 -1
- package/esm/drizzle-field-builder.js +8 -6
- package/esm/drizzle-field-builder.js.map +1 -1
- package/esm/types.d.ts +5 -2
- package/esm/types.d.ts.map +1 -1
- package/esm/types.js.map +1 -1
- package/esm/utils/config.d.ts +3 -0
- package/esm/utils/config.d.ts.map +1 -1
- package/esm/utils/config.js +95 -17
- package/esm/utils/config.js.map +1 -1
- package/esm/utils/cursors.d.ts +12 -8
- package/esm/utils/cursors.d.ts.map +1 -1
- package/esm/utils/cursors.js +199 -117
- package/esm/utils/cursors.js.map +1 -1
- package/esm/utils/selections.d.ts +1 -0
- package/esm/utils/selections.d.ts.map +1 -1
- package/esm/utils/selections.js +10 -4
- package/esm/utils/selections.js.map +1 -1
- package/lib/connection-helpers.js +7 -6
- package/lib/connection-helpers.js.map +1 -1
- package/lib/drizzle-field-builder.js +8 -6
- package/lib/drizzle-field-builder.js.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/config.js +95 -17
- package/lib/utils/config.js.map +1 -1
- package/lib/utils/cursors.js +201 -116
- package/lib/utils/cursors.js.map +1 -1
- package/lib/utils/selections.js +13 -4
- package/lib/utils/selections.js.map +1 -1
- package/package.json +4 -4
- package/src/connection-helpers.ts +14 -7
- package/src/drizzle-field-builder.ts +10 -7
- package/src/types.ts +8 -4
- package/src/utils/config.ts +117 -20
- package/src/utils/cursors.ts +253 -92
- package/src/utils/selections.ts +12 -4
package/esm/utils/cursors.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { decodeBase64, encodeBase64, PothosValidationError } from '@pothos/core';
|
|
2
|
-
import { getColumns } from 'drizzle-orm';
|
|
2
|
+
import { asc, desc, eq, getColumns, gt, isNull, lt, sql } from 'drizzle-orm';
|
|
3
3
|
import { queryFromInfo } from './map-query.js';
|
|
4
|
+
import { omitUndefinedKeys } from './selections.js';
|
|
4
5
|
const DEFAULT_MAX_SIZE = 100;
|
|
5
6
|
const DEFAULT_SIZE = 20;
|
|
6
7
|
export function formatCursorChunk(value) {
|
|
@@ -49,15 +50,20 @@ export function getIDSerializer(fields, config) {
|
|
|
49
50
|
return `${formatIDChunk(value[config.columnToTsName(fields[0])])}`;
|
|
50
51
|
};
|
|
51
52
|
}
|
|
53
|
+
export function cursorFieldKey(field, config) {
|
|
54
|
+
return typeof field === 'string' ? field : config.columnToTsName(field);
|
|
55
|
+
}
|
|
52
56
|
export function getColumnSerializer(fields, config) {
|
|
53
57
|
if (fields.length === 0) {
|
|
54
58
|
throw new PothosValidationError('Column serializer must have at least one field');
|
|
55
59
|
}
|
|
56
60
|
return (value)=>{
|
|
57
61
|
if (fields.length > 1) {
|
|
58
|
-
|
|
62
|
+
// each value carries its own type tag, the same ones a single value gets.
|
|
63
|
+
// Plain JSON would turn a Date into a string and refuse a bigint outright.
|
|
64
|
+
return `T:${JSON.stringify(fields.map((field)=>formatCursorChunk(value[cursorFieldKey(field, config)])))}`;
|
|
59
65
|
}
|
|
60
|
-
return formatCursorChunk(value[
|
|
66
|
+
return formatCursorChunk(value[cursorFieldKey(fields[0], config)]);
|
|
61
67
|
};
|
|
62
68
|
}
|
|
63
69
|
export function getCursorFormatter(fields, config) {
|
|
@@ -88,7 +94,7 @@ export function parseSerializedDrizzleColumn(value) {
|
|
|
88
94
|
throw new PothosValidationError('value must be a string');
|
|
89
95
|
}
|
|
90
96
|
try {
|
|
91
|
-
const [, type, rawValue] = value.match(/^(S|N|D|J|I):(.*)/);
|
|
97
|
+
const [, type, rawValue] = value.match(/^(S|N|D|J|I|T):(.*)/);
|
|
92
98
|
switch(type){
|
|
93
99
|
case 'S':
|
|
94
100
|
return rawValue;
|
|
@@ -97,7 +103,11 @@ export function parseSerializedDrizzleColumn(value) {
|
|
|
97
103
|
case 'D':
|
|
98
104
|
return new Date(Number.parseInt(rawValue, 10));
|
|
99
105
|
case 'J':
|
|
106
|
+
// compound values from before each one carried a tag: whatever JSON
|
|
107
|
+
// preserved is the best that can be recovered
|
|
100
108
|
return JSON.parse(rawValue);
|
|
109
|
+
case 'T':
|
|
110
|
+
return JSON.parse(rawValue).map((chunk)=>chunk === null ? null : parseSerializedDrizzleColumn(chunk));
|
|
101
111
|
case 'I':
|
|
102
112
|
return BigInt(rawValue);
|
|
103
113
|
default:
|
|
@@ -187,79 +197,207 @@ export function getColumnParser(fields) {
|
|
|
187
197
|
return record;
|
|
188
198
|
};
|
|
189
199
|
}
|
|
190
|
-
export function getCursorParser(
|
|
191
|
-
if (
|
|
200
|
+
export function getCursorParser(keys) {
|
|
201
|
+
if (keys.length === 0) {
|
|
192
202
|
throw new PothosValidationError('Cursor must have at least one field');
|
|
193
203
|
}
|
|
194
204
|
return (cursor)=>{
|
|
195
205
|
const parsed = parseDrizzleCursor(cursor);
|
|
196
|
-
if (
|
|
206
|
+
if (keys.length === 1) {
|
|
197
207
|
return {
|
|
198
|
-
[
|
|
208
|
+
[keys[0]]: parsed
|
|
199
209
|
};
|
|
200
210
|
}
|
|
201
|
-
|
|
202
|
-
|
|
211
|
+
// A cursor issued before a column joined the ordering only holds values for
|
|
212
|
+
// the columns that came before it. Those still describe a position, just a
|
|
213
|
+
// less precise one, so the page is keyed off the prefix the cursor covers
|
|
214
|
+
// rather than rejected. Cursors returned by that page carry every column.
|
|
215
|
+
const values = Array.isArray(parsed) ? parsed : [
|
|
216
|
+
parsed
|
|
217
|
+
];
|
|
218
|
+
if (values.length === 0) {
|
|
219
|
+
throw new PothosValidationError('Cursor contains no values');
|
|
220
|
+
}
|
|
221
|
+
if (values.length > keys.length) {
|
|
222
|
+
throw new PothosValidationError(`Expected cursor to contain at most ${keys.length} values, but got ${values.length}`);
|
|
203
223
|
}
|
|
204
224
|
const record = {};
|
|
205
|
-
|
|
206
|
-
record[
|
|
225
|
+
values.forEach((value, i)=>{
|
|
226
|
+
record[keys[i]] = value;
|
|
207
227
|
});
|
|
208
228
|
return record;
|
|
209
229
|
};
|
|
210
230
|
}
|
|
211
|
-
function
|
|
212
|
-
|
|
213
|
-
|
|
231
|
+
function resolveExpression(expression, table) {
|
|
232
|
+
return typeof expression === 'function' ? expression(table, {
|
|
233
|
+
sql
|
|
234
|
+
}) : expression;
|
|
235
|
+
}
|
|
236
|
+
// Drizzle aliases the table it is querying (`d0`), so ordering and comparing
|
|
237
|
+
// have to reach for the column on that alias rather than the original table.
|
|
238
|
+
// Expressions get the alias handed to them and resolve themselves.
|
|
239
|
+
function orderTarget(entry, table) {
|
|
240
|
+
if (entry.column) {
|
|
241
|
+
var _table_entry_key;
|
|
242
|
+
return (_table_entry_key = table[entry.key]) !== null && _table_entry_key !== void 0 ? _table_entry_key : entry.column;
|
|
243
|
+
}
|
|
244
|
+
return resolveExpression(entry.expression, table);
|
|
245
|
+
}
|
|
246
|
+
function flipDirection(direction) {
|
|
247
|
+
return direction === 'asc' ? 'desc' : 'asc';
|
|
248
|
+
}
|
|
249
|
+
function ordersBy(entries, column) {
|
|
250
|
+
return entries.some((entry)=>{
|
|
251
|
+
var _entry_column;
|
|
252
|
+
return ((_entry_column = entry.column) === null || _entry_column === void 0 ? void 0 : _entry_column.name) === column.name;
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
// The ordering fixes a row's position only if some set of columns the database
|
|
256
|
+
// keeps unique is fully covered by it. A nullable column can't contribute:
|
|
257
|
+
// rows sharing a null tie with each other, and a cursor compared against null
|
|
258
|
+
// matches nothing.
|
|
259
|
+
function orderIsUnique(entries, config, table) {
|
|
260
|
+
return config.getUniqueConstraints(table.name).some((columns)=>columns.every((column)=>column.notNull && ordersBy(entries, column)));
|
|
261
|
+
}
|
|
262
|
+
// A cursor names a row's position in the ordering, which only works if no two
|
|
263
|
+
// rows can share a position. Ordering by a column with duplicate values (a
|
|
264
|
+
// timestamp, a status) leaves ties to be broken arbitrarily, so a row can move
|
|
265
|
+
// between pages and end up returned twice or skipped entirely. Appending a key
|
|
266
|
+
// the database keeps unique fixes that. Key columns already in the ordering are
|
|
267
|
+
// left where the user put them.
|
|
268
|
+
function appendTieBreaker(entries, config, table) {
|
|
269
|
+
var _ref;
|
|
270
|
+
var _entries_;
|
|
271
|
+
if (orderIsUnique(entries, config, table)) {
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
const tieBreaker = config.findTieBreaker(table.name);
|
|
275
|
+
if (!tieBreaker) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
const direction = (_ref = (_entries_ = entries[entries.length - 1]) === null || _entries_ === void 0 ? void 0 : _entries_.direction) !== null && _ref !== void 0 ? _ref : 'asc';
|
|
279
|
+
for (const column of tieBreaker){
|
|
280
|
+
if (!ordersBy(entries, column)) {
|
|
281
|
+
entries.push({
|
|
282
|
+
direction,
|
|
283
|
+
key: config.columnToTsName(column),
|
|
284
|
+
column
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
function parseOrderBy(config, table, orderBy, invert, extras) {
|
|
214
290
|
const normalized = [];
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
config.columnToTsName(orderBy),
|
|
220
|
-
asc
|
|
221
|
-
]);
|
|
222
|
-
columns.push(orderBy);
|
|
223
|
-
normalized.push({
|
|
224
|
-
direction: 'asc',
|
|
225
|
-
column: orderBy
|
|
291
|
+
const columnEntry = (column, direction)=>({
|
|
292
|
+
direction,
|
|
293
|
+
key: config.columnToTsName(column),
|
|
294
|
+
column
|
|
226
295
|
});
|
|
296
|
+
if ('table' in orderBy && orderBy.table && typeof orderBy.table === 'object') {
|
|
297
|
+
normalized.push(columnEntry(orderBy, 'asc'));
|
|
227
298
|
} else if (Array.isArray(orderBy)) {
|
|
228
299
|
for (const field of orderBy){
|
|
229
|
-
|
|
230
|
-
config.columnToTsName(field),
|
|
231
|
-
asc
|
|
232
|
-
]);
|
|
233
|
-
columns.push(field);
|
|
234
|
-
normalized.push({
|
|
235
|
-
direction: 'asc',
|
|
236
|
-
column: field
|
|
237
|
-
});
|
|
300
|
+
normalized.push(columnEntry(field, 'asc'));
|
|
238
301
|
}
|
|
239
302
|
} else {
|
|
240
303
|
const tableColumns = getColumns(table.table);
|
|
241
304
|
Object.entries(orderBy).forEach(([name, direction])=>{
|
|
242
|
-
if (direction) {
|
|
243
|
-
|
|
244
|
-
columns.push(column);
|
|
245
|
-
entries.push([
|
|
246
|
-
name,
|
|
247
|
-
direction === 'asc' ? asc : desc
|
|
248
|
-
]);
|
|
249
|
-
normalized.push({
|
|
250
|
-
direction: direction,
|
|
251
|
-
column
|
|
252
|
-
});
|
|
305
|
+
if (!direction) {
|
|
306
|
+
return;
|
|
253
307
|
}
|
|
308
|
+
const column = tableColumns[name];
|
|
309
|
+
if (column) {
|
|
310
|
+
normalized.push(columnEntry(column, direction));
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
const expression = extras === null || extras === void 0 ? void 0 : extras[name];
|
|
314
|
+
if (!expression) {
|
|
315
|
+
throw new PothosValidationError(`Can't order by "${name}": ${table.name} has no such column, and the query passed to the connection declares no extra with that name`);
|
|
316
|
+
}
|
|
317
|
+
normalized.push({
|
|
318
|
+
direction,
|
|
319
|
+
key: name,
|
|
320
|
+
expression
|
|
321
|
+
});
|
|
254
322
|
});
|
|
255
323
|
}
|
|
324
|
+
appendTieBreaker(normalized, config, table);
|
|
325
|
+
const directionFor = ({ direction })=>invert ? flipDirection(direction) : direction;
|
|
256
326
|
return {
|
|
257
327
|
normalized,
|
|
258
|
-
columns
|
|
259
|
-
|
|
328
|
+
// only real columns need adding to the selection; extras are already selected
|
|
329
|
+
columns: normalized.flatMap(({ column })=>column ? [
|
|
330
|
+
column
|
|
331
|
+
] : []),
|
|
332
|
+
cursorFields: normalized.map(({ column, key })=>column !== null && column !== void 0 ? column : key),
|
|
333
|
+
// the object form can only name columns, so an expression forces the
|
|
334
|
+
// callback form -- which renders identically for the columns beside it
|
|
335
|
+
orderBy: normalized.some(({ expression })=>expression) ? (t)=>normalized.map((entry)=>(directionFor(entry) === 'asc' ? asc : desc)(orderTarget(entry, t))) : Object.fromEntries(normalized.map((entry)=>[
|
|
336
|
+
entry.key,
|
|
337
|
+
directionFor(entry)
|
|
338
|
+
]))
|
|
260
339
|
};
|
|
261
340
|
}
|
|
262
|
-
|
|
341
|
+
// Rows past the cursor are those where the first ordering column that differs
|
|
342
|
+
// from the cursor differs in the direction being paged. Columns the cursor
|
|
343
|
+
// doesn't cover are left out: it was issued for a shorter ordering, and its
|
|
344
|
+
// prefix still describes a position.
|
|
345
|
+
function compareTo(entry, operator, value) {
|
|
346
|
+
const isNullish = value === null || value === undefined;
|
|
347
|
+
if (entry.column) {
|
|
348
|
+
if (operator === 'eq' && isNullish) {
|
|
349
|
+
return {
|
|
350
|
+
[entry.key]: {
|
|
351
|
+
isNull: true
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
// never the `{ column: value }` shorthand: drizzle reads any object value
|
|
356
|
+
// as a nested filter, so a null throws and a Date silently drops the
|
|
357
|
+
// comparison. Naming the operator works for every value a cursor can hold
|
|
358
|
+
return {
|
|
359
|
+
[entry.key]: {
|
|
360
|
+
[operator]: value
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
if (operator === 'eq' && isNullish) {
|
|
365
|
+
return {
|
|
366
|
+
RAW: (table)=>isNull(orderTarget(entry, table))
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
const operators = {
|
|
370
|
+
gt,
|
|
371
|
+
lt,
|
|
372
|
+
eq
|
|
373
|
+
};
|
|
374
|
+
// RAW hands the filter the table it is being built against, which is what an
|
|
375
|
+
// expression needs to resolve
|
|
376
|
+
return {
|
|
377
|
+
RAW: (table)=>operators[operator](orderTarget(entry, table), value)
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
function keysetFilter(entries, cursor, paging) {
|
|
381
|
+
const parsedCursor = getCursorParser(entries.map(({ key })=>key))(cursor);
|
|
382
|
+
const covered = entries.filter(({ key })=>key in parsedCursor);
|
|
383
|
+
const parts = covered.map((entry, index)=>{
|
|
384
|
+
const ascending = paging === 'after' ? entry.direction === 'asc' : entry.direction === 'desc';
|
|
385
|
+
const compare = compareTo(entry, ascending ? 'gt' : 'lt', parsedCursor[entry.key]);
|
|
386
|
+
if (index === 0) {
|
|
387
|
+
return compare;
|
|
388
|
+
}
|
|
389
|
+
return {
|
|
390
|
+
AND: [
|
|
391
|
+
...covered.slice(0, index).map((previous)=>compareTo(previous, 'eq', parsedCursor[previous.key])),
|
|
392
|
+
compare
|
|
393
|
+
]
|
|
394
|
+
};
|
|
395
|
+
});
|
|
396
|
+
return parts.length > 1 ? {
|
|
397
|
+
OR: parts
|
|
398
|
+
} : parts[0];
|
|
399
|
+
}
|
|
400
|
+
export function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, orderBy, extras, where, config, table }) {
|
|
263
401
|
var _ref;
|
|
264
402
|
const { before, after, first, last } = args;
|
|
265
403
|
if (first != null && first < 0) {
|
|
@@ -275,7 +413,7 @@ export function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_
|
|
|
275
413
|
const defaultSizeForConnection = typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize;
|
|
276
414
|
const limit = Math.min((_ref = first !== null && first !== void 0 ? first : last) !== null && _ref !== void 0 ? _ref : defaultSizeForConnection, maxSizeForConnection) + 1;
|
|
277
415
|
const inverted = !first && !!last;
|
|
278
|
-
const parsedOrderBy = parseOrderBy(config, table, orderBy, inverted);
|
|
416
|
+
const parsedOrderBy = parseOrderBy(config, table, orderBy, inverted, extras);
|
|
279
417
|
const columns = {};
|
|
280
418
|
for (const column of parsedOrderBy.columns){
|
|
281
419
|
columns[config.columnToTsName(column)] = true;
|
|
@@ -285,78 +423,20 @@ export function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_
|
|
|
285
423
|
whereClauses.push(where);
|
|
286
424
|
}
|
|
287
425
|
if (after) {
|
|
288
|
-
|
|
289
|
-
const parsedCursor = cursorParser(after);
|
|
290
|
-
const parts = parsedOrderBy.normalized.map(({ direction, column }, index)=>{
|
|
291
|
-
const columnName = config.columnToTsName(column);
|
|
292
|
-
const compare = direction === 'asc' ? {
|
|
293
|
-
[columnName]: {
|
|
294
|
-
gt: parsedCursor[column.name]
|
|
295
|
-
}
|
|
296
|
-
} : {
|
|
297
|
-
[columnName]: {
|
|
298
|
-
lt: parsedCursor[column.name]
|
|
299
|
-
}
|
|
300
|
-
};
|
|
301
|
-
if (index === 0) {
|
|
302
|
-
return compare;
|
|
303
|
-
}
|
|
304
|
-
return {
|
|
305
|
-
AND: [
|
|
306
|
-
...parsedOrderBy.normalized.slice(0, index).map(({ column: c })=>{
|
|
307
|
-
return {
|
|
308
|
-
[config.columnToTsName(c)]: parsedCursor[c.name]
|
|
309
|
-
};
|
|
310
|
-
}),
|
|
311
|
-
compare
|
|
312
|
-
]
|
|
313
|
-
};
|
|
314
|
-
});
|
|
315
|
-
whereClauses.push(parts.length > 1 ? {
|
|
316
|
-
OR: parts
|
|
317
|
-
} : parts[0]);
|
|
426
|
+
whereClauses.push(keysetFilter(parsedOrderBy.normalized, after, 'after'));
|
|
318
427
|
}
|
|
319
428
|
if (before) {
|
|
320
|
-
|
|
321
|
-
const parsedCursor = cursorParser(before);
|
|
322
|
-
const parts = parsedOrderBy.normalized.map(({ direction, column }, index)=>{
|
|
323
|
-
const columnName = config.columnToTsName(column);
|
|
324
|
-
const compare = direction === 'desc' ? {
|
|
325
|
-
[columnName]: {
|
|
326
|
-
gt: parsedCursor[column.name]
|
|
327
|
-
}
|
|
328
|
-
} : {
|
|
329
|
-
[columnName]: {
|
|
330
|
-
lt: parsedCursor[column.name]
|
|
331
|
-
}
|
|
332
|
-
};
|
|
333
|
-
if (index === 0) {
|
|
334
|
-
return compare;
|
|
335
|
-
}
|
|
336
|
-
return {
|
|
337
|
-
AND: [
|
|
338
|
-
...parsedOrderBy.normalized.slice(0, index).map(({ column: c })=>{
|
|
339
|
-
return {
|
|
340
|
-
[config.columnToTsName(c)]: parsedCursor[c.name]
|
|
341
|
-
};
|
|
342
|
-
}),
|
|
343
|
-
compare
|
|
344
|
-
]
|
|
345
|
-
};
|
|
346
|
-
});
|
|
347
|
-
whereClauses.push(parts.length > 1 ? {
|
|
348
|
-
OR: parts
|
|
349
|
-
} : parts[0]);
|
|
429
|
+
whereClauses.push(keysetFilter(parsedOrderBy.normalized, before, 'before'));
|
|
350
430
|
}
|
|
351
|
-
return {
|
|
352
|
-
|
|
431
|
+
return omitUndefinedKeys({
|
|
432
|
+
cursorFields: parsedOrderBy.cursorFields,
|
|
353
433
|
columns,
|
|
354
434
|
orderBy: parsedOrderBy.orderBy,
|
|
355
435
|
limit,
|
|
356
436
|
where: whereClauses.length > 1 ? {
|
|
357
437
|
AND: whereClauses
|
|
358
438
|
} : whereClauses[0]
|
|
359
|
-
};
|
|
439
|
+
});
|
|
360
440
|
}
|
|
361
441
|
export function wrapConnectionResult(results, args, limit, cursor, resolveNode, parent, totalCount) {
|
|
362
442
|
var _ref, _ref1;
|
|
@@ -401,18 +481,20 @@ export async function resolveDrizzleCursorConnection(tableName, info, typeName,
|
|
|
401
481
|
let formatter;
|
|
402
482
|
const results = await resolve((q = {})=>{
|
|
403
483
|
var _ref;
|
|
404
|
-
const {
|
|
484
|
+
const { cursorFields, ...connectionQuery } = drizzleCursorConnectionQuery({
|
|
405
485
|
...options,
|
|
406
486
|
config,
|
|
407
487
|
orderBy: (_ref = typeof q.orderBy === 'function' ? q.orderBy(table.table) : q.orderBy) !== null && _ref !== void 0 ? _ref : config.getPrimaryKey(table.name),
|
|
488
|
+
extras: q.extras,
|
|
408
489
|
table
|
|
409
490
|
});
|
|
410
|
-
formatter = getCursorFormatter(
|
|
491
|
+
formatter = getCursorFormatter(cursorFields, config);
|
|
411
492
|
query = queryFromInfo({
|
|
412
493
|
context: options.ctx,
|
|
413
494
|
info,
|
|
414
|
-
select: {
|
|
495
|
+
select: omitUndefinedKeys({
|
|
415
496
|
...connectionQuery,
|
|
497
|
+
extras: q.extras,
|
|
416
498
|
columns: {
|
|
417
499
|
...q.columns,
|
|
418
500
|
...connectionQuery.columns
|
|
@@ -423,7 +505,7 @@ export async function resolveDrizzleCursorConnection(tableName, info, typeName,
|
|
|
423
505
|
connectionQuery.where
|
|
424
506
|
]
|
|
425
507
|
} : q.where || connectionQuery.where
|
|
426
|
-
},
|
|
508
|
+
}),
|
|
427
509
|
paths: [
|
|
428
510
|
[
|
|
429
511
|
'nodes'
|
package/esm/utils/cursors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/cursors.ts"],"names":["decodeBase64","encodeBase64","PothosValidationError","getColumns","queryFromInfo","DEFAULT_MAX_SIZE","DEFAULT_SIZE","formatCursorChunk","value","Date","String","Number","formatDrizzleCursor","record","fields","config","getCursorFormatter","formatIDChunk","getIDSerializer","length","map","field","keyAsName","JSON","stringify","col","columnToTsName","getColumnSerializer","serializer","parseDrizzleCursor","cursor","decoded","startsWith","parseSerializedDrizzleColumn","slice","type","rawValue","match","parseInt","parse","BigInt","parseSerializedIDColumn","id","dataType","error","getIDParser","name","parsed","Array","isArray","forEach","i","getColumnParser","getCursorParser","parseOrderBy","table","orderBy","invert","entries","columns","normalized","asc","desc","push","direction","column","tableColumns","Object","fromEntries","drizzleCursorConnectionQuery","args","ctx","maxSize","defaultSize","where","first","before","after","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","inverted","parsedOrderBy","whereClauses","cursorParser","parsedCursor","parts","index","columnName","compare","gt","lt","AND","c","OR","cursorColumns","wrapConnectionResult","results","resolveNode","parent","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","resolveDrizzleCursorConnection","tableName","info","typeName","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey","context","select","paths","undefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/cursors.ts"],"names":["decodeBase64","encodeBase64","PothosValidationError","asc","desc","eq","getColumns","gt","isNull","lt","sql","queryFromInfo","omitUndefinedKeys","DEFAULT_MAX_SIZE","DEFAULT_SIZE","formatCursorChunk","value","Date","String","Number","formatDrizzleCursor","record","fields","config","getCursorFormatter","formatIDChunk","getIDSerializer","length","map","field","keyAsName","JSON","stringify","col","columnToTsName","cursorFieldKey","getColumnSerializer","serializer","parseDrizzleCursor","cursor","decoded","startsWith","parseSerializedDrizzleColumn","slice","type","rawValue","match","parseInt","parse","chunk","BigInt","parseSerializedIDColumn","id","dataType","error","getIDParser","name","parsed","Array","isArray","forEach","i","getColumnParser","getCursorParser","keys","values","resolveExpression","expression","table","orderTarget","entry","column","key","flipDirection","direction","ordersBy","entries","some","orderIsUnique","getUniqueConstraints","columns","every","notNull","appendTieBreaker","tieBreaker","findTieBreaker","push","parseOrderBy","orderBy","invert","extras","normalized","columnEntry","tableColumns","Object","directionFor","flatMap","cursorFields","t","fromEntries","compareTo","operator","isNullish","undefined","RAW","operators","keysetFilter","paging","parsedCursor","covered","filter","parts","index","ascending","compare","AND","previous","OR","drizzleCursorConnectionQuery","args","ctx","maxSize","defaultSize","where","first","before","after","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","inverted","parsedOrderBy","whereClauses","wrapConnectionResult","results","resolveNode","parent","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","resolveDrizzleCursorConnection","tableName","info","typeName","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey","context","select","paths"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export interface SelectionState {
|
|
|
14
14
|
skipDeferredFragments: boolean;
|
|
15
15
|
}
|
|
16
16
|
export type SelectionMap = DBQueryConfig<'one'>;
|
|
17
|
+
export declare function omitUndefinedKeys<T extends object>(query: T): T;
|
|
17
18
|
export declare function selectionCompatible(state: SelectionState, selectionMap: SelectionMap | boolean, ignoreQuery?: boolean): boolean;
|
|
18
19
|
export declare function stateCompatible(state: SelectionState, newState: SelectionState, ignoreQuery?: boolean): boolean;
|
|
19
20
|
export declare function mergeState(state: SelectionState, newState: SelectionState): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selections.d.ts","sourceRoot":"","sources":["../../src/utils/selections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAEhD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,YAAY,GAAG,OAAO,EACpC,WAAW,UAAQ,GAClB,OAAO,CA+BT;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,WAAW,UAAQ,GAClB,OAAO,CAQT;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,QAoBzE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,qBAAqB,EAC5B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,CAAC,EAAE,cAAc,GACtB,cAAc,CAahB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,yBAAyB,EACjC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,YAAY,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"selections.d.ts","sourceRoot":"","sources":["../../src/utils/selections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAK/D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,YAAY,GAAG,OAAO,EACpC,WAAW,UAAQ,GAClB,OAAO,CA+BT;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,WAAW,UAAQ,GAClB,OAAO,CAQT;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,QAoBzE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,qBAAqB,EAC5B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,CAAC,EAAE,cAAc,GACtB,cAAc,CAahB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,yBAAyB,EACjC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,YAAY,GAAG,OAAO,QA0DlC;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,yBAAyB,EACjC,KAAK,EAAE,cAAc,GACpB,YAAY,CA6Bd"}
|
package/esm/utils/selections.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { PothosValidationError } from '@pothos/core';
|
|
2
2
|
import { deepEqual } from './deep-equal.js';
|
|
3
|
+
export function omitUndefinedKeys(query) {
|
|
4
|
+
const entries = Object.entries(query);
|
|
5
|
+
const defined = entries.filter(([, value])=>value !== undefined);
|
|
6
|
+
return defined.length === entries.length ? query : Object.fromEntries(defined);
|
|
7
|
+
}
|
|
3
8
|
export function selectionCompatible(state, selectionMap, ignoreQuery = false) {
|
|
4
9
|
if (typeof selectionMap === 'boolean') {
|
|
5
10
|
return ignoreQuery || !selectionMap || Object.keys(state.query).length === 0;
|
|
@@ -15,7 +20,7 @@ export function selectionCompatible(state, selectionMap, ignoreQuery = false) {
|
|
|
15
20
|
})) {
|
|
16
21
|
return false;
|
|
17
22
|
}
|
|
18
|
-
return ignoreQuery || deepEqual(state.query, query);
|
|
23
|
+
return ignoreQuery || deepEqual(state.query, omitUndefinedKeys(query));
|
|
19
24
|
}
|
|
20
25
|
export function stateCompatible(state, newState, ignoreQuery = false) {
|
|
21
26
|
for (const [name, relationState] of newState.with){
|
|
@@ -71,8 +76,9 @@ export function mergeSelection(config, state, selection) {
|
|
|
71
76
|
merge(config.relations[relation.targetTableName], key, value);
|
|
72
77
|
}
|
|
73
78
|
}
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
const normalizedQuery = omitUndefinedKeys(query);
|
|
80
|
+
if (Object.keys(normalizedQuery).length > 0) {
|
|
81
|
+
state.query = normalizedQuery;
|
|
76
82
|
}
|
|
77
83
|
if (extras) {
|
|
78
84
|
for (const [key, value] of Object.entries(extras)){
|
|
@@ -106,7 +112,7 @@ export function mergeSelection(config, state, selection) {
|
|
|
106
112
|
}
|
|
107
113
|
export function selectionToQuery(config, state) {
|
|
108
114
|
const query = {
|
|
109
|
-
...state.query,
|
|
115
|
+
...omitUndefinedKeys(state.query),
|
|
110
116
|
columns: undefined,
|
|
111
117
|
with: {},
|
|
112
118
|
extras: {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/selections.ts"],"names":["PothosValidationError","deepEqual","
|
|
1
|
+
{"version":3,"sources":["../../src/utils/selections.ts"],"names":["PothosValidationError","deepEqual","omitUndefinedKeys","query","entries","Object","defined","filter","value","undefined","length","fromEntries","selectionCompatible","state","selectionMap","ignoreQuery","keys","with","withSelection","extras","columns","_","some","key","has","get","existing","stateCompatible","newState","name","relationState","mergeState","allColumns","add","set","createState","table","skipDeferredFragments","parent","Set","Map","mappings","depth","mergeSelection","config","selection","relation","relations","merge","targetTableName","normalizedQuery","relatedState","selectionToQuery","column","getPrimaryKey","tsName","columnToTsName","forEach","sel"],"mappings":"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"}
|
|
@@ -18,20 +18,21 @@ function drizzleConnectionHelpers(builder, refOrType, { select, resolveNode, que
|
|
|
18
18
|
const config = (0, _config.getSchemaConfig)(builder);
|
|
19
19
|
const tableName = typeof refOrType === 'string' ? refOrType : refOrType.tableName;
|
|
20
20
|
function resolve(list, args, ctx, parent) {
|
|
21
|
-
const { select,
|
|
22
|
-
const formatCursor = (0, _cursors.getCursorFormatter)(
|
|
21
|
+
const { select, cursorFields } = getQueryArgs(args, ctx);
|
|
22
|
+
const formatCursor = (0, _cursors.getCursorFormatter)(cursorFields, config);
|
|
23
23
|
return (0, _cursors.wrapConnectionResult)(list, args, select.limit, formatCursor, resolveNode !== null && resolveNode !== void 0 ? resolveNode : (edge)=>edge, parent);
|
|
24
24
|
}
|
|
25
25
|
const getQueryArgs = (args, ctx)=>{
|
|
26
26
|
var _ref, _ref1;
|
|
27
27
|
const { limit, orderBy, where, ...fieldQuery } = (_ref = typeof query === 'function' ? query(args, ctx) : query) !== null && _ref !== void 0 ? _ref : {};
|
|
28
28
|
const table = config.relations[tableName];
|
|
29
|
-
const {
|
|
29
|
+
const { cursorFields, columns, ...connectionQuery } = (0, _cursors.drizzleCursorConnectionQuery)({
|
|
30
30
|
ctx,
|
|
31
31
|
maxSize,
|
|
32
32
|
defaultSize: typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize,
|
|
33
33
|
args,
|
|
34
34
|
orderBy: (_ref1 = typeof orderBy === 'function' ? orderBy(table) : orderBy) !== null && _ref1 !== void 0 ? _ref1 : (0, _config.getSchemaConfig)(builder).getPrimaryKey(tableName),
|
|
35
|
+
extras: fieldQuery.extras,
|
|
35
36
|
where,
|
|
36
37
|
config,
|
|
37
38
|
table
|
|
@@ -46,7 +47,7 @@ function drizzleConnectionHelpers(builder, refOrType, { select, resolveNode, que
|
|
|
46
47
|
},
|
|
47
48
|
limit: Math.abs(limit !== null && limit !== void 0 ? limit : connectionQuery.limit)
|
|
48
49
|
},
|
|
49
|
-
|
|
50
|
+
cursorFields
|
|
50
51
|
};
|
|
51
52
|
};
|
|
52
53
|
function getQuery(args, ctx, nestedSelectionOrInfo) {
|
|
@@ -74,10 +75,10 @@ function drizzleConnectionHelpers(builder, refOrType, { select, resolveNode, que
|
|
|
74
75
|
}
|
|
75
76
|
const baseQuery = typeof query === 'function' ? query(args, ctx) : query !== null && query !== void 0 ? query : {};
|
|
76
77
|
const queryResult = (0, _selections.selectionToQuery)(config, selectState);
|
|
77
|
-
return {
|
|
78
|
+
return (0, _selections.omitUndefinedKeys)({
|
|
78
79
|
...baseQuery,
|
|
79
80
|
...queryResult
|
|
80
|
-
};
|
|
81
|
+
});
|
|
81
82
|
}
|
|
82
83
|
const getArgs = ()=>createArgs ? builder.args(createArgs) : {};
|
|
83
84
|
return {
|