@baseplate-dev/core-generators 0.1.3 → 0.2.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 (358) hide show
  1. package/dist/generators/docker/docker-compose/docker-compose.generator.d.ts +1 -1
  2. package/dist/generators/docker/docker-compose/docker-compose.generator.js +4 -4
  3. package/dist/generators/docker/docker-compose/docker-compose.generator.js.map +1 -1
  4. package/dist/generators/docker/docker-compose/index.d.ts +2 -0
  5. package/dist/generators/docker/docker-compose/index.d.ts.map +1 -0
  6. package/dist/generators/docker/docker-compose/index.js +2 -0
  7. package/dist/generators/docker/docker-compose/index.js.map +1 -0
  8. package/dist/generators/docker/index.d.ts +1 -1
  9. package/dist/generators/docker/index.d.ts.map +1 -1
  10. package/dist/generators/docker/index.js +1 -1
  11. package/dist/generators/docker/index.js.map +1 -1
  12. package/dist/generators/index.d.ts +1 -0
  13. package/dist/generators/index.d.ts.map +1 -1
  14. package/dist/generators/index.js +1 -0
  15. package/dist/generators/index.js.map +1 -1
  16. package/dist/generators/metadata/index.d.ts +2 -0
  17. package/dist/generators/metadata/index.d.ts.map +1 -0
  18. package/dist/generators/metadata/index.js +2 -0
  19. package/dist/generators/metadata/index.js.map +1 -0
  20. package/dist/generators/metadata/path-roots/index.d.ts +2 -0
  21. package/dist/generators/metadata/path-roots/index.d.ts.map +1 -0
  22. package/dist/generators/metadata/path-roots/index.js +2 -0
  23. package/dist/generators/metadata/path-roots/index.js.map +1 -0
  24. package/dist/generators/metadata/path-roots/path-roots.generator.d.ts +20 -0
  25. package/dist/generators/metadata/path-roots/path-roots.generator.d.ts.map +1 -0
  26. package/dist/generators/metadata/path-roots/path-roots.generator.js +54 -0
  27. package/dist/generators/metadata/path-roots/path-roots.generator.js.map +1 -0
  28. package/dist/generators/node/_composers/node.d.ts +1 -1
  29. package/dist/generators/node/_composers/node.d.ts.map +1 -1
  30. package/dist/generators/node/_composers/node.js +8 -6
  31. package/dist/generators/node/_composers/node.js.map +1 -1
  32. package/dist/generators/node/eslint/eslint.generator.d.ts +7 -1
  33. package/dist/generators/node/eslint/eslint.generator.d.ts.map +1 -1
  34. package/dist/generators/node/eslint/eslint.generator.js +29 -12
  35. package/dist/generators/node/eslint/eslint.generator.js.map +1 -1
  36. package/dist/generators/node/eslint/generated/index.d.ts +14 -0
  37. package/dist/generators/node/eslint/generated/index.d.ts.map +1 -0
  38. package/dist/generators/node/eslint/generated/index.js +7 -0
  39. package/dist/generators/node/eslint/generated/index.js.map +1 -0
  40. package/dist/generators/node/eslint/generated/template-paths.d.ts +7 -0
  41. package/dist/generators/node/eslint/generated/template-paths.d.ts.map +1 -0
  42. package/dist/generators/node/eslint/generated/template-paths.js +6 -0
  43. package/dist/generators/node/eslint/generated/template-paths.js.map +1 -0
  44. package/dist/generators/node/eslint/generated/typed-templates.d.ts +9 -0
  45. package/dist/generators/node/eslint/generated/typed-templates.d.ts.map +1 -0
  46. package/dist/generators/node/eslint/generated/typed-templates.js +22 -0
  47. package/dist/generators/node/eslint/generated/typed-templates.js.map +1 -0
  48. package/dist/generators/node/eslint/index.d.ts +2 -0
  49. package/dist/generators/node/eslint/index.d.ts.map +1 -0
  50. package/dist/generators/node/eslint/index.js +2 -0
  51. package/dist/generators/node/eslint/index.js.map +1 -0
  52. package/dist/generators/node/index.d.ts +7 -7
  53. package/dist/generators/node/index.d.ts.map +1 -1
  54. package/dist/generators/node/index.js +7 -7
  55. package/dist/generators/node/index.js.map +1 -1
  56. package/dist/generators/node/node/index.d.ts +2 -0
  57. package/dist/generators/node/node/index.d.ts.map +1 -0
  58. package/dist/generators/node/node/index.js +2 -0
  59. package/dist/generators/node/node/index.js.map +1 -0
  60. package/dist/generators/node/node/node.generator.d.ts +7 -3
  61. package/dist/generators/node/node/node.generator.d.ts.map +1 -1
  62. package/dist/generators/node/node/node.generator.js +25 -8
  63. package/dist/generators/node/node/node.generator.js.map +1 -1
  64. package/dist/generators/node/node-git-ignore/index.d.ts +2 -0
  65. package/dist/generators/node/node-git-ignore/index.d.ts.map +1 -0
  66. package/dist/generators/node/node-git-ignore/index.js +2 -0
  67. package/dist/generators/node/node-git-ignore/index.js.map +1 -0
  68. package/dist/generators/node/node-git-ignore/node-git-ignore.generator.js +2 -2
  69. package/dist/generators/node/prettier/index.d.ts +2 -0
  70. package/dist/generators/node/prettier/index.d.ts.map +1 -0
  71. package/dist/generators/node/prettier/index.js +2 -0
  72. package/dist/generators/node/prettier/index.js.map +1 -0
  73. package/dist/generators/node/prettier/prettier.generator.d.ts +1 -0
  74. package/dist/generators/node/prettier/prettier.generator.d.ts.map +1 -1
  75. package/dist/generators/node/prettier/prettier.generator.js +6 -3
  76. package/dist/generators/node/prettier/prettier.generator.js.map +1 -1
  77. package/dist/generators/node/ts-utils/generated/index.d.ts +31 -0
  78. package/dist/generators/node/ts-utils/generated/index.d.ts.map +1 -0
  79. package/dist/generators/node/ts-utils/generated/index.js +9 -0
  80. package/dist/generators/node/ts-utils/generated/index.js.map +1 -0
  81. package/dist/generators/node/ts-utils/generated/template-paths.d.ts +15 -0
  82. package/dist/generators/node/ts-utils/generated/template-paths.d.ts.map +1 -0
  83. package/dist/generators/node/ts-utils/generated/template-paths.js +25 -0
  84. package/dist/generators/node/ts-utils/generated/template-paths.js.map +1 -0
  85. package/dist/generators/node/ts-utils/generated/{ts-import-maps.d.ts → ts-import-providers.d.ts} +15 -2
  86. package/dist/generators/node/ts-utils/generated/ts-import-providers.d.ts.map +1 -0
  87. package/dist/generators/node/ts-utils/generated/ts-import-providers.js +33 -0
  88. package/dist/generators/node/ts-utils/generated/ts-import-providers.js.map +1 -0
  89. package/dist/generators/node/ts-utils/generated/typed-templates.d.ts +7 -0
  90. package/dist/generators/node/ts-utils/generated/typed-templates.d.ts.map +1 -0
  91. package/dist/generators/node/ts-utils/generated/typed-templates.js +49 -0
  92. package/dist/generators/node/ts-utils/generated/typed-templates.js.map +1 -0
  93. package/dist/generators/node/ts-utils/index.d.ts +4 -0
  94. package/dist/generators/node/ts-utils/index.d.ts.map +1 -0
  95. package/dist/generators/node/ts-utils/index.js +3 -0
  96. package/dist/generators/node/ts-utils/index.js.map +1 -0
  97. package/dist/generators/node/ts-utils/ts-utils.generator.d.ts +10 -3
  98. package/dist/generators/node/ts-utils/ts-utils.generator.d.ts.map +1 -1
  99. package/dist/generators/node/ts-utils/ts-utils.generator.js +9 -22
  100. package/dist/generators/node/ts-utils/ts-utils.generator.js.map +1 -1
  101. package/dist/generators/node/typescript/index.d.ts +2 -0
  102. package/dist/generators/node/typescript/index.d.ts.map +1 -0
  103. package/dist/generators/node/typescript/index.js +2 -0
  104. package/dist/generators/node/typescript/index.js.map +1 -0
  105. package/dist/generators/node/typescript/typescript.generator.d.ts +14 -8
  106. package/dist/generators/node/typescript/typescript.generator.d.ts.map +1 -1
  107. package/dist/generators/node/typescript/typescript.generator.js +19 -18
  108. package/dist/generators/node/typescript/typescript.generator.js.map +1 -1
  109. package/dist/generators/node/vitest/generated/index.d.ts +14 -0
  110. package/dist/generators/node/vitest/generated/index.d.ts.map +1 -0
  111. package/dist/generators/node/vitest/generated/index.js +7 -0
  112. package/dist/generators/node/vitest/generated/index.js.map +1 -0
  113. package/dist/generators/node/vitest/generated/template-paths.d.ts +8 -0
  114. package/dist/generators/node/vitest/generated/template-paths.d.ts.map +1 -0
  115. package/dist/generators/node/vitest/generated/template-paths.js +6 -0
  116. package/dist/generators/node/vitest/generated/template-paths.js.map +1 -0
  117. package/dist/generators/node/vitest/generated/typed-templates.d.ts +9 -0
  118. package/dist/generators/node/vitest/generated/typed-templates.d.ts.map +1 -0
  119. package/dist/generators/node/vitest/generated/typed-templates.js +26 -0
  120. package/dist/generators/node/vitest/generated/typed-templates.js.map +1 -0
  121. package/dist/generators/node/vitest/index.d.ts +2 -0
  122. package/dist/generators/node/vitest/index.d.ts.map +1 -0
  123. package/dist/generators/node/vitest/index.js +2 -0
  124. package/dist/generators/node/vitest/index.js.map +1 -0
  125. package/dist/generators/node/vitest/vitest.generator.d.ts +8 -1
  126. package/dist/generators/node/vitest/vitest.generator.d.ts.map +1 -1
  127. package/dist/generators/node/vitest/vitest.generator.js +36 -12
  128. package/dist/generators/node/vitest/vitest.generator.js.map +1 -1
  129. package/dist/providers/project.d.ts +14 -3
  130. package/dist/providers/project.d.ts.map +1 -1
  131. package/dist/providers/project.js +1 -1
  132. package/dist/providers/project.js.map +1 -1
  133. package/dist/providers/scopes.d.ts +1 -1
  134. package/dist/providers/scopes.js +1 -1
  135. package/dist/renderers/extractor/index.d.ts +3 -0
  136. package/dist/renderers/extractor/index.d.ts.map +1 -0
  137. package/dist/renderers/extractor/index.js +3 -0
  138. package/dist/renderers/extractor/index.js.map +1 -0
  139. package/dist/renderers/extractor/plugins/barrel-export.d.ts +17 -0
  140. package/dist/renderers/extractor/plugins/barrel-export.d.ts.map +1 -0
  141. package/dist/renderers/extractor/plugins/barrel-export.js +248 -0
  142. package/dist/renderers/extractor/plugins/barrel-export.js.map +1 -0
  143. package/dist/renderers/extractor/plugins/index.d.ts +3 -0
  144. package/dist/renderers/extractor/plugins/index.d.ts.map +1 -0
  145. package/dist/renderers/extractor/plugins/index.js +3 -0
  146. package/dist/renderers/extractor/plugins/index.js.map +1 -0
  147. package/dist/renderers/extractor/plugins/template-paths/index.d.ts +2 -0
  148. package/dist/renderers/extractor/plugins/template-paths/index.d.ts.map +1 -0
  149. package/dist/renderers/extractor/plugins/template-paths/index.js +2 -0
  150. package/dist/renderers/extractor/plugins/template-paths/index.js.map +1 -0
  151. package/dist/renderers/extractor/plugins/template-paths/paths-file.d.ts +16 -0
  152. package/dist/renderers/extractor/plugins/template-paths/paths-file.d.ts.map +1 -0
  153. package/dist/renderers/extractor/plugins/template-paths/paths-file.js +156 -0
  154. package/dist/renderers/extractor/plugins/template-paths/paths-file.js.map +1 -0
  155. package/dist/renderers/extractor/plugins/template-paths/template-paths.plugin.d.ts +36 -0
  156. package/dist/renderers/extractor/plugins/template-paths/template-paths.plugin.d.ts.map +1 -0
  157. package/dist/renderers/extractor/plugins/template-paths/template-paths.plugin.js +137 -0
  158. package/dist/renderers/extractor/plugins/template-paths/template-paths.plugin.js.map +1 -0
  159. package/dist/renderers/extractor/plugins/typed-templates-file.d.ts +28 -0
  160. package/dist/renderers/extractor/plugins/typed-templates-file.d.ts.map +1 -0
  161. package/dist/renderers/extractor/plugins/typed-templates-file.js +67 -0
  162. package/dist/renderers/extractor/plugins/typed-templates-file.js.map +1 -0
  163. package/dist/renderers/extractor/utils/deduplicate-templates.d.ts +9 -0
  164. package/dist/renderers/extractor/utils/deduplicate-templates.d.ts.map +1 -0
  165. package/dist/renderers/extractor/utils/deduplicate-templates.js +28 -0
  166. package/dist/renderers/extractor/utils/deduplicate-templates.js.map +1 -0
  167. package/dist/renderers/extractor/utils/generated-template-file-names.d.ts +29 -0
  168. package/dist/renderers/extractor/utils/generated-template-file-names.d.ts.map +1 -0
  169. package/dist/renderers/extractor/utils/generated-template-file-names.js +38 -0
  170. package/dist/renderers/extractor/utils/generated-template-file-names.js.map +1 -0
  171. package/dist/renderers/extractor/utils/index.d.ts +3 -0
  172. package/dist/renderers/extractor/utils/index.d.ts.map +1 -0
  173. package/dist/renderers/extractor/utils/index.js +3 -0
  174. package/dist/renderers/extractor/utils/index.js.map +1 -0
  175. package/dist/renderers/extractor/utils/package-path-specifier.d.ts +10 -0
  176. package/dist/renderers/extractor/utils/package-path-specifier.d.ts.map +1 -0
  177. package/dist/renderers/extractor/utils/package-path-specifier.js +36 -0
  178. package/dist/renderers/extractor/utils/package-path-specifier.js.map +1 -0
  179. package/dist/renderers/extractors.d.ts +5 -0
  180. package/dist/renderers/extractors.d.ts.map +1 -0
  181. package/dist/renderers/extractors.js +5 -0
  182. package/dist/renderers/extractors.js.map +1 -0
  183. package/dist/renderers/index.d.ts +2 -0
  184. package/dist/renderers/index.d.ts.map +1 -1
  185. package/dist/renderers/index.js +2 -0
  186. package/dist/renderers/index.js.map +1 -1
  187. package/dist/renderers/raw/index.d.ts +3 -0
  188. package/dist/renderers/raw/index.d.ts.map +1 -0
  189. package/dist/renderers/raw/index.js +3 -0
  190. package/dist/renderers/raw/index.js.map +1 -0
  191. package/dist/renderers/raw/raw-template-file-extractor.d.ts +164 -0
  192. package/dist/renderers/raw/raw-template-file-extractor.d.ts.map +1 -0
  193. package/dist/renderers/raw/raw-template-file-extractor.js +79 -0
  194. package/dist/renderers/raw/raw-template-file-extractor.js.map +1 -0
  195. package/dist/renderers/raw/render-raw-template-action.d.ts +15 -0
  196. package/dist/renderers/raw/render-raw-template-action.d.ts.map +1 -0
  197. package/dist/renderers/raw/render-raw-template-action.js +39 -0
  198. package/dist/renderers/raw/render-raw-template-action.js.map +1 -0
  199. package/dist/renderers/raw/types.d.ts +178 -0
  200. package/dist/renderers/raw/types.d.ts.map +1 -0
  201. package/dist/renderers/raw/types.js +31 -0
  202. package/dist/renderers/raw/types.js.map +1 -0
  203. package/dist/renderers/schemas/template-file-options.d.ts +39 -0
  204. package/dist/renderers/schemas/template-file-options.d.ts.map +1 -0
  205. package/dist/renderers/schemas/template-file-options.js +29 -0
  206. package/dist/renderers/schemas/template-file-options.js.map +1 -0
  207. package/dist/renderers/text/index.d.ts +4 -0
  208. package/dist/renderers/text/index.d.ts.map +1 -0
  209. package/dist/renderers/text/index.js +4 -0
  210. package/dist/renderers/text/index.js.map +1 -0
  211. package/dist/renderers/text/render-text-template-file-action.d.ts +16 -0
  212. package/dist/renderers/text/render-text-template-file-action.d.ts.map +1 -0
  213. package/dist/renderers/text/render-text-template-file-action.js +86 -0
  214. package/dist/renderers/text/render-text-template-file-action.js.map +1 -0
  215. package/dist/renderers/text/render-text-template-group-action.d.ts +23 -0
  216. package/dist/renderers/text/render-text-template-group-action.d.ts.map +1 -0
  217. package/dist/renderers/text/render-text-template-group-action.js +25 -0
  218. package/dist/renderers/text/render-text-template-group-action.js.map +1 -0
  219. package/dist/renderers/text/render-text-typed-templates.d.ts +9 -0
  220. package/dist/renderers/text/render-text-typed-templates.d.ts.map +1 -0
  221. package/dist/renderers/text/render-text-typed-templates.js +50 -0
  222. package/dist/renderers/text/render-text-typed-templates.js.map +1 -0
  223. package/dist/renderers/text/text-template-file-extractor.d.ts +215 -0
  224. package/dist/renderers/text/text-template-file-extractor.d.ts.map +1 -0
  225. package/dist/renderers/text/text-template-file-extractor.js +76 -0
  226. package/dist/renderers/text/text-template-file-extractor.js.map +1 -0
  227. package/dist/renderers/text/types.d.ts +281 -0
  228. package/dist/renderers/text/types.d.ts.map +1 -0
  229. package/dist/renderers/text/types.js +56 -0
  230. package/dist/renderers/text/types.js.map +1 -0
  231. package/dist/renderers/text/utils.d.ts +27 -0
  232. package/dist/renderers/text/utils.d.ts.map +1 -0
  233. package/dist/renderers/text/utils.js +72 -0
  234. package/dist/renderers/text/utils.js.map +1 -0
  235. package/dist/renderers/typescript/actions/render-ts-template-file-action.js +10 -8
  236. package/dist/renderers/typescript/actions/render-ts-template-file-action.js.map +1 -1
  237. package/dist/renderers/typescript/actions/render-ts-template-group-action.d.ts +12 -26
  238. package/dist/renderers/typescript/actions/render-ts-template-group-action.d.ts.map +1 -1
  239. package/dist/renderers/typescript/actions/render-ts-template-group-action.js +8 -17
  240. package/dist/renderers/typescript/actions/render-ts-template-group-action.js.map +1 -1
  241. package/dist/renderers/typescript/extractor/build-external-import-providers-map.d.ts +16 -0
  242. package/dist/renderers/typescript/extractor/build-external-import-providers-map.d.ts.map +1 -0
  243. package/dist/renderers/typescript/extractor/build-external-import-providers-map.js +33 -0
  244. package/dist/renderers/typescript/extractor/build-external-import-providers-map.js.map +1 -0
  245. package/dist/renderers/typescript/extractor/build-ts-project-export-map.d.ts +49 -0
  246. package/dist/renderers/typescript/extractor/build-ts-project-export-map.d.ts.map +1 -0
  247. package/dist/renderers/typescript/extractor/build-ts-project-export-map.js +73 -0
  248. package/dist/renderers/typescript/extractor/build-ts-project-export-map.js.map +1 -0
  249. package/dist/renderers/typescript/extractor/default-import-providers.d.ts +30 -0
  250. package/dist/renderers/typescript/extractor/default-import-providers.d.ts.map +1 -0
  251. package/dist/renderers/typescript/extractor/default-import-providers.js +26 -0
  252. package/dist/renderers/typescript/extractor/default-import-providers.js.map +1 -0
  253. package/dist/renderers/typescript/extractor/extract-ts-template-variables.d.ts +2 -2
  254. package/dist/renderers/typescript/extractor/extract-ts-template-variables.d.ts.map +1 -1
  255. package/dist/renderers/typescript/extractor/extract-ts-template-variables.js +5 -0
  256. package/dist/renderers/typescript/extractor/extract-ts-template-variables.js.map +1 -1
  257. package/dist/renderers/typescript/extractor/get-resolver-factory.d.ts +8 -0
  258. package/dist/renderers/typescript/extractor/get-resolver-factory.d.ts.map +1 -0
  259. package/dist/renderers/typescript/extractor/get-resolver-factory.js +29 -0
  260. package/dist/renderers/typescript/extractor/get-resolver-factory.js.map +1 -0
  261. package/dist/renderers/typescript/extractor/organize-ts-template-imports.d.ts +17 -6
  262. package/dist/renderers/typescript/extractor/organize-ts-template-imports.d.ts.map +1 -1
  263. package/dist/renderers/typescript/extractor/organize-ts-template-imports.js +31 -14
  264. package/dist/renderers/typescript/extractor/organize-ts-template-imports.js.map +1 -1
  265. package/dist/renderers/typescript/extractor/render-ts-import-providers.d.ts +27 -0
  266. package/dist/renderers/typescript/extractor/render-ts-import-providers.d.ts.map +1 -0
  267. package/dist/renderers/typescript/extractor/render-ts-import-providers.js +194 -0
  268. package/dist/renderers/typescript/extractor/render-ts-import-providers.js.map +1 -0
  269. package/dist/renderers/typescript/extractor/render-ts-template-file.d.ts +11 -0
  270. package/dist/renderers/typescript/extractor/render-ts-template-file.d.ts.map +1 -0
  271. package/dist/renderers/typescript/extractor/render-ts-template-file.js +26 -0
  272. package/dist/renderers/typescript/extractor/render-ts-template-file.js.map +1 -0
  273. package/dist/renderers/typescript/extractor/render-ts-typed-templates.d.ts +9 -0
  274. package/dist/renderers/typescript/extractor/render-ts-typed-templates.d.ts.map +1 -0
  275. package/dist/renderers/typescript/extractor/render-ts-typed-templates.js +56 -0
  276. package/dist/renderers/typescript/extractor/render-ts-typed-templates.js.map +1 -0
  277. package/dist/renderers/typescript/extractor/ts-extractor-config.schema.d.ts +38 -0
  278. package/dist/renderers/typescript/extractor/ts-extractor-config.schema.d.ts.map +1 -0
  279. package/dist/renderers/typescript/extractor/ts-extractor-config.schema.js +30 -0
  280. package/dist/renderers/typescript/extractor/ts-extractor-config.schema.js.map +1 -0
  281. package/dist/renderers/typescript/extractor/ts-import-provider-config.schema.d.ts +45 -0
  282. package/dist/renderers/typescript/extractor/ts-import-provider-config.schema.d.ts.map +1 -0
  283. package/dist/renderers/typescript/extractor/ts-import-provider-config.schema.js +35 -0
  284. package/dist/renderers/typescript/extractor/ts-import-provider-config.schema.js.map +1 -0
  285. package/dist/renderers/typescript/extractor/ts-template-file-extractor.d.ts +257 -161
  286. package/dist/renderers/typescript/extractor/ts-template-file-extractor.d.ts.map +1 -1
  287. package/dist/renderers/typescript/extractor/ts-template-file-extractor.js +109 -268
  288. package/dist/renderers/typescript/extractor/ts-template-file-extractor.js.map +1 -1
  289. package/dist/renderers/typescript/extractor/utils/create-placeholder-module-specifier.d.ts +9 -0
  290. package/dist/renderers/typescript/extractor/utils/create-placeholder-module-specifier.d.ts.map +1 -0
  291. package/dist/renderers/typescript/extractor/utils/create-placeholder-module-specifier.js +11 -0
  292. package/dist/renderers/typescript/extractor/utils/create-placeholder-module-specifier.js.map +1 -0
  293. package/dist/renderers/typescript/import-maps/ts-import-map.js +1 -1
  294. package/dist/renderers/typescript/import-maps/ts-import-map.js.map +1 -1
  295. package/dist/renderers/typescript/import-maps/types.d.ts +4 -2
  296. package/dist/renderers/typescript/import-maps/types.d.ts.map +1 -1
  297. package/dist/renderers/typescript/imports/normalize-module-specifier.d.ts +4 -4
  298. package/dist/renderers/typescript/imports/normalize-module-specifier.d.ts.map +1 -1
  299. package/dist/renderers/typescript/imports/normalize-module-specifier.js +20 -20
  300. package/dist/renderers/typescript/imports/normalize-module-specifier.js.map +1 -1
  301. package/dist/renderers/typescript/imports/ts-morph-operations.d.ts +1 -1
  302. package/dist/renderers/typescript/imports/ts-morph-operations.d.ts.map +1 -1
  303. package/dist/renderers/typescript/imports/ts-morph-operations.js +5 -2
  304. package/dist/renderers/typescript/imports/ts-morph-operations.js.map +1 -1
  305. package/dist/renderers/typescript/imports/types.d.ts +1 -1
  306. package/dist/renderers/typescript/imports/types.d.ts.map +1 -1
  307. package/dist/renderers/typescript/index.d.ts +0 -1
  308. package/dist/renderers/typescript/index.d.ts.map +1 -1
  309. package/dist/renderers/typescript/index.js +0 -1
  310. package/dist/renderers/typescript/index.js.map +1 -1
  311. package/dist/renderers/typescript/renderers/template.d.ts.map +1 -1
  312. package/dist/renderers/typescript/renderers/template.js +10 -3
  313. package/dist/renderers/typescript/renderers/template.js.map +1 -1
  314. package/dist/renderers/typescript/templates/types.d.ts +350 -35
  315. package/dist/renderers/typescript/templates/types.d.ts.map +1 -1
  316. package/dist/renderers/typescript/templates/types.js +66 -20
  317. package/dist/renderers/typescript/templates/types.js.map +1 -1
  318. package/dist/renderers/typescript/utils/ts-code-utils.d.ts +1 -0
  319. package/dist/renderers/typescript/utils/ts-code-utils.d.ts.map +1 -1
  320. package/dist/renderers/typescript/utils/ts-code-utils.js +1 -0
  321. package/dist/renderers/typescript/utils/ts-code-utils.js.map +1 -1
  322. package/dist/utils/index.d.ts +1 -0
  323. package/dist/utils/index.d.ts.map +1 -1
  324. package/dist/utils/index.js +1 -0
  325. package/dist/utils/index.js.map +1 -1
  326. package/dist/utils/ts-paths.d.ts +9 -0
  327. package/dist/utils/ts-paths.d.ts.map +1 -0
  328. package/dist/utils/ts-paths.js +11 -0
  329. package/dist/utils/ts-paths.js.map +1 -0
  330. package/package.json +17 -5
  331. package/dist/generators/node/eslint/generated/ts-templates.d.ts +0 -9
  332. package/dist/generators/node/eslint/generated/ts-templates.d.ts.map +0 -1
  333. package/dist/generators/node/eslint/generated/ts-templates.js +0 -14
  334. package/dist/generators/node/eslint/generated/ts-templates.js.map +0 -1
  335. package/dist/generators/node/ts-utils/generated/ts-import-maps.d.ts.map +0 -1
  336. package/dist/generators/node/ts-utils/generated/ts-import-maps.js +0 -22
  337. package/dist/generators/node/ts-utils/generated/ts-import-maps.js.map +0 -1
  338. package/dist/generators/node/ts-utils/generated/ts-templates.d.ts +0 -7
  339. package/dist/generators/node/ts-utils/generated/ts-templates.d.ts.map +0 -1
  340. package/dist/generators/node/ts-utils/generated/ts-templates.js +0 -32
  341. package/dist/generators/node/ts-utils/generated/ts-templates.js.map +0 -1
  342. package/dist/generators/node/vitest/generated/ts-templates.d.ts +0 -9
  343. package/dist/generators/node/vitest/generated/ts-templates.d.ts.map +0 -1
  344. package/dist/generators/node/vitest/generated/ts-templates.js +0 -15
  345. package/dist/generators/node/vitest/generated/ts-templates.js.map +0 -1
  346. package/dist/renderers/typescript/extractor/templates/imports-file.d.ts +0 -2
  347. package/dist/renderers/typescript/extractor/templates/imports-file.d.ts.map +0 -1
  348. package/dist/renderers/typescript/extractor/templates/imports-file.js +0 -35
  349. package/dist/renderers/typescript/extractor/templates/imports-file.js.map +0 -1
  350. package/dist/renderers/typescript/extractor/write-ts-project-exports.d.ts +0 -96
  351. package/dist/renderers/typescript/extractor/write-ts-project-exports.d.ts.map +0 -1
  352. package/dist/renderers/typescript/extractor/write-ts-project-exports.js +0 -139
  353. package/dist/renderers/typescript/extractor/write-ts-project-exports.js.map +0 -1
  354. /package/dist/generators/node/ts-utils/templates/{arrays.ts → src/utils/arrays.ts} +0 -0
  355. /package/dist/generators/node/ts-utils/templates/{normalize-types.ts → src/utils/normalize-types.ts} +0 -0
  356. /package/dist/generators/node/ts-utils/templates/{nulls.ts → src/utils/nulls.ts} +0 -0
  357. /package/dist/generators/node/ts-utils/templates/{string.ts → src/utils/string.ts} +0 -0
  358. /package/dist/generators/node/vitest/templates/{global-setup.ts → src/tests/scripts/global-setup.ts} +0 -0
@@ -0,0 +1,281 @@
1
+ import type { TemplateFileBase } from '@baseplate-dev/sync';
2
+ import { z } from 'zod';
3
+ import type { TemplateFileOptions } from '../schemas/template-file-options.js';
4
+ export declare const TEXT_TEMPLATE_TYPE = "text";
5
+ declare const textTemplateFileVariableSchema: z.ZodObject<{
6
+ description: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ description?: string | undefined;
9
+ }, {
10
+ description?: string | undefined;
11
+ }>;
12
+ export declare const textTemplateGeneratorTemplateMetadataSchema: z.ZodObject<z.objectUtil.extendShape<{
13
+ name: z.ZodString;
14
+ type: z.ZodString;
15
+ }, {
16
+ /**
17
+ * The options for the template file
18
+ */
19
+ fileOptions: z.ZodDefault<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
20
+ kind: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"singleton">>>;
21
+ generatorTemplatePath: z.ZodOptional<z.ZodString>;
22
+ pathRootRelativePath: z.ZodOptional<z.ZodString>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ kind: "singleton";
25
+ generatorTemplatePath?: string | undefined;
26
+ pathRootRelativePath?: string | undefined;
27
+ }, {
28
+ kind?: "singleton" | undefined;
29
+ generatorTemplatePath?: string | undefined;
30
+ pathRootRelativePath?: string | undefined;
31
+ }>, z.ZodObject<{
32
+ kind: z.ZodLiteral<"instance">;
33
+ generatorTemplatePath: z.ZodString;
34
+ }, "strip", z.ZodTypeAny, {
35
+ kind: "instance";
36
+ generatorTemplatePath: string;
37
+ }, {
38
+ kind: "instance";
39
+ generatorTemplatePath: string;
40
+ }>]>>;
41
+ /**
42
+ * The path of the template relative to the closest file path root.
43
+ */
44
+ pathRootRelativePath: z.ZodOptional<z.ZodString>;
45
+ /**
46
+ * The group to assign the template to when generating the typed templates.
47
+ */
48
+ group: z.ZodOptional<z.ZodString>;
49
+ /**
50
+ * The variables for the template.
51
+ */
52
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
53
+ description: z.ZodOptional<z.ZodString>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ description?: string | undefined;
56
+ }, {
57
+ description?: string | undefined;
58
+ }>>>;
59
+ }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
60
+ name: z.ZodString;
61
+ type: z.ZodString;
62
+ }, {
63
+ /**
64
+ * The options for the template file
65
+ */
66
+ fileOptions: z.ZodDefault<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
67
+ kind: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"singleton">>>;
68
+ generatorTemplatePath: z.ZodOptional<z.ZodString>;
69
+ pathRootRelativePath: z.ZodOptional<z.ZodString>;
70
+ }, "strip", z.ZodTypeAny, {
71
+ kind: "singleton";
72
+ generatorTemplatePath?: string | undefined;
73
+ pathRootRelativePath?: string | undefined;
74
+ }, {
75
+ kind?: "singleton" | undefined;
76
+ generatorTemplatePath?: string | undefined;
77
+ pathRootRelativePath?: string | undefined;
78
+ }>, z.ZodObject<{
79
+ kind: z.ZodLiteral<"instance">;
80
+ generatorTemplatePath: z.ZodString;
81
+ }, "strip", z.ZodTypeAny, {
82
+ kind: "instance";
83
+ generatorTemplatePath: string;
84
+ }, {
85
+ kind: "instance";
86
+ generatorTemplatePath: string;
87
+ }>]>>;
88
+ /**
89
+ * The path of the template relative to the closest file path root.
90
+ */
91
+ pathRootRelativePath: z.ZodOptional<z.ZodString>;
92
+ /**
93
+ * The group to assign the template to when generating the typed templates.
94
+ */
95
+ group: z.ZodOptional<z.ZodString>;
96
+ /**
97
+ * The variables for the template.
98
+ */
99
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
100
+ description: z.ZodOptional<z.ZodString>;
101
+ }, "strip", z.ZodTypeAny, {
102
+ description?: string | undefined;
103
+ }, {
104
+ description?: string | undefined;
105
+ }>>>;
106
+ }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
107
+ name: z.ZodString;
108
+ type: z.ZodString;
109
+ }, {
110
+ /**
111
+ * The options for the template file
112
+ */
113
+ fileOptions: z.ZodDefault<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
114
+ kind: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"singleton">>>;
115
+ generatorTemplatePath: z.ZodOptional<z.ZodString>;
116
+ pathRootRelativePath: z.ZodOptional<z.ZodString>;
117
+ }, "strip", z.ZodTypeAny, {
118
+ kind: "singleton";
119
+ generatorTemplatePath?: string | undefined;
120
+ pathRootRelativePath?: string | undefined;
121
+ }, {
122
+ kind?: "singleton" | undefined;
123
+ generatorTemplatePath?: string | undefined;
124
+ pathRootRelativePath?: string | undefined;
125
+ }>, z.ZodObject<{
126
+ kind: z.ZodLiteral<"instance">;
127
+ generatorTemplatePath: z.ZodString;
128
+ }, "strip", z.ZodTypeAny, {
129
+ kind: "instance";
130
+ generatorTemplatePath: string;
131
+ }, {
132
+ kind: "instance";
133
+ generatorTemplatePath: string;
134
+ }>]>>;
135
+ /**
136
+ * The path of the template relative to the closest file path root.
137
+ */
138
+ pathRootRelativePath: z.ZodOptional<z.ZodString>;
139
+ /**
140
+ * The group to assign the template to when generating the typed templates.
141
+ */
142
+ group: z.ZodOptional<z.ZodString>;
143
+ /**
144
+ * The variables for the template.
145
+ */
146
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
147
+ description: z.ZodOptional<z.ZodString>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ description?: string | undefined;
150
+ }, {
151
+ description?: string | undefined;
152
+ }>>>;
153
+ }>, z.ZodTypeAny, "passthrough">>;
154
+ export declare const textTemplateOutputTemplateMetadataSchema: z.ZodObject<z.objectUtil.extendShape<{
155
+ name: z.ZodString;
156
+ type: z.ZodString;
157
+ generator: z.ZodString;
158
+ }, {
159
+ /**
160
+ * The type of the template (always `text`)
161
+ */
162
+ type: z.ZodLiteral<"text">;
163
+ /**
164
+ * The options for the template file
165
+ */
166
+ fileOptions: z.ZodDefault<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
167
+ kind: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"singleton">>>;
168
+ generatorTemplatePath: z.ZodOptional<z.ZodString>;
169
+ pathRootRelativePath: z.ZodOptional<z.ZodString>;
170
+ }, "strip", z.ZodTypeAny, {
171
+ kind: "singleton";
172
+ generatorTemplatePath?: string | undefined;
173
+ pathRootRelativePath?: string | undefined;
174
+ }, {
175
+ kind?: "singleton" | undefined;
176
+ generatorTemplatePath?: string | undefined;
177
+ pathRootRelativePath?: string | undefined;
178
+ }>, z.ZodObject<{
179
+ kind: z.ZodLiteral<"instance">;
180
+ generatorTemplatePath: z.ZodString;
181
+ }, "strip", z.ZodTypeAny, {
182
+ kind: "instance";
183
+ generatorTemplatePath: string;
184
+ }, {
185
+ kind: "instance";
186
+ generatorTemplatePath: string;
187
+ }>]>>;
188
+ /**
189
+ * The group to assign the template to when generating the typed templates.
190
+ */
191
+ group: z.ZodOptional<z.ZodString>;
192
+ /**
193
+ * The variables for the template with their values.
194
+ */
195
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<z.objectUtil.extendShape<{
196
+ description: z.ZodOptional<z.ZodString>;
197
+ }, {
198
+ value: z.ZodString;
199
+ }>, "strip", z.ZodTypeAny, {
200
+ value: string;
201
+ description?: string | undefined;
202
+ }, {
203
+ value: string;
204
+ description?: string | undefined;
205
+ }>>>;
206
+ }>, "strip", z.ZodTypeAny, {
207
+ type: "text";
208
+ name: string;
209
+ fileOptions: {
210
+ kind: "singleton";
211
+ generatorTemplatePath?: string | undefined;
212
+ pathRootRelativePath?: string | undefined;
213
+ } | {
214
+ kind: "instance";
215
+ generatorTemplatePath: string;
216
+ };
217
+ generator: string;
218
+ group?: string | undefined;
219
+ variables?: Record<string, {
220
+ value: string;
221
+ description?: string | undefined;
222
+ }> | undefined;
223
+ }, {
224
+ type: "text";
225
+ name: string;
226
+ generator: string;
227
+ fileOptions?: {
228
+ kind?: "singleton" | undefined;
229
+ generatorTemplatePath?: string | undefined;
230
+ pathRootRelativePath?: string | undefined;
231
+ } | {
232
+ kind: "instance";
233
+ generatorTemplatePath: string;
234
+ } | undefined;
235
+ group?: string | undefined;
236
+ variables?: Record<string, {
237
+ value: string;
238
+ description?: string | undefined;
239
+ }> | undefined;
240
+ }>;
241
+ /**
242
+ * Metadata for a text template file
243
+ */
244
+ export type TextTemplateOutputTemplateMetadata = z.infer<typeof textTemplateOutputTemplateMetadataSchema>;
245
+ /**
246
+ * A variable for a text template.
247
+ */
248
+ export type TextTemplateFileVariable = z.infer<typeof textTemplateFileVariableSchema>;
249
+ /**
250
+ * A variable for a text template with a value.
251
+ */
252
+ export type TextTemplateFileVariableWithValue = TextTemplateFileVariable & {
253
+ value: string;
254
+ };
255
+ /**
256
+ * A template for a text file with replacements.
257
+ */
258
+ export interface TextTemplateFile<T extends Record<string, TextTemplateFileVariable> = Record<never, TextTemplateFileVariable>> extends TemplateFileBase {
259
+ /**
260
+ * Variables to be replaced in the template
261
+ */
262
+ variables: T;
263
+ /**
264
+ * The options for the template file
265
+ */
266
+ fileOptions: TemplateFileOptions;
267
+ }
268
+ /**
269
+ * Create a text template file
270
+ */
271
+ export declare function createTextTemplateFile<T extends Record<string, TextTemplateFileVariable>>(template: TextTemplateFile<T>): TextTemplateFile<T>;
272
+ export type InferTextTemplateVariablesFromTemplate<T extends TextTemplateFile> = {
273
+ [K in keyof T['variables']]: string;
274
+ };
275
+ export type TextTemplateGroup = Record<string, TextTemplateFile>;
276
+ /**
277
+ * Generator template metadata for text templates
278
+ */
279
+ export type TextGeneratorTemplateMetadata = z.infer<typeof textTemplateGeneratorTemplateMetadataSchema>;
280
+ export {};
281
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/renderers/text/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAM5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI/E,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC,QAAA,MAAM,8BAA8B;;;;;;EAGlC,CAAC;AAEH,eAAO,MAAM,2CAA2C;UAXzB,EAAG,SAAS;UAE6B,EAAG,SAEzE;;IASE;;OAEG;;;;;;;;;;;;;;;;;;;;;;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;;;;;;;;UA3BwB,EAAG,SAAS;UAE6B,EAAG,SAEzE;;IASE;;OAEG;;;;;;;;;;;;;;;;;;;;;;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;;;;;;;;UA3BwB,EAAG,SAAS;UAE6B,EAAG,SAEzE;;IASE;;OAEG;;;;;;;;;;;;;;;;;;;;;;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;;;;;;;iCAEH,CAAC;AAEL,eAAO,MAAM,wCAAwC;UA/BpD,EAAG,SAAS;UAEH,EAAG,SAAS;eAEM,EAAI,SAAQ;;IA6BpC;;OAEG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;IAEH;;OAEG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUH,CAAC;AAEL;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,wCAAwC,CAChD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iCAAiC,GAAG,wBAAwB,GAAG;IACzE,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAC/B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,MAAM,CACzD,KAAK,EACL,wBAAwB,CACzB,CACD,SAAQ,gBAAgB;IACxB;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAClD,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAEpD;AAED,MAAM,MAAM,sCAAsC,CAAC,CAAC,SAAS,gBAAgB,IAC3E;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM;CACpC,CAAC;AAEJ,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CACjD,OAAO,2CAA2C,CACnD,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { templateConfigSchema, templateFileMetadataBaseSchema, } from '@baseplate-dev/sync';
2
+ import { z } from 'zod';
3
+ import { templateFileOptionsSchema } from '../schemas/template-file-options.js';
4
+ export const TEXT_TEMPLATE_TYPE = 'text';
5
+ const textTemplateFileVariableSchema = z.object({
6
+ // The description of the variable.
7
+ description: z.string().optional(),
8
+ });
9
+ export const textTemplateGeneratorTemplateMetadataSchema = templateConfigSchema.extend({
10
+ /**
11
+ * The options for the template file
12
+ */
13
+ fileOptions: templateFileOptionsSchema,
14
+ /**
15
+ * The path of the template relative to the closest file path root.
16
+ */
17
+ pathRootRelativePath: z.string().optional(),
18
+ /**
19
+ * The group to assign the template to when generating the typed templates.
20
+ */
21
+ group: z.string().optional(),
22
+ /**
23
+ * The variables for the template.
24
+ */
25
+ variables: z.record(z.string(), textTemplateFileVariableSchema).optional(),
26
+ });
27
+ export const textTemplateOutputTemplateMetadataSchema = templateFileMetadataBaseSchema.extend({
28
+ /**
29
+ * The type of the template (always `text`)
30
+ */
31
+ type: z.literal(TEXT_TEMPLATE_TYPE),
32
+ /**
33
+ * The options for the template file
34
+ */
35
+ fileOptions: templateFileOptionsSchema,
36
+ /**
37
+ * The group to assign the template to when generating the typed templates.
38
+ */
39
+ group: z.string().optional(),
40
+ /**
41
+ * The variables for the template with their values.
42
+ */
43
+ variables: z
44
+ .record(z.string(), textTemplateFileVariableSchema.extend({
45
+ // The value of the variable.
46
+ value: z.string(),
47
+ }))
48
+ .optional(),
49
+ });
50
+ /**
51
+ * Create a text template file
52
+ */
53
+ export function createTextTemplateFile(template) {
54
+ return template;
55
+ }
56
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/renderers/text/types.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,mCAAmC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2CAA2C,GACtD,oBAAoB,CAAC,MAAM,CAAC;IAC1B;;OAEG;IACH,WAAW,EAAE,yBAAyB;IACtC;;OAEG;IACH,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,8BAA8B,CAAC,CAAC,QAAQ,EAAE;CAC3E,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,wCAAwC,GACnD,8BAA8B,CAAC,MAAM,CAAC;IACpC;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACnC;;OAEG;IACH,WAAW,EAAE,yBAAyB;IACtC;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B;;OAEG;IACH,SAAS,EAAE,CAAC;SACT,MAAM,CACL,CAAC,CAAC,MAAM,EAAE,EACV,8BAA8B,CAAC,MAAM,CAAC;QACpC,6BAA6B;QAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC;AA0CL;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAEpC,QAA6B;IAC7B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { TextTemplateFileVariableWithValue } from './types.js';
2
+ /**
3
+ * Get the delimiters for a text template file.
4
+ * @param filename The filename of the text template file.
5
+ * @returns The delimiters for the text template file.
6
+ */
7
+ export declare function getTextTemplateDelimiters(filename: string): {
8
+ start: string;
9
+ end: string;
10
+ };
11
+ /**
12
+ * Get the regex for a text template variable. We check for non-alphanumeric characters around the variable name.
13
+ *
14
+ * @param value The value of the variable.
15
+ * @returns The regex for the text template variable.
16
+ */
17
+ export declare function getTextTemplateVariableRegExp(value: string): RegExp;
18
+ /**
19
+ * Extract template variables from content by replacing variable values with template placeholders.
20
+ *
21
+ * @param contents The content to process.
22
+ * @param variables The variables with their values to replace.
23
+ * @param filename The filename for delimiter detection.
24
+ * @returns The processed content with variables replaced by template placeholders.
25
+ */
26
+ export declare function extractTemplateVariables(contents: string, variables: Record<string, TextTemplateFileVariableWithValue> | undefined, filename: string): string;
27
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/renderers/text/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CA2BA;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iCAAiC,CAAC,GAAG,SAAS,EACxE,QAAQ,EAAE,MAAM,GACf,MAAM,CA6BR"}
@@ -0,0 +1,72 @@
1
+ import { escapeRegExp } from 'es-toolkit';
2
+ /**
3
+ * Get the delimiters for a text template file.
4
+ * @param filename The filename of the text template file.
5
+ * @returns The delimiters for the text template file.
6
+ */
7
+ export function getTextTemplateDelimiters(filename) {
8
+ if (filename.endsWith('.css')) {
9
+ return {
10
+ start: '/* ',
11
+ end: ' */',
12
+ };
13
+ }
14
+ // no delimiters for gql files
15
+ if (filename.endsWith('.gql')) {
16
+ return {
17
+ start: '',
18
+ end: '',
19
+ };
20
+ }
21
+ if (filename.endsWith('.yml') || filename.endsWith('.yaml')) {
22
+ return {
23
+ start: '${{',
24
+ end: '}}',
25
+ };
26
+ }
27
+ return {
28
+ start: '{{',
29
+ end: '}}',
30
+ };
31
+ }
32
+ /**
33
+ * Get the regex for a text template variable. We check for non-alphanumeric characters around the variable name.
34
+ *
35
+ * @param value The value of the variable.
36
+ * @returns The regex for the text template variable.
37
+ */
38
+ export function getTextTemplateVariableRegExp(value) {
39
+ return new RegExp(`(?<!\\w)${escapeRegExp(value)}(?!\\w)`, 'g');
40
+ }
41
+ /**
42
+ * Extract template variables from content by replacing variable values with template placeholders.
43
+ *
44
+ * @param contents The content to process.
45
+ * @param variables The variables with their values to replace.
46
+ * @param filename The filename for delimiter detection.
47
+ * @returns The processed content with variables replaced by template placeholders.
48
+ */
49
+ export function extractTemplateVariables(contents, variables, filename) {
50
+ if (!variables) {
51
+ return contents;
52
+ }
53
+ let templateContents = contents;
54
+ const { start, end } = getTextTemplateDelimiters(filename);
55
+ // Sort variables by descending length of their values to prevent overlapping replacements
56
+ const sortedVariables = Object.entries(variables).sort(([, a], [, b]) => {
57
+ const aValue = a.value;
58
+ const bValue = b.value;
59
+ return bValue.length - aValue.length;
60
+ });
61
+ for (const [key, variableWithValue] of sortedVariables) {
62
+ const { value } = variableWithValue;
63
+ const variableRegex = getTextTemplateVariableRegExp(value);
64
+ const newTemplateContents = templateContents.replaceAll(variableRegex, `${start}${key}${end}`);
65
+ if (newTemplateContents === templateContents) {
66
+ throw new Error(`Variable ${key} with value ${value} not found`);
67
+ }
68
+ templateContents = newTemplateContents;
69
+ }
70
+ return templateContents;
71
+ }
72
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/renderers/text/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IAIxD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,KAAK;SACX,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,EAAE;SACR,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,IAAI;SACV,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,IAAI;KACV,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,OAAO,IAAI,MAAM,CAAC,WAAW,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,SAAwE,EACxE,QAAgB;IAEhB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,gBAAgB,GAAG,QAAQ,CAAC;IAChC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAE3D,0FAA0F;IAC1F,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACtE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;QACvB,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,eAAe,EAAE,CAAC;QACvD,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC;QACpC,MAAM,aAAa,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,UAAU,CACrD,aAAa,EACb,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,EAAE,CACvB,CAAC;QACF,IAAI,mBAAmB,KAAK,gBAAgB,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,eAAe,KAAK,YAAY,CAAC,CAAC;QACnE,CAAC;QACD,gBAAgB,GAAG,mBAAmB,CAAC;IACzC,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { normalizePathToProjectPath, readTemplateFileSource, } from '@baseplate-dev/sync';
1
+ import { normalizePathToOutputPath, readTemplateFileSource, } from '@baseplate-dev/sync';
2
2
  import { differenceSet } from '@baseplate-dev/utils';
3
3
  import { renderTsCodeFileTemplate } from '../renderers/file.js';
4
4
  import { TS_TEMPLATE_TYPE } from '../templates/types.js';
@@ -6,7 +6,7 @@ export function renderTsTemplateFileAction({ template, id, destination, writeOpt
6
6
  return {
7
7
  execute: async (builder) => {
8
8
  const generatorInfo = providedGeneratorInfo ?? builder.generatorInfo;
9
- const templateContents = await readTemplateFileSource(generatorInfo.baseDirectory, template.source);
9
+ const templateContents = await readTemplateFileSource(template.source);
10
10
  const prefix = template.prefix ?? 'TPL_';
11
11
  const variableValues = variables ?? {};
12
12
  // make sure variables and template variables match keys
@@ -23,22 +23,24 @@ export function renderTsTemplateFileAction({ template, id, destination, writeOpt
23
23
  }
24
24
  const templateMetadata = {
25
25
  name: template.name,
26
- template: 'path' in template.source
27
- ? template.source.path
28
- : 'content-only-template',
29
26
  generator: generatorInfo.name,
30
27
  group: template.group,
31
28
  type: TS_TEMPLATE_TYPE,
32
29
  projectExports: Object.keys(template.projectExports ?? {}).length > 0
33
30
  ? template.projectExports
34
31
  : undefined,
32
+ fileOptions: template.fileOptions,
35
33
  };
34
+ if (template.fileOptions.kind === 'instance' && !id) {
35
+ throw new Error('Instance template must have an id');
36
+ }
37
+ const fileId = id ?? template.name;
36
38
  const shouldIncludeMetadata = builder.metadataOptions.includeTemplateMetadata &&
37
39
  builder.metadataOptions.shouldGenerateMetadata({
38
- fileId: id ?? template.name,
39
- filePath: normalizePathToProjectPath(destination),
40
+ fileId,
41
+ filePath: normalizePathToOutputPath(destination),
40
42
  generatorName: generatorInfo.name,
41
- hasManualId: !!id,
43
+ isInstance: template.fileOptions.kind === 'instance',
42
44
  });
43
45
  const renderedTemplate = renderTsCodeFileTemplate({
44
46
  templateContents,
@@ -1 +1 @@
1
- {"version":3,"file":"render-ts-template-file-action.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/actions/render-ts-template-file-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-ts-template-file-action.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/actions/render-ts-template-file-action.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,28 @@
1
- import { type BuilderAction, type WriteFileOptions } from '@baseplate-dev/sync';
1
+ import type { BuilderAction, WriteFileOptions } from '@baseplate-dev/sync';
2
2
  import type { RenderTsCodeFileTemplateOptions } from '../renderers/file.js';
3
- import type { InferImportMapProvidersFromProviderTypeMap, InferTsTemplateVariablesFromMap, TsTemplateFile, TsTemplateGroup } from '../templates/types.js';
3
+ import type { InferImportMapProvidersFromProviderTypeMap, InferTsTemplateVariablesFromMap, TsTemplateFile } from '../templates/types.js';
4
4
  import type { RenderTsTemplateFileActionInput } from './render-ts-template-file-action.js';
5
+ type TsTemplateGroup = Record<string, TsTemplateFile>;
5
6
  type HasVariables<T extends TsTemplateFile> = keyof InferTsTemplateVariablesFromMap<T['variables']> extends never ? false : true;
6
7
  type InferTsTemplateVariablesFromTemplateGroup<T extends TsTemplateGroup> = {
7
- [K in keyof T['templates'] as HasVariables<T['templates'][K]['template']> extends true ? K : never]: InferTsTemplateVariablesFromMap<T['templates'][K]['template']['variables']>;
8
+ [K in keyof T as HasVariables<T[K]> extends true ? K : never]: InferTsTemplateVariablesFromMap<T[K]['variables']>;
8
9
  };
9
10
  type IntersectionOfValues<T> = UnionToIntersection<T[keyof T]>;
10
11
  type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
11
- /**
12
- * Typescript hack to force IDEs to show raw object
13
- * type without additional typing that we have added
14
- */
15
- type NormalizeTypes<T> = T extends Record<string, unknown> ? {
16
- [K in keyof T]: T[K];
17
- } : T;
18
- type InferImportMapProvidersFromTemplateGroup<T extends TsTemplateGroup> = NormalizeTypes<IntersectionOfValues<{
19
- [K in keyof T['templates']]: InferImportMapProvidersFromProviderTypeMap<T['templates'][K]['template']['importMapProviders']>;
20
- }>>;
12
+ type InferImportMapProvidersFromTemplateGroup<T extends TsTemplateGroup> = IntersectionOfValues<{
13
+ [K in keyof T]: InferImportMapProvidersFromProviderTypeMap<T[K]['importMapProviders']>;
14
+ }>;
21
15
  interface RenderTsTemplateGroupActionInputBase<T extends TsTemplateGroup> {
22
16
  group: T;
23
- baseDirectory: string;
17
+ paths: {
18
+ [K in keyof T]: string;
19
+ };
24
20
  writeOptions?: {
25
- [K in keyof T['templates']]?: Omit<WriteFileOptions, 'templateMetadata'>;
21
+ [K in keyof T]?: Omit<WriteFileOptions, 'templateMetadata'>;
26
22
  };
27
23
  renderOptions?: Omit<RenderTsCodeFileTemplateOptions, 'resolveModule'> & {
28
24
  resolveModule?: (moduleSpecifier: string, sourceDirectory: string) => string;
29
25
  };
30
- /**
31
- * Called when a template file is rendered
32
- * @param canonicalPath - The canonical path to the template file
33
- */
34
- onRenderTemplateFile?: (canonicalPath: string) => void;
35
26
  }
36
27
  export type RenderTsTemplateGroupActionInput<T extends TsTemplateGroup = TsTemplateGroup> = RenderTsTemplateGroupActionInputBase<T> & (keyof InferTsTemplateVariablesFromTemplateGroup<T> extends never ? Partial<{
37
28
  variables: InferTsTemplateVariablesFromTemplateGroup<T>;
@@ -47,12 +38,7 @@ export type RenderTsTemplateGroupActionInput<T extends TsTemplateGroup = TsTempl
47
38
  * @param input - The input for the template group
48
39
  * @returns The template file inputs
49
40
  */
50
- export declare function extractTsTemplateFileInputsFromTemplateGroup<T extends TsTemplateGroup = TsTemplateGroup>({ group, baseDirectory, variables, importMapProviders, writeOptions, renderOptions, }: RenderTsTemplateGroupActionInput<T>): RenderTsTemplateFileActionInput[];
51
- /**
52
- * Renders a template group to a builder action
53
- * @param input - The input for the template group
54
- * @returns The builder action
55
- */
41
+ export declare function extractTsTemplateFileInputsFromTemplateGroup<T extends TsTemplateGroup = TsTemplateGroup>({ group, paths, variables, importMapProviders, writeOptions, renderOptions, }: RenderTsTemplateGroupActionInput<T>): RenderTsTemplateFileActionInput[];
56
42
  export declare function renderTsTemplateGroupAction<T extends TsTemplateGroup = TsTemplateGroup>(input: RenderTsTemplateGroupActionInput<T>): BuilderAction;
57
43
  export {};
58
44
  //# sourceMappingURL=render-ts-template-group-action.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-ts-template-group-action.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/actions/render-ts-template-group-action.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EACV,0CAA0C,EAC1C,+BAA+B,EAC/B,cAAc,EACd,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AAI3F,KAAK,YAAY,CAAC,CAAC,SAAS,cAAc,IACxC,MAAM,+BAA+B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,KAAK,GAC/D,KAAK,GACL,IAAI,CAAC;AAEX,KAAK,yCAAyC,CAAC,CAAC,SAAS,eAAe,IAAI;KACzE,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,YAAY,CACxC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAC9B,SAAS,IAAI,GACV,CAAC,GACD,KAAK,GAAG,+BAA+B,CACzC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAC3C;CACF,CAAC;AAEF,KAAK,oBAAoB,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAG/D,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAC5B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAC3C,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAC1B,CAAC,GACD,KAAK,CAAC;AAEV;;;GAGG;AACH,KAAK,cAAc,CAAC,CAAC,IACnB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GACD,CAAC,CAAC;AAER,KAAK,wCAAwC,CAAC,CAAC,SAAS,eAAe,IACrE,cAAc,CACZ,oBAAoB,CAAC;KAClB,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,0CAA0C,CACrE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,CACpD;CACF,CAAC,CACH,CAAC;AAEJ,UAAU,oCAAoC,CAAC,CAAC,SAAS,eAAe;IACtE,KAAK,EAAE,CAAC,CAAC;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE;SACZ,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;KACzE,CAAC;IACF,aAAa,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,eAAe,CAAC,GAAG;QACvE,aAAa,CAAC,EAAE,CACd,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,KACpB,MAAM,CAAC;KACb,CAAC;IACF;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,MAAM,gCAAgC,CAC1C,CAAC,SAAS,eAAe,GAAG,eAAe,IACzC,oCAAoC,CAAC,CAAC,CAAC,GACzC,CAAC,MAAM,yCAAyC,CAAC,CAAC,CAAC,SAAS,KAAK,GAC7D,OAAO,CAAC;IAAE,SAAS,EAAE,yCAAyC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,GACpE;IAAE,SAAS,EAAE,yCAAyC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,GAChE,CAAC,MAAM,wCAAwC,CAAC,CAAC,CAAC,SAAS,KAAK,GAC5D;IACE,kBAAkB,CAAC,EAAE,KAAK,CAAC;CAC5B,GACD;IAAE,kBAAkB,EAAE,wCAAwC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,4CAA4C,CAC1D,CAAC,SAAS,eAAe,GAAG,eAAe,EAC3C,EACA,KAAK,EACL,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,aAAa,GACd,EAAE,gCAAgC,CAAC,CAAC,CAAC,GAAG,+BAA+B,EAAE,CAkDzE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,SAAS,eAAe,GAAG,eAAe,EAC3C,KAAK,EAAE,gCAAgC,CAAC,CAAC,CAAC,GAAG,aAAa,CAkB3D"}
1
+ {"version":3,"file":"render-ts-template-group-action.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/actions/render-ts-template-group-action.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { normalizePathToProjectPath, } from '@baseplate-dev/sync';
1
+ import { normalizePathToOutputPath } from '@baseplate-dev/sync';
2
2
  import { enhanceErrorWithContext } from '@baseplate-dev/utils';
3
3
  import { mapValues } from 'es-toolkit';
4
4
  import path from 'node:path';
@@ -8,25 +8,22 @@ import { renderTsTemplateFileAction } from './render-ts-template-file-action.js'
8
8
  * @param input - The input for the template group
9
9
  * @returns The template file inputs
10
10
  */
11
- export function extractTsTemplateFileInputsFromTemplateGroup({ group, baseDirectory, variables, importMapProviders, writeOptions, renderOptions, }) {
12
- if (!baseDirectory.startsWith('@/')) {
13
- throw new Error('baseDirectory must start with @/');
14
- }
11
+ export function extractTsTemplateFileInputsFromTemplateGroup({ group, paths, variables, importMapProviders, writeOptions, renderOptions, }) {
15
12
  const fileActionInputs = [];
16
13
  const typedImportMapProviders = importMapProviders ?? {};
17
- for (const [key, templateEntry] of Object.entries(group.templates)) {
18
- const destination = path.posix.join(baseDirectory, templateEntry.destination);
19
- const templateSpecificProviders = templateEntry.template.importMapProviders
20
- ? mapValues(templateEntry.template.importMapProviders, (_, providerKey) => {
14
+ for (const [key, templateEntry] of Object.entries(group)) {
15
+ const destination = paths[key];
16
+ const templateSpecificProviders = templateEntry.importMapProviders
17
+ ? mapValues(templateEntry.importMapProviders, (_, providerKey) => {
21
18
  if (!(providerKey in typedImportMapProviders)) {
22
19
  throw new Error(`Import map provider "${providerKey}" is not defined in the import map providers`);
23
20
  }
24
21
  return typedImportMapProviders[providerKey];
25
22
  })
26
23
  : undefined;
27
- const destinationDirectory = path.dirname(normalizePathToProjectPath(destination));
24
+ const destinationDirectory = path.dirname(normalizePathToOutputPath(destination));
28
25
  fileActionInputs.push({
29
- template: templateEntry.template,
26
+ template: templateEntry,
30
27
  destination,
31
28
  variables: variables && typeof variables === 'object'
32
29
  ? variables[key]
@@ -45,11 +42,6 @@ export function extractTsTemplateFileInputsFromTemplateGroup({ group, baseDirect
45
42
  }
46
43
  return fileActionInputs;
47
44
  }
48
- /**
49
- * Renders a template group to a builder action
50
- * @param input - The input for the template group
51
- * @returns The builder action
52
- */
53
45
  export function renderTsTemplateGroupAction(input) {
54
46
  return {
55
47
  execute: async (builder) => {
@@ -57,7 +49,6 @@ export function renderTsTemplateGroupAction(input) {
57
49
  for (const fileActionInput of fileActionInputs) {
58
50
  try {
59
51
  await builder.apply(renderTsTemplateFileAction(fileActionInput));
60
- input.onRenderTemplateFile?.(fileActionInput.destination);
61
52
  }
62
53
  catch (error) {
63
54
  throw enhanceErrorWithContext(error, `Failed to render template "${fileActionInput.template.name}"`);