@nestia/migrate 7.0.0-dev.20250608 → 7.0.0
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.
- package/README.md +92 -92
- package/lib/analyzers/NestiaMigrateControllerAnalyzer.js +1 -1
- package/lib/analyzers/NestiaMigrateControllerAnalyzer.js.map +1 -1
- package/lib/bundles/NEST_TEMPLATE.js +47 -47
- package/lib/bundles/NEST_TEMPLATE.js.map +1 -1
- package/lib/bundles/SDK_TEMPLATE.js +21 -21
- package/lib/bundles/SDK_TEMPLATE.js.map +1 -1
- package/lib/index.mjs +69 -69
- package/lib/index.mjs.map +1 -1
- package/lib/utils/openapi-down-convert/converter.js +2 -2
- package/package.json +7 -7
- package/src/NestiaMigrateApplication.ts +144 -144
- package/src/analyzers/NestiaMigrateControllerAnalyzer.ts +51 -51
- package/src/archivers/NestiaMigrateFileArchiver.ts +28 -28
- package/src/bundles/NEST_TEMPLATE.ts +47 -47
- package/src/bundles/SDK_TEMPLATE.ts +21 -21
- package/src/executable/NestiaMigrateCommander.ts +98 -98
- package/src/executable/NestiaMigrateInquirer.ts +106 -106
- package/src/executable/bundle.js +129 -129
- package/src/executable/migrate.ts +7 -7
- package/src/factories/TypeLiteralFactory.ts +57 -57
- package/src/index.ts +4 -4
- package/src/module.ts +2 -2
- package/src/programmers/NestiaMigrateApiFileProgrammer.ts +55 -55
- package/src/programmers/NestiaMigrateApiFunctionProgrammer.ts +256 -256
- package/src/programmers/NestiaMigrateApiNamespaceProgrammer.ts +515 -515
- package/src/programmers/NestiaMigrateApiProgrammer.ts +107 -107
- package/src/programmers/NestiaMigrateApiSimulationProgrammer.ts +340 -340
- package/src/programmers/NestiaMigrateApiStartProgrammer.ts +198 -198
- package/src/programmers/NestiaMigrateDtoProgrammer.ts +101 -101
- package/src/programmers/NestiaMigrateE2eFileProgrammer.ts +153 -153
- package/src/programmers/NestiaMigrateE2eProgrammer.ts +46 -46
- package/src/programmers/NestiaMigrateImportProgrammer.ts +118 -118
- package/src/programmers/NestiaMigrateNestControllerProgrammer.ts +66 -66
- package/src/programmers/NestiaMigrateNestMethodProgrammer.ts +406 -406
- package/src/programmers/NestiaMigrateNestModuleProgrammer.ts +65 -65
- package/src/programmers/NestiaMigrateNestProgrammer.ts +88 -88
- package/src/programmers/NestiaMigrateSchemaProgrammer.ts +475 -475
- package/src/structures/INestiaMigrateConfig.ts +10 -10
- package/src/structures/INestiaMigrateContext.ts +15 -15
- package/src/structures/INestiaMigrateController.ts +8 -8
- package/src/structures/INestiaMigrateDto.ts +8 -8
- package/src/structures/INestiaMigrateFile.ts +5 -5
- package/src/structures/INestiaMigrateProgram.ts +11 -11
- package/src/structures/INestiaMigrateSchema.ts +4 -4
- package/src/utils/FilePrinter.ts +38 -38
- package/src/utils/MapUtil.ts +13 -13
- package/src/utils/OpenApiTypeChecker.ts +73 -73
- package/src/utils/SetupWizard.ts +12 -12
- package/src/utils/StringUtil.ts +113 -113
- package/src/utils/openapi-down-convert/RefVisitor.ts +139 -139
- package/src/utils/openapi-down-convert/converter.ts +527 -527
@@ -1,7 +1,7 @@
|
|
1
|
-
#!/usr/bin/env node
|
2
|
-
import { NestiaMigrateCommander } from "./NestiaMigrateCommander";
|
3
|
-
|
4
|
-
NestiaMigrateCommander.main().catch((exp) => {
|
5
|
-
console.error(exp);
|
6
|
-
process.exit(-1);
|
7
|
-
});
|
1
|
+
#!/usr/bin/env node
|
2
|
+
import { NestiaMigrateCommander } from "./NestiaMigrateCommander";
|
3
|
+
|
4
|
+
NestiaMigrateCommander.main().catch((exp) => {
|
5
|
+
console.error(exp);
|
6
|
+
process.exit(-1);
|
7
|
+
});
|
@@ -1,57 +1,57 @@
|
|
1
|
-
import ts from "typescript";
|
2
|
-
import { Escaper } from "typia/lib/utils/Escaper";
|
3
|
-
|
4
|
-
export namespace TypeLiteralFactory {
|
5
|
-
export const generate = (value: any): ts.TypeNode =>
|
6
|
-
typeof value === "boolean"
|
7
|
-
? generateBoolean(value)
|
8
|
-
: typeof value === "number"
|
9
|
-
? generateNumber(value)
|
10
|
-
: typeof value === "string"
|
11
|
-
? generatestring(value)
|
12
|
-
: typeof value === "object"
|
13
|
-
? value === null
|
14
|
-
? generateNull()
|
15
|
-
: Array.isArray(value)
|
16
|
-
? generateTuple(value)
|
17
|
-
: generateObject(value)
|
18
|
-
: ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword);
|
19
|
-
|
20
|
-
const generatestring = (str: string) =>
|
21
|
-
ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(str));
|
22
|
-
|
23
|
-
const generateNumber = (num: number) =>
|
24
|
-
ts.factory.createLiteralTypeNode(
|
25
|
-
num < 0
|
26
|
-
? ts.factory.createPrefixUnaryExpression(
|
27
|
-
ts.SyntaxKind.MinusToken,
|
28
|
-
ts.factory.createNumericLiteral(-num),
|
29
|
-
)
|
30
|
-
: ts.factory.createNumericLiteral(num),
|
31
|
-
);
|
32
|
-
|
33
|
-
const generateBoolean = (bool: boolean) =>
|
34
|
-
ts.factory.createLiteralTypeNode(
|
35
|
-
bool ? ts.factory.createTrue() : ts.factory.createFalse(),
|
36
|
-
);
|
37
|
-
|
38
|
-
const generateNull = () =>
|
39
|
-
ts.factory.createLiteralTypeNode(ts.factory.createNull());
|
40
|
-
|
41
|
-
const generateTuple = (items: any[]) =>
|
42
|
-
ts.factory.createTupleTypeNode(items.map(generate));
|
43
|
-
|
44
|
-
const generateObject = (obj: object) =>
|
45
|
-
ts.factory.createTypeLiteralNode(
|
46
|
-
Object.entries(obj).map(([key, value]) =>
|
47
|
-
ts.factory.createPropertySignature(
|
48
|
-
undefined,
|
49
|
-
Escaper.variable(key)
|
50
|
-
? ts.factory.createIdentifier(key)
|
51
|
-
: ts.factory.createStringLiteral(key),
|
52
|
-
undefined,
|
53
|
-
generate(value),
|
54
|
-
),
|
55
|
-
),
|
56
|
-
);
|
57
|
-
}
|
1
|
+
import ts from "typescript";
|
2
|
+
import { Escaper } from "typia/lib/utils/Escaper";
|
3
|
+
|
4
|
+
export namespace TypeLiteralFactory {
|
5
|
+
export const generate = (value: any): ts.TypeNode =>
|
6
|
+
typeof value === "boolean"
|
7
|
+
? generateBoolean(value)
|
8
|
+
: typeof value === "number"
|
9
|
+
? generateNumber(value)
|
10
|
+
: typeof value === "string"
|
11
|
+
? generatestring(value)
|
12
|
+
: typeof value === "object"
|
13
|
+
? value === null
|
14
|
+
? generateNull()
|
15
|
+
: Array.isArray(value)
|
16
|
+
? generateTuple(value)
|
17
|
+
: generateObject(value)
|
18
|
+
: ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword);
|
19
|
+
|
20
|
+
const generatestring = (str: string) =>
|
21
|
+
ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(str));
|
22
|
+
|
23
|
+
const generateNumber = (num: number) =>
|
24
|
+
ts.factory.createLiteralTypeNode(
|
25
|
+
num < 0
|
26
|
+
? ts.factory.createPrefixUnaryExpression(
|
27
|
+
ts.SyntaxKind.MinusToken,
|
28
|
+
ts.factory.createNumericLiteral(-num),
|
29
|
+
)
|
30
|
+
: ts.factory.createNumericLiteral(num),
|
31
|
+
);
|
32
|
+
|
33
|
+
const generateBoolean = (bool: boolean) =>
|
34
|
+
ts.factory.createLiteralTypeNode(
|
35
|
+
bool ? ts.factory.createTrue() : ts.factory.createFalse(),
|
36
|
+
);
|
37
|
+
|
38
|
+
const generateNull = () =>
|
39
|
+
ts.factory.createLiteralTypeNode(ts.factory.createNull());
|
40
|
+
|
41
|
+
const generateTuple = (items: any[]) =>
|
42
|
+
ts.factory.createTupleTypeNode(items.map(generate));
|
43
|
+
|
44
|
+
const generateObject = (obj: object) =>
|
45
|
+
ts.factory.createTypeLiteralNode(
|
46
|
+
Object.entries(obj).map(([key, value]) =>
|
47
|
+
ts.factory.createPropertySignature(
|
48
|
+
undefined,
|
49
|
+
Escaper.variable(key)
|
50
|
+
? ts.factory.createIdentifier(key)
|
51
|
+
: ts.factory.createStringLiteral(key),
|
52
|
+
undefined,
|
53
|
+
generate(value),
|
54
|
+
),
|
55
|
+
),
|
56
|
+
);
|
57
|
+
}
|
package/src/index.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import * as migrate from "./module";
|
2
|
-
|
3
|
-
export default migrate;
|
4
|
-
export * from "./module";
|
1
|
+
import * as migrate from "./module";
|
2
|
+
|
3
|
+
export default migrate;
|
4
|
+
export * from "./module";
|
package/src/module.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export * from "./NestiaMigrateApplication";
|
2
|
-
export * from "./structures/INestiaMigrateContext";
|
1
|
+
export * from "./NestiaMigrateApplication";
|
2
|
+
export * from "./structures/INestiaMigrateContext";
|
@@ -1,55 +1,55 @@
|
|
1
|
-
import { IHttpMigrateRoute, OpenApi } from "@samchon/openapi";
|
2
|
-
import ts from "typescript";
|
3
|
-
|
4
|
-
import { INestiaMigrateConfig } from "../structures/INestiaMigrateConfig";
|
5
|
-
import { FilePrinter } from "../utils/FilePrinter";
|
6
|
-
import { NestiaMigrateApiFunctionProgrammer } from "./NestiaMigrateApiFunctionProgrammer";
|
7
|
-
import { NestiaMigrateApiNamespaceProgrammer } from "./NestiaMigrateApiNamespaceProgrammer";
|
8
|
-
import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
|
9
|
-
|
10
|
-
export namespace NestiaMigrateApiFileProgrammer {
|
11
|
-
export interface IProps {
|
12
|
-
config: INestiaMigrateConfig;
|
13
|
-
components: OpenApi.IComponents;
|
14
|
-
namespace: string[];
|
15
|
-
routes: IHttpMigrateRoute[];
|
16
|
-
children: Set<string>;
|
17
|
-
}
|
18
|
-
|
19
|
-
export const write = (props: IProps): ts.Statement[] => {
|
20
|
-
const importer: NestiaMigrateImportProgrammer =
|
21
|
-
new NestiaMigrateImportProgrammer();
|
22
|
-
const statements: ts.Statement[] = props.routes
|
23
|
-
.map((route) => [
|
24
|
-
FilePrinter.newLine(),
|
25
|
-
NestiaMigrateApiFunctionProgrammer.write({
|
26
|
-
config: props.config,
|
27
|
-
components: props.components,
|
28
|
-
importer,
|
29
|
-
route,
|
30
|
-
}),
|
31
|
-
NestiaMigrateApiNamespaceProgrammer.write({
|
32
|
-
config: props.config,
|
33
|
-
components: props.components,
|
34
|
-
importer,
|
35
|
-
route,
|
36
|
-
}),
|
37
|
-
])
|
38
|
-
.flat();
|
39
|
-
return [
|
40
|
-
...importer.toStatements(
|
41
|
-
(ref) => `../${"../".repeat(props.namespace.length)}structures/${ref}`,
|
42
|
-
),
|
43
|
-
...[...props.children].map((child) =>
|
44
|
-
ts.factory.createExportDeclaration(
|
45
|
-
undefined,
|
46
|
-
false,
|
47
|
-
ts.factory.createNamespaceExport(ts.factory.createIdentifier(child)),
|
48
|
-
ts.factory.createStringLiteral(`./${child}`),
|
49
|
-
undefined,
|
50
|
-
),
|
51
|
-
),
|
52
|
-
...statements,
|
53
|
-
];
|
54
|
-
};
|
55
|
-
}
|
1
|
+
import { IHttpMigrateRoute, OpenApi } from "@samchon/openapi";
|
2
|
+
import ts from "typescript";
|
3
|
+
|
4
|
+
import { INestiaMigrateConfig } from "../structures/INestiaMigrateConfig";
|
5
|
+
import { FilePrinter } from "../utils/FilePrinter";
|
6
|
+
import { NestiaMigrateApiFunctionProgrammer } from "./NestiaMigrateApiFunctionProgrammer";
|
7
|
+
import { NestiaMigrateApiNamespaceProgrammer } from "./NestiaMigrateApiNamespaceProgrammer";
|
8
|
+
import { NestiaMigrateImportProgrammer } from "./NestiaMigrateImportProgrammer";
|
9
|
+
|
10
|
+
export namespace NestiaMigrateApiFileProgrammer {
|
11
|
+
export interface IProps {
|
12
|
+
config: INestiaMigrateConfig;
|
13
|
+
components: OpenApi.IComponents;
|
14
|
+
namespace: string[];
|
15
|
+
routes: IHttpMigrateRoute[];
|
16
|
+
children: Set<string>;
|
17
|
+
}
|
18
|
+
|
19
|
+
export const write = (props: IProps): ts.Statement[] => {
|
20
|
+
const importer: NestiaMigrateImportProgrammer =
|
21
|
+
new NestiaMigrateImportProgrammer();
|
22
|
+
const statements: ts.Statement[] = props.routes
|
23
|
+
.map((route) => [
|
24
|
+
FilePrinter.newLine(),
|
25
|
+
NestiaMigrateApiFunctionProgrammer.write({
|
26
|
+
config: props.config,
|
27
|
+
components: props.components,
|
28
|
+
importer,
|
29
|
+
route,
|
30
|
+
}),
|
31
|
+
NestiaMigrateApiNamespaceProgrammer.write({
|
32
|
+
config: props.config,
|
33
|
+
components: props.components,
|
34
|
+
importer,
|
35
|
+
route,
|
36
|
+
}),
|
37
|
+
])
|
38
|
+
.flat();
|
39
|
+
return [
|
40
|
+
...importer.toStatements(
|
41
|
+
(ref) => `../${"../".repeat(props.namespace.length)}structures/${ref}`,
|
42
|
+
),
|
43
|
+
...[...props.children].map((child) =>
|
44
|
+
ts.factory.createExportDeclaration(
|
45
|
+
undefined,
|
46
|
+
false,
|
47
|
+
ts.factory.createNamespaceExport(ts.factory.createIdentifier(child)),
|
48
|
+
ts.factory.createStringLiteral(`./${child}`),
|
49
|
+
undefined,
|
50
|
+
),
|
51
|
+
),
|
52
|
+
...statements,
|
53
|
+
];
|
54
|
+
};
|
55
|
+
}
|