@gqlkit-ts/cli 0.0.1 → 0.1.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 (325) hide show
  1. package/LICENSE +21 -0
  2. package/dist/auto-type-generator/auto-type-generator.d.ts +46 -0
  3. package/dist/auto-type-generator/auto-type-generator.d.ts.map +1 -0
  4. package/dist/auto-type-generator/auto-type-generator.js +353 -0
  5. package/dist/auto-type-generator/auto-type-generator.js.map +1 -0
  6. package/dist/auto-type-generator/auto-type-generator.test.d.ts +2 -0
  7. package/dist/auto-type-generator/auto-type-generator.test.d.ts.map +1 -0
  8. package/dist/auto-type-generator/auto-type-generator.test.js +613 -0
  9. package/dist/auto-type-generator/auto-type-generator.test.js.map +1 -0
  10. package/dist/auto-type-generator/index.d.ts +4 -0
  11. package/dist/auto-type-generator/index.d.ts.map +1 -0
  12. package/dist/auto-type-generator/index.js +3 -0
  13. package/dist/auto-type-generator/index.js.map +1 -0
  14. package/dist/auto-type-generator/name-collision-validator.d.ts +17 -0
  15. package/dist/auto-type-generator/name-collision-validator.d.ts.map +1 -0
  16. package/dist/auto-type-generator/name-collision-validator.js +68 -0
  17. package/dist/auto-type-generator/name-collision-validator.js.map +1 -0
  18. package/dist/auto-type-generator/name-collision-validator.test.d.ts +2 -0
  19. package/dist/auto-type-generator/name-collision-validator.test.d.ts.map +1 -0
  20. package/dist/auto-type-generator/name-collision-validator.test.js +358 -0
  21. package/dist/auto-type-generator/name-collision-validator.test.js.map +1 -0
  22. package/dist/auto-type-generator/naming-convention.d.ts +40 -0
  23. package/dist/auto-type-generator/naming-convention.d.ts.map +1 -0
  24. package/dist/auto-type-generator/naming-convention.js +59 -0
  25. package/dist/auto-type-generator/naming-convention.js.map +1 -0
  26. package/dist/auto-type-generator/naming-convention.test.d.ts +2 -0
  27. package/dist/auto-type-generator/naming-convention.test.d.ts.map +1 -0
  28. package/dist/auto-type-generator/naming-convention.test.js +132 -0
  29. package/dist/auto-type-generator/naming-convention.test.js.map +1 -0
  30. package/dist/cli.d.ts +2 -0
  31. package/dist/cli.d.ts.map +1 -0
  32. package/dist/cli.js +11 -0
  33. package/dist/cli.js.map +1 -0
  34. package/dist/commands/gen.d.ts +32 -0
  35. package/dist/commands/gen.d.ts.map +1 -0
  36. package/dist/commands/gen.js +101 -0
  37. package/dist/commands/gen.js.map +1 -0
  38. package/dist/commands/gen.test.d.ts +2 -0
  39. package/dist/commands/gen.test.d.ts.map +1 -0
  40. package/dist/commands/gen.test.js +226 -0
  41. package/dist/commands/gen.test.js.map +1 -0
  42. package/dist/commands/main.d.ts +12 -0
  43. package/dist/commands/main.d.ts.map +1 -0
  44. package/dist/commands/main.js +5 -0
  45. package/dist/commands/main.js.map +1 -0
  46. package/dist/config/define-config.d.ts +26 -0
  47. package/dist/config/define-config.d.ts.map +1 -0
  48. package/dist/config/define-config.js +27 -0
  49. package/dist/config/define-config.js.map +1 -0
  50. package/dist/config/index.d.ts +3 -0
  51. package/dist/config/index.d.ts.map +1 -0
  52. package/dist/config/index.js +2 -0
  53. package/dist/config/index.js.map +1 -0
  54. package/dist/config/types.d.ts +131 -0
  55. package/dist/config/types.d.ts.map +1 -0
  56. package/dist/config/types.js +2 -0
  57. package/dist/config/types.js.map +1 -0
  58. package/dist/config-loader/index.d.ts +3 -0
  59. package/dist/config-loader/index.d.ts.map +1 -0
  60. package/dist/config-loader/index.js +2 -0
  61. package/dist/config-loader/index.js.map +1 -0
  62. package/dist/config-loader/loader.d.ts +50 -0
  63. package/dist/config-loader/loader.d.ts.map +1 -0
  64. package/dist/config-loader/loader.js +78 -0
  65. package/dist/config-loader/loader.js.map +1 -0
  66. package/dist/config-loader/loader.test.d.ts +2 -0
  67. package/dist/config-loader/loader.test.d.ts.map +1 -0
  68. package/dist/config-loader/loader.test.js +123 -0
  69. package/dist/config-loader/loader.test.js.map +1 -0
  70. package/dist/config-loader/validator.d.ts +13 -0
  71. package/dist/config-loader/validator.d.ts.map +1 -0
  72. package/dist/config-loader/validator.js +497 -0
  73. package/dist/config-loader/validator.js.map +1 -0
  74. package/dist/config-loader/validator.test.d.ts +2 -0
  75. package/dist/config-loader/validator.test.d.ts.map +1 -0
  76. package/dist/config-loader/validator.test.js +846 -0
  77. package/dist/config-loader/validator.test.js.map +1 -0
  78. package/dist/gen-orchestrator/golden.test.d.ts +2 -0
  79. package/dist/gen-orchestrator/golden.test.d.ts.map +1 -0
  80. package/dist/gen-orchestrator/golden.test.js +102 -0
  81. package/dist/gen-orchestrator/golden.test.js.map +1 -0
  82. package/dist/gen-orchestrator/hook-executor/hook-executor.d.ts +25 -0
  83. package/dist/gen-orchestrator/hook-executor/hook-executor.d.ts.map +1 -0
  84. package/dist/gen-orchestrator/hook-executor/hook-executor.js +68 -0
  85. package/dist/gen-orchestrator/hook-executor/hook-executor.js.map +1 -0
  86. package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts +2 -0
  87. package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts.map +1 -0
  88. package/dist/gen-orchestrator/hook-executor/hook-executor.test.js +167 -0
  89. package/dist/gen-orchestrator/hook-executor/hook-executor.test.js.map +1 -0
  90. package/dist/gen-orchestrator/orchestrator.d.ts +30 -0
  91. package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -0
  92. package/dist/gen-orchestrator/orchestrator.js +407 -0
  93. package/dist/gen-orchestrator/orchestrator.js.map +1 -0
  94. package/dist/gen-orchestrator/reporter/diagnostic-reporter.d.ts +9 -0
  95. package/dist/gen-orchestrator/reporter/diagnostic-reporter.d.ts.map +1 -0
  96. package/dist/gen-orchestrator/reporter/diagnostic-reporter.js +32 -0
  97. package/dist/gen-orchestrator/reporter/diagnostic-reporter.js.map +1 -0
  98. package/dist/gen-orchestrator/reporter/progress-reporter.d.ts +19 -0
  99. package/dist/gen-orchestrator/reporter/progress-reporter.d.ts.map +1 -0
  100. package/dist/gen-orchestrator/reporter/progress-reporter.js +38 -0
  101. package/dist/gen-orchestrator/reporter/progress-reporter.js.map +1 -0
  102. package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts +2 -0
  103. package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts.map +1 -0
  104. package/dist/gen-orchestrator/reporter/progress-reporter.test.js +74 -0
  105. package/dist/gen-orchestrator/reporter/progress-reporter.test.js.map +1 -0
  106. package/dist/gen-orchestrator/writer/file-writer.d.ts +13 -0
  107. package/dist/gen-orchestrator/writer/file-writer.d.ts.map +1 -0
  108. package/dist/gen-orchestrator/writer/file-writer.js +22 -0
  109. package/dist/gen-orchestrator/writer/file-writer.js.map +1 -0
  110. package/dist/index.d.ts +3 -0
  111. package/dist/index.d.ts.map +1 -0
  112. package/dist/index.js +2 -0
  113. package/dist/index.js.map +1 -0
  114. package/dist/resolver-extractor/extract-resolvers.d.ts +40 -0
  115. package/dist/resolver-extractor/extract-resolvers.d.ts.map +1 -0
  116. package/dist/resolver-extractor/extract-resolvers.js +2 -0
  117. package/dist/resolver-extractor/extract-resolvers.js.map +1 -0
  118. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts +50 -0
  119. package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -0
  120. package/dist/resolver-extractor/extractor/define-api-extractor.js +685 -0
  121. package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -0
  122. package/dist/resolver-extractor/index.d.ts +5 -0
  123. package/dist/resolver-extractor/index.d.ts.map +1 -0
  124. package/dist/resolver-extractor/index.js +2 -0
  125. package/dist/resolver-extractor/index.js.map +1 -0
  126. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts +25 -0
  127. package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts.map +1 -0
  128. package/dist/resolver-extractor/validator/abstract-resolver-validator.js +172 -0
  129. package/dist/resolver-extractor/validator/abstract-resolver-validator.js.map +1 -0
  130. package/dist/resolver-extractor/validator/only-validator.d.ts +61 -0
  131. package/dist/resolver-extractor/validator/only-validator.d.ts.map +1 -0
  132. package/dist/resolver-extractor/validator/only-validator.js +76 -0
  133. package/dist/resolver-extractor/validator/only-validator.js.map +1 -0
  134. package/dist/resolver-extractor/validator/only-validator.test.d.ts +8 -0
  135. package/dist/resolver-extractor/validator/only-validator.test.d.ts.map +1 -0
  136. package/dist/resolver-extractor/validator/only-validator.test.js +352 -0
  137. package/dist/resolver-extractor/validator/only-validator.test.js.map +1 -0
  138. package/dist/schema-generator/builder/ast-builder.d.ts +7 -0
  139. package/dist/schema-generator/builder/ast-builder.d.ts.map +1 -0
  140. package/dist/schema-generator/builder/ast-builder.js +417 -0
  141. package/dist/schema-generator/builder/ast-builder.js.map +1 -0
  142. package/dist/schema-generator/builder/ast-builder.test.d.ts +2 -0
  143. package/dist/schema-generator/builder/ast-builder.test.d.ts.map +1 -0
  144. package/dist/schema-generator/builder/ast-builder.test.js +469 -0
  145. package/dist/schema-generator/builder/ast-builder.test.js.map +1 -0
  146. package/dist/schema-generator/emitter/code-emitter.d.ts +7 -0
  147. package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -0
  148. package/dist/schema-generator/emitter/code-emitter.js +201 -0
  149. package/dist/schema-generator/emitter/code-emitter.js.map +1 -0
  150. package/dist/schema-generator/emitter/sdl-emitter.d.ts +7 -0
  151. package/dist/schema-generator/emitter/sdl-emitter.d.ts.map +1 -0
  152. package/dist/schema-generator/emitter/sdl-emitter.js +11 -0
  153. package/dist/schema-generator/emitter/sdl-emitter.js.map +1 -0
  154. package/dist/schema-generator/generate-schema.d.ts +26 -0
  155. package/dist/schema-generator/generate-schema.d.ts.map +1 -0
  156. package/dist/schema-generator/generate-schema.js +76 -0
  157. package/dist/schema-generator/generate-schema.js.map +1 -0
  158. package/dist/schema-generator/index.d.ts +4 -0
  159. package/dist/schema-generator/index.d.ts.map +1 -0
  160. package/dist/schema-generator/index.js +2 -0
  161. package/dist/schema-generator/index.js.map +1 -0
  162. package/dist/schema-generator/integrator/result-integrator.d.ts +93 -0
  163. package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -0
  164. package/dist/schema-generator/integrator/result-integrator.js +396 -0
  165. package/dist/schema-generator/integrator/result-integrator.js.map +1 -0
  166. package/dist/schema-generator/pruner/schema-pruner.d.ts +16 -0
  167. package/dist/schema-generator/pruner/schema-pruner.d.ts.map +1 -0
  168. package/dist/schema-generator/pruner/schema-pruner.js +66 -0
  169. package/dist/schema-generator/pruner/schema-pruner.js.map +1 -0
  170. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts +24 -0
  171. package/dist/schema-generator/resolver-collector/resolver-collector.d.ts.map +1 -0
  172. package/dist/schema-generator/resolver-collector/resolver-collector.js +61 -0
  173. package/dist/schema-generator/resolver-collector/resolver-collector.js.map +1 -0
  174. package/dist/shared/constants.d.ts +70 -0
  175. package/dist/shared/constants.d.ts.map +1 -0
  176. package/dist/shared/constants.js +128 -0
  177. package/dist/shared/constants.js.map +1 -0
  178. package/dist/shared/default-value-detector.d.ts +40 -0
  179. package/dist/shared/default-value-detector.d.ts.map +1 -0
  180. package/dist/shared/default-value-detector.js +124 -0
  181. package/dist/shared/default-value-detector.js.map +1 -0
  182. package/dist/shared/diagnostics.d.ts +4 -0
  183. package/dist/shared/diagnostics.d.ts.map +1 -0
  184. package/dist/shared/diagnostics.js +25 -0
  185. package/dist/shared/diagnostics.js.map +1 -0
  186. package/dist/shared/directive-definition-extractor.d.ts +64 -0
  187. package/dist/shared/directive-definition-extractor.d.ts.map +1 -0
  188. package/dist/shared/directive-definition-extractor.js +399 -0
  189. package/dist/shared/directive-definition-extractor.js.map +1 -0
  190. package/dist/shared/directive-detector.d.ts +102 -0
  191. package/dist/shared/directive-detector.d.ts.map +1 -0
  192. package/dist/shared/directive-detector.js +422 -0
  193. package/dist/shared/directive-detector.js.map +1 -0
  194. package/dist/shared/file-scanner.d.ts +25 -0
  195. package/dist/shared/file-scanner.d.ts.map +1 -0
  196. package/dist/shared/file-scanner.js +99 -0
  197. package/dist/shared/file-scanner.js.map +1 -0
  198. package/dist/shared/file-scanner.test.d.ts +2 -0
  199. package/dist/shared/file-scanner.test.d.ts.map +1 -0
  200. package/dist/shared/file-scanner.test.js +138 -0
  201. package/dist/shared/file-scanner.test.js.map +1 -0
  202. package/dist/shared/index.d.ts +10 -0
  203. package/dist/shared/index.d.ts.map +1 -0
  204. package/dist/shared/index.js +8 -0
  205. package/dist/shared/index.js.map +1 -0
  206. package/dist/shared/inline-object-extractor.d.ts +13 -0
  207. package/dist/shared/inline-object-extractor.d.ts.map +1 -0
  208. package/dist/shared/inline-object-extractor.js +65 -0
  209. package/dist/shared/inline-object-extractor.js.map +1 -0
  210. package/dist/shared/inline-object-utils.d.ts +7 -0
  211. package/dist/shared/inline-object-utils.d.ts.map +1 -0
  212. package/dist/shared/inline-object-utils.js +23 -0
  213. package/dist/shared/inline-object-utils.js.map +1 -0
  214. package/dist/shared/interface-detector.d.ts +22 -0
  215. package/dist/shared/interface-detector.d.ts.map +1 -0
  216. package/dist/shared/interface-detector.js +90 -0
  217. package/dist/shared/interface-detector.js.map +1 -0
  218. package/dist/shared/interface-validator.d.ts +9 -0
  219. package/dist/shared/interface-validator.d.ts.map +1 -0
  220. package/dist/shared/interface-validator.js +152 -0
  221. package/dist/shared/interface-validator.js.map +1 -0
  222. package/dist/shared/interface-validator.test.d.ts +2 -0
  223. package/dist/shared/interface-validator.test.d.ts.map +1 -0
  224. package/dist/shared/interface-validator.test.js +145 -0
  225. package/dist/shared/interface-validator.test.js.map +1 -0
  226. package/dist/shared/metadata-detector.d.ts +65 -0
  227. package/dist/shared/metadata-detector.d.ts.map +1 -0
  228. package/dist/shared/metadata-detector.js +333 -0
  229. package/dist/shared/metadata-detector.js.map +1 -0
  230. package/dist/shared/program-factory.d.ts +14 -0
  231. package/dist/shared/program-factory.d.ts.map +1 -0
  232. package/dist/shared/program-factory.js +29 -0
  233. package/dist/shared/program-factory.js.map +1 -0
  234. package/dist/shared/source-location.d.ts +11 -0
  235. package/dist/shared/source-location.d.ts.map +1 -0
  236. package/dist/shared/source-location.js +15 -0
  237. package/dist/shared/source-location.js.map +1 -0
  238. package/dist/shared/tsconfig-loader.d.ts +13 -0
  239. package/dist/shared/tsconfig-loader.d.ts.map +1 -0
  240. package/dist/shared/tsconfig-loader.js +90 -0
  241. package/dist/shared/tsconfig-loader.js.map +1 -0
  242. package/dist/shared/tsdoc-parser.d.ts +12 -0
  243. package/dist/shared/tsdoc-parser.d.ts.map +1 -0
  244. package/dist/shared/tsdoc-parser.js +101 -0
  245. package/dist/shared/tsdoc-parser.js.map +1 -0
  246. package/dist/shared/type-converter.d.ts +3 -0
  247. package/dist/shared/type-converter.d.ts.map +1 -0
  248. package/dist/shared/type-converter.js +72 -0
  249. package/dist/shared/type-converter.js.map +1 -0
  250. package/dist/shared/typescript-utils.d.ts +55 -0
  251. package/dist/shared/typescript-utils.d.ts.map +1 -0
  252. package/dist/shared/typescript-utils.js +149 -0
  253. package/dist/shared/typescript-utils.js.map +1 -0
  254. package/dist/type-extractor/collector/result-collector.d.ts +7 -0
  255. package/dist/type-extractor/collector/result-collector.d.ts.map +1 -0
  256. package/dist/type-extractor/collector/result-collector.js +35 -0
  257. package/dist/type-extractor/collector/result-collector.js.map +1 -0
  258. package/dist/type-extractor/collector/scalar-collector.d.ts +108 -0
  259. package/dist/type-extractor/collector/scalar-collector.d.ts.map +1 -0
  260. package/dist/type-extractor/collector/scalar-collector.js +133 -0
  261. package/dist/type-extractor/collector/scalar-collector.js.map +1 -0
  262. package/dist/type-extractor/converter/field-eligibility.d.ts +34 -0
  263. package/dist/type-extractor/converter/field-eligibility.d.ts.map +1 -0
  264. package/dist/type-extractor/converter/field-eligibility.js +89 -0
  265. package/dist/type-extractor/converter/field-eligibility.js.map +1 -0
  266. package/dist/type-extractor/converter/graphql-converter.d.ts +7 -0
  267. package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -0
  268. package/dist/type-extractor/converter/graphql-converter.js +299 -0
  269. package/dist/type-extractor/converter/graphql-converter.js.map +1 -0
  270. package/dist/type-extractor/extract-types.d.ts +2 -0
  271. package/dist/type-extractor/extract-types.d.ts.map +1 -0
  272. package/dist/type-extractor/extract-types.js +2 -0
  273. package/dist/type-extractor/extract-types.js.map +1 -0
  274. package/dist/type-extractor/extractor/type-extractor.d.ts +27 -0
  275. package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -0
  276. package/dist/type-extractor/extractor/type-extractor.js +1116 -0
  277. package/dist/type-extractor/extractor/type-extractor.js.map +1 -0
  278. package/dist/type-extractor/index.d.ts +4 -0
  279. package/dist/type-extractor/index.d.ts.map +1 -0
  280. package/dist/type-extractor/index.js +2 -0
  281. package/dist/type-extractor/index.js.map +1 -0
  282. package/dist/type-extractor/types/diagnostics.d.ts +17 -0
  283. package/dist/type-extractor/types/diagnostics.d.ts.map +1 -0
  284. package/dist/type-extractor/types/diagnostics.js +2 -0
  285. package/dist/type-extractor/types/diagnostics.js.map +1 -0
  286. package/dist/type-extractor/types/graphql.d.ts +40 -0
  287. package/dist/type-extractor/types/graphql.d.ts.map +1 -0
  288. package/dist/type-extractor/types/graphql.js +2 -0
  289. package/dist/type-extractor/types/graphql.js.map +1 -0
  290. package/dist/type-extractor/types/index.d.ts +5 -0
  291. package/dist/type-extractor/types/index.d.ts.map +1 -0
  292. package/dist/type-extractor/types/index.js +2 -0
  293. package/dist/type-extractor/types/index.js.map +1 -0
  294. package/dist/type-extractor/types/typescript.d.ts +86 -0
  295. package/dist/type-extractor/types/typescript.d.ts.map +1 -0
  296. package/dist/type-extractor/types/typescript.js +2 -0
  297. package/dist/type-extractor/types/typescript.js.map +1 -0
  298. package/dist/type-extractor/types/typescript.test.d.ts +2 -0
  299. package/dist/type-extractor/types/typescript.test.d.ts.map +1 -0
  300. package/dist/type-extractor/types/typescript.test.js +287 -0
  301. package/dist/type-extractor/types/typescript.test.js.map +1 -0
  302. package/dist/type-extractor/validator/type-validator.d.ts +11 -0
  303. package/dist/type-extractor/validator/type-validator.d.ts.map +1 -0
  304. package/dist/type-extractor/validator/type-validator.js +53 -0
  305. package/dist/type-extractor/validator/type-validator.js.map +1 -0
  306. package/docs/configuration.md +163 -0
  307. package/docs/getting-started.md +117 -0
  308. package/docs/index.md +32 -0
  309. package/docs/integration/apollo.md +109 -0
  310. package/docs/integration/yoga.md +108 -0
  311. package/docs/schema/abstract-resolvers.md +146 -0
  312. package/docs/schema/directives.md +196 -0
  313. package/docs/schema/documentation.md +176 -0
  314. package/docs/schema/enums.md +162 -0
  315. package/docs/schema/fields.md +184 -0
  316. package/docs/schema/index.md +38 -0
  317. package/docs/schema/inputs.md +277 -0
  318. package/docs/schema/interfaces.md +178 -0
  319. package/docs/schema/objects.md +186 -0
  320. package/docs/schema/queries-mutations.md +205 -0
  321. package/docs/schema/scalars.md +194 -0
  322. package/docs/schema/unions.md +90 -0
  323. package/docs/what-is-gqlkit.md +22 -0
  324. package/package.json +59 -7
  325. package/README.md +0 -45
@@ -0,0 +1,497 @@
1
+ import { DEFAULT_RESOLVERS_PATH, DEFAULT_SCHEMA_PATH, DEFAULT_SOURCE_DIR, DEFAULT_TYPEDEFS_PATH, } from "./loader.js";
2
+ const BUILTIN_SCALAR_NAMES = [
3
+ "ID",
4
+ "String",
5
+ "Int",
6
+ "Float",
7
+ "Boolean",
8
+ ];
9
+ function isRecord(value) {
10
+ return typeof value === "object" && value !== null && !Array.isArray(value);
11
+ }
12
+ function getDefaultPathForField(fieldName) {
13
+ switch (fieldName) {
14
+ case "output.resolversPath":
15
+ return DEFAULT_RESOLVERS_PATH;
16
+ case "output.typeDefsPath":
17
+ return DEFAULT_TYPEDEFS_PATH;
18
+ case "output.schemaPath":
19
+ return DEFAULT_SCHEMA_PATH;
20
+ default:
21
+ return "";
22
+ }
23
+ }
24
+ function validateOutputPath(value, fieldName, configPath) {
25
+ const diagnostics = [];
26
+ if (value === undefined) {
27
+ const defaultPath = getDefaultPathForField(fieldName);
28
+ return { resolved: defaultPath, diagnostics: [] };
29
+ }
30
+ if (value === null) {
31
+ return { resolved: null, diagnostics: [] };
32
+ }
33
+ if (typeof value !== "string") {
34
+ diagnostics.push({
35
+ code: "CONFIG_INVALID_OUTPUT_TYPE",
36
+ message: `${fieldName} must be a string, null, or undefined`,
37
+ severity: "error",
38
+ location: { file: configPath, line: 1, column: 1 },
39
+ });
40
+ return { resolved: null, diagnostics };
41
+ }
42
+ if (value === "") {
43
+ diagnostics.push({
44
+ code: "CONFIG_INVALID_OUTPUT_PATH",
45
+ message: `${fieldName} path cannot be empty`,
46
+ severity: "error",
47
+ location: { file: configPath, line: 1, column: 1 },
48
+ });
49
+ return { resolved: null, diagnostics };
50
+ }
51
+ return { resolved: value, diagnostics: [] };
52
+ }
53
+ function validateSourceDir(value, configPath) {
54
+ const diagnostics = [];
55
+ if (value === undefined) {
56
+ return { resolved: DEFAULT_SOURCE_DIR, diagnostics: [] };
57
+ }
58
+ if (typeof value !== "string") {
59
+ diagnostics.push({
60
+ code: "CONFIG_INVALID_TYPE",
61
+ message: "sourceDir must be a string",
62
+ severity: "error",
63
+ location: { file: configPath, line: 1, column: 1 },
64
+ });
65
+ return { resolved: undefined, diagnostics };
66
+ }
67
+ if (value === "") {
68
+ diagnostics.push({
69
+ code: "CONFIG_INVALID_SOURCE_DIR",
70
+ message: "sourceDir cannot be empty",
71
+ severity: "error",
72
+ location: { file: configPath, line: 1, column: 1 },
73
+ });
74
+ return { resolved: undefined, diagnostics };
75
+ }
76
+ return { resolved: value, diagnostics: [] };
77
+ }
78
+ function validateSourceIgnoreGlobs(value, configPath) {
79
+ const diagnostics = [];
80
+ if (value === undefined) {
81
+ return { resolved: [], diagnostics: [] };
82
+ }
83
+ if (!Array.isArray(value)) {
84
+ diagnostics.push({
85
+ code: "CONFIG_INVALID_IGNORE_GLOBS",
86
+ message: "sourceIgnoreGlobs must be an array of strings",
87
+ severity: "error",
88
+ location: { file: configPath, line: 1, column: 1 },
89
+ });
90
+ return { resolved: undefined, diagnostics };
91
+ }
92
+ for (const item of value) {
93
+ if (typeof item !== "string") {
94
+ diagnostics.push({
95
+ code: "CONFIG_INVALID_IGNORE_GLOBS",
96
+ message: "sourceIgnoreGlobs must be an array of strings",
97
+ severity: "error",
98
+ location: { file: configPath, line: 1, column: 1 },
99
+ });
100
+ return { resolved: undefined, diagnostics };
101
+ }
102
+ }
103
+ return { resolved: value, diagnostics: [] };
104
+ }
105
+ function validateTsconfigPath(value, configPath) {
106
+ const diagnostics = [];
107
+ if (value === undefined) {
108
+ return { resolved: null, diagnostics: [] };
109
+ }
110
+ if (typeof value !== "string") {
111
+ diagnostics.push({
112
+ code: "CONFIG_INVALID_TYPE",
113
+ message: "tsconfigPath must be a string",
114
+ severity: "error",
115
+ location: { file: configPath, line: 1, column: 1 },
116
+ });
117
+ return { resolved: null, diagnostics };
118
+ }
119
+ if (value === "") {
120
+ diagnostics.push({
121
+ code: "CONFIG_INVALID_PATH",
122
+ message: "tsconfigPath path cannot be empty",
123
+ severity: "error",
124
+ location: { file: configPath, line: 1, column: 1 },
125
+ });
126
+ return { resolved: null, diagnostics };
127
+ }
128
+ return { resolved: value, diagnostics: [] };
129
+ }
130
+ function validateOutputConfig(output, configPath) {
131
+ const diagnostics = [];
132
+ if (output === undefined) {
133
+ return {
134
+ resolved: {
135
+ resolversPath: DEFAULT_RESOLVERS_PATH,
136
+ typeDefsPath: DEFAULT_TYPEDEFS_PATH,
137
+ schemaPath: DEFAULT_SCHEMA_PATH,
138
+ },
139
+ diagnostics: [],
140
+ };
141
+ }
142
+ if (!isRecord(output)) {
143
+ diagnostics.push({
144
+ code: "CONFIG_INVALID_TYPE",
145
+ message: "output must be an object",
146
+ severity: "error",
147
+ location: { file: configPath, line: 1, column: 1 },
148
+ });
149
+ return { resolved: undefined, diagnostics };
150
+ }
151
+ const resolversPathResult = validateOutputPath(output["resolversPath"], "output.resolversPath", configPath);
152
+ const typeDefsPathResult = validateOutputPath(output["typeDefsPath"], "output.typeDefsPath", configPath);
153
+ const schemaPathResult = validateOutputPath(output["schemaPath"], "output.schemaPath", configPath);
154
+ diagnostics.push(...resolversPathResult.diagnostics);
155
+ diagnostics.push(...typeDefsPathResult.diagnostics);
156
+ diagnostics.push(...schemaPathResult.diagnostics);
157
+ if (diagnostics.length > 0) {
158
+ return { resolved: undefined, diagnostics };
159
+ }
160
+ return {
161
+ resolved: {
162
+ resolversPath: resolversPathResult.resolved,
163
+ typeDefsPath: typeDefsPathResult.resolved,
164
+ schemaPath: schemaPathResult.resolved,
165
+ },
166
+ diagnostics: [],
167
+ };
168
+ }
169
+ function isNewFormat(scalar) {
170
+ return "name" in scalar && "tsType" in scalar;
171
+ }
172
+ function isLegacyFormat(scalar) {
173
+ return "graphqlName" in scalar && "type" in scalar;
174
+ }
175
+ function validateNewScalarMapping(scalar, index, configPath) {
176
+ const diagnostics = [];
177
+ if (typeof scalar["name"] !== "string") {
178
+ diagnostics.push({
179
+ code: "CONFIG_MISSING_PROPERTY",
180
+ message: `scalars[${index}].name is required and must be a string`,
181
+ severity: "error",
182
+ location: { file: configPath, line: 1, column: 1 },
183
+ });
184
+ }
185
+ if (!isRecord(scalar["tsType"])) {
186
+ diagnostics.push({
187
+ code: "CONFIG_MISSING_PROPERTY",
188
+ message: `scalars[${index}].tsType is required and must be an object`,
189
+ severity: "error",
190
+ location: { file: configPath, line: 1, column: 1 },
191
+ });
192
+ return { resolved: undefined, diagnostics };
193
+ }
194
+ const tsType = scalar["tsType"];
195
+ if (typeof tsType["name"] !== "string") {
196
+ diagnostics.push({
197
+ code: "CONFIG_MISSING_PROPERTY",
198
+ message: `scalars[${index}].tsType.name is required and must be a string`,
199
+ severity: "error",
200
+ location: { file: configPath, line: 1, column: 1 },
201
+ });
202
+ }
203
+ const only = scalar["only"];
204
+ if (only !== undefined && only !== "input" && only !== "output") {
205
+ diagnostics.push({
206
+ code: "CONFIG_INVALID_ONLY_VALUE",
207
+ message: `scalars[${index}].only must be "input" or "output"`,
208
+ severity: "error",
209
+ location: { file: configPath, line: 1, column: 1 },
210
+ });
211
+ }
212
+ const description = scalar["description"];
213
+ if (description !== undefined && typeof description !== "string") {
214
+ diagnostics.push({
215
+ code: "CONFIG_INVALID_TYPE",
216
+ message: `scalars[${index}].description must be a string`,
217
+ severity: "error",
218
+ location: { file: configPath, line: 1, column: 1 },
219
+ });
220
+ }
221
+ if (diagnostics.length > 0) {
222
+ return { resolved: undefined, diagnostics };
223
+ }
224
+ const graphqlName = scalar["name"];
225
+ if (BUILTIN_SCALAR_NAMES.includes(graphqlName)) {
226
+ diagnostics.push({
227
+ code: "CONFIG_BUILTIN_OVERRIDE",
228
+ message: `Cannot override built-in scalar '${graphqlName}'. Built-in scalars: ID, String, Int, Float, Boolean`,
229
+ severity: "error",
230
+ location: { file: configPath, line: 1, column: 1 },
231
+ });
232
+ return { resolved: undefined, diagnostics };
233
+ }
234
+ const importPath = typeof tsType["from"] === "string" ? tsType["from"] : null;
235
+ return {
236
+ resolved: {
237
+ graphqlName,
238
+ typeName: tsType["name"],
239
+ importPath,
240
+ only: only ?? null,
241
+ description: description ?? null,
242
+ },
243
+ diagnostics,
244
+ };
245
+ }
246
+ function validateLegacyScalarMapping(scalar, index, configPath) {
247
+ const diagnostics = [];
248
+ if (typeof scalar["graphqlName"] !== "string") {
249
+ diagnostics.push({
250
+ code: "CONFIG_MISSING_PROPERTY",
251
+ message: `scalars[${index}].graphqlName is required and must be a string`,
252
+ severity: "error",
253
+ location: { file: configPath, line: 1, column: 1 },
254
+ });
255
+ }
256
+ if (!isRecord(scalar["type"])) {
257
+ diagnostics.push({
258
+ code: "CONFIG_MISSING_PROPERTY",
259
+ message: `scalars[${index}].type is required and must be an object`,
260
+ severity: "error",
261
+ location: { file: configPath, line: 1, column: 1 },
262
+ });
263
+ return { resolved: undefined, diagnostics };
264
+ }
265
+ const type = scalar["type"];
266
+ if (typeof type["from"] !== "string") {
267
+ diagnostics.push({
268
+ code: "CONFIG_MISSING_PROPERTY",
269
+ message: `scalars[${index}].type.from is required and must be a string`,
270
+ severity: "error",
271
+ location: { file: configPath, line: 1, column: 1 },
272
+ });
273
+ }
274
+ if (typeof type["name"] !== "string") {
275
+ diagnostics.push({
276
+ code: "CONFIG_MISSING_PROPERTY",
277
+ message: `scalars[${index}].type.name is required and must be a string`,
278
+ severity: "error",
279
+ location: { file: configPath, line: 1, column: 1 },
280
+ });
281
+ }
282
+ if (diagnostics.length > 0) {
283
+ return { resolved: undefined, diagnostics };
284
+ }
285
+ const graphqlName = scalar["graphqlName"];
286
+ if (BUILTIN_SCALAR_NAMES.includes(graphqlName)) {
287
+ diagnostics.push({
288
+ code: "CONFIG_BUILTIN_OVERRIDE",
289
+ message: `Cannot override built-in scalar '${graphqlName}'. Built-in scalars: ID, String, Int, Float, Boolean`,
290
+ severity: "error",
291
+ location: { file: configPath, line: 1, column: 1 },
292
+ });
293
+ return { resolved: undefined, diagnostics };
294
+ }
295
+ return {
296
+ resolved: {
297
+ graphqlName,
298
+ typeName: type["name"],
299
+ importPath: type["from"],
300
+ only: null,
301
+ description: null,
302
+ },
303
+ diagnostics,
304
+ };
305
+ }
306
+ function validateScalarMapping(scalar, index, configPath) {
307
+ const diagnostics = [];
308
+ if (!isRecord(scalar)) {
309
+ diagnostics.push({
310
+ code: "CONFIG_INVALID_TYPE",
311
+ message: `scalars[${index}] must be an object`,
312
+ severity: "error",
313
+ location: { file: configPath, line: 1, column: 1 },
314
+ });
315
+ return { resolved: undefined, diagnostics };
316
+ }
317
+ if (isNewFormat(scalar)) {
318
+ return validateNewScalarMapping(scalar, index, configPath);
319
+ }
320
+ if (isLegacyFormat(scalar)) {
321
+ return validateLegacyScalarMapping(scalar, index, configPath);
322
+ }
323
+ diagnostics.push({
324
+ code: "CONFIG_MISSING_PROPERTY",
325
+ message: `scalars[${index}] must have either (name, tsType) or (graphqlName, type)`,
326
+ severity: "error",
327
+ location: { file: configPath, line: 1, column: 1 },
328
+ });
329
+ return { resolved: undefined, diagnostics };
330
+ }
331
+ function validateHooksConfig(hooks, configPath) {
332
+ const diagnostics = [];
333
+ if (hooks === undefined) {
334
+ return {
335
+ resolved: { afterAllFileWrite: [] },
336
+ diagnostics: [],
337
+ };
338
+ }
339
+ if (!isRecord(hooks)) {
340
+ diagnostics.push({
341
+ code: "CONFIG_INVALID_TYPE",
342
+ message: "hooks must be an object",
343
+ severity: "error",
344
+ location: { file: configPath, line: 1, column: 1 },
345
+ });
346
+ return { resolved: undefined, diagnostics };
347
+ }
348
+ const afterAllFileWrite = hooks["afterAllFileWrite"];
349
+ if (afterAllFileWrite === undefined) {
350
+ return {
351
+ resolved: { afterAllFileWrite: [] },
352
+ diagnostics: [],
353
+ };
354
+ }
355
+ if (typeof afterAllFileWrite === "string") {
356
+ if (afterAllFileWrite === "") {
357
+ diagnostics.push({
358
+ code: "CONFIG_INVALID_HOOK_COMMAND",
359
+ message: "hooks.afterAllFileWrite contains empty command",
360
+ severity: "error",
361
+ location: { file: configPath, line: 1, column: 1 },
362
+ });
363
+ return { resolved: undefined, diagnostics };
364
+ }
365
+ return {
366
+ resolved: { afterAllFileWrite: [afterAllFileWrite] },
367
+ diagnostics: [],
368
+ };
369
+ }
370
+ if (Array.isArray(afterAllFileWrite)) {
371
+ for (const item of afterAllFileWrite) {
372
+ if (typeof item !== "string") {
373
+ diagnostics.push({
374
+ code: "CONFIG_INVALID_HOOK_TYPE",
375
+ message: "hooks.afterAllFileWrite must be a string or array of strings",
376
+ severity: "error",
377
+ location: { file: configPath, line: 1, column: 1 },
378
+ });
379
+ return { resolved: undefined, diagnostics };
380
+ }
381
+ if (item === "") {
382
+ diagnostics.push({
383
+ code: "CONFIG_INVALID_HOOK_COMMAND",
384
+ message: "hooks.afterAllFileWrite contains empty command",
385
+ severity: "error",
386
+ location: { file: configPath, line: 1, column: 1 },
387
+ });
388
+ return { resolved: undefined, diagnostics };
389
+ }
390
+ }
391
+ return {
392
+ resolved: { afterAllFileWrite: afterAllFileWrite },
393
+ diagnostics: [],
394
+ };
395
+ }
396
+ diagnostics.push({
397
+ code: "CONFIG_INVALID_HOOK_TYPE",
398
+ message: "hooks.afterAllFileWrite must be a string or array of strings",
399
+ severity: "error",
400
+ location: { file: configPath, line: 1, column: 1 },
401
+ });
402
+ return { resolved: undefined, diagnostics };
403
+ }
404
+ export function validateConfig(options) {
405
+ const { config, configPath } = options;
406
+ const diagnostics = [];
407
+ if (!isRecord(config)) {
408
+ diagnostics.push({
409
+ code: "CONFIG_INVALID_TYPE",
410
+ message: "Config must be an object",
411
+ severity: "error",
412
+ location: { file: configPath, line: 1, column: 1 },
413
+ });
414
+ return { valid: false, resolvedConfig: undefined, diagnostics };
415
+ }
416
+ const sourceDirResult = validateSourceDir(config["sourceDir"], configPath);
417
+ diagnostics.push(...sourceDirResult.diagnostics);
418
+ const sourceIgnoreGlobsResult = validateSourceIgnoreGlobs(config["sourceIgnoreGlobs"], configPath);
419
+ diagnostics.push(...sourceIgnoreGlobsResult.diagnostics);
420
+ const outputResult = validateOutputConfig(config["output"], configPath);
421
+ diagnostics.push(...outputResult.diagnostics);
422
+ const tsconfigPathResult = validateTsconfigPath(config["tsconfigPath"], configPath);
423
+ diagnostics.push(...tsconfigPathResult.diagnostics);
424
+ const hooksResult = validateHooksConfig(config["hooks"], configPath);
425
+ diagnostics.push(...hooksResult.diagnostics);
426
+ if (config["scalars"] !== undefined && !Array.isArray(config["scalars"])) {
427
+ diagnostics.push({
428
+ code: "CONFIG_INVALID_TYPE",
429
+ message: "scalars must be an array",
430
+ severity: "error",
431
+ location: { file: configPath, line: 1, column: 1 },
432
+ });
433
+ return { valid: false, resolvedConfig: undefined, diagnostics };
434
+ }
435
+ const scalarsArray = config["scalars"] ?? [];
436
+ const resolvedScalars = [];
437
+ const seenGraphqlNamesWithOnly = new Map();
438
+ const seenTypes = new Map();
439
+ for (let i = 0; i < scalarsArray.length; i++) {
440
+ const scalar = scalarsArray[i];
441
+ const result = validateScalarMapping(scalar, i, configPath);
442
+ diagnostics.push(...result.diagnostics);
443
+ if (result.resolved) {
444
+ const { graphqlName, typeName, importPath, only } = result.resolved;
445
+ const scalarOnlyKey = `${graphqlName}::${only ?? "both"}`;
446
+ const existing = seenGraphqlNamesWithOnly.get(scalarOnlyKey);
447
+ if (existing) {
448
+ diagnostics.push({
449
+ code: "CONFIG_DUPLICATE_MAPPING",
450
+ message: `Duplicate scalar mapping: '${graphqlName}' with ${only ? `only: "${only}"` : "no only constraint"} is defined multiple times`,
451
+ severity: "error",
452
+ location: { file: configPath, line: 1, column: 1 },
453
+ });
454
+ }
455
+ else {
456
+ seenGraphqlNamesWithOnly.set(scalarOnlyKey, { index: i, only });
457
+ }
458
+ const typeKey = `${importPath}::${typeName}`;
459
+ const existingType = seenTypes.get(typeKey);
460
+ if (existingType && existingType.names[0] !== graphqlName) {
461
+ existingType.names.push(graphqlName);
462
+ diagnostics.push({
463
+ code: "CONFIG_DUPLICATE_TYPE",
464
+ message: `Type '${typeName}' from '${importPath}' is mapped to multiple scalars: ${existingType.names.join(", ")}`,
465
+ severity: "error",
466
+ location: { file: configPath, line: 1, column: 1 },
467
+ });
468
+ }
469
+ else if (!existingType) {
470
+ seenTypes.set(typeKey, { index: i, names: [graphqlName] });
471
+ }
472
+ if (diagnostics.length === 0) {
473
+ resolvedScalars.push(result.resolved);
474
+ }
475
+ }
476
+ }
477
+ if (diagnostics.length > 0 ||
478
+ !sourceDirResult.resolved ||
479
+ !sourceIgnoreGlobsResult.resolved ||
480
+ !outputResult.resolved ||
481
+ !hooksResult.resolved) {
482
+ return { valid: false, resolvedConfig: undefined, diagnostics };
483
+ }
484
+ return {
485
+ valid: true,
486
+ resolvedConfig: {
487
+ sourceDir: sourceDirResult.resolved,
488
+ sourceIgnoreGlobs: sourceIgnoreGlobsResult.resolved,
489
+ output: outputResult.resolved,
490
+ scalars: resolvedScalars,
491
+ tsconfigPath: tsconfigPathResult.resolved,
492
+ hooks: hooksResult.resolved,
493
+ },
494
+ diagnostics: [],
495
+ };
496
+ }
497
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/config-loader/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.test.d.ts","sourceRoot":"","sources":["../../src/config-loader/validator.test.ts"],"names":[],"mappings":""}