@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,402 +1,402 @@
1
- import { SyntaxKind, factory } from "@ttsc/factory";
2
- import { IHttpMigrateRoute } from "@typia/interface";
3
- import { OpenApi } from "typia";
4
-
5
- import { ExpressionFactory } from "../factories/ExpressionFactory";
6
- import { IdentifierFactory } from "../factories/IdentifierFactory";
7
- import { LiteralFactory } from "../factories/LiteralFactory";
8
- import { TypeFactory } from "../factories/TypeFactory";
9
- import ts from "../internal/ts";
10
- import { INestiaMigrateConfig } from "../structures/INestiaMigrateConfig";
11
- import { INestiaMigrateController } from "../structures/INestiaMigrateController";
12
- import { FilePrinter } from "../utils/FilePrinter";
13
- import { StringUtil } from "../utils/StringUtil";
14
- import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
15
- import { NestiaMigrateSchemaProgrammer } from "./NestiaMigrateSchemaProgrammer";
16
-
17
- export namespace NestiaMigrateNestMethodProgrammer {
18
- export interface IContext {
19
- config: INestiaMigrateConfig;
20
- components: OpenApi.IComponents;
21
- importer: NestiaMigrateImportProgrammer;
22
- controller: INestiaMigrateController;
23
- route: IHttpMigrateRoute;
24
- }
25
-
26
- export const write = (ctx: IContext): ts.MethodDeclaration => {
27
- const output: ts.TypeNode = ctx.route.success
28
- ? NestiaMigrateSchemaProgrammer.write({
29
- components: ctx.components,
30
- importer: ctx.importer,
31
- schema: ctx.route.success.schema,
32
- })
33
- : TypeFactory.keyword("void");
34
-
35
- const method: ts.MethodDeclaration = factory.createMethodDeclaration(
36
- [
37
- ...writeMethodDecorators(ctx),
38
- factory.createToken(SyntaxKind.PublicKeyword),
39
- factory.createToken(SyntaxKind.AsyncKeyword),
40
- ],
41
- undefined,
42
- ctx.route.accessor.at(-1)!,
43
- undefined,
44
- undefined,
45
- writeParameters(ctx),
46
- factory.createTypeReferenceNode("Promise", [output]),
47
- factory.createBlock(
48
- [
49
- ...[
50
- ...ctx.route.parameters.map((p) => p.key),
51
- ...(ctx.route.headers ? ["headers"] : []),
52
- ...(ctx.route.query ? ["query"] : []),
53
- ...(ctx.route.body ? ["body"] : []),
54
- ].map((str) =>
55
- factory.createExpressionStatement(factory.createIdentifier(str)),
56
- ),
57
- factory.createReturnStatement(
58
- factory.createCallExpression(
59
- IdentifierFactory.access(
60
- factory.createIdentifier(
61
- ctx.importer.external({
62
- type: "default",
63
- library: "typia",
64
- name: "typia",
65
- }),
66
- ),
67
- "random",
68
- ),
69
- [output],
70
- undefined,
71
- ),
72
- ),
73
- ],
74
- true,
75
- ),
76
- );
77
- return FilePrinter.description(
78
- method,
79
- writeDescription(ctx.config, ctx.route),
80
- );
81
- };
82
-
83
- const writeDescription = (
84
- config: INestiaMigrateConfig,
85
- method: IHttpMigrateRoute,
86
- ): string =>
87
- [
88
- method.comment(),
89
- `@${config.author?.tag ?? "nestia"} ${config.author?.value ?? "Generated by Nestia - https://github.com/samchon/nestia"}`,
90
- ].join("\n");
91
-
92
- const writeMethodDecorators = (ctx: IContext): ts.Decorator[] => {
93
- const external = (lib: string, instance: string): ts.Identifier =>
94
- factory.createIdentifier(
95
- ctx.importer.external({
96
- type: "instance",
97
- library: lib,
98
- name: instance,
99
- }),
100
- );
101
-
102
- // EXAMPLES
103
- const decorators: ts.Decorator[] = [];
104
- if (ctx.route.success)
105
- decorators.push(
106
- ...writeExampleDecorators("Response")(ctx.importer)(
107
- ctx.route.success.media(),
108
- ),
109
- );
110
-
111
- // HUMAN-ONLY
112
- if (ctx.route.operation()["x-samchon-human"] === true)
113
- decorators.push(
114
- factory.createDecorator(
115
- factory.createCallExpression(
116
- external("@nestia/core", "HumanRoute"),
117
- undefined,
118
- undefined,
119
- ),
120
- ),
121
- );
122
-
123
- // ROUTER
124
- const localPath: string = ctx.route.emendedPath
125
- .slice(ctx.controller.path.length)
126
- .split("/")
127
- .filter((str) => !!str.length)
128
- .join("/");
129
- const router = (instance: string) =>
130
- factory.createDecorator(
131
- factory.createCallExpression(
132
- IdentifierFactory.access(
133
- external("@nestia/core", instance),
134
- StringUtil.capitalize(ctx.route.method),
135
- ),
136
- [],
137
- localPath.length
138
- ? [factory.createStringLiteral(localPath)]
139
- : undefined,
140
- ),
141
- );
142
- if (ctx.route.success?.["x-nestia-encrypted"])
143
- decorators.push(router("EncryptedRoute"));
144
- else if (ctx.route.success?.type === "text/plain")
145
- decorators.push(
146
- factory.createDecorator(
147
- factory.createCallExpression(
148
- external("@nestjs/common", StringUtil.capitalize(ctx.route.method)),
149
- [],
150
- [factory.createStringLiteral(ctx.route.path)],
151
- ),
152
- ),
153
- );
154
- else if (ctx.route.success?.type === "application/x-www-form-urlencoded")
155
- decorators.push(router("TypedQuery"));
156
- else if (ctx.route.method === "head")
157
- decorators.push(
158
- factory.createDecorator(
159
- factory.createCallExpression(
160
- external("@nestjs/common", "Head"),
161
- [],
162
- [factory.createStringLiteral(ctx.route.path)],
163
- ),
164
- ),
165
- );
166
- else if (
167
- ctx.route.success === null ||
168
- ctx.route.success?.type === "application/json"
169
- )
170
- decorators.push(router("TypedRoute"));
171
- for (const [key, value] of Object.entries(ctx.route.exceptions ?? {}))
172
- decorators.push(
173
- factory.createDecorator(
174
- factory.createCallExpression(
175
- external("@nestia/core", "TypedException"),
176
- [
177
- NestiaMigrateSchemaProgrammer.write({
178
- components: ctx.components,
179
- importer: ctx.importer,
180
- schema: value.schema,
181
- }),
182
- ],
183
- [
184
- isNaN(Number(key))
185
- ? factory.createStringLiteral(key)
186
- : ExpressionFactory.number(Number(key)),
187
- ...(value.response().description?.length
188
- ? [factory.createStringLiteral(value.response().description!)]
189
- : []),
190
- ],
191
- ),
192
- ),
193
- );
194
- return decorators;
195
- };
196
-
197
- const writeParameters = (ctx: IContext): ts.ParameterDeclaration[] => [
198
- ...ctx.route.parameters.map((p) =>
199
- factory.createParameterDeclaration(
200
- [
201
- ...writeExampleDecorators("Parameter")(ctx.importer)(p.parameter()),
202
- factory.createDecorator(
203
- factory.createCallExpression(
204
- factory.createIdentifier(
205
- ctx.importer.external({
206
- type: "instance",
207
- library: "@nestia/core",
208
- name: "TypedParam",
209
- }),
210
- ),
211
- undefined,
212
- [factory.createStringLiteral(p.key)],
213
- ),
214
- ),
215
- ],
216
- undefined,
217
- p.key,
218
- undefined,
219
- NestiaMigrateSchemaProgrammer.write({
220
- components: ctx.components,
221
- importer: ctx.importer,
222
- schema: p.schema,
223
- }),
224
- ),
225
- ),
226
- ...(ctx.route.headers
227
- ? [
228
- writeDtoParameter({
229
- method: "TypedHeaders",
230
- variable: "headers",
231
- arguments: [],
232
- })(ctx.components)(ctx.importer)({
233
- required: true,
234
- schema: ctx.route.headers.schema,
235
- example: ctx.route.headers.example(),
236
- examples: ctx.route.headers.examples(),
237
- }),
238
- ]
239
- : []),
240
- ...(ctx.route.query
241
- ? [
242
- writeDtoParameter({
243
- method: "TypedQuery",
244
- variable: "query",
245
- arguments: [],
246
- })(ctx.components)(ctx.importer)({
247
- required: true,
248
- schema: ctx.route.query.schema,
249
- example: ctx.route.query.example(),
250
- examples: ctx.route.query.examples(),
251
- }),
252
- ]
253
- : []),
254
- ...(ctx.route.body
255
- ? [
256
- writeDtoParameter({
257
- method: ctx.route.body["x-nestia-encrypted"]
258
- ? "EncryptedBody"
259
- : ctx.route.body.type === "application/json"
260
- ? "TypedBody"
261
- : ctx.route.body.type === "application/x-www-form-urlencoded"
262
- ? ["TypedQuery", "Body"]
263
- : ctx.route.body.type === "text/plain"
264
- ? "PlainBody"
265
- : ctx.route.body.type === "multipart/form-data"
266
- ? ["TypedFormData", "Body"]
267
- : "TypedBody",
268
- variable: "body",
269
- arguments:
270
- ctx.route.body.type === "multipart/form-data"
271
- ? [
272
- factory.createArrowFunction(
273
- undefined,
274
- undefined,
275
- [],
276
- undefined,
277
- undefined,
278
- factory.createCallExpression(
279
- factory.createIdentifier(
280
- ctx.importer.external({
281
- type: "default",
282
- library: "multer",
283
- name: "Multer",
284
- }),
285
- ),
286
- undefined,
287
- undefined,
288
- ),
289
- ),
290
- ]
291
- : [],
292
- })(ctx.components)(ctx.importer)({
293
- schema: ctx.route.body.schema,
294
- required: !(
295
- (ctx.route.body.type === "application/json" ||
296
- ctx.route.body.type === "text/plain") &&
297
- ctx.route.operation().requestBody?.required === false
298
- ),
299
- example: ctx.route.body.media().example,
300
- examples: ctx.route.body.media().examples,
301
- }),
302
- ]
303
- : []),
304
- ];
305
-
306
- const writeDtoParameter =
307
- (accessor: {
308
- method: string | [string, string];
309
- variable: string;
310
- arguments: ts.Expression[];
311
- }) =>
312
- (components: OpenApi.IComponents) =>
313
- (importer: NestiaMigrateImportProgrammer) =>
314
- (props: {
315
- schema: OpenApi.IJsonSchema;
316
- required: boolean;
317
- example?: any;
318
- examples?: Record<string, any>;
319
- }): ts.ParameterDeclaration => {
320
- const instance = factory.createIdentifier(
321
- importer.external({
322
- type: "instance",
323
- library: "@nestia/core",
324
- name:
325
- typeof accessor.method === "string"
326
- ? accessor.method
327
- : accessor.method[0],
328
- }),
329
- );
330
- return factory.createParameterDeclaration(
331
- [
332
- ...writeExampleDecorators("Parameter")(importer)(props),
333
- factory.createDecorator(
334
- factory.createCallExpression(
335
- typeof accessor.method === "string"
336
- ? instance
337
- : IdentifierFactory.access(instance, accessor.method[1]),
338
- undefined,
339
- accessor.arguments,
340
- ),
341
- ),
342
- ],
343
- undefined,
344
- accessor.variable,
345
- props.required === false
346
- ? factory.createToken(SyntaxKind.QuestionToken)
347
- : undefined,
348
- NestiaMigrateSchemaProgrammer.write({
349
- components,
350
- importer,
351
- schema: props.schema,
352
- }),
353
- );
354
- };
355
-
356
- const writeExampleDecorators =
357
- (kind: "Response" | "Parameter") =>
358
- (importer: NestiaMigrateImportProgrammer) =>
359
- (media: {
360
- example?: any;
361
- examples?: Record<string, any>;
362
- }): ts.Decorator[] => [
363
- ...(media.example !== undefined
364
- ? [
365
- factory.createDecorator(
366
- factory.createCallExpression(
367
- IdentifierFactory.access(
368
- factory.createIdentifier(
369
- importer.external({
370
- type: "instance",
371
- library: "@nestia/core",
372
- name: "SwaggerExample",
373
- }),
374
- ),
375
- kind,
376
- ),
377
- [],
378
- [LiteralFactory.write(media.example)],
379
- ),
380
- ),
381
- ]
382
- : []),
383
- ...Object.entries(media.examples ?? {}).map(([key, value]) =>
384
- factory.createDecorator(
385
- factory.createCallExpression(
386
- IdentifierFactory.access(
387
- factory.createIdentifier(
388
- importer.external({
389
- type: "instance",
390
- library: "@nestia/core",
391
- name: "SwaggerExample",
392
- }),
393
- ),
394
- kind,
395
- ),
396
- [],
397
- [factory.createStringLiteral(key), LiteralFactory.write(value)],
398
- ),
399
- ),
400
- ),
401
- ];
402
- }
1
+ import { SyntaxKind, factory } from "@ttsc/factory";
2
+ import { IHttpMigrateRoute } from "@typia/interface";
3
+ import { OpenApi } from "typia";
4
+
5
+ import { ExpressionFactory } from "../factories/ExpressionFactory";
6
+ import { IdentifierFactory } from "../factories/IdentifierFactory";
7
+ import { LiteralFactory } from "../factories/LiteralFactory";
8
+ import { TypeFactory } from "../factories/TypeFactory";
9
+ import ts from "../internal/ts";
10
+ import { INestiaMigrateConfig } from "../structures/INestiaMigrateConfig";
11
+ import { INestiaMigrateController } from "../structures/INestiaMigrateController";
12
+ import { FilePrinter } from "../utils/FilePrinter";
13
+ import { StringUtil } from "../utils/StringUtil";
14
+ import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
15
+ import { NestiaMigrateSchemaProgrammer } from "./NestiaMigrateSchemaProgrammer";
16
+
17
+ export namespace NestiaMigrateNestMethodProgrammer {
18
+ export interface IContext {
19
+ config: INestiaMigrateConfig;
20
+ components: OpenApi.IComponents;
21
+ importer: NestiaMigrateImportProgrammer;
22
+ controller: INestiaMigrateController;
23
+ route: IHttpMigrateRoute;
24
+ }
25
+
26
+ export const write = (ctx: IContext): ts.MethodDeclaration => {
27
+ const output: ts.TypeNode = ctx.route.success
28
+ ? NestiaMigrateSchemaProgrammer.write({
29
+ components: ctx.components,
30
+ importer: ctx.importer,
31
+ schema: ctx.route.success.schema,
32
+ })
33
+ : TypeFactory.keyword("void");
34
+
35
+ const method: ts.MethodDeclaration = factory.createMethodDeclaration(
36
+ [
37
+ ...writeMethodDecorators(ctx),
38
+ factory.createToken(SyntaxKind.PublicKeyword),
39
+ factory.createToken(SyntaxKind.AsyncKeyword),
40
+ ],
41
+ undefined,
42
+ ctx.route.accessor.at(-1)!,
43
+ undefined,
44
+ undefined,
45
+ writeParameters(ctx),
46
+ factory.createTypeReferenceNode("Promise", [output]),
47
+ factory.createBlock(
48
+ [
49
+ ...[
50
+ ...ctx.route.parameters.map((p) => p.key),
51
+ ...(ctx.route.headers ? ["headers"] : []),
52
+ ...(ctx.route.query ? ["query"] : []),
53
+ ...(ctx.route.body ? ["body"] : []),
54
+ ].map((str) =>
55
+ factory.createExpressionStatement(factory.createIdentifier(str)),
56
+ ),
57
+ factory.createReturnStatement(
58
+ factory.createCallExpression(
59
+ IdentifierFactory.access(
60
+ factory.createIdentifier(
61
+ ctx.importer.external({
62
+ type: "default",
63
+ library: "typia",
64
+ name: "typia",
65
+ }),
66
+ ),
67
+ "random",
68
+ ),
69
+ [output],
70
+ undefined,
71
+ ),
72
+ ),
73
+ ],
74
+ true,
75
+ ),
76
+ );
77
+ return FilePrinter.description(
78
+ method,
79
+ writeDescription(ctx.config, ctx.route),
80
+ );
81
+ };
82
+
83
+ const writeDescription = (
84
+ config: INestiaMigrateConfig,
85
+ method: IHttpMigrateRoute,
86
+ ): string =>
87
+ [
88
+ method.comment(),
89
+ `@${config.author?.tag ?? "nestia"} ${config.author?.value ?? "Generated by Nestia - https://github.com/samchon/nestia"}`,
90
+ ].join("\n");
91
+
92
+ const writeMethodDecorators = (ctx: IContext): ts.Decorator[] => {
93
+ const external = (lib: string, instance: string): ts.Identifier =>
94
+ factory.createIdentifier(
95
+ ctx.importer.external({
96
+ type: "instance",
97
+ library: lib,
98
+ name: instance,
99
+ }),
100
+ );
101
+
102
+ // EXAMPLES
103
+ const decorators: ts.Decorator[] = [];
104
+ if (ctx.route.success)
105
+ decorators.push(
106
+ ...writeExampleDecorators("Response")(ctx.importer)(
107
+ ctx.route.success.media(),
108
+ ),
109
+ );
110
+
111
+ // HUMAN-ONLY
112
+ if (ctx.route.operation()["x-samchon-human"] === true)
113
+ decorators.push(
114
+ factory.createDecorator(
115
+ factory.createCallExpression(
116
+ external("@nestia/core", "HumanRoute"),
117
+ undefined,
118
+ undefined,
119
+ ),
120
+ ),
121
+ );
122
+
123
+ // ROUTER
124
+ const localPath: string = ctx.route.emendedPath
125
+ .slice(ctx.controller.path.length)
126
+ .split("/")
127
+ .filter((str) => !!str.length)
128
+ .join("/");
129
+ const router = (instance: string) =>
130
+ factory.createDecorator(
131
+ factory.createCallExpression(
132
+ IdentifierFactory.access(
133
+ external("@nestia/core", instance),
134
+ StringUtil.capitalize(ctx.route.method),
135
+ ),
136
+ [],
137
+ localPath.length
138
+ ? [factory.createStringLiteral(localPath)]
139
+ : undefined,
140
+ ),
141
+ );
142
+ if (ctx.route.success?.["x-nestia-encrypted"])
143
+ decorators.push(router("EncryptedRoute"));
144
+ else if (ctx.route.success?.type === "text/plain")
145
+ decorators.push(
146
+ factory.createDecorator(
147
+ factory.createCallExpression(
148
+ external("@nestjs/common", StringUtil.capitalize(ctx.route.method)),
149
+ [],
150
+ [factory.createStringLiteral(ctx.route.path)],
151
+ ),
152
+ ),
153
+ );
154
+ else if (ctx.route.success?.type === "application/x-www-form-urlencoded")
155
+ decorators.push(router("TypedQuery"));
156
+ else if (ctx.route.method === "head")
157
+ decorators.push(
158
+ factory.createDecorator(
159
+ factory.createCallExpression(
160
+ external("@nestjs/common", "Head"),
161
+ [],
162
+ [factory.createStringLiteral(ctx.route.path)],
163
+ ),
164
+ ),
165
+ );
166
+ else if (
167
+ ctx.route.success === null ||
168
+ ctx.route.success?.type === "application/json"
169
+ )
170
+ decorators.push(router("TypedRoute"));
171
+ for (const [key, value] of Object.entries(ctx.route.exceptions ?? {}))
172
+ decorators.push(
173
+ factory.createDecorator(
174
+ factory.createCallExpression(
175
+ external("@nestia/core", "TypedException"),
176
+ [
177
+ NestiaMigrateSchemaProgrammer.write({
178
+ components: ctx.components,
179
+ importer: ctx.importer,
180
+ schema: value.schema,
181
+ }),
182
+ ],
183
+ [
184
+ isNaN(Number(key))
185
+ ? factory.createStringLiteral(key)
186
+ : ExpressionFactory.number(Number(key)),
187
+ ...(value.response().description?.length
188
+ ? [factory.createStringLiteral(value.response().description!)]
189
+ : []),
190
+ ],
191
+ ),
192
+ ),
193
+ );
194
+ return decorators;
195
+ };
196
+
197
+ const writeParameters = (ctx: IContext): ts.ParameterDeclaration[] => [
198
+ ...ctx.route.parameters.map((p) =>
199
+ factory.createParameterDeclaration(
200
+ [
201
+ ...writeExampleDecorators("Parameter")(ctx.importer)(p.parameter()),
202
+ factory.createDecorator(
203
+ factory.createCallExpression(
204
+ factory.createIdentifier(
205
+ ctx.importer.external({
206
+ type: "instance",
207
+ library: "@nestia/core",
208
+ name: "TypedParam",
209
+ }),
210
+ ),
211
+ undefined,
212
+ [factory.createStringLiteral(p.key)],
213
+ ),
214
+ ),
215
+ ],
216
+ undefined,
217
+ p.key,
218
+ undefined,
219
+ NestiaMigrateSchemaProgrammer.write({
220
+ components: ctx.components,
221
+ importer: ctx.importer,
222
+ schema: p.schema,
223
+ }),
224
+ ),
225
+ ),
226
+ ...(ctx.route.headers
227
+ ? [
228
+ writeDtoParameter({
229
+ method: "TypedHeaders",
230
+ variable: "headers",
231
+ arguments: [],
232
+ })(ctx.components)(ctx.importer)({
233
+ required: true,
234
+ schema: ctx.route.headers.schema,
235
+ example: ctx.route.headers.example(),
236
+ examples: ctx.route.headers.examples(),
237
+ }),
238
+ ]
239
+ : []),
240
+ ...(ctx.route.query
241
+ ? [
242
+ writeDtoParameter({
243
+ method: "TypedQuery",
244
+ variable: "query",
245
+ arguments: [],
246
+ })(ctx.components)(ctx.importer)({
247
+ required: true,
248
+ schema: ctx.route.query.schema,
249
+ example: ctx.route.query.example(),
250
+ examples: ctx.route.query.examples(),
251
+ }),
252
+ ]
253
+ : []),
254
+ ...(ctx.route.body
255
+ ? [
256
+ writeDtoParameter({
257
+ method: ctx.route.body["x-nestia-encrypted"]
258
+ ? "EncryptedBody"
259
+ : ctx.route.body.type === "application/json"
260
+ ? "TypedBody"
261
+ : ctx.route.body.type === "application/x-www-form-urlencoded"
262
+ ? ["TypedQuery", "Body"]
263
+ : ctx.route.body.type === "text/plain"
264
+ ? "PlainBody"
265
+ : ctx.route.body.type === "multipart/form-data"
266
+ ? ["TypedFormData", "Body"]
267
+ : "TypedBody",
268
+ variable: "body",
269
+ arguments:
270
+ ctx.route.body.type === "multipart/form-data"
271
+ ? [
272
+ factory.createArrowFunction(
273
+ undefined,
274
+ undefined,
275
+ [],
276
+ undefined,
277
+ undefined,
278
+ factory.createCallExpression(
279
+ factory.createIdentifier(
280
+ ctx.importer.external({
281
+ type: "default",
282
+ library: "multer",
283
+ name: "Multer",
284
+ }),
285
+ ),
286
+ undefined,
287
+ undefined,
288
+ ),
289
+ ),
290
+ ]
291
+ : [],
292
+ })(ctx.components)(ctx.importer)({
293
+ schema: ctx.route.body.schema,
294
+ required: !(
295
+ (ctx.route.body.type === "application/json" ||
296
+ ctx.route.body.type === "text/plain") &&
297
+ ctx.route.operation().requestBody?.required === false
298
+ ),
299
+ example: ctx.route.body.media().example,
300
+ examples: ctx.route.body.media().examples,
301
+ }),
302
+ ]
303
+ : []),
304
+ ];
305
+
306
+ const writeDtoParameter =
307
+ (accessor: {
308
+ method: string | [string, string];
309
+ variable: string;
310
+ arguments: ts.Expression[];
311
+ }) =>
312
+ (components: OpenApi.IComponents) =>
313
+ (importer: NestiaMigrateImportProgrammer) =>
314
+ (props: {
315
+ schema: OpenApi.IJsonSchema;
316
+ required: boolean;
317
+ example?: any;
318
+ examples?: Record<string, any>;
319
+ }): ts.ParameterDeclaration => {
320
+ const instance = factory.createIdentifier(
321
+ importer.external({
322
+ type: "instance",
323
+ library: "@nestia/core",
324
+ name:
325
+ typeof accessor.method === "string"
326
+ ? accessor.method
327
+ : accessor.method[0],
328
+ }),
329
+ );
330
+ return factory.createParameterDeclaration(
331
+ [
332
+ ...writeExampleDecorators("Parameter")(importer)(props),
333
+ factory.createDecorator(
334
+ factory.createCallExpression(
335
+ typeof accessor.method === "string"
336
+ ? instance
337
+ : IdentifierFactory.access(instance, accessor.method[1]),
338
+ undefined,
339
+ accessor.arguments,
340
+ ),
341
+ ),
342
+ ],
343
+ undefined,
344
+ accessor.variable,
345
+ props.required === false
346
+ ? factory.createToken(SyntaxKind.QuestionToken)
347
+ : undefined,
348
+ NestiaMigrateSchemaProgrammer.write({
349
+ components,
350
+ importer,
351
+ schema: props.schema,
352
+ }),
353
+ );
354
+ };
355
+
356
+ const writeExampleDecorators =
357
+ (kind: "Response" | "Parameter") =>
358
+ (importer: NestiaMigrateImportProgrammer) =>
359
+ (media: {
360
+ example?: any;
361
+ examples?: Record<string, any>;
362
+ }): ts.Decorator[] => [
363
+ ...(media.example !== undefined
364
+ ? [
365
+ factory.createDecorator(
366
+ factory.createCallExpression(
367
+ IdentifierFactory.access(
368
+ factory.createIdentifier(
369
+ importer.external({
370
+ type: "instance",
371
+ library: "@nestia/core",
372
+ name: "SwaggerExample",
373
+ }),
374
+ ),
375
+ kind,
376
+ ),
377
+ [],
378
+ [LiteralFactory.write(media.example)],
379
+ ),
380
+ ),
381
+ ]
382
+ : []),
383
+ ...Object.entries(media.examples ?? {}).map(([key, value]) =>
384
+ factory.createDecorator(
385
+ factory.createCallExpression(
386
+ IdentifierFactory.access(
387
+ factory.createIdentifier(
388
+ importer.external({
389
+ type: "instance",
390
+ library: "@nestia/core",
391
+ name: "SwaggerExample",
392
+ }),
393
+ ),
394
+ kind,
395
+ ),
396
+ [],
397
+ [factory.createStringLiteral(key), LiteralFactory.write(value)],
398
+ ),
399
+ ),
400
+ ),
401
+ ];
402
+ }