@pothos/plugin-prisma 3.57.0 → 3.59.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 (48) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dts/global-types.d.ts +16 -2
  3. package/dts/global-types.d.ts.map +1 -1
  4. package/dts/index.d.ts.map +1 -1
  5. package/dts/model-loader.d.ts +24 -5
  6. package/dts/model-loader.d.ts.map +1 -1
  7. package/dts/types.d.ts.map +1 -1
  8. package/dts/util/deep-equal.d.ts.map +1 -1
  9. package/dts/util/loader-map.d.ts +1 -1
  10. package/dts/util/loader-map.d.ts.map +1 -1
  11. package/esm/global-types.d.ts +16 -2
  12. package/esm/global-types.d.ts.map +1 -1
  13. package/esm/global-types.js.map +1 -1
  14. package/esm/index.d.ts.map +1 -1
  15. package/esm/index.js +2 -9
  16. package/esm/index.js.map +1 -1
  17. package/esm/model-loader.d.ts +24 -5
  18. package/esm/model-loader.d.ts.map +1 -1
  19. package/esm/model-loader.js +82 -27
  20. package/esm/model-loader.js.map +1 -1
  21. package/esm/schema-builder.js +14 -0
  22. package/esm/schema-builder.js.map +1 -1
  23. package/esm/types.d.ts.map +1 -1
  24. package/esm/util/deep-equal.d.ts.map +1 -1
  25. package/esm/util/deep-equal.js +6 -0
  26. package/esm/util/deep-equal.js.map +1 -1
  27. package/esm/util/loader-map.d.ts +1 -1
  28. package/esm/util/loader-map.d.ts.map +1 -1
  29. package/esm/util/loader-map.js +1 -1
  30. package/esm/util/loader-map.js.map +1 -1
  31. package/lib/index.js +1 -8
  32. package/lib/index.js.map +1 -1
  33. package/lib/model-loader.js +81 -27
  34. package/lib/model-loader.js.map +1 -1
  35. package/lib/schema-builder.js +14 -0
  36. package/lib/schema-builder.js.map +1 -1
  37. package/lib/util/deep-equal.js +6 -0
  38. package/lib/util/deep-equal.js.map +1 -1
  39. package/lib/util/loader-map.js +1 -1
  40. package/lib/util/loader-map.js.map +1 -1
  41. package/package.json +3 -3
  42. package/src/global-types.ts +33 -2
  43. package/src/index.ts +4 -14
  44. package/src/model-loader.ts +102 -32
  45. package/src/schema-builder.ts +34 -0
  46. package/src/types.ts +4 -1
  47. package/src/util/deep-equal.ts +7 -0
  48. package/src/util/loader-map.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/model-loader.ts"],"names":["ModelLoader","forRef","ref","modelName","findUnique","builder","createContextCache","model","PothosSchemaError","name","getDefaultFindUnique","getFindUnique","findBy","parent","fields","primaryKeyName","primaryKey","key","join","getDefaultFindBy","getModel","idField","find","field","isId","uniqueField","isRequired","isUnique","uniqueIndex","uniqueIndexes","idx","every","f","getDefaultIDSelection","result","getCursorSelection","cursor","index","filter","Boolean","selection","column","getFindUniqueForField","fieldName","some","loadSelection","context","query","selectionToQuery","entry","staged","selectionCompatible","state","mergeSelection","promise","initLoad","Promise","resolve","then","delete","delegate","getDelegateFromModel","getClient","findUniqueOrThrow","where","rejectOnNotFound","add","constructor","Set"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/model-loader.ts"],"names":["ModelLoader","forRef","ref","modelName","findUnique","builder","createContextCache","model","PothosSchemaError","name","getDefaultFindUnique","getFindUnique","findBy","parent","fields","primaryKeyName","primaryKey","key","join","getDefaultFindBy","getModel","idField","find","field","isId","uniqueField","isRequired","isUnique","uniqueIndex","uniqueIndexes","idx","every","f","getDefaultIDSelection","result","getCursorSelection","cursor","index","filter","Boolean","selection","column","getFindUniqueForField","fieldName","some","getSelection","info","cacheKey","parentType","path","queryCache","has","selectionStateFromInfo","context","set","query","selectionToQuery","get","loadSelection","stageQuery","mappings","setLoaderMappings","entry","staged","selectionCompatible","state","mergeSelection","models","createResolvablePromise","promise","initLoad","initialModel","Map","add","nextTick","tick","then","delete","resolve","reject","delegate","findUniqueOrThrow","where","rejectOnNotFound","setTimeout","constructor","Set","Promise","getDelegateFromModel","getClient","resolveFn","rejectFn"],"mappings":"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"}
@@ -185,11 +185,25 @@ schemaBuilderProto.prismaObjectField = function prismaObjectField(type, fieldNam
185
185
  }));
186
186
  });
187
187
  };
188
+ schemaBuilderProto.prismaInterfaceField = function prismaInterfaceField(type, fieldName, field) {
189
+ const ref = typeof type === 'string' ? (0, _datamodel.getRefFromModel)(type, this) : type;
190
+ this.configStore.onTypeConfig(ref, ({ name })=>{
191
+ this.configStore.addFields(ref, ()=>({
192
+ [fieldName]: field(new _prismafieldbuilder.PrismaObjectFieldBuilder(name, this, ref.modelName, (0, _relationmap.getRelationMap)((0, _getclient.getDMMF)(this)).get(ref.modelName), 'Interface'))
193
+ }));
194
+ });
195
+ };
188
196
  schemaBuilderProto.prismaObjectFields = function prismaObjectFields(type, fields) {
189
197
  const ref = typeof type === 'string' ? (0, _datamodel.getRefFromModel)(type, this) : type;
190
198
  this.configStore.onTypeConfig(ref, ({ name })=>{
191
199
  this.configStore.addFields(ref, ()=>fields(new _prismafieldbuilder.PrismaObjectFieldBuilder(name, this, ref.modelName, (0, _relationmap.getRelationMap)((0, _getclient.getDMMF)(this)).get(ref.modelName))));
192
200
  });
193
201
  };
202
+ schemaBuilderProto.prismaInterfaceFields = function prismaInterfaceFields(type, fields) {
203
+ const ref = typeof type === 'string' ? (0, _datamodel.getRefFromModel)(type, this) : type;
204
+ this.configStore.onTypeConfig(ref, ({ name })=>{
205
+ this.configStore.addFields(ref, ()=>fields(new _prismafieldbuilder.PrismaObjectFieldBuilder(name, this, ref.modelName, (0, _relationmap.getRelationMap)((0, _getclient.getDMMF)(this)).get(ref.modelName), 'Interface')));
206
+ });
207
+ };
194
208
 
195
209
  //# sourceMappingURL=schema-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","prismaObject","type","fields","findUnique","select","include","description","options","ref","variant","PrismaObjectRef","getRefFromModel","name","fieldMap","getRelationMap","getDMMF","get","idSelection","ModelLoader","getDefaultIDSelection","objectType","getModelDescription","extensions","pothosPrismaInclude","pothosPrismaModel","pothosPrismaFieldMap","pothosPrismaSelect","pothosPrismaLoader","forRef","PrismaObjectFieldBuilder","undefined","prismaInterface","PrismaInterfaceRef","interfaceType","prismaNode","id","field","resolve","rawResolve","idOptions","rawFindUnique","nullable","fieldName","interfaceRef","nodeInterfaceRef","getDefaultIDSerializer","idParser","getDefaultIDParser","typeName","nodeRef","PrismaNodeRef","parent","context","getFindUniqueForField","PothosError","extendedOptions","interfaces","loadWithoutCache","info","query","queryFromInfo","delegate","getDelegateFromModel","getClient","record","findUniqueOrThrow","where","rejectOnNotFound","brandWithType","configStore","addInterfaces","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","args","completeValue","associateRefWithName","prismaObjectField","addFields","modelName","prismaObjectFields"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","prismaObject","type","fields","findUnique","select","include","description","options","ref","variant","PrismaObjectRef","getRefFromModel","name","fieldMap","getRelationMap","getDMMF","get","idSelection","ModelLoader","getDefaultIDSelection","objectType","getModelDescription","extensions","pothosPrismaInclude","pothosPrismaModel","pothosPrismaFieldMap","pothosPrismaSelect","pothosPrismaLoader","forRef","PrismaObjectFieldBuilder","undefined","prismaInterface","PrismaInterfaceRef","interfaceType","prismaNode","id","field","resolve","rawResolve","idOptions","rawFindUnique","nullable","fieldName","interfaceRef","nodeInterfaceRef","getDefaultIDSerializer","idParser","getDefaultIDParser","typeName","nodeRef","PrismaNodeRef","parent","context","getFindUniqueForField","PothosError","extendedOptions","interfaces","loadWithoutCache","info","query","queryFromInfo","delegate","getDelegateFromModel","getClient","record","findUniqueOrThrow","where","rejectOnNotFound","brandWithType","configStore","addInterfaces","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","args","completeValue","associateRefWithName","prismaObjectField","addFields","modelName","prismaInterfaceField","prismaObjectFields","prismaInterfaceFields"],"mappings":";;;;QAAO;8DAUA;8BAC4B;6BACP;yBACE;2BACE;oCACS;yBAEkB;2BACL;6BAClB;2BACD;0BACL;6BACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/B,MAAMA,qBAAqBC,aAAa,CAACC,SAAS;AAElDF,mBAAmBG,YAAY,GAAG,SAASA,aACzCC,IAAI,EACJ,EAAEC,MAAM,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,EAAEC,WAAW,EAAE,GAAGC,SAAS;IAEhE,MAAMC,MAAMD,QAAQE,OAAO,GACvB,IAAIC,0BAAe,CAACH,QAAQE,OAAO,EAAER,QACpCU,IAAAA,0BAAe,EAACV,MAAM,IAAI;QAClBM,kBAAAA;IAAb,MAAMK,OAAOL,CAAAA,OAAAA,CAAAA,mBAAAA,QAAQE,OAAO,cAAfF,8BAAAA,mBAAmBA,QAAQK,IAAI,cAA/BL,kBAAAA,OAAmCN;IAChD,MAAMY,WAAWC,IAAAA,2BAAc,EAACC,IAAAA,kBAAO,EAAC,IAAI,GAAGC,GAAG,CAACf;IACnD,MAAMgB,cAAcC,wBAAW,CAACC,qBAAqB,CAACX,KAAKP,MAAM,IAAI;IAErEO,IAAII,IAAI,GAAGA;IAEX,IAAI,CAACQ,UAAU,CAACZ,KAAK;QACnB,GAAID,OAAO;QACXD,aAAae,IAAAA,gCAAmB,EAACpB,MAAM,IAAI,EAAEK;QAC7CgB,YAAY;YACV,GAAGf,QAAQe,UAAU;YACrBC,qBAAqBlB;YACrBmB,mBAAmBvB;YACnBwB,sBAAsBZ;YACtBa,oBAAoBtB,UAAU;gBAAE,GAAGa,WAAW;gBAAE,GAAIb,MAAM;YAAQ;YAClEuB,oBAAoBT,wBAAW,CAACU,MAAM,CAACpB,KAAKP,MAAME,YAAqB,IAAI;QAC7E;QACAS;QACAV,QAAQA,SACJ,IACEA,OACE,IAAI2B,4CAAwB,CAC1BjB,MACA,IAAI,EACJX,MACAa,IAAAA,2BAAc,EAACC,IAAAA,kBAAO,EAAC,IAAI,GAAGC,GAAG,CAACf,UAGxC6B;IACN;IAEA,OAAOtB;AACT;AAEAX,mBAAmBkC,eAAe,GAAG,SAASA,gBAC5C9B,IAAI,EACJ,EAAEC,MAAM,EAAEC,UAAU,EAAEC,MAAM,EAAEC,OAAO,EAAEC,WAAW,EAAE,GAAGC,SAAS;IAEhE,MAAMC,MAAMD,QAAQE,OAAO,GACvB,IAAIuB,gCAAkB,CAACzB,QAAQE,OAAO,EAAER,QACvCU,IAAAA,0BAAe,EAACV,MAAM,IAAI,EAAE;QACpBM,kBAAAA;IAAb,MAAMK,OAAOL,CAAAA,OAAAA,CAAAA,mBAAAA,QAAQE,OAAO,cAAfF,8BAAAA,mBAAmBA,QAAQK,IAAI,cAA/BL,kBAAAA,OAAmCN;IAChD,MAAMY,WAAWC,IAAAA,2BAAc,EAACC,IAAAA,kBAAO,EAAC,IAAI,GAAGC,GAAG,CAACf;IACnD,MAAMgB,cAAcC,wBAAW,CAACC,qBAAqB,CAACX,KAAKP,MAAM,IAAI;IAErEO,IAAII,IAAI,GAAGA;IAEX,IAAI,CAACqB,aAAa,CAACzB,KAAK;QACtB,GAAID,OAAO;QACXD,aAAae,IAAAA,gCAAmB,EAACpB,MAAM,IAAI,EAAEK;QAC7CgB,YAAY;YACV,GAAGf,QAAQe,UAAU;YACrBC,qBAAqBlB;YACrBmB,mBAAmBvB;YACnBwB,sBAAsBZ;YACtBa,oBAAoBtB,UAAU;gBAAE,GAAGa,WAAW;gBAAE,GAAIb,MAAM;YAAQ;YAClEuB,oBAAoBT,wBAAW,CAACU,MAAM,CAACpB,KAAKP,MAAME,YAAqB,IAAI;QAC7E;QACAS;QACAV,QAAQA,SACJ,IACEA,OACE,IAAI2B,4CAAwB,CAC1BjB,MACA,IAAI,EACJX,MACAa,IAAAA,2BAAc,EAACC,IAAAA,kBAAO,EAAC,IAAI,GAAGC,GAAG,CAACf,OAClC,gBAGN6B;IACN;IAEA,OAAOtB;AACT;AAEAX,mBAAmBqC,UAAU,GAAG,SAASA,WAIvCjC,IAAsC,EACtC,EACEkC,IAAI,EAAEC,KAAK,EAAEC,SAASC,UAAU,EAAE,GAAGC,WAAW,EAChDpC,YAAYqC,aAAa,EACzB5B,IAAI,EACJH,OAAO,EACPgC,QAAQ,EACR,GAAGlC,SAC4E;QAG5D,wBAAA;IADrB,MAAMmC,YAAYN;IAClB,MAAMO,gBAAe,yBAAA,CAAA,QAAA,IAAI,EAACC,gBAAgB,cAArB,6CAAA,4BAAA;IACrB,MAAMP,UAAUC,uBAAAA,wBAAAA,aAAcO,IAAAA,+BAAsB,EAAC5C,MAAMyC,WAAW,IAAI;IAC1E,MAAMI,WAAWJ,YAAYK,IAAAA,2BAAkB,EAAC9C,MAAMyC,WAAW,IAAI,IAAIZ;QACxDrB;IAAjB,MAAMuC,WAAWvC,CAAAA,OAAAA,oBAAAA,qBAAAA,UAAWG,kBAAXH,kBAAAA,OAAmBR;IACpC,MAAMgD,UAAU,IAAIC,sBAAa,CAACF,UAAU/C;IAC5C,MAAME,aAAaqC,gBACf,CAACW,QAAiBC,UAChBZ,cAAcH,QAAQc,QAAiBC,UAAoBA,WAC7DlC,wBAAW,CAACmC,qBAAqB,CAACJ,SAAShD,MAAMyC,WAAW,IAAI;IAEpE,IAAI,CAACC,cAAc;QACjB,MAAM,IAAIW,iBAAW,CAAC;IACxB;IAEA,MAAMC,kBAAkB;QACtB,GAAGhD,OAAO;QACVK;QACAH;QACA+C,YAAY;YAACb;SAAa;QAC1BxC;QACAsD,kBAAkB,OAChBtB,IACAiB,SACAM;YAEA,MAAMC,QAAQC,IAAAA,uBAAa,EAAC;gBAAER;gBAASM;gBAAMV;YAAS;YACtD,MAAMa,WAAWC,IAAAA,+BAAoB,EAACC,IAAAA,oBAAS,EAAC,IAAI,EAAEX,UAAUnD;YAEhE,MAAM+D,SAAS,MAAOH,CAAAA,SAASI,iBAAiB,IAAI,CAACxB,WACjDoB,SAASI,iBAAiB,CAAC;gBACzB,GAAGN,KAAK;gBACRO,OAAO1B,gBAAgBA,cAAcL,IAAIiB,WAAW;oBAAE,CAACV,UAAU,EAAEI,SAAUX;gBAAI;YACnF,KACA0B,SAAS1D,UAAU,CAAC;gBAClB,GAAGwD,KAAK;gBACR,GAAIlB,WAAW,CAAC,IAAI;oBAAE0B,kBAAkB;gBAAK,CAAC;gBAC9CD,OAAO1B,gBAAgBA,cAAcL,IAAIiB,WAAW;oBAAE,CAACV,UAAU,EAAEI,SAAUX;gBAAI;YACnF,EAAU;YAEdiC,IAAAA,mBAAa,EAACJ,QAAQhB;YAEtB,OAAOgB;QACT;IACF;IAEA,MAAMxD,MAAM,IAAI,CAACR,YAAY,CAACC,MAAMsD;IAEpC,IAAIhD,QAAQiD,UAAU,EAAE;QACtB,IAAI,CAACa,WAAW,CAACC,aAAa,CAACtB,UAAUzC,QAAQiD,UAAU;IAC7D;IAEA,IAAI,CAACa,WAAW,CAACE,YAAY,CAAC/D,KAAK,CAACgE;YAGhC;YAAA;QAFF,IAAI,CAACC,WAAW,CACdjE,KACA,CAAA,0CAAA,6BAAA,AAAC,IAAI,CAACD,OAAO,CAAiDmE,YAAY,cAA1E,iDAAA,2BAA4EC,WAAW,cAAvF,oDAAA,yCACE,MACF,CAACC;gBAMM;mBALL,AACEA,EAGAC,QAAQ,CAAC;oBACN,6BAAA,AAAC,IAAI,CAACtE,OAAO,CAAgDmE,YAAY,cAAzE,iDAAA,2BACCI,cAAc,AADlB;gBAEA,GAAGvC,SAAS;gBACZE,UAAU;gBACVsC,MAAM,CAAC;gBACP1C,SAAS,CAACc,QAAe4B,MAAc3B,SAAiBM,OACtDsB,IAAAA,mBAAa,EAAC3C,QAAQc,QAAQC,UAAU,CAACjB,KAAQ,CAAA;4BAC/ClC,MAAMuE,WAAW5D,IAAI;4BACrBuB;wBACF,CAAA;YACJ;;IAEN;IAEA,IAAI,CAACkC,WAAW,CAACY,oBAAoB,CAAChC,SAASD;IAE/C,OAAOC;AACT;AAEApD,mBAAmBqF,iBAAiB,GAAG,SAASA,kBAAkBjF,IAAI,EAAEyC,SAAS,EAAEN,KAAK;IACtF,MAAM5B,MAAM,OAAOP,SAAS,WAAWU,IAAAA,0BAAe,EAACV,MAAM,IAAI,IAAIA;IACrE,IAAI,CAACoE,WAAW,CAACE,YAAY,CAAC/D,KAAK,CAAC,EAAEI,IAAI,EAAE;QAC1C,IAAI,CAACyD,WAAW,CAACc,SAAS,CAAC3E,KAAK,IAAO,CAAA;gBACrC,CAACkC,UAAU,EAAEN,MACX,IAAIP,4CAAwB,CAC1BjB,MACA,IAAI,EACJJ,IAAI4E,SAAS,EACbtE,IAAAA,2BAAc,EAACC,IAAAA,kBAAO,EAAC,IAAI,GAAGC,GAAG,CAACR,IAAI4E,SAAS;YAGrD,CAAA;IACF;AACF;AAEAvF,mBAAmBwF,oBAAoB,GAAG,SAASA,qBAAqBpF,IAAI,EAAEyC,SAAS,EAAEN,KAAK;IAC5F,MAAM5B,MAAM,OAAOP,SAAS,WAAWU,IAAAA,0BAAe,EAACV,MAAM,IAAI,IAAIA;IACrE,IAAI,CAACoE,WAAW,CAACE,YAAY,CAAC/D,KAAK,CAAC,EAAEI,IAAI,EAAE;QAC1C,IAAI,CAACyD,WAAW,CAACc,SAAS,CAAC3E,KAAK,IAAO,CAAA;gBACrC,CAACkC,UAAU,EAAEN,MACX,IAAIP,4CAAwB,CAC1BjB,MACA,IAAI,EACJJ,IAAI4E,SAAS,EACbtE,IAAAA,2BAAc,EAACC,IAAAA,kBAAO,EAAC,IAAI,GAAGC,GAAG,CAACR,IAAI4E,SAAS,GAC/C;YAGN,CAAA;IACF;AACF;AAEAvF,mBAAmByF,kBAAkB,GAAG,SAASA,mBAAmBrF,IAAI,EAAEC,MAAM;IAC9E,MAAMM,MAAM,OAAOP,SAAS,WAAWU,IAAAA,0BAAe,EAACV,MAAM,IAAI,IAAIA;IACrE,IAAI,CAACoE,WAAW,CAACE,YAAY,CAAC/D,KAAK,CAAC,EAAEI,IAAI,EAAE;QAC1C,IAAI,CAACyD,WAAW,CAACc,SAAS,CAAC3E,KAAK,IAC9BN,OACE,IAAI2B,4CAAwB,CAC1BjB,MACA,IAAI,EACJJ,IAAI4E,SAAS,EACbtE,IAAAA,2BAAc,EAACC,IAAAA,kBAAO,EAAC,IAAI,GAAGC,GAAG,CAACR,IAAI4E,SAAS;IAIvD;AACF;AAEAvF,mBAAmB0F,qBAAqB,GAAG,SAASA,sBAAsBtF,IAAI,EAAEC,MAAM;IACpF,MAAMM,MAAM,OAAOP,SAAS,WAAWU,IAAAA,0BAAe,EAACV,MAAM,IAAI,IAAIA;IACrE,IAAI,CAACoE,WAAW,CAACE,YAAY,CAAC/D,KAAK,CAAC,EAAEI,IAAI,EAAE;QAC1C,IAAI,CAACyD,WAAW,CAACc,SAAS,CAAC3E,KAAK,IAC9BN,OACE,IAAI2B,4CAAwB,CAC1BjB,MACA,IAAI,EACJJ,IAAI4E,SAAS,EACbtE,IAAAA,2BAAc,EAACC,IAAAA,kBAAO,EAAC,IAAI,GAAGC,GAAG,CAACR,IAAI4E,SAAS,GAC/C;IAIR;AACF"}
@@ -13,6 +13,7 @@ function deepEqual(left, right, ignore) {
13
13
  return true;
14
14
  }
15
15
  if (left && right && typeof left === 'object' && typeof right === 'object') {
16
+ var _left_valueOf, _left, _right_valueOf, _right;
16
17
  if (Array.isArray(left)) {
17
18
  if (!Array.isArray(right)) {
18
19
  return false;
@@ -28,6 +29,11 @@ function deepEqual(left, right, ignore) {
28
29
  }
29
30
  return true;
30
31
  }
32
+ const lValue = (_left_valueOf = (_left = left).valueOf) === null || _left_valueOf === void 0 ? void 0 : _left_valueOf.call(_left);
33
+ const rValue = (_right_valueOf = (_right = right).valueOf) === null || _right_valueOf === void 0 ? void 0 : _right_valueOf.call(_right);
34
+ if ((lValue != null || rValue != null) && typeof lValue !== 'object') {
35
+ return lValue === rValue;
36
+ }
31
37
  const keys = Object.keys(left);
32
38
  const keyLength = keys.length;
33
39
  if (keyLength !== Object.keys(right).length) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/deep-equal.ts"],"names":["deepEqual","left","right","ignore","Array","isArray","length","i","keys","Object","keyLength","key","has"],"mappings":"AAAA,8BAA8B;;;;+BACdA;;;eAAAA;;;AAAT,SAASA,UAAUC,IAAa,EAAEC,KAAc,EAAEC,MAAoB;IAC3E,IAAIF,SAASC,OAAO;QAClB,OAAO;IACT;IAEA,IAAID,QAAQC,SAAS,OAAOD,SAAS,YAAY,OAAOC,UAAU,UAAU;QAC1E,IAAIE,MAAMC,OAAO,CAACJ,OAAO;YACvB,IAAI,CAACG,MAAMC,OAAO,CAACH,QAAQ;gBACzB,OAAO;YACT;YAEA,MAAM,EAAEI,MAAM,EAAE,GAAGL;YAEnB,IAAIC,MAAMI,MAAM,KAAKA,QAAQ;gBAC3B,OAAO;YACT;YAEA,IAAK,IAAIC,IAAI,GAAGA,IAAID,QAAQC,KAAK,EAAG;gBAClC,IAAI,CAACP,UAAUC,IAAI,CAACM,EAAE,EAAEL,KAAK,CAACK,EAAE,GAAG;oBACjC,OAAO;gBACT;YACF;YAEA,OAAO;QACT;QAEA,MAAMC,OAAOC,OAAOD,IAAI,CAACP;QACzB,MAAMS,YAAYF,KAAKF,MAAM;QAE7B,IAAII,cAAcD,OAAOD,IAAI,CAACN,OAAOI,MAAM,EAAE;YAC3C,OAAO;QACT;QAEA,KAAK,MAAMK,OAAOH,KAAM;gBAClBL;YAAJ,KAAIA,UAAAA,oBAAAA,8BAAAA,QAAQS,GAAG,CAACD,MAAM;gBACpB;YACF;YAEA,IACE,CAACX,UAAU,AAACC,IAAgC,CAACU,IAAI,EAAE,AAACT,KAAiC,CAACS,IAAI,GAC1F;gBACA,OAAO;YACT;QACF;QAEA,OAAO;IACT;IAEA,OAAO;AACT"}
1
+ {"version":3,"sources":["../../src/util/deep-equal.ts"],"names":["deepEqual","left","right","ignore","Array","isArray","length","i","lValue","valueOf","rValue","keys","Object","keyLength","key","has"],"mappings":"AAAA,8BAA8B;;;;+BACdA;;;eAAAA;;;AAAT,SAASA,UAAUC,IAAa,EAAEC,KAAc,EAAEC,MAAoB;IAC3E,IAAIF,SAASC,OAAO;QAClB,OAAO;IACT;IAEA,IAAID,QAAQC,SAAS,OAAOD,SAAS,YAAY,OAAOC,UAAU,UAAU;YAqB3DD,eAAAA,OACAC,gBAAAA;QArBf,IAAIE,MAAMC,OAAO,CAACJ,OAAO;YACvB,IAAI,CAACG,MAAMC,OAAO,CAACH,QAAQ;gBACzB,OAAO;YACT;YAEA,MAAM,EAAEI,MAAM,EAAE,GAAGL;YAEnB,IAAIC,MAAMI,MAAM,KAAKA,QAAQ;gBAC3B,OAAO;YACT;YAEA,IAAK,IAAIC,IAAI,GAAGA,IAAID,QAAQC,KAAK,EAAG;gBAClC,IAAI,CAACP,UAAUC,IAAI,CAACM,EAAE,EAAEL,KAAK,CAACK,EAAE,GAAG;oBACjC,OAAO;gBACT;YACF;YAEA,OAAO;QACT;QAEA,MAAMC,UAASP,gBAAAA,CAAAA,QAAAA,MAAKQ,OAAO,cAAZR,oCAAAA,mBAAAA;QACf,MAAMS,UAASR,iBAAAA,CAAAA,SAAAA,OAAMO,OAAO,cAAbP,qCAAAA,oBAAAA;QAEf,IAAI,AAACM,CAAAA,UAAU,QAAQE,UAAU,IAAG,KAAM,OAAOF,WAAW,UAAU;YACpE,OAAOA,WAAWE;QACpB;QAEA,MAAMC,OAAOC,OAAOD,IAAI,CAACV;QACzB,MAAMY,YAAYF,KAAKL,MAAM;QAE7B,IAAIO,cAAcD,OAAOD,IAAI,CAACT,OAAOI,MAAM,EAAE;YAC3C,OAAO;QACT;QAEA,KAAK,MAAMQ,OAAOH,KAAM;gBAClBR;YAAJ,KAAIA,UAAAA,oBAAAA,8BAAAA,QAAQY,GAAG,CAACD,MAAM;gBACpB;YACF;YAEA,IACE,CAACd,UAAU,AAACC,IAAgC,CAACa,IAAI,EAAE,AAACZ,KAAiC,CAACY,IAAI,GAC1F;gBACA,OAAO;YACT;QACF;QAEA,OAAO;IACT;IAEA,OAAO;AACT"}
@@ -21,7 +21,7 @@ _export(exports, {
21
21
  });
22
22
  const _core = require("@pothos/core");
23
23
  const cache = (0, _core.createContextCache)((ctx)=>new Map());
24
- function cacheKey(type, path, subPath) {
24
+ function cacheKey(type, path, subPath = []) {
25
25
  let key = '';
26
26
  let current = path;
27
27
  while(current){
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/loader-map.ts"],"names":["cacheKey","setLoaderMappings","getLoaderMapping","cache","createContextCache","ctx","Map","type","path","subPath","key","current","prev","entry","info","value","Object","keys","forEach","field","map","mapping","indirectPath","set","mappings","get"],"mappings":";;;;;;;;;;;IAMgBA,QAAQ;eAARA;;IAkBAC,iBAAiB;eAAjBA;;IAYAC,gBAAgB;eAAhBA;;;sBAnCmB;AAGnC,MAAMC,QAAQC,IAAAA,wBAAkB,EAAC,CAACC,MAAQ,IAAIC;AAEvC,SAASN,SAASO,IAAY,EAAEC,IAAgC,EAAEC,OAAiB;IACxF,IAAIC,MAAM;IACV,IAAIC,UAAkDH;IAEtD,MAAOG,QAAS;QACd,IAAI,OAAOA,QAAQD,GAAG,KAAK,UAAU;YACnCA,MAAMA,MAAM,CAAC,EAAEC,QAAQD,GAAG,CAAC,CAAC,EAAEA,IAAI,CAAC,GAAGC,QAAQD,GAAG;QACnD;QACAC,UAAUA,QAAQC,IAAI;IACxB;IAEA,KAAK,MAAMC,SAASJ,QAAS;QAC3BC,MAAM,CAAC,EAAEA,IAAI,CAAC,EAAEG,MAAM,CAAC;IACzB;IAEA,OAAO,CAAC,EAAEN,KAAK,CAAC,EAAEG,IAAI,CAAC;AACzB;AAEO,SAAST,kBAAkBI,GAAW,EAAES,IAAwB,EAAEC,KAAqB;IAC5FC,OAAOC,IAAI,CAACF,OAAOG,OAAO,CAAC,CAACC;QAC1B,MAAMC,MAAMjB,MAAME;QAElB,MAAMgB,UAAUN,KAAK,CAACI,MAAM;QAC5B,MAAMV,UAAU;eAAIY,QAAQC,YAAY;YAAEH;SAAM;QAChD,MAAMT,MAAMV,SAASqB,QAAQd,IAAI,EAAEO,KAAKN,IAAI,EAAEC;QAE9CW,IAAIG,GAAG,CAACb,KAAKW,QAAQG,QAAQ;IAC/B;AACF;AAEO,SAAStB,iBAAiBG,GAAW,EAAEG,IAAgC,EAAED,IAAY;IAC1F,MAAMa,MAAMjB,MAAME;IAClB,MAAMK,MAAMV,SAASO,MAAMC,MAAM,EAAE;QAE5BY;IAAP,OAAOA,CAAAA,WAAAA,IAAIK,GAAG,CAACf,kBAARU,sBAAAA,WAAgB;AACzB"}
1
+ {"version":3,"sources":["../../src/util/loader-map.ts"],"names":["cacheKey","setLoaderMappings","getLoaderMapping","cache","createContextCache","ctx","Map","type","path","subPath","key","current","prev","entry","info","value","Object","keys","forEach","field","map","mapping","indirectPath","set","mappings","get"],"mappings":";;;;;;;;;;;IAMgBA,QAAQ;eAARA;;IAkBAC,iBAAiB;eAAjBA;;IAYAC,gBAAgB;eAAhBA;;;sBAnCmB;AAGnC,MAAMC,QAAQC,IAAAA,wBAAkB,EAAC,CAACC,MAAQ,IAAIC;AAEvC,SAASN,SAASO,IAAY,EAAEC,IAAgC,EAAEC,UAAoB,EAAE;IAC7F,IAAIC,MAAM;IACV,IAAIC,UAAkDH;IAEtD,MAAOG,QAAS;QACd,IAAI,OAAOA,QAAQD,GAAG,KAAK,UAAU;YACnCA,MAAMA,MAAM,CAAC,EAAEC,QAAQD,GAAG,CAAC,CAAC,EAAEA,IAAI,CAAC,GAAGC,QAAQD,GAAG;QACnD;QACAC,UAAUA,QAAQC,IAAI;IACxB;IAEA,KAAK,MAAMC,SAASJ,QAAS;QAC3BC,MAAM,CAAC,EAAEA,IAAI,CAAC,EAAEG,MAAM,CAAC;IACzB;IAEA,OAAO,CAAC,EAAEN,KAAK,CAAC,EAAEG,IAAI,CAAC;AACzB;AAEO,SAAST,kBAAkBI,GAAW,EAAES,IAAwB,EAAEC,KAAqB;IAC5FC,OAAOC,IAAI,CAACF,OAAOG,OAAO,CAAC,CAACC;QAC1B,MAAMC,MAAMjB,MAAME;QAElB,MAAMgB,UAAUN,KAAK,CAACI,MAAM;QAC5B,MAAMV,UAAU;eAAIY,QAAQC,YAAY;YAAEH;SAAM;QAChD,MAAMT,MAAMV,SAASqB,QAAQd,IAAI,EAAEO,KAAKN,IAAI,EAAEC;QAE9CW,IAAIG,GAAG,CAACb,KAAKW,QAAQG,QAAQ;IAC/B;AACF;AAEO,SAAStB,iBAAiBG,GAAW,EAAEG,IAAgC,EAAED,IAAY;IAC1F,MAAMa,MAAMjB,MAAME;IAClB,MAAMK,MAAMV,SAASO,MAAMC,MAAM,EAAE;QAE5BY;IAAP,OAAOA,CAAAA,WAAAA,IAAIK,GAAG,CAACf,kBAARU,sBAAAA,WAAgB;AACzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pothos/plugin-prisma",
3
- "version": "3.57.0",
3
+ "version": "3.59.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",
@@ -69,10 +69,10 @@
69
69
  "graphql-scalars": "^1.22.2",
70
70
  "graphql-tag": "^2.12.6",
71
71
  "prisma": "^5.0.0",
72
- "@pothos/core": "3.33.0",
72
+ "@pothos/core": "3.33.1",
73
73
  "@pothos/plugin-complexity": "3.13.0",
74
74
  "@pothos/plugin-errors": "3.11.1",
75
- "@pothos/plugin-relay": "3.43.0",
75
+ "@pothos/plugin-relay": "3.43.1",
76
76
  "@pothos/plugin-simple-objects": "3.7.0",
77
77
  "@pothos/test-utils": "1.4.8"
78
78
  },
@@ -156,7 +156,23 @@ declare global {
156
156
  ? M
157
157
  : Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
158
158
  Shape extends {} = Type extends PrismaObjectRef<PrismaModelTypes, infer S>
159
- ? S
159
+ ? S & { [prismaModelName]?: Model['Name'] }
160
+ : Model['Shape'] & {
161
+ [prismaModelName]?: Type;
162
+ },
163
+ >(
164
+ type: Type,
165
+ fieldName: string,
166
+ field: (t: PrismaObjectFieldBuilder<Types, Model, false, Shape>) => FieldRef,
167
+ ) => void;
168
+
169
+ prismaInterfaceField: <
170
+ Type extends PrismaInterfaceRef<PrismaModelTypes, {}> | keyof Types['PrismaTypes'],
171
+ Model extends PrismaModelTypes = Type extends PrismaInterfaceRef<infer M, {}>
172
+ ? M
173
+ : Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
174
+ Shape extends {} = Type extends PrismaInterfaceRef<PrismaModelTypes, infer S>
175
+ ? S & { [prismaModelName]?: Model['Name'] }
160
176
  : Model['Shape'] & {
161
177
  [prismaModelName]?: Type;
162
178
  },
@@ -172,7 +188,22 @@ declare global {
172
188
  ? M
173
189
  : Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
174
190
  Shape extends {} = Type extends PrismaObjectRef<PrismaModelTypes, infer S>
175
- ? S
191
+ ? S & { [prismaModelName]?: Model['Name'] }
192
+ : Model['Shape'] & {
193
+ [prismaModelName]?: Type;
194
+ },
195
+ >(
196
+ type: Type,
197
+ fields: (t: PrismaObjectFieldBuilder<Types, Model, false, Shape>) => FieldMap,
198
+ ) => void;
199
+
200
+ prismaInterfaceFields: <
201
+ Type extends PrismaInterfaceRef<PrismaModelTypes, {}> | keyof Types['PrismaTypes'],
202
+ Model extends PrismaModelTypes = Type extends PrismaInterfaceRef<infer M, {}>
203
+ ? M
204
+ : Types['PrismaTypes'][Type & keyof Types['PrismaTypes']] & PrismaModelTypes,
205
+ Shape extends {} = Type extends PrismaInterfaceRef<PrismaModelTypes, infer S>
206
+ ? S & { [prismaModelName]?: Model['Name'] }
176
207
  : Model['Shape'] & {
177
208
  [prismaModelName]?: Type;
178
209
  },
package/src/index.ts CHANGED
@@ -16,7 +16,7 @@ import { PrismaModelTypes } from './types';
16
16
  import { formatPrismaCursor, parsePrismaCursor } from './util/cursors';
17
17
  import { getModel, getRefFromModel } from './util/datamodel';
18
18
  import { getLoaderMapping, setLoaderMappings } from './util/loader-map';
19
- import { queryFromInfo, selectionStateFromInfo } from './util/map-query';
19
+ import { queryFromInfo } from './util/map-query';
20
20
 
21
21
  export { prismaConnectionHelpers } from './connection-helpers';
22
22
  export { PrismaInterfaceRef } from './interface-ref';
@@ -164,19 +164,9 @@ export class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
164
164
  return fallback(queryFromInfo({ context, info }), parent, args, context, info);
165
165
  }
166
166
 
167
- const selectionState = selectionStateFromInfo(context, info);
168
-
169
- return loaderCache(parent)
170
- .loadSelection(selectionState, context)
171
- .then((result) => {
172
- const mappings = selectionState.mappings[info.path.key];
173
-
174
- if (mappings) {
175
- setLoaderMappings(context, info, mappings.mappings);
176
- }
177
-
178
- return resolver(result, args, context, info);
179
- });
167
+ return loaderCache(context)
168
+ .loadSelection(info, parent as object)
169
+ .then((result) => resolver(result, args, context, info));
180
170
  };
181
171
  }
182
172
  }
@@ -1,3 +1,4 @@
1
+ import { GraphQLResolveInfo } from 'graphql';
1
2
  import {
2
3
  createContextCache,
3
4
  InterfaceRef,
@@ -5,8 +6,11 @@ import {
5
6
  PothosSchemaError,
6
7
  SchemaTypes,
7
8
  } from '@pothos/core';
9
+ import { PrismaDelegate, SelectionMap } from './types';
8
10
  import { getDelegateFromModel, getModel } from './util/datamodel';
9
11
  import { getClient } from './util/get-client';
12
+ import { cacheKey, setLoaderMappings } from './util/loader-map';
13
+ import { selectionStateFromInfo } from './util/map-query';
10
14
  import {
11
15
  mergeSelection,
12
16
  selectionCompatible,
@@ -14,27 +18,38 @@ import {
14
18
  selectionToQuery,
15
19
  } from './util/selections';
16
20
 
21
+ interface ResolvablePromise<T> {
22
+ promise: Promise<T>;
23
+ resolve: (value: T) => void;
24
+ reject: (err: unknown) => void;
25
+ }
17
26
  export class ModelLoader {
18
- model: object;
27
+ context: object;
19
28
  builder: PothosSchemaTypes.SchemaBuilder<never>;
20
29
  findUnique: (model: Record<string, unknown>, ctx: {}) => unknown;
21
30
  modelName: string;
22
-
31
+ queryCache = new Map<string, { selection: SelectionState; query: SelectionMap }>();
23
32
  staged = new Set<{
24
- promise: Promise<Record<string, unknown>>;
25
33
  state: SelectionState;
34
+ models: Map<object, ResolvablePromise<Record<string, unknown> | null>>;
26
35
  }>();
36
+ delegate: PrismaDelegate;
37
+ tick = Promise.resolve();
27
38
 
28
39
  constructor(
29
- model: object,
40
+ context: object,
30
41
  builder: PothosSchemaTypes.SchemaBuilder<never>,
31
42
  modelName: string,
32
43
  findUnique: (model: Record<string, unknown>, ctx: {}) => unknown,
33
44
  ) {
34
- this.model = model;
45
+ this.context = context;
35
46
  this.builder = builder;
36
47
  this.findUnique = findUnique;
37
48
  this.modelName = modelName;
49
+ this.delegate = getDelegateFromModel(
50
+ getClient(this.builder, this.context as never),
51
+ this.modelName,
52
+ );
38
53
  }
39
54
 
40
55
  static forRef<Types extends SchemaTypes>(
@@ -217,48 +232,103 @@ export class ModelLoader {
217
232
  return this.getFindUnique(findBy);
218
233
  }
219
234
 
220
- async loadSelection(selection: SelectionState, context: object) {
221
- const query = selectionToQuery(selection);
235
+ getSelection(info: GraphQLResolveInfo) {
236
+ const key = cacheKey(info.parentType.name, info.path);
237
+ if (!this.queryCache.has(key)) {
238
+ const selection = selectionStateFromInfo(this.context, info);
239
+ this.queryCache.set(key, {
240
+ selection,
241
+ query: selectionToQuery(selection),
242
+ });
243
+ }
244
+
245
+ return this.queryCache.get(key)!;
246
+ }
247
+
248
+ async loadSelection(info: GraphQLResolveInfo, model: object) {
249
+ const { selection, query } = this.getSelection(info);
222
250
 
251
+ const result = await this.stageQuery(selection, query, model);
252
+
253
+ if (result) {
254
+ const mappings = selection.mappings[info.path.key];
255
+
256
+ if (mappings) {
257
+ setLoaderMappings(this.context, info, mappings.mappings);
258
+ }
259
+ }
260
+
261
+ return result;
262
+ }
263
+
264
+ async stageQuery(selection: SelectionState, query: SelectionMap, model: object) {
223
265
  for (const entry of this.staged) {
224
266
  if (selectionCompatible(entry.state, query)) {
225
267
  mergeSelection(entry.state, query);
226
268
 
227
- return entry.promise;
269
+ if (!entry.models.has(model)) {
270
+ entry.models.set(model, createResolvablePromise<Record<string, unknown> | null>());
271
+ }
272
+
273
+ return entry.models.get(model)!.promise;
228
274
  }
229
275
  }
230
276
 
231
- return this.initLoad(selection, context);
277
+ return this.initLoad(selection, model);
232
278
  }
233
279
 
234
- async initLoad(state: SelectionState, context: {}) {
235
- const entry = {
236
- promise: Promise.resolve().then(() => {
237
- this.staged.delete(entry);
238
-
239
- const delegate = getDelegateFromModel(
240
- getClient(this.builder, context as never),
241
- this.modelName,
242
- );
243
-
244
- if (delegate.findUniqueOrThrow) {
245
- return delegate.findUniqueOrThrow({
246
- ...selectionToQuery(state),
247
- where: { ...(this.findUnique(this.model as Record<string, unknown>, context) as {}) },
248
- } as never) as Promise<Record<string, unknown>>;
249
- }
280
+ async initLoad(state: SelectionState, initialModel: {}) {
281
+ const models = new Map<object, ResolvablePromise<Record<string, unknown> | null>>();
282
+
283
+ const promise = createResolvablePromise<Record<string, unknown> | null>();
284
+ models.set(initialModel, promise);
250
285
 
251
- return delegate.findUnique({
252
- rejectOnNotFound: true,
253
- ...selectionToQuery(state),
254
- where: { ...(this.findUnique(this.model as Record<string, unknown>, context) as {}) },
255
- } as never) as Promise<Record<string, unknown>>;
256
- }),
286
+ const entry = {
287
+ models,
257
288
  state,
258
289
  };
259
290
 
260
291
  this.staged.add(entry);
261
292
 
262
- return entry.promise;
293
+ const nextTick = createResolvablePromise<void>();
294
+ void this.tick.then(() => {
295
+ this.staged.delete(entry);
296
+
297
+ for (const [model, { resolve, reject }] of entry.models) {
298
+ if (this.delegate.findUniqueOrThrow) {
299
+ void this.delegate
300
+ .findUniqueOrThrow({
301
+ ...selectionToQuery(state),
302
+ where: { ...(this.findUnique(model as Record<string, unknown>, this.context) as {}) },
303
+ } as never)
304
+ // eslint-disable-next-line promise/no-nesting
305
+ .then(resolve as () => {}, reject);
306
+ } else {
307
+ void this.delegate
308
+ .findUnique({
309
+ rejectOnNotFound: true,
310
+ ...selectionToQuery(state),
311
+ where: { ...(this.findUnique(model as Record<string, unknown>, this.context) as {}) },
312
+ } as never)
313
+ // eslint-disable-next-line promise/no-nesting
314
+ .then(resolve as () => {}, reject);
315
+ }
316
+ }
317
+ });
318
+ setTimeout(() => void nextTick.resolve(), 0);
319
+ this.tick = nextTick.promise;
320
+
321
+ return promise.promise;
263
322
  }
264
323
  }
324
+
325
+ function createResolvablePromise<T = unknown>(): ResolvablePromise<T> {
326
+ let resolveFn!: (value: T) => void;
327
+ let rejectFn!: (reason?: unknown) => void;
328
+ const promise = new Promise<T>((resolve, reject) => {
329
+ resolveFn = resolve;
330
+ rejectFn = reject;
331
+ });
332
+
333
+ return { promise, resolve: resolveFn, reject: rejectFn };
334
+ }
@@ -219,6 +219,23 @@ schemaBuilderProto.prismaObjectField = function prismaObjectField(type, fieldNam
219
219
  });
220
220
  };
221
221
 
222
+ schemaBuilderProto.prismaInterfaceField = function prismaInterfaceField(type, fieldName, field) {
223
+ const ref = typeof type === 'string' ? getRefFromModel(type, this) : type;
224
+ this.configStore.onTypeConfig(ref, ({ name }) => {
225
+ this.configStore.addFields(ref, () => ({
226
+ [fieldName]: field(
227
+ new PrismaObjectFieldBuilder(
228
+ name,
229
+ this,
230
+ ref.modelName,
231
+ getRelationMap(getDMMF(this)).get(ref.modelName)!,
232
+ 'Interface',
233
+ ),
234
+ ),
235
+ }));
236
+ });
237
+ };
238
+
222
239
  schemaBuilderProto.prismaObjectFields = function prismaObjectFields(type, fields) {
223
240
  const ref = typeof type === 'string' ? getRefFromModel(type, this) : type;
224
241
  this.configStore.onTypeConfig(ref, ({ name }) => {
@@ -234,3 +251,20 @@ schemaBuilderProto.prismaObjectFields = function prismaObjectFields(type, fields
234
251
  );
235
252
  });
236
253
  };
254
+
255
+ schemaBuilderProto.prismaInterfaceFields = function prismaInterfaceFields(type, fields) {
256
+ const ref = typeof type === 'string' ? getRefFromModel(type, this) : type;
257
+ this.configStore.onTypeConfig(ref, ({ name }) => {
258
+ this.configStore.addFields(ref, () =>
259
+ fields(
260
+ new PrismaObjectFieldBuilder(
261
+ name,
262
+ this,
263
+ ref.modelName,
264
+ getRelationMap(getDMMF(this)).get(ref.modelName)!,
265
+ 'Interface',
266
+ ),
267
+ ),
268
+ );
269
+ });
270
+ };
package/src/types.ts CHANGED
@@ -382,7 +382,10 @@ type QueryFromRelation<
382
382
  include?: infer I;
383
383
  select?: infer S;
384
384
  }
385
- ? { include?: NonNullable<I>; select?: NonNullable<S> }
385
+ ? {
386
+ include?: NonNullable<I>;
387
+ select?: NonNullable<S>;
388
+ }
386
389
  : never
387
390
  : never;
388
391
 
@@ -25,6 +25,13 @@ export function deepEqual(left: unknown, right: unknown, ignore?: Set<string>) {
25
25
  return true;
26
26
  }
27
27
 
28
+ const lValue = left.valueOf?.();
29
+ const rValue = right.valueOf?.();
30
+
31
+ if ((lValue != null || rValue != null) && typeof lValue !== 'object') {
32
+ return lValue === rValue;
33
+ }
34
+
28
35
  const keys = Object.keys(left);
29
36
  const keyLength = keys.length;
30
37
 
@@ -4,7 +4,7 @@ import { LoaderMappings } from '../types';
4
4
 
5
5
  const cache = createContextCache((ctx) => new Map<string, LoaderMappings>());
6
6
 
7
- export function cacheKey(type: string, path: GraphQLResolveInfo['path'], subPath: string[]) {
7
+ export function cacheKey(type: string, path: GraphQLResolveInfo['path'], subPath: string[] = []) {
8
8
  let key = '';
9
9
  let current: GraphQLResolveInfo['path'] | undefined = path;
10
10