@eddeee888/gcg-typescript-resolver-files 0.16.0 → 0.18.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 (287) hide show
  1. package/CHANGELOG.md +816 -0
  2. package/DEVELOPMENT.md +49 -0
  3. package/LICENSE +21 -0
  4. package/README.md +3 -3
  5. package/{src → dist}/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.d.ts +2 -2
  6. package/{src → dist}/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.js +11 -17
  7. package/dist/addVirtualTypesFileToTsMorphProject/index.d.ts +1 -0
  8. package/dist/addVirtualTypesFileToTsMorphProject/index.js +1 -0
  9. package/{src → dist}/defineConfig.d.ts +1 -1
  10. package/{src → dist}/defineConfig.js +4 -10
  11. package/{src → dist}/generateResolverFiles/addExternalResolverImport.d.ts +1 -1
  12. package/{src → dist}/generateResolverFiles/addExternalResolverImport.js +3 -8
  13. package/{src → dist}/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.d.ts +1 -1
  14. package/{src → dist}/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.js +9 -14
  15. package/{src → dist}/generateResolverFiles/addResolverMainFiles.d.ts +1 -1
  16. package/{src → dist}/generateResolverFiles/addResolverMainFiles.js +11 -17
  17. package/{src → dist}/generateResolverFiles/ensureEnumTypeResolversAreGenerated.d.ts +1 -1
  18. package/{src → dist}/generateResolverFiles/ensureEnumTypeResolversAreGenerated.js +6 -11
  19. package/{src → dist}/generateResolverFiles/generateResolverFiles.d.ts +1 -1
  20. package/dist/generateResolverFiles/generateResolverFiles.js +87 -0
  21. package/{src → dist}/generateResolverFiles/getImportStatementWithExpectedNamedImport.d.ts +1 -1
  22. package/dist/generateResolverFiles/getImportStatementWithExpectedNamedImport.js +14 -0
  23. package/{src → dist}/generateResolverFiles/getVariableStatementWithExpectedIdentifier.d.ts +1 -1
  24. package/{src → dist}/generateResolverFiles/getVariableStatementWithExpectedIdentifier.js +1 -6
  25. package/{src → dist}/generateResolverFiles/handleGraphQLEnumType.d.ts +1 -1
  26. package/{src → dist}/generateResolverFiles/handleGraphQLEnumType.js +6 -11
  27. package/{src → dist}/generateResolverFiles/handleGraphQLInterfaceType.d.ts +1 -1
  28. package/{src → dist}/generateResolverFiles/handleGraphQLInterfaceType.js +6 -11
  29. package/{src → dist}/generateResolverFiles/handleGraphQLObjectType.d.ts +1 -1
  30. package/{src → dist}/generateResolverFiles/handleGraphQLObjectType.js +8 -14
  31. package/dist/generateResolverFiles/handleGraphQLRootObjectTypeField.d.ts +3 -0
  32. package/{src → dist}/generateResolverFiles/handleGraphQLRootObjectTypeField.js +8 -13
  33. package/{src → dist}/generateResolverFiles/handleGraphQLScalarType.d.ts +1 -1
  34. package/{src → dist}/generateResolverFiles/handleGraphQLScalarType.js +6 -11
  35. package/{src → dist}/generateResolverFiles/handleGraphQLUnionType.d.ts +1 -1
  36. package/{src → dist}/generateResolverFiles/handleGraphQLUnionType.js +5 -10
  37. package/dist/generateResolverFiles/index.d.ts +2 -0
  38. package/dist/generateResolverFiles/index.js +1 -0
  39. package/{src → dist}/generateResolverFiles/postProcessFiles.d.ts +1 -1
  40. package/{src → dist}/generateResolverFiles/postProcessFiles.js +24 -26
  41. package/{src → dist}/generateResolverFiles/types.d.ts +6 -6
  42. package/dist/generateResolverFiles/types.js +1 -0
  43. package/{src → dist}/generateResolverFiles/visitNamedType.d.ts +2 -2
  44. package/{src → dist}/generateResolverFiles/visitNamedType.js +3 -8
  45. package/dist/generateTypeDefsFiles/generateTypeDefsContent.js +7 -0
  46. package/{src → dist}/generateTypeDefsFiles/generateTypeDefsFiles.d.ts +3 -3
  47. package/{src → dist}/generateTypeDefsFiles/generateTypeDefsFiles.js +7 -13
  48. package/dist/generateTypeDefsFiles/index.d.ts +1 -0
  49. package/dist/generateTypeDefsFiles/index.js +1 -0
  50. package/{src → dist}/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.d.ts +3 -3
  51. package/{src → dist}/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.js +17 -22
  52. package/{src → dist}/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.js +5 -10
  53. package/dist/getGraphQLObjectTypeResolversToGenerate/index.d.ts +1 -0
  54. package/dist/getGraphQLObjectTypeResolversToGenerate/index.js +1 -0
  55. package/dist/index.d.ts +3 -0
  56. package/dist/index.js +3 -0
  57. package/dist/normalizeAddConfigPath/index.d.ts +1 -0
  58. package/dist/normalizeAddConfigPath/index.js +1 -0
  59. package/{src → dist}/normalizeAddConfigPath/normalizeAddConfigPath.d.ts +1 -1
  60. package/{src → dist}/normalizeAddConfigPath/normalizeAddConfigPath.js +2 -8
  61. package/{src → dist}/parseGraphQLSchema/index.d.ts +2 -2
  62. package/dist/parseGraphQLSchema/index.js +1 -0
  63. package/{src → dist}/parseGraphQLSchema/normalizeResolverName.d.ts +1 -1
  64. package/{src → dist}/parseGraphQLSchema/normalizeResolverName.js +1 -6
  65. package/{src → dist}/parseGraphQLSchema/parseGraphQLSchema.d.ts +5 -5
  66. package/{src → dist}/parseGraphQLSchema/parseGraphQLSchema.js +43 -50
  67. package/{src → dist}/parseGraphQLSchema/parseLocationForOutputDir.d.ts +2 -2
  68. package/{src → dist}/parseGraphQLSchema/parseLocationForOutputDir.js +4 -10
  69. package/dist/parseSources/index.d.ts +1 -0
  70. package/dist/parseSources/index.js +1 -0
  71. package/{src → dist}/parseSources/parseSources.d.ts +1 -1
  72. package/{src → dist}/parseSources/parseSources.js +2 -7
  73. package/{src → dist}/parseTypeMappers/collectTypeMappersFromSourceFile.d.ts +2 -2
  74. package/{src → dist}/parseTypeMappers/collectTypeMappersFromSourceFile.js +15 -21
  75. package/dist/parseTypeMappers/index.d.ts +1 -0
  76. package/dist/parseTypeMappers/index.js +1 -0
  77. package/{src → dist}/parseTypeMappers/parseTypeMappers.d.ts +2 -2
  78. package/dist/parseTypeMappers/parseTypeMappers.js +20 -0
  79. package/{src → dist}/preset.d.ts +1 -1
  80. package/dist/preset.js +214 -0
  81. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  82. package/dist/utils/cwd.js +7 -0
  83. package/dist/utils/fmt.js +15 -0
  84. package/dist/utils/index.d.ts +12 -0
  85. package/dist/utils/index.js +12 -0
  86. package/{src → dist}/utils/isMatchResolverNamePattern.js +3 -9
  87. package/dist/utils/isNativeNamedType.js +13 -0
  88. package/dist/utils/isRootObjectType.js +3 -0
  89. package/{src → dist}/utils/isWhitelistedModule.js +1 -6
  90. package/{src → dist}/utils/logger.d.ts +1 -1
  91. package/dist/utils/logger.js +13 -0
  92. package/dist/utils/normalizeImportExtension.js +9 -0
  93. package/dist/utils/normalizeRelativePath.js +6 -0
  94. package/{src → dist}/utils/parseLocationForWhitelistedModule.d.ts +1 -1
  95. package/dist/utils/parseLocationForWhitelistedModule.js +17 -0
  96. package/{src → dist}/utils/printImportLine.d.ts +1 -1
  97. package/{src → dist}/utils/printImportLine.js +3 -7
  98. package/dist/utils/relativeModulePath.js +6 -0
  99. package/dist/validateAndMergeParsedConfigs/index.d.ts +1 -0
  100. package/dist/validateAndMergeParsedConfigs/index.js +1 -0
  101. package/{src → dist}/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.d.ts +2 -2
  102. package/{src → dist}/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.js +16 -13
  103. package/dist/validatePresetConfig/index.d.ts +1 -0
  104. package/dist/validatePresetConfig/index.js +1 -0
  105. package/{src → dist}/validatePresetConfig/validatePresetConfig.d.ts +2 -2
  106. package/{src → dist}/validatePresetConfig/validatePresetConfig.js +29 -36
  107. package/eslint.config.mjs +22 -0
  108. package/package.json +25 -18
  109. package/project.json +8 -0
  110. package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.ts +109 -0
  111. package/src/addVirtualTypesFileToTsMorphProject/index.ts +1 -0
  112. package/src/defineConfig.spec.ts +76 -0
  113. package/src/defineConfig.ts +37 -0
  114. package/src/generateResolverFiles/addExternalResolverImport.ts +185 -0
  115. package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.spec.ts +1174 -0
  116. package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.ts +144 -0
  117. package/src/generateResolverFiles/addResolverMainFiles.ts +343 -0
  118. package/src/generateResolverFiles/ensureEnumTypeResolversAreGenerated.ts +51 -0
  119. package/src/generateResolverFiles/generateResolverFiles.ts +148 -0
  120. package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.spec.ts +127 -0
  121. package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.ts +25 -0
  122. package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.spec.ts +147 -0
  123. package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.ts +34 -0
  124. package/src/generateResolverFiles/handleGraphQLEnumType.ts +100 -0
  125. package/src/generateResolverFiles/handleGraphQLInterfaceType.ts +70 -0
  126. package/src/generateResolverFiles/handleGraphQLObjectType.ts +171 -0
  127. package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.ts +105 -0
  128. package/src/generateResolverFiles/handleGraphQLScalarType.ts +81 -0
  129. package/src/generateResolverFiles/handleGraphQLUnionType.ts +68 -0
  130. package/src/generateResolverFiles/index.ts +2 -0
  131. package/src/generateResolverFiles/postProcessFiles.ts +287 -0
  132. package/src/generateResolverFiles/types.ts +203 -0
  133. package/src/generateResolverFiles/visitNamedType.ts +66 -0
  134. package/src/generateTypeDefsFiles/generateTypeDefsContent.ts +15 -0
  135. package/src/generateTypeDefsFiles/generateTypeDefsFiles.ts +100 -0
  136. package/src/generateTypeDefsFiles/index.ts +1 -0
  137. package/src/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.ts +361 -0
  138. package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.spec.ts +115 -0
  139. package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.ts +88 -0
  140. package/src/getGraphQLObjectTypeResolversToGenerate/index.ts +1 -0
  141. package/src/index.ts +3 -0
  142. package/src/normalizeAddConfigPath/index.ts +1 -0
  143. package/src/normalizeAddConfigPath/normalizeAddConfigPath.ts +29 -0
  144. package/src/parseGraphQLSchema/index.ts +2 -0
  145. package/src/parseGraphQLSchema/normalizeResolverName.ts +28 -0
  146. package/src/parseGraphQLSchema/parseGraphQLSchema.ts +531 -0
  147. package/src/parseGraphQLSchema/parseLocationForOutputDir.ts +76 -0
  148. package/src/parseSources/index.ts +1 -0
  149. package/src/parseSources/parseSources.ts +83 -0
  150. package/src/parseTypeMappers/collectTypeMappersFromSourceFile.spec.ts +789 -0
  151. package/src/parseTypeMappers/collectTypeMappersFromSourceFile.ts +197 -0
  152. package/src/parseTypeMappers/index.ts +1 -0
  153. package/src/parseTypeMappers/parseTypeMappers.ts +75 -0
  154. package/src/preset.ts +317 -0
  155. package/src/utils/cwd.ts +8 -0
  156. package/src/utils/fmt.ts +16 -0
  157. package/src/utils/index.ts +12 -0
  158. package/src/utils/isMatchResolverNamePattern.ts +27 -0
  159. package/src/utils/isNativeNamedType.ts +21 -0
  160. package/src/utils/isRootObjectType.ts +8 -0
  161. package/src/utils/isWhitelistedModule.spec.ts +71 -0
  162. package/src/utils/isWhitelistedModule.ts +21 -0
  163. package/src/utils/logger.ts +14 -0
  164. package/src/utils/normalizeImportExtension.spec.ts +42 -0
  165. package/src/utils/normalizeImportExtension.ts +16 -0
  166. package/src/utils/normalizeRelativePath.ts +6 -0
  167. package/src/utils/parseLocationForWhitelistedModule.spec.ts +130 -0
  168. package/src/utils/parseLocationForWhitelistedModule.ts +38 -0
  169. package/src/utils/printImportLine.spec.ts +150 -0
  170. package/src/utils/printImportLine.ts +78 -0
  171. package/src/utils/relativeModulePath.ts +7 -0
  172. package/src/validateAndMergeParsedConfigs/index.ts +1 -0
  173. package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.spec.ts +211 -0
  174. package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.ts +92 -0
  175. package/src/validatePresetConfig/index.ts +1 -0
  176. package/src/validatePresetConfig/validatePresetConfig.spec.ts +706 -0
  177. package/src/validatePresetConfig/validatePresetConfig.ts +571 -0
  178. package/tsconfig.json +14 -0
  179. package/tsconfig.lib.json +18 -0
  180. package/tsconfig.spec.json +20 -0
  181. package/vite.config.ts +24 -0
  182. package/src/addVirtualTypesFileToTsMorphProject/addVirtualTypesFileToTsMorphProject.js.map +0 -1
  183. package/src/addVirtualTypesFileToTsMorphProject/index.d.ts +0 -1
  184. package/src/addVirtualTypesFileToTsMorphProject/index.js +0 -5
  185. package/src/addVirtualTypesFileToTsMorphProject/index.js.map +0 -1
  186. package/src/defineConfig.js.map +0 -1
  187. package/src/generateResolverFiles/addExternalResolverImport.js.map +0 -1
  188. package/src/generateResolverFiles/addObjectTypeResolversPropertyAssignmentNodesIfNotImplemented.js.map +0 -1
  189. package/src/generateResolverFiles/addResolverMainFiles.js.map +0 -1
  190. package/src/generateResolverFiles/ensureEnumTypeResolversAreGenerated.js.map +0 -1
  191. package/src/generateResolverFiles/generateResolverFiles.js +0 -54
  192. package/src/generateResolverFiles/generateResolverFiles.js.map +0 -1
  193. package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.js +0 -20
  194. package/src/generateResolverFiles/getImportStatementWithExpectedNamedImport.js.map +0 -1
  195. package/src/generateResolverFiles/getVariableStatementWithExpectedIdentifier.js.map +0 -1
  196. package/src/generateResolverFiles/handleGraphQLEnumType.js.map +0 -1
  197. package/src/generateResolverFiles/handleGraphQLInterfaceType.js.map +0 -1
  198. package/src/generateResolverFiles/handleGraphQLObjectType.js.map +0 -1
  199. package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.d.ts +0 -3
  200. package/src/generateResolverFiles/handleGraphQLRootObjectTypeField.js.map +0 -1
  201. package/src/generateResolverFiles/handleGraphQLScalarType.js.map +0 -1
  202. package/src/generateResolverFiles/handleGraphQLUnionType.js.map +0 -1
  203. package/src/generateResolverFiles/index.d.ts +0 -2
  204. package/src/generateResolverFiles/index.js +0 -6
  205. package/src/generateResolverFiles/index.js.map +0 -1
  206. package/src/generateResolverFiles/postProcessFiles.js.map +0 -1
  207. package/src/generateResolverFiles/types.js +0 -3
  208. package/src/generateResolverFiles/types.js.map +0 -1
  209. package/src/generateResolverFiles/visitNamedType.js.map +0 -1
  210. package/src/generateTypeDefsFiles/generateTypeDefsContent.js +0 -12
  211. package/src/generateTypeDefsFiles/generateTypeDefsContent.js.map +0 -1
  212. package/src/generateTypeDefsFiles/generateTypeDefsFiles.js.map +0 -1
  213. package/src/generateTypeDefsFiles/index.d.ts +0 -1
  214. package/src/generateTypeDefsFiles/index.js +0 -5
  215. package/src/generateTypeDefsFiles/index.js.map +0 -1
  216. package/src/getGraphQLObjectTypeResolversToGenerate/getGraphQLObjectTypeResolversToGenerate.js.map +0 -1
  217. package/src/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.js.map +0 -1
  218. package/src/getGraphQLObjectTypeResolversToGenerate/index.d.ts +0 -1
  219. package/src/getGraphQLObjectTypeResolversToGenerate/index.js +0 -5
  220. package/src/getGraphQLObjectTypeResolversToGenerate/index.js.map +0 -1
  221. package/src/index.d.ts +0 -3
  222. package/src/index.js +0 -10
  223. package/src/index.js.map +0 -1
  224. package/src/normalizeAddConfigPath/index.d.ts +0 -1
  225. package/src/normalizeAddConfigPath/index.js +0 -5
  226. package/src/normalizeAddConfigPath/index.js.map +0 -1
  227. package/src/normalizeAddConfigPath/normalizeAddConfigPath.js.map +0 -1
  228. package/src/parseGraphQLSchema/index.js +0 -5
  229. package/src/parseGraphQLSchema/index.js.map +0 -1
  230. package/src/parseGraphQLSchema/normalizeResolverName.js.map +0 -1
  231. package/src/parseGraphQLSchema/parseGraphQLSchema.js.map +0 -1
  232. package/src/parseGraphQLSchema/parseLocationForOutputDir.js.map +0 -1
  233. package/src/parseSources/index.d.ts +0 -1
  234. package/src/parseSources/index.js +0 -5
  235. package/src/parseSources/index.js.map +0 -1
  236. package/src/parseSources/parseSources.js.map +0 -1
  237. package/src/parseTypeMappers/collectTypeMappersFromSourceFile.js.map +0 -1
  238. package/src/parseTypeMappers/index.d.ts +0 -1
  239. package/src/parseTypeMappers/index.js +0 -5
  240. package/src/parseTypeMappers/index.js.map +0 -1
  241. package/src/parseTypeMappers/parseTypeMappers.js +0 -26
  242. package/src/parseTypeMappers/parseTypeMappers.js.map +0 -1
  243. package/src/preset.js +0 -214
  244. package/src/preset.js.map +0 -1
  245. package/src/utils/cwd.js +0 -13
  246. package/src/utils/cwd.js.map +0 -1
  247. package/src/utils/fmt.js +0 -19
  248. package/src/utils/fmt.js.map +0 -1
  249. package/src/utils/index.d.ts +0 -12
  250. package/src/utils/index.js +0 -16
  251. package/src/utils/index.js.map +0 -1
  252. package/src/utils/isMatchResolverNamePattern.js.map +0 -1
  253. package/src/utils/isNativeNamedType.js +0 -18
  254. package/src/utils/isNativeNamedType.js.map +0 -1
  255. package/src/utils/isRootObjectType.js +0 -8
  256. package/src/utils/isRootObjectType.js.map +0 -1
  257. package/src/utils/isWhitelistedModule.js.map +0 -1
  258. package/src/utils/logger.js +0 -17
  259. package/src/utils/logger.js.map +0 -1
  260. package/src/utils/normalizeImportExtension.js +0 -13
  261. package/src/utils/normalizeImportExtension.js.map +0 -1
  262. package/src/utils/normalizeRelativePath.js +0 -11
  263. package/src/utils/normalizeRelativePath.js.map +0 -1
  264. package/src/utils/parseLocationForWhitelistedModule.js +0 -22
  265. package/src/utils/parseLocationForWhitelistedModule.js.map +0 -1
  266. package/src/utils/printImportLine.js.map +0 -1
  267. package/src/utils/relativeModulePath.js +0 -12
  268. package/src/utils/relativeModulePath.js.map +0 -1
  269. package/src/validateAndMergeParsedConfigs/index.d.ts +0 -1
  270. package/src/validateAndMergeParsedConfigs/index.js +0 -5
  271. package/src/validateAndMergeParsedConfigs/index.js.map +0 -1
  272. package/src/validateAndMergeParsedConfigs/validateAndMergeParsedConfigs.js.map +0 -1
  273. package/src/validatePresetConfig/index.d.ts +0 -1
  274. package/src/validatePresetConfig/index.js +0 -5
  275. package/src/validatePresetConfig/index.js.map +0 -1
  276. package/src/validatePresetConfig/validatePresetConfig.js.map +0 -1
  277. /package/{src → dist}/generateTypeDefsFiles/generateTypeDefsContent.d.ts +0 -0
  278. /package/{src → dist}/getGraphQLObjectTypeResolversToGenerate/getNodePropertyMap.d.ts +0 -0
  279. /package/{src → dist}/utils/cwd.d.ts +0 -0
  280. /package/{src → dist}/utils/fmt.d.ts +0 -0
  281. /package/{src → dist}/utils/isMatchResolverNamePattern.d.ts +0 -0
  282. /package/{src → dist}/utils/isNativeNamedType.d.ts +0 -0
  283. /package/{src → dist}/utils/isRootObjectType.d.ts +0 -0
  284. /package/{src → dist}/utils/isWhitelistedModule.d.ts +0 -0
  285. /package/{src → dist}/utils/normalizeImportExtension.d.ts +0 -0
  286. /package/{src → dist}/utils/normalizeRelativePath.d.ts +0 -0
  287. /package/{src → dist}/utils/relativeModulePath.d.ts +0 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,816 @@
1
+ # @eddeee888/gcg-typescript-resolver-files
2
+
3
+ ## 0.18.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 04295b4: Migrate to ESM
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [04295b4]
12
+ - @eddeee888/gcg-server-config@0.6.0
13
+
14
+ ## 0.17.0
15
+
16
+ ### Minor Changes
17
+
18
+ - 324f084: Support graphql@17
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies [324f084]
23
+ - @eddeee888/gcg-server-config@0.5.0
24
+
25
+ ## 0.16.0
26
+
27
+ ### Minor Changes
28
+
29
+ - b49fb8a: Drop Node 20 support
30
+
31
+ ### Patch Changes
32
+
33
+ - b49fb8a: Bump codegen packages
34
+ - Updated dependencies [b49fb8a]
35
+ - Updated dependencies [b49fb8a]
36
+ - @eddeee888/gcg-server-config@0.4.0
37
+
38
+ ## 0.15.1
39
+
40
+ ### Patch Changes
41
+
42
+ - eb89da1: Sync/bump Codegen package versions to avoid type issues
43
+ - Updated dependencies [eb89da1]
44
+ - @eddeee888/gcg-server-config@0.3.1
45
+
46
+ ## 0.15.0
47
+
48
+ ### Minor Changes
49
+
50
+ - a5de01f: add importExtension configuration option
51
+
52
+ ## 0.14.1
53
+
54
+ ### Patch Changes
55
+
56
+ - 1591c8d: Add moduleNamingMode option
57
+
58
+ ## 0.14.0
59
+
60
+ ### Minor Changes
61
+
62
+ - e0476b3: Add fixObjectTypeResolvers `fast` mode (experimental)
63
+
64
+ This is now the default static analysis mode. If you see behaviour or runtime issues, please set `fixObjectTypeResolvers: smart` and file a report at <https://github.com/eddeee888/graphql-code-generator-plugins/issues>
65
+
66
+ ## 0.13.0
67
+
68
+ ### Minor Changes
69
+
70
+ - f14a549: Bump codegen packages major version
71
+
72
+ ### Patch Changes
73
+
74
+ - Updated dependencies [f14a549]
75
+ - @eddeee888/gcg-server-config@0.3.0
76
+
77
+ ## 0.12.2
78
+
79
+ ### Patch Changes
80
+
81
+ - 6d79fc2: Fix issue where shorthand assignment are not detected for static analysis
82
+
83
+ ## 0.12.1
84
+
85
+ ### Patch Changes
86
+
87
+ - 7f03d24: Avoid low-level TypeScript typechecker usage unncessarily, which breaks when running static analysis
88
+
89
+ Originally, `getType` function was called during static analysis to get low-level `Type` for each type property declarations. These types can be used in typechecker's `isAssignableTo` function, which would have a significant perf boost (if done right). However, there needs to be a significant change to use `.isAssignableTo`, so `getType` was left there so we can continue the work later.
90
+
91
+ However, declarations of a node could be `undefined` if the type is wrapped in generics that synthesies properties(?). This causes the runtime error. [Relevant convo](https://github.com/microsoft/TypeScript/issues/61697)
92
+
93
+ For now, we can just remove the `getType` call, until we know how to handle these typing issues.
94
+
95
+ ## 0.12.0
96
+
97
+ ### Minor Changes
98
+
99
+ - e84fb01: Add mappersRelativeTargetDir config option
100
+
101
+ `string` (Default: `./`)
102
+
103
+ By default, mappers must be siblings with the schema they represent. For example, if the schema file is `/path/to/schema.graphql`, the mapper file is `/path/to/schema.mappers.ts`. This extension allows mappers to reside in a different directory relative to the schema file using the pattern `<schemaPath>/<mappersRelativeTargetDir>/<schemaName><mappersFileExtension>`.
104
+
105
+ - 221c671: Add moduleNamingMode option to determine the module name for each schema file
106
+
107
+ - **`last`**: The module name is derived from the **last** directory (within the schema directory) in the file's path.
108
+ - **`first`**: The module name is derived from the **first** directory (within the schema directory) in the file's path.
109
+ - **any number**: The module name is derived from the **nth zero-indexed** directory (within the schema directory) in the file's path. Supports negative numbers which select the **nth** directory from the back of the file's path.
110
+
111
+ ### Patch Changes
112
+
113
+ - 19e1f03: Fix \_\_resolveReference being required all the time
114
+ - b4c501c: Update internals to use faster approach to run static analysis
115
+ - df77f2e: Fix issue generated type names with custom naming convention breaks mappers static analysis
116
+ - Updated dependencies [19e1f03]
117
+ - @eddeee888/gcg-server-config@0.2.3
118
+
119
+ ## 0.11.0
120
+
121
+ ### Minor Changes
122
+
123
+ - 9b45bf3: Use @graphql-codegen/typescript-resolvers meta to handle federation\_\_resolveType
124
+ - 9b45bf3: Do not add files on filesystem that have not been touched by codemod
125
+
126
+ ### Patch Changes
127
+
128
+ - 9b45bf3: Do not report namingConvention usage as it is fully supported
129
+
130
+ ## 0.10.4
131
+
132
+ ### Patch Changes
133
+
134
+ - 7f281c9: Fix scalarOverrides not giving full control to users
135
+
136
+ ## 0.10.3
137
+
138
+ ### Patch Changes
139
+
140
+ - de78270: Ensure \_\_isTypeOf is in the picked properties so users can choose this way to handle abstract type should they choose
141
+
142
+ ## 0.10.2
143
+
144
+ ### Patch Changes
145
+
146
+ - 9088222: Fix interface mappers not being detected automatically
147
+
148
+ ## 0.10.1
149
+
150
+ ### Patch Changes
151
+
152
+ - 906d454: Bump @graphql-codegen/typescript-resolvers to v4.2.1
153
+ - bb9b5fe: Use @graphql-tools/merge to merge typeDefs
154
+ - Updated dependencies [906d454]
155
+ - @eddeee888/gcg-server-config@0.2.2
156
+
157
+ ## 0.10.0
158
+
159
+ ### Minor Changes
160
+
161
+ - 8ec553b: Handle enum resolverGeneration, autowireup and mapper. Enable enum resolvers generation by default.
162
+ - 8ec553b: Use reported generated type names from @graphql-codegen/typescript-resolvers meta to support all naming convention
163
+ - 8ec553b: Add `fixObjectTypeResolvers.enum = smart` option to ensure all allowedValues are generated
164
+ - 8ec553b: Fully support namingConvention for resolvers map
165
+
166
+ ## 0.9.4
167
+
168
+ ### Patch Changes
169
+
170
+ - b734d8b: Revert VariableStatement assumption that can cause runtime errors
171
+
172
+ ## 0.9.3
173
+
174
+ ### Patch Changes
175
+
176
+ - 386bb30: Fix issue where variable statements without type node does not get type node added
177
+ - 6715a49: Prefer detected scalar file on filesystem over scalar modules when wiring up resolvers map
178
+ - 86babc6: Fix issue where GraphQLScalarType is imported all the time, regardless of whether it's used
179
+
180
+ ## 0.9.2
181
+
182
+ ### Patch Changes
183
+
184
+ - 538eb24: Fix issue where whitelisted/blacklisted module can incorrectly detect extended resolvers to wire up to resolvers.generated.ts
185
+ - 263604f: Fix externalResolvers config not working for enums
186
+
187
+ ## 0.9.1
188
+
189
+ ### Patch Changes
190
+
191
+ - e999093: Add hooks to defineConfig context
192
+
193
+ ## 0.9.0
194
+
195
+ ### Minor Changes
196
+
197
+ - 454d1df: Add resolverGeneration 'minimal' mode
198
+
199
+ `minimal` is the equivalent of:
200
+
201
+ ```json
202
+ {
203
+ "query": "*",
204
+ "mutation": "*",
205
+ "subscription": "*",
206
+ "scalar": "*",
207
+ "object": "",
208
+ "union": "",
209
+ "interface": ""
210
+ }
211
+ ```
212
+
213
+ - 454d1df: Implement file auto-wireup if detected at the right filesystem location
214
+
215
+ ### Patch Changes
216
+
217
+ - c48e8c6: Update internals to avoid parsing schema twice
218
+
219
+ ## 0.8.1
220
+
221
+ ### Patch Changes
222
+
223
+ - 3213b73: Bump base codegen plugin to apply patches from upstream
224
+ - d6df63c: Force generate object types with mappers to avoid runtime errors
225
+ - Updated dependencies [3213b73]
226
+ - @eddeee888/gcg-server-config@0.2.1
227
+
228
+ ## 0.8.0
229
+
230
+ ### Minor Changes
231
+
232
+ - 6bf957d: Extend `resolverGeneration` functionality
233
+
234
+ Allow passing in an object that to control which files to be generated. By default (i.e. `resolverGeneration: 'recommended'`), it's equivalent to the following settings:
235
+
236
+ ```ts
237
+ defineConfig({
238
+ resolverGeneration: {
239
+ query: '*',
240
+ mutation: '*',
241
+ subscription: '*',
242
+ scalar: '*',
243
+ object: '*',
244
+ union: '',
245
+ interface: '',
246
+ },
247
+ });
248
+ ```
249
+
250
+ Each option can take a glob pattern to tell the preset which files of a given type to be generated based on its normalized file name.
251
+
252
+ ***
253
+
254
+ A normalized file name has this pattern:
255
+
256
+ ```
257
+ <Module name>.<Top-level type name>.<Field resolver>?
258
+ ```
259
+
260
+ Consider this schema:
261
+
262
+ ```graphql
263
+ # src/schema/pet/schema.graphql
264
+ extend type Query {
265
+ pets: [Pet!]!
266
+ }
267
+
268
+ type Cat {
269
+ id: ID!
270
+ }
271
+ type Dog {
272
+ id: ID!
273
+ }
274
+ union Pet = Cat | Dog
275
+
276
+ # src/schema/user/schema.graphql
277
+ extend type Mutation {
278
+ createUser(id: ID!): CreateUserResult!
279
+ }
280
+
281
+ type User {
282
+ id: ID!
283
+ }
284
+
285
+ type CreateUserOk {
286
+ result: User!
287
+ }
288
+ type CreateUserError {
289
+ error: String!
290
+ }
291
+ union CreateUserResult = CreateUserOk | CreateUserError
292
+ ```
293
+
294
+ Then, the generated files and normalised names are:
295
+
296
+ - `src/schema/pet/resolvers/Query/pets.ts`, affected by `query` option, normalized name: `pet.Query.pets`
297
+ - `src/schema/pet/resolvers/Cat.ts`, affected by `object` option, normalized name: `pet.Cat`
298
+ - `src/schema/pet/resolvers/Dog.ts`, affected by `object` option, normalized name: `pet.Dog`
299
+ - `src/schema/pet/resolvers/Pet.ts`, affected by `union` option, normalized name: `pet.Pet`
300
+ - `src/schema/user/resolvers/Mutation/createUser.ts`, affected by `mutation` option, normalized name: `user.Mutation.createUser`
301
+ - `src/schema/user/resolvers/User.ts`, affected by `object` option, normalized name: `user.User`
302
+ - `src/schema/user/resolvers/CreateUserOk.ts`, affected by `object` option, normalized name: `user.CreateUserOk`
303
+ - `src/schema/user/resolvers/CreateUserError.ts`, affected by `object` option, normalized name: `user.CreateUserError`
304
+ - `src/schema/user/resolvers/CreateUserResult.ts`, affected by `union` option, normalized name: `user.CreateUserResult`
305
+
306
+ Now, let's say we want to disable all union files, types ending with `Ok` or `Error`, the config would look like this:
307
+
308
+ ```ts
309
+ defineConfig({
310
+ resolverGeneration: {
311
+ query: '*',
312
+ mutation: '*',
313
+ subscription: '*',
314
+ scalar: '*',
315
+ object: ['!*.*Ok', '!*.*Error'], // Disables objects ending with `Ok` or `Error` in every module
316
+ union: '', // Empty string disables all file generation of relevant type in every module
317
+ interface: '*',
318
+ },
319
+ });
320
+ ```
321
+
322
+ - 00a80bc: Bump ts-morph to v22 which requires TypeScript 5.4
323
+
324
+ ### Patch Changes
325
+
326
+ - 6bf957d: Add colours to logs
327
+ - de5599b: Move union and interface config from server config to server preset
328
+
329
+ This config is fairly opinionated and may not make sense being on server config. However, it is definitely the default mode of operation we want to use for server preset to avoid having extra files, simplifying the setup.
330
+
331
+ - Updated dependencies [de5599b]
332
+ - @eddeee888/gcg-server-config@0.2.0
333
+
334
+ ## 0.7.5
335
+
336
+ ### Patch Changes
337
+
338
+ - 4ab8016: Use TypeScript typechecker to collect type properties
339
+
340
+ Previously, we manually walked through the program to collect properties of types. This is problematic as there are lots of ways to declare mappers that we cannot manually handle. On top of this, type property properties can be handled natively correctly by TypeScript typechecker.
341
+
342
+ Note: class declaration private properties are picked up by TypeScript typechecker, which could be problematic. We are keeping that case as-is.
343
+
344
+ ## 0.7.4
345
+
346
+ ### Patch Changes
347
+
348
+ - e909a17: fix path to output resolver files in main resolver files for nested schema files
349
+ - 067bd7e: Add params to generated resolvers
350
+ - 47c8fa6: Update package.json with missing deps
351
+ - 891f718: fix path to output resolver files so they are always generated near to schema.graphql
352
+ - b226761: Implement recursively pick interface extensions
353
+ - Updated dependencies [47c8fa6]
354
+ - @eddeee888/gcg-server-config@0.1.1
355
+
356
+ ## 0.7.3
357
+
358
+ ### Patch Changes
359
+
360
+ - 9f3b82b: Federation support: Add \_\_resolveReference to picked fields when extending object types
361
+
362
+ ## 0.7.2
363
+
364
+ ### Patch Changes
365
+
366
+ - 8ed14fc: Fix issue where dashes were not handled correctly when using extended object pattern across multiple schemas
367
+ - 7567190: Declare tslib as a dependency
368
+
369
+ ## 0.7.1
370
+
371
+ ### Patch Changes
372
+
373
+ - 73d9936: Relax `presetConfig.typesPluginsConfig.namingConvention` enforcement. Warn if used.
374
+
375
+ In v0.7.0, we've made `presetConfig.typesPluginsConfig.namingConvention` to throw if used. In this release, we've relaxed it because certain options may still work e.g. `upperCaseFirst `. If `namingConvention` is used, we warn instead.
376
+
377
+ Currently, the preset naively uses the schema type spelling/casing as the generated type. Therefore, it's important to have `namingConvention` option as `keep`. In the future, we can revisit to make sure generated resolvers have the same `namingConvention` support as the generated type file.
378
+
379
+ ## 0.7.0
380
+
381
+ ### Minor Changes
382
+
383
+ - ab6a9e7: Support extending non-root object types
384
+
385
+ For example, given this schema:
386
+
387
+ ```graphql
388
+ # user/schema.graphql
389
+ type User {
390
+ id: ID!
391
+ }
392
+
393
+ # car/schema.graphql
394
+ extend type User {
395
+ cars: [Car!]!
396
+ }
397
+
398
+ # house/schema.graphql
399
+ extend type User {
400
+ housesOwned: [House!]!
401
+ housesSold: [House!]!
402
+ }
403
+ ```
404
+
405
+ It'd generate these files:
406
+
407
+ ```ts
408
+ // user/resolvers/User.ts
409
+ export const User: Pick<UserResolvers, 'id'> = {
410
+ // ...
411
+ };
412
+
413
+ // car/resolvers/User.ts
414
+ export const User: Pick<UserResolvers, 'cars'> = {
415
+ // ...
416
+ };
417
+
418
+ // house/resolvers/User.ts
419
+ export const User: Pick<UserResolvers, 'housesOwned' | 'housesSold'> = {
420
+ // ...
421
+ };
422
+ ```
423
+
424
+ And the main resolver file:
425
+
426
+ ```ts
427
+ // resolvers.generated.ts
428
+ import { User as user_User } from './user/resolvers/User';
429
+ import { User as car_User } from './car/resolvers/User';
430
+ import { User as house_User } from './house/resolvers/User';
431
+
432
+ export const resolvers: Resolvers = {
433
+ User: {
434
+ ...user_User,
435
+ ...car_User,
436
+ ...house_User,
437
+ },
438
+ };
439
+ ```
440
+
441
+ - d5d9577: Drop support for `typesPluginsConfig.namingConvention` - this is now always `keep`
442
+
443
+ In the preset, we made the assumption that the types used in resolver files are in the same format as the schema. So we `keep` the naming convention.
444
+
445
+ Some types in `types.generated.ts` are affected. However, they are not currently used in any of the resolver files. So, if consumers have leaned into the recommended default config and generated resolver files (which is the intention of the preset), then there should be no issue upgrading.
446
+
447
+ - 5497e8f: Add experimental support for [add](https://the-guild.dev/graphql/codegen/plugins/other/add) plugin.
448
+
449
+ Consumers can use the preset's `add` option to do the equivalent of the `add` plugin to target the generated resolvers type file (default `types.generated.ts`).
450
+
451
+ Example:
452
+
453
+ ```ts
454
+ // codegen.ts
455
+ {
456
+ generates: {
457
+ 'src/schema': defineConfig({
458
+ add: {
459
+ './types.generated.ts': { content: '/* eslint-disable */' },
460
+ },
461
+ })
462
+ }
463
+ }
464
+ ```
465
+
466
+ ### Patch Changes
467
+
468
+ - Updated dependencies [ccdc5e2]
469
+ - @eddeee888/gcg-server-config@0.1.0
470
+
471
+ ## 0.6.0
472
+
473
+ ### Minor Changes
474
+
475
+ - d0e17ad: Add resolverGeneration option
476
+
477
+ `disabled` or `recommended` or `all` (Default: `recommended`)
478
+
479
+ Decides which resolvers to generate:
480
+
481
+ - `disabled`: generates no resolvers. Use this if you want to use your own structures. Note: if custom scalars are detected and used, resolver main files are still generated.
482
+ - `recommended`: generates the minimal amount of resolvers. Use this if you want a managed experience.
483
+ - no union/interface resolvers are generated because we rely on certain settings in `typescript-resolvers` that make these not required.
484
+ - `all`: generates all resolvers. Use this if you want all resolvers to be generated and use the ones you need.
485
+
486
+ - 1586d73: Add missing Interface file generation
487
+
488
+ ### Patch Changes
489
+
490
+ - c3ee642: Fix emitLegacyCommonJSImports issues
491
+
492
+ - Fix issue where warning always logged if `presetConfig.emitLegacyCommonJSImports` is used
493
+ - Throw error when `presetConfig.typesPluginsConfig.emitLegacyCommonJSImports` is used
494
+ - (Internal) Replace automatic file detection in `printImportLine` with 3 options: `file`, `module` and `preserve`:
495
+ - This is to fix rare cases where absolute alias path is used in `externalResolvers` option e.g. `src/module/file` was missing `.js` because it was being detected as a module. `externalResolvers` is set by the user and also used internally for scalar types, so we can use `preserve` instead to keep the module value as-is.
496
+ - Options:
497
+ - `file`: import is a file. For ESM, .js extension is added. For CJS, no extension is added.
498
+ - `module`: import is a module from `node_modules` or aliased e.g. `graphql-scalars` or `@org/your-module`. No extension is added.
499
+ - `preserve`: preserve what the config declares. This is only used when taking user's config or preset-controlled config e.g. `externalExternals` because the import could be either file or module
500
+
501
+ - 191705f: Add schema option to defineConfig
502
+ - 49ba468: Added support for the case where the Type mapper is a class
503
+ - c968c2c: Fix: defineConfig's type no longer allows typesPluginsConfig.scalars or typesPluginsConfig.emitLegacyCommonJSImports
504
+ - 2205e3f: Update default custom GraphQLScalar template to guide users better
505
+ - Updated dependencies [5e58a08]
506
+ - @eddeee888/gcg-server-config@0.0.1
507
+
508
+ ## 0.5.0
509
+
510
+ ### Minor Changes
511
+
512
+ - f7831c1: Use resolversNonOptionalTypename instead of nonOptionalTypename
513
+
514
+ This makes using abstract types simpler because we do not return \_\_typename for all types, only for union members and interface implementing types.
515
+
516
+ - f7831c1: Add scalarsOverrides config option
517
+
518
+ `Record<string, { resolver?: string; type?: string | { input: string; output: string } }>` (Default: `{}`)
519
+
520
+ Overrides scalars' resolver implementation, type or both.
521
+
522
+ Example:
523
+
524
+ ```ts
525
+ // codegen.ts
526
+ {
527
+ generates: {
528
+ 'src/schema': defineConfig({
529
+ scalarsOverrides: {
530
+ DateTime: {
531
+ resolver: './localDateTimeResolver#Resolver',
532
+ }
533
+ Currency: {
534
+ type: 'unknown'
535
+ },
536
+ BigInt: {
537
+ resolver: '@other/scalars#BigIntResolver',
538
+ type: 'bigint'
539
+ }
540
+ }
541
+ })
542
+ }
543
+ }
544
+ ```
545
+
546
+ BREAKING CHANGE: `typesPluginsConfig.scalars` can no longer be used. Please use `scalarOverrides` instead.
547
+
548
+ - f7831c1: Use optionalResolveType=true because resolversNonOptionalTypename works
549
+ - f7831c1: Add scalarsModule config option
550
+
551
+ `string` or `false` (Default: `graphql-scalars`)
552
+
553
+ Where Scalar implementation and codegen types come from. Use `false` to implement your own Scalars.
554
+
555
+ If using an module that is not `graphql-scalars`, the module must export resolver implementation and codegen type the same way `graphql-scalars` does e.g.
556
+
557
+ ```ts
558
+ {
559
+ resolvers: {
560
+ DateTime: DateTimeResolver,
561
+ },
562
+ DateTimeResolver: {
563
+ // ... resolver implementation
564
+ extensions: {
565
+ codegenScalarType: 'Date | string',
566
+ },
567
+ }
568
+ }
569
+ ```
570
+
571
+ ### Patch Changes
572
+
573
+ - f7831c1: Allows overriding native scalar types' type (Equivalent of typescript plugin's scalars option)
574
+ - f7831c1: Correctly implement ID Scalar's input/output type: input is string and output is string | number
575
+
576
+ ## 0.4.1
577
+
578
+ ### Patch Changes
579
+
580
+ - af10b65: Add emitLegacyCommonJSImports config option to support esm-style imports in generated output
581
+ - 72c0dc1: Fix typeDefsFileMode=modules not working well with codegen hooks (e.g. afterAllFileWrite) for Windows
582
+
583
+ ## 0.4.0
584
+
585
+ ### Minor Changes
586
+
587
+ - 037afdc: Add resolverMainFileMode. `merged` or `modules` (Default: `merged`)
588
+
589
+ How to generate file/s that put resolvers map together:
590
+
591
+ - `merged`: one file
592
+ - `modules`: one file per module. This can be used with module-based libraries like [graphql-modules](https://the-guild.dev/graphql/modules)
593
+
594
+ Example codegen config:
595
+
596
+ ```ts
597
+ // codegen.ts
598
+ import type { CodegenConfig } from '@graphql-codegen/cli';
599
+ import { defineConfig } from '@eddeee888/gcg-typescript-resolver-files';
600
+
601
+ const config: CodegenConfig = {
602
+ schema: '**/*.graphql',
603
+ generates: {
604
+ 'src/schema': defineConfig({
605
+ resolverMainFileMode: 'modules',
606
+ }),
607
+ },
608
+ };
609
+
610
+ export default config;
611
+ ```
612
+
613
+ `resolverMainFileMode=modules` generates one `resolvers.generated.ts` file in each module:
614
+
615
+ ```text
616
+ ├── src/
617
+ │ ├── schema/
618
+ │ │ ├── base/
619
+ │ │ │ ├── schema.graphql
620
+ │ │ │ ├── resolvers.generated.ts # contains resolvers of types in `src/schema/base/schema.graphql`
621
+ │ │ ├── user/
622
+ │ │ │ ├── schema.graphql
623
+ │ │ │ ├── resolvers.generated.ts # contains resolvers of types in `src/schema/user/schema.graphql`
624
+ │ │ ├── book/
625
+ │ │ │ ├── schema.graphql
626
+ │ │ │ ├── resolvers.generated.ts # contains resolvers of types in `src/schema/book/schema.graphql`
627
+ ```
628
+
629
+ If you are using `graphql-modules`, you can use the resolvers map like this:
630
+
631
+ ```ts
632
+ // src/schema/user/index.ts
633
+ import { createModule } from 'graphql-modules';
634
+ import { resolvers } from './resolvers.generated.ts';
635
+
636
+ export const userModule = createModule({
637
+ id: 'user-module',
638
+ dirname: __dirname,
639
+ typeDefs: [
640
+ /* Your typeDefs*/
641
+ ],
642
+ resolvers,
643
+ });
644
+ ```
645
+
646
+ - df06e3b: Add typeDefsFileMode. `merged` or `mergedWhitelisted` or `modules` (Default: `merged`)
647
+
648
+ How to generate typeDefs file/s:
649
+
650
+ - `merged`: one file
651
+ - `mergedWhitelisted`: one file but only contains whitelisted modules. This is useful if your blacklisted modules handle their own type defs
652
+ - `modules`: one file per module. This can be used with module-based libraries like [graphql-modules](https://the-guild.dev/graphql/modules)
653
+
654
+ Example codegen config:
655
+
656
+ ```ts
657
+ // codegen.ts
658
+ import type { CodegenConfig } from '@graphql-codegen/cli';
659
+ import { defineConfig } from '@eddeee888/gcg-typescript-resolver-files';
660
+
661
+ const config: CodegenConfig = {
662
+ schema: '**/*.graphql',
663
+ generates: {
664
+ 'src/schema': defineConfig({
665
+ typeDefsFileMode: 'modules',
666
+ }),
667
+ },
668
+ };
669
+
670
+ export default config;
671
+ ```
672
+
673
+ `typeDefsFileMode=modules` generates one `typeDefs.generated.ts` file in each module:
674
+
675
+ ```text
676
+ ├── src/
677
+ │ ├── schema/
678
+ │ │ ├── base/
679
+ │ │ │ ├── schema.graphql
680
+ │ │ │ ├── typeDefs.generated.ts # contains typeDefs of `src/schema/base/schema.graphql`
681
+ │ │ ├── user/
682
+ │ │ │ ├── schema.graphql
683
+ │ │ │ ├── typeDefs.generated.ts # contains typeDefs of `src/schema/user/schema.graphql`
684
+ │ │ ├── book/
685
+ │ │ │ ├── schema.graphql
686
+ │ │ │ ├── typeDefs.generated.ts # contains typeDefs of `src/schema/book/schema.graphql`
687
+ ```
688
+
689
+ If you are using `graphql-modules`, you can use the resolvers map like this:
690
+
691
+ ```ts
692
+ // src/schema/user/index.ts
693
+ import { createModule } from 'graphql-modules';
694
+ import { typeDefs } from './typeDefs.generated.ts';
695
+
696
+ export const userModule = createModule({
697
+ id: 'user-module',
698
+ dirname: __dirname,
699
+ typeDefs: [typeDefs],
700
+ resolvers: {
701
+ /* Your resolver map */
702
+ },
703
+ });
704
+ ```
705
+
706
+ - 086802e: Add `defineConfig`. This sets up `preset`, `presetConfig` and `watchPattern`.
707
+
708
+ Example:
709
+
710
+ ```ts
711
+ import type { CodegenConfig } from '@graphql-codegen/cli';
712
+ import { defineConfig } from '@eddeee888/typescript-resolver-files';
713
+
714
+ const config: CodegenConfig = {
715
+ schema: 'src/schema/**/*.graphql',
716
+ generates: {
717
+ 'src/schema': defineConfig(),
718
+ },
719
+ };
720
+
721
+ export default config;
722
+ ```
723
+
724
+ ### Patch Changes
725
+
726
+ - fe0ca5d: Bump ts-morph to v18
727
+ - d5aac16: Handle intersection typeNode usually seen in GQL Interface types e.g. `type TypeA = TypeB & { something: string } & { somethingelse: string }`
728
+ - 6324453: Fix Subscription default generation template
729
+ - b70ee7f: Use path.posix to fix Windows errors
730
+ - 5302e38: Add example for custom preset config in README
731
+
732
+ ## 0.3.0
733
+
734
+ ### Minor Changes
735
+
736
+ - 686cafd: Implement type comparison between mapper type vs schema type to generate resolvers
737
+
738
+ ## 0.2.1
739
+
740
+ ### Patch Changes
741
+
742
+ - 75fc48b: Bump @graphql-codegen/\* deps
743
+
744
+ ## 0.2.0
745
+
746
+ ### Minor Changes
747
+
748
+ - 0d3c9db: Generate typeDefs by default
749
+
750
+ ## 0.1.2
751
+
752
+ ### Patch Changes
753
+
754
+ - 0a07d09: Make graphql-scalars deps because it is used in implementation
755
+
756
+ ## 0.1.1
757
+
758
+ ### Patch Changes
759
+
760
+ - 120a06a: Make resolverRelativeTargetDir more reasonable for merged mode
761
+
762
+ ## 0.1.0
763
+
764
+ ### Minor Changes
765
+
766
+ - 80986d8: Update config setting names and defaults to prioritise 'modules' mode over 'merged'
767
+ - 6a918ed: Fix deps vs peerDeps in package.json
768
+ - a81f7f3: Implement auto mappers
769
+
770
+ ### Patch Changes
771
+
772
+ - 9646937: Fix Scalars in blacklisted modules not being ignored correctly
773
+
774
+ ## 0.0.7
775
+
776
+ ### Patch Changes
777
+
778
+ - a53b315: Make generated RootObjectTypeFields NonNullable to make reexports easier
779
+
780
+ ## 0.0.6
781
+
782
+ ### Patch Changes
783
+
784
+ - eda27b7: Add blacklistedModules config
785
+
786
+ ## 0.0.5
787
+
788
+ ### Patch Changes
789
+
790
+ - a15db13: Merge internal `typescript` and `typescript-resolvers` plugins config to one `typesPluginsConfig` field
791
+
792
+ ## 0.0.4
793
+
794
+ ### Patch Changes
795
+
796
+ - bcfe20d: Use graphql-scalars types and config
797
+ - bcfe20d: Add support with overrides for typescript and typescript-resolvers plugins
798
+
799
+ ## 0.0.3
800
+
801
+ ### Patch Changes
802
+
803
+ - 5065768: Turn to preset to better integrate with codegen
804
+
805
+ ## 0.0.2
806
+
807
+ ### Patch Changes
808
+
809
+ - 0a99233: Implement generating logic for Scalar type
810
+ - b2fe4da: Implement config.externalResolvers
811
+
812
+ ## 0.0.1
813
+
814
+ ### Patch Changes
815
+
816
+ - 49ffe7a: Initial publish