@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestia/migrate",
3
- "version": "12.0.0-rc.2",
3
+ "version": "12.0.0-rc.4",
4
4
  "description": "Migration program from swagger to NestJS",
5
5
  "main": "lib/index.js",
6
6
  "exports": {
@@ -35,28 +35,24 @@
35
35
  },
36
36
  "homepage": "https://nestia.io",
37
37
  "devDependencies": {
38
- "@rollup/plugin-commonjs": "^29.0.0",
39
- "@rollup/plugin-esm-shim": "^0.1.8",
40
- "@rollup/plugin-node-resolve": "^16.0.3",
41
38
  "@types/inquirer": "^9.0.7",
42
39
  "@types/node": "^25.3.3",
43
40
  "js-yaml": "^4.1.0",
44
41
  "rimraf": "^6.1.3",
45
- "rollup": "^4.56.0",
46
- "rollup-plugin-node-externals": "^8.1.2",
47
- "typescript": "7.0.1-rc"
42
+ "rolldown": "^1.1.5",
43
+ "typescript": "^7.0.2"
48
44
  },
49
45
  "dependencies": {
50
46
  "@trivago/prettier-plugin-sort-imports": "^4.3.0",
51
- "@ttsc/factory": "^0.16.10",
52
- "@typia/interface": "^13.0.0-rc.1",
53
- "@typia/utils": "^13.0.0-rc.1",
47
+ "@ttsc/factory": "^0.18.1",
48
+ "@typia/interface": "^13.0.1",
49
+ "@typia/utils": "^13.0.1",
54
50
  "commander": "10.0.0",
55
51
  "inquirer": "8.2.5",
56
52
  "prettier": "^3.8.1",
57
53
  "prettier-plugin-jsdoc": "^1.8.0",
58
54
  "tstl": "^3.0.0",
59
- "typia": "^13.0.0-rc.1"
55
+ "typia": "^13.0.1"
60
56
  },
61
57
  "files": [
62
58
  "lib",
@@ -71,7 +67,7 @@
71
67
  "access": "public"
72
68
  },
73
69
  "scripts": {
74
- "build": "rimraf lib && ttsc && tsc --emitDeclarationOnly && rollup -c",
70
+ "build": "rimraf lib && ttsc && tsc --emitDeclarationOnly && rolldown -c && node ../../deploy/verify-package-exports.cjs --esm",
75
71
  "bundle": "node src/executable/bundle.js",
76
72
  "dev": "rimraf lib && ttsc --watch",
77
73
  "test": "node lib/test"
@@ -1,196 +1,192 @@
1
- import {
2
- IHttpMigrateApplication,
3
- IHttpMigrateRoute,
4
- OpenApi,
5
- OpenApiV3,
6
- OpenApiV3_1,
7
- OpenApiV3_2,
8
- SwaggerV2,
9
- } from "@typia/interface";
10
- import type { IValidation } from "@typia/interface";
11
- import * as typiaUtils from "@typia/utils";
12
-
13
- import { NEST_TEMPLATE } from "./bundles/NEST_TEMPLATE";
14
- import { SDK_TEMPLATE } from "./bundles/SDK_TEMPLATE";
15
- import { NestiaMigrateApiProgrammer } from "./programmers/NestiaMigrateApiProgrammer";
16
- import { NestiaMigrateApiStartProgrammer } from "./programmers/NestiaMigrateApiStartProgrammer";
17
- import { NestiaMigrateE2eProgrammer } from "./programmers/NestiaMigrateE2eProgrammer";
18
- import { NestiaMigrateNestProgrammer } from "./programmers/NestiaMigrateNestProgrammer";
19
- import { INestiaMigrateConfig } from "./structures/INestiaMigrateConfig";
20
- import { INestiaMigrateContext } from "./structures/INestiaMigrateContext";
21
-
22
- const { HttpMigration, OpenApiConverter } =
23
- (typiaUtils as { default?: typeof typiaUtils }).default ?? typiaUtils;
24
-
25
- export class NestiaMigrateApplication {
26
- private readonly data_: IHttpMigrateApplication;
27
-
28
- /* -----------------------------------------------------------
29
- CONSTRUCTORS
30
- ----------------------------------------------------------- */
31
- public constructor(public readonly document: OpenApi.IDocument) {
32
- this.data_ = HttpMigration.application(document);
33
- }
34
-
35
- public static assert(
36
- document:
37
- | SwaggerV2.IDocument
38
- | OpenApiV3.IDocument
39
- | OpenApiV3_1.IDocument
40
- | OpenApiV3_2.IDocument
41
- | OpenApi.IDocument,
42
- ): NestiaMigrateApplication {
43
- return new NestiaMigrateApplication(
44
- OpenApiConverter.upgradeDocument(document),
45
- );
46
- }
47
-
48
- public static validate(
49
- document:
50
- | SwaggerV2.IDocument
51
- | OpenApiV3.IDocument
52
- | OpenApiV3_1.IDocument
53
- | OpenApiV3_2.IDocument
54
- | OpenApi.IDocument,
55
- ): IValidation<NestiaMigrateApplication> {
56
- try {
57
- return {
58
- success: true,
59
- data: new NestiaMigrateApplication(
60
- OpenApiConverter.upgradeDocument(document),
61
- ),
62
- };
63
- } catch (exp) {
64
- const message: string = exp instanceof Error ? exp.message : String(exp);
65
- return {
66
- success: false,
67
- data: document,
68
- errors: [
69
- {
70
- path: "$input",
71
- expected:
72
- "SwaggerV2.IDocument | OpenApiV3.IDocument | OpenApiV3_1.IDocument | OpenApiV3_2.IDocument | OpenApi.IDocument",
73
- value: message,
74
- },
75
- ],
76
- };
77
- }
78
- }
79
-
80
- /* -----------------------------------------------------------
81
- ACCESSORS
82
- ----------------------------------------------------------- */
83
- public getData(): IHttpMigrateApplication {
84
- return this.data_;
85
- }
86
-
87
- public nest(config: INestiaMigrateConfig): Record<string, string> {
88
- const context: INestiaMigrateContext = createContext(
89
- "nest",
90
- this.data_,
91
- config,
92
- );
93
- const files: Record<string, string> = {
94
- ...Object.fromEntries(
95
- Object.entries(NEST_TEMPLATE).filter(
96
- ([key]) =>
97
- key.startsWith("src/api/structures") === false &&
98
- key.startsWith("src/api/functional") === false &&
99
- key.startsWith("src/api/controllers") === false &&
100
- key.startsWith("test/features") === false,
101
- ),
102
- ),
103
- ...NestiaMigrateNestProgrammer.write(context),
104
- ...NestiaMigrateApiProgrammer.write(context),
105
- ...(config.e2e ? NestiaMigrateE2eProgrammer.write(context) : {}),
106
- ...(config.keyword === false
107
- ? {
108
- "nestia.config.ts": NEST_TEMPLATE["nestia.config.ts"]!.replace(
109
- "keyword: true",
110
- "keyword: false",
111
- ),
112
- }
113
- : {}),
114
- };
115
- return config.package ? renameSlug(config.package, files) : files;
116
- }
117
-
118
- public sdk(config: INestiaMigrateConfig): Record<string, string> {
119
- const context: INestiaMigrateContext = createContext(
120
- "sdk",
121
- this.data_,
122
- config,
123
- );
124
- const files: Record<string, string> = {
125
- ...Object.fromEntries(
126
- Object.entries(SDK_TEMPLATE).filter(
127
- ([key]) =>
128
- key.startsWith("src/structures") === false &&
129
- key.startsWith("src/functional") === false &&
130
- key.startsWith("test/features") === false,
131
- ),
132
- ),
133
- ...NestiaMigrateApiProgrammer.write(context),
134
- ...NestiaMigrateApiStartProgrammer.write(context),
135
- ...(config.e2e ? NestiaMigrateE2eProgrammer.write(context) : {}),
136
- "swagger.json": JSON.stringify(this.document, null, 2),
137
- };
138
- return config.package ? renameSlug(config.package, files) : files;
139
- }
140
- }
141
-
142
- const createContext = (
143
- mode: "nest" | "sdk",
144
- application: IHttpMigrateApplication,
145
- config: INestiaMigrateConfig,
146
- ): INestiaMigrateContext => {
147
- const routes: IHttpMigrateRoute[] = escapeConflictingAccessors(
148
- application.routes
149
- .filter((r) => r.method !== "query")
150
- .map((r) => ({
151
- ...r,
152
- accessor: [...r.accessor],
153
- })),
154
- );
155
- return {
156
- mode,
157
- application: {
158
- ...application,
159
- routes,
160
- },
161
- config,
162
- };
163
- };
164
-
165
- const escapeConflictingAccessors = (
166
- routes: IHttpMigrateRoute[],
167
- ): IHttpMigrateRoute[] => {
168
- for (const route of routes)
169
- while (true) {
170
- const neighbor: IHttpMigrateRoute | undefined = routes.find(
171
- (candidate) =>
172
- candidate !== route &&
173
- candidate.accessor.length < route.accessor.length &&
174
- route.accessor
175
- .slice(0, candidate.accessor.length)
176
- .every((value, index) => value === candidate.accessor[index]),
177
- );
178
- if (neighbor === undefined) break;
179
-
180
- const index: number = neighbor.accessor.length - 1;
181
- route.accessor[index] = `_${route.accessor[index]}`;
182
- }
183
- return routes;
184
- };
185
-
186
- const renameSlug = (
187
- slug: string,
188
- files: Record<string, string>,
189
- ): Record<string, string> => {
190
- return Object.fromEntries(
191
- Object.entries(files).map(([key, value]) => [
192
- key,
193
- value.split(`@ORGANIZATION/PROJECT`).join(slug),
194
- ]),
195
- );
196
- };
1
+ import {
2
+ IHttpMigrateApplication,
3
+ IHttpMigrateRoute,
4
+ OpenApi,
5
+ OpenApiV3,
6
+ OpenApiV3_1,
7
+ OpenApiV3_2,
8
+ SwaggerV2,
9
+ } from "@typia/interface";
10
+ import type { IValidation } from "@typia/interface";
11
+ import { HttpMigration, OpenApiConverter } from "@typia/utils";
12
+
13
+ import { NEST_TEMPLATE } from "./bundles/NEST_TEMPLATE";
14
+ import { SDK_TEMPLATE } from "./bundles/SDK_TEMPLATE";
15
+ import { NestiaMigrateApiProgrammer } from "./programmers/NestiaMigrateApiProgrammer";
16
+ import { NestiaMigrateApiStartProgrammer } from "./programmers/NestiaMigrateApiStartProgrammer";
17
+ import { NestiaMigrateE2eProgrammer } from "./programmers/NestiaMigrateE2eProgrammer";
18
+ import { NestiaMigrateNestProgrammer } from "./programmers/NestiaMigrateNestProgrammer";
19
+ import { INestiaMigrateConfig } from "./structures/INestiaMigrateConfig";
20
+ import { INestiaMigrateContext } from "./structures/INestiaMigrateContext";
21
+
22
+ export class NestiaMigrateApplication {
23
+ private readonly data_: IHttpMigrateApplication;
24
+
25
+ /* -----------------------------------------------------------
26
+ CONSTRUCTORS
27
+ ----------------------------------------------------------- */
28
+ public constructor(public readonly document: OpenApi.IDocument) {
29
+ this.data_ = HttpMigration.application(document);
30
+ }
31
+
32
+ public static assert(
33
+ document:
34
+ | SwaggerV2.IDocument
35
+ | OpenApiV3.IDocument
36
+ | OpenApiV3_1.IDocument
37
+ | OpenApiV3_2.IDocument
38
+ | OpenApi.IDocument,
39
+ ): NestiaMigrateApplication {
40
+ return new NestiaMigrateApplication(
41
+ OpenApiConverter.upgradeDocument(document),
42
+ );
43
+ }
44
+
45
+ public static validate(
46
+ document:
47
+ | SwaggerV2.IDocument
48
+ | OpenApiV3.IDocument
49
+ | OpenApiV3_1.IDocument
50
+ | OpenApiV3_2.IDocument
51
+ | OpenApi.IDocument,
52
+ ): IValidation<NestiaMigrateApplication> {
53
+ try {
54
+ return {
55
+ success: true,
56
+ data: new NestiaMigrateApplication(
57
+ OpenApiConverter.upgradeDocument(document),
58
+ ),
59
+ };
60
+ } catch (exp) {
61
+ const message: string = exp instanceof Error ? exp.message : String(exp);
62
+ return {
63
+ success: false,
64
+ data: document,
65
+ errors: [
66
+ {
67
+ path: "$input",
68
+ expected:
69
+ "SwaggerV2.IDocument | OpenApiV3.IDocument | OpenApiV3_1.IDocument | OpenApiV3_2.IDocument | OpenApi.IDocument",
70
+ value: message,
71
+ },
72
+ ],
73
+ };
74
+ }
75
+ }
76
+
77
+ /* -----------------------------------------------------------
78
+ ACCESSORS
79
+ ----------------------------------------------------------- */
80
+ public getData(): IHttpMigrateApplication {
81
+ return this.data_;
82
+ }
83
+
84
+ public nest(config: INestiaMigrateConfig): Record<string, string> {
85
+ const context: INestiaMigrateContext = createContext(
86
+ "nest",
87
+ this.data_,
88
+ config,
89
+ );
90
+ const files: Record<string, string> = {
91
+ ...Object.fromEntries(
92
+ Object.entries(NEST_TEMPLATE).filter(
93
+ ([key]) =>
94
+ key.startsWith("packages/api/src/structures") === false &&
95
+ key.startsWith("packages/api/src/functional") === false &&
96
+ key.startsWith("packages/backend/src/controllers") === false &&
97
+ key.startsWith("packages/backend/test/features") === false,
98
+ ),
99
+ ),
100
+ ...NestiaMigrateNestProgrammer.write(context),
101
+ ...NestiaMigrateApiProgrammer.write(context),
102
+ ...(config.e2e ? NestiaMigrateE2eProgrammer.write(context) : {}),
103
+ ...(config.keyword === false
104
+ ? {
105
+ "packages/backend/nestia.config.ts": NEST_TEMPLATE[
106
+ "packages/backend/nestia.config.ts"
107
+ ]!.replace("keyword: true", "keyword: false"),
108
+ }
109
+ : {}),
110
+ };
111
+ return config.package ? renameSlug(config.package, files) : files;
112
+ }
113
+
114
+ public sdk(config: INestiaMigrateConfig): Record<string, string> {
115
+ const context: INestiaMigrateContext = createContext(
116
+ "sdk",
117
+ this.data_,
118
+ config,
119
+ );
120
+ const files: Record<string, string> = {
121
+ ...Object.fromEntries(
122
+ Object.entries(SDK_TEMPLATE).filter(
123
+ ([key]) =>
124
+ key.startsWith("src/structures") === false &&
125
+ key.startsWith("src/functional") === false &&
126
+ key.startsWith("test/features") === false,
127
+ ),
128
+ ),
129
+ ...NestiaMigrateApiProgrammer.write(context),
130
+ ...NestiaMigrateApiStartProgrammer.write(context),
131
+ ...(config.e2e ? NestiaMigrateE2eProgrammer.write(context) : {}),
132
+ "swagger.json": JSON.stringify(this.document, null, 2),
133
+ };
134
+ return config.package ? renameSlug(config.package, files) : files;
135
+ }
136
+ }
137
+
138
+ const createContext = (
139
+ mode: "nest" | "sdk",
140
+ application: IHttpMigrateApplication,
141
+ config: INestiaMigrateConfig,
142
+ ): INestiaMigrateContext => {
143
+ const routes: IHttpMigrateRoute[] = escapeConflictingAccessors(
144
+ application.routes
145
+ .filter((r) => r.method !== "query")
146
+ .map((r) => ({
147
+ ...r,
148
+ accessor: [...r.accessor],
149
+ })),
150
+ );
151
+ return {
152
+ mode,
153
+ application: {
154
+ ...application,
155
+ routes,
156
+ },
157
+ config,
158
+ };
159
+ };
160
+
161
+ const escapeConflictingAccessors = (
162
+ routes: IHttpMigrateRoute[],
163
+ ): IHttpMigrateRoute[] => {
164
+ for (const route of routes)
165
+ while (true) {
166
+ const neighbor: IHttpMigrateRoute | undefined = routes.find(
167
+ (candidate) =>
168
+ candidate !== route &&
169
+ candidate.accessor.length < route.accessor.length &&
170
+ route.accessor
171
+ .slice(0, candidate.accessor.length)
172
+ .every((value, index) => value === candidate.accessor[index]),
173
+ );
174
+ if (neighbor === undefined) break;
175
+
176
+ const index: number = neighbor.accessor.length - 1;
177
+ route.accessor[index] = `_${route.accessor[index]}`;
178
+ }
179
+ return routes;
180
+ };
181
+
182
+ const renameSlug = (
183
+ slug: string,
184
+ files: Record<string, string>,
185
+ ): Record<string, string> => {
186
+ return Object.fromEntries(
187
+ Object.entries(files).map(([key, value]) => [
188
+ key,
189
+ value.split(`@ORGANIZATION/PROJECT`).join(slug),
190
+ ]),
191
+ );
192
+ };
@@ -1,51 +1,51 @@
1
- import { IHttpMigrateRoute } from "@typia/interface";
2
-
3
- import { INestiaMigrateController } from "../structures/INestiaMigrateController";
4
- import { MapUtil } from "../utils/MapUtil";
5
- import { StringUtil } from "../utils/StringUtil";
6
-
7
- export namespace NestiaMigrateControllerAnalyzer {
8
- export const analyze = (
9
- routes: IHttpMigrateRoute[],
10
- ): INestiaMigrateController[] => {
11
- const collection: Map<string, INestiaMigrateController> = new Map();
12
- for (const r of routes) {
13
- const name: string =
14
- r.operation()["x-samchon-controller"] ??
15
- (r.accessor.length <= 1
16
- ? "__App"
17
- : r.accessor.slice(0, -1).map(StringUtil.capitalize).join("")) +
18
- "Controller";
19
- MapUtil.take(collection)(name)(() => ({
20
- name,
21
- path: "@lazy",
22
- location: "@lazy",
23
- routes: [],
24
- })).routes.push(r);
25
- }
26
-
27
- const controllers: INestiaMigrateController[] = [...collection.values()];
28
- for (const col of controllers) {
29
- const splitPath = (r: IHttpMigrateRoute): string[] =>
30
- r.emendedPath.split("/");
31
- const splitLocation = (r: IHttpMigrateRoute): string[] =>
32
- splitPath(r).filter((s) => s.length !== 0 && s[0] !== ":");
33
-
34
- const minPath: string[] = splitPath(col.routes[0]!);
35
- const minLocation: string[] = splitLocation(col.routes[0]!);
36
- for (const r of col.routes.slice(1)) {
37
- minPath.splice(getSplitIndex(minPath, splitPath(r)));
38
- minLocation.splice(getSplitIndex(minLocation, splitLocation(r)));
39
- }
40
- col.path = minPath.join("/");
41
- col.location = ["src", "controllers", ...minLocation].join("/");
42
- }
43
- return controllers;
44
- };
45
- }
46
-
47
- const getSplitIndex = (x: string[], y: string[]) => {
48
- const n: number = Math.min(x.length, y.length);
49
- for (let i: number = 0; i < n; ++i) if (x[i] !== y[i]) return i;
50
- return n;
51
- };
1
+ import { IHttpMigrateRoute } from "@typia/interface";
2
+
3
+ import { INestiaMigrateController } from "../structures/INestiaMigrateController";
4
+ import { MapUtil } from "../utils/MapUtil";
5
+ import { StringUtil } from "../utils/StringUtil";
6
+
7
+ export namespace NestiaMigrateControllerAnalyzer {
8
+ export const analyze = (
9
+ routes: IHttpMigrateRoute[],
10
+ ): INestiaMigrateController[] => {
11
+ const collection: Map<string, INestiaMigrateController> = new Map();
12
+ for (const r of routes) {
13
+ const name: string =
14
+ r.operation()["x-samchon-controller"] ??
15
+ (r.accessor.length <= 1
16
+ ? "__App"
17
+ : r.accessor.slice(0, -1).map(StringUtil.capitalize).join("")) +
18
+ "Controller";
19
+ MapUtil.take(collection)(name)(() => ({
20
+ name,
21
+ path: "@lazy",
22
+ location: "@lazy",
23
+ routes: [],
24
+ })).routes.push(r);
25
+ }
26
+
27
+ const controllers: INestiaMigrateController[] = [...collection.values()];
28
+ for (const col of controllers) {
29
+ const splitPath = (r: IHttpMigrateRoute): string[] =>
30
+ r.emendedPath.split("/");
31
+ const splitLocation = (r: IHttpMigrateRoute): string[] =>
32
+ splitPath(r).filter((s) => s.length !== 0 && s[0] !== ":");
33
+
34
+ const minPath: string[] = splitPath(col.routes[0]!);
35
+ const minLocation: string[] = splitLocation(col.routes[0]!);
36
+ for (const r of col.routes.slice(1)) {
37
+ minPath.splice(getSplitIndex(minPath, splitPath(r)));
38
+ minLocation.splice(getSplitIndex(minLocation, splitLocation(r)));
39
+ }
40
+ col.path = minPath.join("/");
41
+ col.location = ["src", "controllers", ...minLocation].join("/");
42
+ }
43
+ return controllers;
44
+ };
45
+ }
46
+
47
+ const getSplitIndex = (x: string[], y: string[]) => {
48
+ const n: number = Math.min(x.length, y.length);
49
+ for (let i: number = 0; i < n; ++i) if (x[i] !== y[i]) return i;
50
+ return n;
51
+ };
@@ -1,28 +1,32 @@
1
- import { VariadicSingleton } from "tstl";
2
-
3
- export namespace NestiaMigrateFileArchiver {
4
- export const archive = async (props: {
5
- mkdir: (path: string) => Promise<void>;
6
- writeFile: (path: string, content: string) => Promise<void>;
7
- root: string;
8
- files: Record<string, string>;
9
- }): Promise<void> => {
10
- const mkdir = new VariadicSingleton(
11
- async (location: string): Promise<void> => {
12
- try {
13
- await props.mkdir(`${props.root}/${location}`);
14
- } catch {}
15
- },
16
- );
17
- const iterate = async (location: string): Promise<void> => {
18
- const sequence: string[] = location
19
- .split("/")
20
- .map((_str, i, entire) => entire.slice(0, i + 1).join("/"));
21
- for (const s of sequence) await mkdir.get(s);
22
- };
23
- for (const [key, value] of Object.entries(props.files)) {
24
- await iterate(key.split("/").slice(0, -1).join("/"));
25
- await props.writeFile(`${props.root}/${key}`, value);
26
- }
27
- };
28
- }
1
+ import { VariadicSingleton } from "tstl";
2
+
3
+ export namespace NestiaMigrateFileArchiver {
4
+ export const archive = async (props: {
5
+ mkdir: (path: string) => Promise<void>;
6
+ writeFile: (path: string, content: string) => Promise<void>;
7
+ root: string;
8
+ files: Record<string, string>;
9
+ }): Promise<void> => {
10
+ const mkdir = new VariadicSingleton(
11
+ async (location: string): Promise<void> => {
12
+ try {
13
+ await props.mkdir(`${props.root}/${location}`);
14
+ } catch {}
15
+ },
16
+ );
17
+ const iterate = async (location: string): Promise<void> => {
18
+ const sequence: string[] = location
19
+ .split("/")
20
+ .map((_str, i, entire) => entire.slice(0, i + 1).join("/"));
21
+ for (const s of sequence) await mkdir.get(s);
22
+ };
23
+ // The file set may lead with a nested path (the monorepo template's
24
+ // first key is `.github/workflows/build.yml`), so the archive root must
25
+ // exist before the per-directory mkdir walk below it.
26
+ await mkdir.get("");
27
+ for (const [key, value] of Object.entries(props.files)) {
28
+ await iterate(key.split("/").slice(0, -1).join("/"));
29
+ await props.writeFile(`${props.root}/${key}`, value);
30
+ }
31
+ };
32
+ }