@k0lyan/nestjs-prisma-graphql-generator 0.5.4 → 0.5.5

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.
@@ -1097,8 +1097,19 @@ function generateSharedInputField(field, dmmf, currentTypeName) {
1097
1097
  function generateHelpersGrouped() {
1098
1098
  return {
1099
1099
  path: 'helpers.ts',
1100
- content: `import { parseResolveInfo, simplifyParsedResolveInfoFragmentWithType, ResolveTree } from 'graphql-parse-resolve-info';
1101
- import type { GraphQLResolveInfo } from 'graphql';
1100
+ content: `import type {
1101
+ GraphQLResolveInfo,
1102
+ SelectionSetNode,
1103
+ FieldNode,
1104
+ GraphQLOutputType,
1105
+ GraphQLObjectType,
1106
+ GraphQLField,
1107
+ } from 'graphql';
1108
+ import {
1109
+ isObjectType,
1110
+ isListType,
1111
+ isNonNullType,
1112
+ } from 'graphql';
1102
1113
 
1103
1114
  export interface PrismaSelect {
1104
1115
  select?: Record<string, boolean | PrismaSelect>;
@@ -1140,50 +1151,149 @@ const EXCLUDED_FIELDS = new Set([
1140
1151
  '_max',
1141
1152
  ]);
1142
1153
 
1143
- export function transformInfoIntoPrismaArgs(info: GraphQLResolveInfo): PrismaSelect {
1144
- const parsedInfo = parseResolveInfo(info);
1145
-
1146
- if (!parsedInfo) {
1147
- return {};
1154
+ /**
1155
+ * Unwrap GraphQL type to get the underlying object type
1156
+ * Handles NonNull and List wrappers
1157
+ */
1158
+ function unwrapType(type: GraphQLOutputType): GraphQLObjectType | null {
1159
+ let unwrapped = type;
1160
+
1161
+ // Unwrap NonNull and List wrappers
1162
+ while (isNonNullType(unwrapped) || isListType(unwrapped)) {
1163
+ unwrapped = unwrapped.ofType;
1148
1164
  }
1149
1165
 
1150
- const simplifiedInfo = simplifyParsedResolveInfoFragmentWithType(
1151
- parsedInfo as ResolveTree,
1152
- info.returnType,
1153
- );
1166
+ return isObjectType(unwrapped) ? unwrapped : null;
1167
+ }
1154
1168
 
1155
- return buildPrismaSelect(simplifiedInfo.fields);
1169
+ /**
1170
+ * Get field definition from a GraphQL object type
1171
+ */
1172
+ function getFieldDef(
1173
+ parentType: GraphQLObjectType,
1174
+ fieldName: string,
1175
+ ): GraphQLField<unknown, unknown> | undefined {
1176
+ const fields = parentType.getFields();
1177
+ return fields[fieldName];
1156
1178
  }
1157
1179
 
1158
- function buildPrismaSelect(fields: Record<string, ResolveTree>): PrismaSelect {
1180
+ /**
1181
+ * Parse a selection set into a Prisma select object
1182
+ */
1183
+ function parseSelectionSet(
1184
+ selectionSet: SelectionSetNode | undefined,
1185
+ parentType: GraphQLObjectType,
1186
+ info: GraphQLResolveInfo,
1187
+ ): Record<string, boolean | PrismaSelect> {
1159
1188
  const select: Record<string, boolean | PrismaSelect> = {};
1160
1189
 
1161
- for (const [fieldName, fieldInfo] of Object.entries(fields)) {
1162
- if (EXCLUDED_FIELDS.has(fieldName)) {
1163
- continue;
1164
- }
1190
+ if (!selectionSet) {
1191
+ return select;
1192
+ }
1165
1193
 
1166
- const nestedFields = fieldInfo.fieldsByTypeName;
1167
- const nestedTypes = Object.keys(nestedFields);
1194
+ for (const selection of selectionSet.selections) {
1195
+ // Handle field selections
1196
+ if (selection.kind === 'Field') {
1197
+ const fieldName = selection.name.value;
1198
+
1199
+ // Skip excluded fields
1200
+ if (EXCLUDED_FIELDS.has(fieldName)) {
1201
+ continue;
1202
+ }
1168
1203
 
1169
- if (nestedTypes.length > 0) {
1170
- const allNestedFields: Record<string, ResolveTree> = {};
1171
- for (const typeName of nestedTypes) {
1172
- Object.assign(allNestedFields, nestedFields[typeName]);
1204
+ // Get the field definition from the schema
1205
+ const fieldDef = getFieldDef(parentType, fieldName);
1206
+ if (!fieldDef) {
1207
+ // Field not found in schema, skip it
1208
+ continue;
1173
1209
  }
1174
1210
 
1175
- const nestedSelect = buildPrismaSelect(allNestedFields);
1176
-
1177
- if (Object.keys(nestedSelect).length > 0) {
1178
- select[fieldName] = nestedSelect;
1211
+ // Check if this field has nested selections (relation)
1212
+ if (selection.selectionSet) {
1213
+ // Get the return type of the field
1214
+ const fieldType = unwrapType(fieldDef.type);
1215
+
1216
+ if (fieldType) {
1217
+ // Recursively parse nested selections
1218
+ const nestedSelect = parseSelectionSet(
1219
+ selection.selectionSet,
1220
+ fieldType,
1221
+ info,
1222
+ );
1223
+
1224
+ if (Object.keys(nestedSelect).length > 0) {
1225
+ select[fieldName] = { select: nestedSelect };
1226
+ } else {
1227
+ select[fieldName] = true;
1228
+ }
1229
+ } else {
1230
+ select[fieldName] = true;
1231
+ }
1179
1232
  } else {
1233
+ // Scalar field
1180
1234
  select[fieldName] = true;
1181
1235
  }
1182
- } else {
1183
- select[fieldName] = true;
1184
1236
  }
1237
+ // Handle fragment spreads
1238
+ else if (selection.kind === 'FragmentSpread') {
1239
+ const fragmentName = selection.name.value;
1240
+ const fragment = info.fragments[fragmentName];
1241
+
1242
+ if (fragment) {
1243
+ // Get the type the fragment is on
1244
+ const fragmentTypeName = fragment.typeCondition.name.value;
1245
+ const fragmentType = info.schema.getType(fragmentTypeName);
1246
+
1247
+ if (fragmentType && isObjectType(fragmentType)) {
1248
+ const fragmentSelect = parseSelectionSet(
1249
+ fragment.selectionSet,
1250
+ fragmentType,
1251
+ info,
1252
+ );
1253
+ Object.assign(select, fragmentSelect);
1254
+ }
1255
+ }
1256
+ }
1257
+ // Handle inline fragments
1258
+ else if (selection.kind === 'InlineFragment') {
1259
+ let fragmentType: GraphQLObjectType | null = parentType;
1260
+
1261
+ if (selection.typeCondition) {
1262
+ const typeName = selection.typeCondition.name.value;
1263
+ const conditionType = info.schema.getType(typeName);
1264
+ fragmentType = conditionType && isObjectType(conditionType) ? conditionType : null;
1265
+ }
1266
+
1267
+ if (fragmentType) {
1268
+ const inlineSelect = parseSelectionSet(
1269
+ selection.selectionSet,
1270
+ fragmentType,
1271
+ info,
1272
+ );
1273
+ Object.assign(select, inlineSelect);
1274
+ }
1275
+ }
1276
+ }
1277
+
1278
+ return select;
1279
+ }
1280
+
1281
+ export function transformInfoIntoPrismaArgs(info: GraphQLResolveInfo): PrismaSelect {
1282
+ // Get the first field node
1283
+ const fieldNode = info.fieldNodes[0];
1284
+ if (!fieldNode?.selectionSet) {
1285
+ return {};
1185
1286
  }
1186
1287
 
1288
+ // Get the return type of the query/mutation field
1289
+ const returnType = unwrapType(info.returnType);
1290
+ if (!returnType) {
1291
+ return {};
1292
+ }
1293
+
1294
+ // Parse the selection set
1295
+ const select = parseSelectionSet(fieldNode.selectionSet, returnType, info);
1296
+
1187
1297
  if (Object.keys(select).length === 0) {
1188
1298
  return {};
1189
1299
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-grouped-fast.js","sourceRoot":"","sources":["../../src/generator/generate-grouped-fast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-grouped-fast.js","sourceRoot":"","sources":["../../src/generator/generate-grouped-fast.ts"],"names":[],"mappings":"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"}
@@ -23,14 +23,25 @@ function generateHelpersFile(sourceFile, _config) {
23
23
  *
24
24
  * These helpers are used at runtime to transform GraphQL queries
25
25
  * into optimized Prisma select/include objects.
26
+ *
27
+ * This implementation uses manual AST parsing of GraphQL field nodes
28
+ * to avoid issues with the graphql-parse-resolve-info library.
26
29
  */
27
30
 
28
- import type { GraphQLResolveInfo } from 'graphql';
31
+ import type {
32
+ GraphQLResolveInfo,
33
+ SelectionSetNode,
34
+ FieldNode,
35
+ GraphQLOutputType,
36
+ GraphQLObjectType,
37
+ GraphQLField,
38
+ } from 'graphql';
29
39
  import {
30
- parseResolveInfo,
31
- simplifyParsedResolveInfoFragmentWithType,
32
- ResolveTree,
33
- } from 'graphql-parse-resolve-info';
40
+ isObjectType,
41
+ isListType,
42
+ isNonNullType,
43
+ getNamedType,
44
+ } from 'graphql';
34
45
 
35
46
  /**
36
47
  * Prisma select/include object type
@@ -75,62 +86,157 @@ const EXCLUDED_FIELDS = new Set([
75
86
  ]);
76
87
 
77
88
  /**
78
- * Transform GraphQL resolve info into Prisma select/include arguments
79
- *
80
- * This is the core optimization function that analyzes the GraphQL query
81
- * and builds an optimal Prisma query with only the requested fields.
82
- *
83
- * @param info - GraphQL resolve info from the resolver
84
- * @returns Prisma select object
89
+ * Unwrap GraphQL type to get the underlying object type
90
+ * Handles NonNull and List wrappers
85
91
  */
86
- export function transformInfoIntoPrismaArgs(info: GraphQLResolveInfo): PrismaSelect {
87
- const parsedInfo = parseResolveInfo(info);
88
-
89
- if (!parsedInfo) {
90
- return {};
92
+ function unwrapType(type: GraphQLOutputType): GraphQLObjectType | null {
93
+ let unwrapped = type;
94
+
95
+ // Unwrap NonNull and List wrappers
96
+ while (isNonNullType(unwrapped) || isListType(unwrapped)) {
97
+ unwrapped = unwrapped.ofType;
91
98
  }
92
99
 
93
- const simplifiedInfo = simplifyParsedResolveInfoFragmentWithType(
94
- parsedInfo as ResolveTree,
95
- info.returnType,
96
- );
100
+ return isObjectType(unwrapped) ? unwrapped : null;
101
+ }
97
102
 
98
- return buildPrismaSelect(simplifiedInfo.fields);
103
+ /**
104
+ * Get field definition from a GraphQL object type
105
+ */
106
+ function getFieldDef(
107
+ parentType: GraphQLObjectType,
108
+ fieldName: string,
109
+ ): GraphQLField<unknown, unknown> | undefined {
110
+ const fields = parentType.getFields();
111
+ return fields[fieldName];
99
112
  }
100
113
 
101
114
  /**
102
- * Build Prisma select object from parsed GraphQL fields
115
+ * Parse a selection set into a Prisma select object
103
116
  */
104
- function buildPrismaSelect(fields: Record<string, ResolveTree>): PrismaSelect {
117
+ function parseSelectionSet(
118
+ selectionSet: SelectionSetNode | undefined,
119
+ parentType: GraphQLObjectType,
120
+ info: GraphQLResolveInfo,
121
+ ): Record<string, boolean | PrismaSelect> {
105
122
  const select: Record<string, boolean | PrismaSelect> = {};
106
123
 
107
- for (const [fieldName, fieldInfo] of Object.entries(fields)) {
108
- if (EXCLUDED_FIELDS.has(fieldName)) {
109
- continue;
110
- }
124
+ if (!selectionSet) {
125
+ return select;
126
+ }
127
+
128
+ for (const selection of selectionSet.selections) {
129
+ // Handle field selections
130
+ if (selection.kind === 'Field') {
131
+ const fieldName = selection.name.value;
111
132
 
112
- const nestedFields = fieldInfo.fieldsByTypeName;
113
- const nestedTypes = Object.keys(nestedFields);
133
+ // Skip excluded fields
134
+ if (EXCLUDED_FIELDS.has(fieldName)) {
135
+ continue;
136
+ }
114
137
 
115
- if (nestedTypes.length > 0) {
116
- // Relation field
117
- const allNestedFields: Record<string, ResolveTree> = {};
118
- for (const typeName of nestedTypes) {
119
- Object.assign(allNestedFields, nestedFields[typeName]);
138
+ // Get the field definition from the schema
139
+ const fieldDef = getFieldDef(parentType, fieldName);
140
+ if (!fieldDef) {
141
+ // Field not found in schema, skip it
142
+ continue;
120
143
  }
121
144
 
122
- const nestedSelect = buildPrismaSelect(allNestedFields);
123
-
124
- if (Object.keys(nestedSelect).length > 0) {
125
- select[fieldName] = nestedSelect;
145
+ // Check if this field has nested selections (relation)
146
+ if (selection.selectionSet) {
147
+ // Get the return type of the field
148
+ const fieldType = unwrapType(fieldDef.type);
149
+
150
+ if (fieldType) {
151
+ // Recursively parse nested selections
152
+ const nestedSelect = parseSelectionSet(
153
+ selection.selectionSet,
154
+ fieldType,
155
+ info,
156
+ );
157
+
158
+ if (Object.keys(nestedSelect).length > 0) {
159
+ select[fieldName] = { select: nestedSelect };
160
+ } else {
161
+ select[fieldName] = true;
162
+ }
163
+ } else {
164
+ select[fieldName] = true;
165
+ }
126
166
  } else {
167
+ // Scalar field
127
168
  select[fieldName] = true;
128
169
  }
129
- } else {
130
- select[fieldName] = true;
170
+ }
171
+ // Handle fragment spreads
172
+ else if (selection.kind === 'FragmentSpread') {
173
+ const fragmentName = selection.name.value;
174
+ const fragment = info.fragments[fragmentName];
175
+
176
+ if (fragment) {
177
+ // Get the type the fragment is on
178
+ const fragmentTypeName = fragment.typeCondition.name.value;
179
+ const fragmentType = info.schema.getType(fragmentTypeName);
180
+
181
+ if (fragmentType && isObjectType(fragmentType)) {
182
+ const fragmentSelect = parseSelectionSet(
183
+ fragment.selectionSet,
184
+ fragmentType,
185
+ info,
186
+ );
187
+ Object.assign(select, fragmentSelect);
188
+ }
189
+ }
190
+ }
191
+ // Handle inline fragments
192
+ else if (selection.kind === 'InlineFragment') {
193
+ let fragmentType: GraphQLObjectType | null = parentType;
194
+
195
+ if (selection.typeCondition) {
196
+ const typeName = selection.typeCondition.name.value;
197
+ const conditionType = info.schema.getType(typeName);
198
+ fragmentType = conditionType && isObjectType(conditionType) ? conditionType : null;
199
+ }
200
+
201
+ if (fragmentType) {
202
+ const inlineSelect = parseSelectionSet(
203
+ selection.selectionSet,
204
+ fragmentType,
205
+ info,
206
+ );
207
+ Object.assign(select, inlineSelect);
208
+ }
131
209
  }
132
210
  }
133
211
 
212
+ return select;
213
+ }
214
+
215
+ /**
216
+ * Transform GraphQL resolve info into Prisma select/include arguments
217
+ *
218
+ * This is the core optimization function that analyzes the GraphQL query
219
+ * and builds an optimal Prisma query with only the requested fields.
220
+ *
221
+ * @param info - GraphQL resolve info from the resolver
222
+ * @returns Prisma select object
223
+ */
224
+ export function transformInfoIntoPrismaArgs(info: GraphQLResolveInfo): PrismaSelect {
225
+ // Get the first field node
226
+ const fieldNode = info.fieldNodes[0];
227
+ if (!fieldNode?.selectionSet) {
228
+ return {};
229
+ }
230
+
231
+ // Get the return type of the query/mutation field
232
+ const returnType = unwrapType(info.returnType);
233
+ if (!returnType) {
234
+ return {};
235
+ }
236
+
237
+ // Parse the selection set
238
+ const select = parseSelectionSet(fieldNode.selectionSet, returnType, info);
239
+
134
240
  if (Object.keys(select).length === 0) {
135
241
  return {};
136
242
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helpers-generator.js","sourceRoot":"","sources":["../../src/generator/helpers-generator.ts"],"names":[],"mappings":";;AAOA,0CAaC;AAhBD;;GAEG;AACH,SAAgB,eAAe,CAC7B,OAAgB,EAChB,MAAuB;IAEvB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE5C,6BAA6B;IAC7B,MAAM,WAAW,GAAG,YAAY,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEpC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,UAAsB,EAAE,OAAwB;IAC3E,UAAU,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwO1B,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"helpers-generator.js","sourceRoot":"","sources":["../../src/generator/helpers-generator.ts"],"names":[],"mappings":";;AAOA,0CAaC;AAhBD;;GAEG;AACH,SAAgB,eAAe,CAC7B,OAAgB,EAChB,MAAuB;IAEvB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE5C,6BAA6B;IAC7B,MAAM,WAAW,GAAG,YAAY,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEpC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,UAAsB,EAAE,OAAwB;IAC3E,UAAU,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkV1B,CAAC,CAAC;AACH,CAAC"}
@@ -3,6 +3,9 @@
3
3
  *
4
4
  * These helpers are used at runtime to transform GraphQL queries
5
5
  * into optimized Prisma select/include objects.
6
+ *
7
+ * This implementation uses manual AST parsing of GraphQL field nodes
8
+ * to avoid issues with the graphql-parse-resolve-info library.
6
9
  */
7
10
  import type { GraphQLResolveInfo } from 'graphql';
8
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/runtime/helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc,CAAC,YAAY,GAAG,OAAO;IACpD,MAAM,EAAE,YAAY,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAQD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,kBAAkB,GAAG,YAAY,CAalF;AAwDD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,kBAAkB,GACvB,mBAAmB,CAyDrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,GAAG,OAAO,EACzD,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,GACpC,YAAY,CASd;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CAO3E"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/runtime/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAIV,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc,CAAC,YAAY,GAAG,OAAO;IACpD,MAAM,EAAE,YAAY,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA2HD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,kBAAkB,GAAG,YAAY,CAqBlF;AAOD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,kBAAkB,GACvB,mBAAmB,CAyDrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,GAAG,OAAO,EACzD,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,GACpC,YAAY,CASd;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CAO3E"}
@@ -4,18 +4,115 @@
4
4
  *
5
5
  * These helpers are used at runtime to transform GraphQL queries
6
6
  * into optimized Prisma select/include objects.
7
+ *
8
+ * This implementation uses manual AST parsing of GraphQL field nodes
9
+ * to avoid issues with the graphql-parse-resolve-info library.
7
10
  */
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.transformInfoIntoPrismaArgs = transformInfoIntoPrismaArgs;
10
13
  exports.transformInfoIntoPrismaAggregateArgs = transformInfoIntoPrismaAggregateArgs;
11
14
  exports.getPrismaFromContext = getPrismaFromContext;
12
15
  exports.mergePrismaSelects = mergePrismaSelects;
13
- const graphql_parse_resolve_info_1 = require("graphql-parse-resolve-info");
16
+ const graphql_1 = require("graphql");
14
17
  /**
15
18
  * Fields that should be excluded from selection
16
19
  * These are GraphQL internal fields or aggregation fields
17
20
  */
18
21
  const EXCLUDED_FIELDS = new Set(['__typename', '_count', '_avg', '_sum', '_min', '_max']);
22
+ /**
23
+ * Unwrap GraphQL type to get the underlying object type
24
+ * Handles NonNull and List wrappers
25
+ */
26
+ function unwrapType(type) {
27
+ let unwrapped = type;
28
+ // Unwrap NonNull and List wrappers
29
+ while ((0, graphql_1.isNonNullType)(unwrapped) || (0, graphql_1.isListType)(unwrapped)) {
30
+ unwrapped = unwrapped.ofType;
31
+ }
32
+ return (0, graphql_1.isObjectType)(unwrapped) ? unwrapped : null;
33
+ }
34
+ /**
35
+ * Get field definition from a GraphQL object type
36
+ */
37
+ function getFieldDef(parentType, fieldName) {
38
+ const fields = parentType.getFields();
39
+ return fields[fieldName];
40
+ }
41
+ /**
42
+ * Parse a selection set into a Prisma select object
43
+ */
44
+ function parseSelectionSet(selectionSet, parentType, info) {
45
+ const select = {};
46
+ if (!selectionSet) {
47
+ return select;
48
+ }
49
+ for (const selection of selectionSet.selections) {
50
+ // Handle field selections
51
+ if (selection.kind === 'Field') {
52
+ const fieldName = selection.name.value;
53
+ // Skip excluded fields
54
+ if (EXCLUDED_FIELDS.has(fieldName)) {
55
+ continue;
56
+ }
57
+ // Get the field definition from the schema
58
+ const fieldDef = getFieldDef(parentType, fieldName);
59
+ if (!fieldDef) {
60
+ // Field not found in schema, skip it
61
+ continue;
62
+ }
63
+ // Check if this field has nested selections (relation)
64
+ if (selection.selectionSet) {
65
+ // Get the return type of the field
66
+ const fieldType = unwrapType(fieldDef.type);
67
+ if (fieldType) {
68
+ // Recursively parse nested selections
69
+ const nestedSelect = parseSelectionSet(selection.selectionSet, fieldType, info);
70
+ if (Object.keys(nestedSelect).length > 0) {
71
+ select[fieldName] = { select: nestedSelect };
72
+ }
73
+ else {
74
+ select[fieldName] = true;
75
+ }
76
+ }
77
+ else {
78
+ select[fieldName] = true;
79
+ }
80
+ }
81
+ else {
82
+ // Scalar field
83
+ select[fieldName] = true;
84
+ }
85
+ }
86
+ // Handle fragment spreads
87
+ else if (selection.kind === 'FragmentSpread') {
88
+ const fragmentName = selection.name.value;
89
+ const fragment = info.fragments[fragmentName];
90
+ if (fragment) {
91
+ // Get the type the fragment is on
92
+ const fragmentTypeName = fragment.typeCondition.name.value;
93
+ const fragmentType = info.schema.getType(fragmentTypeName);
94
+ if (fragmentType && (0, graphql_1.isObjectType)(fragmentType)) {
95
+ const fragmentSelect = parseSelectionSet(fragment.selectionSet, fragmentType, info);
96
+ Object.assign(select, fragmentSelect);
97
+ }
98
+ }
99
+ }
100
+ // Handle inline fragments
101
+ else if (selection.kind === 'InlineFragment') {
102
+ let fragmentType = parentType;
103
+ if (selection.typeCondition) {
104
+ const typeName = selection.typeCondition.name.value;
105
+ const conditionType = info.schema.getType(typeName);
106
+ fragmentType = conditionType && (0, graphql_1.isObjectType)(conditionType) ? conditionType : null;
107
+ }
108
+ if (fragmentType) {
109
+ const inlineSelect = parseSelectionSet(selection.selectionSet, fragmentType, info);
110
+ Object.assign(select, inlineSelect);
111
+ }
112
+ }
113
+ }
114
+ return select;
115
+ }
19
116
  /**
20
117
  * Transform GraphQL resolve info into Prisma select/include arguments
21
118
  *
@@ -37,50 +134,18 @@ const EXCLUDED_FIELDS = new Set(['__typename', '_count', '_avg', '_sum', '_min',
37
134
  * ```
38
135
  */
39
136
  function transformInfoIntoPrismaArgs(info) {
40
- const parsedInfo = (0, graphql_parse_resolve_info_1.parseResolveInfo)(info);
41
- if (!parsedInfo) {
137
+ // Get the first field node
138
+ const fieldNode = info.fieldNodes[0];
139
+ if (!fieldNode?.selectionSet) {
42
140
  return {};
43
141
  }
44
- const simplifiedInfo = (0, graphql_parse_resolve_info_1.simplifyParsedResolveInfoFragmentWithType)(parsedInfo, info.returnType);
45
- return buildPrismaSelect(simplifiedInfo.fields);
46
- }
47
- /**
48
- * Build Prisma select object from parsed GraphQL fields
49
- *
50
- * @param fields - Parsed fields from graphql-parse-resolve-info
51
- * @returns Prisma select object
52
- */
53
- function buildPrismaSelect(fields) {
54
- const select = {};
55
- for (const [fieldName, fieldInfo] of Object.entries(fields)) {
56
- // Skip excluded fields
57
- if (EXCLUDED_FIELDS.has(fieldName)) {
58
- continue;
59
- }
60
- // Check if field has nested selections (relation)
61
- const nestedFields = fieldInfo.fieldsByTypeName;
62
- const nestedTypes = Object.keys(nestedFields);
63
- if (nestedTypes.length > 0) {
64
- // This is a relation field - need to use include or nested select
65
- // Merge fields from all possible types (for union/interface types)
66
- const allNestedFields = {};
67
- for (const typeName of nestedTypes) {
68
- Object.assign(allNestedFields, nestedFields[typeName]);
69
- }
70
- // Recursively build select for nested fields
71
- const nestedSelect = buildPrismaSelect(allNestedFields);
72
- if (Object.keys(nestedSelect).length > 0) {
73
- select[fieldName] = nestedSelect;
74
- }
75
- else {
76
- select[fieldName] = true;
77
- }
78
- }
79
- else {
80
- // Scalar field
81
- select[fieldName] = true;
82
- }
142
+ // Get the return type of the query/mutation field
143
+ const returnType = unwrapType(info.returnType);
144
+ if (!returnType) {
145
+ return {};
83
146
  }
147
+ // Parse the selection set
148
+ const select = parseSelectionSet(fieldNode.selectionSet, returnType, info);
84
149
  if (Object.keys(select).length === 0) {
85
150
  return {};
86
151
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/runtime/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/runtime/helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k0lyan/nestjs-prisma-graphql-generator",
3
- "version": "0.5.4",
3
+ "version": "0.5.5",
4
4
  "description": "Prisma generator for NestJS 11 GraphQL with optimized query building from GraphQL selections",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",