@gqlkit-ts/cli 0.2.0 → 0.4.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 (235) hide show
  1. package/README.md +143 -0
  2. package/dist/auto-type-generator/auto-type-generator.d.ts +10 -4
  3. package/dist/auto-type-generator/auto-type-generator.d.ts.map +1 -1
  4. package/dist/auto-type-generator/auto-type-generator.js +656 -146
  5. package/dist/auto-type-generator/auto-type-generator.js.map +1 -1
  6. package/dist/auto-type-generator/index.d.ts +8 -1
  7. package/dist/auto-type-generator/index.d.ts.map +1 -1
  8. package/dist/auto-type-generator/index.js +3 -0
  9. package/dist/auto-type-generator/index.js.map +1 -1
  10. package/dist/auto-type-generator/inline-enum-collector.d.ts +13 -5
  11. package/dist/auto-type-generator/inline-enum-collector.d.ts.map +1 -1
  12. package/dist/auto-type-generator/inline-enum-collector.js +107 -71
  13. package/dist/auto-type-generator/inline-enum-collector.js.map +1 -1
  14. package/dist/auto-type-generator/inline-object-traverser.d.ts +20 -0
  15. package/dist/auto-type-generator/inline-object-traverser.d.ts.map +1 -0
  16. package/dist/auto-type-generator/inline-object-traverser.js +22 -0
  17. package/dist/auto-type-generator/inline-object-traverser.js.map +1 -0
  18. package/dist/auto-type-generator/inline-union-collector.d.ts +29 -0
  19. package/dist/auto-type-generator/inline-union-collector.d.ts.map +1 -0
  20. package/dist/auto-type-generator/inline-union-collector.js +216 -0
  21. package/dist/auto-type-generator/inline-union-collector.js.map +1 -0
  22. package/dist/auto-type-generator/inline-union-types.d.ts +29 -0
  23. package/dist/auto-type-generator/inline-union-types.d.ts.map +1 -0
  24. package/dist/auto-type-generator/inline-union-types.js +2 -0
  25. package/dist/auto-type-generator/inline-union-types.js.map +1 -0
  26. package/dist/auto-type-generator/inline-union-validator.d.ts +76 -0
  27. package/dist/auto-type-generator/inline-union-validator.d.ts.map +1 -0
  28. package/dist/auto-type-generator/inline-union-validator.js +329 -0
  29. package/dist/auto-type-generator/inline-union-validator.js.map +1 -0
  30. package/dist/auto-type-generator/naming-convention.d.ts +18 -1
  31. package/dist/auto-type-generator/naming-convention.d.ts.map +1 -1
  32. package/dist/auto-type-generator/naming-convention.js +16 -0
  33. package/dist/auto-type-generator/naming-convention.js.map +1 -1
  34. package/dist/auto-type-generator/resolve-type-generator.d.ts +20 -0
  35. package/dist/auto-type-generator/resolve-type-generator.d.ts.map +1 -0
  36. package/dist/auto-type-generator/resolve-type-generator.js +2 -0
  37. package/dist/auto-type-generator/resolve-type-generator.js.map +1 -0
  38. package/dist/auto-type-generator/resolver-field-iterator.d.ts +13 -0
  39. package/dist/auto-type-generator/resolver-field-iterator.d.ts.map +1 -0
  40. package/dist/auto-type-generator/resolver-field-iterator.js +22 -0
  41. package/dist/auto-type-generator/resolver-field-iterator.js.map +1 -0
  42. package/dist/auto-type-generator/typename-extractor.d.ts +26 -0
  43. package/dist/auto-type-generator/typename-extractor.d.ts.map +1 -0
  44. package/dist/auto-type-generator/typename-extractor.js +142 -0
  45. package/dist/auto-type-generator/typename-extractor.js.map +1 -0
  46. package/dist/auto-type-generator/typename-resolve-type-generator.d.ts +35 -0
  47. package/dist/auto-type-generator/typename-resolve-type-generator.d.ts.map +1 -0
  48. package/dist/auto-type-generator/typename-resolve-type-generator.js +177 -0
  49. package/dist/auto-type-generator/typename-resolve-type-generator.js.map +1 -0
  50. package/dist/auto-type-generator/typename-types.d.ts +43 -0
  51. package/dist/auto-type-generator/typename-types.d.ts.map +1 -0
  52. package/dist/auto-type-generator/typename-types.js +37 -0
  53. package/dist/auto-type-generator/typename-types.js.map +1 -0
  54. package/dist/auto-type-generator/typename-validator.d.ts +37 -0
  55. package/dist/auto-type-generator/typename-validator.d.ts.map +1 -0
  56. package/dist/auto-type-generator/typename-validator.js +206 -0
  57. package/dist/auto-type-generator/typename-validator.js.map +1 -0
  58. package/dist/cli.js +2 -0
  59. package/dist/cli.js.map +1 -1
  60. package/dist/commands/docs.d.ts +51 -0
  61. package/dist/commands/docs.d.ts.map +1 -0
  62. package/dist/commands/docs.js +154 -0
  63. package/dist/commands/docs.js.map +1 -0
  64. package/dist/config/types.d.ts +13 -0
  65. package/dist/config/types.d.ts.map +1 -1
  66. package/dist/config-loader/loader.d.ts +3 -0
  67. package/dist/config-loader/loader.d.ts.map +1 -1
  68. package/dist/config-loader/loader.js +1 -0
  69. package/dist/config-loader/loader.js.map +1 -1
  70. package/dist/config-loader/validator.d.ts.map +1 -1
  71. package/dist/config-loader/validator.js +23 -0
  72. package/dist/config-loader/validator.js.map +1 -1
  73. package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -1
  74. package/dist/gen-orchestrator/orchestrator.js +32 -12
  75. package/dist/gen-orchestrator/orchestrator.js.map +1 -1
  76. package/dist/resolver-extractor/extract-resolvers.d.ts +19 -1
  77. package/dist/resolver-extractor/extract-resolvers.d.ts.map +1 -1
  78. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts +5 -0
  79. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -1
  80. package/dist/resolver-extractor/extractor/define-api-extractor.js +18 -65
  81. package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -1
  82. package/dist/resolver-extractor/index.d.ts +0 -1
  83. package/dist/resolver-extractor/index.d.ts.map +1 -1
  84. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts +1 -0
  85. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts.map +1 -1
  86. package/dist/resolver-extractor/validator/abstract-resolver-validator.js +9 -5
  87. package/dist/resolver-extractor/validator/abstract-resolver-validator.js.map +1 -1
  88. package/dist/schema-generator/builder/ast-builder.d.ts +2 -2
  89. package/dist/schema-generator/builder/ast-builder.d.ts.map +1 -1
  90. package/dist/schema-generator/builder/ast-builder.js +12 -34
  91. package/dist/schema-generator/builder/ast-builder.js.map +1 -1
  92. package/dist/schema-generator/emitter/code-emitter.d.ts +3 -1
  93. package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -1
  94. package/dist/schema-generator/emitter/code-emitter.js +42 -12
  95. package/dist/schema-generator/emitter/code-emitter.js.map +1 -1
  96. package/dist/schema-generator/emitter/sdl-emitter.d.ts +0 -4
  97. package/dist/schema-generator/emitter/sdl-emitter.d.ts.map +1 -1
  98. package/dist/schema-generator/emitter/sdl-emitter.js +0 -4
  99. package/dist/schema-generator/emitter/sdl-emitter.js.map +1 -1
  100. package/dist/schema-generator/generate-schema.d.ts +3 -0
  101. package/dist/schema-generator/generate-schema.d.ts.map +1 -1
  102. package/dist/schema-generator/generate-schema.js +83 -5
  103. package/dist/schema-generator/generate-schema.js.map +1 -1
  104. package/dist/schema-generator/integrator/result-integrator.d.ts +19 -9
  105. package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -1
  106. package/dist/schema-generator/integrator/result-integrator.js +60 -44
  107. package/dist/schema-generator/integrator/result-integrator.js.map +1 -1
  108. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts +2 -0
  109. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts.map +1 -1
  110. package/dist/schema-generator/resolver-collector/resolver-collector.js +22 -0
  111. package/dist/schema-generator/resolver-collector/resolver-collector.js.map +1 -1
  112. package/dist/shared/branded-type-detector.d.ts +43 -0
  113. package/dist/shared/branded-type-detector.d.ts.map +1 -0
  114. package/dist/shared/branded-type-detector.js +146 -0
  115. package/dist/shared/branded-type-detector.js.map +1 -0
  116. package/dist/shared/enum-prefix-detector.d.ts +63 -0
  117. package/dist/shared/enum-prefix-detector.d.ts.map +1 -0
  118. package/dist/shared/enum-prefix-detector.js +80 -0
  119. package/dist/shared/enum-prefix-detector.js.map +1 -0
  120. package/dist/shared/ignore-fields-detector.d.ts +26 -0
  121. package/dist/shared/ignore-fields-detector.d.ts.map +1 -0
  122. package/dist/shared/ignore-fields-detector.js +83 -0
  123. package/dist/shared/ignore-fields-detector.js.map +1 -0
  124. package/dist/shared/ignore-fields-validator.d.ts +29 -0
  125. package/dist/shared/ignore-fields-validator.d.ts.map +1 -0
  126. package/dist/shared/ignore-fields-validator.js +43 -0
  127. package/dist/shared/ignore-fields-validator.js.map +1 -0
  128. package/dist/shared/index.d.ts +2 -0
  129. package/dist/shared/index.d.ts.map +1 -1
  130. package/dist/shared/index.js.map +1 -1
  131. package/dist/shared/source-location.d.ts +5 -0
  132. package/dist/shared/source-location.d.ts.map +1 -1
  133. package/dist/shared/source-location.js +7 -0
  134. package/dist/shared/source-location.js.map +1 -1
  135. package/dist/shared/string-utils.d.ts +2 -0
  136. package/dist/shared/string-utils.d.ts.map +1 -0
  137. package/dist/shared/string-utils.js +8 -0
  138. package/dist/shared/string-utils.js.map +1 -0
  139. package/dist/type-extractor/converter/field-eligibility.d.ts +8 -6
  140. package/dist/type-extractor/converter/field-eligibility.d.ts.map +1 -1
  141. package/dist/type-extractor/converter/field-eligibility.js +7 -28
  142. package/dist/type-extractor/converter/field-eligibility.js.map +1 -1
  143. package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -1
  144. package/dist/type-extractor/converter/graphql-converter.js +27 -18
  145. package/dist/type-extractor/converter/graphql-converter.js.map +1 -1
  146. package/dist/type-extractor/extractor/field-type-resolver.d.ts.map +1 -1
  147. package/dist/type-extractor/extractor/field-type-resolver.js +81 -7
  148. package/dist/type-extractor/extractor/field-type-resolver.js.map +1 -1
  149. package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -1
  150. package/dist/type-extractor/extractor/type-extractor.js +88 -23
  151. package/dist/type-extractor/extractor/type-extractor.js.map +1 -1
  152. package/dist/type-extractor/types/diagnostics.d.ts +1 -1
  153. package/dist/type-extractor/types/diagnostics.d.ts.map +1 -1
  154. package/dist/type-extractor/types/ts-type-reference-factory.d.ts +10 -2
  155. package/dist/type-extractor/types/ts-type-reference-factory.d.ts.map +1 -1
  156. package/dist/type-extractor/types/ts-type-reference-factory.js +8 -2
  157. package/dist/type-extractor/types/ts-type-reference-factory.js.map +1 -1
  158. package/dist/type-extractor/types/typescript.d.ts +4 -0
  159. package/dist/type-extractor/types/typescript.d.ts.map +1 -1
  160. package/dist/type-extractor/validator/type-validator.d.ts +1 -1
  161. package/dist/type-extractor/validator/type-validator.d.ts.map +1 -1
  162. package/dist/type-extractor/validator/type-validator.js +2 -10
  163. package/dist/type-extractor/validator/type-validator.js.map +1 -1
  164. package/docs/coding-agents.md +64 -0
  165. package/docs/configuration.md +15 -20
  166. package/docs/getting-started.md +15 -12
  167. package/docs/index.md +36 -22
  168. package/docs/integration/apollo.md +8 -40
  169. package/docs/integration/drizzle.md +6 -10
  170. package/docs/integration/prisma.md +196 -0
  171. package/docs/integration/yoga.md +8 -40
  172. package/docs/schema/abstract-resolvers.md +117 -0
  173. package/docs/schema/directives.md +5 -0
  174. package/docs/schema/documentation.md +5 -0
  175. package/docs/schema/enums.md +99 -0
  176. package/docs/schema/fields.md +64 -0
  177. package/docs/schema/index.md +21 -0
  178. package/docs/schema/inputs.md +115 -15
  179. package/docs/schema/interfaces.md +31 -1
  180. package/docs/schema/objects.md +40 -0
  181. package/docs/schema/queries-mutations.md +136 -22
  182. package/docs/schema/scalars.md +5 -0
  183. package/docs/schema/unions.md +208 -1
  184. package/docs/what-is-gqlkit.md +13 -8
  185. package/package.json +6 -4
  186. package/src/auto-type-generator/auto-type-generator.ts +969 -227
  187. package/src/auto-type-generator/index.ts +42 -0
  188. package/src/auto-type-generator/inline-enum-collector.ts +187 -139
  189. package/src/auto-type-generator/inline-object-traverser.ts +49 -0
  190. package/src/auto-type-generator/inline-union-collector.ts +402 -0
  191. package/src/auto-type-generator/inline-union-types.ts +33 -0
  192. package/src/auto-type-generator/inline-union-validator.ts +482 -0
  193. package/src/auto-type-generator/naming-convention.ts +38 -1
  194. package/src/auto-type-generator/resolve-type-generator.ts +21 -0
  195. package/src/auto-type-generator/resolver-field-iterator.ts +39 -0
  196. package/src/auto-type-generator/typename-extractor.ts +230 -0
  197. package/src/auto-type-generator/typename-resolve-type-generator.ts +281 -0
  198. package/src/auto-type-generator/typename-types.ts +66 -0
  199. package/src/auto-type-generator/typename-validator.ts +326 -0
  200. package/src/cli.ts +2 -0
  201. package/src/commands/docs.ts +211 -0
  202. package/src/config/types.ts +15 -0
  203. package/src/config-loader/loader.ts +4 -0
  204. package/src/config-loader/validator.ts +33 -0
  205. package/src/gen-orchestrator/orchestrator.ts +50 -17
  206. package/src/resolver-extractor/extract-resolvers.ts +19 -0
  207. package/src/resolver-extractor/extractor/define-api-extractor.ts +28 -94
  208. package/src/resolver-extractor/index.ts +0 -6
  209. package/src/resolver-extractor/validator/abstract-resolver-validator.ts +16 -8
  210. package/src/schema-generator/builder/ast-builder.ts +52 -81
  211. package/src/schema-generator/emitter/code-emitter.ts +82 -11
  212. package/src/schema-generator/emitter/sdl-emitter.ts +0 -4
  213. package/src/schema-generator/generate-schema.ts +109 -14
  214. package/src/schema-generator/integrator/result-integrator.ts +91 -63
  215. package/src/schema-generator/resolver-collector/resolver-collector.ts +34 -0
  216. package/src/shared/branded-type-detector.ts +182 -0
  217. package/src/shared/enum-prefix-detector.ts +99 -0
  218. package/src/shared/ignore-fields-detector.ts +109 -0
  219. package/src/shared/ignore-fields-validator.ts +66 -0
  220. package/src/shared/index.ts +2 -0
  221. package/src/shared/source-location.ts +11 -0
  222. package/src/shared/string-utils.ts +7 -0
  223. package/src/type-extractor/converter/field-eligibility.ts +13 -29
  224. package/src/type-extractor/converter/graphql-converter.ts +37 -23
  225. package/src/type-extractor/extractor/field-type-resolver.ts +97 -7
  226. package/src/type-extractor/extractor/type-extractor.ts +103 -26
  227. package/src/type-extractor/types/diagnostics.ts +13 -2
  228. package/src/type-extractor/types/ts-type-reference-factory.ts +18 -5
  229. package/src/type-extractor/types/typescript.ts +4 -0
  230. package/src/type-extractor/validator/type-validator.ts +2 -15
  231. package/dist/resolver-extractor/validator/only-validator.d.ts +0 -61
  232. package/dist/resolver-extractor/validator/only-validator.d.ts.map +0 -1
  233. package/dist/resolver-extractor/validator/only-validator.js +0 -76
  234. package/dist/resolver-extractor/validator/only-validator.js.map +0 -1
  235. package/src/resolver-extractor/validator/only-validator.ts +0 -158
@@ -1,3 +1,4 @@
1
+ import type { ImportExtension } from "../config/types.js";
1
2
  import type { ExtractResolversResult } from "../resolver-extractor/index.js";
2
3
  import type { DirectiveDefinitionInfo } from "../shared/directive-definition-extractor.js";
3
4
  import type { CollectedScalarType } from "../type-extractor/collector/scalar-collector.js";
@@ -13,6 +14,8 @@ export interface GenerateSchemaInput {
13
14
  readonly directiveDefinitions: ReadonlyArray<DirectiveDefinitionInfo> | null;
14
15
  readonly enablePruning: boolean | null;
15
16
  readonly sourceRoot: string | null;
17
+ readonly knownTypeNames: ReadonlySet<string> | null;
18
+ readonly importExtension: ImportExtension;
16
19
  }
17
20
  export interface GenerateSchemaResult {
18
21
  readonly typeDefsCode: string;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schema.d.ts","sourceRoot":"","sources":["../../src/schema-generator/generate-schema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAE3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAQ1C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;IAC7E,QAAQ,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACpD;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,CA8HtB"}
1
+ {"version":3,"file":"generate-schema.d.ts","sourceRoot":"","sources":["../../src/schema-generator/generate-schema.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAE3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAQ1C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;IAC7E,QAAQ,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACpD;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,CAsNtB"}
@@ -1,4 +1,4 @@
1
- import { generateAutoTypes, validateNameCollisions, } from "../auto-type-generator/index.js";
1
+ import { collectTypenameExtractions, collectTypenameResolveTypes, generateAutoTypes, validateNameCollisions, validateSchemaTypenames, validateTypenames, } from "../auto-type-generator/index.js";
2
2
  import { convertToGraphQL } from "../type-extractor/converter/graphql-converter.js";
3
3
  import { buildDocumentNode } from "./builder/ast-builder.js";
4
4
  import { emitResolversCode, emitTypeDefsCode } from "./emitter/code-emitter.js";
@@ -7,10 +7,11 @@ import { integrate } from "./integrator/result-integrator.js";
7
7
  import { pruneDocumentNode } from "./pruner/schema-pruner.js";
8
8
  import { collectResolverInfo } from "./resolver-collector/resolver-collector.js";
9
9
  export function generateSchema(input) {
10
- const { typesResult, extractedTypes, resolversResult, outputDir, customScalarNames, customScalars, directiveDefinitions, enablePruning, sourceRoot, } = input;
10
+ const { typesResult, extractedTypes, resolversResult, outputDir, customScalarNames, customScalars, directiveDefinitions, enablePruning, sourceRoot, knownTypeNames, importExtension, } = input;
11
11
  const autoTypeResult = generateAutoTypes({
12
12
  extractedTypes,
13
13
  resolversResult,
14
+ knownTypeNames: knownTypeNames ?? new Set(),
14
15
  });
15
16
  const autoTypeErrors = autoTypeResult.diagnostics.filter((d) => d.severity === "error");
16
17
  if (autoTypeErrors.length > 0) {
@@ -60,8 +61,84 @@ export function generateSchema(input) {
60
61
  ],
61
62
  },
62
63
  };
63
- const integratedResult = integrate(updatedTypesResult, autoTypeResult.updatedResolversResult, customScalarNames, customScalars, directiveDefinitions, autoTypeResult.autoGeneratedTypes);
64
- let documentNode = buildDocumentNode(integratedResult, sourceRoot !== null ? { sourceRoot } : undefined);
64
+ const typeMap = new Map(autoTypeResult.updatedExtractedTypes.map((t) => [t.metadata.name, t]));
65
+ const manualResolveTypeNames = new Set(autoTypeResult.updatedResolversResult.abstractTypeResolvers
66
+ .filter((r) => r.kind === "resolveType")
67
+ .map((r) => r.targetTypeName));
68
+ const typenameResolveTypesResult = collectTypenameResolveTypes({
69
+ extractedTypes: autoTypeResult.updatedExtractedTypes,
70
+ typeMap,
71
+ manualResolveTypeNames,
72
+ });
73
+ const typenameExtractions = collectTypenameExtractions({
74
+ extractedTypes: autoTypeResult.updatedExtractedTypes,
75
+ typeMap,
76
+ });
77
+ const typenameValidationDiagnostics = [];
78
+ for (const extraction of typenameExtractions) {
79
+ const abstractType = typeMap.get(extraction.abstractTypeName);
80
+ if (!abstractType) {
81
+ continue;
82
+ }
83
+ const validationResult = validateTypenames({
84
+ extractionResult: extraction,
85
+ sourceLocation: abstractType.metadata.sourceLocation,
86
+ inlineObjectMembers: abstractType.inlineObjectMembers,
87
+ });
88
+ typenameValidationDiagnostics.push(...validationResult.diagnostics);
89
+ }
90
+ const schemaTypenameValidationResult = validateSchemaTypenames({
91
+ objectTypes: autoTypeResult.updatedExtractedTypes,
92
+ typeMap,
93
+ });
94
+ typenameValidationDiagnostics.push(...schemaTypenameValidationResult.diagnostics);
95
+ if (typenameValidationDiagnostics.length > 0) {
96
+ return {
97
+ typeDefsCode: "",
98
+ sdlContent: "",
99
+ resolversCode: "",
100
+ diagnostics: typenameValidationDiagnostics,
101
+ hasErrors: true,
102
+ prunedTypes: null,
103
+ };
104
+ }
105
+ const generatedInlineObjectTypes = typenameResolveTypesResult.generatedInlineObjectTypes;
106
+ const updatedTypesForIntegration = generatedInlineObjectTypes.length > 0
107
+ ? {
108
+ types: updatedTypesResult.types.map((type) => {
109
+ if (type.kind !== "Union") {
110
+ return type;
111
+ }
112
+ const inlineTypes = generatedInlineObjectTypes.filter((g) => g.abstractTypeName === type.name);
113
+ if (inlineTypes.length === 0) {
114
+ return type;
115
+ }
116
+ const newMembers = inlineTypes.map((g) => g.typeName);
117
+ return {
118
+ ...type,
119
+ unionMembers: [
120
+ ...(type.unionMembers ?? []),
121
+ ...newMembers,
122
+ ].sort(),
123
+ };
124
+ }),
125
+ diagnostics: updatedTypesResult.diagnostics,
126
+ }
127
+ : updatedTypesResult;
128
+ const allAutoGeneratedTypes = [
129
+ ...autoTypeResult.autoGeneratedTypes,
130
+ ...typenameResolveTypesResult.generatedObjectTypes,
131
+ ];
132
+ const integratedResult = integrate({
133
+ typesResult: updatedTypesForIntegration,
134
+ resolversResult: autoTypeResult.updatedResolversResult,
135
+ customScalarNames,
136
+ collectedScalars: customScalars,
137
+ directiveDefinitions,
138
+ autoGeneratedTypes: allAutoGeneratedTypes,
139
+ typenameAutoResolveTypes: typenameResolveTypesResult.autoResolveTypes,
140
+ });
141
+ let documentNode = buildDocumentNode(integratedResult, { sourceRoot });
65
142
  let prunedTypes = null;
66
143
  if (enablePruning) {
67
144
  const pruneResult = pruneDocumentNode({
@@ -71,7 +148,7 @@ export function generateSchema(input) {
71
148
  documentNode = pruneResult.documentNode;
72
149
  prunedTypes = pruneResult.removedTypes;
73
150
  }
74
- const typeDefsCode = emitTypeDefsCode(integratedResult, sourceRoot !== null ? { sourceRoot } : undefined);
151
+ const typeDefsCode = emitTypeDefsCode(integratedResult, { sourceRoot });
75
152
  const sdlContent = emitSdlContent(documentNode);
76
153
  const resolverInfo = collectResolverInfo(integratedResult);
77
154
  const resolversCode = emitResolversCode({
@@ -80,6 +157,7 @@ export function generateSchema(input) {
80
157
  customScalars: customScalars ?? [],
81
158
  numericEnums: integratedResult.numericEnums,
82
159
  stringEnumMappings: integratedResult.stringEnumMappings,
160
+ importExtension,
83
161
  });
84
162
  return {
85
163
  typeDefsCode,
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schema.js","sourceRoot":"","sources":["../../src/schema-generator/generate-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-schema.js","sourceRoot":"","sources":["../../src/schema-generator/generate-schema.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { AutoGeneratedType } from "../../auto-type-generator/index.js";
1
+ import type { AutoGeneratedType, ResolveTypeFieldPattern } from "../../auto-type-generator/index.js";
2
+ import type { TypenameAutoResolveTypeInfo } from "../../auto-type-generator/typename-resolve-type-generator.js";
2
3
  import type { AbstractResolverInfo, ExtractResolversResult, GraphQLInputValue } from "../../resolver-extractor/index.js";
3
4
  import type { DirectiveDefinitionInfo } from "../../shared/directive-definition-extractor.js";
4
5
  import type { DirectiveArgumentValue, DirectiveInfo } from "../../shared/directive-detector.js";
@@ -88,26 +89,35 @@ export interface StringEnumMappingInfo {
88
89
  readonly enumName: string;
89
90
  readonly members: ReadonlyArray<StringEnumMember>;
90
91
  }
92
+ export interface AutoGeneratedUnionInfo {
93
+ readonly name: string;
94
+ readonly fieldPattern: ResolveTypeFieldPattern;
95
+ readonly hasAutoResolveType: boolean;
96
+ }
91
97
  export interface IntegratedResult {
92
98
  readonly baseTypes: ReadonlyArray<BaseType>;
93
99
  readonly inputTypes: ReadonlyArray<InputType>;
94
100
  readonly typeExtensions: ReadonlyArray<TypeExtension>;
95
- /** @deprecated Use customScalars instead */
96
- readonly customScalarNames: ReadonlyArray<string> | null;
97
- /** Custom scalars with description information */
98
101
  readonly customScalars: ReadonlyArray<CustomScalarInfo> | null;
99
- /** Directive definitions extracted from type aliases */
100
102
  readonly directiveDefinitions: ReadonlyArray<DirectiveDefinitionInfo> | null;
101
- /** Abstract type resolvers (resolveType and isTypeOf) */
102
103
  readonly abstractTypeResolvers: ReadonlyArray<AbstractResolverInfo>;
103
- /** Numeric enum information for resolver generation */
104
+ readonly autoGeneratedUnions: ReadonlyArray<AutoGeneratedUnionInfo>;
105
+ readonly typenameAutoResolveTypes: ReadonlyArray<TypenameAutoResolveTypeInfo>;
104
106
  readonly numericEnums: ReadonlyArray<NumericEnumInfo>;
105
- /** String enum mappings for resolver generation */
106
107
  readonly stringEnumMappings: ReadonlyArray<StringEnumMappingInfo>;
107
108
  readonly hasQuery: boolean;
108
109
  readonly hasMutation: boolean;
109
110
  readonly hasErrors: boolean;
110
111
  readonly diagnostics: ReadonlyArray<Diagnostic>;
111
112
  }
112
- export declare function integrate(typesResult: ExtractTypesResult, resolversResult: ExtractResolversResult, customScalarNames: ReadonlyArray<string> | null, collectedScalars?: ReadonlyArray<CollectedScalarType> | null, directiveDefinitions?: ReadonlyArray<DirectiveDefinitionInfo> | null, autoGeneratedTypes?: ReadonlyArray<AutoGeneratedType> | null): IntegratedResult;
113
+ export interface IntegrateParams {
114
+ readonly typesResult: ExtractTypesResult;
115
+ readonly resolversResult: ExtractResolversResult;
116
+ readonly customScalarNames: ReadonlyArray<string> | null;
117
+ readonly collectedScalars: ReadonlyArray<CollectedScalarType> | null;
118
+ readonly directiveDefinitions: ReadonlyArray<DirectiveDefinitionInfo> | null;
119
+ readonly autoGeneratedTypes: ReadonlyArray<AutoGeneratedType> | null;
120
+ readonly typenameAutoResolveTypes: ReadonlyArray<TypenameAutoResolveTypeInfo> | null;
121
+ }
122
+ export declare function integrate(params: IntegrateParams): IntegratedResult;
113
123
  //# sourceMappingURL=result-integrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-integrator.d.ts","sourceRoot":"","sources":["../../../src/schema-generator/integrator/result-integrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result-integrator.d.ts","sourceRoot":"","sources":["../../../src/schema-generator/integrator/result-integrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAEhH,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EAEtB,iBAAiB,EAElB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EACV,uBAAuB,EAExB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,oCAAoC,CAAC;AAK5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AAE9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,qCAAqC,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,YAAY,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACzD,4CAA4C;IAC5C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,qCAAqC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC/D,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;IAC7E,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACpE,QAAQ,CAAC,mBAAmB,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACpE,QAAQ,CAAC,wBAAwB,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC9E,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACtD,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACjD;AAwHD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IACjD,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;IAC7E,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,CAAC,wBAAwB,EAAE,aAAa,CAAC,2BAA2B,CAAC,GAAG,IAAI,CAAC;CACtF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CAsbnE"}
@@ -1,6 +1,17 @@
1
+ import { createFieldNameSet } from "../../auto-type-generator/typename-types.js";
1
2
  import { validateAbstractResolvers } from "../../resolver-extractor/validator/abstract-resolver-validator.js";
2
3
  import { detectCircularInterfaceReferences, validateInterfaceImplementations, } from "../../shared/interface-validator.js";
3
4
  import { mergeDescriptions } from "../../type-extractor/collector/scalar-collector.js";
5
+ function toBaseField(field) {
6
+ return {
7
+ name: field.name,
8
+ type: field.type,
9
+ description: field.description,
10
+ deprecated: field.deprecated,
11
+ directives: field.directives,
12
+ defaultValue: field.defaultValue,
13
+ };
14
+ }
4
15
  function convertToExtensionField(field) {
5
16
  return {
6
17
  name: field.name,
@@ -72,7 +83,8 @@ function getCompatibleLocations(usageLocation) {
72
83
  return ["INPUT_FIELD_DEFINITION"];
73
84
  }
74
85
  }
75
- export function integrate(typesResult, resolversResult, customScalarNames, collectedScalars, directiveDefinitions, autoGeneratedTypes) {
86
+ export function integrate(params) {
87
+ const { typesResult, resolversResult, customScalarNames, collectedScalars, directiveDefinitions, autoGeneratedTypes, typenameAutoResolveTypes, } = params;
76
88
  const directiveTypeAliasNames = new Set(directiveDefinitions?.map((d) => d.typeAliasName) ?? []);
77
89
  const diagnostics = [];
78
90
  diagnostics.push(...typesResult.diagnostics.errors);
@@ -85,19 +97,13 @@ export function integrate(typesResult, resolversResult, customScalarNames, colle
85
97
  diagnostics.push(...circularValidation.diagnostics);
86
98
  const baseTypes = [];
87
99
  const inputTypes = [];
100
+ const autoGeneratedUnions = [];
88
101
  for (const autoType of autoGeneratedTypes ?? []) {
89
102
  if (autoType.kind === "Object") {
90
103
  baseTypes.push({
91
104
  name: autoType.name,
92
105
  kind: "Object",
93
- fields: autoType.fields.map((f) => ({
94
- name: f.name,
95
- type: f.type,
96
- description: f.description,
97
- deprecated: f.deprecated,
98
- directives: f.directives,
99
- defaultValue: f.defaultValue,
100
- })),
106
+ fields: autoType.fields.map(toBaseField),
101
107
  unionMembers: null,
102
108
  enumValues: null,
103
109
  isNumericEnum: false,
@@ -131,17 +137,42 @@ export function integrate(typesResult, resolversResult, customScalarNames, colle
131
137
  directives: null,
132
138
  });
133
139
  }
140
+ else if (autoType.kind === "Union") {
141
+ baseTypes.push({
142
+ name: autoType.name,
143
+ kind: "Union",
144
+ fields: null,
145
+ unionMembers: autoType.unionMembers ?? [],
146
+ enumValues: null,
147
+ isNumericEnum: false,
148
+ needsStringEnumMapping: false,
149
+ implementedInterfaces: null,
150
+ description: autoType.description,
151
+ deprecated: null,
152
+ sourceFile: autoType.sourceLocation.file,
153
+ directives: null,
154
+ });
155
+ autoGeneratedUnions.push({
156
+ name: autoType.name,
157
+ fieldPattern: autoType.resolveTypeFieldPattern ?? {
158
+ usedFieldNames: createFieldNameSet(["__typename"]),
159
+ },
160
+ hasAutoResolveType: autoType.resolveTypeFieldPattern !== null,
161
+ });
162
+ }
163
+ else if (autoType.kind === "OneOfInputObject") {
164
+ inputTypes.push({
165
+ name: autoType.name,
166
+ fields: autoType.fields.map(toBaseField),
167
+ sourceFile: autoType.sourceLocation.file,
168
+ description: autoType.description,
169
+ isOneOf: true,
170
+ });
171
+ }
134
172
  else {
135
173
  inputTypes.push({
136
174
  name: autoType.name,
137
- fields: autoType.fields.map((f) => ({
138
- name: f.name,
139
- type: f.type,
140
- description: f.description,
141
- deprecated: f.deprecated,
142
- directives: f.directives,
143
- defaultValue: f.defaultValue,
144
- })),
175
+ fields: autoType.fields.map(toBaseField),
145
176
  sourceFile: autoType.sourceLocation.file,
146
177
  description: autoType.description,
147
178
  isOneOf: false,
@@ -155,14 +186,7 @@ export function integrate(typesResult, resolversResult, customScalarNames, colle
155
186
  if (type.kind === "InputObject" || type.kind === "OneOfInputObject") {
156
187
  inputTypes.push({
157
188
  name: type.name,
158
- fields: type.fields?.map((field) => ({
159
- name: field.name,
160
- type: field.type,
161
- description: field.description,
162
- deprecated: field.deprecated,
163
- directives: field.directives,
164
- defaultValue: field.defaultValue,
165
- })) ?? [],
189
+ fields: type.fields?.map(toBaseField) ?? [],
166
190
  sourceFile: type.sourceFile,
167
191
  description: type.description,
168
192
  isOneOf: type.kind === "OneOfInputObject",
@@ -188,14 +212,7 @@ export function integrate(typesResult, resolversResult, customScalarNames, colle
188
212
  baseTypes.push({
189
213
  name: type.name,
190
214
  kind: type.kind,
191
- fields: type.fields?.map((field) => ({
192
- name: field.name,
193
- type: field.type,
194
- description: field.description,
195
- deprecated: field.deprecated,
196
- directives: field.directives,
197
- defaultValue: field.defaultValue,
198
- })) ?? null,
215
+ fields: type.fields?.map(toBaseField) ?? null,
199
216
  unionMembers: null,
200
217
  enumValues: null,
201
218
  isNumericEnum: false,
@@ -211,14 +228,7 @@ export function integrate(typesResult, resolversResult, customScalarNames, colle
211
228
  baseTypes.push({
212
229
  name: type.name,
213
230
  kind: type.kind,
214
- fields: type.fields?.map((field) => ({
215
- name: field.name,
216
- type: field.type,
217
- description: field.description,
218
- deprecated: field.deprecated,
219
- directives: field.directives,
220
- defaultValue: field.defaultValue,
221
- })) ?? null,
231
+ fields: type.fields?.map(toBaseField) ?? null,
222
232
  unionMembers: null,
223
233
  enumValues: null,
224
234
  isNumericEnum: false,
@@ -281,9 +291,16 @@ export function integrate(typesResult, resolversResult, customScalarNames, colle
281
291
  directives: null,
282
292
  });
283
293
  }
294
+ const typenameAutoResolveTypeNames = new Set([
295
+ ...(typenameAutoResolveTypes?.map((t) => t.abstractTypeName) ?? []),
296
+ ...autoGeneratedUnions
297
+ .filter((u) => u.hasAutoResolveType)
298
+ .map((u) => u.name),
299
+ ]);
284
300
  const abstractResolverValidation = validateAbstractResolvers({
285
301
  abstractResolvers: resolversResult.abstractTypeResolvers,
286
302
  baseTypes,
303
+ typenameAutoResolveTypeNames,
287
304
  });
288
305
  diagnostics.push(...abstractResolverValidation.diagnostics);
289
306
  const knownTypeNames = new Set([
@@ -419,14 +436,13 @@ export function integrate(typesResult, resolversResult, customScalarNames, colle
419
436
  baseTypes,
420
437
  inputTypes,
421
438
  typeExtensions,
422
- customScalarNames: customScalarNames && customScalarNames.length > 0
423
- ? customScalarNames
424
- : null,
425
439
  customScalars,
426
440
  directiveDefinitions: directiveDefinitions && directiveDefinitions.length > 0
427
441
  ? directiveDefinitions
428
442
  : null,
429
443
  abstractTypeResolvers: resolversResult.abstractTypeResolvers,
444
+ autoGeneratedUnions,
445
+ typenameAutoResolveTypes: typenameAutoResolveTypes ?? [],
430
446
  numericEnums,
431
447
  stringEnumMappings,
432
448
  hasQuery,
@@ -1 +1 @@
1
- {"version":3,"file":"result-integrator.js","sourceRoot":"","sources":["../../../src/schema-generator/integrator/result-integrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result-integrator.js","sourceRoot":"","sources":["../../../src/schema-generator/integrator/result-integrator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { AutoGeneratedResolveType } from "../../auto-type-generator/resolve-type-generator.js";
1
2
  import type { IntegratedResult } from "../integrator/result-integrator.js";
2
3
  export interface FieldResolver {
3
4
  readonly fieldName: string;
@@ -19,6 +20,7 @@ export interface ResolverInfo {
19
20
  readonly types: ReadonlyArray<TypeResolvers>;
20
21
  readonly sourceFiles: ReadonlyArray<string>;
21
22
  readonly abstractTypeResolvers: ReadonlyArray<AbstractTypeResolverInfo>;
23
+ readonly autoGeneratedResolveTypes: ReadonlyArray<AutoGeneratedResolveType>;
22
24
  }
23
25
  export declare function collectResolverInfo(integratedResult: IntegratedResult): ResolverInfo;
24
26
  //# sourceMappingURL=resolver-collector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver-collector.d.ts","sourceRoot":"","sources":["../../../src/schema-generator/resolver-collector/resolver-collector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gBAAgB,EAEjB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,YAAY,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;CACzE;AAmDD,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,gBAAgB,GACjC,YAAY,CAuCd"}
1
+ {"version":3,"file":"resolver-collector.d.ts","sourceRoot":"","sources":["../../../src/schema-generator/resolver-collector/resolver-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAEpG,OAAO,KAAK,EAEV,gBAAgB,EAEjB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,YAAY,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;IACxE,QAAQ,CAAC,yBAAyB,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;CAC7E;AAmDD,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,gBAAgB,GACjC,YAAY,CAuEd"}
@@ -45,6 +45,27 @@ export function collectResolverInfo(integratedResult) {
45
45
  for (const resolver of abstractTypeResolvers) {
46
46
  sourceFilesSet.add(resolver.sourceFile);
47
47
  }
48
+ const manualResolveTypeNames = new Set(abstractTypeResolvers
49
+ .filter((r) => r.resolverKey === "__resolveType")
50
+ .map((r) => r.typeName));
51
+ const inlineUnionResolveTypes = integratedResult.autoGeneratedUnions
52
+ .filter((u) => u.hasAutoResolveType && !manualResolveTypeNames.has(u.name))
53
+ .map((u) => ({
54
+ unionTypeName: u.name,
55
+ fieldPattern: u.fieldPattern,
56
+ }));
57
+ const typenameResolveTypes = integratedResult.typenameAutoResolveTypes
58
+ .filter((t) => !manualResolveTypeNames.has(t.abstractTypeName))
59
+ .map((t) => ({
60
+ unionTypeName: t.abstractTypeName,
61
+ fieldPattern: {
62
+ usedFieldNames: t.resolveTypePattern.usedFieldNames,
63
+ },
64
+ }));
65
+ const autoGeneratedResolveTypes = [
66
+ ...inlineUnionResolveTypes,
67
+ ...typenameResolveTypes,
68
+ ].sort((a, b) => a.unionTypeName.localeCompare(b.unionTypeName));
48
69
  const types = [...typeMap.entries()]
49
70
  .map(([typeName, fields]) => ({
50
71
  typeName,
@@ -56,6 +77,7 @@ export function collectResolverInfo(integratedResult) {
56
77
  types,
57
78
  sourceFiles,
58
79
  abstractTypeResolvers,
80
+ autoGeneratedResolveTypes,
59
81
  };
60
82
  }
61
83
  //# sourceMappingURL=resolver-collector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver-collector.js","sourceRoot":"","sources":["../../../src/schema-generator/resolver-collector/resolver-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver-collector.js","sourceRoot":"","sources":["../../../src/schema-generator/resolver-collector/resolver-collector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Branded type detector.
3
+ *
4
+ * This module provides functions to detect branded type patterns in TypeScript
5
+ * intersection types and extract the underlying primitive type.
6
+ *
7
+ * Branded types are intersection types combining a primitive with a marker object:
8
+ * - `string & { __brand: 'UserId' }`
9
+ * - `number & { readonly __brand: unique symbol }`
10
+ * - `boolean & { __nominal: true }`
11
+ */
12
+ import ts from "typescript";
13
+ /**
14
+ * Result of branded type detection.
15
+ */
16
+ export interface BrandedTypeResult {
17
+ /** Whether the type is a branded primitive type */
18
+ readonly isBranded: boolean;
19
+ /** The base primitive type if branded, null otherwise */
20
+ readonly baseType: "string" | "number" | "boolean" | null;
21
+ }
22
+ /**
23
+ * Detects if a type is a branded primitive type.
24
+ *
25
+ * A branded type is an intersection type where:
26
+ * 1. One member is a primitive type (string, number, or boolean)
27
+ * 2. Other members are pure brand markers (objects with only brand properties)
28
+ *
29
+ * @param type - The TypeScript type to analyze
30
+ * @returns Detection result with isBranded flag and baseType
31
+ */
32
+ export declare function detectBrandedType(type: ts.Type): BrandedTypeResult;
33
+ /**
34
+ * Detects if all types in the array are branded with the same base type.
35
+ *
36
+ * This is useful for union types where branded boolean expands to:
37
+ * `(true & { __nominal: true }) | (false & { __nominal: true })`
38
+ *
39
+ * @param types - Array of TypeScript types to analyze
40
+ * @returns Common branded result if all types are branded with the same base, otherwise non-branded
41
+ */
42
+ export declare function detectUniformBrandedType(types: ReadonlyArray<ts.Type>): BrandedTypeResult;
43
+ //# sourceMappingURL=branded-type-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branded-type-detector.d.ts","sourceRoot":"","sources":["../../src/shared/branded-type-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;CAC3D;AAyBD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,iBAAiB,CAiClE;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,GAC5B,iBAAiB,CAkBnB"}