@k0lyan/nestjs-prisma-graphql-generator 0.8.5 → 0.8.7

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.
@@ -22,7 +22,7 @@ async function generateCodeGrouped(dmmf, config) {
22
22
  // Generate common types (including shared input types like IntFilter, StringFilter, etc.)
23
23
  files.push(...generateCommonTypesGrouped(dmmf, allModelNames));
24
24
  // Generate helpers
25
- files.push(generateHelpersGrouped());
25
+ files.push(generateHelpersGrouped(config));
26
26
  // Generate per-model files under models/ folder
27
27
  for (const model of dmmf.models) {
28
28
  files.push(...generateModelGrouped(model, dmmf, config, inputTypeNames, allModelNames));
@@ -629,10 +629,10 @@ function generateModelResolver(model, ops, config) {
629
629
  nestjsImports.push('Mutation');
630
630
  lines.push(`import { ${nestjsImports.join(', ')} } from '@nestjs/graphql';`);
631
631
  lines.push(`import { GraphQLResolveInfo } from 'graphql';`);
632
- lines.push(`import { PrismaClient, Prisma } from '${prismaClientPath}';`);
632
+ lines.push(`import { PrismaClient } from '${prismaClientPath}';`);
633
633
  lines.push(`import { ${m} } from './model';`);
634
634
  lines.push(`import { AffectedRows } from '../../common/AffectedRows';`);
635
- lines.push(`import { transformInfoIntoPrismaArgs, getModelFields, GraphQLContext } from '../../helpers';`);
635
+ lines.push(`import { transformInfoIntoPrismaArgs, GraphQLContext } from '../../helpers';`);
636
636
  const argsImports = [];
637
637
  if (ops.hasWhereInput)
638
638
  argsImports.push(`FindMany${m}Args`, `FindFirst${m}Args`);
@@ -770,10 +770,10 @@ function generateRelationsResolver(model, _config, dmmf) {
770
770
  lines.push('}');
771
771
  return lines.join('\n');
772
772
  }
773
- function resolverMethod(type, methodName, argsType, graphqlReturn, _tsReturn, prismaModel, prismaMethod, nullable = false, modelName) {
773
+ function resolverMethod(type, methodName, argsType, graphqlReturn, _tsReturn, prismaModel, prismaMethod, nullable = false) {
774
774
  const nullableOpt = nullable ? ', { nullable: true }' : '';
775
- // Use modelName for DMMF lookup (PascalCase), defaults to prismaModel capitalized
776
- const dmmfModelName = modelName || prismaModel.charAt(0).toUpperCase() + prismaModel.slice(1);
775
+ // Extract the model name from prismaModel (e.g., 'user' -> 'User')
776
+ const modelName = prismaModel.charAt(0).toUpperCase() + prismaModel.slice(1);
777
777
  return `
778
778
  @${type}(() => ${graphqlReturn}${nullableOpt})
779
779
  async ${methodName}(
@@ -781,7 +781,7 @@ function resolverMethod(type, methodName, argsType, graphqlReturn, _tsReturn, pr
781
781
  @Info() info: GraphQLResolveInfo,
782
782
  @Args() args: ${argsType},
783
783
  ) {
784
- const select = transformInfoIntoPrismaArgs(info, { modelFields: getModelFields(Prisma.dmmf, '${dmmfModelName}') });
784
+ const select = transformInfoIntoPrismaArgs(info, '${modelName}');
785
785
  return ctx.prisma.${prismaModel}.${prismaMethod}({ ...args, ...select } as any);
786
786
  }
787
787
  `;
@@ -1175,10 +1175,12 @@ function generateSharedInputField(field, dmmf, currentTypeName) {
1175
1175
  return lines.join('\n');
1176
1176
  }
1177
1177
  // ============ Helpers ============
1178
- function generateHelpersGrouped() {
1178
+ function generateHelpersGrouped(config) {
1179
+ const prismaClientPath = config.prismaClientPath || '@prisma/client';
1179
1180
  return {
1180
1181
  path: 'helpers.ts',
1181
1182
  content: `import type { GraphQLResolveInfo, SelectionSetNode, FieldNode, ValueNode } from 'graphql';
1183
+ import { Prisma } from '${prismaClientPath}';
1182
1184
 
1183
1185
  export interface PrismaSelect {
1184
1186
  select?: Record<string, boolean | PrismaRelation>;
@@ -1221,6 +1223,48 @@ export interface GraphQLContext<PrismaClient = unknown> {
1221
1223
  [key: string]: unknown;
1222
1224
  }
1223
1225
 
1226
+ /**
1227
+ * Model field information extracted from DMMF
1228
+ */
1229
+ interface ModelFieldInfo {
1230
+ scalars: Set<string>;
1231
+ relations: Map<string, string>;
1232
+ }
1233
+
1234
+ /**
1235
+ * Cache for model fields extracted from DMMF
1236
+ */
1237
+ const modelFieldsCache = new Map<string, ModelFieldInfo>();
1238
+
1239
+ /**
1240
+ * Extract scalar and relation field names from Prisma DMMF for a model.
1241
+ */
1242
+ function getModelFields(modelName: string): ModelFieldInfo {
1243
+ if (modelFieldsCache.has(modelName)) {
1244
+ return modelFieldsCache.get(modelName)!;
1245
+ }
1246
+
1247
+ const model = Prisma.dmmf.datamodel.models.find((m: { name: string }) => m.name === modelName);
1248
+ if (!model) {
1249
+ throw new Error(\`Model "\${modelName}" not found in Prisma DMMF\`);
1250
+ }
1251
+
1252
+ const scalars = new Set<string>();
1253
+ const relations = new Map<string, string>();
1254
+
1255
+ for (const field of model.fields) {
1256
+ if (field.kind === 'object') {
1257
+ relations.set(field.name, field.type);
1258
+ } else {
1259
+ scalars.add(field.name);
1260
+ }
1261
+ }
1262
+
1263
+ const info: ModelFieldInfo = { scalars, relations };
1264
+ modelFieldsCache.set(modelName, info);
1265
+ return info;
1266
+ }
1267
+
1224
1268
  /**
1225
1269
  * Fields that should be excluded from selection
1226
1270
  */
@@ -1307,13 +1351,13 @@ function extractFieldArgs(
1307
1351
  }
1308
1352
 
1309
1353
  /**
1310
- * Parse a selection set into a Prisma select object
1311
- * This function works directly with the AST without schema type introspection.
1312
- * It also extracts relation arguments (where, orderBy, take, skip, cursor, distinct).
1354
+ * Parse a selection set into a Prisma select object.
1355
+ * When modelName is provided, filters out fields not in the Prisma model.
1313
1356
  */
1314
1357
  function parseSelectionSetSimple(
1315
1358
  selectionSet: SelectionSetNode | undefined,
1316
1359
  info: GraphQLResolveInfo,
1360
+ modelFields?: ModelFieldInfo,
1317
1361
  ): Record<string, boolean | PrismaRelation> {
1318
1362
  const select: Record<string, boolean | PrismaRelation> = {};
1319
1363
 
@@ -1334,7 +1378,43 @@ function parseSelectionSetSimple(
1334
1378
  continue;
1335
1379
  }
1336
1380
 
1337
- // Check if this field has nested selections (relation)
1381
+ // If modelFields provided, filter based on Prisma model schema
1382
+ if (modelFields) {
1383
+ const isScalar = modelFields.scalars.has(fieldName);
1384
+ const isRelation = modelFields.relations.has(fieldName);
1385
+
1386
+ if (!isScalar && !isRelation) {
1387
+ // Field doesn't exist in Prisma model - skip it (custom @ResolveField)
1388
+ continue;
1389
+ }
1390
+
1391
+ if (isRelation && fieldNode.selectionSet) {
1392
+ // For relations, recursively get related model's fields
1393
+ const relatedModelName = modelFields.relations.get(fieldName)!;
1394
+ const relatedModelFields = getModelFields(relatedModelName);
1395
+ const nestedSelect = parseSelectionSetSimple(
1396
+ fieldNode.selectionSet,
1397
+ info,
1398
+ relatedModelFields,
1399
+ );
1400
+ const relationArgs = extractFieldArgs(fieldNode, variableValues);
1401
+
1402
+ if (Object.keys(nestedSelect).length > 0) {
1403
+ select[fieldName] = { select: nestedSelect, ...relationArgs };
1404
+ } else {
1405
+ select[fieldName] = Object.keys(relationArgs).length > 0 ? { ...relationArgs } : true;
1406
+ }
1407
+ continue;
1408
+ }
1409
+
1410
+ // Scalar field
1411
+ if (isScalar) {
1412
+ select[fieldName] = true;
1413
+ continue;
1414
+ }
1415
+ }
1416
+
1417
+ // Fallback: no modelFields filtering (original behavior)
1338
1418
  if (fieldNode.selectionSet) {
1339
1419
  // Recursively parse nested selections
1340
1420
  const nestedSelect = parseSelectionSetSimple(fieldNode.selectionSet, info);
@@ -1360,14 +1440,14 @@ function parseSelectionSetSimple(
1360
1440
  const fragment = info.fragments[fragmentName];
1361
1441
 
1362
1442
  if (fragment) {
1363
- const fragmentSelect = parseSelectionSetSimple(fragment.selectionSet, info);
1443
+ const fragmentSelect = parseSelectionSetSimple(fragment.selectionSet, info, modelFields);
1364
1444
  Object.assign(select, fragmentSelect);
1365
1445
  }
1366
1446
  }
1367
1447
  // Handle inline fragments
1368
1448
  else if (selection.kind === 'InlineFragment') {
1369
1449
  if (selection.selectionSet) {
1370
- const inlineSelect = parseSelectionSetSimple(selection.selectionSet, info);
1450
+ const inlineSelect = parseSelectionSetSimple(selection.selectionSet, info, modelFields);
1371
1451
  Object.assign(select, inlineSelect);
1372
1452
  }
1373
1453
  }
@@ -1376,15 +1456,35 @@ function parseSelectionSetSimple(
1376
1456
  return select;
1377
1457
  }
1378
1458
 
1379
- export function transformInfoIntoPrismaArgs(info: GraphQLResolveInfo): PrismaSelect {
1459
+ /**
1460
+ * Transform GraphQL resolve info into Prisma select/include arguments.
1461
+ *
1462
+ * @param info - GraphQL resolve info from the resolver
1463
+ * @param modelName - Optional model name for automatic field filtering (e.g., 'User')
1464
+ * @returns Prisma select object
1465
+ *
1466
+ * @example
1467
+ * // Without filtering (all fields passed through):
1468
+ * const select = transformInfoIntoPrismaArgs(info);
1469
+ *
1470
+ * // With filtering (custom @ResolveField fields excluded):
1471
+ * const select = transformInfoIntoPrismaArgs(info, 'User');
1472
+ */
1473
+ export function transformInfoIntoPrismaArgs(
1474
+ info: GraphQLResolveInfo,
1475
+ modelName?: string,
1476
+ ): PrismaSelect {
1380
1477
  // Get the first field node
1381
1478
  const fieldNode = info.fieldNodes[0];
1382
1479
  if (!fieldNode?.selectionSet) {
1383
1480
  return {};
1384
1481
  }
1385
1482
 
1483
+ // Get model fields if modelName is provided
1484
+ const modelFields = modelName ? getModelFields(modelName) : undefined;
1485
+
1386
1486
  // Parse the selection set directly from AST
1387
- const select = parseSelectionSetSimple(fieldNode.selectionSet, info);
1487
+ const select = parseSelectionSetSimple(fieldNode.selectionSet, info, modelFields);
1388
1488
 
1389
1489
  if (Object.keys(select).length === 0) {
1390
1490
  return {};
@@ -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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"}
@@ -74,47 +74,41 @@ export interface GraphQLContext<PrismaClient = unknown> {
74
74
  }
75
75
 
76
76
  /**
77
- * Options for transformInfoIntoPrismaArgs
77
+ * Prisma DMMF type for model field introspection
78
78
  */
79
- export interface TransformOptions {
80
- /**
81
- * Fields to exclude from the Prisma select.
82
- * Use this for custom @ResolveField() computed fields that don't exist in Prisma.
83
- * @example ['occupationStatus', 'computedField']
84
- */
85
- excludeFields?: string[];
79
+ export interface PrismaDMMF {
80
+ datamodel: {
81
+ models: Array<{
82
+ name: string;
83
+ fields: Array<{
84
+ name: string;
85
+ kind: string;
86
+ type: string;
87
+ }>;
88
+ }>;
89
+ };
90
+ }
86
91
 
87
- /**
88
- * Set of valid Prisma model fields. If provided, only these fields will be selected.
89
- * Any field not in this set will be automatically excluded.
90
- * Use getModelFields() helper to extract this from Prisma DMMF.
91
- * @example getModelFields(Prisma.dmmf, 'Slot')
92
- */
93
- modelFields?: Set<string>;
92
+ /**
93
+ * Model field information extracted from DMMF
94
+ */
95
+ export interface ModelFieldInfo {
96
+ /** Scalar field names (non-relation fields) */
97
+ scalars: Set<string>;
98
+ /** Relation field name -> related model name */
99
+ relations: Map<string, string>;
94
100
  }
95
101
 
96
102
  /**
97
103
  * Cache for model fields extracted from DMMF
98
104
  */
99
- const modelFieldsCache = new Map<string, Set<string>>();
105
+ const modelFieldsCache = new Map<string, ModelFieldInfo>();
100
106
 
101
107
  /**
102
- * Extract field names for a model from Prisma DMMF.
108
+ * Extract scalar and relation field names from Prisma DMMF for a model.
103
109
  * Results are cached for performance.
104
- *
105
- * @param dmmf - Prisma DMMF object (import { Prisma } from '@prisma/client', use Prisma.dmmf)
106
- * @param modelName - Name of the model (e.g., 'User', 'Slot')
107
- * @returns Set of field names that exist on the Prisma model
108
- *
109
- * @example
110
- * import { Prisma } from '@prisma/client';
111
- * const slotFields = getModelFields(Prisma.dmmf, 'Slot');
112
- * const select = transformInfoIntoPrismaArgs(info, { modelFields: slotFields });
113
110
  */
114
- export function getModelFields(
115
- dmmf: { datamodel: { models: Array<{ name: string; fields: Array<{ name: string }> }> } },
116
- modelName: string,
117
- ): Set<string> {
111
+ export function getModelFields(dmmf: PrismaDMMF, modelName: string): ModelFieldInfo {
118
112
  const cacheKey = modelName;
119
113
  if (modelFieldsCache.has(cacheKey)) {
120
114
  return modelFieldsCache.get(cacheKey)!;
@@ -125,9 +119,46 @@ export function getModelFields(
125
119
  throw new Error(\`Model "\${modelName}" not found in Prisma DMMF\`);
126
120
  }
127
121
 
128
- const fields = new Set(model.fields.map((f) => f.name));
129
- modelFieldsCache.set(cacheKey, fields);
130
- return fields;
122
+ const scalars = new Set<string>();
123
+ const relations = new Map<string, string>();
124
+
125
+ for (const field of model.fields) {
126
+ if (field.kind === 'object') {
127
+ relations.set(field.name, field.type);
128
+ } else {
129
+ scalars.add(field.name);
130
+ }
131
+ }
132
+
133
+ const info: ModelFieldInfo = { scalars, relations };
134
+ modelFieldsCache.set(cacheKey, info);
135
+ return info;
136
+ }
137
+
138
+ /**
139
+ * Options for transformInfoIntoPrismaArgs
140
+ */
141
+ export interface TransformOptions {
142
+ /**
143
+ * Fields to exclude from the Prisma select at all nesting levels.
144
+ * Use this for custom @ResolveField() computed fields that don't exist in Prisma.
145
+ * @example ['occupationStatus', 'computedField']
146
+ */
147
+ excludeFields?: string[];
148
+
149
+ /**
150
+ * Prisma DMMF for automatic field filtering.
151
+ * When provided with modelName, only valid Prisma fields will be selected.
152
+ * @example Prisma.dmmf
153
+ */
154
+ dmmf?: PrismaDMMF;
155
+
156
+ /**
157
+ * Root model name for automatic field filtering.
158
+ * Used with dmmf to filter out non-Prisma fields recursively.
159
+ * @example 'User'
160
+ */
161
+ modelName?: string;
131
162
  }
132
163
 
133
164
  /**
@@ -219,12 +250,14 @@ function extractFieldArgs(
219
250
  * Parse a selection set into a Prisma select object
220
251
  * This function works directly with the AST without schema type introspection.
221
252
  * It also extracts relation arguments (where, orderBy, take, skip, cursor, distinct).
253
+ * When dmmf and modelFields are provided, filters out fields not in Prisma model.
222
254
  */
223
255
  function parseSelectionSetSimple(
224
256
  selectionSet: SelectionSetNode | undefined,
225
257
  info: GraphQLResolveInfo,
226
258
  excludeFields?: Set<string>,
227
- modelFields?: Set<string>,
259
+ dmmf?: PrismaDMMF,
260
+ modelFields?: ModelFieldInfo,
228
261
  ): Record<string, boolean | PrismaRelation> {
229
262
  const select: Record<string, boolean | PrismaRelation> = {};
230
263
 
@@ -245,15 +278,57 @@ function parseSelectionSetSimple(
245
278
  continue;
246
279
  }
247
280
 
248
- // If modelFields provided, skip fields not in Prisma model
249
- if (modelFields && !modelFields.has(fieldName)) {
250
- continue;
281
+ // If modelFields provided, filter based on Prisma model schema
282
+ if (modelFields) {
283
+ const isScalar = modelFields.scalars.has(fieldName);
284
+ const isRelation = modelFields.relations.has(fieldName);
285
+
286
+ if (!isScalar && !isRelation) {
287
+ // Field doesn't exist in Prisma model - skip it (custom @ResolveField)
288
+ continue;
289
+ }
290
+
291
+ if (isRelation && fieldNode.selectionSet && dmmf) {
292
+ // For relations, recursively get related model's fields
293
+ const relatedModelName = modelFields.relations.get(fieldName)!;
294
+ const relatedModelFields = getModelFields(dmmf, relatedModelName);
295
+ const nestedSelect = parseSelectionSetSimple(
296
+ fieldNode.selectionSet,
297
+ info,
298
+ excludeFields,
299
+ dmmf,
300
+ relatedModelFields,
301
+ );
302
+
303
+ const relationArgs = extractFieldArgs(fieldNode, variableValues);
304
+
305
+ if (Object.keys(nestedSelect).length > 0) {
306
+ select[fieldName] = { select: nestedSelect, ...relationArgs };
307
+ } else {
308
+ select[fieldName] = Object.keys(relationArgs).length > 0
309
+ ? { ...relationArgs }
310
+ : true;
311
+ }
312
+ continue;
313
+ }
314
+
315
+ // Scalar field
316
+ if (isScalar) {
317
+ select[fieldName] = true;
318
+ continue;
319
+ }
251
320
  }
252
321
 
253
- // Check if this field has nested selections (relation)
322
+ // Fallback: no modelFields filtering (original behavior)
254
323
  if (fieldNode.selectionSet) {
255
324
  // Recursively parse nested selections
256
- const nestedSelect = parseSelectionSetSimple(fieldNode.selectionSet, info, excludeFields);
325
+ const nestedSelect = parseSelectionSetSimple(
326
+ fieldNode.selectionSet,
327
+ info,
328
+ excludeFields,
329
+ dmmf,
330
+ undefined,
331
+ );
257
332
 
258
333
  // Extract relation arguments (where, orderBy, etc.)
259
334
  const relationArgs = extractFieldArgs(fieldNode, variableValues);
@@ -276,14 +351,26 @@ function parseSelectionSetSimple(
276
351
  const fragment = info.fragments[fragmentName];
277
352
 
278
353
  if (fragment) {
279
- const fragmentSelect = parseSelectionSetSimple(fragment.selectionSet, info, excludeFields);
354
+ const fragmentSelect = parseSelectionSetSimple(
355
+ fragment.selectionSet,
356
+ info,
357
+ excludeFields,
358
+ dmmf,
359
+ modelFields,
360
+ );
280
361
  Object.assign(select, fragmentSelect);
281
362
  }
282
363
  }
283
364
  // Handle inline fragments
284
365
  else if (selection.kind === 'InlineFragment') {
285
366
  if (selection.selectionSet) {
286
- const inlineSelect = parseSelectionSetSimple(selection.selectionSet, info, excludeFields);
367
+ const inlineSelect = parseSelectionSetSimple(
368
+ selection.selectionSet,
369
+ info,
370
+ excludeFields,
371
+ dmmf,
372
+ modelFields,
373
+ );
287
374
  Object.assign(select, inlineSelect);
288
375
  }
289
376
  }
@@ -303,10 +390,11 @@ function parseSelectionSetSimple(
303
390
  * @returns Prisma select object
304
391
  *
305
392
  * @example
306
- * // With automatic field filtering using Prisma DMMF:
393
+ * // Automatic field filtering using Prisma DMMF (recommended):
307
394
  * import { Prisma } from '@prisma/client';
308
395
  * const select = transformInfoIntoPrismaArgs(info, {
309
- * modelFields: getModelFields(Prisma.dmmf, 'Slot')
396
+ * dmmf: Prisma.dmmf,
397
+ * modelName: 'User',
310
398
  * });
311
399
  *
312
400
  * // Or manually exclude specific fields:
@@ -325,12 +413,19 @@ export function transformInfoIntoPrismaArgs(
325
413
  // Convert excludeFields array to Set for O(1) lookup
326
414
  const excludeSet = options?.excludeFields ? new Set(options.excludeFields) : undefined;
327
415
 
416
+ // Get model fields if dmmf and modelName are provided
417
+ let modelFields: ModelFieldInfo | undefined;
418
+ if (options?.dmmf && options?.modelName) {
419
+ modelFields = getModelFields(options.dmmf, options.modelName);
420
+ }
421
+
328
422
  // Parse the selection set directly from AST
329
423
  const select = parseSelectionSetSimple(
330
424
  fieldNode.selectionSet,
331
425
  info,
332
426
  excludeSet,
333
- options?.modelFields,
427
+ options?.dmmf,
428
+ modelFields,
334
429
  );
335
430
 
336
431
  if (Object.keys(select).length === 0) {
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkb1B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAihB1B,CAAC,CAAC;AACH,CAAC"}
@@ -56,48 +56,69 @@ export interface GraphQLContext<PrismaClient = unknown> {
56
56
  [key: string]: unknown;
57
57
  }
58
58
  /**
59
- * Options for transformInfoIntoPrismaArgs
59
+ * Prisma DMMF type for model field introspection
60
60
  */
61
- export interface TransformOptions {
62
- /**
63
- * Fields to exclude from the Prisma select.
64
- * Use this for custom @ResolveField() computed fields that don't exist in Prisma.
65
- * @example ['occupationStatus', 'computedField']
66
- */
67
- excludeFields?: string[];
68
- /**
69
- * Set of valid Prisma model fields. If provided, only these fields will be selected.
70
- * Any field not in this set will be automatically excluded.
71
- * Use getModelFields() helper to extract this from Prisma DMMF.
72
- * @example getModelFields(Prisma.dmmf, 'Slot')
73
- */
74
- modelFields?: Set<string>;
61
+ export interface PrismaDMMF {
62
+ datamodel: {
63
+ models: Array<{
64
+ name: string;
65
+ fields: Array<{
66
+ name: string;
67
+ kind: string;
68
+ type: string;
69
+ }>;
70
+ }>;
71
+ };
75
72
  }
76
73
  /**
77
- * Extract field names for a model from Prisma DMMF.
74
+ * Model field information extracted from DMMF
75
+ */
76
+ export interface ModelFieldInfo {
77
+ /** Scalar field names (non-relation fields) */
78
+ scalars: Set<string>;
79
+ /** Relation field name -> related model name */
80
+ relations: Map<string, string>;
81
+ }
82
+ /**
83
+ * Extract scalar and relation field names from Prisma DMMF for a model.
78
84
  * Results are cached for performance.
79
85
  *
80
86
  * @param dmmf - Prisma DMMF object (import { Prisma } from '@prisma/client', use Prisma.dmmf)
81
87
  * @param modelName - Name of the model (e.g., 'User', 'Slot')
82
- * @returns Set of field names that exist on the Prisma model
88
+ * @returns ModelFieldInfo with scalars and relations
83
89
  *
84
90
  * @example
85
91
  * ```typescript
86
92
  * import { Prisma } from '@prisma/client';
87
- * const slotFields = getModelFields(Prisma.dmmf, 'Slot');
88
- * const select = transformInfoIntoPrismaArgs(info, { modelFields: slotFields });
93
+ * const fields = getModelFields(Prisma.dmmf, 'Slot');
94
+ * // fields.scalars: Set<string> - all scalar field names
95
+ * // fields.relations: Map<string, string> - relation field name -> related model name
89
96
  * ```
90
97
  */
91
- export declare function getModelFields(dmmf: {
92
- datamodel: {
93
- models: Array<{
94
- name: string;
95
- fields: Array<{
96
- name: string;
97
- }>;
98
- }>;
99
- };
100
- }, modelName: string): Set<string>;
98
+ export declare function getModelFields(dmmf: PrismaDMMF, modelName: string): ModelFieldInfo;
99
+ /**
100
+ * Options for transformInfoIntoPrismaArgs
101
+ */
102
+ export interface TransformOptions {
103
+ /**
104
+ * Fields to exclude from the Prisma select at all nesting levels.
105
+ * Use this for custom @ResolveField() computed fields that don't exist in Prisma.
106
+ * @example ['occupationStatus', 'computedField']
107
+ */
108
+ excludeFields?: string[];
109
+ /**
110
+ * Prisma DMMF for automatic field filtering.
111
+ * When provided with modelName, only valid Prisma fields will be selected.
112
+ * @example Prisma.dmmf
113
+ */
114
+ dmmf?: PrismaDMMF;
115
+ /**
116
+ * Root model name for automatic field filtering.
117
+ * Used with dmmf to filter out non-Prisma fields recursively.
118
+ * @example 'User'
119
+ */
120
+ modelName?: string;
121
+ }
101
122
  /**
102
123
  * Transform GraphQL resolve info into Prisma select/include arguments
103
124
  *
@@ -118,10 +139,11 @@ export declare function getModelFields(dmmf: {
118
139
  * });
119
140
  * }
120
141
  *
121
- * // With automatic field filtering using Prisma DMMF:
142
+ * // Automatic field filtering using Prisma DMMF (recommended):
122
143
  * import { Prisma } from '@prisma/client';
123
144
  * const select = transformInfoIntoPrismaArgs(info, {
124
- * modelFields: getModelFields(Prisma.dmmf, 'Slot')
145
+ * dmmf: Prisma.dmmf,
146
+ * modelName: 'User',
125
147
  * });
126
148
  *
127
149
  * // Or manually exclude specific fields:
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/runtime/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAa,kBAAkB,EAA+B,MAAM,SAAS,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;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;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE;IAAE,SAAS,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;CAAE,EACzF,SAAS,EAAE,MAAM,GAChB,GAAG,CAAC,MAAM,CAAC,CAcb;AAyJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,kBAAkB,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,YAAY,CAuBd;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"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/runtime/helpers.ts"],"names":[],"mappings":"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"}
@@ -19,18 +19,19 @@ exports.mergePrismaSelects = mergePrismaSelects;
19
19
  */
20
20
  const modelFieldsCache = new Map();
21
21
  /**
22
- * Extract field names for a model from Prisma DMMF.
22
+ * Extract scalar and relation field names from Prisma DMMF for a model.
23
23
  * Results are cached for performance.
24
24
  *
25
25
  * @param dmmf - Prisma DMMF object (import { Prisma } from '@prisma/client', use Prisma.dmmf)
26
26
  * @param modelName - Name of the model (e.g., 'User', 'Slot')
27
- * @returns Set of field names that exist on the Prisma model
27
+ * @returns ModelFieldInfo with scalars and relations
28
28
  *
29
29
  * @example
30
30
  * ```typescript
31
31
  * import { Prisma } from '@prisma/client';
32
- * const slotFields = getModelFields(Prisma.dmmf, 'Slot');
33
- * const select = transformInfoIntoPrismaArgs(info, { modelFields: slotFields });
32
+ * const fields = getModelFields(Prisma.dmmf, 'Slot');
33
+ * // fields.scalars: Set<string> - all scalar field names
34
+ * // fields.relations: Map<string, string> - relation field name -> related model name
34
35
  * ```
35
36
  */
36
37
  function getModelFields(dmmf, modelName) {
@@ -42,9 +43,19 @@ function getModelFields(dmmf, modelName) {
42
43
  if (!model) {
43
44
  throw new Error(`Model "${modelName}" not found in Prisma DMMF`);
44
45
  }
45
- const fields = new Set(model.fields.map(f => f.name));
46
- modelFieldsCache.set(cacheKey, fields);
47
- return fields;
46
+ const scalars = new Set();
47
+ const relations = new Map();
48
+ for (const field of model.fields) {
49
+ if (field.kind === 'object') {
50
+ relations.set(field.name, field.type);
51
+ }
52
+ else {
53
+ scalars.add(field.name);
54
+ }
55
+ }
56
+ const info = { scalars, relations };
57
+ modelFieldsCache.set(cacheKey, info);
58
+ return info;
48
59
  }
49
60
  /**
50
61
  * Fields that should be excluded from selection
@@ -114,8 +125,9 @@ function extractFieldArgs(fieldNode, variableValues) {
114
125
  * Parse a selection set into a Prisma select object
115
126
  * This function works directly with the AST without schema type introspection.
116
127
  * It also extracts relation arguments (where, orderBy, take, skip, cursor, distinct).
128
+ * When dmmf and modelFields are provided, filters out fields not in Prisma model.
117
129
  */
118
- function parseSelectionSetSimple(selectionSet, info, excludeFields, modelFields) {
130
+ function parseSelectionSetSimple(selectionSet, info, excludeFields, dmmf, modelFields) {
119
131
  const select = {};
120
132
  if (!selectionSet) {
121
133
  return select;
@@ -130,14 +142,38 @@ function parseSelectionSetSimple(selectionSet, info, excludeFields, modelFields)
130
142
  if (EXCLUDED_FIELDS.has(fieldName) || excludeFields?.has(fieldName)) {
131
143
  continue;
132
144
  }
133
- // If modelFields provided, skip fields not in Prisma model
134
- if (modelFields && !modelFields.has(fieldName)) {
135
- continue;
145
+ // If modelFields provided, filter based on Prisma model schema
146
+ if (modelFields) {
147
+ const isScalar = modelFields.scalars.has(fieldName);
148
+ const isRelation = modelFields.relations.has(fieldName);
149
+ if (!isScalar && !isRelation) {
150
+ // Field doesn't exist in Prisma model - skip it (custom @ResolveField)
151
+ continue;
152
+ }
153
+ if (isRelation && fieldNode.selectionSet && dmmf) {
154
+ // For relations, recursively get related model's fields
155
+ const relatedModelName = modelFields.relations.get(fieldName);
156
+ const relatedModelFields = getModelFields(dmmf, relatedModelName);
157
+ const nestedSelect = parseSelectionSetSimple(fieldNode.selectionSet, info, excludeFields, dmmf, relatedModelFields);
158
+ const relationArgs = extractFieldArgs(fieldNode, variableValues);
159
+ if (Object.keys(nestedSelect).length > 0) {
160
+ select[fieldName] = { select: nestedSelect, ...relationArgs };
161
+ }
162
+ else {
163
+ select[fieldName] = Object.keys(relationArgs).length > 0 ? { ...relationArgs } : true;
164
+ }
165
+ continue;
166
+ }
167
+ // Scalar field
168
+ if (isScalar) {
169
+ select[fieldName] = true;
170
+ continue;
171
+ }
136
172
  }
137
- // Check if this field has nested selections (relation)
173
+ // Fallback: no modelFields filtering (original behavior)
138
174
  if (fieldNode.selectionSet) {
139
175
  // Recursively parse nested selections
140
- const nestedSelect = parseSelectionSetSimple(fieldNode.selectionSet, info, excludeFields);
176
+ const nestedSelect = parseSelectionSetSimple(fieldNode.selectionSet, info, excludeFields, dmmf, undefined);
141
177
  // Extract relation arguments (where, orderBy, etc.)
142
178
  const relationArgs = extractFieldArgs(fieldNode, variableValues);
143
179
  if (Object.keys(nestedSelect).length > 0) {
@@ -157,14 +193,14 @@ function parseSelectionSetSimple(selectionSet, info, excludeFields, modelFields)
157
193
  const fragmentName = selection.name.value;
158
194
  const fragment = info.fragments[fragmentName];
159
195
  if (fragment) {
160
- const fragmentSelect = parseSelectionSetSimple(fragment.selectionSet, info, excludeFields);
196
+ const fragmentSelect = parseSelectionSetSimple(fragment.selectionSet, info, excludeFields, dmmf, modelFields);
161
197
  Object.assign(select, fragmentSelect);
162
198
  }
163
199
  }
164
200
  // Handle inline fragments
165
201
  else if (selection.kind === 'InlineFragment') {
166
202
  if (selection.selectionSet) {
167
- const inlineSelect = parseSelectionSetSimple(selection.selectionSet, info, excludeFields);
203
+ const inlineSelect = parseSelectionSetSimple(selection.selectionSet, info, excludeFields, dmmf, modelFields);
168
204
  Object.assign(select, inlineSelect);
169
205
  }
170
206
  }
@@ -191,10 +227,11 @@ function parseSelectionSetSimple(selectionSet, info, excludeFields, modelFields)
191
227
  * });
192
228
  * }
193
229
  *
194
- * // With automatic field filtering using Prisma DMMF:
230
+ * // Automatic field filtering using Prisma DMMF (recommended):
195
231
  * import { Prisma } from '@prisma/client';
196
232
  * const select = transformInfoIntoPrismaArgs(info, {
197
- * modelFields: getModelFields(Prisma.dmmf, 'Slot')
233
+ * dmmf: Prisma.dmmf,
234
+ * modelName: 'User',
198
235
  * });
199
236
  *
200
237
  * // Or manually exclude specific fields:
@@ -209,8 +246,13 @@ function transformInfoIntoPrismaArgs(info, options) {
209
246
  }
210
247
  // Convert excludeFields array to Set for O(1) lookup
211
248
  const excludeSet = options?.excludeFields ? new Set(options.excludeFields) : undefined;
249
+ // Get model fields if dmmf and modelName are provided
250
+ let modelFields;
251
+ if (options?.dmmf && options?.modelName) {
252
+ modelFields = getModelFields(options.dmmf, options.modelName);
253
+ }
212
254
  // Parse the selection set directly from AST
213
- const select = parseSelectionSetSimple(fieldNode.selectionSet, info, excludeSet, options?.modelFields);
255
+ const select = parseSelectionSetSimple(fieldNode.selectionSet, info, excludeSet, options?.dmmf, modelFields);
214
256
  if (Object.keys(select).length === 0) {
215
257
  return {};
216
258
  }
@@ -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.8.5",
3
+ "version": "0.8.7",
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",