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

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 (66) hide show
  1. package/LICENSE +21 -21
  2. package/lib/_virtual/_tstl.mjs +2 -2
  3. package/lib/_virtual/index.mjs +2 -2
  4. package/lib/_virtual/index2.mjs +2 -2
  5. package/lib/_virtual/index3.mjs +2 -2
  6. package/lib/archivers/NestiaMigrateFileArchiver2.mjs +2 -2
  7. package/lib/archivers/NestiaMigrateFileArchiver2.mjs.map +1 -1
  8. package/lib/bundles/NEST_TEMPLATE.js +47 -47
  9. package/lib/bundles/NEST_TEMPLATE.js.map +1 -1
  10. package/lib/bundles/NEST_TEMPLATE2.mjs +47 -47
  11. package/lib/bundles/NEST_TEMPLATE2.mjs.map +1 -1
  12. package/lib/bundles/SDK_TEMPLATE.js +20 -20
  13. package/lib/bundles/SDK_TEMPLATE.js.map +1 -1
  14. package/lib/bundles/SDK_TEMPLATE2.mjs +20 -20
  15. package/lib/bundles/SDK_TEMPLATE2.mjs.map +1 -1
  16. package/lib/index2.mjs +1 -1
  17. package/lib/module2.mjs +2 -2
  18. package/lib/programmers/NestiaMigrateApiProgrammer2.mjs +4 -4
  19. package/lib/programmers/NestiaMigrateApiProgrammer2.mjs.map +1 -1
  20. package/lib/programmers/index2.mjs +1 -1
  21. package/lib/structures/index2.mjs +1 -1
  22. package/package.json +6 -6
  23. package/src/NestiaMigrateApplication.ts +196 -196
  24. package/src/analyzers/NestiaMigrateControllerAnalyzer.ts +51 -51
  25. package/src/archivers/NestiaMigrateFileArchiver.ts +28 -28
  26. package/src/bundles/NEST_TEMPLATE.ts +47 -47
  27. package/src/bundles/SDK_TEMPLATE.ts +20 -20
  28. package/src/executable/NestiaMigrateCommander.ts +115 -115
  29. package/src/executable/NestiaMigrateInquirer.ts +106 -106
  30. package/src/executable/bundle.js +323 -349
  31. package/src/executable/migrate.ts +7 -7
  32. package/src/factories/ExpressionFactory.ts +23 -23
  33. package/src/factories/FormatCheatSheet.ts +71 -71
  34. package/src/factories/IdentifierFactory.ts +84 -84
  35. package/src/factories/LiteralFactory.ts +54 -54
  36. package/src/factories/StatementFactory.ts +56 -56
  37. package/src/factories/TypeFactory.ts +27 -27
  38. package/src/factories/TypeLiteralFactory.ts +62 -62
  39. package/src/index.ts +4 -4
  40. package/src/internal/ts.ts +75 -75
  41. package/src/module.ts +6 -6
  42. package/src/programmers/NestiaMigrateApiFileProgrammer.ts +55 -55
  43. package/src/programmers/NestiaMigrateApiFunctionProgrammer.ts +358 -358
  44. package/src/programmers/NestiaMigrateApiNamespaceProgrammer.ts +511 -511
  45. package/src/programmers/NestiaMigrateApiProgrammer.ts +108 -108
  46. package/src/programmers/NestiaMigrateApiSimulationProgrammer.ts +309 -309
  47. package/src/programmers/NestiaMigrateApiStartProgrammer.ts +198 -198
  48. package/src/programmers/NestiaMigrateDtoProgrammer.ts +117 -117
  49. package/src/programmers/NestiaMigrateE2eFileProgrammer.ts +155 -155
  50. package/src/programmers/NestiaMigrateE2eProgrammer.ts +48 -48
  51. package/src/programmers/NestiaMigrateImportProgrammer.ts +119 -119
  52. package/src/programmers/NestiaMigrateNestControllerProgrammer.ts +70 -70
  53. package/src/programmers/NestiaMigrateNestMethodProgrammer.ts +402 -402
  54. package/src/programmers/NestiaMigrateNestModuleProgrammer.ts +64 -64
  55. package/src/programmers/NestiaMigrateNestProgrammer.ts +89 -89
  56. package/src/programmers/NestiaMigrateSchemaProgrammer.ts +475 -475
  57. package/src/programmers/index.ts +15 -15
  58. package/src/structures/INestiaMigrateConfig.ts +19 -19
  59. package/src/structures/INestiaMigrateContext.ts +9 -9
  60. package/src/structures/INestiaMigrateController.ts +8 -8
  61. package/src/structures/INestiaMigrateFile.ts +5 -5
  62. package/src/structures/index.ts +4 -4
  63. package/src/utils/FilePrinter.ts +44 -44
  64. package/src/utils/MapUtil.ts +13 -13
  65. package/src/utils/StringUtil.ts +109 -109
  66. package/README.md +0 -93
@@ -1,64 +1,64 @@
1
- import { SyntaxKind, factory } from "@ttsc/factory";
2
-
3
- import ts from "../internal/ts";
4
- import { INestiaMigrateController } from "../structures/INestiaMigrateController";
5
- import { FilePrinter } from "../utils/FilePrinter";
6
-
7
- export namespace NestiaMigrateNestModuleProgrammer {
8
- export const write = (
9
- controllers: INestiaMigrateController[],
10
- ): ts.Statement[] => [
11
- $import("@nestjs/common")("Module"),
12
- ...(controllers.length ? [FilePrinter.newLine()] : []),
13
- ...controllers.map((c) =>
14
- $import(`${c.location.replace("src/", "./")}/${c.name}`)(c.name),
15
- ),
16
- ...(controllers.length ? [FilePrinter.newLine()] : []),
17
- factory.createClassDeclaration(
18
- [
19
- factory.createDecorator(
20
- factory.createCallExpression(
21
- factory.createIdentifier("Module"),
22
- undefined,
23
- [
24
- factory.createObjectLiteralExpression(
25
- [
26
- factory.createPropertyAssignment(
27
- factory.createIdentifier("controllers"),
28
- factory.createArrayLiteralExpression(
29
- controllers.map((c) => factory.createIdentifier(c.name)),
30
- true,
31
- ),
32
- ),
33
- ],
34
- true,
35
- ),
36
- ],
37
- ),
38
- ),
39
- factory.createToken(SyntaxKind.ExportKeyword),
40
- ],
41
- "MyModule",
42
- undefined,
43
- undefined,
44
- [],
45
- ),
46
- ];
47
- }
48
-
49
- const $import = (file: string) => (instance: string) =>
50
- factory.createImportDeclaration(
51
- undefined,
52
- factory.createImportClause(
53
- false,
54
- undefined,
55
- factory.createNamedImports([
56
- factory.createImportSpecifier(
57
- false,
58
- undefined,
59
- factory.createIdentifier(instance),
60
- ),
61
- ]),
62
- ),
63
- factory.createStringLiteral(file),
64
- );
1
+ import { SyntaxKind, factory } from "@ttsc/factory";
2
+
3
+ import ts from "../internal/ts";
4
+ import { INestiaMigrateController } from "../structures/INestiaMigrateController";
5
+ import { FilePrinter } from "../utils/FilePrinter";
6
+
7
+ export namespace NestiaMigrateNestModuleProgrammer {
8
+ export const write = (
9
+ controllers: INestiaMigrateController[],
10
+ ): ts.Statement[] => [
11
+ $import("@nestjs/common")("Module"),
12
+ ...(controllers.length ? [FilePrinter.newLine()] : []),
13
+ ...controllers.map((c) =>
14
+ $import(`${c.location.replace("src/", "./")}/${c.name}`)(c.name),
15
+ ),
16
+ ...(controllers.length ? [FilePrinter.newLine()] : []),
17
+ factory.createClassDeclaration(
18
+ [
19
+ factory.createDecorator(
20
+ factory.createCallExpression(
21
+ factory.createIdentifier("Module"),
22
+ undefined,
23
+ [
24
+ factory.createObjectLiteralExpression(
25
+ [
26
+ factory.createPropertyAssignment(
27
+ factory.createIdentifier("controllers"),
28
+ factory.createArrayLiteralExpression(
29
+ controllers.map((c) => factory.createIdentifier(c.name)),
30
+ true,
31
+ ),
32
+ ),
33
+ ],
34
+ true,
35
+ ),
36
+ ],
37
+ ),
38
+ ),
39
+ factory.createToken(SyntaxKind.ExportKeyword),
40
+ ],
41
+ "MyModule",
42
+ undefined,
43
+ undefined,
44
+ [],
45
+ ),
46
+ ];
47
+ }
48
+
49
+ const $import = (file: string) => (instance: string) =>
50
+ factory.createImportDeclaration(
51
+ undefined,
52
+ factory.createImportClause(
53
+ false,
54
+ undefined,
55
+ factory.createNamedImports([
56
+ factory.createImportSpecifier(
57
+ false,
58
+ undefined,
59
+ factory.createIdentifier(instance),
60
+ ),
61
+ ]),
62
+ ),
63
+ factory.createStringLiteral(file),
64
+ );
@@ -1,89 +1,89 @@
1
- import { NodeFlags, SyntaxKind, factory } from "@ttsc/factory";
2
-
3
- import { NestiaMigrateControllerAnalyzer } from "../analyzers/NestiaMigrateControllerAnalyzer";
4
- import ts from "../internal/ts";
5
- import { INestiaMigrateContext } from "../structures/INestiaMigrateContext";
6
- import { INestiaMigrateController } from "../structures/INestiaMigrateController";
7
- import { FilePrinter } from "../utils/FilePrinter";
8
- import { NestiaMigrateDtoProgrammer } from "./NestiaMigrateDtoProgrammer";
9
- import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
10
- import { NestiaMigrateNestControllerProgrammer } from "./NestiaMigrateNestControllerProgrammer";
11
- import { NestiaMigrateNestModuleProgrammer } from "./NestiaMigrateNestModuleProgrammer";
12
-
13
- export namespace NestiaMigrateNestProgrammer {
14
- export const write = (
15
- context: INestiaMigrateContext,
16
- ): Record<string, string> => {
17
- const controllers: INestiaMigrateController[] =
18
- NestiaMigrateControllerAnalyzer.analyze(context.application.routes);
19
- const statements: [string, ts.Statement[]][] = [
20
- ["src/MyModule.ts", NestiaMigrateNestModuleProgrammer.write(controllers)],
21
- ...controllers.map(
22
- (c) =>
23
- [
24
- `${c.location}/${c.name}.ts`,
25
- NestiaMigrateNestControllerProgrammer.write({
26
- config: context.config,
27
- components: context.application.document().components,
28
- controller: c,
29
- }),
30
- ] satisfies [string, ts.Statement[]],
31
- ),
32
- ...[
33
- ...NestiaMigrateDtoProgrammer.compose({
34
- config: context.config,
35
- components: context.application.document().components,
36
- }).entries(),
37
- ].map(
38
- ([key, value]) =>
39
- [`src/api/structures/${key}.ts`, writeDtoFile(key, value)] satisfies [
40
- string,
41
- ts.Statement[],
42
- ],
43
- ),
44
- ];
45
- return Object.fromEntries(
46
- statements.map(([key, value]) => [
47
- key,
48
- FilePrinter.write({ statements: value }),
49
- ]),
50
- );
51
- };
52
-
53
- const writeDtoFile = (
54
- key: string,
55
- modulo: NestiaMigrateDtoProgrammer.IModule,
56
- ): ts.Statement[] => {
57
- const importer = new NestiaMigrateImportProgrammer();
58
- const statements: ts.Statement[] = iterate(importer)(modulo);
59
- if (statements.length === 0) return [];
60
-
61
- return [
62
- ...importer.toStatements((name) => `./${name}`, key),
63
- ...(importer.empty() ? [] : [FilePrinter.newLine()]),
64
- ...statements,
65
- ];
66
- };
67
-
68
- const iterate =
69
- (importer: NestiaMigrateImportProgrammer) =>
70
- (modulo: NestiaMigrateDtoProgrammer.IModule): ts.Statement[] => {
71
- const output: ts.Statement[] = [];
72
- if (modulo.programmer !== null) output.push(modulo.programmer(importer));
73
- if (modulo.children.size) {
74
- const internal: ts.Statement[] = [];
75
- for (const child of modulo.children.values())
76
- internal.push(...iterate(importer)(child));
77
- output.push(
78
- factory.createModuleDeclaration(
79
- [factory.createModifier(SyntaxKind.ExportKeyword)],
80
- factory.createIdentifier(modulo.name),
81
- factory.createModuleBlock(internal),
82
- NodeFlags.Namespace,
83
- ),
84
- );
85
- }
86
- output.push(FilePrinter.newLine());
87
- return output;
88
- };
89
- }
1
+ import { NodeFlags, SyntaxKind, factory } from "@ttsc/factory";
2
+
3
+ import { NestiaMigrateControllerAnalyzer } from "../analyzers/NestiaMigrateControllerAnalyzer";
4
+ import ts from "../internal/ts";
5
+ import { INestiaMigrateContext } from "../structures/INestiaMigrateContext";
6
+ import { INestiaMigrateController } from "../structures/INestiaMigrateController";
7
+ import { FilePrinter } from "../utils/FilePrinter";
8
+ import { NestiaMigrateDtoProgrammer } from "./NestiaMigrateDtoProgrammer";
9
+ import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
10
+ import { NestiaMigrateNestControllerProgrammer } from "./NestiaMigrateNestControllerProgrammer";
11
+ import { NestiaMigrateNestModuleProgrammer } from "./NestiaMigrateNestModuleProgrammer";
12
+
13
+ export namespace NestiaMigrateNestProgrammer {
14
+ export const write = (
15
+ context: INestiaMigrateContext,
16
+ ): Record<string, string> => {
17
+ const controllers: INestiaMigrateController[] =
18
+ NestiaMigrateControllerAnalyzer.analyze(context.application.routes);
19
+ const statements: [string, ts.Statement[]][] = [
20
+ ["src/MyModule.ts", NestiaMigrateNestModuleProgrammer.write(controllers)],
21
+ ...controllers.map(
22
+ (c) =>
23
+ [
24
+ `${c.location}/${c.name}.ts`,
25
+ NestiaMigrateNestControllerProgrammer.write({
26
+ config: context.config,
27
+ components: context.application.document().components,
28
+ controller: c,
29
+ }),
30
+ ] satisfies [string, ts.Statement[]],
31
+ ),
32
+ ...[
33
+ ...NestiaMigrateDtoProgrammer.compose({
34
+ config: context.config,
35
+ components: context.application.document().components,
36
+ }).entries(),
37
+ ].map(
38
+ ([key, value]) =>
39
+ [`src/api/structures/${key}.ts`, writeDtoFile(key, value)] satisfies [
40
+ string,
41
+ ts.Statement[],
42
+ ],
43
+ ),
44
+ ];
45
+ return Object.fromEntries(
46
+ statements.map(([key, value]) => [
47
+ key,
48
+ FilePrinter.write({ statements: value }),
49
+ ]),
50
+ );
51
+ };
52
+
53
+ const writeDtoFile = (
54
+ key: string,
55
+ modulo: NestiaMigrateDtoProgrammer.IModule,
56
+ ): ts.Statement[] => {
57
+ const importer = new NestiaMigrateImportProgrammer();
58
+ const statements: ts.Statement[] = iterate(importer)(modulo);
59
+ if (statements.length === 0) return [];
60
+
61
+ return [
62
+ ...importer.toStatements((name) => `./${name}`, key),
63
+ ...(importer.empty() ? [] : [FilePrinter.newLine()]),
64
+ ...statements,
65
+ ];
66
+ };
67
+
68
+ const iterate =
69
+ (importer: NestiaMigrateImportProgrammer) =>
70
+ (modulo: NestiaMigrateDtoProgrammer.IModule): ts.Statement[] => {
71
+ const output: ts.Statement[] = [];
72
+ if (modulo.programmer !== null) output.push(modulo.programmer(importer));
73
+ if (modulo.children.size) {
74
+ const internal: ts.Statement[] = [];
75
+ for (const child of modulo.children.values())
76
+ internal.push(...iterate(importer)(child));
77
+ output.push(
78
+ factory.createModuleDeclaration(
79
+ [factory.createModifier(SyntaxKind.ExportKeyword)],
80
+ factory.createIdentifier(modulo.name),
81
+ factory.createModuleBlock(internal),
82
+ NodeFlags.Namespace,
83
+ ),
84
+ );
85
+ }
86
+ output.push(FilePrinter.newLine());
87
+ return output;
88
+ };
89
+ }