@pothos/plugin-drizzle 0.3.0 → 0.4.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.
Files changed (53) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dts/drizzle-field-builder.d.ts +2 -1
  3. package/dts/drizzle-field-builder.d.ts.map +1 -1
  4. package/dts/global-types.d.ts +8 -2
  5. package/dts/global-types.d.ts.map +1 -1
  6. package/dts/node-ref.d.ts +7 -1
  7. package/dts/node-ref.d.ts.map +1 -1
  8. package/dts/types.d.ts +3 -3
  9. package/dts/types.d.ts.map +1 -1
  10. package/dts/utils/cursors.d.ts +4 -1
  11. package/dts/utils/cursors.d.ts.map +1 -1
  12. package/esm/drizzle-field-builder.d.ts +2 -1
  13. package/esm/drizzle-field-builder.d.ts.map +1 -1
  14. package/esm/drizzle-field-builder.js +18 -28
  15. package/esm/drizzle-field-builder.js.map +1 -1
  16. package/esm/global-types.d.ts +8 -2
  17. package/esm/global-types.d.ts.map +1 -1
  18. package/esm/global-types.js.map +1 -1
  19. package/esm/interface-ref.js +1 -3
  20. package/esm/interface-ref.js.map +1 -1
  21. package/esm/node-ref.d.ts +7 -1
  22. package/esm/node-ref.d.ts.map +1 -1
  23. package/esm/node-ref.js +20 -0
  24. package/esm/node-ref.js.map +1 -1
  25. package/esm/object-ref.js +1 -4
  26. package/esm/object-ref.js.map +1 -1
  27. package/esm/schema-builder.js +6 -4
  28. package/esm/schema-builder.js.map +1 -1
  29. package/esm/types.d.ts +3 -3
  30. package/esm/types.d.ts.map +1 -1
  31. package/esm/utils/cursors.d.ts +4 -1
  32. package/esm/utils/cursors.d.ts.map +1 -1
  33. package/esm/utils/cursors.js +80 -22
  34. package/esm/utils/cursors.js.map +1 -1
  35. package/lib/drizzle-field-builder.js +18 -28
  36. package/lib/drizzle-field-builder.js.map +1 -1
  37. package/lib/interface-ref.js +1 -3
  38. package/lib/interface-ref.js.map +1 -1
  39. package/lib/node-ref.js +30 -3
  40. package/lib/node-ref.js.map +1 -1
  41. package/lib/object-ref.js +1 -4
  42. package/lib/object-ref.js.map +1 -1
  43. package/lib/schema-builder.js +5 -3
  44. package/lib/schema-builder.js.map +1 -1
  45. package/lib/utils/cursors.js +90 -25
  46. package/lib/utils/cursors.js.map +1 -1
  47. package/package.json +7 -7
  48. package/src/drizzle-field-builder.ts +16 -19
  49. package/src/global-types.ts +11 -2
  50. package/src/node-ref.ts +18 -1
  51. package/src/schema-builder.ts +15 -5
  52. package/src/types.ts +5 -4
  53. package/src/utils/cursors.ts +98 -22
package/lib/node-ref.js CHANGED
@@ -2,14 +2,41 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "DrizzleNodeRef", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ DrizzleNodeRef: function() {
8
13
  return DrizzleNodeRef;
14
+ },
15
+ relayIDShapeKey: function() {
16
+ return relayIDShapeKey;
9
17
  }
10
18
  });
11
19
  const _objectref = require("./object-ref");
20
+ function _define_property(obj, key, value) {
21
+ if (key in obj) {
22
+ Object.defineProperty(obj, key, {
23
+ value: value,
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true
27
+ });
28
+ } else {
29
+ obj[key] = value;
30
+ }
31
+ return obj;
32
+ }
33
+ const relayIDShapeKey = Symbol.for('Pothos.relayIDShapeKey');
34
+ let _relayIDShapeKey = relayIDShapeKey;
12
35
  class DrizzleNodeRef extends _objectref.DrizzleObjectRef {
36
+ constructor(name, tableName, options){
37
+ super(name, tableName), _define_property(this, _relayIDShapeKey, void 0), _define_property(this, "parseId", void 0);
38
+ this.parseId = options.parseId;
39
+ }
13
40
  }
14
41
 
15
42
  //# sourceMappingURL=node-ref.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/node-ref.ts"],"names":["DrizzleNodeRef","DrizzleObjectRef"],"mappings":";;;;+BAGaA;;;eAAAA;;;2BAFoB;AAE1B,MAAMA,uBAIHC,2BAAgB;AAAmB"}
1
+ {"version":3,"sources":["../src/node-ref.ts"],"names":["DrizzleNodeRef","relayIDShapeKey","Symbol","for","DrizzleObjectRef","constructor","name","tableName","options","parseId"],"mappings":";;;;;;;;;;;IAKaA,cAAc;eAAdA;;IAFAC,eAAe;eAAfA;;;2BAFoB;;;;;;;;;;;;;;AAE1B,MAAMA,kBAAkBC,OAAOC,GAAG,CAAC;IAQvCF,mBAAAA;AANI,MAAMD,uBAKHI,2BAAgB;IAIxBC,YACEC,IAAY,EACZC,SAAiB,EACjBC,OAEC,CACD;QACA,KAAK,CAACF,MAAMC,YAVd,uBAACN,kBAAD,KAAA,IACAQ,uBAAAA,WAAAA,KAAAA;QAUE,IAAI,CAACA,OAAO,GAAGD,QAAQC,OAAO;IAChC;AACF"}
package/lib/object-ref.js CHANGED
@@ -47,10 +47,7 @@ class DrizzleObjectRef extends _core.ObjectRef {
47
47
  return typeof value === 'object' && value !== null && _core.typeBrandKey in value && value[_core.typeBrandKey] === this.name;
48
48
  }
49
49
  constructor(name, tableName){
50
- super(name);
51
- _define_property(this, _drizzleTableKey, void 0);
52
- _define_property(this, _abstractReturnShapeKey, void 0);
53
- _define_property(this, "tableName", void 0);
50
+ super(name), _define_property(this, _drizzleTableKey, void 0), _define_property(this, _abstractReturnShapeKey, void 0), _define_property(this, "tableName", void 0);
54
51
  this.tableName = tableName;
55
52
  }
56
53
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/object-ref.ts"],"names":["DrizzleObjectRef","drizzleTableKey","Symbol","for","abstractReturnShapeKey","ObjectRef","addBrand","value","Array","isArray","val","brandWithType","name","hasBrand","typeBrandKey","constructor","tableName"],"mappings":";;;;;;;;;;;IAWaA,gBAAgB;eAAhBA;;IAFAC,eAAe;eAAfA;;;sBAHN;;;;;;;;;;;;;;AAGA,MAAMA,kBAAkBC,OAAOC,GAAG,CAAC;IAOvCF,mBAAAA,iBAEAG,0BAAAA,4BAAsB;AAPlB,MAAMJ,yBAIHK,eAAS;IAajBC,SACEC,KAAQ,EAC4D;QACpE,IAAIC,MAAMC,OAAO,CAACF,QAAQ;YACxB,KAAK,MAAMG,OAAOH,MAAO;gBACvBI,IAAAA,mBAAa,EAACD,KAAK,IAAI,CAACE,IAAI;YAC9B;YAEA,OAAOL;QACT;QAEAI,IAAAA,mBAAa,EAACJ,OAAO,IAAI,CAACK,IAAI;QAE9B,OAAOL;IACT;IAEAM,SAASN,KAAc,EAAE;QACvB,OACE,OAAOA,UAAU,YACjBA,UAAU,QACVO,kBAAY,IAAIP,SAChB,AAACA,KAAsC,CAACO,kBAAY,CAAC,KAAK,IAAI,CAACF,IAAI;IAEvE;IA7BAG,YAAYH,IAAY,EAAEI,SAAiB,CAAE;QAC3C,KAAK,CAACJ;QAPR,uBAACX,kBAAD,KAAA;QAEA,uBAACG,yBAAD,KAAA;QAEAY,uBAAAA,aAAAA,KAAAA;QAKE,IAAI,CAACA,SAAS,GAAGA;IACnB;AA0BF"}
1
+ {"version":3,"sources":["../src/object-ref.ts"],"names":["DrizzleObjectRef","drizzleTableKey","Symbol","for","abstractReturnShapeKey","ObjectRef","addBrand","value","Array","isArray","val","brandWithType","name","hasBrand","typeBrandKey","constructor","tableName"],"mappings":";;;;;;;;;;;IAWaA,gBAAgB;eAAhBA;;IAFAC,eAAe;eAAfA;;;sBAHN;;;;;;;;;;;;;;AAGA,MAAMA,kBAAkBC,OAAOC,GAAG,CAAC;IAOvCF,mBAAAA,iBAEAG,0BAAAA,4BAAsB;AAPlB,MAAMJ,yBAIHK,eAAS;IAajBC,SACEC,KAAQ,EAC4D;QACpE,IAAIC,MAAMC,OAAO,CAACF,QAAQ;YACxB,KAAK,MAAMG,OAAOH,MAAO;gBACvBI,IAAAA,mBAAa,EAACD,KAAK,IAAI,CAACE,IAAI;YAC9B;YAEA,OAAOL;QACT;QAEAI,IAAAA,mBAAa,EAACJ,OAAO,IAAI,CAACK,IAAI;QAE9B,OAAOL;IACT;IAEAM,SAASN,KAAc,EAAE;QACvB,OACE,OAAOA,UAAU,YACjBA,UAAU,QACVO,kBAAY,IAAIP,SAChB,AAACA,KAAsC,CAACO,kBAAY,CAAC,KAAK,IAAI,CAACF,IAAI;IAEvE;IA7BAG,YAAYH,IAAY,EAAEI,SAAiB,CAAE;QAC3C,KAAK,CAACJ,OAPR,uBAACX,kBAAD,KAAA,IAEA,uBAACG,yBAAD,KAAA,IAEAY,uBAAAA,aAAAA,KAAAA;QAKE,IAAI,CAACA,SAAS,GAAGA;IACnB;AA0BF"}
@@ -101,11 +101,13 @@ schemaBuilderProto.drizzleNode = function drizzleNode(table, { id: { column, ...
101
101
  idColumn
102
102
  ];
103
103
  const interfaceRef = (_this_nodeInterfaceRef = (_this = this).nodeInterfaceRef) === null || _this_nodeInterfaceRef === void 0 ? void 0 : _this_nodeInterfaceRef.call(_this);
104
- const resolve = (0, _cursors.getColumnSerializer)(idColumns);
105
- const idParser = (0, _cursors.getColumnParser)(idColumns);
104
+ const resolve = (0, _cursors.getIDSerializer)(idColumns);
105
+ const idParser = (0, _cursors.getIDParser)(idColumns);
106
106
  var _ref;
107
107
  const typeName = (_ref = variant !== null && variant !== void 0 ? variant : name) !== null && _ref !== void 0 ? _ref : table;
108
- const nodeRef = new _noderef.DrizzleNodeRef(typeName, table);
108
+ const nodeRef = new _noderef.DrizzleNodeRef(typeName, table, {
109
+ parseId: idParser
110
+ });
109
111
  const modelLoader = _modelloader.ModelLoader.forModel(table, this, idColumns);
110
112
  if (!interfaceRef) {
111
113
  throw new _core.PothosError('builder.drizzleNode requires @pothos/plugin-relay to be installed');
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","drizzleObject","table","select","fields","options","getSchemaConfig","name","variant","ref","DrizzleObjectRef","getRefFromModel","objectType","extensions","pothosDrizzleModel","pothosDrizzleTable","schema","pothosDrizzleSelect","pothosDrizzleLoader","ModelLoader","forModel","DrizzleObjectFieldBuilder","undefined","drizzleInterface","DrizzleInterfaceRef","interfaceType","drizzleNode","id","column","idOptions","tableConfig","idColumn","columns","idColumns","Array","isArray","interfaceRef","nodeInterfaceRef","resolve","getColumnSerializer","idParser","getColumnParser","typeName","nodeRef","DrizzleNodeRef","modelLoader","PothosError","extendedOptions","interfaces","loadWithoutCache","context","info","record","loadSelectionForField","brandWithType","addInterfaces","configStore","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","nullable","args","parent","completeValue","type","associateParamWithRef","drizzleObjectField","fieldName","field","addFields","tableName","drizzleInterfaceField","drizzleObjectFields","drizzleInterfaceFields","drizzleGraphQLOrderBy","addGraphQLInput","drizzleGraphQL","inputType","drizzleGraphQLFilters","drizzleGraphQLInsert","drizzleGraphQLUpdate"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","drizzleObject","table","select","fields","options","getSchemaConfig","name","variant","ref","DrizzleObjectRef","getRefFromModel","objectType","extensions","pothosDrizzleModel","pothosDrizzleTable","schema","pothosDrizzleSelect","pothosDrizzleLoader","ModelLoader","forModel","DrizzleObjectFieldBuilder","undefined","drizzleInterface","DrizzleInterfaceRef","interfaceType","drizzleNode","id","column","idOptions","tableConfig","idColumn","columns","idColumns","Array","isArray","interfaceRef","nodeInterfaceRef","resolve","getIDSerializer","idParser","getIDParser","typeName","nodeRef","DrizzleNodeRef","parseId","modelLoader","PothosError","extendedOptions","interfaces","loadWithoutCache","context","info","record","loadSelectionForField","brandWithType","addInterfaces","configStore","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","nullable","args","parent","completeValue","type","associateParamWithRef","drizzleObjectField","fieldName","field","addFields","tableName","drizzleInterfaceField","drizzleObjectFields","drizzleInterfaceFields","drizzleGraphQLOrderBy","addGraphQLInput","drizzleGraphQL","inputType","drizzleGraphQLFilters","drizzleGraphQLInsert","drizzleGraphQLUpdate"],"mappings":"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"}
@@ -18,6 +18,9 @@ _export(exports, {
18
18
  formatDrizzleCursor: function() {
19
19
  return formatDrizzleCursor;
20
20
  },
21
+ formatIDChunk: function() {
22
+ return formatIDChunk;
23
+ },
21
24
  getColumnParser: function() {
22
25
  return getColumnParser;
23
26
  },
@@ -30,15 +33,21 @@ _export(exports, {
30
33
  getCursorParser: function() {
31
34
  return getCursorParser;
32
35
  },
36
+ getIDParser: function() {
37
+ return getIDParser;
38
+ },
39
+ getIDSerializer: function() {
40
+ return getIDSerializer;
41
+ },
33
42
  parseDrizzleCursor: function() {
34
43
  return parseDrizzleCursor;
35
44
  },
36
- parseID: function() {
37
- return parseID;
38
- },
39
45
  parseSerializedDrizzleColumn: function() {
40
46
  return parseSerializedDrizzleColumn;
41
47
  },
48
+ parseSerializedIDColumn: function() {
49
+ return parseSerializedIDColumn;
50
+ },
42
51
  resolveDrizzleCursorConnection: function() {
43
52
  return resolveDrizzleCursorConnection;
44
53
  },
@@ -69,6 +78,30 @@ function formatCursorChunk(value) {
69
78
  function formatDrizzleCursor(record, fields) {
70
79
  return getCursorFormatter(fields)(record);
71
80
  }
81
+ function formatIDChunk(value) {
82
+ if (value instanceof Date) {
83
+ return `${String(Number(value))}`;
84
+ }
85
+ switch(typeof value){
86
+ case 'number':
87
+ case 'string':
88
+ case 'bigint':
89
+ return `${value}`;
90
+ default:
91
+ throw new _core.PothosValidationError(`Unsupported ID type ${typeof value}`);
92
+ }
93
+ }
94
+ function getIDSerializer(fields) {
95
+ if (fields.length === 0) {
96
+ throw new _core.PothosValidationError('Column serializer must have at least one field');
97
+ }
98
+ return (value)=>{
99
+ if (fields.length > 1) {
100
+ return `${JSON.stringify(fields.map((col)=>value[col.name]))}`;
101
+ }
102
+ return `${formatIDChunk(value[fields[0].name])}`;
103
+ };
104
+ }
72
105
  function getColumnSerializer(fields) {
73
106
  if (fields.length === 0) {
74
107
  throw new _core.PothosValidationError('Column serializer must have at least one field');
@@ -127,32 +160,61 @@ function parseSerializedDrizzleColumn(value) {
127
160
  throw new _core.PothosValidationError(`Invalid serialized data: ${value}`);
128
161
  }
129
162
  }
130
- function parseID(id, dataType) {
163
+ function parseSerializedIDColumn(id, field) {
131
164
  if (!id) {
132
165
  return id;
133
166
  }
134
- switch(dataType){
135
- case 'String':
136
- return id;
137
- case 'Int':
138
- return Number.parseInt(id, 10);
139
- case 'BigInt':
140
- return BigInt(id);
141
- case 'Boolean':
142
- return id !== 'false';
143
- case 'Float':
144
- case 'Decimal':
145
- return Number.parseFloat(id);
146
- case 'DateTime':
147
- return new Date(id);
148
- case 'Json':
149
- return JSON.parse(id);
150
- case 'Byte':
151
- return Buffer.from(id, 'base64');
152
- default:
153
- return id;
167
+ try {
168
+ switch(field.dataType){
169
+ case 'date':
170
+ return new Date(id);
171
+ case 'string':
172
+ return id;
173
+ case 'number':
174
+ return Number.parseInt(id, 10);
175
+ case 'bigint':
176
+ return BigInt(id);
177
+ default:
178
+ throw new _core.PothosValidationError(`Unsupported ID type ${field.dataType}`);
179
+ }
180
+ } catch (error) {
181
+ if (error instanceof _core.PothosValidationError) {
182
+ throw error;
183
+ }
184
+ throw new _core.PothosValidationError(`Invalid serialized ID: ${id}`);
154
185
  }
155
186
  }
187
+ function getIDParser(fields) {
188
+ if (fields.length === 0) {
189
+ throw new _core.PothosValidationError('Column parser must have at least one field');
190
+ }
191
+ return (value)=>{
192
+ if (fields.length === 1) {
193
+ return {
194
+ [fields[0].name]: parseSerializedIDColumn(value, fields[0])
195
+ };
196
+ }
197
+ try {
198
+ const parsed = JSON.parse(value);
199
+ if (!Array.isArray(parsed)) {
200
+ throw new _core.PothosValidationError(`Expected compound ID to contain an array, but got ${value}`);
201
+ }
202
+ if (parsed.length !== fields.length) {
203
+ throw new _core.PothosValidationError(`Expected compound ID to contain ${fields.length} elements, but got ${parsed.length}`);
204
+ }
205
+ const record = {};
206
+ fields.forEach((field, i)=>{
207
+ record[field.name] = parsed[i];
208
+ });
209
+ return record;
210
+ } catch (error) {
211
+ if (error instanceof _core.PothosValidationError) {
212
+ throw error;
213
+ }
214
+ throw new _core.PothosValidationError(`Invalid serialized ID: ${value}`);
215
+ }
216
+ };
217
+ }
156
218
  function getColumnParser(fields) {
157
219
  if (fields.length === 0) {
158
220
  throw new _core.PothosValidationError('Column parser must have at least one field');
@@ -167,6 +229,9 @@ function getColumnParser(fields) {
167
229
  if (!Array.isArray(parsed)) {
168
230
  throw new _core.PothosValidationError(`Expected compound cursor to contain an array, but got ${parsed}`);
169
231
  }
232
+ if (parsed.length !== fields.length) {
233
+ throw new _core.PothosValidationError(`Expected compound cursor to contain ${fields.length} elements, but got ${parsed.length}`);
234
+ }
170
235
  const record = {};
171
236
  fields.forEach((field, i)=>{
172
237
  record[field.name] = parsed[i];
@@ -322,7 +387,7 @@ function wrapConnectionResult(results, args, limit, cursor, resolveNode) {
322
387
  async function resolveDrizzleCursorConnection(table, info, typeName, config, options, resolve) {
323
388
  let query;
324
389
  let formatter;
325
- const results = await resolve((q)=>{
390
+ const results = await resolve((q = {})=>{
326
391
  const { cursorColumns, ...connectionQuery } = drizzleCursorConnectionQuery({
327
392
  ...options,
328
393
  orderBy: q.orderBy ? typeof q.orderBy === 'function' ? q.orderBy(table.columns) : q.orderBy : table.primaryKey
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/cursors.ts"],"names":["drizzleCursorConnectionQuery","formatCursorChunk","formatDrizzleCursor","getColumnParser","getColumnSerializer","getCursorFormatter","getCursorParser","parseDrizzleCursor","parseID","parseSerializedDrizzleColumn","resolveDrizzleCursorConnection","wrapConnectionResult","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","PothosValidationError","record","fields","length","JSON","stringify","map","col","name","serializer","encodeBase64","cursor","decoded","decodeBase64","startsWith","slice","type","rawValue","match","parseInt","parse","BigInt","id","dataType","parseFloat","Buffer","from","parsed","Array","isArray","forEach","field","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","offset","results","resolveNode","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","table","info","typeName","config","options","resolve","query","formatter","q","connectionQuery","primaryKey","queryFromInfo","context","select","paths"],"mappings":";;;;;;;;;;;IAuPgBA,4BAA4B;eAA5BA;;IA/NAC,iBAAiB;eAAjBA;;IAiBAC,mBAAmB;eAAnBA;;IAsGAC,eAAe;eAAfA;;IAlGAC,mBAAmB;eAAnBA;;IAcAC,kBAAkB;eAAlBA;;IAgHAC,eAAe;eAAfA;;IApGAC,kBAAkB;eAAlBA;;IA4CAC,OAAO;eAAPA;;IA3BAC,4BAA4B;eAA5BA;;IAkTMC,8BAA8B;eAA9BA;;IArDNC,oBAAoB;eAApBA;;;sBA/UT;4BAQA;0BAIuB;AAG9B,MAAMC,mBAAmB;AACzB,MAAMC,eAAe;AAEd,SAASZ,kBAAkBa,KAAc;IAC9C,IAAIA,iBAAiBC,MAAM;QACzB,OAAO,CAAC,EAAE,EAAEC,OAAOC,OAAOH,QAAQ,CAAC;IACrC;IAEA,OAAQ,OAAOA;QACb,KAAK;YACH,OAAO,CAAC,EAAE,EAAEA,MAAM,CAAC;QACrB,KAAK;YACH,OAAO,CAAC,EAAE,EAAEA,MAAM,CAAC;QACrB,KAAK;YACH,OAAO,CAAC,EAAE,EAAEA,MAAM,CAAC;QACrB;YACE,MAAM,IAAII,2BAAqB,CAAC,CAAC,wBAAwB,EAAE,OAAOJ,MAAM,CAAC;IAC7E;AACF;AAEO,SAASZ,oBAAoBiB,MAA+B,EAAEC,MAAgB;IACnF,OAAOf,mBAAmBe,QAAQD;AACpC;AAEO,SAASf,oBAAoBgB,MAAgB;IAClD,IAAIA,OAAOC,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIH,2BAAqB,CAAC;IAClC;IAEA,OAAO,CAACJ;QACN,IAAIM,OAAOC,MAAM,GAAG,GAAG;YACrB,OAAO,CAAC,EAAE,EAAEC,KAAKC,SAAS,CAACH,OAAOI,GAAG,CAAC,CAACC,MAAQX,KAAK,CAACW,IAAIC,IAAI,CAAC,GAAG,CAAC;QACpE;QAEA,OAAO,CAAC,EAAEzB,kBAAkBa,KAAK,CAACM,MAAM,CAAC,EAAE,CAACM,IAAI,CAAC,EAAE,CAAC;IACtD;AACF;AAEO,SAASrB,mBAAmBe,MAAgB;IACjD,IAAIA,OAAOC,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIH,2BAAqB,CAAC;IAClC;IAEA,MAAMS,aAAavB,oBAAoBgB;IAEvC,OAAO,CAACN;QACN,OAAOc,IAAAA,kBAAY,EAAC,CAAC,GAAG,EAAED,WAAWb,OAAO,CAAC;IAC/C;AACF;AAEO,SAASP,mBAAmBsB,MAAe;IAChD,IAAI,OAAOA,WAAW,UAAU;QAC9B,MAAM,IAAIX,2BAAqB,CAAC;IAClC;IAEA,IAAI;QACF,MAAMY,UAAUC,IAAAA,kBAAY,EAACF;QAC7B,IAAI,CAACC,QAAQE,UAAU,CAAC,QAAQ;YAC9B,MAAM,IAAId,2BAAqB,CAAC;QAClC;QAEA,OAAOT,6BAA6BqB,QAAQG,KAAK,CAAC;IACpD,EAAE,OAAM;QACN,MAAM,IAAIf,2BAAqB,CAAC,CAAC,gBAAgB,EAAEW,OAAO,CAAC;IAC7D;AACF;AAEO,SAASpB,6BAA6BK,KAAc;IACzD,IAAI,OAAOA,UAAU,UAAU;QAC7B,MAAM,IAAII,2BAAqB,CAAC;IAClC;IAEA,IAAI;QACF,MAAM,GAAGgB,MAAMC,SAAS,GAAGrB,MAAMsB,KAAK,CAAC;QAEvC,OAAQF;YACN,KAAK;gBACH,OAAOC;YACT,KAAK;gBACH,OAAOlB,OAAOoB,QAAQ,CAACF,UAAU;YACnC,KAAK;gBACH,OAAO,IAAIpB,KAAKE,OAAOoB,QAAQ,CAACF,UAAU;YAC5C,KAAK;gBACH,OAAOb,KAAKgB,KAAK,CAACH;YACpB,KAAK;gBACH,OAAOI,OAAOJ;YAChB;gBACE,MAAM,IAAIjB,2BAAqB,CAAC,CAAC,oBAAoB,EAAEgB,KAAK,CAAC;QACjE;IACF,EAAE,OAAM;QACN,MAAM,IAAIhB,2BAAqB,CAAC,CAAC,yBAAyB,EAAEJ,MAAM,CAAC;IACrE;AACF;AAEO,SAASN,QAAQgC,EAAU,EAAEC,QAAgB;IAClD,IAAI,CAACD,IAAI;QACP,OAAOA;IACT;IAEA,OAAQC;QACN,KAAK;YACH,OAAOD;QACT,KAAK;YACH,OAAOvB,OAAOoB,QAAQ,CAACG,IAAI;QAC7B,KAAK;YACH,OAAOD,OAAOC;QAChB,KAAK;YACH,OAAOA,OAAO;QAChB,KAAK;QACL,KAAK;YACH,OAAOvB,OAAOyB,UAAU,CAACF;QAC3B,KAAK;YACH,OAAO,IAAIzB,KAAKyB;QAClB,KAAK;YACH,OAAOlB,KAAKgB,KAAK,CAACE;QACpB,KAAK;YACH,OAAOG,OAAOC,IAAI,CAACJ,IAAI;QACzB;YACE,OAAOA;IACX;AACF;AAEO,SAASrC,gBAAgBiB,MAAyB;IACvD,IAAIA,OAAOC,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIH,2BAAqB,CAAC;IAClC;IAEA,OAAO,CAACJ;QACN,MAAM+B,SAASpC,6BAA6BK;QAE5C,IAAIM,OAAOC,MAAM,KAAK,GAAG;YACvB,OAAO;gBAAE,CAACD,MAAM,CAAC,EAAE,CAACM,IAAI,CAAC,EAAEmB;YAAO;QACpC;QAEA,IAAI,CAACC,MAAMC,OAAO,CAACF,SAAS;YAC1B,MAAM,IAAI3B,2BAAqB,CAC7B,CAAC,sDAAsD,EAAE2B,OAAO,CAAC;QAErE;QAEA,MAAM1B,SAAkC,CAAC;QAEzCC,OAAO4B,OAAO,CAAC,CAACC,OAAOC;YACrB/B,MAAM,CAAC8B,MAAMvB,IAAI,CAAC,GAAGmB,MAAM,CAACK,EAAE;QAChC;QAEA,OAAO/B;IACT;AACF;AAEO,SAASb,gBAAgBc,MAAyB;IACvD,IAAIA,OAAOC,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIH,2BAAqB,CAAC;IAClC;IAEA,OAAO,CAACW;QACN,MAAMgB,SAAStC,mBAAmBsB;QAElC,IAAIT,OAAOC,MAAM,KAAK,GAAG;YACvB,OAAO;gBAAE,CAACD,MAAM,CAAC,EAAE,CAACM,IAAI,CAAC,EAAEmB;YAAO;QACpC;QAEA,IAAI,CAACC,MAAMC,OAAO,CAACF,SAAS;YAC1B,MAAM,IAAI3B,2BAAqB,CAC7B,CAAC,sDAAsD,EAAE2B,OAAO,CAAC;QAErE;QAEA,MAAM1B,SAAkC,CAAC;QAEzCC,OAAO4B,OAAO,CAAC,CAACC,OAAOC;YACrB/B,MAAM,CAAC8B,MAAMvB,IAAI,CAAC,GAAGmB,MAAM,CAACK,EAAE;QAChC;QAEA,OAAO/B;IACT;AACF;AAWA,MAAMgC,aAAaC,IAAAA,+BAAmB;AAEtC,SAASC,aAAaC,OAA0B,EAAEC,MAAe;IAC/D,IAAI,CAACT,MAAMC,OAAO,CAACO,UAAU;QAC3B,OAAOD,aAAa;YAACC;SAAQ,EAAEC;IACjC;IAEA,MAAMC,MAAMD,SAAS,SAAS;IAC9B,MAAME,OAAOF,SAAS,QAAQ;IAE9B,MAAMG,aAA8DJ,QAAQ9B,GAAG,CAAC,CAACyB;QAC/E,IAAI,OAAOA,UAAU,YAAY,SAASA,OAAO;YAC/C,OAAO;gBACLU,WAAWH;gBACXI,QAAQX,MAAMO,GAAG;YACnB;QACF;QACA,IAAI,OAAOP,UAAU,YAAY,UAAUA,OAAO;YAChD,OAAO;gBACLU,WAAWF;gBACXG,QAAQX,MAAMQ,IAAI;YACpB;QACF;QAEA,OAAO;YACLE,WAAWH;YACXI,QAAQX;QACV;IACF;IAEA,OAAO;QACLS;QACAG,SAASH,WAAWlC,GAAG,CAAC,CAACyB,QAAUA,MAAMW,MAAM;QAC/CE,KAAKJ,WAAWlC,GAAG,CAAC,CAACyB,QAAUE,UAAU,CAACF,MAAMU,SAAS,CAAC,CAACV,MAAMW,MAAM;IACzE;AACF;AAEA,MAAMG,MAAMC,IAAAA,wBAAY;AAEjB,SAAShE,6BAA6B,EAC3CiE,IAAI,EACJC,GAAG,EACHC,UAAUvD,gBAAgB,EAC1BwD,cAAcvD,YAAY,EAC1ByC,OAAO,EACPe,KAAK,EAC+B;IACpC,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGR;IACvC,IAAIO,SAAS,QAAQA,QAAQ,GAAG;QAC9B,MAAM,IAAItD,2BAAqB,CAAC;IAClC;IAEA,IAAIuD,QAAQ,QAAQA,OAAO,GAAG;QAC5B,MAAM,IAAIvD,2BAAqB,CAAC;IAClC;IAEA,IAAIoD,UAAUC,OAAO;QACnB,MAAM,IAAIrD,2BAAqB,CAC7B;IAEJ;IAEA,IAAIoD,UAAU,QAAQE,SAAS,MAAM;QACnC,MAAM,IAAItD,2BAAqB,CAC7B;IAEJ;IAEA,IAAIqD,SAAS,QAAQE,QAAQ,MAAM;QACjC,MAAM,IAAIvD,2BAAqB,CAC7B;IAEJ;IAEA,MAAMW,SAASyC,mBAAAA,oBAAAA,SAAUC;IAEzB,MAAMG,uBAAuB,OAAOP,YAAY,aAAaA,QAAQF,MAAMC,OAAOC;IAClF,MAAMQ,2BACJ,OAAOP,gBAAgB,aAAaA,YAAYH,MAAMC,OAAOE;QAE1CI;IAArB,IAAII,QAAQC,KAAKC,GAAG,CAACN,CAAAA,OAAAA,kBAAAA,mBAAAA,QAASC,kBAATD,kBAAAA,OAAiBG,0BAA0BD,wBAAwB;IAExF,IAAIJ,mBAAAA,oBAAAA,SAAUG,MAAM;QAClBG,QAAQ,CAACA;IACX;IAEA,MAAMG,gBAAgB1B,aAAaC,SAASsB,QAAQ;IAEpD,MAAMf,UAAmC,CAAC;IAE1C,KAAK,MAAMD,UAAUmB,cAAclB,OAAO,CAAE;QAC1CA,OAAO,CAACD,OAAOlC,IAAI,CAAC,GAAG;IACzB;IAEA,MAAMsD,eAAoCX,QAAQ;QAACA;KAAM,GAAG,EAAE;IAE9D,IAAIxC,QAAQ;QACV,MAAMoD,eAAe3E,gBAAgByE,cAAclB,OAAO;QAC1D,MAAMqB,eAAeD,aAAapD;QAElCmD,aAAaG,IAAI,CACfpB,IAAIqB,EAAE,IACDL,cAAcrB,UAAU,CAAClC,GAAG,CAAC,CAAC,EAAEmC,SAAS,EAAEC,MAAM,EAAE,EAAEyB;YACtD,MAAMC,UACJ3B,cAAc,QACVI,IAAIwB,EAAE,CAAC3B,QAAQsB,YAAY,CAACtB,OAAOlC,IAAI,CAAC,IACxCqC,IAAIyB,EAAE,CAAC5B,QAAQsB,YAAY,CAACtB,OAAOlC,IAAI,CAAC;YAE9C,IAAI2D,UAAU,GAAG;gBACf,OAAOC;YACT;YAEA,OAAOvB,IAAI0B,GAAG,IACTV,cAAcrB,UAAU,CACxBzB,KAAK,CAAC,GAAGoD,OACT7D,GAAG,CAAC,CAAC,EAAEoC,QAAQ8B,CAAC,EAAE,GAAK3B,IAAI4B,EAAE,CAACD,GAAGR,YAAY,CAACQ,EAAEhE,IAAI,CAAC,IACxD4D;QAEJ;IAGN;IAEA,OAAO;QACLM,eAAeb,cAAclB,OAAO;QACpCA;QACAP,SAASyB,cAAcjB,GAAG;QAC1Bc;QACAiB,QAAQhE,SAAS,IAAI;QACrBwC,OAAON,IAAI0B,GAAG,IAAIT;IACpB;AACF;AAEO,SAASrE,qBACdmF,OAAqB,EACrB7B,IAAkD,EAClDW,KAAa,EACb/C,MAA2B,EAC3BkE,WAAwD;QA0CtBC,SACFA;IAzChC,MAAMC,iBAAiBH,QAAQzE,MAAM,KAAKwD,KAAKqB,GAAG,CAACtB;IACnD,MAAMuB,cAAclC,KAAKK,MAAM,GAAG,OAAOL,KAAKQ,IAAI,GAAG,QAAQwB;QACjBhC;IAA5C,MAAMmC,kBAAkBnC,KAAKM,KAAK,GAAG,OAAON,CAAAA,CAAAA,eAAAA,KAAKK,MAAM,cAAXL,0BAAAA,eAAeA,KAAKQ,IAAI,AAAD,IAAIwB,iBAAiB;IACxF,MAAMI,QAAQJ,iBACVH,QAAQ7D,KAAK,CAAC2C,QAAQ,IAAI,IAAI,GAAGA,QAAQ,IAAIkB,QAAQzE,MAAM,GAAG,CAAC,KAC/DyE;IAEJ,MAAMQ,aAAa;QACjBrC;QACA+B,OAAO,EAAE;QACTO,UAAU;YACRC,aAAa;YACbC,WAAW;YACXL;YACAD;QACF;IACF;IAEA,MAAMH,QAAQK,MAAM7E,GAAG,CAAC,CAACV,QACvBA,SAAS,OACL,OACAiF,cACE;YACEO;YACA,GAAGxF,KAAK;YACRe,QAAQA,OAAOf;YACf4F,MAAMX,YAAYjF;QACpB,IACA;YACEwF;YACAzE,QAAQA,OAAOf;YACf4F,MAAM5F;QACR;IAGR,IAAImD,KAAKQ,IAAI,IAAI,CAACR,KAAKO,KAAK,EAAE;QAC5BwB,MAAMW,OAAO;IACf;IAEAL,WAAWN,KAAK,GAAGA;QACeA;IAAlCM,WAAWC,QAAQ,CAACC,WAAW,GAAGR,CAAAA,kBAAAA,UAAAA,KAAK,CAAC,EAAE,cAARA,8BAAAA,QAAUnE,MAAM,cAAhBmE,4BAAAA,iBAAoB;QACtBA;IAAhCM,WAAWC,QAAQ,CAACE,SAAS,GAAGT,CAAAA,mBAAAA,WAAAA,KAAK,CAACA,MAAM3E,MAAM,GAAG,EAAE,cAAvB2E,+BAAAA,SAAyBnE,MAAM,cAA/BmE,6BAAAA,kBAAmC;IAEnE,OAAOM;AACT;AAEO,eAAe5F,+BACpBkG,KAA4B,EAC5BC,IAAwB,EACxBC,QAAgB,EAChBC,MAAiC,EACjCC,OAA6D,EAC7DC,OAE+B;IAE/B,IAAIC;IACJ,IAAIC;IACJ,MAAMrB,UAAU,MAAMmB,QAAQ,CAACG;QAC7B,MAAM,EAAExB,aAAa,EAAE,GAAGyB,iBAAiB,GAAGrH,6BAA6B;YACzE,GAAGgH,OAAO;YACV1D,SAAS8D,EAAE9D,OAAO,GACd,OAAO8D,EAAE9D,OAAO,KAAK,aACnB8D,EAAE9D,OAAO,CAACsD,MAAM/C,OAAO,IACvBuD,EAAE9D,OAAO,GACXsD,MAAMU,UAAU;QACtB;QACAH,YAAY9G,mBAAmBuF;QAE/B,MAAMvB,QAAQ,OAAO+C,EAAE/C,KAAK,KAAK,aAAa+C,EAAE/C,KAAK,CAACuC,MAAM/C,OAAO,EAAEG,IAAAA,wBAAY,OAAMoD,EAAE/C,KAAK;QAE9F6C,QAAQK,IAAAA,uBAAa,EAAC;YACpBC,SAASR,QAAQ9C,GAAG;YACpB2C;YACAY,QAAQ;gBACN,GAAGJ,eAAe;gBAClBxD,SAAS;oBACP,GAAGuD,EAAEvD,OAAO;oBACZ,GAAGwD,gBAAgBxD,OAAO;gBAC5B;gBACAQ,OAAON,IAAI0B,GAAG,CAAC4B,gBAAgBhD,KAAK,EAAEA;YACxC;YACAqD,OAAO;gBAAC;oBAAC;iBAAQ;gBAAE;oBAAC;oBAAS;iBAAO;aAAC;YACrCZ;YACAC;QAEF;QAEA,OAAOG;IACT;IAEA,IAAI,CAACpB,SAAS;QACZ,OAAOA;IACT;IAEA,OAAOnF,qBAAqBmF,SAASkB,QAAQ/C,IAAI,EAAEiD,MAAOtC,KAAK,EAAYuC;AAC7E"}
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","length","JSON","stringify","map","col","name","serializer","encodeBase64","cursor","decoded","decodeBase64","startsWith","slice","type","rawValue","match","parseInt","parse","BigInt","id","field","dataType","error","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","offset","results","resolveNode","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","table","info","typeName","config","options","resolve","query","formatter","q","connectionQuery","primaryKey","queryFromInfo","context","select","paths"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pothos/plugin-drizzle",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "A Pothos plugin for drizzle",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./dts/index.d.ts",
@@ -38,18 +38,18 @@
38
38
  "graphql": ">=16.6.0"
39
39
  },
40
40
  "devDependencies": {
41
- "@libsql/client": "^0.8.0",
42
- "drizzle-graphql": "^0.8.4",
43
- "drizzle-kit": "^0.23.1",
44
- "drizzle-orm": "^0.32.1",
41
+ "@libsql/client": "^0.10.0",
42
+ "drizzle-graphql": "^0.8.5",
43
+ "drizzle-kit": "^0.24.2",
44
+ "drizzle-orm": "^0.33.0",
45
45
  "graphql": "^16.8.1",
46
46
  "graphql-scalars": "^1.23.0",
47
47
  "graphql-tag": "^2.12.6",
48
48
  "postgres": "^3.4.4",
49
- "@pothos/core": "4.1.0",
49
+ "@pothos/core": "4.2.0",
50
50
  "@pothos/plugin-add-graphql": "4.1.0",
51
- "@pothos/plugin-relay": "4.1.0",
52
51
  "@pothos/plugin-scope-auth": "4.1.0",
52
+ "@pothos/plugin-relay": "4.2.1",
53
53
  "@pothos/plugin-with-input": "4.1.0",
54
54
  "@pothos/test-utils": "2.1.0"
55
55
  },
@@ -91,9 +91,9 @@ export class DrizzleObjectFieldBuilder<
91
91
  EdgeInterfaces extends InterfaceParam<Types>[] = [],
92
92
  >(
93
93
  field: Field,
94
- options: RelatedConnectionOptions<Types, Shape, TableConfig, Field, Nullable, Args>,
95
94
  ...args: NormalizeArgs<
96
95
  [
96
+ options: RelatedConnectionOptions<Types, Shape, TableConfig, Field, Nullable, Args>,
97
97
  connectionOptions:
98
98
  | ObjectRef<
99
99
  Types,
@@ -182,34 +182,31 @@ export class DrizzleObjectFieldBuilder<
182
182
  type?: ObjectRef<Types, unknown, unknown>;
183
183
  maxSize?: number | ((args: {}, ctx: {}) => number);
184
184
  defaultSize?: number | ((args: {}, ctx: {}) => number);
185
- extensions: {};
185
+ extensions?: {};
186
186
  description?: string;
187
- query: ((args: {}, ctx: {}) => {}) | {};
188
- resolve: (
187
+ query?: ((args: {}, ctx: {}) => {}) | {};
188
+ resolve?: (
189
189
  query: {},
190
190
  parent: unknown,
191
191
  args: {},
192
192
  ctx: {},
193
193
  info: {},
194
194
  ) => MaybePromise<readonly {}[]>;
195
- },
195
+ } = {},
196
196
  connectionOptions = {},
197
197
  edgeOptions = {},
198
198
  ) {
199
- const relationField = getSchemaConfig(this.builder).schema?.[this.table].relations[
200
- name as string
201
- ];
202
- const relatedModel = getSchemaConfig(this.builder).schema?.[
203
- relationField?.referencedTableName!
204
- ]!;
205
-
206
- if (!relationField) {
199
+ const schemaConfig = getSchemaConfig(this.builder);
200
+ const relationField = schemaConfig.schema?.[this.table].relations[name as string];
201
+ const relatedModel = schemaConfig.dbToSchema[relationField?.referencedTableName];
202
+
203
+ if (!relatedModel) {
207
204
  throw new PothosSchemaError(
208
205
  `Could not find relation ${name as string} on table ${this.table}`,
209
206
  );
210
207
  }
211
208
 
212
- const ref = options.type ?? getRefFromModel(relationField.referencedTableName, this.builder);
209
+ const ref = options.type ?? getRefFromModel(relatedModel.tsName, this.builder);
213
210
  let typeName: string | undefined;
214
211
 
215
212
  const getQuery = (args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => {
@@ -384,17 +381,17 @@ export class DrizzleObjectFieldBuilder<
384
381
  >
385
382
  ): FieldRef<Types, TypesForRelation<Types, TableConfig['relations'][Field]>, 'Object'> {
386
383
  const [options = {} as never] = allArgs;
387
- const relationField = getSchemaConfig(this.builder).schema?.[this.table].relations[
388
- name as string
389
- ];
384
+ const schemaConfig = getSchemaConfig(this.builder);
385
+ const relationField = schemaConfig.schema?.[this.table].relations[name as string];
386
+ const relatedModel = schemaConfig.dbToSchema[relationField?.referencedTableName];
390
387
 
391
- if (!relationField) {
388
+ if (!relatedModel) {
392
389
  throw new PothosSchemaError(
393
390
  `Could not find relation ${name as string} on table ${this.table}`,
394
391
  );
395
392
  }
396
393
 
397
- const ref = options.type ?? getRefFromModel(relationField.referencedTableName, this.builder);
394
+ const ref = options.type ?? getRefFromModel(relatedModel.tsName, this.builder);
398
395
 
399
396
  const { query = {}, extensions, ...rest } = options;
400
397
 
@@ -14,6 +14,7 @@ import type {
14
14
  } from '@pothos/core';
15
15
  import type {
16
16
  BuildQueryResult,
17
+ Column,
17
18
  DBQueryConfig,
18
19
  ExtractTablesWithRelations,
19
20
  SQL,
@@ -116,6 +117,7 @@ declare global {
116
117
  Types['DrizzleRelationSchema'][Table]
117
118
  >
118
119
  | true,
120
+ IDColumn extends Column,
119
121
  Shape = BuildQueryResult<
120
122
  Types['DrizzleRelationSchema'],
121
123
  Types['DrizzleRelationSchema'][Table],
@@ -123,8 +125,15 @@ declare global {
123
125
  >,
124
126
  >(
125
127
  table: Table,
126
- options: DrizzleNodeOptions<Types, Table, Shape, Selection, Interfaces>,
127
- ) => DrizzleNodeRef<Types, Table, Shape>
128
+ options: DrizzleNodeOptions<Types, Table, Shape, Selection, Interfaces, IDColumn>,
129
+ ) => DrizzleNodeRef<
130
+ Types,
131
+ Table,
132
+ Shape,
133
+ {
134
+ [K in IDColumn['_']['name']]: Extract<IDColumn, { _: { name: K } }>['_']['data'];
135
+ }
136
+ >
128
137
  : '@pothos/plugin-relay is required to use this method';
129
138
 
130
139
  drizzleObjectField: <
package/src/node-ref.ts CHANGED
@@ -1,8 +1,25 @@
1
1
  import type { SchemaTypes } from '@pothos/core';
2
2
  import { DrizzleObjectRef } from './object-ref';
3
3
 
4
+ export const relayIDShapeKey = Symbol.for('Pothos.relayIDShapeKey');
5
+
4
6
  export class DrizzleNodeRef<
5
7
  Types extends SchemaTypes,
6
8
  Table extends keyof Types['DrizzleRelationSchema'] = keyof Types['DrizzleRelationSchema'],
7
9
  T = {},
8
- > extends DrizzleObjectRef<Types, Table, T> {}
10
+ IDShape = string,
11
+ > extends DrizzleObjectRef<Types, Table, T> {
12
+ [relayIDShapeKey]!: IDShape;
13
+ parseId: ((id: string, ctx: object) => IDShape) | undefined;
14
+
15
+ constructor(
16
+ name: string,
17
+ tableName: string,
18
+ options: {
19
+ parseId?: (id: string, ctx: object) => IDShape;
20
+ },
21
+ ) {
22
+ super(name, tableName);
23
+ this.parseId = options.parseId;
24
+ }
25
+ }
@@ -9,6 +9,7 @@ import SchemaBuilder, {
9
9
  type FieldRef,
10
10
  type InputObjectRef,
11
11
  } from '@pothos/core';
12
+ import type { Column } from 'drizzle-orm';
12
13
  import type { GraphQLInputObjectType, GraphQLResolveInfo } from 'graphql';
13
14
  import { DrizzleObjectFieldBuilder } from './drizzle-field-builder';
14
15
  import { DrizzleInterfaceRef } from './interface-ref';
@@ -17,7 +18,7 @@ import { DrizzleNodeRef } from './node-ref';
17
18
  import { DrizzleObjectRef } from './object-ref';
18
19
  import type { DrizzleGraphQLInputExtensions, DrizzleNodeOptions } from './types';
19
20
  import { getSchemaConfig } from './utils/config';
20
- import { getColumnParser, getColumnSerializer } from './utils/cursors';
21
+ import { getIDParser, getIDSerializer } from './utils/cursors';
21
22
  import { getRefFromModel } from './utils/refs';
22
23
 
23
24
  const schemaBuilderProto = SchemaBuilder.prototype as PothosSchemaTypes.SchemaBuilder<SchemaTypes>;
@@ -87,16 +88,25 @@ schemaBuilderProto.drizzleNode = function drizzleNode(
87
88
  name,
88
89
  variant,
89
90
  ...options
90
- }: DrizzleNodeOptions<SchemaTypes, keyof SchemaTypes['DrizzleRelationSchema'], {}, {}, []>,
91
+ }: DrizzleNodeOptions<
92
+ SchemaTypes,
93
+ keyof SchemaTypes['DrizzleRelationSchema'],
94
+ {},
95
+ {},
96
+ [],
97
+ Column
98
+ >,
91
99
  ) {
92
100
  const tableConfig = getSchemaConfig(this).schema![table];
93
101
  const idColumn = typeof column === 'function' ? column(tableConfig.columns) : column;
94
102
  const idColumns = Array.isArray(idColumn) ? idColumn : [idColumn];
95
103
  const interfaceRef = this.nodeInterfaceRef?.();
96
- const resolve = getColumnSerializer(idColumns);
97
- const idParser = getColumnParser(idColumns);
104
+ const resolve = getIDSerializer(idColumns);
105
+ const idParser = getIDParser(idColumns);
98
106
  const typeName = variant ?? name ?? table;
99
- const nodeRef = new DrizzleNodeRef(typeName, table);
107
+ const nodeRef = new DrizzleNodeRef(typeName, table, {
108
+ parseId: idParser,
109
+ });
100
110
  const modelLoader = ModelLoader.forModel(table, this, idColumns);
101
111
 
102
112
  if (!interfaceRef) {
package/src/types.ts CHANGED
@@ -119,6 +119,7 @@ export type DrizzleNodeOptions<
119
119
  Shape,
120
120
  Selection,
121
121
  Interfaces extends InterfaceParam<Types>[],
122
+ IDColumn extends Column,
122
123
  > = NameOrVariant &
123
124
  Omit<
124
125
  | PothosSchemaTypes.ObjectTypeOptions<Types, Shape>
@@ -139,9 +140,9 @@ export type DrizzleNodeOptions<
139
140
  'args' | 'nullable' | 'type' | InferredFieldOptionKeys
140
141
  > & {
141
142
  column:
142
- | Column
143
- | Column[]
144
- | ((columns: Types['DrizzleRelationSchema'][Table]['columns']) => Column | Column[]);
143
+ | IDColumn
144
+ | IDColumn[]
145
+ | ((columns: Types['DrizzleRelationSchema'][Table]['columns']) => IDColumn | IDColumn[]);
145
146
  };
146
147
  name: string;
147
148
  select?: Selection;
@@ -588,7 +589,7 @@ export type RelatedConnectionOptions<
588
589
  Nullable
589
590
  >
590
591
  >;
591
- query: QueryForRelatedConnection<Types, NodeTable, ConnectionArgs>;
592
+ query?: QueryForRelatedConnection<Types, NodeTable, ConnectionArgs>;
592
593
  // biome-ignore lint/suspicious/noExplicitAny: <explanation>
593
594
  type?: DrizzleRef<any, Table['relations'][Field]['referencedTable']['_']['name']>;
594
595