@pothos/plugin-prisma 3.43.0 → 3.45.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 (61) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +25 -4
  3. package/dts/connection-helpers.d.ts +1 -1
  4. package/dts/connection-helpers.d.ts.map +1 -1
  5. package/dts/global-types.d.ts +4 -4
  6. package/dts/global-types.d.ts.map +1 -1
  7. package/dts/index.d.ts +2 -1
  8. package/dts/index.d.ts.map +1 -1
  9. package/dts/prisma-field-builder.d.ts +7 -7
  10. package/dts/prisma-field-builder.d.ts.map +1 -1
  11. package/dts/types.d.ts +10 -7
  12. package/dts/types.d.ts.map +1 -1
  13. package/dts/util/datamodel.d.ts +2 -2
  14. package/dts/util/datamodel.d.ts.map +1 -1
  15. package/dts/util/get-client.d.ts +4 -0
  16. package/dts/util/get-client.d.ts.map +1 -1
  17. package/esm/connection-helpers.d.ts +1 -1
  18. package/esm/connection-helpers.d.ts.map +1 -1
  19. package/esm/generator.js +18 -7
  20. package/esm/generator.js.map +1 -1
  21. package/esm/global-types.d.ts +4 -4
  22. package/esm/global-types.d.ts.map +1 -1
  23. package/esm/global-types.js.map +1 -1
  24. package/esm/index.d.ts +2 -1
  25. package/esm/index.d.ts.map +1 -1
  26. package/esm/index.js +2 -1
  27. package/esm/index.js.map +1 -1
  28. package/esm/model-loader.js +19 -1
  29. package/esm/model-loader.js.map +1 -1
  30. package/esm/object-ref.js +18 -0
  31. package/esm/object-ref.js.map +1 -1
  32. package/esm/prisma-field-builder.d.ts +7 -7
  33. package/esm/prisma-field-builder.d.ts.map +1 -1
  34. package/esm/prisma-field-builder.js +35 -19
  35. package/esm/prisma-field-builder.js.map +1 -1
  36. package/esm/types.d.ts +10 -7
  37. package/esm/types.d.ts.map +1 -1
  38. package/esm/util/datamodel.d.ts +2 -2
  39. package/esm/util/datamodel.d.ts.map +1 -1
  40. package/esm/util/get-client.d.ts +4 -0
  41. package/esm/util/get-client.d.ts.map +1 -1
  42. package/esm/util/get-client.js.map +1 -1
  43. package/lib/generator.js +18 -7
  44. package/lib/generator.js.map +1 -1
  45. package/lib/index.js +3 -0
  46. package/lib/index.js.map +1 -1
  47. package/lib/model-loader.js +18 -1
  48. package/lib/model-loader.js.map +1 -1
  49. package/lib/object-ref.js +17 -0
  50. package/lib/object-ref.js.map +1 -1
  51. package/lib/prisma-field-builder.js +33 -18
  52. package/lib/prisma-field-builder.js.map +1 -1
  53. package/lib/util/get-client.js.map +1 -1
  54. package/package.json +8 -8
  55. package/src/connection-helpers.ts +1 -1
  56. package/src/generator.ts +42 -13
  57. package/src/global-types.ts +7 -2
  58. package/src/index.ts +2 -1
  59. package/src/prisma-field-builder.ts +2 -1
  60. package/src/types.ts +31 -9
  61. package/src/util/get-client.ts +4 -0
@@ -11,6 +11,19 @@ const _modelLoader = require("./model-loader");
11
11
  const _cursors = require("./util/cursors");
12
12
  const _datamodel = require("./util/datamodel");
13
13
  const _description = require("./util/description");
14
+ function _defineProperty(obj, key, value) {
15
+ if (key in obj) {
16
+ Object.defineProperty(obj, key, {
17
+ value: value,
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true
21
+ });
22
+ } else {
23
+ obj[key] = value;
24
+ }
25
+ return obj;
26
+ }
14
27
  // Workaround for FieldKind not being extended on Builder classes
15
28
  const RootBuilder = _core.RootFieldBuilder;
16
29
  class PrismaObjectFieldBuilder extends RootBuilder {
@@ -126,28 +139,30 @@ class PrismaObjectFieldBuilder extends RootBuilder {
126
139
  }
127
140
  constructor(name, builder, model, fieldMap){
128
141
  super(name, builder, 'PrismaObject', 'Object');
129
- this.exposeBoolean = this.createExpose('Boolean');
130
- this.exposeFloat = this.createExpose('Float');
131
- this.exposeInt = this.createExpose('Int');
132
- this.exposeID = this.createExpose('ID');
133
- this.exposeString = this.createExpose('String');
134
- this.exposeBooleanList = this.createExpose([
142
+ _defineProperty(this, "model", void 0);
143
+ _defineProperty(this, "prismaFieldMap", void 0);
144
+ _defineProperty(this, "exposeBoolean", this.createExpose('Boolean'));
145
+ _defineProperty(this, "exposeFloat", this.createExpose('Float'));
146
+ _defineProperty(this, "exposeInt", this.createExpose('Int'));
147
+ _defineProperty(this, "exposeID", this.createExpose('ID'));
148
+ _defineProperty(this, "exposeString", this.createExpose('String'));
149
+ _defineProperty(this, "exposeBooleanList", this.createExpose([
135
150
  'Boolean'
136
- ]);
137
- this.exposeFloatList = this.createExpose([
151
+ ]));
152
+ _defineProperty(this, "exposeFloatList", this.createExpose([
138
153
  'Float'
139
- ]);
140
- this.exposeIntList = this.createExpose([
154
+ ]));
155
+ _defineProperty(this, "exposeIntList", this.createExpose([
141
156
  'Int'
142
- ]);
143
- this.exposeIDList = this.createExpose([
157
+ ]));
158
+ _defineProperty(this, "exposeIDList", this.createExpose([
144
159
  'ID'
145
- ]);
146
- this.exposeStringList = this.createExpose([
160
+ ]));
161
+ _defineProperty(this, "exposeStringList", this.createExpose([
147
162
  'String'
148
- ]);
149
- this.withAuth = withAuth;
150
- this.relatedConnection = function relatedConnection(name, { maxSize , defaultSize , cursor , query , resolve , extensions , totalCount , description , ...options }, connectionOptions = {}, edgeOptions = {}) {
163
+ ]));
164
+ _defineProperty(this, "withAuth", withAuth);
165
+ _defineProperty(this, "relatedConnection", function relatedConnection(name, { maxSize , defaultSize , cursor , query , resolve , extensions , totalCount , description , ...options }, connectionOptions = {}, edgeOptions = {}) {
151
166
  const relationField = (0, _datamodel.getRelation)(this.model, this.builder, name);
152
167
  var _options_type;
153
168
  const ref = (_options_type = options.type) !== null && _options_type !== void 0 ? _options_type : (0, _datamodel.getRefFromModel)(relationField.type, this.builder);
@@ -239,7 +254,7 @@ class PrismaObjectFieldBuilder extends RootBuilder {
239
254
  } : connectionOptions.fields
240
255
  }, edgeOptions);
241
256
  return fieldRef;
242
- };
257
+ });
243
258
  this.model = model;
244
259
  this.prismaFieldMap = fieldMap;
245
260
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/prisma-field-builder.ts"],"names":["PrismaObjectFieldBuilder","RootBuilder","RootFieldBuilder","relation","name","allArgs","description","options","relationField","getRelation","model","builder","ref","type","getRefFromModel","query","resolve","extensions","rest","relationSelect","args","context","nestedQuery","select","field","isList","getFieldDescription","pothosPrismaSelect","pothosPrismaLoaded","value","undefined","pothosPrismaFallback","q","parent","info","relationCount","where","countSelect","_count","nullable","variant","isNull","selfSelect","parentIsNull","isThenable","then","resolved","expose","typeConfig","configStore","getTypeConfig","typename","usingSelect","exposeField","pothosPrismaVariant","createExpose","constructor","fieldMap","exposeBoolean","exposeFloat","exposeInt","exposeID","exposeString","exposeBooleanList","exposeFloatList","exposeIntList","exposeIDList","exposeStringList","withAuth","relatedConnection","maxSize","defaultSize","cursor","totalCount","connectionOptions","edgeOptions","typeName","formatCursor","getCursorFormatter","parseCursor","getCursorParser","getQuery","ctx","prismaCursorConnectionQuery","cursorSelection","ModelLoader","getCursorSelection","getSelection","nested","getType","path","hasTotalCount","prisma","filterConnectionTotalCount","fieldRef","connection","Promise","result","wrapConnectionResult","take","connectionQuery","ObjectRef","fields","t","int","prismaFieldMap","addScopes","scopes","originalCreateField","createField","call","authScopes"],"mappings":"AAAA,oCAAoC,GACpC,uCAAuC;;;;+BAuE1BA;;aAAAA;;sBAtDN;6BACqB;yBAgBrB;2BACsC;6BACT;AAGpC,iEAAiE;AACjE,MAAMC,cAQFC,sBAAgB;AAuBb,MAAMF,iCAKHC;IAqPRE,SAMEC,IAAW,EACX,GAAGC,OAaF,EACuD;QACxD,MAAM,CAAC,EAAEC,YAAW,EAAE,GAAGC,SAAS,GAAG,CAAC,CAAU,CAAC,GAAGF;QACpD,MAAMG,gBAAgBC,IAAAA,sBAAW,EAAC,IAAI,CAACC,KAAK,EAAE,IAAI,CAACC,OAAO,EAAEP;YAChDG;QAAZ,MAAMK,MAAML,CAAAA,gBAAAA,QAAQM,IAAI,cAAZN,2BAAAA,gBAAgBO,IAAAA,0BAAe,EAACN,cAAcK,IAAI,EAAE,IAAI,CAACF,OAAO,CAAC;QAE7E,MAAM,EAAEI,OAAQ,CAAC,EAAC,EAAEC,QAAO,EAAEC,WAAU,EAAE,GAAGC,MAAM,GAAGX;QAErD,MAAMY,iBAAiB,CACrBC,MACAC,SACAC,cACI,CAAA;gBAAEC,QAAQ;oBAAE,CAACnB,KAAK,EAAEkB,YAAYP;gBAAO;YAAE,CAAA;QAE/C,OAAO,IAAI,CAACS,KAAK,CAAC;YAChB,GAAIN,IAAI;YACRL,MAAML,cAAciB,MAAM,GAAG;gBAACb;aAAI,GAAGA,GAAG;YACxCN,aAAaoB,IAAAA,gCAAmB,EAAC,IAAI,CAAChB,KAAK,EAAE,IAAI,CAACC,OAAO,EAAEP,MAAME;YACjEW,YAAY;gBACV,GAAGA,UAAU;gBACbU,oBAAoBR;gBACpBS,oBAAoB,CAACC,QAAmCA,KAAK,CAACzB,KAAK,KAAK0B;gBACxEC,sBACEf,WACC,CAAA,CAACgB,GAAOC,QAAeb,MAAUC,SAAaa,OAC7ClB,QACE;wBAAE,GAAGgB,CAAC;wBAAE,GAAI,OAAOjB,UAAU,aAAaA,MAAMK,MAAMC,WAAWN,KAAK;oBAAE,GACxEkB,QACAb,MACAC,SACAa,KACF;YACN;YACAlB,SAAS,CAACiB,SAAW,AAACA,MAAgC,CAAC7B,KAAK;QAC9D;IACF;IAEA+B,cACE/B,IAAW,EACX,GAAGC,OASF,EAC2B;QAC5B,MAAM,CAAC,EAAE+B,MAAK,EAAE,GAAG7B,SAAS,GAAG,CAAC,CAAU,CAAC,GAAGF;QAE9C,MAAM,EAAEW,QAAO,EAAE,GAAGE,MAAM,GAAGX;QAE7B,MAAM8B,cACJ,OAAOD,UAAU,aACb,CAAChB,MAAUC,UAAiB,CAAA;gBAC1BiB,QAAQ;oBACNf,QAAQ;wBACN,CAACnB,KAAK,EAAE;4BAAEgC,OAAO,AAACA,MAA8ChB,MAAMC;wBAAS;oBACjF;gBACF;YACF,CAAA,IACA;YACEiB,QAAQ;gBACNf,QAAQ;oBAAE,CAACnB,KAAK,EAAEgC,QAAQ;wBAAEA;oBAAM,IAAI,IAAI;gBAAC;YAC7C;QACF,CAAC;QAEP,OAAO,IAAI,CAACZ,KAAK,CAAC;YAChB,GAAIN,IAAI;YACRL,MAAM;YACN0B,UAAU,KAAK;YACfhB,QAAQc;YACRrB,SAAS,CAACiB,QAAQb,MAAMC,SAASa;oBAC/B;gBAAA,OAAA,CAAA,iBAAA,AAACD,OAAwDK,MAAM,cAA/D,4BAAA,KAAA,IAAA,cAAiE,CAAClC,KAAK;;QAC3E;IACF;IAEAoC,QAKEA,OAAgB,EAChB,GAAGnC,OAWF,EACmC;QACpC,MAAM,CAAC,EAAEoC,OAAM,EAAEF,SAAQ,EAAE,GAAGhC,SAAS,GAAG,CAAC,CAAU,CAAC,GAAGF;QACzD,MAAMO,MACJ,OAAO4B,YAAY,WAAW1B,IAAAA,0BAAe,EAAC0B,SAAS,IAAI,CAAC7B,OAAO,IAAI6B,OAAO;QAEhF,MAAME,aAAa,CAACtB,MAAcC,SAAiBC,cACjDA,YAAY,CAAC;QAEf,OAAO,IAAI,CAACE,KAAK,CAAC;YAChB,GAAIjB,OAAO;YACXM,MAAMD;YACNK,YAAY;gBACV,GAAGV,oBAAAA,qBAAAA,KAAAA,IAAAA,QAASU,UAAU;gBACtBU,oBAAoBe;YACtB;YACAH,UAAUA,qBAAAA,sBAAAA,WAAY,CAAC,CAACE,MAAM;YAC9BzB,SAASyB,SACL,CAACR,QAAQb,MAAMC,SAASa,OAAS;gBAC/B,MAAMS,eAAeF,OAAOR,QAAQb,MAAeC,SAASa;gBAC5D,IAAIS,cAAc;oBAChB,IAAIC,IAAAA,gBAAU,EAACD,eAAe;wBAC5B,OAAOA,aAAaE,IAAI,CAAC,CAACC,WAAcA,WAAW,IAAI,GAAGb,MAAM;oBAClE,CAAC;oBACD,OAAO,IAAI;gBACb,CAAC;gBACD,OAAOA;YACT,IACA,CAACA,SAAWA,MAAe;QACjC;IACF;IAEAc,OAME,GAAG3B,IAeF,EACD;YAIsB4B;QAHtB,MAAM,CAAC5C,MAAMG,UAAU,CAAC,CAAU,CAAC,GAAGa;QAEtC,MAAM4B,aAAa,IAAI,CAACrC,OAAO,CAACsC,WAAW,CAACC,aAAa,CAAC,IAAI,CAACC,QAAQ,EAAE;QACzE,MAAMC,cAAc,CAAC,CAACJ,CAAAA,CAAAA,yBAAAA,WAAW/B,UAAU,cAArB+B,oCAAAA,KAAAA,IAAAA,uBAAuBrB,kBAAkB,AAAD;QAE9D,OAAO,IAAI,CAAC0B,WAAW,CAACjD,MAAe;YACrC,GAAGG,OAAO;YACVU,YAAY;gBACV,GAAGV,QAAQU,UAAU;gBACrBqC,qBAAqBlD;gBACrBuB,oBAAoByB,eAAe;oBACjC,CAAChD,KAAK,EAAE,IAAI;gBACd;YACF;QACF;IACF;IAEQmD,aAA4C1C,IAAU,EAAE;QAC9D,OAAO,CAKL,GAAGO,OAgBqE;YACxE,MAAM,CAAChB,MAAM,EAAEE,YAAW,EAAE,GAAGC,SAAS,GAAG,CAAC,CAAU,CAAC,GAAGa;YAE1D,OAAO,IAAI,CAAC2B,MAAM,CAAC3C,MAAe;gBAChC,GAAGG,OAAO;gBACVD,aAAaoB,IAAAA,gCAAmB,EAC9B,IAAI,CAAChB,KAAK,EACV,IAAI,CAACC,OAAO,EACZP,MACAE;gBAEFO;YACF;QACF;IACF;IA5OA2C,YACEpD,IAAY,EACZO,OAA+C,EAC/CD,KAAa,EACb+C,QAAkB,CAClB;QACA,KAAK,CAACrD,MAAMO,SAAS,gBAAgB;aA3OvC+C,gBAAgB,IAAI,CAACH,YAAY,CAAC;aAClCI,cAAc,IAAI,CAACJ,YAAY,CAAC;aAChCK,YAAY,IAAI,CAACL,YAAY,CAAC;aAC9BM,WAAW,IAAI,CAACN,YAAY,CAAC;aAC7BO,eAAe,IAAI,CAACP,YAAY,CAAC;aACjCQ,oBAAoB,IAAI,CAACR,YAAY,CAAC;YAAC;SAAU;aACjDS,kBAAkB,IAAI,CAACT,YAAY,CAAC;YAAC;SAAQ;aAC7CU,gBAAgB,IAAI,CAACV,YAAY,CAAC;YAAC;SAAM;aACzCW,eAAe,IAAI,CAACX,YAAY,CAAC;YAAC;SAAK;aACvCY,mBAAmB,IAAI,CAACZ,YAAY,CAAC;YAAC;SAAS;aAE/Ca,WASiEA;aAEjEC,oBA2C4D,SAASA,kBAEnEjE,IAAY,EACZ,EACEkE,QAAO,EACPC,YAAW,EACXC,OAAM,EACNzD,MAAK,EACLC,QAAO,EACPC,WAAU,EACVwD,WAAU,EACVnE,YAAW,EACX,GAAGC,SAWJ,EACDmE,oBAAoB,CAAC,CAAC,EACtBC,cAAc,CAAC,CAAC,EAChB;YACA,MAAMnE,gBAAgBC,IAAAA,sBAAW,EAAC,IAAI,CAACC,KAAK,EAAE,IAAI,CAACC,OAAO,EAAEP;gBAChDG;YAAZ,MAAMK,MAAML,CAAAA,gBAAAA,QAAQM,IAAI,cAAZN,2BAAAA,gBAAgBO,IAAAA,0BAAe,EAACN,cAAcK,IAAI,EAAE,IAAI,CAACF,OAAO,CAAC;YAC7E,IAAIiE;YAEJ,MAAMC,eAAeC,IAAAA,2BAAkB,EAACtE,cAAcK,IAAI,EAAE,IAAI,CAACF,OAAO,EAAE6D;YAC1E,MAAMO,cAAcC,IAAAA,wBAAe,EAACxE,cAAcK,IAAI,EAAE,IAAI,CAACF,OAAO,EAAE6D;YAEtE,MAAMS,WAAW,CAAC7D,MAAoD8D,MAAa,CAAA;oBACjF,GAAK,OAAOnE,UAAU,aAAaA,MAAMK,MAAM8D,OAAOnE,KAAK;oBAC3D,GAAGoE,IAAAA,oCAA2B,EAAC;wBAC7BJ;wBACAG;wBACAZ;wBACAC;wBACAnD;oBACF,EAAE;gBACJ,CAAA;YAEA,MAAMgE,kBAAkBC,wBAAW,CAACC,kBAAkB,CACpD1E,KACAJ,cAAcK,IAAI,EAClB2D,QACA,IAAI,CAAC7D,OAAO;YAGd,MAAMQ,iBAAiB,CACrBC,MACAC,SACAC,aACAiE,eACG;gBACH,MAAMC,SAASlE,YAAY2D,SAAS7D,MAAMC,UAAU;oBAClDoE,SAAS,IAAM;wBACb,IAAI,CAACb,UAAU;4BACbA,WAAW,IAAI,CAACjE,OAAO,CAACsC,WAAW,CAACC,aAAa,CAACtC,KAAKR,IAAI;wBAC7D,CAAC;wBACD,OAAOwE;oBACT;oBACAc,MAAM;wBAAC;4BAAEtF,MAAM;wBAAQ;wBAAG;4BAAEA,MAAM;wBAAO;qBAAE;gBAC7C;gBAEA,MAAMuF,gBAAgBlB,cAAc,CAAC,CAACc,aAAa;oBAAC;iBAAa;gBACjE,MAAMlD,cAAc,IAAI,CAAC1B,OAAO,CAACJ,OAAO,CAACqF,MAAM,CAACC,0BAA0B,GACtEL,OAAOpD,KAAK,GACV;oBAAEA,OAAOoD,OAAOpD,KAAK;gBAAC,IACtB,IAAI,GACN,IAAI;gBAER,OAAO;oBACLb,QAAQ;wBACN,GAAIoE,gBAAgB;4BAAErD,QAAQ;gCAAEf,QAAQ;oCAAE,CAACnB,KAAK,EAAEiC;gCAAY;4BAAE;wBAAE,IAAI,CAAC,CAAC;wBACxE,CAACjC,KAAK,EAAEoF,CAAAA,mBAAAA,oBAAAA,KAAAA,IAAAA,OAAQjE,MAAM,AAAD,IACjB;4BACE,GAAGiE,MAAM;4BACTjE,QAAQ;gCACN,GAAG6D,eAAe;gCAClB,GAAGI,OAAOjE,MAAM;4BAClB;wBACF,IACAiE,MAAM;oBACZ;gBACF;YACF;YAEA,MAAMM,WAAW,AACf,IAAI,CAGJC,UAAU,CACV;gBACE,GAAGxF,OAAO;gBACVD,aAAaoB,IAAAA,gCAAmB,EAAC,IAAI,CAAChB,KAAK,EAAE,IAAI,CAACC,OAAO,EAAEP,MAAME;gBACjEW,YAAY;oBACV,GAAGA,UAAU;oBACbU,oBAAoBR;oBACpBS,oBAAoB,CAACC,QAAmCA,KAAK,CAACzB,KAAK,KAAK0B;oBACxEC,sBACEf,WACC,CAAA,CACCgB,GACAC,QACAb,MACAC,SACAa,OAEA8D,QAAQhF,OAAO,CACbA,QACE;4BACE,GAAGgB,CAAC;4BACJ,GAAGiD,SAAS7D,MAAMC,QAAQ;wBAC5B,GACAY,QACAb,MACAC,SACAa,OAEFW,IAAI,CAAC,CAACoD,SAAWC,IAAAA,6BAAoB,EAACD,QAAQ7E,MAAMY,EAAEmE,IAAI,EAAEtB,cAAa;gBACjF;gBACAhE,MAAMD;gBACNI,SAAS,CACPiB,QACAb,MACAC,UACG;wBAQD;oBAPF,MAAM+E,kBAAkBnB,SAAS7D,MAAMC;oBAEvC,OAAO6E,IAAAA,6BAAoB,EACzB,AAACjE,MAAgC,CAAC7B,KAAK,EACvCgB,MACAgF,gBAAgBD,IAAI,EACpBtB,cACA,CAAA,iBAAA,AAAC5C,OAA+CK,MAAM,cAAtD,4BAAA,KAAA,IAAA,cAAwD,CAAClC,KAAK;gBAElE;YACF,GACAsE,6BAA6B2B,eAAS,GAClC3B,oBACA;gBACE,GAAGA,iBAAiB;gBACpB4B,QAAQ7B,aACJ,CACE8B;wBAMG;oBALC,OAAA;wBACJ9B,YAAY8B,EAAEC,GAAG,CAAC;4BAChBjE,UAAU,KAAK;4BACfvB,SAAS,CAACiB,QAAQb,MAAMC,UAAYY,OAAOwC,UAAU;wBACvD;2BACG,CAAA,4BAAA,AAACC,kBAAsD4B,MAAM,cAA7D,uCAAA,KAAA,IAAA,0BAAA,KAAC5B,mBAA+D6B,EAAnE;oBACF;oBACA,AAAC7B,kBAA4C4B,MAAM;YACzD,CAAC,EACL3B;YAGF,OAAOmB;QACT;QAUE,IAAI,CAACpF,KAAK,GAAGA;QACb,IAAI,CAAC+F,cAAc,GAAGhD;IACxB;AAmOF;AAEA,SAASiD,UACPC,MAAe,EACfhG,OAAuE,EACvE;IACA,MAAMiG,sBAAsBjG,QAAQkG,WAAW;IAE/C,6CAA6C;IAC7ClG,QAAQkG,WAAW,GAAG,SAASA,YAAYtG,OAAO,EAAE;QAClD,OAAOqG,oBAAoBE,IAAI,CAAC,IAAI,EAAE;YACpCC,YAAYJ;YACZ,GAAGpG,OAAO;QACZ;IACF;IAEA,OAAOI;AACT;AAEA,SAASyD,SAEPuC,MAAU,EACV;IACA,OAAOD,UACLC,QACA,IAAI3G,yBACF,IAAI,CAACmD,QAAQ,EACb,IAAI,CAACxC,OAAO,EACZ,IAAI,CAACD,KAAK,EACV,IAAI,CAAC+F,cAAc;AAGzB"}
1
+ {"version":3,"sources":["../src/prisma-field-builder.ts"],"names":["PrismaObjectFieldBuilder","RootBuilder","RootFieldBuilder","relation","name","allArgs","description","options","relationField","getRelation","model","builder","ref","type","getRefFromModel","query","resolve","extensions","rest","relationSelect","args","context","nestedQuery","select","field","isList","getFieldDescription","pothosPrismaSelect","pothosPrismaLoaded","value","undefined","pothosPrismaFallback","q","parent","info","relationCount","where","countSelect","_count","nullable","variant","isNull","selfSelect","parentIsNull","isThenable","then","resolved","expose","typeConfig","configStore","getTypeConfig","typename","usingSelect","exposeField","pothosPrismaVariant","createExpose","constructor","fieldMap","prismaFieldMap","exposeBoolean","exposeFloat","exposeInt","exposeID","exposeString","exposeBooleanList","exposeFloatList","exposeIntList","exposeIDList","exposeStringList","withAuth","relatedConnection","maxSize","defaultSize","cursor","totalCount","connectionOptions","edgeOptions","typeName","formatCursor","getCursorFormatter","parseCursor","getCursorParser","getQuery","ctx","prismaCursorConnectionQuery","cursorSelection","ModelLoader","getCursorSelection","getSelection","nested","getType","path","hasTotalCount","prisma","filterConnectionTotalCount","fieldRef","connection","Promise","result","wrapConnectionResult","take","connectionQuery","ObjectRef","fields","t","int","addScopes","scopes","originalCreateField","createField","call","authScopes"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/get-client.ts"],"names":["getClient","getDMMF","prismaClientCache","createContextCache","builder","context","options","prisma","client","dmmf","_baseDmmf","_dmmf"],"mappings":"AAAA,uCAAuC;;;;;;;;;;;IAoCvBA,SAAS,MAATA;IAWAC,OAAO,MAAPA;;sBA9CgC;AA0BhD,MAAMC,oBAAoBC,IAAAA,wBAAkB,EAC1C,CAA4BC,UAC1BD,IAAAA,wBAAkB,EAAC,CAACE,UAClB,OAAOD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,aACrCJ,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM,CAACH,WAC9BD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM;AAIhC,SAASR,UACdI,OAA+C,EAC/CC,OAAyB,EACX;IACd,IAAI,OAAOD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,YAAY;QACvD,OAAON,kBAAkBE,SAASC;IACpC,CAAC;IAED,OAAOD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM;AACtC;AAEO,SAASP,QACdG,OAA+C,EACzC;IACN,IAAI,UAAUA,QAAQE,OAAO,CAACC,MAAM,IAAIH,QAAQE,OAAO,CAACC,MAAM,CAACE,IAAI,EAAE;QACnE,OAAOL,QAAQE,OAAO,CAACC,MAAM,CAACE,IAAI;IACpC,CAAC;IAED,MAAMD,SAASJ,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM;QAKrCA;IAAP,OAAOA,CAAAA,oBAAAA,OAAOE,SAAS,cAAhBF,+BAAAA,oBAAoBA,OAAOG,KAAK;AACzC"}
1
+ {"version":3,"sources":["../../src/util/get-client.ts"],"names":["getClient","getDMMF","prismaClientCache","createContextCache","builder","context","options","prisma","client","dmmf","_baseDmmf","_dmmf"],"mappings":"AAAA,uCAAuC;;;;;;;;;;;IAwCvBA,SAAS,MAATA;IAWAC,OAAO,MAAPA;;sBAlDgC;AA8BhD,MAAMC,oBAAoBC,IAAAA,wBAAkB,EAC1C,CAA4BC,UAC1BD,IAAAA,wBAAkB,EAAC,CAACE,UAClB,OAAOD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,aACrCJ,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM,CAACH,WAC9BD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM;AAIhC,SAASR,UACdI,OAA+C,EAC/CC,OAAyB,EACX;IACd,IAAI,OAAOD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM,KAAK,YAAY;QACvD,OAAON,kBAAkBE,SAASC;IACpC,CAAC;IAED,OAAOD,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM;AACtC;AAEO,SAASP,QACdG,OAA+C,EACzC;IACN,IAAI,UAAUA,QAAQE,OAAO,CAACC,MAAM,IAAIH,QAAQE,OAAO,CAACC,MAAM,CAACE,IAAI,EAAE;QACnE,OAAOL,QAAQE,OAAO,CAACC,MAAM,CAACE,IAAI;IACpC,CAAC;IAED,MAAMD,SAASJ,QAAQE,OAAO,CAACC,MAAM,CAACC,MAAM;QAKrCA;IAAP,OAAOA,CAAAA,oBAAAA,OAAOE,SAAS,cAAhBF,+BAAAA,oBAAoBA,OAAOG,KAAK;AACzC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pothos/plugin-prisma",
3
- "version": "3.43.0",
3
+ "version": "3.45.0",
4
4
  "description": "A Pothos plugin for more efficient integration with prisma",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./dts/index.d.ts",
@@ -50,7 +50,7 @@
50
50
  "access": "public"
51
51
  },
52
52
  "dependencies": {
53
- "@prisma/generator-helper": "^4.9.0"
53
+ "@prisma/generator-helper": "^4.11.0"
54
54
  },
55
55
  "prisma": {
56
56
  "seed": "node prisma/seed.mjs"
@@ -62,17 +62,17 @@
62
62
  "typescript": ">=4.7.2"
63
63
  },
64
64
  "devDependencies": {
65
- "@prisma/client": "^4.9.0",
66
- "graphql": "16.6.0",
67
- "graphql-scalars": "^1.20.1",
68
- "graphql-tag": "^2.12.6",
69
- "prisma": "^4.9.0",
70
65
  "@pothos/core": "3.28.0",
71
66
  "@pothos/plugin-complexity": "3.12.0",
72
67
  "@pothos/plugin-errors": "3.11.0",
73
68
  "@pothos/plugin-relay": "3.38.0",
74
69
  "@pothos/plugin-simple-objects": "3.6.7",
75
- "@pothos/test-utils": "1.4.7"
70
+ "@pothos/test-utils": "1.4.7",
71
+ "@prisma/client": "^4.11.0",
72
+ "graphql": "16.6.0",
73
+ "graphql-scalars": "^1.20.4",
74
+ "graphql-tag": "^2.12.6",
75
+ "prisma": "^4.11.0"
76
76
  },
77
77
  "scripts": {
78
78
  "generate": "prisma generate",
@@ -25,7 +25,7 @@ export function prismaConnectionHelpers<
25
25
  Shape = RefOrType extends PrismaObjectRef<PrismaModelTypes, infer T> ? T : Model['Shape'],
26
26
  EdgeShape = Model['Include'] extends Select
27
27
  ? Shape
28
- : ShapeFromSelection<Model, { select: Select }>,
28
+ : ShapeFromSelection<Types, Model, { select: Select }>,
29
29
  NodeShape = EdgeShape,
30
30
  >(
31
31
  builder: PothosSchemaTypes.SchemaBuilder<Types>,
package/src/generator.ts CHANGED
@@ -9,11 +9,12 @@ import { DMMF, generatorHandler } from '@prisma/generator-helper';
9
9
 
10
10
  const MIN_TS_VERSION = [4, 5, 2];
11
11
 
12
- function checkTSVersion() {
13
- const versionParts = version.split(/[.-]/g);
12
+ const versionParts = version.split(/[.-]/g).map((part) => Number.parseInt(part, 10));
13
+ const modifiersArg = (versionParts[0] >= 5 ? [] : [[]]) as [];
14
14
 
15
+ function checkTSVersion() {
15
16
  for (let i = 0; i < 3; i += 1) {
16
- const part = Number.parseInt(versionParts[i], 10);
17
+ const part = versionParts[i];
17
18
  if (part < MIN_TS_VERSION[i]) {
18
19
  throw new Error(
19
20
  `@pothos/plugin-prisma requires typescript version >${MIN_TS_VERSION.join('.')}`,
@@ -36,14 +37,14 @@ generatorHandler({
36
37
  }),
37
38
  onGenerate: async (options) => {
38
39
  checkTSVersion();
39
- const config = options.generator.config as { clientOutput?: string };
40
+ const config = options.generator.config as { clientOutput?: string; prismaUtils?: string };
40
41
  const prismaLocation =
41
42
  config.clientOutput ??
42
43
  options.otherGenerators.find((gen) => gen.provider.value === 'prisma-client-js')!.output!
43
44
  .value!;
44
45
 
45
46
  const outputLocation = options.generator.output?.value ?? defaultOutput;
46
- const prismaTypes = buildTypes(options.dmmf);
47
+ const prismaTypes = buildTypes(options.dmmf, config);
47
48
 
48
49
  await generateOutput(options.dmmf, prismaTypes, prismaLocation, outputLocation);
49
50
 
@@ -65,7 +66,7 @@ async function generateOutput(
65
66
  outputLocation: string,
66
67
  ) {
67
68
  const importStatement = ts.factory.createImportDeclaration(
68
- [],
69
+ ...modifiersArg,
69
70
  [],
70
71
  ts.factory.createImportClause(
71
72
  true,
@@ -119,7 +120,7 @@ async function generateOutput(
119
120
  });
120
121
  }
121
122
 
122
- function buildTypes(dmmf: DMMF.Document) {
123
+ function buildTypes(dmmf: DMMF.Document, config: { prismaUtils?: string }) {
123
124
  function getOrderByTypeName(type: string) {
124
125
  const possibleTypes = [
125
126
  `${type}OrderByWithRelationInput`,
@@ -137,6 +138,8 @@ function buildTypes(dmmf: DMMF.Document) {
137
138
  return orderBy.name;
138
139
  }
139
140
 
141
+ const prismaUtils = config.prismaUtils === 'true';
142
+
140
143
  const modelTypes = dmmf.datamodel.models.map((model) => {
141
144
  const relations = model.fields.filter((field) => !!field.relationName);
142
145
  const listRelations = model.fields.filter((field) => !!field.relationName && field.isList);
@@ -191,6 +194,35 @@ function buildTypes(dmmf: DMMF.Document) {
191
194
  undefined,
192
195
  ts.factory.createTypeReferenceNode(`Prisma.${model.name}WhereInput`),
193
196
  ),
197
+ ...(prismaUtils
198
+ ? [
199
+ ts.factory.createPropertySignature(
200
+ [],
201
+ 'Create',
202
+ undefined,
203
+ ts.factory.createTypeReferenceNode(`Prisma.${model.name}CreateInput`),
204
+ ),
205
+ ts.factory.createPropertySignature(
206
+ [],
207
+ 'Update',
208
+ undefined,
209
+ ts.factory.createTypeReferenceNode(`Prisma.${model.name}UpdateInput`),
210
+ ),
211
+ ]
212
+ : [
213
+ ts.factory.createPropertySignature(
214
+ [],
215
+ 'Create',
216
+ undefined,
217
+ ts.factory.createTypeLiteralNode([]),
218
+ ),
219
+ ts.factory.createPropertySignature(
220
+ [],
221
+ 'Update',
222
+ undefined,
223
+ ts.factory.createTypeLiteralNode([]),
224
+ ),
225
+ ]),
194
226
  ts.factory.createPropertySignature(
195
227
  [],
196
228
  'RelationName',
@@ -243,12 +275,9 @@ function buildTypes(dmmf: DMMF.Document) {
243
275
  ),
244
276
  ts.factory.createPropertySignature(
245
277
  [],
246
- 'Types',
278
+ 'Name',
247
279
  undefined,
248
- ts.factory.createIndexedAccessTypeNode(
249
- ts.factory.createTypeReferenceNode('PrismaTypes'),
250
- ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(typeName)),
251
- ),
280
+ ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(typeName)),
252
281
  ),
253
282
  ]),
254
283
  );
@@ -260,7 +289,7 @@ function buildTypes(dmmf: DMMF.Document) {
260
289
  });
261
290
 
262
291
  return ts.factory.createInterfaceDeclaration(
263
- [],
292
+ ...modifiersArg,
264
293
  [
265
294
  ts.factory.createModifier(SyntaxKind.ExportKeyword),
266
295
  ts.factory.createModifier(SyntaxKind.DefaultKeyword),
@@ -114,9 +114,12 @@ declare global {
114
114
  FindUnique,
115
115
  Include,
116
116
  Select,
117
- ShapeFromSelection<Model, { select: Select; include: Include }>
117
+ ShapeFromSelection<Types, Model, { select: Select; include: Include }>
118
118
  >,
119
- ) => PrismaObjectRef<Model, ShapeFromSelection<Model, { select: Select; include: Include }>>;
119
+ ) => PrismaObjectRef<
120
+ Model,
121
+ ShapeFromSelection<Types, Model, { select: Select; include: Include }>
122
+ >;
120
123
 
121
124
  prismaObjectField: <
122
125
  Type extends PrismaObjectRef<PrismaModelTypes, {}> | keyof Types['PrismaTypes'],
@@ -165,6 +168,7 @@ declare global {
165
168
  Include,
166
169
  Select,
167
170
  ShapeFromSelection<
171
+ Types,
168
172
  PrismaModelTypes & Types['PrismaTypes'][Name],
169
173
  { select: Select; include: Include }
170
174
  >,
@@ -173,6 +177,7 @@ declare global {
173
177
  ) => PrismaNodeRef<
174
178
  Types['PrismaTypes'][Name] & PrismaModelTypes,
175
179
  ShapeFromSelection<
180
+ Types,
176
181
  PrismaModelTypes & Types['PrismaTypes'][Name],
177
182
  { select: Select; include: Include }
178
183
  >
package/src/index.ts CHANGED
@@ -11,6 +11,7 @@ import { PrismaObjectFieldBuilder as InternalPrismaObjectFieldBuilder } from './
11
11
  import { ModelLoader } from './model-loader';
12
12
  import { PrismaModelTypes } from './types';
13
13
  import { formatPrismaCursor, parsePrismaCursor } from './util/cursors';
14
+ import { getModel, getRefFromModel } from './util/datamodel';
14
15
  import { getLoaderMapping, setLoaderMappings } from './util/loader-map';
15
16
  import { queryFromInfo, selectionStateFromInfo } from './util/map-query';
16
17
 
@@ -23,7 +24,7 @@ const pluginName = 'prisma' as const;
23
24
 
24
25
  export default pluginName;
25
26
 
26
- export { formatPrismaCursor, parsePrismaCursor, queryFromInfo };
27
+ export { formatPrismaCursor, getModel, getRefFromModel, parsePrismaCursor, queryFromInfo };
27
28
 
28
29
  export type PrismaObjectFieldBuilder<
29
30
  Types extends SchemaTypes,
@@ -26,6 +26,7 @@ import {
26
26
  RelationCountOptions,
27
27
  SelectionMap,
28
28
  ShapeFromConnection,
29
+ TypesForRelation,
29
30
  VariantFieldOptions,
30
31
  } from './types';
31
32
  import {
@@ -385,7 +386,7 @@ export class PrismaObjectFieldBuilder<
385
386
  Types,
386
387
  Shape,
387
388
  NeedsResolve,
388
- Model['Relations'][Field]['Types']['Where']
389
+ TypesForRelation<Types, Model, Field>['Where']
389
390
  >,
390
391
  ]
391
392
  >
package/src/types.ts CHANGED
@@ -43,13 +43,16 @@ export interface PrismaModelTypes {
43
43
  OrderBy: unknown;
44
44
  Where: {};
45
45
  WhereUnique: {};
46
+ Create: {};
47
+ Update: {};
46
48
  ListRelations: string;
47
49
  RelationName: string;
48
50
  Relations: Record<
49
51
  string,
50
52
  {
51
53
  Shape: unknown;
52
- Types: PrismaModelTypes;
54
+ Name: string;
55
+ // Types: PrismaModelTypes;
53
56
  }
54
57
  >;
55
58
  }
@@ -78,6 +81,7 @@ export type PrismaObjectFieldOptions<
78
81
  ? ParentShape
79
82
  : ParentShape &
80
83
  ShapeFromSelection<
84
+ Types,
81
85
  ExtractModel<Types, ParentShape>,
82
86
  { select: Select extends (...args: any[]) => infer S ? S : Select }
83
87
  >,
@@ -123,12 +127,16 @@ interface BaseSelection {
123
127
 
124
128
  export type SelectedKeys<T> = { [K in keyof T]: T[K] extends false ? never : K }[keyof T];
125
129
 
126
- export type ShapeFromSelection<Model extends PrismaModelTypes, Selection> = Normalize<
130
+ export type ShapeFromSelection<
131
+ Types extends SchemaTypes,
132
+ Model extends PrismaModelTypes,
133
+ Selection,
134
+ > = Normalize<
127
135
  Selection extends BaseSelection
128
136
  ? unknown extends Selection['select']
129
- ? Model['Shape'] & RelationShapeFromInclude<Model, Selection['include']>
137
+ ? Model['Shape'] & RelationShapeFromInclude<Types, Model, Selection['include']>
130
138
  : Pick<Model['Shape'], SelectedKeys<Selection['select']>> &
131
- RelationShapeFromInclude<Model, Selection['select']> &
139
+ RelationShapeFromInclude<Types, Model, Selection['select']> &
132
140
  ('_count' extends keyof Selection['select']
133
141
  ? ShapeFromCount<Selection['select']['_count']>
134
142
  : {})
@@ -141,13 +149,27 @@ export type ShapeFromCount<Selection> = Selection extends true
141
149
  ? { _count: { [K in keyof Counts]: number } }
142
150
  : never;
143
151
 
144
- type RelationShapeFromInclude<Model extends PrismaModelTypes, Include> = Normalize<{
152
+ export type TypesForRelation<
153
+ Types extends SchemaTypes,
154
+ Model extends PrismaModelTypes,
155
+ Relation extends keyof Model['Relations'],
156
+ > = Model['Relations'][Relation]['Name'] extends infer Name
157
+ ? Name extends keyof Types['PrismaTypes']
158
+ ? Types['PrismaTypes'][Name] & PrismaModelTypes
159
+ : never
160
+ : never;
161
+
162
+ type RelationShapeFromInclude<
163
+ Types extends SchemaTypes,
164
+ Model extends PrismaModelTypes,
165
+ Include,
166
+ > = Normalize<{
145
167
  [K in SelectedKeys<Include> as K extends Model['RelationName']
146
168
  ? K
147
169
  : never]: K extends keyof Model['Relations']
148
170
  ? Model['Relations'][K]['Shape'] extends unknown[]
149
- ? ShapeFromSelection<Model['Relations'][K]['Types'], Include[K]>[]
150
- : ShapeFromSelection<Model['Relations'][K]['Types'], Include[K]>
171
+ ? ShapeFromSelection<Types, TypesForRelation<Types, Model, K>, Include[K]>[]
172
+ : ShapeFromSelection<Types, TypesForRelation<Types, Model, K>, Include[K]>
151
173
  : unknown;
152
174
  }>;
153
175
 
@@ -372,7 +394,7 @@ export type RelatedFieldOptions<
372
394
  >;
373
395
  }) & {
374
396
  description?: string | false;
375
- type?: PrismaObjectRef<Model['Relations'][Field]['Types']>;
397
+ type?: PrismaObjectRef<TypesForRelation<Types, Model, Field>>;
376
398
  query?: QueryForField<Types, Args, Model['Include'][Field & keyof Model['Include']]>;
377
399
  };
378
400
 
@@ -643,7 +665,7 @@ export type RelatedConnectionOptions<
643
665
  ? {
644
666
  description?: string | false;
645
667
  query?: QueryForField<Types, Args, Model['Include'][Field & keyof Model['Include']]>;
646
- type?: PrismaObjectRef<Model['Relations'][Field]['Types']>;
668
+ type?: PrismaObjectRef<TypesForRelation<Types, Model, Field>>;
647
669
  cursor: CursorFromRelation<Model, Field>;
648
670
  defaultSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
649
671
  maxSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
@@ -8,9 +8,13 @@ export interface DMMFField {
8
8
  name: string;
9
9
  isRequired: boolean;
10
10
  isList: boolean;
11
+ hasDefaultValue: boolean;
11
12
  isUnique: boolean;
12
13
  isId: boolean;
13
14
  documentation?: string;
15
+ relationName?: string;
16
+ relationFromFields?: string[];
17
+ isUpdatedAt?: boolean;
14
18
  }
15
19
 
16
20
  interface DMMF {