@auto-engineer/server-generator-apollo-emmett 1.45.2 → 1.46.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/server-generator-apollo-emmett@1.45.1 build /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
2
+ > @auto-engineer/server-generator-apollo-emmett@1.45.3 build /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
3
3
  > tsc && tsx ../../scripts/fix-esm-imports.ts && rm -rf dist/src/codegen/templates && mkdir -p dist/src/codegen && cp -r src/codegen/templates dist/src/codegen/templates && cp src/server.ts dist/src && cp -r src/utils dist/src && cp -r src/domain dist/src
4
4
 
5
5
  Fixed ESM imports in dist/
@@ -1,14 +1,14 @@
1
1
 
2
- > @auto-engineer/server-generator-apollo-emmett@1.45.1 test /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
2
+ > @auto-engineer/server-generator-apollo-emmett@1.45.3 test /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
3
3
  > vitest run --reporter=dot
4
4
 
5
5
 
6
6
   RUN  v3.2.4 /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
7
7
 
8
- ·····················································································································-·····················
8
+ ··································································································································-·····················
9
9
 
10
-  Test Files  28 passed | 1 skipped (29)
11
-  Tests  138 passed | 1 skipped (139)
12
-  Start at  11:38:35
13
-  Duration  25.79s (transform 4.35s, setup 0ms, collect 53.07s, tests 9.95s, environment 7ms, prepare 4.95s)
10
+  Test Files  29 passed | 1 skipped (30)
11
+  Tests  151 passed | 1 skipped (152)
12
+  Start at  15:53:01
13
+  Duration  30.80s (transform 4.59s, setup 0ms, collect 65.19s, tests 12.96s, environment 7ms, prepare 5.56s)
14
14
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @auto-engineer/server-generator-apollo-emmett@1.45.1 type-check /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
2
+ > @auto-engineer/server-generator-apollo-emmett@1.45.3 type-check /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
3
3
  > tsc --noEmit --project tsconfig.json
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # @auto-engineer/server-generator-apollo-emmett
2
2
 
3
+ ## 1.46.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`e6a0608`](https://github.com/BeOnAuto/auto-engineer/commit/e6a0608647143c3c2ace36f27e01756bc5e27955) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: generate ObjectType classes for referenced types in queries
8
+
9
+ - [`a50d7d7`](https://github.com/BeOnAuto/auto-engineer/commit/a50d7d7308e8d3e5319575f619d297cafa958f90) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: add resolveReferencedMessageTypes helper
10
+
11
+ - [`75e3ed8`](https://github.com/BeOnAuto/auto-engineer/commit/75e3ed80f0d18ee53ef1fa952f93e387be65c355) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: generate InputType classes for referenced types in mutations
12
+
13
+ - [`93edcc4`](https://github.com/BeOnAuto/auto-engineer/commit/93edcc4a1df8b41f9d48a39b0f09965a9807b775) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: wire referencedTypes into template pipeline
14
+
15
+ ### Patch Changes
16
+
17
+ - [`d9bd588`](https://github.com/BeOnAuto/auto-engineer/commit/d9bd588cc61fbac155f1e66a5de147ff80483f6e) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: ketchup plan for referenced message type GraphQL fix
18
+
19
+ - [`8eea55e`](https://github.com/BeOnAuto/auto-engineer/commit/8eea55ee073513f2149629bacd15e83e66f60b90) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-generator-apollo-emmett**: skip react slices with empty examples
20
+ - **global**: version packages
21
+ - **server-generator-apollo-emmett**: ketchup plan for empty-examples react slice fix
22
+
23
+ - [`02ef497`](https://github.com/BeOnAuto/auto-engineer/commit/02ef4977873e7b92ce7d8af03f0f65c5e5a06228) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: update ketchup plan — all bursts done
24
+
25
+ - Updated dependencies [[`e6a0608`](https://github.com/BeOnAuto/auto-engineer/commit/e6a0608647143c3c2ace36f27e01756bc5e27955), [`d9bd588`](https://github.com/BeOnAuto/auto-engineer/commit/d9bd588cc61fbac155f1e66a5de147ff80483f6e), [`a50d7d7`](https://github.com/BeOnAuto/auto-engineer/commit/a50d7d7308e8d3e5319575f619d297cafa958f90), [`75e3ed8`](https://github.com/BeOnAuto/auto-engineer/commit/75e3ed80f0d18ee53ef1fa952f93e387be65c355), [`93edcc4`](https://github.com/BeOnAuto/auto-engineer/commit/93edcc4a1df8b41f9d48a39b0f09965a9807b775), [`8eea55e`](https://github.com/BeOnAuto/auto-engineer/commit/8eea55ee073513f2149629bacd15e83e66f60b90), [`02ef497`](https://github.com/BeOnAuto/auto-engineer/commit/02ef4977873e7b92ce7d8af03f0f65c5e5a06228)]:
26
+ - @auto-engineer/message-bus@1.46.0
27
+ - @auto-engineer/narrative@1.46.0
28
+
29
+ ## 1.45.3
30
+
31
+ ### Patch Changes
32
+
33
+ - [`5031bde`](https://github.com/BeOnAuto/auto-engineer/commit/5031bde8b5958dfc61f3e04f4c45ba0cb81718c8) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: skip react slices with empty examples
34
+
35
+ - [`3e94b15`](https://github.com/BeOnAuto/auto-engineer/commit/3e94b15d8a96be5afe9d4a189042d2ed6f3bb0e7) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: ketchup plan for empty-examples react slice fix
36
+ - **server-generator-apollo-emmett**: update ketchup plan — all bursts done
37
+
38
+ - [`d614984`](https://github.com/BeOnAuto/auto-engineer/commit/d6149848a571b78cd0e41449a5ac787067492a4c) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-generator-apollo-emmett**: use GraphQLJSON for object/inline-object types
39
+ - **server-generator-apollo-emmett**: use isEnumType in query resolver template
40
+ - **server-generator-apollo-emmett**: use isEnumType in projection template
41
+ - **global**: version packages
42
+ - **server-generator-apollo-emmett**: update ketchup plan — all bursts done
43
+ - Updated dependencies [[`5031bde`](https://github.com/BeOnAuto/auto-engineer/commit/5031bde8b5958dfc61f3e04f4c45ba0cb81718c8), [`3e94b15`](https://github.com/BeOnAuto/auto-engineer/commit/3e94b15d8a96be5afe9d4a189042d2ed6f3bb0e7), [`d614984`](https://github.com/BeOnAuto/auto-engineer/commit/d6149848a571b78cd0e41449a5ac787067492a4c)]:
44
+ - @auto-engineer/message-bus@1.45.3
45
+ - @auto-engineer/narrative@1.45.3
46
+
3
47
  ## 1.45.2
4
48
 
5
49
  ### Patch Changes
@@ -1,9 +1,18 @@
1
1
  import type { Model, Narrative } from '@auto-engineer/narrative';
2
+ import type { MessageDefinition } from './types';
2
3
  export interface FilePlan {
3
4
  outputPath: string;
4
5
  contents: string;
5
6
  }
6
7
  export declare function formatTsValueSimple(value: unknown, tsType: string): string;
8
+ export declare function resolveReferencedMessageTypes(fields: Array<{
9
+ name: string;
10
+ type?: string;
11
+ tsType?: string;
12
+ }>, messagesByName: Map<string, MessageDefinition>, visited?: Set<string>): Array<{
13
+ name: string;
14
+ fields: MessageDefinition['fields'];
15
+ }>;
7
16
  export declare function findEventSource(flows: Narrative[], eventType: string): {
8
17
  flowName: string;
9
18
  sliceName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"scaffoldFromSchema.d.ts","sourceRoot":"","sources":["../../../src/codegen/scaffoldFromSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAS,MAAM,0BAA0B,CAAC;AAgQxE,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+GD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAe1E;AA4LD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyBrH;AAyFD,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAC3B,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,EACpC,OAAO,SAAqB,EAC5B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC7B,OAAO,CAAC,QAAQ,EAAE,CAAC,CA6CrB;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAkB7D;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAC3B,OAAO,SAAqB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"scaffoldFromSchema.d.ts","sourceRoot":"","sources":["../../../src/codegen/scaffoldFromSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAS,MAAM,0BAA0B,CAAC;AAsCxE,OAAO,KAAK,EAAyB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA0NxE,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2JD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAe1E;AAqED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/D,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC9C,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CAAE,CAAC,CAsB9D;AAmID,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyBrH;AAiGD,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAC3B,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,EACpC,OAAO,SAAqB,EAC5B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC7B,OAAO,CAAC,QAAQ,EAAE,CAAC,CA6CrB;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAkB7D;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAC3B,OAAO,SAAqB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -201,6 +201,9 @@ async function renderTemplate(templatePath, data, unionToEnumName = new Map()) {
201
201
  debugTemplate('Template compiled successfully');
202
202
  const isInlineObject = isInlineObjectHelper;
203
203
  const isInlineObjectArray = isInlineObjectArrayHelper;
204
+ const messageNames = new Set((Array.isArray(data.messages) ? data.messages : [])
205
+ .filter((m) => m != null && typeof m === 'object' && 'name' in m)
206
+ .map((m) => m.name));
204
207
  const convertPrimitiveType = (base) => {
205
208
  if (base === 'ID')
206
209
  return 'ID';
@@ -245,6 +248,8 @@ async function renderTemplate(templatePath, data, unionToEnumName = new Map()) {
245
248
  return 'GraphQLJSON';
246
249
  if (isStringLiteralUnion(base))
247
250
  return resolveEnumOrString(base);
251
+ if (messageNames.has(base))
252
+ return base;
248
253
  return convertPrimitiveType(base);
249
254
  };
250
255
  const toTsFieldType = (ts) => {
@@ -265,11 +270,43 @@ async function renderTemplate(templatePath, data, unionToEnumName = new Map()) {
265
270
  return t;
266
271
  };
267
272
  const isNullable = (rawTs) => /\|\s*null\b/.test(rawTs);
268
- const isEnumType = createIsEnumType(toTsFieldType);
273
+ const rawIsEnumType = createIsEnumType(toTsFieldType);
274
+ const isEnumType = (tsType) => {
275
+ if (!rawIsEnumType(tsType))
276
+ return false;
277
+ const baseName = toTsFieldType(tsType)
278
+ .replace(/\s*\|\s*null\b/g, '')
279
+ .replace(/\[\]$/, '')
280
+ .trim();
281
+ return !messageNames.has(baseName);
282
+ };
269
283
  const fieldUsesDate = createFieldUsesDate(graphqlType);
270
284
  const fieldUsesJSON = createFieldUsesJSON(graphqlType);
271
285
  const fieldUsesFloat = createFieldUsesFloat(graphqlType);
272
286
  const collectEnumNames = createCollectEnumNames(isEnumType, toTsFieldType);
287
+ const isReferencedMessageType = (ts) => {
288
+ const base = (ts ?? '')
289
+ .trim()
290
+ .replace(/\s*\|\s*null\b/g, '')
291
+ .trim();
292
+ return messageNames.has(base);
293
+ };
294
+ const isReferencedMessageTypeArray = (ts) => {
295
+ const base = (ts ?? '')
296
+ .trim()
297
+ .replace(/\s*\|\s*null\b/g, '')
298
+ .trim();
299
+ const m = base.match(/^Array<(.+)>$/) ?? base.match(/^(.+)\[\]$/);
300
+ return m !== null && messageNames.has(m[1].trim());
301
+ };
302
+ const extractReferencedTypeName = (ts) => {
303
+ const base = (ts ?? '')
304
+ .trim()
305
+ .replace(/\s*\|\s*null\b/g, '')
306
+ .trim();
307
+ const m = base.match(/^Array<(.+)>$/) ?? base.match(/^(.+)\[\]$/);
308
+ return m !== null ? m[1].trim() : base;
309
+ };
273
310
  const result = await template({
274
311
  ...data,
275
312
  pascalCase,
@@ -291,6 +328,11 @@ async function renderTemplate(templatePath, data, unionToEnumName = new Map()) {
291
328
  fieldUsesJSON,
292
329
  fieldUsesFloat,
293
330
  collectEnumNames,
331
+ messageNames,
332
+ isReferencedMessageType,
333
+ isReferencedMessageTypeArray,
334
+ extractReferencedTypeName,
335
+ referencedTypes: data.referencedTypes,
294
336
  });
295
337
  debugTemplate('Template rendered, output size: %d bytes', result.length);
296
338
  return result;
@@ -361,6 +403,26 @@ async function generateFileForTemplate(templateFile, slice, sliceDir, templateDa
361
403
  debugFiles(' File plan created for: %s', fileName);
362
404
  return plan;
363
405
  }
406
+ export function resolveReferencedMessageTypes(fields, messagesByName, visited) {
407
+ const seen = visited ?? new Set();
408
+ const results = [];
409
+ for (const field of fields) {
410
+ const raw = field.type ?? field.tsType ?? 'string';
411
+ const stripped = raw.replace(/\s*\|\s*null\b/g, '').trim();
412
+ const arr1 = stripped.match(/^Array<(.+)>$/);
413
+ const arr2 = stripped.match(/^(.+)\[\]$/);
414
+ const base = arr1 ? arr1[1].trim() : arr2 ? arr2[1].trim() : stripped;
415
+ if (!messagesByName.has(base) || seen.has(base))
416
+ continue;
417
+ seen.add(base);
418
+ const msg = messagesByName.get(base);
419
+ const childFields = (msg.fields ?? []).map((f) => ({ name: f.name, type: f.type }));
420
+ const nested = resolveReferencedMessageTypes(childFields, messagesByName, seen);
421
+ results.push(...nested);
422
+ results.push({ name: msg.name, fields: msg.fields });
423
+ }
424
+ return results;
425
+ }
364
426
  function extractUsedErrors(gwtMapping) {
365
427
  debug('Extracting used errors from GWT mapping');
366
428
  const usedErrors = new Set();
@@ -403,6 +465,11 @@ async function prepareTemplateData(slice, flow, commands, events, states, comman
403
465
  const allEventTypesArray = getAllEventTypes(events);
404
466
  const allEventTypes = createEventUnionType(events);
405
467
  const localEvents = getLocalEvents(events);
468
+ const messagesByName = new Map((allMessages ?? []).map((m) => [m.name, m]));
469
+ const targetName = 'server' in slice ? slice.server?.data?.items?.[0]?.target?.name : undefined;
470
+ const queryMessage = targetName != null ? allMessages?.find((m) => m.name === targetName) : undefined;
471
+ const commandFields = filteredCommands.flatMap((c) => c.fields ?? []);
472
+ const referencedTypes = resolveReferencedMessageTypes([...(queryMessage?.fields ?? []), ...commandFields], messagesByName);
406
473
  return {
407
474
  flowName: flow.name,
408
475
  sliceName: slice.name,
@@ -429,6 +496,7 @@ async function prepareTemplateData(slice, flow, commands, events, states, comman
429
496
  allEventTypes,
430
497
  allEventTypesArray,
431
498
  localEvents,
499
+ referencedTypes,
432
500
  };
433
501
  }
434
502
  function annotateEventSources(events, flows, fallbackFlowName, fallbackSliceName, sliceType) {
@@ -505,6 +573,11 @@ async function generateFilesForSlice(slice, flow, sliceDir, messages, flows, uni
505
573
  return [];
506
574
  }
507
575
  debugSlice(' Found %d templates for slice type', templates.length);
576
+ if (slice.type === 'react' &&
577
+ !slice.server?.specs?.some((spec) => spec.rules?.some((rule) => rule.examples?.length > 0))) {
578
+ debugSlice(' Skipping react slice with no examples: %s', slice.name);
579
+ return [];
580
+ }
508
581
  const extracted = extractMessagesFromSpecs(slice, messages);
509
582
  debugSlice(' Extracted messages:');
510
583
  debugSlice(' Commands: %d', extracted.commands.length);
@@ -1 +1 @@
1
- {"version":3,"file":"scaffoldFromSchema.js","sourceRoot":"","sources":["../../../src/codegen/scaffoldFromSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffoldFromSchema.js","sourceRoot":"","sources":["../../../src/codegen/scaffoldFromSchema.ts"],"names":[],"mappings":"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"}
@@ -440,4 +440,113 @@ export class AddItemsToCartResolver {
440
440
  );
441
441
  expect(mutationFile?.contents).toContain('@Field(() => Float)');
442
442
  });
443
+
444
+ it('should generate @InputType classes for referenced message types with Input suffix', async () => {
445
+ const spec: SpecsSchema = {
446
+ variant: 'specs',
447
+ narratives: [
448
+ {
449
+ name: 'Shopping',
450
+ slices: [
451
+ {
452
+ type: 'command',
453
+ name: 'Place order',
454
+ client: { specs: [] },
455
+ server: {
456
+ description: '',
457
+ specs: [
458
+ {
459
+ type: 'gherkin',
460
+ feature: '',
461
+ rules: [
462
+ {
463
+ name: 'place order',
464
+ examples: [
465
+ {
466
+ name: 'happy path',
467
+ steps: [
468
+ {
469
+ keyword: 'When',
470
+ text: 'PlaceOrder',
471
+ docString: {
472
+ orderId: 'o-1',
473
+ items: [{ sku: 'abc', quantity: 2 }],
474
+ },
475
+ },
476
+ ],
477
+ },
478
+ ],
479
+ },
480
+ ],
481
+ },
482
+ ],
483
+ },
484
+ },
485
+ ],
486
+ },
487
+ ],
488
+ messages: [
489
+ {
490
+ type: 'state',
491
+ name: 'CartItem',
492
+ fields: [
493
+ { name: 'sku', type: 'string' },
494
+ { name: 'quantity', type: 'number' },
495
+ ],
496
+ },
497
+ {
498
+ type: 'command',
499
+ name: 'PlaceOrder',
500
+ fields: [
501
+ { name: 'orderId', type: 'string', required: true },
502
+ { name: 'items', type: 'Array<CartItem>', required: true },
503
+ ],
504
+ },
505
+ ],
506
+ };
507
+
508
+ const plans = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
509
+ const mutationFile = plans.find(
510
+ (p) => p.outputPath.endsWith('mutation.resolver.ts') && p.contents.includes('export class PlaceOrderResolver'),
511
+ );
512
+
513
+ expect(mutationFile?.contents).toMatchInlineSnapshot(`
514
+ "import { Mutation, Resolver, Arg, Ctx, Field, InputType, Float } from 'type-graphql';
515
+ import { type GraphQLContext, sendCommand, MutationResponse } from '../../../shared';
516
+
517
+ @InputType()
518
+ export class CartItemInput {
519
+ @Field(() => String)
520
+ sku!: string;
521
+
522
+ @Field(() => Float)
523
+ quantity!: number;
524
+ }
525
+
526
+ @InputType()
527
+ export class PlaceOrderInput {
528
+ @Field(() => String)
529
+ orderId!: string;
530
+
531
+ @Field(() => [CartItemInput])
532
+ items!: CartItemInput[];
533
+ }
534
+
535
+ @Resolver()
536
+ export class PlaceOrderResolver {
537
+ @Mutation(() => MutationResponse)
538
+ async placeOrder(
539
+ @Arg('input', () => PlaceOrderInput) input: PlaceOrderInput,
540
+ @Ctx() ctx: GraphQLContext,
541
+ ): Promise<MutationResponse> {
542
+ return await sendCommand(ctx.messageBus, {
543
+ type: 'PlaceOrder',
544
+ kind: 'Command',
545
+ data: { ...input },
546
+ });
547
+ }
548
+ }
549
+ "
550
+ `);
551
+ });
443
552
  });
@@ -1,9 +1,10 @@
1
1
  <%
2
2
  const cmd = commands[0];
3
- const usesDate = cmd.fields.some(f => fieldUsesDate(f.type ?? f.tsType));
4
- const usesJSON = cmd.fields.some(f => fieldUsesJSON(f.type ?? f.tsType));
5
- const usesFloat = cmd.fields.some(f => fieldUsesFloat(f.type ?? f.tsType));
6
- const enumList = collectEnumNames(cmd.fields);
3
+ const refFields = (referencedTypes ?? []).flatMap(rt => rt.fields ?? []);
4
+ const usesDate = [...cmd.fields, ...refFields].some(f => fieldUsesDate(f.type ?? f.tsType));
5
+ const usesJSON = [...cmd.fields, ...refFields].some(f => fieldUsesJSON(f.type ?? f.tsType));
6
+ const usesFloat = [...cmd.fields, ...refFields].some(f => fieldUsesFloat(f.type ?? f.tsType));
7
+ const enumList = collectEnumNames([...cmd.fields, ...refFields]);
7
8
 
8
9
  const embeddedInputs = [];
9
10
  for (const f of cmd.fields) {
@@ -35,6 +36,23 @@ export class <%= typeName %> {
35
36
  <% } %>
36
37
  }
37
38
  <% } %>
39
+ <% for (const ref of (referencedTypes ?? [])) {
40
+ const parsedRefFields = (ref.fields ?? []).map(f => ({
41
+ name: f.name,
42
+ tsType: f.type ?? 'string',
43
+ gqlType: graphqlType(f.type ?? 'string'),
44
+ nullable: isNullable(f.type ?? 'string'),
45
+ }));
46
+ %>
47
+
48
+ @InputType()
49
+ export class <%= ref.name %>Input {
50
+ <% for (const f of parsedRefFields) { %>
51
+ @Field(() => <%= f.gqlType %><%= f.nullable ? ', { nullable: true }' : '' %>)
52
+ <%= f.name %><%= f.nullable ? '?' : '!' %>: <%= toTsFieldType(f.tsType) %>;
53
+ <% } %>
54
+ }
55
+ <% } %>
38
56
 
39
57
  @InputType()
40
58
  export class <%= pascalCase(cmd.type) %>Input {
@@ -49,6 +67,12 @@ if (isInlineObjectArray(tsType)) { %>
49
67
  <% } else if (isInlineObject(tsType)) { %>
50
68
  @Field(() => <%= nestedName %><%= (field.required === false || isNullable(tsType)) ? ', { nullable: true }' : '' %>)
51
69
  <%= field.name %><%= field.required === false ? '?' : '!' %>: <%= nestedName %>;
70
+ <% } else if (isReferencedMessageTypeArray(tsType)) { %>
71
+ @Field(() => [<%= extractReferencedTypeName(tsType) %>Input]<%= (field.required === false || isNullable(tsType)) ? ', { nullable: true }' : '' %>)
72
+ <%= field.name %><%= field.required === false ? '?' : '!' %>: <%= extractReferencedTypeName(tsType) %>Input[];
73
+ <% } else if (isReferencedMessageType(tsType)) { %>
74
+ @Field(() => <%= extractReferencedTypeName(tsType) %>Input<%= (field.required === false || isNullable(tsType)) ? ', { nullable: true }' : '' %>)
75
+ <%= field.name %><%= field.required === false ? '?' : '!' %>: <%= extractReferencedTypeName(tsType) %>Input;
52
76
  <% } else { %>
53
77
  @Field(() => <%= gqlType %><%= (field.required === false || isNullable(tsType)) ? ', { nullable: true }' : '' %>)
54
78
  <%= field.name %><%= field.required === false ? '?' : '!' %>: <%= toTsFieldType(tsType) %>;