@nestia/migrate 10.0.1 → 11.0.0-dev.20260305

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 (162) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -93
  3. package/package.json +32 -46
  4. package/src/NestiaMigrateApplication.ts +161 -159
  5. package/src/analyzers/NestiaMigrateControllerAnalyzer.ts +51 -51
  6. package/src/archivers/NestiaMigrateFileArchiver.ts +28 -28
  7. package/src/bundles/NEST_TEMPLATE.ts +48 -48
  8. package/src/bundles/SDK_TEMPLATE.ts +21 -21
  9. package/src/executable/NestiaMigrateCommander.ts +98 -98
  10. package/src/executable/NestiaMigrateInquirer.ts +106 -106
  11. package/src/executable/bundle.js +125 -125
  12. package/src/executable/migrate.ts +7 -7
  13. package/src/factories/TypeLiteralFactory.ts +57 -57
  14. package/src/index.ts +4 -4
  15. package/src/module.ts +6 -2
  16. package/src/programmers/NestiaMigrateApiFileProgrammer.ts +55 -55
  17. package/src/programmers/NestiaMigrateApiFunctionProgrammer.ts +347 -344
  18. package/src/programmers/NestiaMigrateApiNamespaceProgrammer.ts +517 -514
  19. package/src/programmers/NestiaMigrateApiProgrammer.ts +107 -107
  20. package/src/programmers/NestiaMigrateApiSimulationProgrammer.ts +308 -309
  21. package/src/programmers/NestiaMigrateApiStartProgrammer.ts +197 -198
  22. package/src/programmers/NestiaMigrateDtoProgrammer.ts +98 -98
  23. package/src/programmers/NestiaMigrateE2eFileProgrammer.ts +153 -153
  24. package/src/programmers/NestiaMigrateE2eProgrammer.ts +48 -48
  25. package/src/programmers/NestiaMigrateImportProgrammer.ts +118 -118
  26. package/src/programmers/NestiaMigrateNestControllerProgrammer.ts +69 -69
  27. package/src/programmers/NestiaMigrateNestMethodProgrammer.ts +409 -406
  28. package/src/programmers/NestiaMigrateNestModuleProgrammer.ts +65 -65
  29. package/src/programmers/NestiaMigrateNestProgrammer.ts +88 -88
  30. package/src/programmers/NestiaMigrateSchemaProgrammer.ts +465 -522
  31. package/src/structures/INestiaMigrateConfig.ts +19 -19
  32. package/src/structures/INestiaMigrateContext.ts +9 -9
  33. package/src/structures/INestiaMigrateController.ts +8 -8
  34. package/src/structures/INestiaMigrateDto.ts +8 -8
  35. package/src/structures/INestiaMigrateFile.ts +5 -5
  36. package/src/structures/INestiaMigrateProgram.ts +11 -11
  37. package/src/structures/INestiaMigrateSchema.ts +4 -4
  38. package/src/utils/FilePrinter.ts +49 -49
  39. package/src/utils/MapUtil.ts +13 -13
  40. package/src/utils/SetupWizard.ts +12 -12
  41. package/src/utils/StringUtil.ts +114 -113
  42. package/src/utils/openapi-down-convert/RefVisitor.ts +134 -134
  43. package/src/utils/openapi-down-convert/converter.ts +536 -536
  44. package/lib/NestiaMigrateApplication.d.ts +0 -24
  45. package/lib/NestiaMigrateApplication.js +0 -18757
  46. package/lib/NestiaMigrateApplication.js.map +0 -1
  47. package/lib/analyzers/NestiaMigrateControllerAnalyzer.d.ts +0 -5
  48. package/lib/analyzers/NestiaMigrateControllerAnalyzer.js +0 -46
  49. package/lib/analyzers/NestiaMigrateControllerAnalyzer.js.map +0 -1
  50. package/lib/archivers/NestiaMigrateFileArchiver.d.ts +0 -8
  51. package/lib/archivers/NestiaMigrateFileArchiver.js +0 -36
  52. package/lib/archivers/NestiaMigrateFileArchiver.js.map +0 -1
  53. package/lib/bundles/NEST_TEMPLATE.d.ts +0 -1
  54. package/lib/bundles/NEST_TEMPLATE.js +0 -55
  55. package/lib/bundles/NEST_TEMPLATE.js.map +0 -1
  56. package/lib/bundles/SDK_TEMPLATE.d.ts +0 -1
  57. package/lib/bundles/SDK_TEMPLATE.js +0 -27
  58. package/lib/bundles/SDK_TEMPLATE.js.map +0 -1
  59. package/lib/executable/NestiaMigrateCommander.d.ts +0 -4
  60. package/lib/executable/NestiaMigrateCommander.js +0 -125
  61. package/lib/executable/NestiaMigrateCommander.js.map +0 -1
  62. package/lib/executable/NestiaMigrateInquirer.d.ts +0 -12
  63. package/lib/executable/NestiaMigrateInquirer.js +0 -94
  64. package/lib/executable/NestiaMigrateInquirer.js.map +0 -1
  65. package/lib/executable/migrate.d.ts +0 -2
  66. package/lib/executable/migrate.js +0 -9
  67. package/lib/executable/migrate.js.map +0 -1
  68. package/lib/factories/TypeLiteralFactory.d.ts +0 -4
  69. package/lib/factories/TypeLiteralFactory.js +0 -35
  70. package/lib/factories/TypeLiteralFactory.js.map +0 -1
  71. package/lib/index.d.ts +0 -3
  72. package/lib/index.js +0 -42
  73. package/lib/index.js.map +0 -1
  74. package/lib/index.mjs +0 -19399
  75. package/lib/index.mjs.map +0 -1
  76. package/lib/module.d.ts +0 -2
  77. package/lib/module.js +0 -19
  78. package/lib/module.js.map +0 -1
  79. package/lib/programmers/NestiaMigrateApiFileProgrammer.d.ts +0 -13
  80. package/lib/programmers/NestiaMigrateApiFileProgrammer.js +0 -40
  81. package/lib/programmers/NestiaMigrateApiFileProgrammer.js.map +0 -1
  82. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.d.ts +0 -14
  83. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js +0 -179
  84. package/lib/programmers/NestiaMigrateApiFunctionProgrammer.js.map +0 -1
  85. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.d.ts +0 -14
  86. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.js +0 -226
  87. package/lib/programmers/NestiaMigrateApiNamespaceProgrammer.js.map +0 -1
  88. package/lib/programmers/NestiaMigrateApiProgrammer.d.ts +0 -4
  89. package/lib/programmers/NestiaMigrateApiProgrammer.js +0 -82
  90. package/lib/programmers/NestiaMigrateApiProgrammer.js.map +0 -1
  91. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.d.ts +0 -14
  92. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.js +0 -142
  93. package/lib/programmers/NestiaMigrateApiSimulationProgrammer.js.map +0 -1
  94. package/lib/programmers/NestiaMigrateApiStartProgrammer.d.ts +0 -4
  95. package/lib/programmers/NestiaMigrateApiStartProgrammer.js +0 -80
  96. package/lib/programmers/NestiaMigrateApiStartProgrammer.js.map +0 -1
  97. package/lib/programmers/NestiaMigrateDtoProgrammer.d.ts +0 -15
  98. package/lib/programmers/NestiaMigrateDtoProgrammer.js +0 -65
  99. package/lib/programmers/NestiaMigrateDtoProgrammer.js.map +0 -1
  100. package/lib/programmers/NestiaMigrateE2eFileProgrammer.d.ts +0 -14
  101. package/lib/programmers/NestiaMigrateE2eFileProgrammer.js +0 -81
  102. package/lib/programmers/NestiaMigrateE2eFileProgrammer.js.map +0 -1
  103. package/lib/programmers/NestiaMigrateE2eProgrammer.d.ts +0 -4
  104. package/lib/programmers/NestiaMigrateE2eProgrammer.js +0 -32
  105. package/lib/programmers/NestiaMigrateE2eProgrammer.js.map +0 -1
  106. package/lib/programmers/NestiaMigrateImportProgrammer.d.ts +0 -18
  107. package/lib/programmers/NestiaMigrateImportProgrammer.js +0 -65
  108. package/lib/programmers/NestiaMigrateImportProgrammer.js.map +0 -1
  109. package/lib/programmers/NestiaMigrateNestControllerProgrammer.d.ts +0 -12
  110. package/lib/programmers/NestiaMigrateNestControllerProgrammer.js +0 -46
  111. package/lib/programmers/NestiaMigrateNestControllerProgrammer.js.map +0 -1
  112. package/lib/programmers/NestiaMigrateNestMethodProgrammer.d.ts +0 -15
  113. package/lib/programmers/NestiaMigrateNestMethodProgrammer.js +0 -224
  114. package/lib/programmers/NestiaMigrateNestMethodProgrammer.js.map +0 -1
  115. package/lib/programmers/NestiaMigrateNestModuleProgrammer.d.ts +0 -5
  116. package/lib/programmers/NestiaMigrateNestModuleProgrammer.js +0 -29
  117. package/lib/programmers/NestiaMigrateNestModuleProgrammer.js.map +0 -1
  118. package/lib/programmers/NestiaMigrateNestProgrammer.d.ts +0 -4
  119. package/lib/programmers/NestiaMigrateNestProgrammer.js +0 -65
  120. package/lib/programmers/NestiaMigrateNestProgrammer.js.map +0 -1
  121. package/lib/programmers/NestiaMigrateSchemaProgrammer.d.ts +0 -10
  122. package/lib/programmers/NestiaMigrateSchemaProgrammer.js +0 -469
  123. package/lib/programmers/NestiaMigrateSchemaProgrammer.js.map +0 -1
  124. package/lib/structures/INestiaMigrateConfig.d.ts +0 -15
  125. package/lib/structures/INestiaMigrateConfig.js +0 -3
  126. package/lib/structures/INestiaMigrateConfig.js.map +0 -1
  127. package/lib/structures/INestiaMigrateContext.d.ts +0 -7
  128. package/lib/structures/INestiaMigrateContext.js +0 -3
  129. package/lib/structures/INestiaMigrateContext.js.map +0 -1
  130. package/lib/structures/INestiaMigrateController.d.ts +0 -7
  131. package/lib/structures/INestiaMigrateController.js +0 -3
  132. package/lib/structures/INestiaMigrateController.js.map +0 -1
  133. package/lib/structures/INestiaMigrateDto.d.ts +0 -7
  134. package/lib/structures/INestiaMigrateDto.js +0 -3
  135. package/lib/structures/INestiaMigrateDto.js.map +0 -1
  136. package/lib/structures/INestiaMigrateFile.d.ts +0 -5
  137. package/lib/structures/INestiaMigrateFile.js +0 -3
  138. package/lib/structures/INestiaMigrateFile.js.map +0 -1
  139. package/lib/structures/INestiaMigrateProgram.d.ts +0 -9
  140. package/lib/structures/INestiaMigrateProgram.js +0 -3
  141. package/lib/structures/INestiaMigrateProgram.js.map +0 -1
  142. package/lib/structures/INestiaMigrateSchema.d.ts +0 -4
  143. package/lib/structures/INestiaMigrateSchema.js +0 -3
  144. package/lib/structures/INestiaMigrateSchema.js.map +0 -1
  145. package/lib/utils/FilePrinter.d.ts +0 -9
  146. package/lib/utils/FilePrinter.js +0 -35
  147. package/lib/utils/FilePrinter.js.map +0 -1
  148. package/lib/utils/MapUtil.d.ts +0 -3
  149. package/lib/utils/MapUtil.js +0 -15
  150. package/lib/utils/MapUtil.js.map +0 -1
  151. package/lib/utils/SetupWizard.d.ts +0 -3
  152. package/lib/utils/SetupWizard.js +0 -18
  153. package/lib/utils/SetupWizard.js.map +0 -1
  154. package/lib/utils/StringUtil.d.ts +0 -6
  155. package/lib/utils/StringUtil.js +0 -108
  156. package/lib/utils/StringUtil.js.map +0 -1
  157. package/lib/utils/openapi-down-convert/RefVisitor.d.ts +0 -52
  158. package/lib/utils/openapi-down-convert/RefVisitor.js +0 -102
  159. package/lib/utils/openapi-down-convert/RefVisitor.js.map +0 -1
  160. package/lib/utils/openapi-down-convert/converter.d.ts +0 -146
  161. package/lib/utils/openapi-down-convert/converter.js +0 -441
  162. package/lib/utils/openapi-down-convert/converter.js.map +0 -1
@@ -1,107 +1,107 @@
1
- import { HashMap, hash } from "tstl";
2
- import ts from "typescript";
3
-
4
- import { INestiaMigrateContext } from "../structures/INestiaMigrateContext";
5
- import { FilePrinter } from "../utils/FilePrinter";
6
- import { NestiaMigrateApiFileProgrammer } from "./NestiaMigrateApiFileProgrammer";
7
- import { NestiaMigrateDtoProgrammer } from "./NestiaMigrateDtoProgrammer";
8
- import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
9
-
10
- export namespace NestiaMigrateApiProgrammer {
11
- export const write = (ctx: INestiaMigrateContext): Record<string, string> => {
12
- const dict: HashMap<string[], NestiaMigrateApiFileProgrammer.IProps> =
13
- new HashMap(
14
- (x) => hash(x.join(".")),
15
- (x, y) => x.length === y.length && x.join(".") === y.join("."),
16
- );
17
- for (const route of ctx.application.routes) {
18
- const namespace: string[] = route.accessor.slice(0, -1);
19
- let last: NestiaMigrateApiFileProgrammer.IProps = dict.take(
20
- namespace,
21
- () => ({
22
- config: ctx.config,
23
- components: ctx.application.document().components,
24
- namespace,
25
- routes: [],
26
- children: new Set(),
27
- }),
28
- );
29
- last.routes.push(route);
30
- namespace.forEach((_s, i, array) => {
31
- const partial: string[] = namespace.slice(0, array.length - i - 1);
32
- const props: NestiaMigrateApiFileProgrammer.IProps = dict.take(
33
- partial,
34
- () => ({
35
- config: ctx.config,
36
- components: ctx.application.document().components,
37
- namespace: partial,
38
- children: new Set(),
39
- routes: [],
40
- }),
41
- );
42
- props.children.add(last.namespace.at(-1)!);
43
- last = props;
44
- });
45
- }
46
-
47
- // DO GENERATE
48
- const files: Record<string, string> = Object.fromEntries(
49
- dict.toJSON().map(({ second: value }) => [
50
- `src/${ctx.mode === "nest" ? "api/" : ""}functional/${[...value.namespace, "index.ts"].join("/")}`,
51
- FilePrinter.write({
52
- statements: NestiaMigrateApiFileProgrammer.write({
53
- ...value,
54
- config: ctx.config,
55
- components: ctx.application.document().components,
56
- }),
57
- }),
58
- ]),
59
- );
60
- if (ctx.mode === "sdk")
61
- for (const [key, value] of NestiaMigrateDtoProgrammer.compose({
62
- config: ctx.config,
63
- components: ctx.application.document().components,
64
- }).entries())
65
- files[`src/structures/${key}.ts`] = FilePrinter.write({
66
- statements: writeDtoFile(key, value),
67
- });
68
- return files;
69
- };
70
-
71
- const writeDtoFile = (
72
- key: string,
73
- modulo: NestiaMigrateDtoProgrammer.IModule,
74
- ): ts.Statement[] => {
75
- const importer = new NestiaMigrateImportProgrammer();
76
- const statements: ts.Statement[] = iterate(importer, modulo);
77
- if (statements.length === 0) return [];
78
- return [
79
- ...importer.toStatements((name) => `./${name}`, key),
80
- ...(importer.empty() ? [] : [FilePrinter.newLine()]),
81
- ...statements,
82
- ];
83
- };
84
-
85
- const iterate = (
86
- importer: NestiaMigrateImportProgrammer,
87
- modulo: NestiaMigrateDtoProgrammer.IModule,
88
- ): ts.Statement[] => {
89
- const output: ts.Statement[] = [];
90
- if (modulo.programmer !== null) output.push(modulo.programmer(importer));
91
- if (modulo.children.size !== 0) {
92
- const internal: ts.Statement[] = [];
93
- for (const child of modulo.children.values())
94
- internal.push(...iterate(importer, child));
95
- output.push(
96
- ts.factory.createModuleDeclaration(
97
- [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
98
- ts.factory.createIdentifier(modulo.name),
99
- ts.factory.createModuleBlock(internal),
100
- ts.NodeFlags.Namespace,
101
- ),
102
- );
103
- }
104
- output.push(FilePrinter.newLine());
105
- return output;
106
- };
107
- }
1
+ import { HashMap, hash } from "tstl";
2
+ import ts from "typescript";
3
+
4
+ import { INestiaMigrateContext } from "../structures/INestiaMigrateContext";
5
+ import { FilePrinter } from "../utils/FilePrinter";
6
+ import { NestiaMigrateApiFileProgrammer } from "./NestiaMigrateApiFileProgrammer";
7
+ import { NestiaMigrateDtoProgrammer } from "./NestiaMigrateDtoProgrammer";
8
+ import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
9
+
10
+ export namespace NestiaMigrateApiProgrammer {
11
+ export const write = (ctx: INestiaMigrateContext): Record<string, string> => {
12
+ const dict: HashMap<string[], NestiaMigrateApiFileProgrammer.IProps> =
13
+ new HashMap(
14
+ (x) => hash(x.join(".")),
15
+ (x, y) => x.length === y.length && x.join(".") === y.join("."),
16
+ );
17
+ for (const route of ctx.application.routes) {
18
+ const namespace: string[] = route.accessor.slice(0, -1);
19
+ let last: NestiaMigrateApiFileProgrammer.IProps = dict.take(
20
+ namespace,
21
+ () => ({
22
+ config: ctx.config,
23
+ components: ctx.application.document().components,
24
+ namespace,
25
+ routes: [],
26
+ children: new Set(),
27
+ }),
28
+ );
29
+ last.routes.push(route);
30
+ namespace.forEach((_s, i, array) => {
31
+ const partial: string[] = namespace.slice(0, array.length - i - 1);
32
+ const props: NestiaMigrateApiFileProgrammer.IProps = dict.take(
33
+ partial,
34
+ () => ({
35
+ config: ctx.config,
36
+ components: ctx.application.document().components,
37
+ namespace: partial,
38
+ children: new Set(),
39
+ routes: [],
40
+ }),
41
+ );
42
+ props.children.add(last.namespace.at(-1)!);
43
+ last = props;
44
+ });
45
+ }
46
+
47
+ // DO GENERATE
48
+ const files: Record<string, string> = Object.fromEntries(
49
+ dict.toJSON().map(({ second: value }) => [
50
+ `src/${ctx.mode === "nest" ? "api/" : ""}functional/${[...value.namespace, "index.ts"].join("/")}`,
51
+ FilePrinter.write({
52
+ statements: NestiaMigrateApiFileProgrammer.write({
53
+ ...value,
54
+ config: ctx.config,
55
+ components: ctx.application.document().components,
56
+ }),
57
+ }),
58
+ ]),
59
+ );
60
+ if (ctx.mode === "sdk")
61
+ for (const [key, value] of NestiaMigrateDtoProgrammer.compose({
62
+ config: ctx.config,
63
+ components: ctx.application.document().components,
64
+ }).entries())
65
+ files[`src/structures/${key}.ts`] = FilePrinter.write({
66
+ statements: writeDtoFile(key, value),
67
+ });
68
+ return files;
69
+ };
70
+
71
+ const writeDtoFile = (
72
+ key: string,
73
+ modulo: NestiaMigrateDtoProgrammer.IModule,
74
+ ): ts.Statement[] => {
75
+ const importer = new NestiaMigrateImportProgrammer();
76
+ const statements: ts.Statement[] = iterate(importer, modulo);
77
+ if (statements.length === 0) return [];
78
+ return [
79
+ ...importer.toStatements((name) => `./${name}`, key),
80
+ ...(importer.empty() ? [] : [FilePrinter.newLine()]),
81
+ ...statements,
82
+ ];
83
+ };
84
+
85
+ const iterate = (
86
+ importer: NestiaMigrateImportProgrammer,
87
+ modulo: NestiaMigrateDtoProgrammer.IModule,
88
+ ): ts.Statement[] => {
89
+ const output: ts.Statement[] = [];
90
+ if (modulo.programmer !== null) output.push(modulo.programmer(importer));
91
+ if (modulo.children.size !== 0) {
92
+ const internal: ts.Statement[] = [];
93
+ for (const child of modulo.children.values())
94
+ internal.push(...iterate(importer, child));
95
+ output.push(
96
+ ts.factory.createModuleDeclaration(
97
+ [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
98
+ ts.factory.createIdentifier(modulo.name),
99
+ ts.factory.createModuleBlock(internal),
100
+ ts.NodeFlags.Namespace,
101
+ ),
102
+ );
103
+ }
104
+ output.push(FilePrinter.newLine());
105
+ return output;
106
+ };
107
+ }