@pothos/plugin-prisma 3.8.0 → 3.9.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 (68) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +154 -0
  3. package/dts/index.d.ts.map +1 -1
  4. package/dts/node-ref.d.ts.map +1 -1
  5. package/dts/object-ref.d.ts.map +1 -1
  6. package/dts/prisma-field-builder.d.ts +5 -5
  7. package/dts/prisma-field-builder.d.ts.map +1 -1
  8. package/dts/types.d.ts +3 -2
  9. package/dts/types.d.ts.map +1 -1
  10. package/dts/util/loader-map.d.ts +2 -2
  11. package/dts/util/loader-map.d.ts.map +1 -1
  12. package/dts/util/map-query.d.ts.map +1 -1
  13. package/esm/field-builder.js.map +1 -1
  14. package/esm/generator.js.map +1 -1
  15. package/esm/index.js +5 -7
  16. package/esm/index.js.map +1 -1
  17. package/esm/model-loader.js.map +1 -1
  18. package/esm/node-ref.js.map +1 -1
  19. package/esm/prisma-field-builder.js +16 -21
  20. package/esm/prisma-field-builder.js.map +1 -1
  21. package/esm/schema-builder.js +1 -2
  22. package/esm/schema-builder.js.map +1 -1
  23. package/esm/util/cursors.js.map +1 -1
  24. package/esm/util/datamodel.js.map +1 -1
  25. package/esm/util/get-client.js.map +1 -1
  26. package/esm/util/loader-map.js +2 -3
  27. package/esm/util/loader-map.js.map +1 -1
  28. package/esm/util/map-query.js +47 -9
  29. package/esm/util/map-query.js.map +1 -1
  30. package/esm/util/relation-map.js.map +1 -1
  31. package/esm/util/selections.js.map +1 -1
  32. package/lib/field-builder.js +3 -6
  33. package/lib/field-builder.js.map +1 -1
  34. package/lib/generator.js +8 -16
  35. package/lib/generator.js.map +1 -1
  36. package/lib/index.js +6 -21
  37. package/lib/index.js.map +1 -1
  38. package/lib/model-loader.js +1 -2
  39. package/lib/model-loader.js.map +1 -1
  40. package/lib/node-ref.js +1 -2
  41. package/lib/node-ref.js.map +1 -1
  42. package/lib/prisma-field-builder.js +25 -40
  43. package/lib/prisma-field-builder.js.map +1 -1
  44. package/lib/schema-builder.js +3 -6
  45. package/lib/schema-builder.js.map +1 -1
  46. package/lib/util/cursors.js +2 -4
  47. package/lib/util/cursors.js.map +1 -1
  48. package/lib/util/datamodel.js +2 -4
  49. package/lib/util/datamodel.js.map +1 -1
  50. package/lib/util/get-client.js +1 -3
  51. package/lib/util/get-client.js.map +1 -1
  52. package/lib/util/loader-map.js +3 -5
  53. package/lib/util/loader-map.js.map +1 -1
  54. package/lib/util/map-query.js +47 -9
  55. package/lib/util/map-query.js.map +1 -1
  56. package/lib/util/relation-map.js +1 -2
  57. package/lib/util/relation-map.js.map +1 -1
  58. package/lib/util/selections.js +2 -4
  59. package/lib/util/selections.js.map +1 -1
  60. package/package.json +8 -8
  61. package/src/index.ts +14 -4
  62. package/src/node-ref.ts +1 -1
  63. package/src/object-ref.ts +1 -1
  64. package/src/prisma-field-builder.ts +21 -22
  65. package/src/types.ts +7 -1
  66. package/src/util/loader-map.ts +3 -9
  67. package/src/util/map-query.ts +66 -3
  68. package/tsconfig.type.tsbuildinfo +1 -1
@@ -106,7 +106,7 @@ function addNestedSelections(type, context, info, state, selections, indirectPat
106
106
  }
107
107
  }
108
108
  function addFieldSelection(type, context, info, state, selection, indirectPath) {
109
- var ref, ref4;
109
+ var ref11, ref4;
110
110
  if (selection.name.value.startsWith('__')) {
111
111
  return;
112
112
  }
@@ -114,22 +114,33 @@ function addFieldSelection(type, context, info, state, selection, indirectPath)
114
114
  if (!field) {
115
115
  throw new Error(`Unknown field ${selection.name.value} on ${type.name}`);
116
116
  }
117
- const fieldSelect = (ref = field.extensions) === null || ref === void 0 ? void 0 : ref.pothosPrismaSelect;
117
+ const fieldSelect = (ref11 = field.extensions) === null || ref11 === void 0 ? void 0 : ref11.pothosPrismaSelect;
118
118
  let fieldSelectionMap;
119
119
  const fieldParentSelect = (ref4 = field.extensions) === null || ref4 === void 0 ? void 0 : ref4.pothosPrismaParentSelect;
120
120
  let mappings = {};
121
121
  if (typeof fieldSelect === 'function') {
122
122
  const args = (0, _values).getArgumentValues(field, selection, info.variableValues);
123
- fieldSelectionMap = fieldSelect(args, context, (rawQuery)=>{
123
+ fieldSelectionMap = fieldSelect(args, context, (rawQuery, indirectInclude)=>{
124
124
  const returnType = (0, _graphql).getNamedType(field.type);
125
125
  const query = typeof rawQuery === 'function' ? rawQuery(args, context) : rawQuery;
126
- const fieldState = createStateForType(returnType, info, state);
126
+ const normalizedIndirectInclude = Array.isArray(indirectInclude) ? normalizeInclude(indirectInclude, getIndirectType(returnType, info)) : indirectInclude;
127
+ const fieldState = createStateForType(getIndirectType(normalizedIndirectInclude ? info.schema.getType(normalizedIndirectInclude.getType()) : returnType, info), info, state);
127
128
  if (typeof query === 'object' && Object.keys(query).length > 0) {
128
129
  (0, _selections).mergeSelection(fieldState, {
129
130
  select: {},
130
131
  ...query
131
132
  });
132
133
  }
134
+ if (normalizedIndirectInclude && normalizedIndirectInclude.path.length > 0) {
135
+ var ref, ref9;
136
+ var ref10;
137
+ resolveIndirectInclude(returnType, info, selection, [
138
+ ...(ref10 = (ref9 = (ref = returnType.extensions) === null || ref === void 0 ? void 0 : ref.pothosPrismaIndirectInclude) === null || ref9 === void 0 ? void 0 : ref9.path) !== null && ref10 !== void 0 ? ref10 : [],
139
+ ...normalizedIndirectInclude.path,
140
+ ], [], (resolvedType, resolvedField, path)=>{
141
+ addTypeSelectionsForField(resolvedType, context, info, fieldState, resolvedField, path);
142
+ });
143
+ }
133
144
  addTypeSelectionsForField(returnType, context, info, fieldState, selection, []);
134
145
  // eslint-disable-next-line prefer-destructuring
135
146
  mappings = fieldState.mappings;
@@ -146,6 +157,7 @@ function addFieldSelection(type, context, info, state, selection, indirectPath)
146
157
  var ref6;
147
158
  state.mappings[(ref6 = (ref5 = selection.alias) === null || ref5 === void 0 ? void 0 : ref5.value) !== null && ref6 !== void 0 ? ref6 : selection.name.value] = {
148
159
  field: selection.name.value,
160
+ type: type.name,
149
161
  mappings,
150
162
  indirectPath
151
163
  };
@@ -159,6 +171,7 @@ function addFieldSelection(type, context, info, state, selection, indirectPath)
159
171
  var ref8;
160
172
  state.mappings[(ref8 = (ref7 = selection.alias) === null || ref7 === void 0 ? void 0 : ref7.value) !== null && ref8 !== void 0 ? ref8 : selection.name.value] = {
161
173
  field: selection.name.value,
174
+ type: type.name,
162
175
  mappings,
163
176
  indirectPath
164
177
  };
@@ -168,7 +181,7 @@ function queryFromInfo(context, info, typeName) {
168
181
  const type = typeName ? info.schema.getTypeMap()[typeName] : (0, _graphql).getNamedType(info.returnType);
169
182
  const state = createStateForType(type, info);
170
183
  addTypeSelectionsForField(type, context, info, state, info.fieldNodes[0], []);
171
- (0, _loaderMap).setLoaderMappings(context, info, state.mappings, type);
184
+ (0, _loaderMap).setLoaderMappings(context, info, state.mappings);
172
185
  return (0, _selections).selectionToQuery(state);
173
186
  }
174
187
  function selectionStateFromInfo(context, info, typeName) {
@@ -181,19 +194,44 @@ function selectionStateFromInfo(context, info, typeName) {
181
194
  return state;
182
195
  }
183
196
  function createStateForType(type, info, parent) {
184
- var ref, ref9;
197
+ var ref, ref12;
185
198
  const targetType = getIndirectType(type, info);
186
199
  const fieldMap = (ref = targetType.extensions) === null || ref === void 0 ? void 0 : ref.pothosPrismaFieldMap;
187
- return (0, _selections).createState(fieldMap, ((ref9 = targetType.extensions) === null || ref9 === void 0 ? void 0 : ref9.pothosPrismaSelect) ? 'select' : 'include', parent);
200
+ return (0, _selections).createState(fieldMap, ((ref12 = targetType.extensions) === null || ref12 === void 0 ? void 0 : ref12.pothosPrismaSelect) ? 'select' : 'include', parent);
188
201
  }
189
202
  function getIndirectType(type, info) {
190
203
  var ref;
191
204
  let targetType = type;
192
205
  while((ref = targetType.extensions) === null || ref === void 0 ? void 0 : ref.pothosPrismaIndirectInclude){
193
- var ref10;
194
- targetType = info.schema.getType(((ref10 = targetType.extensions) === null || ref10 === void 0 ? void 0 : ref10.pothosPrismaIndirectInclude).getType());
206
+ var ref13;
207
+ targetType = info.schema.getType(((ref13 = targetType.extensions) === null || ref13 === void 0 ? void 0 : ref13.pothosPrismaIndirectInclude).getType());
195
208
  }
196
209
  return targetType;
197
210
  }
211
+ function normalizeInclude(path, type) {
212
+ let currentType = type;
213
+ const normalized = [];
214
+ if (!(0, _graphql).isObjectType(currentType)) {
215
+ throw new Error(`Expected ${currentType} to be an Object type`);
216
+ }
217
+ for (const fieldName of path){
218
+ const field = currentType.getFields()[fieldName];
219
+ if (!field) {
220
+ throw new Error(`Expected ${currentType} to have a field ${fieldName}`);
221
+ }
222
+ currentType = (0, _graphql).getNamedType(field.type);
223
+ if (!(0, _graphql).isObjectType(currentType)) {
224
+ throw new Error(`Expected ${currentType} to be an Object type`);
225
+ }
226
+ normalized.push({
227
+ name: fieldName,
228
+ type: currentType.name
229
+ });
230
+ }
231
+ return {
232
+ getType: ()=>normalized.length > 0 ? normalized[normalized.length - 1].type : type.name,
233
+ path: normalized
234
+ };
235
+ }
198
236
 
199
237
  //# sourceMappingURL=map-query.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/map-query.ts"],"names":["queryFromInfo","selectionStateFromInfo","getIndirectType","addTypeSelectionsForField","type","context","info","state","selection","indirectPath","name","value","startsWith","pothosPrismaInclude","pothosPrismaSelect","pothosPrismaIndirectInclude","pothosPrismaModel","extensions","resolveIndirectInclude","path","resolvedType","field","isObjectType","mode","mergeSelection","select","undefined","include","selectionSet","addNestedSelections","includePath","resolve","rest","sel","selections","kind","Kind","FIELD","returnType","getNamedType","getFields","length","alias","FRAGMENT_SPREAD","fragments","typeCondition","schema","getType","INLINE_FRAGMENT","Error","addFieldSelection","fieldSelect","fieldSelectionMap","fieldParentSelect","pothosPrismaParentSelect","mappings","args","getArgumentValues","variableValues","rawQuery","query","fieldState","createStateForType","Object","keys","selectionToQuery","selectionCompatible","parent","typeName","getTypeMap","fieldNodes","setLoaderMappings","parentType","targetType","fieldMap","pothosPrismaFieldMap","createState"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/util/map-query.ts"],"names":["queryFromInfo","selectionStateFromInfo","getIndirectType","addTypeSelectionsForField","type","context","info","state","selection","indirectPath","name","value","startsWith","pothosPrismaInclude","pothosPrismaSelect","pothosPrismaIndirectInclude","pothosPrismaModel","extensions","resolveIndirectInclude","path","resolvedType","field","isObjectType","mode","mergeSelection","select","undefined","include","selectionSet","addNestedSelections","includePath","resolve","rest","sel","selections","kind","Kind","FIELD","returnType","getNamedType","getFields","length","alias","FRAGMENT_SPREAD","fragments","typeCondition","schema","getType","INLINE_FRAGMENT","Error","addFieldSelection","fieldSelect","fieldSelectionMap","fieldParentSelect","pothosPrismaParentSelect","mappings","args","getArgumentValues","variableValues","rawQuery","indirectInclude","query","normalizedIndirectInclude","Array","isArray","normalizeInclude","fieldState","createStateForType","Object","keys","resolvedField","selectionToQuery","selectionCompatible","parent","typeName","getTypeMap","fieldNodes","setLoaderMappings","parentType","targetType","fieldMap","pothosPrismaFieldMap","createState","currentType","normalized","fieldName","push"],"mappings":"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"}
@@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.createRelationMap = createRelationMap;
6
6
  exports.getRelationMap = void 0;
7
7
  var _core = require("@pothos/core");
8
- const getRelationMap = (0, _core).createContextCache((dmmf)=>createRelationMap(dmmf.datamodel)
9
- );
8
+ const getRelationMap = (0, _core).createContextCache((dmmf)=>createRelationMap(dmmf.datamodel));
10
9
  exports.getRelationMap = getRelationMap;
11
10
  function createRelationMap({ models }) {
12
11
  const relationMap = new Map();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/relation-map.ts"],"names":["createRelationMap","getRelationMap","createContextCache","dmmf","datamodel","models","relationMap","Map","forEach","model","set","name","relations","map","get","fields","field","kind","has","type"],"mappings":"AAAA;;;;QAcgBA,iBAAiB,GAAjBA,iBAAiB;;AAdE,IAAA,KAAc,WAAd,cAAc,CAAA;AAU1C,MAAMC,cAAc,GAAGC,CAAAA,GAAAA,KAAkB,AAE/C,CAAA,mBAF+C,CAAC,CAACC,IAA4B,GAC5EH,iBAAiB,CAACG,IAAI,CAACC,SAAS,CAAmB;AAAA,CACpD,AAAC;QAFWH,cAAc,GAAdA,cAAc;AAIpB,SAASD,iBAAiB,CAAC,EAAEK,MAAM,CAAA,EAAkB,EAAE;IAC5D,MAAMC,WAAW,GAAgB,IAAIC,GAAG,EAAE,AAAC;IAE3CF,MAAM,CAACG,OAAO,CAAC,CAACC,KAAK,GAAK;QACxBH,WAAW,CAACI,GAAG,CAACD,KAAK,CAACE,IAAI,EAAE;YAAEF,KAAK,EAAEA,KAAK,CAACE,IAAI;YAAEC,SAAS,EAAE,IAAIL,GAAG,EAAE;SAAE,CAAC,CAAC;KAC1E,CAAC,CAAC;IAEHF,MAAM,CAACG,OAAO,CAAC,CAACC,KAAK,GAAK;QACxB,MAAMI,GAAG,GAAGP,WAAW,CAACQ,GAAG,CAACL,KAAK,CAACE,IAAI,CAAC,CAAEC,SAAS,AAAC;QAEnDH,KAAK,CAACM,MAAM,CAACP,OAAO,CAAC,CAACQ,KAAK,GAAK;YAC9B,IAAIA,KAAK,CAACC,IAAI,KAAK,QAAQ,IAAIX,WAAW,CAACY,GAAG,CAACF,KAAK,CAACG,IAAI,CAAC,EAAE;gBAC1DN,GAAG,CAACH,GAAG,CAACM,KAAK,CAACL,IAAI,EAAEL,WAAW,CAACQ,GAAG,CAACE,KAAK,CAACG,IAAI,CAAC,CAAE,CAAC;aACnD;SACF,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,OAAOb,WAAW,CAAC;CACpB"}
1
+ {"version":3,"sources":["../../src/util/relation-map.ts"],"names":["createRelationMap","getRelationMap","createContextCache","dmmf","datamodel","models","relationMap","Map","forEach","model","set","name","relations","map","get","fields","field","kind","has","type"],"mappings":"AAAA;;;;QAcgBA,iBAAiB,GAAjBA,iBAAiB;;AAdE,IAAA,KAAc,WAAd,cAAc,CAAA;AAU1C,MAAMC,cAAc,GAAGC,CAAAA,GAAAA,KAAkB,AAE/C,CAAA,mBAF+C,CAAC,CAACC,IAA4B,GAC5EH,iBAAiB,CAACG,IAAI,CAACC,SAAS,CAAmB,CACpD,AAAC;QAFWH,cAAc,GAAdA,cAAc;AAIpB,SAASD,iBAAiB,CAAC,EAAEK,MAAM,CAAA,EAAkB,EAAE;IAC5D,MAAMC,WAAW,GAAgB,IAAIC,GAAG,EAAE,AAAC;IAE3CF,MAAM,CAACG,OAAO,CAAC,CAACC,KAAK,GAAK;QACxBH,WAAW,CAACI,GAAG,CAACD,KAAK,CAACE,IAAI,EAAE;YAAEF,KAAK,EAAEA,KAAK,CAACE,IAAI;YAAEC,SAAS,EAAE,IAAIL,GAAG,EAAE;SAAE,CAAC,CAAC;KAC1E,CAAC,CAAC;IAEHF,MAAM,CAACG,OAAO,CAAC,CAACC,KAAK,GAAK;QACxB,MAAMI,GAAG,GAAGP,WAAW,CAACQ,GAAG,CAACL,KAAK,CAACE,IAAI,CAAC,CAAEC,SAAS,AAAC;QAEnDH,KAAK,CAACM,MAAM,CAACP,OAAO,CAAC,CAACQ,KAAK,GAAK;YAC9B,IAAIA,KAAK,CAACC,IAAI,KAAK,QAAQ,IAAIX,WAAW,CAACY,GAAG,CAACF,KAAK,CAACG,IAAI,CAAC,EAAE;gBAC1DN,GAAG,CAACH,GAAG,CAACM,KAAK,CAACL,IAAI,EAAEL,WAAW,CAACQ,GAAG,CAACE,KAAK,CAACG,IAAI,CAAC,CAAE,CAAC;aACnD;SACF,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,OAAOb,WAAW,CAAC;CACpB"}
@@ -14,12 +14,10 @@ function selectionCompatible(state, selectionMap, ignoreQuery = false) {
14
14
  return ignoreQuery || !selectionMap || Object.keys(state.query).length === 0;
15
15
  }
16
16
  const { select , include , ...query } = selectionMap;
17
- if (select && Object.keys(select).some((key)=>compare(key, select[key])
18
- )) {
17
+ if (select && Object.keys(select).some((key)=>compare(key, select[key]))) {
19
18
  return false;
20
19
  }
21
- if (include && Object.keys(include).some((key)=>compare(key, include[key])
22
- )) {
20
+ if (include && Object.keys(include).some((key)=>compare(key, include[key]))) {
23
21
  return false;
24
22
  }
25
23
  return ignoreQuery || (0, _deepEqual).deepEqual(state.query, query);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/selections.ts"],"names":["selectionCompatible","stateCompatible","mergeState","createState","mergeSelection","selectionToQuery","state","selectionMap","ignoreQuery","Object","keys","query","length","select","include","some","key","compare","deepEqual","value","fieldMap","relations","has","get","newState","name","relationState","mode","fields","add","parent","Set","counts","Map","mappings","forEach","merge","count","selection","childMap","relatedState","set","nestedIncludes","hasSelection","sel","relation","nested","size","_count","field"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/util/selections.ts"],"names":["selectionCompatible","stateCompatible","mergeState","createState","mergeSelection","selectionToQuery","state","selectionMap","ignoreQuery","Object","keys","query","length","select","include","some","key","compare","deepEqual","value","fieldMap","relations","has","get","newState","name","relationState","mode","fields","add","parent","Set","counts","Map","mappings","forEach","merge","count","selection","childMap","relatedState","set","nestedIncludes","hasSelection","sel","relation","nested","size","_count","field"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pothos/plugin-prisma",
3
- "version": "3.8.0",
3
+ "version": "3.9.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",
@@ -40,20 +40,20 @@
40
40
  "@prisma/generator-helper": "^3.14.0"
41
41
  },
42
42
  "prisma": {
43
- "seed": "node -r @swc-node/register prisma/seed.ts"
43
+ "seed": "node prisma/seed.mjs"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "@pothos/core": "*",
47
47
  "@prisma/client": "*",
48
48
  "graphql": ">=15.1.0",
49
- "typescript": ">4.5.2"
49
+ "typescript": ">=4.7.2"
50
50
  },
51
51
  "devDependencies": {
52
- "@pothos/core": "3.11.0",
53
- "@pothos/plugin-errors": "3.4.0",
54
- "@pothos/plugin-relay": "3.11.0",
55
- "@pothos/plugin-scope-auth": "3.9.0",
56
- "@pothos/test-utils": "1.2.0",
52
+ "@pothos/core": "3.11.1",
53
+ "@pothos/plugin-errors": "3.4.2",
54
+ "@pothos/plugin-relay": "3.12.1",
55
+ "@pothos/plugin-scope-auth": "3.9.1",
56
+ "@pothos/test-utils": "1.2.2",
57
57
  "@prisma/client": "^3.14.0",
58
58
  "graphql": "16.5.0",
59
59
  "graphql-tag": "^2.12.6",
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import './global-types';
2
2
  import './field-builder';
3
3
  import './schema-builder';
4
- import { getNamedType, GraphQLFieldResolver } from 'graphql';
4
+ import { GraphQLFieldResolver } from 'graphql';
5
5
  import SchemaBuilder, {
6
6
  BasePlugin,
7
7
  BuildCache,
@@ -34,7 +34,17 @@ export class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
34
34
  ...fieldConfig.extensions,
35
35
  pothosPrismaSelect:
36
36
  typeof select === 'function'
37
- ? (args: {}, ctx: Types['Context']) => ({ select: select(args, ctx) })
37
+ ? (
38
+ args: {},
39
+ ctx: Types['Context'],
40
+ nestedQuery: (query: unknown, path?: string[]) => never,
41
+ ) => ({
42
+ select: (select as (args: unknown, ctx: unknown, nestedQuery: unknown) => {})(
43
+ args,
44
+ ctx,
45
+ nestedQuery,
46
+ ),
47
+ })
38
48
  : select,
39
49
  },
40
50
  };
@@ -67,7 +77,7 @@ export class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
67
77
  const mapping = getLoaderMapping(context, info.path, info.parentType.name);
68
78
 
69
79
  if ((!loadedCheck || loadedCheck(parent)) && mapping) {
70
- setLoaderMappings(context, info, mapping, getNamedType(info.returnType));
80
+ setLoaderMappings(context, info, mapping);
71
81
 
72
82
  return resolver(parent, args, context, info);
73
83
  }
@@ -84,7 +94,7 @@ export class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
84
94
  const mappings = selectionState.mappings[info.path.key];
85
95
 
86
96
  if (mappings) {
87
- setLoaderMappings(context, info, mappings.mappings, getNamedType(info.returnType));
97
+ setLoaderMappings(context, info, mappings.mappings);
88
98
  }
89
99
 
90
100
  return resolver(result, args, context, info);
package/src/node-ref.ts CHANGED
@@ -7,7 +7,7 @@ export default class PrismaNodeRef<Model extends PrismaModelTypes, T> extends Pr
7
7
  Model,
8
8
  T
9
9
  > {
10
- [abstractReturnShapeKey]: WithBrand<T>;
10
+ [abstractReturnShapeKey]!: WithBrand<T>;
11
11
 
12
12
  addBrand<V extends T | T[]>(
13
13
  value: V,
package/src/object-ref.ts CHANGED
@@ -4,5 +4,5 @@ import { PrismaModelTypes } from '.';
4
4
  export const prismaModelKey = Symbol.for('Pothos.prismaModelKey');
5
5
 
6
6
  export class PrismaObjectRef<Model extends PrismaModelTypes, T = {}> extends ObjectRef<T> {
7
- [prismaModelKey]: Model;
7
+ [prismaModelKey]!: Model;
8
8
  }
@@ -137,18 +137,29 @@ export class PrismaObjectFieldBuilder<
137
137
  const relationSelect = (
138
138
  args: object,
139
139
  context: object,
140
- nestedQuery: (query: unknown) => unknown,
140
+ nestedQuery: (query: unknown, path: unknown) => unknown,
141
141
  ) => ({
142
142
  select: {
143
- [name]: nestedQuery({
144
- ...((typeof query === 'function' ? query(args, context) : query) as {}),
145
- ...prismaCursorConnectionQuery({
146
- parseCursor,
147
- maxSize,
148
- defaultSize,
149
- args,
150
- }),
151
- }),
143
+ [name]: nestedQuery(
144
+ {
145
+ ...((typeof query === 'function' ? query(args, context) : query) as {}),
146
+ ...prismaCursorConnectionQuery({
147
+ parseCursor,
148
+ maxSize,
149
+ defaultSize,
150
+ args,
151
+ }),
152
+ },
153
+ {
154
+ getType: () => {
155
+ if (!typeName) {
156
+ typeName = this.builder.configStore.getTypeConfig(ref).name;
157
+ }
158
+ return typeName;
159
+ },
160
+ path: [{ name: 'edges' }, { name: 'node' }],
161
+ },
162
+ ),
152
163
  },
153
164
  });
154
165
 
@@ -216,18 +227,6 @@ export class PrismaObjectFieldBuilder<
216
227
  ...(connectionOptions as { fields?: (t: unknown) => {} }).fields?.(t),
217
228
  })
218
229
  : (connectionOptions as { fields: undefined }).fields,
219
- extensions: {
220
- ...(connectionOptions as Record<string, {}> | undefined)?.extensions,
221
- pothosPrismaIndirectInclude: {
222
- getType: () => {
223
- if (!typeName) {
224
- typeName = this.builder.configStore.getTypeConfig(ref).name;
225
- }
226
- return typeName;
227
- },
228
- path: [{ name: 'edges' }, { name: 'node' }],
229
- },
230
- },
231
230
  },
232
231
  edgeOptions,
233
232
  );
package/src/types.ts CHANGED
@@ -89,6 +89,10 @@ export type PrismaObjectFieldOptions<
89
89
  | ((
90
90
  args: InputShapeFromFields<Args>,
91
91
  ctx: Types['Context'],
92
+ nestedSelection: <Selection extends boolean | {}>(
93
+ selection?: Selection,
94
+ path?: string[],
95
+ ) => Selection,
92
96
  ) => ExtractModel<Types, ParentShape>['Select'])
93
97
  );
94
98
  };
@@ -564,8 +568,9 @@ export type FieldSelection =
564
568
  | ((
565
569
  args: object,
566
570
  context: object,
567
- query: (
571
+ mergeNestedSelection: (
568
572
  selection: SelectionMap | boolean | ((args: object, context: object) => SelectionMap),
573
+ path?: string[] | IndirectInclude,
569
574
  ) => SelectionMap | boolean,
570
575
  ) => SelectionMap);
571
576
 
@@ -573,6 +578,7 @@ export type LoaderMappings = Record<
573
578
  string,
574
579
  {
575
580
  field: string;
581
+ type: string;
576
582
  mappings: LoaderMappings;
577
583
  indirectPath: string[];
578
584
  }
@@ -1,7 +1,6 @@
1
- import { GraphQLNamedType, GraphQLResolveInfo } from 'graphql';
1
+ import { GraphQLResolveInfo } from 'graphql';
2
2
  import { createContextCache } from '@pothos/core';
3
3
  import { LoaderMappings } from '../types';
4
- import { getIndirectType } from './map-query';
5
4
 
6
5
  const cache = createContextCache((ctx) => new Map<string, LoaderMappings>());
7
6
 
@@ -23,18 +22,13 @@ export function cacheKey(type: string, path: GraphQLResolveInfo['path'], subPath
23
22
  return `${type}@${key}`;
24
23
  }
25
24
 
26
- export function setLoaderMappings(
27
- ctx: object,
28
- info: GraphQLResolveInfo,
29
- value: LoaderMappings,
30
- type: GraphQLNamedType,
31
- ) {
25
+ export function setLoaderMappings(ctx: object, info: GraphQLResolveInfo, value: LoaderMappings) {
32
26
  Object.keys(value).forEach((field) => {
33
27
  const map = cache(ctx);
34
28
 
35
29
  const mapping = value[field];
36
30
  const subPath = [...mapping.indirectPath, field];
37
- const key = cacheKey(getIndirectType(type, info).name, info.path, subPath);
31
+ const key = cacheKey(mapping.type, info.path, subPath);
38
32
 
39
33
  map.set(key, mapping.mappings);
40
34
  });
@@ -4,6 +4,7 @@ import {
4
4
  FieldNode,
5
5
  FragmentDefinitionNode,
6
6
  getNamedType,
7
+ GraphQLField,
7
8
  GraphQLNamedType,
8
9
  GraphQLObjectType,
9
10
  GraphQLResolveInfo,
@@ -232,16 +233,45 @@ function addFieldSelection(
232
233
  unknown
233
234
  >;
234
235
 
235
- fieldSelectionMap = fieldSelect(args, context, (rawQuery) => {
236
+ fieldSelectionMap = fieldSelect(args, context, (rawQuery, indirectInclude) => {
236
237
  const returnType = getNamedType(field.type);
237
238
  const query = typeof rawQuery === 'function' ? rawQuery(args, context) : rawQuery;
238
239
 
239
- const fieldState = createStateForType(returnType, info, state);
240
+ const normalizedIndirectInclude = Array.isArray(indirectInclude)
241
+ ? normalizeInclude(indirectInclude, getIndirectType(returnType, info))
242
+ : indirectInclude;
243
+
244
+ const fieldState = createStateForType(
245
+ getIndirectType(
246
+ normalizedIndirectInclude
247
+ ? info.schema.getType(normalizedIndirectInclude.getType())!
248
+ : returnType,
249
+ info,
250
+ ),
251
+ info,
252
+ state,
253
+ );
240
254
 
241
255
  if (typeof query === 'object' && Object.keys(query).length > 0) {
242
256
  mergeSelection(fieldState, { select: {}, ...query });
243
257
  }
244
258
 
259
+ if (normalizedIndirectInclude && normalizedIndirectInclude.path.length > 0) {
260
+ resolveIndirectInclude(
261
+ returnType,
262
+ info,
263
+ selection,
264
+ [
265
+ ...((returnType.extensions?.pothosPrismaIndirectInclude as { path: [] })?.path ?? []),
266
+ ...normalizedIndirectInclude.path,
267
+ ],
268
+ [],
269
+ (resolvedType, resolvedField, path) => {
270
+ addTypeSelectionsForField(resolvedType, context, info, fieldState, resolvedField, path);
271
+ },
272
+ );
273
+ }
274
+
245
275
  addTypeSelectionsForField(returnType, context, info, fieldState, selection, []);
246
276
 
247
277
  // eslint-disable-next-line prefer-destructuring
@@ -257,6 +287,7 @@ function addFieldSelection(
257
287
  mergeSelection(state, fieldSelectionMap);
258
288
  state.mappings[selection.alias?.value ?? selection.name.value] = {
259
289
  field: selection.name.value,
290
+ type: type.name,
260
291
  mappings,
261
292
  indirectPath,
262
293
  };
@@ -268,6 +299,7 @@ function addFieldSelection(
268
299
  mergeSelection(state.parent, { select: fieldParentSelect });
269
300
  state.mappings[selection.alias?.value ?? selection.name.value] = {
270
301
  field: selection.name.value,
302
+ type: type.name,
271
303
  mappings,
272
304
  indirectPath,
273
305
  };
@@ -280,7 +312,7 @@ export function queryFromInfo(context: object, info: GraphQLResolveInfo, typeNam
280
312
 
281
313
  addTypeSelectionsForField(type, context, info, state, info.fieldNodes[0], []);
282
314
 
283
- setLoaderMappings(context, info, state.mappings, type);
315
+ setLoaderMappings(context, info, state.mappings);
284
316
 
285
317
  return selectionToQuery(state);
286
318
  }
@@ -330,3 +362,34 @@ export function getIndirectType(type: GraphQLNamedType, info: GraphQLResolveInfo
330
362
 
331
363
  return targetType;
332
364
  }
365
+
366
+ function normalizeInclude(path: string[], type: GraphQLNamedType) {
367
+ let currentType = type;
368
+
369
+ const normalized: { name: string; type: string }[] = [];
370
+
371
+ if (!isObjectType(currentType)) {
372
+ throw new Error(`Expected ${currentType} to be an Object type`);
373
+ }
374
+
375
+ for (const fieldName of path) {
376
+ const field: GraphQLField<unknown, unknown> = currentType.getFields()[fieldName];
377
+
378
+ if (!field) {
379
+ throw new Error(`Expected ${currentType} to have a field ${fieldName}`);
380
+ }
381
+
382
+ currentType = getNamedType(field.type);
383
+
384
+ if (!isObjectType(currentType)) {
385
+ throw new Error(`Expected ${currentType} to be an Object type`);
386
+ }
387
+
388
+ normalized.push({ name: fieldName, type: currentType.name });
389
+ }
390
+
391
+ return {
392
+ getType: () => (normalized.length > 0 ? normalized[normalized.length - 1].type : type.name),
393
+ path: normalized,
394
+ };
395
+ }