@baseplate-dev/core-generators 0.1.1

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 (304) hide show
  1. package/LICENSE +390 -0
  2. package/dist/constants/core-packages.d.ts +21 -0
  3. package/dist/constants/core-packages.d.ts.map +1 -0
  4. package/dist/constants/core-packages.js +26 -0
  5. package/dist/constants/core-packages.js.map +1 -0
  6. package/dist/constants/index.d.ts +2 -0
  7. package/dist/constants/index.d.ts.map +1 -0
  8. package/dist/constants/index.js +2 -0
  9. package/dist/constants/index.js.map +1 -0
  10. package/dist/constants/node.d.ts +3 -0
  11. package/dist/constants/node.d.ts.map +1 -0
  12. package/dist/constants/node.js +3 -0
  13. package/dist/constants/node.js.map +1 -0
  14. package/dist/generators/docker/docker-compose/docker-compose.generator.d.ts +17 -0
  15. package/dist/generators/docker/docker-compose/docker-compose.generator.d.ts.map +1 -0
  16. package/dist/generators/docker/docker-compose/docker-compose.generator.js +83 -0
  17. package/dist/generators/docker/docker-compose/docker-compose.generator.js.map +1 -0
  18. package/dist/generators/docker/docker-compose/postgres.d.ts +8 -0
  19. package/dist/generators/docker/docker-compose/postgres.d.ts.map +1 -0
  20. package/dist/generators/docker/docker-compose/postgres.js +22 -0
  21. package/dist/generators/docker/docker-compose/postgres.js.map +1 -0
  22. package/dist/generators/docker/docker-compose/redis.d.ts +8 -0
  23. package/dist/generators/docker/docker-compose/redis.d.ts.map +1 -0
  24. package/dist/generators/docker/docker-compose/redis.js +21 -0
  25. package/dist/generators/docker/docker-compose/redis.js.map +1 -0
  26. package/dist/generators/docker/docker-compose/types.d.ts +5 -0
  27. package/dist/generators/docker/docker-compose/types.d.ts.map +1 -0
  28. package/dist/generators/docker/docker-compose/types.js +2 -0
  29. package/dist/generators/docker/docker-compose/types.js.map +1 -0
  30. package/dist/generators/docker/index.d.ts +2 -0
  31. package/dist/generators/docker/index.d.ts.map +1 -0
  32. package/dist/generators/docker/index.js +2 -0
  33. package/dist/generators/docker/index.js.map +1 -0
  34. package/dist/generators/index.d.ts +3 -0
  35. package/dist/generators/index.d.ts.map +1 -0
  36. package/dist/generators/index.js +3 -0
  37. package/dist/generators/index.js.map +1 -0
  38. package/dist/generators/node/_composers/index.d.ts +2 -0
  39. package/dist/generators/node/_composers/index.d.ts.map +1 -0
  40. package/dist/generators/node/_composers/index.js +2 -0
  41. package/dist/generators/node/_composers/index.js.map +1 -0
  42. package/dist/generators/node/_composers/node.d.ts +4 -0
  43. package/dist/generators/node/_composers/node.d.ts.map +1 -0
  44. package/dist/generators/node/_composers/node.js +18 -0
  45. package/dist/generators/node/_composers/node.js.map +1 -0
  46. package/dist/generators/node/eslint/eslint.generator.d.ts +33 -0
  47. package/dist/generators/node/eslint/eslint.generator.d.ts.map +1 -0
  48. package/dist/generators/node/eslint/eslint.generator.js +110 -0
  49. package/dist/generators/node/eslint/eslint.generator.js.map +1 -0
  50. package/dist/generators/node/eslint/generated/ts-templates.d.ts +9 -0
  51. package/dist/generators/node/eslint/generated/ts-templates.d.ts.map +1 -0
  52. package/dist/generators/node/eslint/generated/ts-templates.js +14 -0
  53. package/dist/generators/node/eslint/generated/ts-templates.js.map +1 -0
  54. package/dist/generators/node/eslint/react-rules.d.ts +2 -0
  55. package/dist/generators/node/eslint/react-rules.d.ts.map +1 -0
  56. package/dist/generators/node/eslint/react-rules.js +59 -0
  57. package/dist/generators/node/eslint/react-rules.js.map +1 -0
  58. package/dist/generators/node/eslint/templates/eslint.config.js +219 -0
  59. package/dist/generators/node/eslint/vitest-rules.d.ts +2 -0
  60. package/dist/generators/node/eslint/vitest-rules.d.ts.map +1 -0
  61. package/dist/generators/node/eslint/vitest-rules.js +17 -0
  62. package/dist/generators/node/eslint/vitest-rules.js.map +1 -0
  63. package/dist/generators/node/index.d.ts +9 -0
  64. package/dist/generators/node/index.d.ts.map +1 -0
  65. package/dist/generators/node/index.js +9 -0
  66. package/dist/generators/node/index.js.map +1 -0
  67. package/dist/generators/node/node/node.generator.d.ts +72 -0
  68. package/dist/generators/node/node/node.generator.d.ts.map +1 -0
  69. package/dist/generators/node/node/node.generator.js +149 -0
  70. package/dist/generators/node/node/node.generator.js.map +1 -0
  71. package/dist/generators/node/node/package-dependencies-container.d.ts +41 -0
  72. package/dist/generators/node/node/package-dependencies-container.d.ts.map +1 -0
  73. package/dist/generators/node/node/package-dependencies-container.js +104 -0
  74. package/dist/generators/node/node/package-dependencies-container.js.map +1 -0
  75. package/dist/generators/node/node-git-ignore/node-git-ignore.generator.d.ts +15 -0
  76. package/dist/generators/node/node-git-ignore/node-git-ignore.generator.d.ts.map +1 -0
  77. package/dist/generators/node/node-git-ignore/node-git-ignore.generator.js +75 -0
  78. package/dist/generators/node/node-git-ignore/node-git-ignore.generator.js.map +1 -0
  79. package/dist/generators/node/prettier/prettier.generator.d.ts +33 -0
  80. package/dist/generators/node/prettier/prettier.generator.d.ts.map +1 -0
  81. package/dist/generators/node/prettier/prettier.generator.js +191 -0
  82. package/dist/generators/node/prettier/prettier.generator.js.map +1 -0
  83. package/dist/generators/node/ts-utils/generated/ts-import-maps.d.ts +21 -0
  84. package/dist/generators/node/ts-utils/generated/ts-import-maps.d.ts.map +1 -0
  85. package/dist/generators/node/ts-utils/generated/ts-import-maps.js +22 -0
  86. package/dist/generators/node/ts-utils/generated/ts-import-maps.js.map +1 -0
  87. package/dist/generators/node/ts-utils/generated/ts-templates.d.ts +7 -0
  88. package/dist/generators/node/ts-utils/generated/ts-templates.d.ts.map +1 -0
  89. package/dist/generators/node/ts-utils/generated/ts-templates.js +32 -0
  90. package/dist/generators/node/ts-utils/generated/ts-templates.js.map +1 -0
  91. package/dist/generators/node/ts-utils/templates/arrays.ts +13 -0
  92. package/dist/generators/node/ts-utils/templates/normalize-types.ts +12 -0
  93. package/dist/generators/node/ts-utils/templates/nulls.ts +33 -0
  94. package/dist/generators/node/ts-utils/templates/string.ts +11 -0
  95. package/dist/generators/node/ts-utils/ts-utils.generator.d.ts +17 -0
  96. package/dist/generators/node/ts-utils/ts-utils.generator.d.ts.map +1 -0
  97. package/dist/generators/node/ts-utils/ts-utils.generator.js +48 -0
  98. package/dist/generators/node/ts-utils/ts-utils.generator.js.map +1 -0
  99. package/dist/generators/node/typescript/compiler-types.d.ts +178 -0
  100. package/dist/generators/node/typescript/compiler-types.d.ts.map +1 -0
  101. package/dist/generators/node/typescript/compiler-types.js +70 -0
  102. package/dist/generators/node/typescript/compiler-types.js.map +1 -0
  103. package/dist/generators/node/typescript/typescript.generator.d.ts +117 -0
  104. package/dist/generators/node/typescript/typescript.generator.d.ts.map +1 -0
  105. package/dist/generators/node/typescript/typescript.generator.js +198 -0
  106. package/dist/generators/node/typescript/typescript.generator.js.map +1 -0
  107. package/dist/generators/node/vitest/generated/ts-templates.d.ts +9 -0
  108. package/dist/generators/node/vitest/generated/ts-templates.d.ts.map +1 -0
  109. package/dist/generators/node/vitest/generated/ts-templates.js +15 -0
  110. package/dist/generators/node/vitest/generated/ts-templates.js.map +1 -0
  111. package/dist/generators/node/vitest/templates/global-setup.ts +5 -0
  112. package/dist/generators/node/vitest/templates/vitest.config.ts +5 -0
  113. package/dist/generators/node/vitest/vitest.generator.d.ts +26 -0
  114. package/dist/generators/node/vitest/vitest.generator.d.ts.map +1 -0
  115. package/dist/generators/node/vitest/vitest.generator.js +93 -0
  116. package/dist/generators/node/vitest/vitest.generator.js.map +1 -0
  117. package/dist/index.d.ts +7 -0
  118. package/dist/index.js +7 -0
  119. package/dist/index.js.map +1 -0
  120. package/dist/providers/index.d.ts +3 -0
  121. package/dist/providers/index.d.ts.map +1 -0
  122. package/dist/providers/index.js +3 -0
  123. package/dist/providers/index.js.map +1 -0
  124. package/dist/providers/project.d.ts +5 -0
  125. package/dist/providers/project.d.ts.map +1 -0
  126. package/dist/providers/project.js +3 -0
  127. package/dist/providers/project.js.map +1 -0
  128. package/dist/providers/scopes.d.ts +3 -0
  129. package/dist/providers/scopes.d.ts.map +1 -0
  130. package/dist/providers/scopes.js +4 -0
  131. package/dist/providers/scopes.js.map +1 -0
  132. package/dist/renderers/index.d.ts +2 -0
  133. package/dist/renderers/index.d.ts.map +1 -0
  134. package/dist/renderers/index.js +2 -0
  135. package/dist/renderers/index.js.map +1 -0
  136. package/dist/renderers/typescript/actions/index.d.ts +4 -0
  137. package/dist/renderers/typescript/actions/index.d.ts.map +1 -0
  138. package/dist/renderers/typescript/actions/index.js +4 -0
  139. package/dist/renderers/typescript/actions/index.js.map +1 -0
  140. package/dist/renderers/typescript/actions/render-ts-fragment-action.d.ts +12 -0
  141. package/dist/renderers/typescript/actions/render-ts-fragment-action.d.ts.map +1 -0
  142. package/dist/renderers/typescript/actions/render-ts-fragment-action.js +25 -0
  143. package/dist/renderers/typescript/actions/render-ts-fragment-action.js.map +1 -0
  144. package/dist/renderers/typescript/actions/render-ts-template-file-action.d.ts +32 -0
  145. package/dist/renderers/typescript/actions/render-ts-template-file-action.d.ts.map +1 -0
  146. package/dist/renderers/typescript/actions/render-ts-template-file-action.js +65 -0
  147. package/dist/renderers/typescript/actions/render-ts-template-file-action.js.map +1 -0
  148. package/dist/renderers/typescript/actions/render-ts-template-group-action.d.ts +58 -0
  149. package/dist/renderers/typescript/actions/render-ts-template-group-action.d.ts.map +1 -0
  150. package/dist/renderers/typescript/actions/render-ts-template-group-action.js +69 -0
  151. package/dist/renderers/typescript/actions/render-ts-template-group-action.js.map +1 -0
  152. package/dist/renderers/typescript/extractor/extract-ts-template-variables.d.ts +18 -0
  153. package/dist/renderers/typescript/extractor/extract-ts-template-variables.d.ts.map +1 -0
  154. package/dist/renderers/typescript/extractor/extract-ts-template-variables.js +38 -0
  155. package/dist/renderers/typescript/extractor/extract-ts-template-variables.js.map +1 -0
  156. package/dist/renderers/typescript/extractor/index.d.ts +2 -0
  157. package/dist/renderers/typescript/extractor/index.d.ts.map +1 -0
  158. package/dist/renderers/typescript/extractor/index.js +2 -0
  159. package/dist/renderers/typescript/extractor/index.js.map +1 -0
  160. package/dist/renderers/typescript/extractor/organize-ts-template-imports.d.ts +26 -0
  161. package/dist/renderers/typescript/extractor/organize-ts-template-imports.d.ts.map +1 -0
  162. package/dist/renderers/typescript/extractor/organize-ts-template-imports.js +175 -0
  163. package/dist/renderers/typescript/extractor/organize-ts-template-imports.js.map +1 -0
  164. package/dist/renderers/typescript/extractor/preprocess-code-for-extraction-hack.d.ts +17 -0
  165. package/dist/renderers/typescript/extractor/preprocess-code-for-extraction-hack.d.ts.map +1 -0
  166. package/dist/renderers/typescript/extractor/preprocess-code-for-extraction-hack.js +46 -0
  167. package/dist/renderers/typescript/extractor/preprocess-code-for-extraction-hack.js.map +1 -0
  168. package/dist/renderers/typescript/extractor/templates/imports-file.d.ts +2 -0
  169. package/dist/renderers/typescript/extractor/templates/imports-file.d.ts.map +1 -0
  170. package/dist/renderers/typescript/extractor/templates/imports-file.js +35 -0
  171. package/dist/renderers/typescript/extractor/templates/imports-file.js.map +1 -0
  172. package/dist/renderers/typescript/extractor/ts-template-file-extractor.d.ts +167 -0
  173. package/dist/renderers/typescript/extractor/ts-template-file-extractor.d.ts.map +1 -0
  174. package/dist/renderers/typescript/extractor/ts-template-file-extractor.js +279 -0
  175. package/dist/renderers/typescript/extractor/ts-template-file-extractor.js.map +1 -0
  176. package/dist/renderers/typescript/extractor/write-ts-project-exports.d.ts +96 -0
  177. package/dist/renderers/typescript/extractor/write-ts-project-exports.d.ts.map +1 -0
  178. package/dist/renderers/typescript/extractor/write-ts-project-exports.js +139 -0
  179. package/dist/renderers/typescript/extractor/write-ts-project-exports.js.map +1 -0
  180. package/dist/renderers/typescript/fragments/creators.d.ts +29 -0
  181. package/dist/renderers/typescript/fragments/creators.d.ts.map +1 -0
  182. package/dist/renderers/typescript/fragments/creators.js +53 -0
  183. package/dist/renderers/typescript/fragments/creators.js.map +1 -0
  184. package/dist/renderers/typescript/fragments/index.d.ts +4 -0
  185. package/dist/renderers/typescript/fragments/index.d.ts.map +1 -0
  186. package/dist/renderers/typescript/fragments/index.js +3 -0
  187. package/dist/renderers/typescript/fragments/index.js.map +1 -0
  188. package/dist/renderers/typescript/fragments/types.d.ts +65 -0
  189. package/dist/renderers/typescript/fragments/types.d.ts.map +1 -0
  190. package/dist/renderers/typescript/fragments/types.js +2 -0
  191. package/dist/renderers/typescript/fragments/types.js.map +1 -0
  192. package/dist/renderers/typescript/fragments/utils.d.ts +51 -0
  193. package/dist/renderers/typescript/fragments/utils.d.ts.map +1 -0
  194. package/dist/renderers/typescript/fragments/utils.js +134 -0
  195. package/dist/renderers/typescript/fragments/utils.js.map +1 -0
  196. package/dist/renderers/typescript/import-maps/index.d.ts +4 -0
  197. package/dist/renderers/typescript/import-maps/index.d.ts.map +1 -0
  198. package/dist/renderers/typescript/import-maps/index.js +3 -0
  199. package/dist/renderers/typescript/import-maps/index.js.map +1 -0
  200. package/dist/renderers/typescript/import-maps/transform-ts-imports-with-map.d.ts +19 -0
  201. package/dist/renderers/typescript/import-maps/transform-ts-imports-with-map.d.ts.map +1 -0
  202. package/dist/renderers/typescript/import-maps/transform-ts-imports-with-map.js +54 -0
  203. package/dist/renderers/typescript/import-maps/transform-ts-imports-with-map.js.map +1 -0
  204. package/dist/renderers/typescript/import-maps/ts-import-map.d.ts +10 -0
  205. package/dist/renderers/typescript/import-maps/ts-import-map.d.ts.map +1 -0
  206. package/dist/renderers/typescript/import-maps/ts-import-map.js +39 -0
  207. package/dist/renderers/typescript/import-maps/ts-import-map.js.map +1 -0
  208. package/dist/renderers/typescript/import-maps/types.d.ts +28 -0
  209. package/dist/renderers/typescript/import-maps/types.d.ts.map +1 -0
  210. package/dist/renderers/typescript/import-maps/types.js +2 -0
  211. package/dist/renderers/typescript/import-maps/types.js.map +1 -0
  212. package/dist/renderers/typescript/imports/builder.d.ts +49 -0
  213. package/dist/renderers/typescript/imports/builder.d.ts.map +1 -0
  214. package/dist/renderers/typescript/imports/builder.js +47 -0
  215. package/dist/renderers/typescript/imports/builder.js.map +1 -0
  216. package/dist/renderers/typescript/imports/index.d.ts +8 -0
  217. package/dist/renderers/typescript/imports/index.d.ts.map +1 -0
  218. package/dist/renderers/typescript/imports/index.js +7 -0
  219. package/dist/renderers/typescript/imports/index.js.map +1 -0
  220. package/dist/renderers/typescript/imports/merge-ts-import-declarations.d.ts +20 -0
  221. package/dist/renderers/typescript/imports/merge-ts-import-declarations.d.ts.map +1 -0
  222. package/dist/renderers/typescript/imports/merge-ts-import-declarations.js +114 -0
  223. package/dist/renderers/typescript/imports/merge-ts-import-declarations.js.map +1 -0
  224. package/dist/renderers/typescript/imports/normalize-module-specifier.d.ts +40 -0
  225. package/dist/renderers/typescript/imports/normalize-module-specifier.d.ts.map +1 -0
  226. package/dist/renderers/typescript/imports/normalize-module-specifier.js +133 -0
  227. package/dist/renderers/typescript/imports/normalize-module-specifier.js.map +1 -0
  228. package/dist/renderers/typescript/imports/sort-imports/get-import-sort-group.d.ts +31 -0
  229. package/dist/renderers/typescript/imports/sort-imports/get-import-sort-group.d.ts.map +1 -0
  230. package/dist/renderers/typescript/imports/sort-imports/get-import-sort-group.js +169 -0
  231. package/dist/renderers/typescript/imports/sort-imports/get-import-sort-group.js.map +1 -0
  232. package/dist/renderers/typescript/imports/sort-imports/index.d.ts +2 -0
  233. package/dist/renderers/typescript/imports/sort-imports/index.d.ts.map +1 -0
  234. package/dist/renderers/typescript/imports/sort-imports/index.js +2 -0
  235. package/dist/renderers/typescript/imports/sort-imports/index.js.map +1 -0
  236. package/dist/renderers/typescript/imports/sort-imports/sort-import-declarations.d.ts +32 -0
  237. package/dist/renderers/typescript/imports/sort-imports/sort-import-declarations.d.ts.map +1 -0
  238. package/dist/renderers/typescript/imports/sort-imports/sort-import-declarations.js +72 -0
  239. package/dist/renderers/typescript/imports/sort-imports/sort-import-declarations.js.map +1 -0
  240. package/dist/renderers/typescript/imports/ts-morph-operations.d.ts +42 -0
  241. package/dist/renderers/typescript/imports/ts-morph-operations.d.ts.map +1 -0
  242. package/dist/renderers/typescript/imports/ts-morph-operations.js +145 -0
  243. package/dist/renderers/typescript/imports/ts-morph-operations.js.map +1 -0
  244. package/dist/renderers/typescript/imports/ts-path-maps.d.ts +18 -0
  245. package/dist/renderers/typescript/imports/ts-path-maps.d.ts.map +1 -0
  246. package/dist/renderers/typescript/imports/ts-path-maps.js +39 -0
  247. package/dist/renderers/typescript/imports/ts-path-maps.js.map +1 -0
  248. package/dist/renderers/typescript/imports/types.d.ts +73 -0
  249. package/dist/renderers/typescript/imports/types.d.ts.map +1 -0
  250. package/dist/renderers/typescript/imports/types.js +2 -0
  251. package/dist/renderers/typescript/imports/types.js.map +1 -0
  252. package/dist/renderers/typescript/index.d.ts +9 -0
  253. package/dist/renderers/typescript/index.d.ts.map +1 -0
  254. package/dist/renderers/typescript/index.js +9 -0
  255. package/dist/renderers/typescript/index.js.map +1 -0
  256. package/dist/renderers/typescript/renderers/file.d.ts +18 -0
  257. package/dist/renderers/typescript/renderers/file.d.ts.map +1 -0
  258. package/dist/renderers/typescript/renderers/file.js +91 -0
  259. package/dist/renderers/typescript/renderers/file.js.map +1 -0
  260. package/dist/renderers/typescript/renderers/index.d.ts +3 -0
  261. package/dist/renderers/typescript/renderers/index.d.ts.map +1 -0
  262. package/dist/renderers/typescript/renderers/index.js +3 -0
  263. package/dist/renderers/typescript/renderers/index.js.map +1 -0
  264. package/dist/renderers/typescript/renderers/template.d.ts +21 -0
  265. package/dist/renderers/typescript/renderers/template.d.ts.map +1 -0
  266. package/dist/renderers/typescript/renderers/template.js +132 -0
  267. package/dist/renderers/typescript/renderers/template.js.map +1 -0
  268. package/dist/renderers/typescript/templates/creators.d.ts +10 -0
  269. package/dist/renderers/typescript/templates/creators.d.ts.map +1 -0
  270. package/dist/renderers/typescript/templates/creators.js +9 -0
  271. package/dist/renderers/typescript/templates/creators.js.map +1 -0
  272. package/dist/renderers/typescript/templates/index.d.ts +3 -0
  273. package/dist/renderers/typescript/templates/index.d.ts.map +1 -0
  274. package/dist/renderers/typescript/templates/index.js +3 -0
  275. package/dist/renderers/typescript/templates/index.js.map +1 -0
  276. package/dist/renderers/typescript/templates/types.d.ts +119 -0
  277. package/dist/renderers/typescript/templates/types.d.ts.map +1 -0
  278. package/dist/renderers/typescript/templates/types.js +43 -0
  279. package/dist/renderers/typescript/templates/types.js.map +1 -0
  280. package/dist/renderers/typescript/utils/index.d.ts +2 -0
  281. package/dist/renderers/typescript/utils/index.d.ts.map +1 -0
  282. package/dist/renderers/typescript/utils/index.js +2 -0
  283. package/dist/renderers/typescript/utils/index.js.map +1 -0
  284. package/dist/renderers/typescript/utils/ts-code-utils.d.ts +200 -0
  285. package/dist/renderers/typescript/utils/ts-code-utils.d.ts.map +1 -0
  286. package/dist/renderers/typescript/utils/ts-code-utils.js +431 -0
  287. package/dist/renderers/typescript/utils/ts-code-utils.js.map +1 -0
  288. package/dist/utils/extract-packages.d.ts +8 -0
  289. package/dist/utils/extract-packages.d.ts.map +1 -0
  290. package/dist/utils/extract-packages.js +10 -0
  291. package/dist/utils/extract-packages.js.map +1 -0
  292. package/dist/utils/index.d.ts +2 -0
  293. package/dist/utils/index.d.ts.map +1 -0
  294. package/dist/utils/index.js +2 -0
  295. package/dist/utils/index.js.map +1 -0
  296. package/dist/writers/index.d.ts +2 -0
  297. package/dist/writers/index.d.ts.map +1 -0
  298. package/dist/writers/index.js +2 -0
  299. package/dist/writers/index.js.map +1 -0
  300. package/dist/writers/json.d.ts +21 -0
  301. package/dist/writers/json.d.ts.map +1 -0
  302. package/dist/writers/json.js +14 -0
  303. package/dist/writers/json.js.map +1 -0
  304. package/package.json +88 -0
@@ -0,0 +1,191 @@
1
+ import { createGenerator, createGeneratorTask, createNonOverwriteableMap, createProviderType, } from '@baseplate-dev/sync';
2
+ import { notEmpty } from '@baseplate-dev/utils';
3
+ import { findNearestPackageJson, readJsonWithSchema, } from '@baseplate-dev/utils/node';
4
+ import { uniq } from 'es-toolkit';
5
+ import path from 'node:path';
6
+ import { pathToFileURL } from 'node:url';
7
+ import prettier from 'prettier';
8
+ import prettierPluginPackageJson from 'prettier-plugin-packagejson';
9
+ import resolveFrom from 'resolve-from';
10
+ import { z } from 'zod';
11
+ import { CORE_PACKAGES } from '#src/constants/core-packages.js';
12
+ import { projectScope } from '#src/providers/scopes.js';
13
+ import { writeJsonToBuilder } from '#src/writers/json.js';
14
+ import { nodeProvider } from '../node/node.generator.js';
15
+ const descriptorSchema = z.object({
16
+ tabWidth: z.number().default(2),
17
+ singleQuote: z.boolean().default(true),
18
+ trailingComma: z.string().default('all'),
19
+ semi: z.boolean().default(true),
20
+ });
21
+ const DEFAULT_PLUGINS = [
22
+ {
23
+ name: 'prettier-plugin-packagejson',
24
+ default: prettierPluginPackageJson,
25
+ version: CORE_PACKAGES['prettier-plugin-packagejson'],
26
+ },
27
+ ];
28
+ export const prettierProvider = createProviderType('prettier');
29
+ const PARSEABLE_EXTENSIONS = new Set([
30
+ '.json',
31
+ '.js',
32
+ '.ts',
33
+ '.jsx',
34
+ '.tsx',
35
+ '.scss',
36
+ '.css',
37
+ '.html',
38
+ '.sass',
39
+ '.gql',
40
+ '.graphql',
41
+ '.yml',
42
+ '.yaml',
43
+ '.cjs',
44
+ '.mjs',
45
+ '.cts',
46
+ '.mts',
47
+ '.md',
48
+ ]);
49
+ const PARSEABLE_FILE_NAMES = new Set(['.prettierrc']);
50
+ function resolveModule(name, fullPath) {
51
+ const basedir = path.dirname(fullPath);
52
+ return resolveFrom.silent(basedir, name);
53
+ }
54
+ async function resolveModuleWithVersion(name, fullPath) {
55
+ const result = resolveModule(name, fullPath);
56
+ if (!result) {
57
+ return undefined;
58
+ }
59
+ const packageJsonPath = await findNearestPackageJson({ cwd: result });
60
+ if (!packageJsonPath)
61
+ return undefined;
62
+ const packageJson = await readJsonWithSchema(packageJsonPath, z.object({
63
+ version: z.string().optional(),
64
+ }));
65
+ return {
66
+ modulePath: result,
67
+ version: packageJson.version,
68
+ };
69
+ }
70
+ export const prettierGenerator = createGenerator({
71
+ name: 'node/prettier',
72
+ generatorFileUrl: import.meta.url,
73
+ descriptorSchema,
74
+ buildTasks: (descriptor) => ({
75
+ main: createGeneratorTask({
76
+ dependencies: { node: nodeProvider },
77
+ exports: {
78
+ prettier: prettierProvider.export(projectScope),
79
+ },
80
+ run({ node }) {
81
+ const prettierConfig = createNonOverwriteableMap({
82
+ tabWidth: descriptor.tabWidth,
83
+ singleQuote: descriptor.singleQuote,
84
+ trailingComma: descriptor.trailingComma,
85
+ semi: descriptor.semi,
86
+ });
87
+ const plugins = [...DEFAULT_PLUGINS];
88
+ const prettierIgnore = [
89
+ '/coverage',
90
+ '/dist',
91
+ '/lib',
92
+ '/build',
93
+ '/node_modules',
94
+ '/baseplate',
95
+ 'pnpm-lock.yaml',
96
+ ];
97
+ return {
98
+ providers: {
99
+ prettier: {
100
+ getConfig: () => prettierConfig,
101
+ addPrettierIgnore(ignorePath) {
102
+ prettierIgnore.push(ignorePath);
103
+ },
104
+ addPlugin(plugin) {
105
+ plugins.push(plugin);
106
+ },
107
+ },
108
+ },
109
+ build: (builder) => {
110
+ let prettierModulePromise;
111
+ let prettierConfigPromise;
112
+ const formatFunction = async (input, fullPath, logger) => {
113
+ if (!PARSEABLE_EXTENSIONS.has(path.extname(fullPath)) &&
114
+ !PARSEABLE_FILE_NAMES.has(path.basename(fullPath))) {
115
+ return input;
116
+ }
117
+ prettierModulePromise ??= (async () => {
118
+ const result = await resolveModuleWithVersion('prettier', fullPath);
119
+ if (!result) {
120
+ logger.info('Could not find prettier library. Falling back to in-built version. Run again once dependencies have been installed.');
121
+ // use the in-built version of prettier
122
+ return prettier;
123
+ }
124
+ if (result.version === prettier.version) {
125
+ return prettier;
126
+ }
127
+ const rawImport = (await import(
128
+ // use file:// to support Windows
129
+ pathToFileURL(result.modulePath).href));
130
+ return rawImport.default;
131
+ })();
132
+ const prettierModule = await prettierModulePromise;
133
+ prettierConfigPromise ??= (async () => {
134
+ const resolvedPlugins = await Promise.all(plugins.map(async (plugin) => {
135
+ const resolvedModule = await resolveModuleWithVersion(plugin.name, fullPath);
136
+ if (!resolvedModule) {
137
+ logger.info(`Could not resolve prettier plugin ${plugin.name}. Run again once dependencies have been installed.`);
138
+ return plugin.default;
139
+ }
140
+ return plugin.version === resolvedModule.version
141
+ ? plugin.default
142
+ : import(pathToFileURL(resolvedModule.modulePath).href);
143
+ }));
144
+ return {
145
+ ...prettierConfig.value(),
146
+ plugins: resolvedPlugins.length > 0
147
+ ? resolvedPlugins.filter(notEmpty)
148
+ : [],
149
+ };
150
+ })();
151
+ const config = await prettierConfigPromise;
152
+ return prettierModule.format(input, {
153
+ ...config,
154
+ filepath: fullPath,
155
+ });
156
+ };
157
+ builder.addGlobalFormatter({
158
+ name: 'prettier',
159
+ format: formatFunction,
160
+ fileExtensions: [...PARSEABLE_EXTENSIONS],
161
+ fileNames: [...PARSEABLE_FILE_NAMES],
162
+ });
163
+ node.packages.addDevPackages({
164
+ prettier: CORE_PACKAGES.prettier,
165
+ ...Object.fromEntries(DEFAULT_PLUGINS.map((plugin) => [plugin.name, plugin.version])),
166
+ });
167
+ node.scripts.mergeObj({
168
+ 'prettier:check': 'prettier --check .',
169
+ 'prettier:write': 'prettier -w .',
170
+ });
171
+ writeJsonToBuilder(builder, {
172
+ id: 'prettier-config',
173
+ destination: '.prettierrc',
174
+ contents: {
175
+ ...prettierConfig.value(),
176
+ plugins: plugins.map((plugin) => plugin.name),
177
+ },
178
+ });
179
+ const prettierIgnoreSorted = uniq(prettierIgnore.toSorted());
180
+ builder.writeFile({
181
+ id: 'prettier-ignore',
182
+ destination: '.prettierignore',
183
+ contents: `${prettierIgnoreSorted.join('\n')}\n`,
184
+ });
185
+ },
186
+ };
187
+ },
188
+ }),
189
+ }),
190
+ });
191
+ //# sourceMappingURL=prettier.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier.generator.js","sourceRoot":"","sources":["../../../../src/generators/node/prettier/prettier.generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { TsImportMapProviderFromSchema } from '#src/renderers/typescript/index.js';
2
+ declare const tsUtilsImportsSchema: {
3
+ capitalizeString: {};
4
+ NormalizeTypes: {
5
+ isTypeOnly: true;
6
+ };
7
+ notEmpty: {};
8
+ restrictObjectNulls: {};
9
+ };
10
+ export type TsUtilsImportsProvider = TsImportMapProviderFromSchema<typeof tsUtilsImportsSchema>;
11
+ export declare const tsUtilsImportsProvider: import("@baseplate-dev/sync").ProviderType<import("#src/renderers/typescript/index.js").InferTsImportMapFromSchema<{
12
+ capitalizeString: {};
13
+ NormalizeTypes: {
14
+ isTypeOnly: true;
15
+ };
16
+ notEmpty: {};
17
+ restrictObjectNulls: {};
18
+ }>>;
19
+ export declare function createTsUtilsImports(importBase: string): TsUtilsImportsProvider;
20
+ export {};
21
+ //# sourceMappingURL=ts-import-maps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-import-maps.d.ts","sourceRoot":"","sources":["../../../../../src/generators/node/ts-utils/generated/ts-import-maps.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAOxF,QAAA,MAAM,oBAAoB;;;;;;;CAKxB,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,6BAA6B,CAChE,OAAO,oBAAoB,CAC5B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;GACqC,CAAC;AAEzE,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAWxB"}
@@ -0,0 +1,22 @@
1
+ import { createReadOnlyProviderType } from '@baseplate-dev/sync';
2
+ import path from 'node:path/posix';
3
+ import { createTsImportMap, createTsImportMapSchema, } from '#src/renderers/typescript/index.js';
4
+ const tsUtilsImportsSchema = createTsImportMapSchema({
5
+ capitalizeString: {},
6
+ NormalizeTypes: { isTypeOnly: true },
7
+ notEmpty: {},
8
+ restrictObjectNulls: {},
9
+ });
10
+ export const tsUtilsImportsProvider = createReadOnlyProviderType('ts-utils-imports');
11
+ export function createTsUtilsImports(importBase) {
12
+ if (!importBase.startsWith('@/')) {
13
+ throw new Error('importBase must start with @/');
14
+ }
15
+ return createTsImportMap(tsUtilsImportsSchema, {
16
+ capitalizeString: path.join(importBase, 'string.js'),
17
+ NormalizeTypes: path.join(importBase, 'normalize-types.js'),
18
+ notEmpty: path.join(importBase, 'arrays.js'),
19
+ restrictObjectNulls: path.join(importBase, 'nulls.js'),
20
+ });
21
+ }
22
+ //# sourceMappingURL=ts-import-maps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-import-maps.js","sourceRoot":"","sources":["../../../../../src/generators/node/ts-utils/generated/ts-import-maps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAInC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;IACnD,gBAAgB,EAAE,EAAE;IACpB,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;IACpC,QAAQ,EAAE,EAAE;IACZ,mBAAmB,EAAE,EAAE;CACxB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,sBAAsB,GACjC,0BAA0B,CAAyB,kBAAkB,CAAC,CAAC;AAEzE,MAAM,UAAU,oBAAoB,CAClC,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,iBAAiB,CAAC,oBAAoB,EAAE;QAC7C,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;QACpD,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC;QAC3D,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;QAC5C,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;KACvD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const NODE_TS_UTILS_TS_TEMPLATES: {
2
+ arrays: import("#src/renderers/typescript/index.js").TsTemplateFile<{}, Record<never, import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/sync").Provider>>>;
3
+ normalizeTypes: import("#src/renderers/typescript/index.js").TsTemplateFile<{}, Record<never, import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/sync").Provider>>>;
4
+ nulls: import("#src/renderers/typescript/index.js").TsTemplateFile<{}, Record<never, import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/sync").Provider>>>;
5
+ string: import("#src/renderers/typescript/index.js").TsTemplateFile<{}, Record<never, import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/sync").Provider>>>;
6
+ };
7
+ //# sourceMappingURL=ts-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-templates.d.ts","sourceRoot":"","sources":["../../../../../src/generators/node/ts-utils/generated/ts-templates.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,0BAA0B;;;;;CAKtC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { createTsTemplateFile } from '#src/renderers/typescript/index.js';
2
+ const arrays = createTsTemplateFile({
3
+ name: 'arrays',
4
+ projectExports: { notEmpty: {} },
5
+ source: { path: 'arrays.ts' },
6
+ variables: {},
7
+ });
8
+ const normalizeTypes = createTsTemplateFile({
9
+ name: 'normalize-types',
10
+ projectExports: { NormalizeTypes: { isTypeOnly: true } },
11
+ source: { path: 'normalize-types.ts' },
12
+ variables: {},
13
+ });
14
+ const nulls = createTsTemplateFile({
15
+ name: 'nulls',
16
+ projectExports: { restrictObjectNulls: {} },
17
+ source: { path: 'nulls.ts' },
18
+ variables: {},
19
+ });
20
+ const string = createTsTemplateFile({
21
+ name: 'string',
22
+ projectExports: { capitalizeString: {} },
23
+ source: { path: 'string.ts' },
24
+ variables: {},
25
+ });
26
+ export const NODE_TS_UTILS_TS_TEMPLATES = {
27
+ arrays,
28
+ normalizeTypes,
29
+ nulls,
30
+ string,
31
+ };
32
+ //# sourceMappingURL=ts-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-templates.js","sourceRoot":"","sources":["../../../../../src/generators/node/ts-utils/generated/ts-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,MAAM,GAAG,oBAAoB,CAAC;IAClC,IAAI,EAAE,QAAQ;IACd,cAAc,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;IAC7B,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,oBAAoB,CAAC;IAC1C,IAAI,EAAE,iBAAiB;IACvB,cAAc,EAAE,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;IACxD,MAAM,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;IACtC,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,oBAAoB,CAAC;IACjC,IAAI,EAAE,OAAO;IACb,cAAc,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE;IAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IAC5B,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,oBAAoB,CAAC;IAClC,IAAI,EAAE,QAAQ;IACd,cAAc,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE;IACxC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;IAC7B,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM;IACN,cAAc;IACd,KAAK;IACL,MAAM;CACP,CAAC"}
@@ -0,0 +1,13 @@
1
+ // @ts-nocheck
2
+
3
+ /**
4
+ * Checks if a value is not null or undefined.
5
+ *
6
+ * @param value - The value to check.
7
+ * @returns `true` if the value is not null or undefined, otherwise `false`.
8
+ */
9
+ export function notEmpty<TValue>(
10
+ value: TValue | null | undefined,
11
+ ): value is TValue {
12
+ return value !== null && value !== undefined;
13
+ }
@@ -0,0 +1,12 @@
1
+ // @ts-nocheck
2
+
3
+ /**
4
+ * Typescript hack to force IDEs to show raw object
5
+ * type without additional typing that we have added
6
+ */
7
+ export type NormalizeTypes<T> =
8
+ T extends Record<string, unknown>
9
+ ? {
10
+ [K in keyof T]: T[K];
11
+ }
12
+ : T;
@@ -0,0 +1,33 @@
1
+ // @ts-nocheck
2
+
3
+ import type { NormalizeTypes } from './normalize-types.js';
4
+
5
+ /**
6
+ * Restricts an object from having null in certain fields. This
7
+ * is useful when you want to enforce certain fields are not null
8
+ * when coming from GraphQL which only has the option of
9
+ * defining null | undefined fields.
10
+ *
11
+ * @param object Object to validate
12
+ * @param restrictedKeys Prevents these keys from being set to null
13
+ * @returns A newly typed object whose restrictedKeys are not null
14
+ */
15
+ export function restrictObjectNulls<
16
+ ObjectType extends Record<string, unknown>,
17
+ NonNullKeys extends keyof ObjectType,
18
+ >(
19
+ object: ObjectType,
20
+ nonNullKeys: NonNullKeys[],
21
+ ): NormalizeTypes<
22
+ ObjectType & { [K in NonNullKeys]: Exclude<ObjectType[K], null> }
23
+ > {
24
+ const nullKey = nonNullKeys.find((key) => object[key] === null);
25
+ if (nullKey) {
26
+ throw new Error(`${nullKey.toString()} cannot be null`);
27
+ }
28
+ return object as NormalizeTypes<
29
+ ObjectType & {
30
+ [K in NonNullKeys]: Exclude<ObjectType[K], null>;
31
+ }
32
+ >;
33
+ }
@@ -0,0 +1,11 @@
1
+ // @ts-nocheck
2
+
3
+ /**
4
+ * Capitalizes the first letter of a string.
5
+ *
6
+ * @param str - The string to capitalize.
7
+ * @returns The capitalized string.
8
+ */
9
+ export function capitalizeString(str: string): string {
10
+ return str.charAt(0).toUpperCase() + str.slice(1);
11
+ }
@@ -0,0 +1,17 @@
1
+ export declare const tsUtilsGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<{}, {
2
+ main: import("@baseplate-dev/sync").GeneratorTask<{
3
+ tsUtilsImports: import("@baseplate-dev/sync").ProviderExport<import("../../../index.js").InferTsImportMapFromSchema<{
4
+ capitalizeString: {};
5
+ NormalizeTypes: {
6
+ isTypeOnly: true;
7
+ };
8
+ notEmpty: {};
9
+ restrictObjectNulls: {};
10
+ }>>;
11
+ }, {
12
+ typescriptFile: import("@baseplate-dev/sync").ProviderType<import("../typescript/typescript.generator.js").TypescriptFileProvider>;
13
+ }, any>;
14
+ }>;
15
+ export { tsUtilsImportsProvider } from './generated/ts-import-maps.js';
16
+ export type { TsUtilsImportsProvider } from './generated/ts-import-maps.js';
17
+ //# sourceMappingURL=ts-utils.generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-utils.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/node/ts-utils/ts-utils.generator.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;EA+B3B,CAAC;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { createGenerator, createGeneratorTask } from '@baseplate-dev/sync';
2
+ import path from 'node:path';
3
+ import { z } from 'zod';
4
+ import { projectScope } from '#src/providers/scopes.js';
5
+ import { typescriptFileProvider } from '../typescript/typescript.generator.js';
6
+ import { createTsUtilsImports, tsUtilsImportsProvider, } from './generated/ts-import-maps.js';
7
+ import { NODE_TS_UTILS_TS_TEMPLATES } from './generated/ts-templates.js';
8
+ const descriptorSchema = z.object({});
9
+ function getUtilsPath(source) {
10
+ if (!('path' in source)) {
11
+ throw new Error('Template path is required');
12
+ }
13
+ return path.join('@/src/utils', source.path);
14
+ }
15
+ export const tsUtilsGenerator = createGenerator({
16
+ name: 'node/ts-utils',
17
+ generatorFileUrl: import.meta.url,
18
+ descriptorSchema,
19
+ buildTasks: () => ({
20
+ main: createGeneratorTask({
21
+ dependencies: {
22
+ typescriptFile: typescriptFileProvider,
23
+ },
24
+ exports: {
25
+ tsUtilsImports: tsUtilsImportsProvider.export(projectScope),
26
+ },
27
+ run({ typescriptFile }) {
28
+ return {
29
+ providers: {
30
+ tsUtilsImports: createTsUtilsImports('@/src/utils'),
31
+ },
32
+ build: (builder) => {
33
+ for (const key of Object.keys(NODE_TS_UTILS_TS_TEMPLATES)) {
34
+ const template = NODE_TS_UTILS_TS_TEMPLATES[key];
35
+ typescriptFile.addLazyTemplateFile({
36
+ template,
37
+ destination: getUtilsPath(template.source),
38
+ generatorInfo: builder.generatorInfo,
39
+ });
40
+ }
41
+ },
42
+ };
43
+ },
44
+ }),
45
+ }),
46
+ });
47
+ export { tsUtilsImportsProvider } from './generated/ts-import-maps.js';
48
+ //# sourceMappingURL=ts-utils.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-utils.generator.js","sourceRoot":"","sources":["../../../../src/generators/node/ts-utils/ts-utils.generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEtC,SAAS,YAAY,CAAC,MAA0B;IAC9C,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAID,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;IAC9C,IAAI,EAAE,eAAe;IACrB,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;IACjC,gBAAgB;IAChB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACjB,IAAI,EAAE,mBAAmB,CAAC;YACxB,YAAY,EAAE;gBACZ,cAAc,EAAE,sBAAsB;aACvC;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC;aAC5D;YACD,GAAG,CAAC,EAAE,cAAc,EAAE;gBACpB,OAAO;oBACL,SAAS,EAAE;wBACT,cAAc,EAAE,oBAAoB,CAAC,aAAa,CAAC;qBACpD;oBACD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;wBACjB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC;4BAC1D,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAgB,CAAC,CAAC;4BAC9D,cAAc,CAAC,mBAAmB,CAAC;gCACjC,QAAQ;gCACR,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;gCAC1C,aAAa,EAAE,OAAO,CAAC,aAAa;6BACrC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;KACH,CAAC;CACH,CAAC,CAAC;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,178 @@
1
+ /*! *****************************************************************************
2
+ Copyright (c) Microsoft Corporation. All rights reserved.
3
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4
+ this file except in compliance with the License. You may obtain a copy of the
5
+ License at http://www.apache.org/licenses/LICENSE-2.0
6
+
7
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10
+ MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ See the Apache Version 2.0 License for specific language governing permissions
13
+ and limitations under the License.
14
+ ***************************************************************************** */
15
+ declare enum JsxEmit {
16
+ None = "none",
17
+ Preserve = "preserve",
18
+ ReactNative = "react-native",
19
+ React = "react",
20
+ ReactJSX = "react-jsx",
21
+ ReactJSXDev = "react-jsxdev"
22
+ }
23
+ declare enum ModuleKind {
24
+ None = "none",
25
+ CommonJS = "commonjs",
26
+ AMD = "amd",
27
+ UMD = "umd",
28
+ System = "system",
29
+ ES6 = "es6",
30
+ ES2015 = "es2015",
31
+ ES2020 = "es2020",
32
+ ES2022 = "es2022",
33
+ ESNext = "esnext",
34
+ Node16 = "node16",
35
+ NodeNext = "nodenext",
36
+ Preserve = "preserve"
37
+ }
38
+ declare enum ModuleResolutionKind {
39
+ Classic = "classic",
40
+ Node10 = "node10",
41
+ Node16 = "node16",
42
+ NodeNext = "nodenext",
43
+ Bundler = "bundler"
44
+ }
45
+ declare enum ScriptTarget {
46
+ /** @deprecated */
47
+ ES3 = "es3",
48
+ ES5 = "es5",
49
+ ES6 = "es6",
50
+ ES2015 = "es2015",
51
+ ES2016 = "es2016",
52
+ ES2017 = "es2017",
53
+ ES2018 = "es2018",
54
+ ES2019 = "es2019",
55
+ ES2020 = "es2020",
56
+ ES2021 = "es2021",
57
+ ES2022 = "es2022",
58
+ ES2023 = "es2023",
59
+ ES2024 = "es2024",
60
+ ESNext = "esnext",
61
+ JSON = "json"
62
+ }
63
+ type MapLike<T> = Record<string, T>;
64
+ export interface TypescriptCompilerOptions {
65
+ allowImportingTsExtensions?: boolean;
66
+ allowJs?: boolean;
67
+ allowArbitraryExtensions?: boolean;
68
+ allowSyntheticDefaultImports?: boolean;
69
+ allowUmdGlobalAccess?: boolean;
70
+ allowUnreachableCode?: boolean;
71
+ allowUnusedLabels?: boolean;
72
+ alwaysStrict?: boolean;
73
+ baseUrl?: string;
74
+ /** @deprecated */
75
+ charset?: string;
76
+ checkJs?: boolean;
77
+ customConditions?: string[];
78
+ declaration?: boolean;
79
+ declarationMap?: boolean;
80
+ emitDeclarationOnly?: boolean;
81
+ declarationDir?: string;
82
+ disableSizeLimit?: boolean;
83
+ disableSourceOfProjectReferenceRedirect?: boolean;
84
+ disableSolutionSearching?: boolean;
85
+ disableReferencedProjectLoad?: boolean;
86
+ downlevelIteration?: boolean;
87
+ emitBOM?: boolean;
88
+ emitDecoratorMetadata?: boolean;
89
+ exactOptionalPropertyTypes?: boolean;
90
+ experimentalDecorators?: boolean;
91
+ forceConsistentCasingInFileNames?: boolean;
92
+ ignoreDeprecations?: string;
93
+ importHelpers?: boolean;
94
+ inlineSourceMap?: boolean;
95
+ inlineSources?: boolean;
96
+ isolatedModules?: boolean;
97
+ isolatedDeclarations?: boolean;
98
+ jsx?: `${JsxEmit}`;
99
+ lib?: string[];
100
+ locale?: string;
101
+ mapRoot?: string;
102
+ maxNodeModuleJsDepth?: number;
103
+ module?: `${ModuleKind}`;
104
+ moduleResolution?: `${ModuleResolutionKind}`;
105
+ moduleSuffixes?: string[];
106
+ noEmit?: boolean;
107
+ noCheck?: boolean;
108
+ noEmitHelpers?: boolean;
109
+ noEmitOnError?: boolean;
110
+ noErrorTruncation?: boolean;
111
+ noFallthroughCasesInSwitch?: boolean;
112
+ noImplicitAny?: boolean;
113
+ noImplicitReturns?: boolean;
114
+ noImplicitThis?: boolean;
115
+ /** @deprecated */
116
+ noStrictGenericChecks?: boolean;
117
+ noUnusedLocals?: boolean;
118
+ noUnusedParameters?: boolean;
119
+ /** @deprecated */
120
+ noImplicitUseStrict?: boolean;
121
+ noPropertyAccessFromIndexSignature?: boolean;
122
+ assumeChangesOnlyAffectDirectDependencies?: boolean;
123
+ noLib?: boolean;
124
+ noResolve?: boolean;
125
+ noUncheckedIndexedAccess?: boolean;
126
+ /** @deprecated */
127
+ out?: string;
128
+ outDir?: string;
129
+ outFile?: string;
130
+ paths?: MapLike<string[]>;
131
+ preserveConstEnums?: boolean;
132
+ noImplicitOverride?: boolean;
133
+ preserveSymlinks?: boolean;
134
+ /** @deprecated */
135
+ preserveValueImports?: boolean;
136
+ project?: string;
137
+ reactNamespace?: string;
138
+ jsxFactory?: string;
139
+ jsxFragmentFactory?: string;
140
+ jsxImportSource?: string;
141
+ composite?: boolean;
142
+ incremental?: boolean;
143
+ tsBuildInfoFile?: string;
144
+ removeComments?: boolean;
145
+ resolvePackageJsonExports?: boolean;
146
+ resolvePackageJsonImports?: boolean;
147
+ rewriteRelativeImportExtensions?: boolean;
148
+ rootDir?: string;
149
+ rootDirs?: string[];
150
+ skipLibCheck?: boolean;
151
+ skipDefaultLibCheck?: boolean;
152
+ sourceMap?: boolean;
153
+ sourceRoot?: string;
154
+ strict?: boolean;
155
+ strictFunctionTypes?: boolean;
156
+ strictBindCallApply?: boolean;
157
+ strictNullChecks?: boolean;
158
+ strictPropertyInitialization?: boolean;
159
+ strictBuiltinIteratorReturn?: boolean;
160
+ stripInternal?: boolean;
161
+ /** @deprecated */
162
+ suppressExcessPropertyErrors?: boolean;
163
+ /** @deprecated */
164
+ suppressImplicitAnyIndexErrors?: boolean;
165
+ target?: `${ScriptTarget}`;
166
+ traceResolution?: boolean;
167
+ useUnknownInCatchVariables?: boolean;
168
+ noUncheckedSideEffectImports?: boolean;
169
+ resolveJsonModule?: boolean;
170
+ types?: string[];
171
+ /** Paths used to compute primary types search locations */
172
+ typeRoots?: string[];
173
+ verbatimModuleSyntax?: boolean;
174
+ esModuleInterop?: boolean;
175
+ useDefineForClassFields?: boolean;
176
+ }
177
+ export {};
178
+ //# sourceMappingURL=compiler-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler-types.d.ts","sourceRoot":"","sources":["../../../../src/generators/node/typescript/compiler-types.ts"],"names":[],"mappings":"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"}