@gqlkit-ts/cli 0.2.0 → 0.3.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 (190) hide show
  1. package/dist/auto-type-generator/auto-type-generator.d.ts +10 -4
  2. package/dist/auto-type-generator/auto-type-generator.d.ts.map +1 -1
  3. package/dist/auto-type-generator/auto-type-generator.js +640 -133
  4. package/dist/auto-type-generator/auto-type-generator.js.map +1 -1
  5. package/dist/auto-type-generator/index.d.ts +8 -1
  6. package/dist/auto-type-generator/index.d.ts.map +1 -1
  7. package/dist/auto-type-generator/index.js +3 -0
  8. package/dist/auto-type-generator/index.js.map +1 -1
  9. package/dist/auto-type-generator/inline-enum-collector.d.ts +13 -5
  10. package/dist/auto-type-generator/inline-enum-collector.d.ts.map +1 -1
  11. package/dist/auto-type-generator/inline-enum-collector.js +107 -71
  12. package/dist/auto-type-generator/inline-enum-collector.js.map +1 -1
  13. package/dist/auto-type-generator/inline-object-traverser.d.ts +20 -0
  14. package/dist/auto-type-generator/inline-object-traverser.d.ts.map +1 -0
  15. package/dist/auto-type-generator/inline-object-traverser.js +22 -0
  16. package/dist/auto-type-generator/inline-object-traverser.js.map +1 -0
  17. package/dist/auto-type-generator/inline-union-collector.d.ts +29 -0
  18. package/dist/auto-type-generator/inline-union-collector.d.ts.map +1 -0
  19. package/dist/auto-type-generator/inline-union-collector.js +216 -0
  20. package/dist/auto-type-generator/inline-union-collector.js.map +1 -0
  21. package/dist/auto-type-generator/inline-union-types.d.ts +29 -0
  22. package/dist/auto-type-generator/inline-union-types.d.ts.map +1 -0
  23. package/dist/auto-type-generator/inline-union-types.js +2 -0
  24. package/dist/auto-type-generator/inline-union-types.js.map +1 -0
  25. package/dist/auto-type-generator/inline-union-validator.d.ts +76 -0
  26. package/dist/auto-type-generator/inline-union-validator.d.ts.map +1 -0
  27. package/dist/auto-type-generator/inline-union-validator.js +329 -0
  28. package/dist/auto-type-generator/inline-union-validator.js.map +1 -0
  29. package/dist/auto-type-generator/naming-convention.d.ts +18 -1
  30. package/dist/auto-type-generator/naming-convention.d.ts.map +1 -1
  31. package/dist/auto-type-generator/naming-convention.js +16 -0
  32. package/dist/auto-type-generator/naming-convention.js.map +1 -1
  33. package/dist/auto-type-generator/resolve-type-generator.d.ts +20 -0
  34. package/dist/auto-type-generator/resolve-type-generator.d.ts.map +1 -0
  35. package/dist/auto-type-generator/resolve-type-generator.js +2 -0
  36. package/dist/auto-type-generator/resolve-type-generator.js.map +1 -0
  37. package/dist/auto-type-generator/resolver-field-iterator.d.ts +13 -0
  38. package/dist/auto-type-generator/resolver-field-iterator.d.ts.map +1 -0
  39. package/dist/auto-type-generator/resolver-field-iterator.js +22 -0
  40. package/dist/auto-type-generator/resolver-field-iterator.js.map +1 -0
  41. package/dist/auto-type-generator/typename-extractor.d.ts +26 -0
  42. package/dist/auto-type-generator/typename-extractor.d.ts.map +1 -0
  43. package/dist/auto-type-generator/typename-extractor.js +142 -0
  44. package/dist/auto-type-generator/typename-extractor.js.map +1 -0
  45. package/dist/auto-type-generator/typename-resolve-type-generator.d.ts +35 -0
  46. package/dist/auto-type-generator/typename-resolve-type-generator.d.ts.map +1 -0
  47. package/dist/auto-type-generator/typename-resolve-type-generator.js +177 -0
  48. package/dist/auto-type-generator/typename-resolve-type-generator.js.map +1 -0
  49. package/dist/auto-type-generator/typename-types.d.ts +43 -0
  50. package/dist/auto-type-generator/typename-types.d.ts.map +1 -0
  51. package/dist/auto-type-generator/typename-types.js +37 -0
  52. package/dist/auto-type-generator/typename-types.js.map +1 -0
  53. package/dist/auto-type-generator/typename-validator.d.ts +37 -0
  54. package/dist/auto-type-generator/typename-validator.d.ts.map +1 -0
  55. package/dist/auto-type-generator/typename-validator.js +206 -0
  56. package/dist/auto-type-generator/typename-validator.js.map +1 -0
  57. package/dist/cli.js +2 -0
  58. package/dist/cli.js.map +1 -1
  59. package/dist/commands/docs.d.ts +51 -0
  60. package/dist/commands/docs.d.ts.map +1 -0
  61. package/dist/commands/docs.js +154 -0
  62. package/dist/commands/docs.js.map +1 -0
  63. package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -1
  64. package/dist/gen-orchestrator/orchestrator.js +13 -6
  65. package/dist/gen-orchestrator/orchestrator.js.map +1 -1
  66. package/dist/resolver-extractor/extract-resolvers.d.ts +19 -1
  67. package/dist/resolver-extractor/extract-resolvers.d.ts.map +1 -1
  68. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts +5 -0
  69. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -1
  70. package/dist/resolver-extractor/extractor/define-api-extractor.js +14 -61
  71. package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -1
  72. package/dist/resolver-extractor/index.d.ts +0 -1
  73. package/dist/resolver-extractor/index.d.ts.map +1 -1
  74. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts +1 -0
  75. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts.map +1 -1
  76. package/dist/resolver-extractor/validator/abstract-resolver-validator.js +9 -5
  77. package/dist/resolver-extractor/validator/abstract-resolver-validator.js.map +1 -1
  78. package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -1
  79. package/dist/schema-generator/emitter/code-emitter.js +20 -0
  80. package/dist/schema-generator/emitter/code-emitter.js.map +1 -1
  81. package/dist/schema-generator/generate-schema.d.ts +1 -0
  82. package/dist/schema-generator/generate-schema.d.ts.map +1 -1
  83. package/dist/schema-generator/generate-schema.js +72 -3
  84. package/dist/schema-generator/generate-schema.js.map +1 -1
  85. package/dist/schema-generator/integrator/result-integrator.d.ts +14 -2
  86. package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -1
  87. package/dist/schema-generator/integrator/result-integrator.js +54 -1
  88. package/dist/schema-generator/integrator/result-integrator.js.map +1 -1
  89. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts +2 -0
  90. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts.map +1 -1
  91. package/dist/schema-generator/resolver-collector/resolver-collector.js +22 -0
  92. package/dist/schema-generator/resolver-collector/resolver-collector.js.map +1 -1
  93. package/dist/shared/enum-prefix-detector.d.ts +63 -0
  94. package/dist/shared/enum-prefix-detector.d.ts.map +1 -0
  95. package/dist/shared/enum-prefix-detector.js +80 -0
  96. package/dist/shared/enum-prefix-detector.js.map +1 -0
  97. package/dist/shared/ignore-fields-detector.d.ts +26 -0
  98. package/dist/shared/ignore-fields-detector.d.ts.map +1 -0
  99. package/dist/shared/ignore-fields-detector.js +83 -0
  100. package/dist/shared/ignore-fields-detector.js.map +1 -0
  101. package/dist/shared/ignore-fields-validator.d.ts +29 -0
  102. package/dist/shared/ignore-fields-validator.d.ts.map +1 -0
  103. package/dist/shared/ignore-fields-validator.js +43 -0
  104. package/dist/shared/ignore-fields-validator.js.map +1 -0
  105. package/dist/shared/index.d.ts +2 -0
  106. package/dist/shared/index.d.ts.map +1 -1
  107. package/dist/shared/index.js.map +1 -1
  108. package/dist/shared/source-location.d.ts +5 -0
  109. package/dist/shared/source-location.d.ts.map +1 -1
  110. package/dist/shared/source-location.js +7 -0
  111. package/dist/shared/source-location.js.map +1 -1
  112. package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -1
  113. package/dist/type-extractor/converter/graphql-converter.js +21 -7
  114. package/dist/type-extractor/converter/graphql-converter.js.map +1 -1
  115. package/dist/type-extractor/extractor/field-type-resolver.js +42 -3
  116. package/dist/type-extractor/extractor/field-type-resolver.js.map +1 -1
  117. package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -1
  118. package/dist/type-extractor/extractor/type-extractor.js +88 -23
  119. package/dist/type-extractor/extractor/type-extractor.js.map +1 -1
  120. package/dist/type-extractor/types/diagnostics.d.ts +1 -1
  121. package/dist/type-extractor/types/diagnostics.d.ts.map +1 -1
  122. package/dist/type-extractor/types/ts-type-reference-factory.d.ts +10 -2
  123. package/dist/type-extractor/types/ts-type-reference-factory.d.ts.map +1 -1
  124. package/dist/type-extractor/types/ts-type-reference-factory.js +8 -2
  125. package/dist/type-extractor/types/ts-type-reference-factory.js.map +1 -1
  126. package/dist/type-extractor/types/typescript.d.ts +4 -0
  127. package/dist/type-extractor/types/typescript.d.ts.map +1 -1
  128. package/docs/coding-agents.md +64 -0
  129. package/docs/configuration.md +6 -20
  130. package/docs/getting-started.md +15 -12
  131. package/docs/index.md +36 -22
  132. package/docs/integration/apollo.md +8 -40
  133. package/docs/integration/drizzle.md +6 -10
  134. package/docs/integration/prisma.md +196 -0
  135. package/docs/integration/yoga.md +8 -40
  136. package/docs/schema/abstract-resolvers.md +117 -0
  137. package/docs/schema/directives.md +5 -0
  138. package/docs/schema/documentation.md +5 -0
  139. package/docs/schema/enums.md +99 -0
  140. package/docs/schema/fields.md +64 -0
  141. package/docs/schema/index.md +21 -0
  142. package/docs/schema/inputs.md +115 -15
  143. package/docs/schema/interfaces.md +31 -1
  144. package/docs/schema/objects.md +40 -0
  145. package/docs/schema/queries-mutations.md +136 -22
  146. package/docs/schema/scalars.md +5 -0
  147. package/docs/schema/unions.md +208 -1
  148. package/docs/what-is-gqlkit.md +13 -8
  149. package/package.json +6 -4
  150. package/src/auto-type-generator/auto-type-generator.ts +946 -201
  151. package/src/auto-type-generator/index.ts +42 -0
  152. package/src/auto-type-generator/inline-enum-collector.ts +187 -139
  153. package/src/auto-type-generator/inline-object-traverser.ts +49 -0
  154. package/src/auto-type-generator/inline-union-collector.ts +402 -0
  155. package/src/auto-type-generator/inline-union-types.ts +33 -0
  156. package/src/auto-type-generator/inline-union-validator.ts +482 -0
  157. package/src/auto-type-generator/naming-convention.ts +38 -1
  158. package/src/auto-type-generator/resolve-type-generator.ts +21 -0
  159. package/src/auto-type-generator/resolver-field-iterator.ts +39 -0
  160. package/src/auto-type-generator/typename-extractor.ts +230 -0
  161. package/src/auto-type-generator/typename-resolve-type-generator.ts +281 -0
  162. package/src/auto-type-generator/typename-types.ts +66 -0
  163. package/src/auto-type-generator/typename-validator.ts +326 -0
  164. package/src/cli.ts +2 -0
  165. package/src/commands/docs.ts +211 -0
  166. package/src/gen-orchestrator/orchestrator.ts +20 -6
  167. package/src/resolver-extractor/extract-resolvers.ts +19 -0
  168. package/src/resolver-extractor/extractor/define-api-extractor.ts +23 -89
  169. package/src/resolver-extractor/index.ts +0 -6
  170. package/src/resolver-extractor/validator/abstract-resolver-validator.ts +16 -8
  171. package/src/schema-generator/emitter/code-emitter.ts +34 -0
  172. package/src/schema-generator/generate-schema.ts +99 -2
  173. package/src/schema-generator/integrator/result-integrator.ts +70 -1
  174. package/src/schema-generator/resolver-collector/resolver-collector.ts +34 -0
  175. package/src/shared/enum-prefix-detector.ts +99 -0
  176. package/src/shared/ignore-fields-detector.ts +109 -0
  177. package/src/shared/ignore-fields-validator.ts +66 -0
  178. package/src/shared/index.ts +2 -0
  179. package/src/shared/source-location.ts +11 -0
  180. package/src/type-extractor/converter/graphql-converter.ts +31 -7
  181. package/src/type-extractor/extractor/field-type-resolver.ts +48 -3
  182. package/src/type-extractor/extractor/type-extractor.ts +103 -26
  183. package/src/type-extractor/types/diagnostics.ts +12 -2
  184. package/src/type-extractor/types/ts-type-reference-factory.ts +18 -5
  185. package/src/type-extractor/types/typescript.ts +4 -0
  186. package/dist/resolver-extractor/validator/only-validator.d.ts +0 -61
  187. package/dist/resolver-extractor/validator/only-validator.d.ts.map +0 -1
  188. package/dist/resolver-extractor/validator/only-validator.js +0 -76
  189. package/dist/resolver-extractor/validator/only-validator.js.map +0 -1
  190. package/src/resolver-extractor/validator/only-validator.ts +0 -158
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-union-validator.js","sourceRoot":"","sources":["../../src/auto-type-generator/inline-union-validator.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Context for generating auto type names based on different scenarios.
3
3
  */
4
- export type AutoTypeNameContext = ObjectFieldContext | InputFieldContext | ResolverArgContext;
4
+ export type AutoTypeNameContext = ObjectFieldContext | InputFieldContext | ResolverArgContext | ResolverPayloadContext;
5
5
  /**
6
6
  * Context for Object type field inline objects.
7
7
  * Generated name: {ParentTypeName}{PascalCaseFieldPath}
@@ -33,6 +33,23 @@ export interface ResolverArgContext {
33
33
  readonly parentTypeName: string | null;
34
34
  readonly fieldPath: ReadonlyArray<string>;
35
35
  }
36
+ /**
37
+ * Context for resolver payload inline types.
38
+ * Query/Mutation: {PascalCaseFieldName}Payload
39
+ * Field resolver: {ParentTypeName}{PascalCaseFieldName}Payload
40
+ * Nested: {PayloadTypeName}{PascalCaseFieldPath} (no Input suffix)
41
+ */
42
+ export interface ResolverPayloadContext {
43
+ readonly kind: "resolverPayload";
44
+ readonly resolverType: "query" | "mutation" | "field";
45
+ readonly fieldName: string;
46
+ readonly parentTypeName: string | null;
47
+ readonly fieldPath: ReadonlyArray<string>;
48
+ }
49
+ /**
50
+ * Check if a type name follows the Input type naming convention.
51
+ */
52
+ export declare function isInputTypeName(name: string): boolean;
36
53
  /**
37
54
  * Build a field context (object or input) based on the parent type name.
38
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"naming-convention.d.ts","sourceRoot":"","sources":["../../src/auto-type-generator/naming-convention.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAiCD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAChC,OAAO,EAAE,OAAO,GACf,kBAAkB,GAAG,iBAAiB,CAIxC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CASzE"}
1
+ {"version":3,"file":"naming-convention.d.ts","sourceRoot":"","sources":["../../src/auto-type-generator/naming-convention.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,sBAAsB,CAAC;AAE3B;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3C;AAiCD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAChC,OAAO,EAAE,OAAO,GACf,kBAAkB,GAAG,iBAAiB,CAIxC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAWzE"}
@@ -22,6 +22,12 @@ function removeInputSuffix(typeName) {
22
22
  }
23
23
  return typeName;
24
24
  }
25
+ /**
26
+ * Check if a type name follows the Input type naming convention.
27
+ */
28
+ export function isInputTypeName(name) {
29
+ return name.endsWith("Input");
30
+ }
25
31
  /**
26
32
  * Build a field context (object or input) based on the parent type name.
27
33
  */
@@ -41,6 +47,8 @@ export function generateAutoTypeName(context) {
41
47
  return generateInputFieldTypeName(context);
42
48
  case "resolverArg":
43
49
  return generateResolverArgTypeName(context);
50
+ case "resolverPayload":
51
+ return generateResolverPayloadTypeName(context);
44
52
  }
45
53
  }
46
54
  function generateObjectFieldTypeName(context) {
@@ -64,4 +72,12 @@ function generateResolverArgTypeName(context) {
64
72
  }
65
73
  return `${fieldNamePascal}${argNamePascal}${pathParts}Input`;
66
74
  }
75
+ function generateResolverPayloadTypeName(context) {
76
+ const fieldNamePascal = toPascalCase(context.fieldName);
77
+ const pathParts = context.fieldPath.map(toPascalCase).join("");
78
+ if (context.resolverType === "field" && context.parentTypeName) {
79
+ return `${context.parentTypeName}${fieldNamePascal}Payload${pathParts}`;
80
+ }
81
+ return `${fieldNamePascal}Payload${pathParts}`;
82
+ }
67
83
  //# sourceMappingURL=naming-convention.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"naming-convention.js","sourceRoot":"","sources":["../../src/auto-type-generator/naming-convention.ts"],"names":[],"mappings":"AA0CA;;;GAGG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAEjC,OAAO,GAAG;SACP,KAAK,CAAC,SAAS,CAAC;SAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI;SACD,KAAK,CAAC,WAAW,CAAC;SAClB,GAAG,CACF,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACnE;SACA,IAAI,CAAC,EAAE,CAAC,CACZ;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,cAAsB,EACtB,SAAgC,EAChC,OAAgB;IAEhB,OAAO,OAAO;QACZ,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE;QACnD,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA4B;IAC/D,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,aAAa;YAChB,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,YAAY;YACf,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,aAAa;YAChB,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA2B;IAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,0BAA0B,CAAC,OAA0B;IAC5D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,GAAG,QAAQ,GAAG,SAAS,OAAO,CAAC;AACxC,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA2B;IAC9D,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,yDAAyD;IACzD,MAAM,aAAa,GACjB,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO;QACvC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,YAAY,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC/D,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,eAAe,GAAG,aAAa,GAAG,SAAS,OAAO,CAAC;IACxF,CAAC;IAED,OAAO,GAAG,eAAe,GAAG,aAAa,GAAG,SAAS,OAAO,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"naming-convention.js","sourceRoot":"","sources":["../../src/auto-type-generator/naming-convention.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { TypenameFieldNameSet } from "./typename-types.js";
2
+ /**
3
+ * Pattern describing which typename fields are used for resolving types.
4
+ * - Single field: Set contains one field name (e.g., {"__typename"} or {"$typeName"})
5
+ * - Mixed: Set contains multiple field names (e.g., {"__typename", "$typeName"})
6
+ */
7
+ export interface ResolveTypeFieldPattern {
8
+ readonly usedFieldNames: TypenameFieldNameSet;
9
+ }
10
+ /**
11
+ * Information about an auto-generated __resolveType function for a Union type.
12
+ * The generated function returns `obj.__typename` to resolve the concrete type.
13
+ */
14
+ export interface AutoGeneratedResolveType {
15
+ /** The name of the Union type */
16
+ readonly unionTypeName: string;
17
+ /** The field pattern used to resolve the type name */
18
+ readonly fieldPattern: ResolveTypeFieldPattern;
19
+ }
20
+ //# sourceMappingURL=resolve-type-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-type-generator.d.ts","sourceRoot":"","sources":["../../src/auto-type-generator/resolve-type-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,iCAAiC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;CAChD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resolve-type-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-type-generator.js","sourceRoot":"","sources":["../../src/auto-type-generator/resolve-type-generator.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { ExtractResolversResult, GraphQLFieldDefinition } from "../resolver-extractor/index.js";
2
+ export type ResolverType = "query" | "mutation" | "field";
3
+ export interface ResolverFieldInfo {
4
+ readonly field: GraphQLFieldDefinition;
5
+ readonly resolverType: ResolverType;
6
+ readonly parentTypeName: string | null;
7
+ }
8
+ /**
9
+ * Iterates over all resolver fields (query, mutation, field extensions) in a consistent manner.
10
+ * This eliminates the repeated iteration pattern across multiple collector functions.
11
+ */
12
+ export declare function forEachResolverField(resolversResult: ExtractResolversResult, visitor: (info: ResolverFieldInfo) => void): void;
13
+ //# sourceMappingURL=resolver-field-iterator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver-field-iterator.d.ts","sourceRoot":"","sources":["../../src/auto-type-generator/resolver-field-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,sBAAsB,EACvC,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,GACzC,IAAI,CAkBN"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Iterates over all resolver fields (query, mutation, field extensions) in a consistent manner.
3
+ * This eliminates the repeated iteration pattern across multiple collector functions.
4
+ */
5
+ export function forEachResolverField(resolversResult, visitor) {
6
+ for (const field of resolversResult.queryFields.fields) {
7
+ visitor({ field, resolverType: "query", parentTypeName: null });
8
+ }
9
+ for (const field of resolversResult.mutationFields.fields) {
10
+ visitor({ field, resolverType: "mutation", parentTypeName: null });
11
+ }
12
+ for (const ext of resolversResult.typeExtensions) {
13
+ for (const field of ext.fields) {
14
+ visitor({
15
+ field,
16
+ resolverType: "field",
17
+ parentTypeName: ext.targetTypeName,
18
+ });
19
+ }
20
+ }
21
+ }
22
+ //# sourceMappingURL=resolver-field-iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver-field-iterator.js","sourceRoot":"","sources":["../../src/auto-type-generator/resolver-field-iterator.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,eAAuC,EACvC,OAA0C;IAE1C,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACvD,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1D,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC;gBACN,KAAK;gBACL,YAAY,EAAE,OAAO;gBACrB,cAAc,EAAE,GAAG,CAAC,cAAc;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { ExtractedTypeInfo } from "../type-extractor/types/index.js";
2
+ import { type TypenameFieldInfo } from "./typename-types.js";
3
+ export type { TypenameFieldInfo } from "./typename-types.js";
4
+ export interface MemberTypenameInfo {
5
+ readonly memberTypeName: string | null;
6
+ readonly memberIndex: number;
7
+ readonly typenameInfo: TypenameFieldInfo | null;
8
+ readonly isInlineObject: boolean;
9
+ }
10
+ export interface TypenameExtractionResult {
11
+ readonly abstractTypeName: string;
12
+ readonly abstractTypeKind: "union" | "interface";
13
+ readonly members: ReadonlyArray<MemberTypenameInfo>;
14
+ readonly allMembersHaveTypename: boolean;
15
+ readonly hasInlineObjects: boolean;
16
+ }
17
+ export interface ExtractTypenamesParams {
18
+ readonly abstractType: ExtractedTypeInfo;
19
+ readonly typeMap: ReadonlyMap<string, ExtractedTypeInfo>;
20
+ }
21
+ export interface CollectTypenameExtractionsParams {
22
+ readonly extractedTypes: ReadonlyArray<ExtractedTypeInfo>;
23
+ readonly typeMap: ReadonlyMap<string, ExtractedTypeInfo>;
24
+ }
25
+ export declare function collectTypenameExtractions(params: CollectTypenameExtractionsParams): ReadonlyArray<TypenameExtractionResult>;
26
+ //# sourceMappingURL=typename-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typename-extractor.d.ts","sourceRoot":"","sources":["../../src/auto-type-generator/typename-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,GAAG,WAAW,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACpD,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC1D;AA+KD,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC1D;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,gCAAgC,GACvC,aAAa,CAAC,wBAAwB,CAAC,CAiBzC"}
@@ -0,0 +1,142 @@
1
+ import { findTypenameProperty, } from "./typename-types.js";
2
+ function extractTypenameFromFields(fields) {
3
+ const found = findTypenameProperty(fields, (f) => f.name);
4
+ if (!found) {
5
+ return null;
6
+ }
7
+ const { property: field, fieldName } = found;
8
+ if (field.optional) {
9
+ return null;
10
+ }
11
+ const { tsType } = field;
12
+ if (tsType.nullable || tsType.kind !== "literal" || tsType.name === null) {
13
+ return null;
14
+ }
15
+ return { typeName: tsType.name, fieldName };
16
+ }
17
+ function extractTypenameFromInlineObjectProperties(properties) {
18
+ const found = findTypenameProperty(properties, (p) => p.propertyName);
19
+ if (!found) {
20
+ return null;
21
+ }
22
+ const { property, fieldName } = found;
23
+ const { propertyType: tsType } = property;
24
+ if (tsType.nullable || tsType.kind !== "literal" || tsType.name === null) {
25
+ return null;
26
+ }
27
+ return { typeName: tsType.name, fieldName };
28
+ }
29
+ function extractUnionMemberTypenames(params) {
30
+ const { abstractType, typeMap } = params;
31
+ const members = [];
32
+ let allMembersHaveTypename = true;
33
+ const unionMembers = abstractType.unionMembers ?? [];
34
+ const inlineObjectMembers = abstractType.inlineObjectMembers ?? [];
35
+ const hasInlineObjects = inlineObjectMembers.length > 0;
36
+ let memberIndex = 0;
37
+ for (const memberName of unionMembers) {
38
+ const memberType = typeMap.get(memberName);
39
+ if (!memberType) {
40
+ members.push({
41
+ memberTypeName: memberName,
42
+ memberIndex,
43
+ typenameInfo: null,
44
+ isInlineObject: false,
45
+ });
46
+ allMembersHaveTypename = false;
47
+ memberIndex++;
48
+ continue;
49
+ }
50
+ const typenameInfo = extractTypenameFromFields(memberType.fields);
51
+ if (typenameInfo === null) {
52
+ allMembersHaveTypename = false;
53
+ }
54
+ members.push({
55
+ memberTypeName: memberName,
56
+ memberIndex,
57
+ typenameInfo,
58
+ isInlineObject: false,
59
+ });
60
+ memberIndex++;
61
+ }
62
+ for (const inlineObjectMember of inlineObjectMembers) {
63
+ const typenameInfo = extractTypenameFromInlineObjectProperties(inlineObjectMember.properties);
64
+ if (typenameInfo === null) {
65
+ allMembersHaveTypename = false;
66
+ }
67
+ members.push({
68
+ memberTypeName: null,
69
+ memberIndex,
70
+ typenameInfo,
71
+ isInlineObject: true,
72
+ });
73
+ memberIndex++;
74
+ }
75
+ return {
76
+ abstractTypeName: abstractType.metadata.name,
77
+ abstractTypeKind: "union",
78
+ members,
79
+ allMembersHaveTypename,
80
+ hasInlineObjects,
81
+ };
82
+ }
83
+ function extractInterfaceImplementerTypenames(params, implementers) {
84
+ const { abstractType } = params;
85
+ const members = [];
86
+ let allMembersHaveTypename = true;
87
+ const hasInlineObjects = false;
88
+ for (let i = 0; i < implementers.length; i++) {
89
+ const implementer = implementers[i];
90
+ const typenameInfo = extractTypenameFromFields(implementer.fields);
91
+ if (typenameInfo === null) {
92
+ allMembersHaveTypename = false;
93
+ }
94
+ members.push({
95
+ memberTypeName: implementer.metadata.name,
96
+ memberIndex: i,
97
+ typenameInfo,
98
+ isInlineObject: false,
99
+ });
100
+ }
101
+ return {
102
+ abstractTypeName: abstractType.metadata.name,
103
+ abstractTypeKind: "interface",
104
+ members,
105
+ allMembersHaveTypename,
106
+ hasInlineObjects,
107
+ };
108
+ }
109
+ function extractTypenames(params) {
110
+ const { abstractType, typeMap } = params;
111
+ if (abstractType.metadata.kind === "union") {
112
+ return extractUnionMemberTypenames(params);
113
+ }
114
+ if (abstractType.metadata.kind === "graphqlInterface") {
115
+ const implementers = [];
116
+ for (const typeInfo of typeMap.values()) {
117
+ if (typeInfo.implementedInterfaces?.includes(abstractType.metadata.name)) {
118
+ implementers.push(typeInfo);
119
+ }
120
+ }
121
+ if (implementers.length === 0) {
122
+ return null;
123
+ }
124
+ return extractInterfaceImplementerTypenames(params, implementers);
125
+ }
126
+ return null;
127
+ }
128
+ export function collectTypenameExtractions(params) {
129
+ const { extractedTypes, typeMap } = params;
130
+ const results = [];
131
+ for (const typeInfo of extractedTypes) {
132
+ if (typeInfo.metadata.kind === "union" ||
133
+ typeInfo.metadata.kind === "graphqlInterface") {
134
+ const result = extractTypenames({ abstractType: typeInfo, typeMap });
135
+ if (result !== null) {
136
+ results.push(result);
137
+ }
138
+ }
139
+ }
140
+ return results;
141
+ }
142
+ //# sourceMappingURL=typename-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typename-extractor.js","sourceRoot":"","sources":["../../src/auto-type-generator/typename-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ExtractedTypeInfo } from "../type-extractor/types/index.js";
2
+ import type { AutoGeneratedType } from "./auto-type-generator.js";
3
+ import type { ResolveTypeFieldPattern } from "./resolve-type-generator.js";
4
+ import type { TypenameFieldName } from "./typename-types.js";
5
+ /**
6
+ * Pattern for resolveType generation from typename fields.
7
+ * Uses the common ResolveTypeFieldPattern for usedFieldNames,
8
+ * with an optional memberFieldMap for mixed patterns.
9
+ */
10
+ export interface ResolveTypePattern extends ResolveTypeFieldPattern {
11
+ readonly memberFieldMap: ReadonlyMap<string, TypenameFieldName> | null;
12
+ }
13
+ export interface TypenameAutoResolveTypeInfo {
14
+ readonly abstractTypeName: string;
15
+ readonly abstractTypeKind: "union" | "interface";
16
+ readonly resolveTypePattern: ResolveTypePattern;
17
+ }
18
+ export interface GeneratedInlineObjectType {
19
+ readonly typeName: string;
20
+ readonly abstractTypeName: string;
21
+ readonly memberIndex: number;
22
+ }
23
+ export interface CollectTypenameResolveTypesParams {
24
+ readonly extractedTypes: ReadonlyArray<ExtractedTypeInfo>;
25
+ readonly typeMap: ReadonlyMap<string, ExtractedTypeInfo>;
26
+ readonly manualResolveTypeNames: ReadonlySet<string>;
27
+ }
28
+ export interface CollectTypenameResolveTypesResult {
29
+ readonly autoResolveTypes: ReadonlyArray<TypenameAutoResolveTypeInfo>;
30
+ readonly autoResolveTypeNames: ReadonlySet<string>;
31
+ readonly generatedObjectTypes: ReadonlyArray<AutoGeneratedType>;
32
+ readonly generatedInlineObjectTypes: ReadonlyArray<GeneratedInlineObjectType>;
33
+ }
34
+ export declare function collectTypenameResolveTypes(params: CollectTypenameResolveTypesParams): CollectTypenameResolveTypesResult;
35
+ //# sourceMappingURL=typename-resolve-type-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typename-resolve-type-generator.d.ts","sourceRoot":"","sources":["../../src/auto-type-generator/typename-resolve-type-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAK3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IACjE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,GAAG,WAAW,CAAC;IACjD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;CACjD;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACzD,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAC;IACtE,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAChE,QAAQ,CAAC,0BAA0B,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;CAC/E;AAqLD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,iCAAiC,GACxC,iCAAiC,CAiDnC"}
@@ -0,0 +1,177 @@
1
+ import { collectTypenameExtractions, } from "./typename-extractor.js";
2
+ function determineResolveTypePattern(extraction) {
3
+ if (!extraction.allMembersHaveTypename) {
4
+ return null;
5
+ }
6
+ const members = extraction.members;
7
+ if (members.length === 0) {
8
+ return null;
9
+ }
10
+ const usedFieldNames = new Set();
11
+ for (const member of members) {
12
+ if (member.typenameInfo === null) {
13
+ return null;
14
+ }
15
+ usedFieldNames.add(member.typenameInfo.fieldName);
16
+ }
17
+ if (usedFieldNames.size === 1) {
18
+ return { usedFieldNames, memberFieldMap: null };
19
+ }
20
+ const memberFieldMap = new Map();
21
+ for (const member of members) {
22
+ if (member.typenameInfo && member.memberTypeName) {
23
+ memberFieldMap.set(member.memberTypeName, member.typenameInfo.fieldName);
24
+ }
25
+ }
26
+ return { usedFieldNames, memberFieldMap };
27
+ }
28
+ function primitiveToGraphQLScalar(primitive) {
29
+ switch (primitive) {
30
+ case "string":
31
+ return "String";
32
+ case "number":
33
+ return "Float";
34
+ case "boolean":
35
+ return "Boolean";
36
+ default:
37
+ return "String";
38
+ }
39
+ }
40
+ function convertInlineObjectPropertyToField(property) {
41
+ if (property.propertyName === "__typename" ||
42
+ property.propertyName === "$typeName") {
43
+ return null;
44
+ }
45
+ const tsType = property.propertyType;
46
+ let typeName;
47
+ const nullable = tsType.nullable;
48
+ let list = false;
49
+ let listItemNullable = null;
50
+ if (tsType.kind === "array" && tsType.elementType) {
51
+ list = true;
52
+ listItemNullable = tsType.elementType.nullable;
53
+ const elementName = tsType.elementType.name ?? "String";
54
+ typeName =
55
+ tsType.elementType.kind === "primitive"
56
+ ? primitiveToGraphQLScalar(elementName)
57
+ : elementName;
58
+ }
59
+ else if (tsType.kind === "reference" && tsType.name) {
60
+ typeName = tsType.name;
61
+ }
62
+ else if (tsType.kind === "primitive" && tsType.name) {
63
+ typeName = primitiveToGraphQLScalar(tsType.name);
64
+ }
65
+ else if (tsType.kind === "scalar" && tsType.scalarInfo) {
66
+ typeName = tsType.scalarInfo.scalarName;
67
+ }
68
+ else {
69
+ typeName = "String";
70
+ }
71
+ return {
72
+ name: property.propertyName,
73
+ type: {
74
+ typeName,
75
+ nullable,
76
+ list,
77
+ listItemNullable,
78
+ },
79
+ description: property.description,
80
+ deprecated: property.deprecated,
81
+ directives: null,
82
+ defaultValue: null,
83
+ };
84
+ }
85
+ function generateObjectTypeFromInlineObject(inlineObjectMember, typeName, abstractTypeName, sourceFile) {
86
+ const fields = [];
87
+ for (const property of inlineObjectMember.properties) {
88
+ const field = convertInlineObjectPropertyToField(property);
89
+ if (field !== null) {
90
+ fields.push(field);
91
+ }
92
+ }
93
+ return {
94
+ name: typeName,
95
+ kind: "Object",
96
+ fields,
97
+ enumValues: null,
98
+ unionMembers: null,
99
+ needsStringEnumMapping: false,
100
+ sourceLocation: { file: sourceFile, line: 1, column: 1 },
101
+ generatedFrom: {
102
+ parentTypeName: abstractTypeName,
103
+ fieldPath: [],
104
+ context: "typeField",
105
+ },
106
+ description: null,
107
+ resolveTypeFieldPattern: null,
108
+ };
109
+ }
110
+ function collectGeneratedObjectTypes(extraction, extractedType) {
111
+ const generatedObjectTypes = [];
112
+ const generatedInlineObjectTypes = [];
113
+ if (!extraction.hasInlineObjects) {
114
+ return { generatedObjectTypes, generatedInlineObjectTypes };
115
+ }
116
+ const inlineObjectMembers = extractedType.inlineObjectMembers ?? [];
117
+ const namedMemberCount = extractedType.unionMembers?.length ?? 0;
118
+ for (const member of extraction.members) {
119
+ if (!member.isInlineObject || member.typenameInfo === null) {
120
+ continue;
121
+ }
122
+ const inlineIndex = member.memberIndex - namedMemberCount;
123
+ const inlineObjectMember = inlineObjectMembers[inlineIndex];
124
+ if (!inlineObjectMember) {
125
+ continue;
126
+ }
127
+ const typeName = member.typenameInfo.typeName;
128
+ const objectType = generateObjectTypeFromInlineObject(inlineObjectMember, typeName, extraction.abstractTypeName, extractedType.metadata.sourceFile);
129
+ generatedObjectTypes.push(objectType);
130
+ generatedInlineObjectTypes.push({
131
+ typeName,
132
+ abstractTypeName: extraction.abstractTypeName,
133
+ memberIndex: member.memberIndex,
134
+ });
135
+ }
136
+ return { generatedObjectTypes, generatedInlineObjectTypes };
137
+ }
138
+ export function collectTypenameResolveTypes(params) {
139
+ const { extractedTypes, typeMap, manualResolveTypeNames } = params;
140
+ const extractions = collectTypenameExtractions({
141
+ extractedTypes,
142
+ typeMap,
143
+ });
144
+ const autoResolveTypes = [];
145
+ const autoResolveTypeNames = new Set();
146
+ const allGeneratedObjectTypes = [];
147
+ const allGeneratedInlineObjectTypes = [];
148
+ const typeInfoMap = new Map(extractedTypes.map((t) => [t.metadata.name, t]));
149
+ for (const extraction of extractions) {
150
+ if (manualResolveTypeNames.has(extraction.abstractTypeName)) {
151
+ continue;
152
+ }
153
+ const extractedType = typeInfoMap.get(extraction.abstractTypeName);
154
+ if (extractedType && extraction.hasInlineObjects) {
155
+ const { generatedObjectTypes, generatedInlineObjectTypes } = collectGeneratedObjectTypes(extraction, extractedType);
156
+ allGeneratedObjectTypes.push(...generatedObjectTypes);
157
+ allGeneratedInlineObjectTypes.push(...generatedInlineObjectTypes);
158
+ }
159
+ const pattern = determineResolveTypePattern(extraction);
160
+ if (pattern === null) {
161
+ continue;
162
+ }
163
+ autoResolveTypes.push({
164
+ abstractTypeName: extraction.abstractTypeName,
165
+ abstractTypeKind: extraction.abstractTypeKind,
166
+ resolveTypePattern: pattern,
167
+ });
168
+ autoResolveTypeNames.add(extraction.abstractTypeName);
169
+ }
170
+ return {
171
+ autoResolveTypes: autoResolveTypes.sort((a, b) => a.abstractTypeName.localeCompare(b.abstractTypeName)),
172
+ autoResolveTypeNames,
173
+ generatedObjectTypes: allGeneratedObjectTypes,
174
+ generatedInlineObjectTypes: allGeneratedInlineObjectTypes,
175
+ };
176
+ }
177
+ //# sourceMappingURL=typename-resolve-type-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typename-resolve-type-generator.js","sourceRoot":"","sources":["../../src/auto-type-generator/typename-resolve-type-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Common types for typename-related functionality.
3
+ * These types are shared across typename-extractor, typename-validator,
4
+ * typename-resolve-type-generator, and inline-union-validator.
5
+ */
6
+ /**
7
+ * All recognized field names for type discrimination.
8
+ * - "__typename" is the standard GraphQL introspection field
9
+ * - "$typeName" is a gqlkit-specific alternative that won't appear in the schema
10
+ *
11
+ * To add a new typename field:
12
+ * 1. Add the field name to this array
13
+ * 2. Update findTypenameProperty priority if needed
14
+ */
15
+ export declare const TYPENAME_FIELD_NAMES: readonly ["__typename", "$typeName"];
16
+ /**
17
+ * The field name used for type discrimination.
18
+ */
19
+ export type TypenameFieldName = (typeof TYPENAME_FIELD_NAMES)[number];
20
+ /**
21
+ * A set of typename field names used in a resolve type pattern.
22
+ */
23
+ export type TypenameFieldNameSet = ReadonlySet<TypenameFieldName>;
24
+ /**
25
+ * Create a TypenameFieldNameSet from field names.
26
+ */
27
+ export declare function createFieldNameSet(fieldNames: ReadonlyArray<TypenameFieldName>): TypenameFieldNameSet;
28
+ /**
29
+ * Information about a typename field extracted from a type definition.
30
+ */
31
+ export interface TypenameFieldInfo {
32
+ readonly typeName: string;
33
+ readonly fieldName: TypenameFieldName;
34
+ }
35
+ /**
36
+ * Find __typename or $typeName property from a list of properties.
37
+ * __typename takes priority over $typeName.
38
+ */
39
+ export declare function findTypenameProperty<T>(properties: ReadonlyArray<T>, getName: (p: T) => string): {
40
+ property: T;
41
+ fieldName: TypenameFieldName;
42
+ } | null;
43
+ //# sourceMappingURL=typename-types.d.ts.map