@pothos/plugin-drizzle 0.8.1 → 0.10.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.
Files changed (122) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/TODO.md +25 -4
  3. package/dts/connection-helpers.d.ts +34 -0
  4. package/dts/connection-helpers.d.ts.map +1 -0
  5. package/dts/drizzle-field-builder.d.ts +18 -53
  6. package/dts/drizzle-field-builder.d.ts.map +1 -1
  7. package/dts/global-types.d.ts +22 -41
  8. package/dts/global-types.d.ts.map +1 -1
  9. package/dts/index.d.ts +5 -2
  10. package/dts/index.d.ts.map +1 -1
  11. package/dts/interface-ref.d.ts +3 -2
  12. package/dts/interface-ref.d.ts.map +1 -1
  13. package/dts/model-loader.d.ts +3 -2
  14. package/dts/model-loader.d.ts.map +1 -1
  15. package/dts/node-ref.d.ts +1 -1
  16. package/dts/node-ref.d.ts.map +1 -1
  17. package/dts/object-ref.d.ts +2 -2
  18. package/dts/object-ref.d.ts.map +1 -1
  19. package/dts/types.d.ts +61 -41
  20. package/dts/types.d.ts.map +1 -1
  21. package/dts/utils/config.d.ts +4 -3
  22. package/dts/utils/config.d.ts.map +1 -1
  23. package/dts/utils/cursors.d.ts +13 -7
  24. package/dts/utils/cursors.d.ts.map +1 -1
  25. package/dts/utils/drizzle-graphql.d.ts +0 -17
  26. package/dts/utils/drizzle-graphql.d.ts.map +1 -1
  27. package/dts/utils/map-query.d.ts.map +1 -1
  28. package/dts/utils/selections.d.ts +5 -5
  29. package/dts/utils/selections.d.ts.map +1 -1
  30. package/esm/connection-helpers.d.ts +36 -0
  31. package/esm/connection-helpers.d.ts.map +1 -0
  32. package/esm/connection-helpers.js +82 -0
  33. package/esm/connection-helpers.js.map +1 -0
  34. package/esm/drizzle-field-builder.d.ts +18 -73
  35. package/esm/drizzle-field-builder.d.ts.map +1 -1
  36. package/esm/drizzle-field-builder.js +25 -14
  37. package/esm/drizzle-field-builder.js.map +1 -1
  38. package/esm/field-builder.js +2 -3
  39. package/esm/field-builder.js.map +1 -1
  40. package/esm/global-types.d.ts +35 -60
  41. package/esm/global-types.d.ts.map +1 -1
  42. package/esm/global-types.js.map +1 -1
  43. package/esm/index.d.ts +5 -2
  44. package/esm/index.d.ts.map +1 -1
  45. package/esm/index.js +71 -61
  46. package/esm/index.js.map +1 -1
  47. package/esm/interface-ref.d.ts +3 -2
  48. package/esm/interface-ref.d.ts.map +1 -1
  49. package/esm/interface-ref.js.map +1 -1
  50. package/esm/model-loader.d.ts +3 -2
  51. package/esm/model-loader.d.ts.map +1 -1
  52. package/esm/model-loader.js +17 -10
  53. package/esm/model-loader.js.map +1 -1
  54. package/esm/node-ref.d.ts +1 -1
  55. package/esm/node-ref.d.ts.map +1 -1
  56. package/esm/object-ref.d.ts +2 -2
  57. package/esm/object-ref.d.ts.map +1 -1
  58. package/esm/schema-builder.js +113 -67
  59. package/esm/schema-builder.js.map +1 -1
  60. package/esm/types.d.ts +61 -41
  61. package/esm/types.d.ts.map +1 -1
  62. package/esm/types.js.map +1 -1
  63. package/esm/utils/config.d.ts +4 -3
  64. package/esm/utils/config.d.ts.map +1 -1
  65. package/esm/utils/config.js +32 -15
  66. package/esm/utils/config.js.map +1 -1
  67. package/esm/utils/cursors.d.ts +13 -7
  68. package/esm/utils/cursors.d.ts.map +1 -1
  69. package/esm/utils/cursors.js +137 -63
  70. package/esm/utils/cursors.js.map +1 -1
  71. package/esm/utils/drizzle-graphql.d.ts +0 -17
  72. package/esm/utils/drizzle-graphql.d.ts.map +1 -1
  73. package/esm/utils/drizzle-graphql.js +230 -198
  74. package/esm/utils/drizzle-graphql.js.map +1 -1
  75. package/esm/utils/map-query.d.ts.map +1 -1
  76. package/esm/utils/map-query.js +10 -6
  77. package/esm/utils/map-query.js.map +1 -1
  78. package/esm/utils/selections.d.ts +5 -5
  79. package/esm/utils/selections.d.ts.map +1 -1
  80. package/esm/utils/selections.js +19 -18
  81. package/esm/utils/selections.js.map +1 -1
  82. package/lib/connection-helpers.js +93 -0
  83. package/lib/connection-helpers.js.map +1 -0
  84. package/lib/drizzle-field-builder.js +24 -13
  85. package/lib/drizzle-field-builder.js.map +1 -1
  86. package/lib/field-builder.js +2 -3
  87. package/lib/field-builder.js.map +1 -1
  88. package/lib/index.js +79 -60
  89. package/lib/index.js.map +1 -1
  90. package/lib/interface-ref.js.map +1 -1
  91. package/lib/model-loader.js +17 -10
  92. package/lib/model-loader.js.map +1 -1
  93. package/lib/schema-builder.js +113 -67
  94. package/lib/schema-builder.js.map +1 -1
  95. package/lib/types.js.map +1 -1
  96. package/lib/utils/config.js +31 -14
  97. package/lib/utils/config.js.map +1 -1
  98. package/lib/utils/cursors.js +135 -63
  99. package/lib/utils/cursors.js.map +1 -1
  100. package/lib/utils/drizzle-graphql.js +230 -221
  101. package/lib/utils/drizzle-graphql.js.map +1 -1
  102. package/lib/utils/map-query.js +10 -6
  103. package/lib/utils/map-query.js.map +1 -1
  104. package/lib/utils/selections.js +18 -17
  105. package/lib/utils/selections.js.map +1 -1
  106. package/package.json +14 -14
  107. package/src/connection-helpers.ts +206 -0
  108. package/src/drizzle-field-builder.ts +30 -26
  109. package/src/field-builder.ts +4 -7
  110. package/src/global-types.ts +112 -119
  111. package/src/index.ts +91 -70
  112. package/src/interface-ref.ts +7 -3
  113. package/src/model-loader.ts +32 -17
  114. package/src/node-ref.ts +1 -1
  115. package/src/object-ref.ts +2 -2
  116. package/src/schema-builder.ts +116 -113
  117. package/src/types.ts +95 -62
  118. package/src/utils/config.ts +39 -30
  119. package/src/utils/cursors.ts +134 -101
  120. package/src/utils/drizzle-graphql.ts +273 -274
  121. package/src/utils/map-query.ts +20 -8
  122. package/src/utils/selections.ts +34 -28
@@ -22,23 +22,21 @@ _export(exports, {
22
22
  const _core = require("@pothos/core");
23
23
  const _drizzleorm = require("drizzle-orm");
24
24
  const configCache = (0, _core.createContextCache)((builder)=>{
25
- let config;
26
- if (builder.options.drizzle.schema) {
27
- const tablesConfig = (0, _drizzleorm.extractTablesRelationalConfig)(builder.options.drizzle.schema, _drizzleorm.createTableRelationsHelpers);
28
- config = {
29
- fullSchema: builder.options.drizzle.schema,
30
- schema: tablesConfig.tables,
31
- tableNamesMap: tablesConfig.tableNamesMap
32
- };
25
+ let relations;
26
+ if (builder.options.drizzle.relations) {
27
+ relations = builder.options.drizzle.relations;
33
28
  } else {
34
- config = builder.options.drizzle.client._;
29
+ relations = builder.options.drizzle.client._.relations;
35
30
  }
36
- const dbToSchema = Object.values(config.schema).reduce((acc, table)=>{
37
- acc[table.dbName] = table;
31
+ const dbToSchema = Object.values(relations.tables).reduce((acc, table)=>{
32
+ const tableName = (0, _drizzleorm.getTableName)(table);
33
+ if (tableName) {
34
+ acc[tableName] = table;
35
+ }
38
36
  return acc;
39
37
  }, {});
40
38
  const columnMappings = Object.values(dbToSchema).reduce((acc, table)=>{
41
- acc[table.dbName] = Object.entries(table.columns).reduce((acc, [name, column])=>{
39
+ acc[(0, _drizzleorm.getTableName)(table)] = Object.entries(table).reduce((acc, [name, column])=>{
42
40
  acc[column.name] = name;
43
41
  return acc;
44
42
  }, {});
@@ -47,7 +45,6 @@ const configCache = (0, _core.createContextCache)((builder)=>{
47
45
  var _builder_options_drizzle_skipDeferredFragments;
48
46
  return {
49
47
  skipDeferredFragments: (_builder_options_drizzle_skipDeferredFragments = builder.options.drizzle.skipDeferredFragments) !== null && _builder_options_drizzle_skipDeferredFragments !== void 0 ? _builder_options_drizzle_skipDeferredFragments : true,
50
- dbToSchema,
51
48
  columnToTsName: (column)=>{
52
49
  const tableName = (0, _drizzleorm.getTableName)(column.table);
53
50
  const table = columnMappings[tableName];
@@ -57,7 +54,27 @@ const configCache = (0, _core.createContextCache)((builder)=>{
57
54
  }
58
55
  return columnName;
59
56
  },
60
- ...config
57
+ getPrimaryKey: (tableName)=>{
58
+ const tableConfig = builder.options.drizzle.getTableConfig(relations.tables[tableName]);
59
+ const primaryKey = tableConfig.columns.find((column)=>column.primary);
60
+ if (primaryKey) {
61
+ return [
62
+ primaryKey
63
+ ];
64
+ }
65
+ const primaryKeys = tableConfig.primaryKeys.find((key)=>key.columns.length > 0);
66
+ if (primaryKeys) {
67
+ return primaryKeys.columns;
68
+ }
69
+ const uniqueColumn = tableConfig.columns.find((column)=>column.isUnique);
70
+ if (uniqueColumn) {
71
+ return [
72
+ uniqueColumn
73
+ ];
74
+ }
75
+ throw new Error(`Could not find primary key for table ${tableName}`);
76
+ },
77
+ relations
61
78
  };
62
79
  });
63
80
  const drizzleClientCache = (0, _core.createContextCache)((builder)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/config.ts"],"names":["drizzleClientCache","getClient","getSchemaConfig","configCache","createContextCache","builder","config","options","drizzle","schema","tablesConfig","extractTablesRelationalConfig","createTableRelationsHelpers","fullSchema","tables","tableNamesMap","client","_","dbToSchema","Object","values","reduce","acc","table","dbName","columnMappings","entries","columns","name","column","skipDeferredFragments","columnToTsName","tableName","getTableName","columnName","Error","clientConfig","ctx","_ctx","context"],"mappings":";;;;;;;;;;;IA4EaA,kBAAkB;eAAlBA;;IAsBGC,SAAS;eAATA;;IANAC,eAAe;eAAfA;;;sBA5FqC;4BAS9C;AAQP,MAAMC,cAAcC,IAAAA,wBAAkB,EACpC,CAACC;IACC,IAAIC;IACJ,IAAID,QAAQE,OAAO,CAACC,OAAO,CAACC,MAAM,EAAE;QAClC,MAAMC,eAAeC,IAAAA,yCAA6B,EAChDN,QAAQE,OAAO,CAACC,OAAO,CAACC,MAAM,EAC9BG,uCAA2B;QAE7BN,SAAS;YACPO,YAAYR,QAAQE,OAAO,CAACC,OAAO,CAACC,MAAM;YAC1CA,QAAQC,aAAaI,MAAM;YAC3BC,eAAeL,aAAaK,aAAa;QAC3C;IACF,OAAO;QACLT,SAAS,AAACD,QAAQE,OAAO,CAACC,OAAO,CAACQ,MAAM,CACrCC,CAAC;IACN;IAEA,MAAMC,aAAaC,OAAOC,MAAM,CAACd,OAAOG,MAAM,EAAEY,MAAM,CACpD,CAACC,KAAKC;QACJD,GAAG,CAACC,MAAMC,MAAM,CAAC,GAAGD;QACpB,OAAOD;IACT,GACA,CAAC;IAGH,MAAMG,iBAAiBN,OAAOC,MAAM,CAACF,YAAYG,MAAM,CACrD,CAACC,KAAKC;QACJD,GAAG,CAACC,MAAMC,MAAM,CAAC,GAAGL,OAAOO,OAAO,CAACH,MAAMI,OAAO,EAAEN,MAAM,CACtD,CAACC,KAAK,CAACM,MAAMC,OAAO;YAClBP,GAAG,CAACO,OAAOD,IAAI,CAAC,GAAGA;YACnB,OAAON;QACT,GACA,CAAC;QAEH,OAAOA;IACT,GACA,CAAC;QAIsBjB;IADzB,OAAO;QACLyB,uBAAuBzB,CAAAA,iDAAAA,QAAQE,OAAO,CAACC,OAAO,CAACsB,qBAAqB,cAA7CzB,4DAAAA,iDAAiD;QACxEa;QACAa,gBAAgB,CAACF;YACf,MAAMG,YAAYC,IAAAA,wBAAY,EAACJ,OAAON,KAAK;YAC3C,MAAMA,QAAQE,cAAc,CAACO,UAAU;YACvC,MAAME,aAAaX,kBAAAA,4BAAAA,KAAO,CAACM,OAAOD,IAAI,CAAC;YAEvC,IAAI,CAACM,YAAY;gBACf,MAAM,IAAIC,MAAM,CAAC,kCAAkC,EAAEH,UAAU,CAAC,EAAEH,OAAOD,IAAI,EAAE;YACjF;YAEA,OAAOM;QACT;QACA,GAAG5B,MAAM;IACX;AACF;AAGK,MAAMN,qBAAqBI,IAAAA,wBAAkB,EAClD,CAACC;IACC,MAAM+B,eAAe/B,QAAQE,OAAO,CAACC,OAAO,CAACQ,MAAM;IACnD,MAAMf,YACJ,OAAOmC,iBAAiB,aACpBhC,IAAAA,wBAAkB,EAAC,CAACiC,MAAQD,aAAaC,QACzC,CAACC,OAAiBF;IAExB,OAAOhC,IAAAA,wBAAkB,EAAC,CAACmC;QACzB,MAAMvB,SAASf,UAAUsC;QAEzB,OAAOvB;IACT;AACF;AAGK,SAASd,gBACdG,OAA+C;IAE/C,OAAOF,YAAYE;AACrB;AAEO,SAASJ,UACdI,OAA+C,EAC/CkC,OAAe;IAEf,OAAOvC,mBAAmBK,SAAkBkC;AAC9C"}
1
+ {"version":3,"sources":["../../src/utils/config.ts"],"names":["drizzleClientCache","getClient","getSchemaConfig","configCache","createContextCache","builder","relations","options","drizzle","client","_","dbToSchema","Object","values","tables","reduce","acc","table","tableName","getTableName","columnMappings","entries","name","column","skipDeferredFragments","columnToTsName","columnName","Error","getPrimaryKey","tableConfig","getTableConfig","primaryKey","columns","find","primary","primaryKeys","key","length","uniqueColumn","isUnique","clientConfig","ctx","_ctx","context"],"mappings":"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"}
@@ -56,7 +56,6 @@ _export(exports, {
56
56
  }
57
57
  });
58
58
  const _core = require("@pothos/core");
59
- const _drizzleorm = require("drizzle-orm");
60
59
  const _mapquery = require("./map-query");
61
60
  const DEFAULT_MAX_SIZE = 100;
62
61
  const DEFAULT_SIZE = 20;
@@ -100,6 +99,7 @@ function getIDSerializer(fields, config) {
100
99
  }
101
100
  return (value)=>{
102
101
  if (fields.length > 1) {
102
+ fields.map((field)=>field.keyAsName);
103
103
  return `${JSON.stringify(fields.map((col)=>value[config.columnToTsName(col)]))}`;
104
104
  }
105
105
  return `${formatIDChunk(value[config.columnToTsName(fields[0])])}`;
@@ -263,41 +263,58 @@ function getCursorParser(fields) {
263
263
  return record;
264
264
  };
265
265
  }
266
- const orderByOps = (0, _drizzleorm.getOrderByOperators)();
267
- function parseOrderBy(orderBy, invert) {
268
- if (!Array.isArray(orderBy)) {
269
- return parseOrderBy([
270
- orderBy
271
- ], invert);
272
- }
266
+ function parseOrderBy(config, table, orderBy, invert) {
267
+ const entries = [];
268
+ const columns = [];
269
+ const normalized = [];
273
270
  const asc = invert ? 'desc' : 'asc';
274
271
  const desc = invert ? 'asc' : 'desc';
275
- const normalized = orderBy.map((field)=>{
276
- if (typeof field === 'object' && 'asc' in field) {
277
- return {
278
- direction: asc,
279
- column: field.asc
280
- };
281
- }
282
- if (typeof field === 'object' && 'desc' in field) {
283
- return {
284
- direction: desc,
285
- column: field.desc
286
- };
272
+ if ('table' in orderBy && orderBy.table && typeof orderBy.table === 'object') {
273
+ entries.push([
274
+ config.columnToTsName(orderBy),
275
+ asc
276
+ ]);
277
+ columns.push(orderBy);
278
+ normalized.push({
279
+ direction: 'asc',
280
+ column: orderBy
281
+ });
282
+ } else if (Array.isArray(orderBy)) {
283
+ for (const field of orderBy){
284
+ entries.push([
285
+ config.columnToTsName(field),
286
+ asc
287
+ ]);
288
+ columns.push(field);
289
+ normalized.push({
290
+ direction: 'asc',
291
+ column: field
292
+ });
287
293
  }
288
- return {
289
- direction: asc,
290
- column: field
291
- };
292
- });
294
+ } else {
295
+ // biome-ignore lint/complexity/noForEach: <explanation>
296
+ Object.entries(orderBy).forEach(([name, direction])=>{
297
+ if (direction) {
298
+ const column = table.columns[name];
299
+ columns.push(column);
300
+ entries.push([
301
+ name,
302
+ direction === 'asc' ? asc : desc
303
+ ]);
304
+ normalized.push({
305
+ direction: direction,
306
+ column
307
+ });
308
+ }
309
+ });
310
+ }
293
311
  return {
294
312
  normalized,
295
- columns: normalized.map((field)=>field.column),
296
- sql: normalized.map((field)=>orderByOps[field.direction](field.column))
313
+ columns,
314
+ orderBy: Object.fromEntries(entries)
297
315
  };
298
316
  }
299
- const ops = (0, _drizzleorm.getOperators)();
300
- function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, orderBy, where }) {
317
+ function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, orderBy, where, config, table }) {
301
318
  const { before, after, first, last } = args;
302
319
  if (first != null && first < 0) {
303
320
  throw new _core.PothosValidationError('Argument "first" must be a non-negative integer');
@@ -305,58 +322,105 @@ function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, d
305
322
  if (last != null && last < 0) {
306
323
  throw new _core.PothosValidationError('Argument "last" must be a non-negative integer');
307
324
  }
308
- if (before && after) {
309
- throw new _core.PothosValidationError('Arguments "before" and "after" are not supported at the same time');
310
- }
311
- if (before != null && first != null) {
312
- throw new _core.PothosValidationError('Arguments "before" and "first" are not supported at the same time');
325
+ if (first != null && last != null) {
326
+ throw new _core.PothosValidationError('Arguments "first" and "last" are not supported at the same time');
313
327
  }
314
- if (after != null && last != null) {
315
- throw new _core.PothosValidationError('Arguments "after" and "last" are not supported at the same time');
316
- }
317
- const cursor = before !== null && before !== void 0 ? before : after;
318
328
  const maxSizeForConnection = typeof maxSize === 'function' ? maxSize(args, ctx) : maxSize;
319
329
  const defaultSizeForConnection = typeof defaultSize === 'function' ? defaultSize(args, ctx) : defaultSize;
320
330
  var _ref;
321
- let limit = Math.min((_ref = first !== null && first !== void 0 ? first : last) !== null && _ref !== void 0 ? _ref : defaultSizeForConnection, maxSizeForConnection) + 1;
322
- if (before !== null && before !== void 0 ? before : last) {
323
- limit = -limit;
324
- }
325
- const parsedOrderBy = parseOrderBy(orderBy, limit < 0);
331
+ const limit = Math.min((_ref = first !== null && first !== void 0 ? first : last) !== null && _ref !== void 0 ? _ref : defaultSizeForConnection, maxSizeForConnection) + 1;
332
+ const inverted = !first && !!last;
333
+ const parsedOrderBy = parseOrderBy(config, table, orderBy, inverted);
326
334
  const columns = {};
327
335
  for (const column of parsedOrderBy.columns){
328
- columns[column.name] = true;
336
+ columns[config.columnToTsName(column)] = true;
329
337
  }
330
- const whereClauses = where ? [
331
- where
332
- ] : [];
333
- if (cursor) {
338
+ const whereClauses = [];
339
+ if (where) {
340
+ whereClauses.push(where);
341
+ }
342
+ if (after) {
343
+ const cursorParser = getCursorParser(parsedOrderBy.columns);
344
+ const parsedCursor = cursorParser(after);
345
+ const parts = parsedOrderBy.normalized.map(({ direction, column }, index)=>{
346
+ const columnName = config.columnToTsName(column);
347
+ const compare = direction === 'asc' ? {
348
+ [columnName]: {
349
+ gt: parsedCursor[column.name]
350
+ }
351
+ } : {
352
+ [columnName]: {
353
+ lt: parsedCursor[column.name]
354
+ }
355
+ };
356
+ if (index === 0) {
357
+ return compare;
358
+ }
359
+ return {
360
+ AND: [
361
+ ...parsedOrderBy.normalized.slice(0, index).map(({ column: c })=>{
362
+ return {
363
+ [config.columnToTsName(c)]: parsedCursor[c.name]
364
+ };
365
+ }),
366
+ compare
367
+ ]
368
+ };
369
+ });
370
+ whereClauses.push(parts.length > 1 ? {
371
+ OR: parts
372
+ } : parts[0]);
373
+ }
374
+ if (before) {
334
375
  const cursorParser = getCursorParser(parsedOrderBy.columns);
335
- const parsedCursor = cursorParser(cursor);
336
- whereClauses.push(ops.or(...parsedOrderBy.normalized.map(({ direction, column }, index)=>{
337
- const compare = direction === 'asc' ? ops.gt(column, parsedCursor[column.name]) : ops.lt(column, parsedCursor[column.name]);
376
+ const parsedCursor = cursorParser(before);
377
+ const parts = parsedOrderBy.normalized.map(({ direction, column }, index)=>{
378
+ const columnName = config.columnToTsName(column);
379
+ const compare = direction === 'desc' ? {
380
+ [columnName]: {
381
+ gt: parsedCursor[column.name]
382
+ }
383
+ } : {
384
+ [columnName]: {
385
+ lt: parsedCursor[column.name]
386
+ }
387
+ };
338
388
  if (index === 0) {
339
389
  return compare;
340
390
  }
341
- return ops.and(...parsedOrderBy.normalized.slice(0, index).map(({ column: c })=>ops.eq(c, parsedCursor[c.name])), compare);
342
- })));
391
+ return {
392
+ AND: [
393
+ ...parsedOrderBy.normalized.slice(0, index).map(({ column: c })=>{
394
+ return {
395
+ [config.columnToTsName(c)]: parsedCursor[c.name]
396
+ };
397
+ }),
398
+ compare
399
+ ]
400
+ };
401
+ });
402
+ whereClauses.push(parts.length > 1 ? {
403
+ OR: parts
404
+ } : parts[0]);
343
405
  }
344
406
  return {
345
407
  cursorColumns: parsedOrderBy.columns,
346
408
  columns,
347
- orderBy: parsedOrderBy.sql,
409
+ orderBy: parsedOrderBy.orderBy,
348
410
  limit,
349
- where: ops.and(...whereClauses)
411
+ where: whereClauses.length > 1 ? {
412
+ AND: whereClauses
413
+ } : whereClauses[0]
350
414
  };
351
415
  }
352
- function wrapConnectionResult(results, args, limit, cursor, resolveNode) {
416
+ function wrapConnectionResult(results, args, limit, cursor, resolveNode, parent) {
353
417
  var _edges_, _edges_1;
354
418
  const gotFullResults = results.length === Math.abs(limit);
355
419
  const hasNextPage = args.before ? true : args.last ? false : gotFullResults;
356
- var _args_before;
357
- const hasPreviousPage = args.after ? true : ((_args_before = args.before) !== null && _args_before !== void 0 ? _args_before : args.last) ? gotFullResults : false;
358
- const nodes = gotFullResults ? results.slice(limit < 0 ? 1 : 0, limit < 0 ? results.length : -1) : results;
420
+ const hasPreviousPage = args.after ? true : !args.first && !!args.last ? gotFullResults : false;
421
+ const nodes = gotFullResults ? results.slice(0, -1) : results;
359
422
  const connection = {
423
+ parent,
360
424
  args,
361
425
  edges: [],
362
426
  pageInfo: {
@@ -386,16 +450,19 @@ function wrapConnectionResult(results, args, limit, cursor, resolveNode) {
386
450
  connection.pageInfo.endCursor = (_edges__cursor1 = (_edges_1 = edges[edges.length - 1]) === null || _edges_1 === void 0 ? void 0 : _edges_1.cursor) !== null && _edges__cursor1 !== void 0 ? _edges__cursor1 : null;
387
451
  return connection;
388
452
  }
389
- async function resolveDrizzleCursorConnection(table, info, typeName, config, options, resolve) {
453
+ async function resolveDrizzleCursorConnection(tableName, info, typeName, config, options, resolve) {
454
+ const table = config.relations.tablesConfig[tableName];
390
455
  let query;
391
456
  let formatter;
392
457
  const results = await resolve((q = {})=>{
458
+ var _ref;
393
459
  const { cursorColumns, ...connectionQuery } = drizzleCursorConnectionQuery({
394
460
  ...options,
395
- orderBy: q.orderBy ? typeof q.orderBy === 'function' ? q.orderBy(table.columns) : q.orderBy : table.primaryKey
461
+ config,
462
+ orderBy: (_ref = typeof q.orderBy === 'function' ? q.orderBy(table.columns) : q.orderBy) !== null && _ref !== void 0 ? _ref : config.getPrimaryKey(table.tsName),
463
+ table
396
464
  });
397
465
  formatter = getCursorFormatter(cursorColumns, config);
398
- const where = typeof q.where === 'function' ? q.where(table.columns, (0, _drizzleorm.getOperators)()) : q.where;
399
466
  query = (0, _mapquery.queryFromInfo)({
400
467
  context: options.ctx,
401
468
  info,
@@ -405,7 +472,12 @@ async function resolveDrizzleCursorConnection(table, info, typeName, config, opt
405
472
  ...q.columns,
406
473
  ...connectionQuery.columns
407
474
  },
408
- where: ops.and(connectionQuery.where, where)
475
+ where: connectionQuery.where && q.where ? {
476
+ AND: [
477
+ q.where,
478
+ connectionQuery.where
479
+ ]
480
+ } : q.where || connectionQuery.where
409
481
  },
410
482
  paths: [
411
483
  [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/cursors.ts"],"names":["drizzleCursorConnectionQuery","formatCursorChunk","formatDrizzleCursor","formatIDChunk","getColumnParser","getColumnSerializer","getCursorFormatter","getCursorParser","getIDParser","getIDSerializer","parseDrizzleCursor","parseSerializedDrizzleColumn","parseSerializedIDColumn","resolveDrizzleCursorConnection","wrapConnectionResult","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","PothosValidationError","record","fields","config","length","JSON","stringify","map","col","columnToTsName","serializer","encodeBase64","cursor","decoded","decodeBase64","startsWith","slice","type","rawValue","match","parseInt","parse","BigInt","id","field","dataType","error","name","parsed","Array","isArray","forEach","i","orderByOps","getOrderByOperators","parseOrderBy","orderBy","invert","asc","desc","normalized","direction","column","columns","sql","ops","getOperators","args","ctx","maxSize","defaultSize","where","before","after","first","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","parsedOrderBy","whereClauses","cursorParser","parsedCursor","push","or","index","compare","gt","lt","and","c","eq","cursorColumns","results","resolveNode","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","table","info","typeName","options","resolve","query","formatter","q","connectionQuery","primaryKey","queryFromInfo","context","select","paths"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/cursors.ts"],"names":["drizzleCursorConnectionQuery","formatCursorChunk","formatDrizzleCursor","formatIDChunk","getColumnParser","getColumnSerializer","getCursorFormatter","getCursorParser","getIDParser","getIDSerializer","parseDrizzleCursor","parseSerializedDrizzleColumn","parseSerializedIDColumn","resolveDrizzleCursorConnection","wrapConnectionResult","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","PothosValidationError","record","fields","config","length","map","field","keyAsName","JSON","stringify","col","columnToTsName","serializer","encodeBase64","cursor","decoded","decodeBase64","startsWith","slice","type","rawValue","match","parseInt","parse","BigInt","id","dataType","error","name","parsed","Array","isArray","forEach","i","parseOrderBy","table","orderBy","invert","entries","columns","normalized","asc","desc","push","direction","column","Object","fromEntries","args","ctx","maxSize","defaultSize","where","before","after","first","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","inverted","parsedOrderBy","whereClauses","cursorParser","parsedCursor","parts","index","columnName","compare","gt","lt","AND","c","OR","cursorColumns","results","resolveNode","parent","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","tableName","info","typeName","options","resolve","relations","tablesConfig","query","formatter","q","connectionQuery","getPrimaryKey","tsName","queryFromInfo","context","select","paths"],"mappings":"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"}