@nestia/migrate 12.0.0-rc.2 → 12.0.0-rc.4

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 (349) hide show
  1. package/LICENSE +21 -21
  2. package/lib/NestiaMigrateApplication.js +9 -44
  3. package/lib/NestiaMigrateApplication.js.map +1 -1
  4. package/lib/NestiaMigrateApplication.mjs +90 -3
  5. package/lib/NestiaMigrateApplication.mjs.map +1 -1
  6. package/lib/_virtual/_rolldown/runtime.mjs +13 -0
  7. package/lib/analyzers/NestiaMigrateControllerAnalyzer.mjs +45 -3
  8. package/lib/analyzers/NestiaMigrateControllerAnalyzer.mjs.map +1 -1
  9. package/lib/archivers/NestiaMigrateFileArchiver.js +4 -0
  10. package/lib/archivers/NestiaMigrateFileArchiver.js.map +1 -1
  11. package/lib/archivers/NestiaMigrateFileArchiver.mjs +25 -3
  12. package/lib/archivers/NestiaMigrateFileArchiver.mjs.map +1 -1
  13. package/lib/bundles/NEST_TEMPLATE.js +51 -49
  14. package/lib/bundles/NEST_TEMPLATE.js.map +1 -1
  15. package/lib/bundles/NEST_TEMPLATE.mjs +58 -3
  16. package/lib/bundles/NEST_TEMPLATE.mjs.map +1 -1
  17. package/lib/bundles/SDK_TEMPLATE.js +20 -20
  18. package/lib/bundles/SDK_TEMPLATE.js.map +1 -1
  19. package/lib/bundles/SDK_TEMPLATE.mjs +28 -3
  20. package/lib/bundles/SDK_TEMPLATE.mjs.map +1 -1
  21. package/lib/executable/NestiaMigrateCommander.mjs +80 -3
  22. package/lib/executable/NestiaMigrateCommander.mjs.map +1 -1
  23. package/lib/executable/NestiaMigrateInquirer.mjs +59 -3
  24. package/lib/executable/NestiaMigrateInquirer.mjs.map +1 -1
  25. package/lib/executable/migrate.mjs +9 -3
  26. package/lib/executable/migrate.mjs.map +1 -1
  27. package/lib/factories/ExpressionFactory.mjs +10 -3
  28. package/lib/factories/ExpressionFactory.mjs.map +1 -1
  29. package/lib/factories/FormatCheatSheet.mjs +31 -3
  30. package/lib/factories/FormatCheatSheet.mjs.map +1 -1
  31. package/lib/factories/IdentifierFactory.mjs +22 -3
  32. package/lib/factories/IdentifierFactory.mjs.map +1 -1
  33. package/lib/factories/LiteralFactory.mjs +31 -3
  34. package/lib/factories/LiteralFactory.mjs.map +1 -1
  35. package/lib/factories/StatementFactory.mjs +12 -3
  36. package/lib/factories/StatementFactory.mjs.map +1 -1
  37. package/lib/factories/TypeFactory.mjs +21 -3
  38. package/lib/factories/TypeFactory.mjs.map +1 -1
  39. package/lib/factories/TypeLiteralFactory.js +2 -37
  40. package/lib/factories/TypeLiteralFactory.js.map +1 -1
  41. package/lib/factories/TypeLiteralFactory.mjs +17 -3
  42. package/lib/factories/TypeLiteralFactory.mjs.map +1 -1
  43. package/lib/index.mjs +24 -2
  44. package/lib/index.mjs.map +1 -1
  45. package/lib/internal/ts.mjs +6 -2
  46. package/lib/internal/ts.mjs.map +1 -1
  47. package/lib/module.mjs +43 -2
  48. package/lib/module.mjs.map +1 -1
  49. package/lib/programmers/NestiaMigrateApiFileProgrammer.mjs +36 -3
  50. package/lib/programmers/NestiaMigrateApiFileProgrammer.mjs.map +1 -1
  51. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js +2 -37
  52. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js.map +1 -1
  53. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.mjs +106 -3
  54. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.mjs.map +1 -1
  55. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.mjs +139 -3
  56. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.mjs.map +1 -1
  57. package/lib/programmers/NestiaMigrateApiProgrammer.js +1 -1
  58. package/lib/programmers/NestiaMigrateApiProgrammer.js.map +1 -1
  59. package/lib/programmers/NestiaMigrateApiProgrammer.mjs +71 -3
  60. package/lib/programmers/NestiaMigrateApiProgrammer.mjs.map +1 -1
  61. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.mjs +102 -3
  62. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.mjs.map +1 -1
  63. package/lib/programmers/NestiaMigrateApiStartProgrammer.mjs +50 -3
  64. package/lib/programmers/NestiaMigrateApiStartProgrammer.mjs.map +1 -1
  65. package/lib/programmers/NestiaMigrateDtoProgrammer.mjs +53 -3
  66. package/lib/programmers/NestiaMigrateDtoProgrammer.mjs.map +1 -1
  67. package/lib/programmers/NestiaMigrateE2eFileProgrammer.mjs +58 -3
  68. package/lib/programmers/NestiaMigrateE2eFileProgrammer.mjs.map +1 -1
  69. package/lib/programmers/NestiaMigrateE2eProgrammer.js +11 -4
  70. package/lib/programmers/NestiaMigrateE2eProgrammer.js.map +1 -1
  71. package/lib/programmers/NestiaMigrateE2eProgrammer.mjs +35 -3
  72. package/lib/programmers/NestiaMigrateE2eProgrammer.mjs.map +1 -1
  73. package/lib/programmers/NestiaMigrateImportProgrammer.js +12 -5
  74. package/lib/programmers/NestiaMigrateImportProgrammer.js.map +1 -1
  75. package/lib/programmers/NestiaMigrateImportProgrammer.mjs +50 -3
  76. package/lib/programmers/NestiaMigrateImportProgrammer.mjs.map +1 -1
  77. package/lib/programmers/NestiaMigrateNestControllerProgrammer.js +4 -3
  78. package/lib/programmers/NestiaMigrateNestControllerProgrammer.js.map +1 -1
  79. package/lib/programmers/NestiaMigrateNestControllerProgrammer.mjs +31 -3
  80. package/lib/programmers/NestiaMigrateNestControllerProgrammer.mjs.map +1 -1
  81. package/lib/programmers/NestiaMigrateNestMethodProgrammer.mjs +128 -3
  82. package/lib/programmers/NestiaMigrateNestMethodProgrammer.mjs.map +1 -1
  83. package/lib/programmers/NestiaMigrateNestModuleProgrammer.mjs +18 -3
  84. package/lib/programmers/NestiaMigrateNestModuleProgrammer.mjs.map +1 -1
  85. package/lib/programmers/NestiaMigrateNestProgrammer.js +25 -4
  86. package/lib/programmers/NestiaMigrateNestProgrammer.js.map +1 -1
  87. package/lib/programmers/NestiaMigrateNestProgrammer.mjs +60 -3
  88. package/lib/programmers/NestiaMigrateNestProgrammer.mjs.map +1 -1
  89. package/lib/programmers/NestiaMigrateSchemaProgrammer.js +14 -49
  90. package/lib/programmers/NestiaMigrateSchemaProgrammer.js.map +1 -1
  91. package/lib/programmers/NestiaMigrateSchemaProgrammer.mjs +199 -3
  92. package/lib/programmers/NestiaMigrateSchemaProgrammer.mjs.map +1 -1
  93. package/lib/programmers/index.mjs +16 -2
  94. package/lib/structures/INestiaMigrateConfig.mjs +0 -3
  95. package/lib/structures/INestiaMigrateContext.mjs +0 -3
  96. package/lib/structures/INestiaMigrateController.mjs +0 -3
  97. package/lib/structures/INestiaMigrateFile.mjs +0 -3
  98. package/lib/structures/index.mjs +0 -2
  99. package/lib/utils/FilePrinter.mjs +20 -3
  100. package/lib/utils/FilePrinter.mjs.map +1 -1
  101. package/lib/utils/MapUtil.mjs +15 -3
  102. package/lib/utils/MapUtil.mjs.map +1 -1
  103. package/lib/utils/StringUtil.mjs +100 -3
  104. package/lib/utils/StringUtil.mjs.map +1 -1
  105. package/package.json +8 -12
  106. package/src/NestiaMigrateApplication.ts +192 -196
  107. package/src/analyzers/NestiaMigrateControllerAnalyzer.ts +51 -51
  108. package/src/archivers/NestiaMigrateFileArchiver.ts +32 -28
  109. package/src/bundles/NEST_TEMPLATE.ts +51 -49
  110. package/src/bundles/SDK_TEMPLATE.ts +20 -20
  111. package/src/executable/NestiaMigrateCommander.ts +115 -115
  112. package/src/executable/NestiaMigrateInquirer.ts +106 -106
  113. package/src/executable/bundle.js +396 -349
  114. package/src/executable/migrate.ts +7 -7
  115. package/src/factories/ExpressionFactory.ts +23 -23
  116. package/src/factories/FormatCheatSheet.ts +71 -71
  117. package/src/factories/IdentifierFactory.ts +84 -84
  118. package/src/factories/LiteralFactory.ts +54 -54
  119. package/src/factories/StatementFactory.ts +56 -56
  120. package/src/factories/TypeFactory.ts +27 -27
  121. package/src/factories/TypeLiteralFactory.ts +59 -62
  122. package/src/index.ts +4 -4
  123. package/src/internal/ts.ts +75 -75
  124. package/src/module.ts +6 -6
  125. package/src/programmers/NestiaMigrateApiFileProgrammer.ts +55 -55
  126. package/src/programmers/NestiaMigrateApiFunctionProgrammer.ts +355 -358
  127. package/src/programmers/NestiaMigrateApiNamespaceProgrammer.ts +511 -511
  128. package/src/programmers/NestiaMigrateApiProgrammer.ts +108 -108
  129. package/src/programmers/NestiaMigrateApiSimulationProgrammer.ts +309 -309
  130. package/src/programmers/NestiaMigrateApiStartProgrammer.ts +198 -198
  131. package/src/programmers/NestiaMigrateDtoProgrammer.ts +117 -117
  132. package/src/programmers/NestiaMigrateE2eFileProgrammer.ts +155 -155
  133. package/src/programmers/NestiaMigrateE2eProgrammer.ts +62 -48
  134. package/src/programmers/NestiaMigrateImportProgrammer.ts +127 -119
  135. package/src/programmers/NestiaMigrateNestControllerProgrammer.ts +66 -70
  136. package/src/programmers/NestiaMigrateNestMethodProgrammer.ts +402 -402
  137. package/src/programmers/NestiaMigrateNestModuleProgrammer.ts +64 -64
  138. package/src/programmers/NestiaMigrateNestProgrammer.ts +110 -89
  139. package/src/programmers/NestiaMigrateSchemaProgrammer.ts +472 -475
  140. package/src/programmers/index.ts +15 -15
  141. package/src/structures/INestiaMigrateConfig.ts +19 -19
  142. package/src/structures/INestiaMigrateContext.ts +9 -9
  143. package/src/structures/INestiaMigrateController.ts +8 -8
  144. package/src/structures/INestiaMigrateFile.ts +5 -5
  145. package/src/structures/index.ts +4 -4
  146. package/src/utils/FilePrinter.ts +44 -44
  147. package/src/utils/MapUtil.ts +13 -13
  148. package/src/utils/StringUtil.ts +109 -109
  149. package/README.md +0 -93
  150. package/lib/NestiaMigrateApplication2.mjs +0 -153
  151. package/lib/NestiaMigrateApplication2.mjs.map +0 -1
  152. package/lib/_virtual/ExpressionFactory.mjs +0 -4
  153. package/lib/_virtual/ExpressionFactory.mjs.map +0 -1
  154. package/lib/_virtual/FilePrinter.mjs +0 -4
  155. package/lib/_virtual/FilePrinter.mjs.map +0 -1
  156. package/lib/_virtual/FormatCheatSheet.mjs +0 -4
  157. package/lib/_virtual/FormatCheatSheet.mjs.map +0 -1
  158. package/lib/_virtual/INestiaMigrateConfig.mjs +0 -4
  159. package/lib/_virtual/INestiaMigrateConfig.mjs.map +0 -1
  160. package/lib/_virtual/INestiaMigrateContext.mjs +0 -4
  161. package/lib/_virtual/INestiaMigrateContext.mjs.map +0 -1
  162. package/lib/_virtual/INestiaMigrateController.mjs +0 -4
  163. package/lib/_virtual/INestiaMigrateController.mjs.map +0 -1
  164. package/lib/_virtual/INestiaMigrateFile.mjs +0 -4
  165. package/lib/_virtual/INestiaMigrateFile.mjs.map +0 -1
  166. package/lib/_virtual/IdentifierFactory.mjs +0 -4
  167. package/lib/_virtual/IdentifierFactory.mjs.map +0 -1
  168. package/lib/_virtual/LiteralFactory.mjs +0 -4
  169. package/lib/_virtual/LiteralFactory.mjs.map +0 -1
  170. package/lib/_virtual/MapUtil.mjs +0 -4
  171. package/lib/_virtual/MapUtil.mjs.map +0 -1
  172. package/lib/_virtual/NEST_TEMPLATE.mjs +0 -4
  173. package/lib/_virtual/NEST_TEMPLATE.mjs.map +0 -1
  174. package/lib/_virtual/NestiaMigrateApiFileProgrammer.mjs +0 -4
  175. package/lib/_virtual/NestiaMigrateApiFileProgrammer.mjs.map +0 -1
  176. package/lib/_virtual/NestiaMigrateApiFunctionProgrammer.mjs +0 -4
  177. package/lib/_virtual/NestiaMigrateApiFunctionProgrammer.mjs.map +0 -1
  178. package/lib/_virtual/NestiaMigrateApiNamespaceProgrammer.mjs +0 -4
  179. package/lib/_virtual/NestiaMigrateApiNamespaceProgrammer.mjs.map +0 -1
  180. package/lib/_virtual/NestiaMigrateApiProgrammer.mjs +0 -4
  181. package/lib/_virtual/NestiaMigrateApiProgrammer.mjs.map +0 -1
  182. package/lib/_virtual/NestiaMigrateApiSimulationProgrammer.mjs +0 -4
  183. package/lib/_virtual/NestiaMigrateApiSimulationProgrammer.mjs.map +0 -1
  184. package/lib/_virtual/NestiaMigrateApiStartProgrammer.mjs +0 -4
  185. package/lib/_virtual/NestiaMigrateApiStartProgrammer.mjs.map +0 -1
  186. package/lib/_virtual/NestiaMigrateApplication.mjs +0 -4
  187. package/lib/_virtual/NestiaMigrateApplication.mjs.map +0 -1
  188. package/lib/_virtual/NestiaMigrateCommander.mjs +0 -4
  189. package/lib/_virtual/NestiaMigrateCommander.mjs.map +0 -1
  190. package/lib/_virtual/NestiaMigrateControllerAnalyzer.mjs +0 -4
  191. package/lib/_virtual/NestiaMigrateControllerAnalyzer.mjs.map +0 -1
  192. package/lib/_virtual/NestiaMigrateDtoProgrammer.mjs +0 -4
  193. package/lib/_virtual/NestiaMigrateDtoProgrammer.mjs.map +0 -1
  194. package/lib/_virtual/NestiaMigrateE2eFileProgrammer.mjs +0 -4
  195. package/lib/_virtual/NestiaMigrateE2eFileProgrammer.mjs.map +0 -1
  196. package/lib/_virtual/NestiaMigrateE2eProgrammer.mjs +0 -4
  197. package/lib/_virtual/NestiaMigrateE2eProgrammer.mjs.map +0 -1
  198. package/lib/_virtual/NestiaMigrateFileArchiver.mjs +0 -4
  199. package/lib/_virtual/NestiaMigrateFileArchiver.mjs.map +0 -1
  200. package/lib/_virtual/NestiaMigrateImportProgrammer.mjs +0 -4
  201. package/lib/_virtual/NestiaMigrateImportProgrammer.mjs.map +0 -1
  202. package/lib/_virtual/NestiaMigrateInquirer.mjs +0 -4
  203. package/lib/_virtual/NestiaMigrateInquirer.mjs.map +0 -1
  204. package/lib/_virtual/NestiaMigrateNestControllerProgrammer.mjs +0 -4
  205. package/lib/_virtual/NestiaMigrateNestControllerProgrammer.mjs.map +0 -1
  206. package/lib/_virtual/NestiaMigrateNestMethodProgrammer.mjs +0 -4
  207. package/lib/_virtual/NestiaMigrateNestMethodProgrammer.mjs.map +0 -1
  208. package/lib/_virtual/NestiaMigrateNestModuleProgrammer.mjs +0 -4
  209. package/lib/_virtual/NestiaMigrateNestModuleProgrammer.mjs.map +0 -1
  210. package/lib/_virtual/NestiaMigrateNestProgrammer.mjs +0 -4
  211. package/lib/_virtual/NestiaMigrateNestProgrammer.mjs.map +0 -1
  212. package/lib/_virtual/NestiaMigrateSchemaProgrammer.mjs +0 -4
  213. package/lib/_virtual/NestiaMigrateSchemaProgrammer.mjs.map +0 -1
  214. package/lib/_virtual/SDK_TEMPLATE.mjs +0 -4
  215. package/lib/_virtual/SDK_TEMPLATE.mjs.map +0 -1
  216. package/lib/_virtual/StatementFactory.mjs +0 -4
  217. package/lib/_virtual/StatementFactory.mjs.map +0 -1
  218. package/lib/_virtual/StringUtil.mjs +0 -4
  219. package/lib/_virtual/StringUtil.mjs.map +0 -1
  220. package/lib/_virtual/TypeFactory.mjs +0 -4
  221. package/lib/_virtual/TypeFactory.mjs.map +0 -1
  222. package/lib/_virtual/TypeLiteralFactory.mjs +0 -4
  223. package/lib/_virtual/TypeLiteralFactory.mjs.map +0 -1
  224. package/lib/_virtual/_commander.mjs +0 -7
  225. package/lib/_virtual/_commander.mjs.map +0 -1
  226. package/lib/_virtual/_commonjsHelpers.mjs +0 -35
  227. package/lib/_virtual/_commonjsHelpers.mjs.map +0 -1
  228. package/lib/_virtual/_inquirer.mjs +0 -7
  229. package/lib/_virtual/_inquirer.mjs.map +0 -1
  230. package/lib/_virtual/_node_child_process.mjs +0 -7
  231. package/lib/_virtual/_node_child_process.mjs.map +0 -1
  232. package/lib/_virtual/_node_fs.mjs +0 -7
  233. package/lib/_virtual/_node_fs.mjs.map +0 -1
  234. package/lib/_virtual/_node_path.mjs +0 -7
  235. package/lib/_virtual/_node_path.mjs.map +0 -1
  236. package/lib/_virtual/_prettier-plugin-jsdoc.mjs +0 -7
  237. package/lib/_virtual/_prettier-plugin-jsdoc.mjs.map +0 -1
  238. package/lib/_virtual/_prettier.mjs +0 -7
  239. package/lib/_virtual/_prettier.mjs.map +0 -1
  240. package/lib/_virtual/_tstl.mjs +0 -7
  241. package/lib/_virtual/_tstl.mjs.map +0 -1
  242. package/lib/_virtual/factory.mjs +0 -7
  243. package/lib/_virtual/factory.mjs.map +0 -1
  244. package/lib/_virtual/index.mjs +0 -4
  245. package/lib/_virtual/index.mjs.map +0 -1
  246. package/lib/_virtual/index2.mjs +0 -4
  247. package/lib/_virtual/index2.mjs.map +0 -1
  248. package/lib/_virtual/index3.mjs +0 -4
  249. package/lib/_virtual/index3.mjs.map +0 -1
  250. package/lib/_virtual/index4.mjs +0 -4
  251. package/lib/_virtual/index4.mjs.map +0 -1
  252. package/lib/_virtual/migrate.mjs +0 -4
  253. package/lib/_virtual/migrate.mjs.map +0 -1
  254. package/lib/_virtual/module.mjs +0 -4
  255. package/lib/_virtual/module.mjs.map +0 -1
  256. package/lib/_virtual/prettier-plugin-sort-imports.mjs +0 -7
  257. package/lib/_virtual/prettier-plugin-sort-imports.mjs.map +0 -1
  258. package/lib/_virtual/ts.mjs +0 -4
  259. package/lib/_virtual/ts.mjs.map +0 -1
  260. package/lib/_virtual/utils.mjs +0 -7
  261. package/lib/_virtual/utils.mjs.map +0 -1
  262. package/lib/analyzers/NestiaMigrateControllerAnalyzer2.mjs +0 -53
  263. package/lib/analyzers/NestiaMigrateControllerAnalyzer2.mjs.map +0 -1
  264. package/lib/archivers/NestiaMigrateFileArchiver2.mjs +0 -40
  265. package/lib/archivers/NestiaMigrateFileArchiver2.mjs.map +0 -1
  266. package/lib/bundles/NEST_TEMPLATE2.mjs +0 -66
  267. package/lib/bundles/NEST_TEMPLATE2.mjs.map +0 -1
  268. package/lib/bundles/SDK_TEMPLATE2.mjs +0 -38
  269. package/lib/bundles/SDK_TEMPLATE2.mjs.map +0 -1
  270. package/lib/executable/NestiaMigrateCommander2.mjs +0 -148
  271. package/lib/executable/NestiaMigrateCommander2.mjs.map +0 -1
  272. package/lib/executable/NestiaMigrateInquirer2.mjs +0 -93
  273. package/lib/executable/NestiaMigrateInquirer2.mjs.map +0 -1
  274. package/lib/executable/migrate2.mjs +0 -13
  275. package/lib/executable/migrate2.mjs.map +0 -1
  276. package/lib/factories/ExpressionFactory2.mjs +0 -20
  277. package/lib/factories/ExpressionFactory2.mjs.map +0 -1
  278. package/lib/factories/FormatCheatSheet2.mjs +0 -37
  279. package/lib/factories/FormatCheatSheet2.mjs.map +0 -1
  280. package/lib/factories/IdentifierFactory2.mjs +0 -56
  281. package/lib/factories/IdentifierFactory2.mjs.map +0 -1
  282. package/lib/factories/LiteralFactory2.mjs +0 -56
  283. package/lib/factories/LiteralFactory2.mjs.map +0 -1
  284. package/lib/factories/StatementFactory2.mjs +0 -26
  285. package/lib/factories/StatementFactory2.mjs.map +0 -1
  286. package/lib/factories/TypeFactory2.mjs +0 -31
  287. package/lib/factories/TypeFactory2.mjs.map +0 -1
  288. package/lib/factories/TypeLiteralFactory2.mjs +0 -72
  289. package/lib/factories/TypeLiteralFactory2.mjs.map +0 -1
  290. package/lib/index2.mjs +0 -53
  291. package/lib/index2.mjs.map +0 -1
  292. package/lib/internal/ts2.mjs +0 -10
  293. package/lib/internal/ts2.mjs.map +0 -1
  294. package/lib/module2.mjs +0 -38
  295. package/lib/module2.mjs.map +0 -1
  296. package/lib/programmers/NestiaMigrateApiFileProgrammer2.mjs +0 -49
  297. package/lib/programmers/NestiaMigrateApiFileProgrammer2.mjs.map +0 -1
  298. package/lib/programmers/NestiaMigrateApiFunctionProgrammer2.mjs +0 -234
  299. package/lib/programmers/NestiaMigrateApiFunctionProgrammer2.mjs.map +0 -1
  300. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer2.mjs +0 -238
  301. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer2.mjs.map +0 -1
  302. package/lib/programmers/NestiaMigrateApiProgrammer2.mjs +0 -92
  303. package/lib/programmers/NestiaMigrateApiProgrammer2.mjs.map +0 -1
  304. package/lib/programmers/NestiaMigrateApiSimulationProgrammer2.mjs +0 -156
  305. package/lib/programmers/NestiaMigrateApiSimulationProgrammer2.mjs.map +0 -1
  306. package/lib/programmers/NestiaMigrateApiStartProgrammer2.mjs +0 -88
  307. package/lib/programmers/NestiaMigrateApiStartProgrammer2.mjs.map +0 -1
  308. package/lib/programmers/NestiaMigrateDtoProgrammer2.mjs +0 -90
  309. package/lib/programmers/NestiaMigrateDtoProgrammer2.mjs.map +0 -1
  310. package/lib/programmers/NestiaMigrateE2eFileProgrammer2.mjs +0 -88
  311. package/lib/programmers/NestiaMigrateE2eFileProgrammer2.mjs.map +0 -1
  312. package/lib/programmers/NestiaMigrateE2eProgrammer2.mjs +0 -41
  313. package/lib/programmers/NestiaMigrateE2eProgrammer2.mjs.map +0 -1
  314. package/lib/programmers/NestiaMigrateImportProgrammer2.mjs +0 -72
  315. package/lib/programmers/NestiaMigrateImportProgrammer2.mjs.map +0 -1
  316. package/lib/programmers/NestiaMigrateNestControllerProgrammer2.mjs +0 -52
  317. package/lib/programmers/NestiaMigrateNestControllerProgrammer2.mjs.map +0 -1
  318. package/lib/programmers/NestiaMigrateNestMethodProgrammer2.mjs +0 -229
  319. package/lib/programmers/NestiaMigrateNestMethodProgrammer2.mjs.map +0 -1
  320. package/lib/programmers/NestiaMigrateNestModuleProgrammer2.mjs +0 -32
  321. package/lib/programmers/NestiaMigrateNestModuleProgrammer2.mjs.map +0 -1
  322. package/lib/programmers/NestiaMigrateNestProgrammer2.mjs +0 -78
  323. package/lib/programmers/NestiaMigrateNestProgrammer2.mjs.map +0 -1
  324. package/lib/programmers/NestiaMigrateSchemaProgrammer2.mjs +0 -388
  325. package/lib/programmers/NestiaMigrateSchemaProgrammer2.mjs.map +0 -1
  326. package/lib/programmers/index.mjs.map +0 -1
  327. package/lib/programmers/index2.mjs +0 -71
  328. package/lib/programmers/index2.mjs.map +0 -1
  329. package/lib/structures/INestiaMigrateConfig.mjs.map +0 -1
  330. package/lib/structures/INestiaMigrateConfig2.mjs +0 -6
  331. package/lib/structures/INestiaMigrateConfig2.mjs.map +0 -1
  332. package/lib/structures/INestiaMigrateContext.mjs.map +0 -1
  333. package/lib/structures/INestiaMigrateContext2.mjs +0 -6
  334. package/lib/structures/INestiaMigrateContext2.mjs.map +0 -1
  335. package/lib/structures/INestiaMigrateController.mjs.map +0 -1
  336. package/lib/structures/INestiaMigrateController2.mjs +0 -6
  337. package/lib/structures/INestiaMigrateController2.mjs.map +0 -1
  338. package/lib/structures/INestiaMigrateFile.mjs.map +0 -1
  339. package/lib/structures/INestiaMigrateFile2.mjs +0 -6
  340. package/lib/structures/INestiaMigrateFile2.mjs.map +0 -1
  341. package/lib/structures/index.mjs.map +0 -1
  342. package/lib/structures/index2.mjs +0 -38
  343. package/lib/structures/index2.mjs.map +0 -1
  344. package/lib/utils/FilePrinter2.mjs +0 -28
  345. package/lib/utils/FilePrinter2.mjs.map +0 -1
  346. package/lib/utils/MapUtil2.mjs +0 -18
  347. package/lib/utils/MapUtil2.mjs.map +0 -1
  348. package/lib/utils/StringUtil2.mjs +0 -110
  349. package/lib/utils/StringUtil2.mjs.map +0 -1
@@ -1,155 +1,155 @@
1
- import { NodeFlags, SyntaxKind, factory } from "@ttsc/factory";
2
- import { IHttpMigrateRoute } from "@typia/interface";
3
- import { OpenApi } from "typia";
4
-
5
- import { IdentifierFactory } from "../factories/IdentifierFactory";
6
- import { LiteralFactory } from "../factories/LiteralFactory";
7
- import ts from "../internal/ts";
8
- import { INestiaMigrateConfig } from "../structures/INestiaMigrateConfig";
9
- import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
10
- import { NestiaMigrateSchemaProgrammer } from "./NestiaMigrateSchemaProgrammer";
11
-
12
- export namespace NestiaMigrateE2eFunctionProgrammer {
13
- export interface IContext {
14
- config: INestiaMigrateConfig;
15
- components: OpenApi.IComponents;
16
- importer: NestiaMigrateImportProgrammer;
17
- route: IHttpMigrateRoute;
18
- }
19
-
20
- export const write = (ctx: IContext): ts.FunctionDeclaration =>
21
- factory.createFunctionDeclaration(
22
- [
23
- factory.createModifier(SyntaxKind.ExportKeyword),
24
- factory.createModifier(SyntaxKind.AsyncKeyword),
25
- ],
26
- undefined,
27
- ["test", "api", ...ctx.route.accessor].join("_"),
28
- undefined,
29
- [
30
- IdentifierFactory.parameter(
31
- "connection",
32
- factory.createTypeReferenceNode(
33
- factory.createQualifiedName(
34
- factory.createIdentifier(
35
- ctx.importer.external({
36
- type: "default",
37
- library: "@ORGANIZATION/PROJECT-api",
38
- name: "api",
39
- }),
40
- ),
41
- factory.createIdentifier("IConnection"),
42
- ),
43
- ),
44
- ),
45
- ],
46
- undefined,
47
- factory.createBlock(writeBody(ctx), true),
48
- );
49
-
50
- export const writeBody = (ctx: IContext): ts.Statement[] => [
51
- factory.createVariableStatement(
52
- [],
53
- factory.createVariableDeclarationList(
54
- [
55
- factory.createVariableDeclaration(
56
- "output",
57
- undefined,
58
- ctx.route.success
59
- ? NestiaMigrateSchemaProgrammer.write({
60
- components: ctx.components,
61
- importer: ctx.importer,
62
- schema: ctx.route.success.schema,
63
- })
64
- : undefined,
65
- factory.createAwaitExpression(writeCallExpressionn(ctx)),
66
- ),
67
- ],
68
- NodeFlags.Const,
69
- ),
70
- ),
71
- factory.createExpressionStatement(
72
- factory.createCallExpression(
73
- factory.createPropertyAccessExpression(
74
- factory.createIdentifier(
75
- ctx.importer.external({
76
- type: "default",
77
- library: "typia",
78
- name: "typia",
79
- }),
80
- ),
81
- "assert",
82
- ),
83
- undefined,
84
- [factory.createIdentifier("output")],
85
- ),
86
- ),
87
- ];
88
-
89
- const writeCallExpressionn = (ctx: IContext): ts.CallExpression => {
90
- const fetch = factory.createPropertyAccessExpression(
91
- factory.createIdentifier("api.functional"),
92
- factory.createIdentifier(ctx.route.accessor.join(".")),
93
- );
94
- const connection = factory.createIdentifier("connection");
95
- if (
96
- ctx.route.parameters.length === 0 &&
97
- ctx.route.query === null &&
98
- ctx.route.body === null
99
- )
100
- return factory.createCallExpression(fetch, undefined, [connection]);
101
-
102
- const random = factory.createPropertyAccessExpression(
103
- factory.createIdentifier(
104
- ctx.importer.external({
105
- type: "default",
106
- library: "typia",
107
- name: "typia",
108
- }),
109
- ),
110
- "random",
111
- );
112
- if (ctx.config.keyword === true)
113
- return factory.createCallExpression(fetch, undefined, [
114
- connection,
115
- LiteralFactory.write(
116
- Object.fromEntries(
117
- [...ctx.route.parameters, ctx.route.query, ctx.route.body]
118
- .filter((x) => x !== null)
119
- .map(({ key, schema: value }) => [
120
- key,
121
- factory.createCallExpression(
122
- random,
123
- [
124
- NestiaMigrateSchemaProgrammer.write({
125
- components: ctx.components,
126
- importer: ctx.importer,
127
- schema: value,
128
- }),
129
- ],
130
- undefined,
131
- ),
132
- ]),
133
- ),
134
- ),
135
- ]);
136
- return factory.createCallExpression(fetch, undefined, [
137
- connection,
138
- ...[...ctx.route.parameters, ctx.route.query, ctx.route.body]
139
- .filter((p) => !!p)
140
- .map((p) =>
141
- factory.createCallExpression(
142
- random,
143
- [
144
- NestiaMigrateSchemaProgrammer.write({
145
- components: ctx.components,
146
- importer: ctx.importer,
147
- schema: p.schema,
148
- }),
149
- ],
150
- undefined,
151
- ),
152
- ),
153
- ]);
154
- };
155
- }
1
+ import { NodeFlags, SyntaxKind, factory } from "@ttsc/factory";
2
+ import { IHttpMigrateRoute } from "@typia/interface";
3
+ import { OpenApi } from "typia";
4
+
5
+ import { IdentifierFactory } from "../factories/IdentifierFactory";
6
+ import { LiteralFactory } from "../factories/LiteralFactory";
7
+ import ts from "../internal/ts";
8
+ import { INestiaMigrateConfig } from "../structures/INestiaMigrateConfig";
9
+ import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
10
+ import { NestiaMigrateSchemaProgrammer } from "./NestiaMigrateSchemaProgrammer";
11
+
12
+ export namespace NestiaMigrateE2eFunctionProgrammer {
13
+ export interface IContext {
14
+ config: INestiaMigrateConfig;
15
+ components: OpenApi.IComponents;
16
+ importer: NestiaMigrateImportProgrammer;
17
+ route: IHttpMigrateRoute;
18
+ }
19
+
20
+ export const write = (ctx: IContext): ts.FunctionDeclaration =>
21
+ factory.createFunctionDeclaration(
22
+ [
23
+ factory.createModifier(SyntaxKind.ExportKeyword),
24
+ factory.createModifier(SyntaxKind.AsyncKeyword),
25
+ ],
26
+ undefined,
27
+ ["test", "api", ...ctx.route.accessor].join("_"),
28
+ undefined,
29
+ [
30
+ IdentifierFactory.parameter(
31
+ "connection",
32
+ factory.createTypeReferenceNode(
33
+ factory.createQualifiedName(
34
+ factory.createIdentifier(
35
+ ctx.importer.external({
36
+ type: "default",
37
+ library: "@ORGANIZATION/PROJECT-api",
38
+ name: "api",
39
+ }),
40
+ ),
41
+ factory.createIdentifier("IConnection"),
42
+ ),
43
+ ),
44
+ ),
45
+ ],
46
+ undefined,
47
+ factory.createBlock(writeBody(ctx), true),
48
+ );
49
+
50
+ export const writeBody = (ctx: IContext): ts.Statement[] => [
51
+ factory.createVariableStatement(
52
+ [],
53
+ factory.createVariableDeclarationList(
54
+ [
55
+ factory.createVariableDeclaration(
56
+ "output",
57
+ undefined,
58
+ ctx.route.success
59
+ ? NestiaMigrateSchemaProgrammer.write({
60
+ components: ctx.components,
61
+ importer: ctx.importer,
62
+ schema: ctx.route.success.schema,
63
+ })
64
+ : undefined,
65
+ factory.createAwaitExpression(writeCallExpressionn(ctx)),
66
+ ),
67
+ ],
68
+ NodeFlags.Const,
69
+ ),
70
+ ),
71
+ factory.createExpressionStatement(
72
+ factory.createCallExpression(
73
+ factory.createPropertyAccessExpression(
74
+ factory.createIdentifier(
75
+ ctx.importer.external({
76
+ type: "default",
77
+ library: "typia",
78
+ name: "typia",
79
+ }),
80
+ ),
81
+ "assert",
82
+ ),
83
+ undefined,
84
+ [factory.createIdentifier("output")],
85
+ ),
86
+ ),
87
+ ];
88
+
89
+ const writeCallExpressionn = (ctx: IContext): ts.CallExpression => {
90
+ const fetch = factory.createPropertyAccessExpression(
91
+ factory.createIdentifier("api.functional"),
92
+ factory.createIdentifier(ctx.route.accessor.join(".")),
93
+ );
94
+ const connection = factory.createIdentifier("connection");
95
+ if (
96
+ ctx.route.parameters.length === 0 &&
97
+ ctx.route.query === null &&
98
+ ctx.route.body === null
99
+ )
100
+ return factory.createCallExpression(fetch, undefined, [connection]);
101
+
102
+ const random = factory.createPropertyAccessExpression(
103
+ factory.createIdentifier(
104
+ ctx.importer.external({
105
+ type: "default",
106
+ library: "typia",
107
+ name: "typia",
108
+ }),
109
+ ),
110
+ "random",
111
+ );
112
+ if (ctx.config.keyword === true)
113
+ return factory.createCallExpression(fetch, undefined, [
114
+ connection,
115
+ LiteralFactory.write(
116
+ Object.fromEntries(
117
+ [...ctx.route.parameters, ctx.route.query, ctx.route.body]
118
+ .filter((x) => x !== null)
119
+ .map(({ key, schema: value }) => [
120
+ key,
121
+ factory.createCallExpression(
122
+ random,
123
+ [
124
+ NestiaMigrateSchemaProgrammer.write({
125
+ components: ctx.components,
126
+ importer: ctx.importer,
127
+ schema: value,
128
+ }),
129
+ ],
130
+ undefined,
131
+ ),
132
+ ]),
133
+ ),
134
+ ),
135
+ ]);
136
+ return factory.createCallExpression(fetch, undefined, [
137
+ connection,
138
+ ...[...ctx.route.parameters, ctx.route.query, ctx.route.body]
139
+ .filter((p) => !!p)
140
+ .map((p) =>
141
+ factory.createCallExpression(
142
+ random,
143
+ [
144
+ NestiaMigrateSchemaProgrammer.write({
145
+ components: ctx.components,
146
+ importer: ctx.importer,
147
+ schema: p.schema,
148
+ }),
149
+ ],
150
+ undefined,
151
+ ),
152
+ ),
153
+ ]);
154
+ };
155
+ }
@@ -1,48 +1,62 @@
1
- import { IHttpMigrateRoute, OpenApi } from "@typia/interface";
2
- import ts from "../internal/ts";
3
-
4
- import { INestiaMigrateConfig } from "../structures/INestiaMigrateConfig";
5
- import { INestiaMigrateContext } from "../structures/INestiaMigrateContext";
6
- import { INestiaMigrateFile } from "../structures/INestiaMigrateFile";
7
- import { FilePrinter } from "../utils/FilePrinter";
8
- import { NestiaMigrateE2eFunctionProgrammer } from "./NestiaMigrateE2eFileProgrammer";
9
- import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
10
-
11
- export namespace NestiaMigrateE2eProgrammer {
12
- export const write = (ctx: INestiaMigrateContext): Record<string, string> =>
13
- Object.fromEntries(
14
- ctx.application.routes
15
- .map((r) =>
16
- writeFile(ctx.config, ctx.application.document().components, r),
17
- )
18
- .map((r) => [`${r.location}/${r.file}`, r.content]),
19
- );
20
-
21
- const writeFile = (
22
- config: INestiaMigrateConfig,
23
- components: OpenApi.IComponents,
24
- route: IHttpMigrateRoute,
25
- ): INestiaMigrateFile => {
26
- const importer: NestiaMigrateImportProgrammer =
27
- new NestiaMigrateImportProgrammer();
28
- const func: ts.FunctionDeclaration =
29
- NestiaMigrateE2eFunctionProgrammer.write({
30
- config,
31
- components,
32
- importer,
33
- route,
34
- });
35
- const statements: ts.Statement[] = [
36
- ...importer.toStatements(
37
- (name) => `@ORGANIZATION/PROJECT-api/lib/structures/${name}`,
38
- ),
39
- FilePrinter.newLine(),
40
- func,
41
- ];
42
- return {
43
- location: `test/features/api`,
44
- file: `${["test", "api", ...route.accessor].join("_")}.ts`,
45
- content: FilePrinter.write({ statements }),
46
- };
47
- };
48
- }
1
+ import { IHttpMigrateRoute, OpenApi } from "@typia/interface";
2
+
3
+ import ts from "../internal/ts";
4
+ import { INestiaMigrateConfig } from "../structures/INestiaMigrateConfig";
5
+ import { INestiaMigrateContext } from "../structures/INestiaMigrateContext";
6
+ import { INestiaMigrateFile } from "../structures/INestiaMigrateFile";
7
+ import { FilePrinter } from "../utils/FilePrinter";
8
+ import { NestiaMigrateE2eFunctionProgrammer } from "./NestiaMigrateE2eFileProgrammer";
9
+ import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
10
+
11
+ export namespace NestiaMigrateE2eProgrammer {
12
+ export const write = (ctx: INestiaMigrateContext): Record<string, string> =>
13
+ Object.fromEntries(
14
+ ctx.application.routes
15
+ .map((r) =>
16
+ writeFile(
17
+ ctx.mode,
18
+ ctx.config,
19
+ ctx.application.document().components,
20
+ r,
21
+ ),
22
+ )
23
+ .map((r) => [`${r.location}/${r.file}`, r.content]),
24
+ );
25
+
26
+ const writeFile = (
27
+ mode: INestiaMigrateContext["mode"],
28
+ config: INestiaMigrateConfig,
29
+ components: OpenApi.IComponents,
30
+ route: IHttpMigrateRoute,
31
+ ): INestiaMigrateFile => {
32
+ const importer: NestiaMigrateImportProgrammer =
33
+ new NestiaMigrateImportProgrammer();
34
+ const func: ts.FunctionDeclaration =
35
+ NestiaMigrateE2eFunctionProgrammer.write({
36
+ config,
37
+ components,
38
+ importer,
39
+ route,
40
+ });
41
+ const statements: ts.Statement[] = [
42
+ // The monorepo template consumes the api workspace package through its
43
+ // package name, while the single-package sdk template keeps resolving
44
+ // the built `lib` paths through tsconfig path mappings.
45
+ ...importer.toStatements((name) =>
46
+ mode === "nest"
47
+ ? "@ORGANIZATION/PROJECT-api"
48
+ : `@ORGANIZATION/PROJECT-api/lib/structures/${name}`,
49
+ ),
50
+ FilePrinter.newLine(),
51
+ func,
52
+ ];
53
+ return {
54
+ location:
55
+ mode === "nest"
56
+ ? `packages/backend/test/features/api`
57
+ : `test/features/api`,
58
+ file: `${["test", "api", ...route.accessor].join("_")}.ts`,
59
+ content: FilePrinter.write({ statements }),
60
+ };
61
+ };
62
+ }
@@ -1,119 +1,127 @@
1
- import { factory } from "@ttsc/factory";
2
-
3
- import { TypeLiteralFactory } from "../factories/TypeLiteralFactory";
4
- import ts from "../internal/ts";
5
- import { FilePrinter } from "../utils/FilePrinter";
6
- import { MapUtil } from "../utils/MapUtil";
7
-
8
- export class NestiaMigrateImportProgrammer {
9
- private external_: Map<string, IClause> = new Map();
10
- private dtos_: Set<string> = new Set();
11
-
12
- public constructor() {}
13
-
14
- public empty(): boolean {
15
- return this.external_.size === 0 && this.dtos_.size === 0;
16
- }
17
-
18
- public external(props: MigrateImportProgrammer.IProps): string {
19
- const clause: IClause = MapUtil.take(this.external_)(props.library)(() => ({
20
- default: null,
21
- instances: new Set(),
22
- }));
23
- const name: string = props.name.split(".")[0]!;
24
- if (props.type === "default") clause.default = props.name;
25
- else clause.instances.add(name);
26
- return name;
27
- }
28
-
29
- public dto(name: string, namespace?: string): ts.TypeReferenceNode {
30
- const file: string = name.split(".")[0]!;
31
- this.dtos_.add(file);
32
- return factory.createTypeReferenceNode(
33
- namespace?.length
34
- ? factory.createQualifiedName(
35
- factory.createIdentifier(namespace),
36
- factory.createIdentifier(file),
37
- )
38
- : name,
39
- );
40
- }
41
-
42
- public tag(type: string, arg?: any): ts.TypeReferenceNode {
43
- const instance: string = this.external({
44
- type: "instance",
45
- library: "typia",
46
- name: "tags",
47
- });
48
- return factory.createTypeReferenceNode(
49
- `${instance}.${type}`,
50
- arg === undefined ? [] : [TypeLiteralFactory.generate(arg)],
51
- );
52
- }
53
-
54
- public toStatements(
55
- dtoPath: (name: string) => string,
56
- current?: string,
57
- ): ts.Statement[] {
58
- return [
59
- ...[...this.external_.entries()].map(([library, props]) =>
60
- factory.createImportDeclaration(
61
- undefined,
62
- factory.createImportClause(
63
- false,
64
- props.default !== null
65
- ? factory.createIdentifier(props.default)
66
- : undefined,
67
- props.instances.size
68
- ? factory.createNamedImports(
69
- [...props.instances].map((i) =>
70
- factory.createImportSpecifier(
71
- false,
72
- undefined,
73
- factory.createIdentifier(i),
74
- ),
75
- ),
76
- )
77
- : undefined,
78
- ),
79
- factory.createStringLiteral(library),
80
- ),
81
- ),
82
- ...(this.external_.size && this.dtos_.size
83
- ? [FilePrinter.newLine()]
84
- : []),
85
- ...[...this.dtos_]
86
- .filter(
87
- current ? (name) => name !== current!.split(".")[0] : () => true,
88
- )
89
- .map((i) =>
90
- factory.createImportDeclaration(
91
- undefined,
92
- factory.createImportClause(
93
- false,
94
- undefined,
95
- factory.createNamedImports([
96
- factory.createImportSpecifier(
97
- false,
98
- undefined,
99
- factory.createIdentifier(i),
100
- ),
101
- ]),
102
- ),
103
- factory.createStringLiteral(dtoPath(i)),
104
- ),
105
- ),
106
- ];
107
- }
108
- }
109
- export namespace MigrateImportProgrammer {
110
- export interface IProps {
111
- type: "default" | "instance";
112
- library: string;
113
- name: string;
114
- }
115
- }
116
- interface IClause {
117
- default: string | null;
118
- instances: Set<string>;
119
- }
1
+ import { factory } from "@ttsc/factory";
2
+
3
+ import { TypeLiteralFactory } from "../factories/TypeLiteralFactory";
4
+ import ts from "../internal/ts";
5
+ import { FilePrinter } from "../utils/FilePrinter";
6
+ import { MapUtil } from "../utils/MapUtil";
7
+
8
+ export class NestiaMigrateImportProgrammer {
9
+ private external_: Map<string, IClause> = new Map();
10
+ private dtos_: Set<string> = new Set();
11
+
12
+ public constructor() {}
13
+
14
+ public empty(): boolean {
15
+ return this.external_.size === 0 && this.dtos_.size === 0;
16
+ }
17
+
18
+ public external(props: MigrateImportProgrammer.IProps): string {
19
+ const clause: IClause = MapUtil.take(this.external_)(props.library)(() => ({
20
+ default: null,
21
+ instances: new Set(),
22
+ }));
23
+ const name: string = props.name.split(".")[0]!;
24
+ if (props.type === "default") clause.default = props.name;
25
+ else clause.instances.add(name);
26
+ return name;
27
+ }
28
+
29
+ public dto(name: string, namespace?: string): ts.TypeReferenceNode {
30
+ const file: string = name.split(".")[0]!;
31
+ this.dtos_.add(file);
32
+ return factory.createTypeReferenceNode(
33
+ namespace?.length
34
+ ? factory.createQualifiedName(
35
+ factory.createIdentifier(namespace),
36
+ factory.createIdentifier(file),
37
+ )
38
+ : name,
39
+ );
40
+ }
41
+
42
+ public tag(type: string, arg?: any): ts.TypeReferenceNode {
43
+ const instance: string = this.external({
44
+ type: "instance",
45
+ library: "typia",
46
+ name: "tags",
47
+ });
48
+ return factory.createTypeReferenceNode(
49
+ `${instance}.${type}`,
50
+ arg === undefined ? [] : [TypeLiteralFactory.generate(arg)],
51
+ );
52
+ }
53
+
54
+ public toStatements(
55
+ dtoPath: (name: string) => string,
56
+ current?: string,
57
+ ): ts.Statement[] {
58
+ // Group the DTO references by their resolved module specifier: relative
59
+ // specifiers stay one-import-per-file, while package specifiers (e.g. the
60
+ // monorepo's `@ORGANIZATION/PROJECT-api`) merge into a single clause.
61
+ const modules: Map<string, string[]> = new Map();
62
+ for (const name of this.dtos_)
63
+ if (current === undefined || name !== current.split(".")[0])
64
+ MapUtil.take(modules)(dtoPath(name))(() => []).push(name);
65
+ return [
66
+ ...[...this.external_.entries()].map(([library, props]) =>
67
+ factory.createImportDeclaration(
68
+ undefined,
69
+ factory.createImportClause(
70
+ false,
71
+ props.default !== null
72
+ ? factory.createIdentifier(props.default)
73
+ : undefined,
74
+ props.instances.size
75
+ ? factory.createNamedImports(
76
+ [...props.instances].map((i) =>
77
+ factory.createImportSpecifier(
78
+ false,
79
+ undefined,
80
+ factory.createIdentifier(i),
81
+ ),
82
+ ),
83
+ )
84
+ : undefined,
85
+ ),
86
+ factory.createStringLiteral(library),
87
+ ),
88
+ ),
89
+ ...(this.external_.size && this.dtos_.size
90
+ ? [FilePrinter.newLine()]
91
+ : []),
92
+ ...[...modules.entries()].map(([specifier, names]) =>
93
+ factory.createImportDeclaration(
94
+ undefined,
95
+ // DTO files declare pure types, and generated code references them
96
+ // only in type positions — keep the clause type-only so emitted
97
+ // JS never loads the DTO module at runtime.
98
+ factory.createImportClause(
99
+ true,
100
+ undefined,
101
+ factory.createNamedImports(
102
+ names.map((name) =>
103
+ factory.createImportSpecifier(
104
+ false,
105
+ undefined,
106
+ factory.createIdentifier(name),
107
+ ),
108
+ ),
109
+ ),
110
+ ),
111
+ factory.createStringLiteral(specifier),
112
+ ),
113
+ ),
114
+ ];
115
+ }
116
+ }
117
+ export namespace MigrateImportProgrammer {
118
+ export interface IProps {
119
+ type: "default" | "instance";
120
+ library: string;
121
+ name: string;
122
+ }
123
+ }
124
+ interface IClause {
125
+ default: string | null;
126
+ instances: Set<string>;
127
+ }