@nestia/migrate 0.5.0 → 0.6.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/lib/NestiaMigrateApplication.js +15 -15
- package/lib/NestiaMigrateApplication.js.map +1 -1
- package/lib/archivers/FileArchiver.js.map +1 -1
- package/lib/bundles/TEMPLATE.js +11 -11
- package/lib/bundles/TEMPLATE.js.map +1 -1
- package/lib/executable/bundle.js.map +1 -1
- package/lib/executable/migrate.js +5 -5
- package/lib/executable/migrate.js.map +1 -1
- package/lib/programmers/ControllerProgrammer.d.ts +2 -1
- package/lib/programmers/ControllerProgrammer.js +21 -18
- package/lib/programmers/ControllerProgrammer.js.map +1 -1
- package/lib/programmers/DtoProgrammer.d.ts +8 -4
- package/lib/programmers/DtoProgrammer.js +36 -77
- package/lib/programmers/DtoProgrammer.js.map +1 -1
- package/lib/programmers/ImportProgrammer.d.ts +5 -5
- package/lib/programmers/ImportProgrammer.js +27 -19
- package/lib/programmers/ImportProgrammer.js.map +1 -1
- package/lib/programmers/MigrateProgrammer.d.ts +1 -2
- package/lib/programmers/MigrateProgrammer.js +52 -36
- package/lib/programmers/MigrateProgrammer.js.map +1 -1
- package/lib/programmers/ModuleProgrammer.d.ts +5 -0
- package/lib/programmers/ModuleProgrammer.js +29 -0
- package/lib/programmers/ModuleProgrammer.js.map +1 -0
- package/lib/programmers/RouteProgrammer.d.ts +2 -2
- package/lib/programmers/RouteProgrammer.js +108 -111
- package/lib/programmers/RouteProgrammer.js.map +1 -1
- package/lib/programmers/SchemaProgrammer.d.ts +2 -1
- package/lib/programmers/SchemaProgrammer.js +122 -189
- package/lib/programmers/SchemaProgrammer.js.map +1 -1
- package/lib/structures/IMigrateProgram.d.ts +2 -2
- package/lib/structures/ISwaggerInfo.d.ts +3 -3
- package/lib/utils/FilePrinter.d.ts +9 -0
- package/lib/utils/FilePrinter.js +25 -0
- package/lib/utils/FilePrinter.js.map +1 -0
- package/lib/utils/JsonTypeChecker.d.ts +3 -1
- package/lib/utils/JsonTypeChecker.js +31 -18
- package/lib/utils/JsonTypeChecker.js.map +1 -1
- package/lib/utils/MapUtil.js.map +1 -1
- package/lib/utils/SetupWizard.js.map +1 -1
- package/lib/utils/StringUtil.js.map +1 -1
- package/package.json +11 -9
- package/src/NestiaMigrateApplication.ts +68 -73
- package/src/archivers/FileArchiver.ts +35 -38
- package/src/bundles/TEMPLATE.ts +11 -11
- package/src/executable/bundle.ts +72 -78
- package/src/executable/migrate.ts +59 -60
- package/src/index.ts +4 -4
- package/src/module.ts +4 -4
- package/src/programmers/ControllerProgrammer.ts +155 -157
- package/src/programmers/DtoProgrammer.ts +74 -118
- package/src/programmers/ImportProgrammer.ts +98 -60
- package/src/programmers/MigrateProgrammer.ts +75 -62
- package/src/programmers/ModuleProgrammer.ts +62 -0
- package/src/programmers/RouteProgrammer.ts +486 -466
- package/src/programmers/SchemaProgrammer.ts +247 -339
- package/src/structures/IMigrateController.ts +8 -8
- package/src/structures/IMigrateDto.ts +8 -8
- package/src/structures/IMigrateFile.ts +5 -5
- package/src/structures/IMigrateProgram.ts +7 -7
- package/src/structures/IMigrateRoute.ts +36 -36
- package/src/structures/IMigrateSchema.ts +4 -4
- package/src/structures/ISwaggeSchema.ts +82 -82
- package/src/structures/ISwagger.ts +20 -20
- package/src/structures/ISwaggerComponents.ts +7 -7
- package/src/structures/ISwaggerInfo.ts +57 -57
- package/src/structures/ISwaggerRoute.ts +52 -52
- package/src/structures/ISwaggerSecurity.ts +47 -47
- package/src/utils/FilePrinter.ts +36 -0
- package/src/utils/JsonTypeChecker.ts +67 -52
- package/src/utils/MapUtil.ts +13 -13
- package/src/utils/SetupWizard.ts +15 -15
- package/src/utils/StringUtil.ts +51 -51
@@ -1,90 +1,49 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.DtoProgrammer = void 0;
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
8
|
+
const FilePrinter_1 = require("../utils/FilePrinter");
|
4
9
|
const MapUtil_1 = require("../utils/MapUtil");
|
5
|
-
const ImportProgrammer_1 = require("./ImportProgrammer");
|
6
10
|
const SchemaProgrammer_1 = require("./SchemaProgrammer");
|
7
11
|
var DtoProgrammer;
|
8
12
|
(function (DtoProgrammer) {
|
9
|
-
DtoProgrammer.
|
13
|
+
DtoProgrammer.write = (components) => {
|
10
14
|
var _a;
|
11
|
-
const
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
modulo.dto.schema = schema;
|
16
|
-
}
|
17
|
-
return root.toDto().children;
|
15
|
+
const dict = new Map();
|
16
|
+
for (const [key, value] of Object.entries((_a = components.schemas) !== null && _a !== void 0 ? _a : {}))
|
17
|
+
prepare(dict)(key)((importer) => writeAlias(importer)(components)(key, value));
|
18
|
+
return dict;
|
18
19
|
};
|
19
|
-
const
|
20
|
-
const
|
21
|
-
|
22
|
-
|
20
|
+
const prepare = (dict) => (name) => (programmer) => {
|
21
|
+
const accessors = name.split(".");
|
22
|
+
const modulo = { value: null };
|
23
|
+
accessors.forEach((acc, i) => {
|
24
|
+
modulo.value = MapUtil_1.MapUtil.take(dict)(acc)(() => ({
|
25
|
+
name: acc,
|
26
|
+
children: new Map(),
|
27
|
+
programmer: null,
|
28
|
+
}));
|
29
|
+
if (i === accessors.length - 1)
|
30
|
+
modulo.value.programmer = programmer;
|
31
|
+
dict = modulo.value.children;
|
32
|
+
});
|
23
33
|
return modulo;
|
24
34
|
};
|
25
|
-
|
26
|
-
const references = [];
|
27
|
-
const importer = new ImportProgrammer_1.ImportProgrammer(dto.name);
|
28
|
-
const body = iterate(components)(references)(importer)(dto);
|
29
|
-
const content = [
|
30
|
-
...importer.toScript((name) => `./${name}`, dto.name),
|
31
|
-
...(importer.empty() ? [] : [""]),
|
32
|
-
body,
|
33
|
-
];
|
34
|
-
return content.join("\n");
|
35
|
-
};
|
36
|
-
const iterate = (components) => (references) => (importer) => (dto) => {
|
37
|
-
const content = [];
|
38
|
-
if (dto.schema) {
|
39
|
-
const description = describe(dto.schema);
|
40
|
-
content.push(...(description
|
41
|
-
? [
|
42
|
-
"/**",
|
43
|
-
...description.split("\n").map((l) => ` * ${l}`),
|
44
|
-
" */",
|
45
|
-
]
|
46
|
-
: []), `export type ${dto.name} = ${SchemaProgrammer_1.SchemaProgrammer.write(components)(references)(importer)(dto.schema)}`);
|
47
|
-
}
|
48
|
-
if (dto.children.length) {
|
49
|
-
content.push(`export namespace ${dto.name} {`, ...dto.children.map((c) => iterate(components)(references)(importer)(c)
|
50
|
-
.split("\n")
|
51
|
-
.map((l) => ` ${l}`)
|
52
|
-
.join("\n")), `}`);
|
53
|
-
}
|
54
|
-
return content.join("\n");
|
55
|
-
};
|
56
|
-
const describe = (schema) => {
|
57
|
-
var _a;
|
58
|
-
const content = [];
|
59
|
-
const add = (text) => {
|
60
|
-
if (schema.description && !schema.description.includes(text))
|
61
|
-
content.push(text);
|
62
|
-
};
|
63
|
-
if (schema.description) {
|
64
|
-
content.push(...schema.description.split("\n"));
|
65
|
-
if (!((_a = schema.description.split("\n").at(-1)) === null || _a === void 0 ? void 0 : _a.startsWith("@")))
|
66
|
-
content.push("");
|
67
|
-
}
|
68
|
-
if (schema.deprecated)
|
69
|
-
add("@deprecated");
|
70
|
-
if (schema.title)
|
71
|
-
add(`@title ${schema.title}`);
|
72
|
-
return content.length ? content.join("\n") : undefined;
|
73
|
-
};
|
35
|
+
const writeAlias = (importer) => (components) => (key, value) => FilePrinter_1.FilePrinter.description(typescript_1.default.factory.createTypeAliasDeclaration([typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.ExportKeyword)], key.split(".").at(-1), [], SchemaProgrammer_1.SchemaProgrammer.write(importer)(components)(value)), writeComment(value));
|
74
36
|
})(DtoProgrammer || (exports.DtoProgrammer = DtoProgrammer = {}));
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
schema
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
return this.dto;
|
88
|
-
}
|
89
|
-
}
|
37
|
+
const writeComment = (schema) => {
|
38
|
+
var _a, _b;
|
39
|
+
return [
|
40
|
+
...(((_a = schema.description) === null || _a === void 0 ? void 0 : _a.length) ? [schema.description] : []),
|
41
|
+
...(((_b = schema.description) === null || _b === void 0 ? void 0 : _b.length) &&
|
42
|
+
(schema.title !== undefined || schema.deprecated === true)
|
43
|
+
? [""]
|
44
|
+
: []),
|
45
|
+
...(schema.title !== undefined ? [`@title ${schema.title}`] : []),
|
46
|
+
...(schema.deprecated === true ? [`@deprecated`] : []),
|
47
|
+
].join("\n");
|
48
|
+
};
|
90
49
|
//# sourceMappingURL=DtoProgrammer.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DtoProgrammer.js","sourceRoot":"","sources":["../../src/programmers/DtoProgrammer.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"DtoProgrammer.js","sourceRoot":"","sources":["../../src/programmers/DtoProgrammer.ts"],"names":[],"mappings":"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"}
|
@@ -1,13 +1,13 @@
|
|
1
|
+
import ts from "typescript";
|
1
2
|
export declare class ImportProgrammer {
|
2
|
-
readonly name: string | null;
|
3
3
|
private external_;
|
4
4
|
private dtos_;
|
5
|
-
constructor(
|
5
|
+
constructor();
|
6
6
|
empty(): boolean;
|
7
7
|
external(props: ImportProgrammer.IProps): string;
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
dto(name: string): ts.TypeReferenceNode;
|
9
|
+
tag(type: string, arg: number | string): ts.TypeReferenceNode;
|
10
|
+
toStatements(dtoPath: (name: string) => string, current?: string): ts.Statement[];
|
11
11
|
}
|
12
12
|
export declare namespace ImportProgrammer {
|
13
13
|
interface IProps {
|
@@ -1,10 +1,15 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.ImportProgrammer = void 0;
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
8
|
+
const ExpressionFactory_1 = require("typia/lib/factories/ExpressionFactory");
|
9
|
+
const FilePrinter_1 = require("../utils/FilePrinter");
|
4
10
|
const MapUtil_1 = require("../utils/MapUtil");
|
5
11
|
class ImportProgrammer {
|
6
|
-
constructor(
|
7
|
-
this.name = name;
|
12
|
+
constructor() {
|
8
13
|
this.external_ = new Map();
|
9
14
|
this.dtos_ = new Set();
|
10
15
|
}
|
@@ -15,29 +20,32 @@ class ImportProgrammer {
|
|
15
20
|
MapUtil_1.MapUtil.take(this.external_)(props.library)(() => new Set()).add(props.instance.split(".")[0]);
|
16
21
|
return props.instance;
|
17
22
|
}
|
23
|
+
dto(name) {
|
24
|
+
const file = name.split(".")[0];
|
25
|
+
this.dtos_.add(file);
|
26
|
+
return typescript_1.default.factory.createTypeReferenceNode(name);
|
27
|
+
}
|
18
28
|
tag(type, arg) {
|
19
29
|
this.external({
|
20
30
|
library: "typia",
|
21
31
|
instance: "tags",
|
22
32
|
});
|
23
|
-
return `tags.${type}
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
this.dtos_.add(file);
|
29
|
-
return name;
|
33
|
+
return typescript_1.default.factory.createTypeReferenceNode(`tags.${type}`, [
|
34
|
+
typescript_1.default.factory.createLiteralTypeNode(typeof arg === "string"
|
35
|
+
? typescript_1.default.factory.createStringLiteral(arg)
|
36
|
+
: ExpressionFactory_1.ExpressionFactory.number(arg)),
|
37
|
+
]);
|
30
38
|
}
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
.
|
40
|
-
|
39
|
+
toStatements(dtoPath, current) {
|
40
|
+
return [
|
41
|
+
...[...this.external_.entries()].map(([library, properties]) => typescript_1.default.factory.createImportDeclaration(undefined, typescript_1.default.factory.createImportClause(false, undefined, typescript_1.default.factory.createNamedImports([...properties].map((i) => typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier(i))))), typescript_1.default.factory.createStringLiteral(library))),
|
42
|
+
...(this.external_.size && this.dtos_.size ? [FilePrinter_1.FilePrinter.enter()] : []),
|
43
|
+
...[...this.dtos_]
|
44
|
+
.filter(current ? (name) => name !== current.split(".")[0] : () => true)
|
45
|
+
.map((i) => typescript_1.default.factory.createImportDeclaration(undefined, typescript_1.default.factory.createImportClause(false, undefined, typescript_1.default.factory.createNamedImports([
|
46
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier(i)),
|
47
|
+
])), typescript_1.default.factory.createStringLiteral(dtoPath(i)))),
|
48
|
+
];
|
41
49
|
}
|
42
50
|
}
|
43
51
|
exports.ImportProgrammer = ImportProgrammer;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ImportProgrammer.js","sourceRoot":"","sources":["../../src/programmers/ImportProgrammer.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"ImportProgrammer.js","sourceRoot":"","sources":["../../src/programmers/ImportProgrammer.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import { IMigrateFile } from "../structures/IMigrateFile";
|
2
2
|
import { IMigrateProgram } from "../structures/IMigrateProgram";
|
3
3
|
import { ISwagger } from "../structures/ISwagger";
|
4
|
-
import { ISwaggerComponents } from "../structures/ISwaggerComponents";
|
5
4
|
export declare namespace MigrateProgrammer {
|
6
5
|
const analyze: (swagger: ISwagger) => IMigrateProgram;
|
7
|
-
const write: (
|
6
|
+
const write: (program: IMigrateProgram) => IMigrateFile[];
|
8
7
|
}
|
@@ -1,48 +1,64 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.MigrateProgrammer = void 0;
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
8
|
+
const FilePrinter_1 = require("../utils/FilePrinter");
|
4
9
|
const ControllerProgrammer_1 = require("./ControllerProgrammer");
|
5
10
|
const DtoProgrammer_1 = require("./DtoProgrammer");
|
11
|
+
const ImportProgrammer_1 = require("./ImportProgrammer");
|
12
|
+
const ModuleProgrammer_1 = require("./ModuleProgrammer");
|
6
13
|
var MigrateProgrammer;
|
7
14
|
(function (MigrateProgrammer) {
|
8
|
-
MigrateProgrammer.analyze = (swagger) => {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
MigrateProgrammer.analyze = (swagger) => ({
|
16
|
+
swagger,
|
17
|
+
controllers: ControllerProgrammer_1.ControllerProgrammer.analyze(swagger),
|
18
|
+
});
|
19
|
+
MigrateProgrammer.write = (program) => [
|
20
|
+
{
|
21
|
+
location: "src",
|
22
|
+
file: "MyModule.ts",
|
23
|
+
statements: ModuleProgrammer_1.ModuleProgrammer.write(program.controllers),
|
24
|
+
},
|
25
|
+
...program.controllers.map((c) => ({
|
26
|
+
location: c.location,
|
27
|
+
file: `${c.name}.ts`,
|
28
|
+
statements: ControllerProgrammer_1.ControllerProgrammer.write(program.swagger.components)(c),
|
29
|
+
})),
|
30
|
+
...[...DtoProgrammer_1.DtoProgrammer.write(program.swagger.components).entries()].map(([key, value]) => ({
|
31
|
+
location: "src/api/structures",
|
32
|
+
file: `${key}.ts`,
|
33
|
+
statements: writeDtoFile(key, value),
|
34
|
+
})),
|
35
|
+
].map((o) => ({
|
36
|
+
location: o.location,
|
37
|
+
file: o.file,
|
38
|
+
content: FilePrinter_1.FilePrinter.write({ statements: o.statements }),
|
39
|
+
}));
|
40
|
+
const writeDtoFile = (key, modulo) => {
|
41
|
+
const importer = new ImportProgrammer_1.ImportProgrammer();
|
42
|
+
const statements = iterate(importer)(modulo);
|
43
|
+
if (statements.length === 0)
|
44
|
+
return [];
|
17
45
|
return [
|
18
|
-
...
|
19
|
-
|
20
|
-
|
21
|
-
content: DtoProgrammer_1.DtoProgrammer.write(components)(s),
|
22
|
-
})),
|
23
|
-
...program.controllers.map((c) => ({
|
24
|
-
location: c.location,
|
25
|
-
file: `${c.name}.ts`,
|
26
|
-
content: ControllerProgrammer_1.ControllerProgrammer.write(components)(c),
|
27
|
-
})),
|
28
|
-
{
|
29
|
-
location: "src",
|
30
|
-
file: "MyModule.ts",
|
31
|
-
content: MyModule(program.controllers),
|
32
|
-
},
|
46
|
+
...importer.toStatements((name) => `./${name}`, key),
|
47
|
+
...(importer.empty() ? [] : [FilePrinter_1.FilePrinter.enter()]),
|
48
|
+
...statements,
|
33
49
|
];
|
34
50
|
};
|
51
|
+
const iterate = (importer) => (modulo) => {
|
52
|
+
const output = [];
|
53
|
+
if (modulo.programmer !== null)
|
54
|
+
output.push(modulo.programmer(importer));
|
55
|
+
if (modulo.children.size) {
|
56
|
+
const internal = [];
|
57
|
+
for (const child of modulo.children.values())
|
58
|
+
internal.push(...iterate(importer)(child));
|
59
|
+
output.push(typescript_1.default.factory.createModuleDeclaration([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createIdentifier(modulo.name), typescript_1.default.factory.createModuleBlock(internal), typescript_1.default.NodeFlags.Namespace));
|
60
|
+
}
|
61
|
+
return output;
|
62
|
+
};
|
35
63
|
})(MigrateProgrammer || (exports.MigrateProgrammer = MigrateProgrammer = {}));
|
36
|
-
const MyModule = (controllers) => [
|
37
|
-
`import { Module } from "@nestjs/common";`,
|
38
|
-
``,
|
39
|
-
...controllers.map((c) => `import { ${c.name} } from "${c.location.replace("src/", "./")}/${c.name}";`),
|
40
|
-
``,
|
41
|
-
`@Module({`,
|
42
|
-
` controllers: [`,
|
43
|
-
...controllers.map((c) => ` ${c.name},`),
|
44
|
-
` ],`,
|
45
|
-
`})`,
|
46
|
-
`export class MyModule {}`,
|
47
|
-
].join("\n");
|
48
64
|
//# sourceMappingURL=MigrateProgrammer.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MigrateProgrammer.js","sourceRoot":"","sources":["../../src/programmers/MigrateProgrammer.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"MigrateProgrammer.js","sourceRoot":"","sources":["../../src/programmers/MigrateProgrammer.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.ModuleProgrammer = void 0;
|
7
|
+
const typescript_1 = __importDefault(require("typescript"));
|
8
|
+
const FilePrinter_1 = require("../utils/FilePrinter");
|
9
|
+
var ModuleProgrammer;
|
10
|
+
(function (ModuleProgrammer) {
|
11
|
+
ModuleProgrammer.write = (controllers) => [
|
12
|
+
$import("@nestjs/common")("Module"),
|
13
|
+
...(controllers.length ? [FilePrinter_1.FilePrinter.enter()] : []),
|
14
|
+
...controllers.map((c) => $import(`${c.location.replace("src/", "./")}/${c.name}`)(c.name)),
|
15
|
+
...(controllers.length ? [FilePrinter_1.FilePrinter.enter()] : []),
|
16
|
+
typescript_1.default.factory.createClassDeclaration([
|
17
|
+
typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Module"), undefined, [
|
18
|
+
typescript_1.default.factory.createObjectLiteralExpression([
|
19
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("controllers"), typescript_1.default.factory.createArrayLiteralExpression(controllers.map((c) => typescript_1.default.factory.createIdentifier(c.name)))),
|
20
|
+
], true),
|
21
|
+
])),
|
22
|
+
typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.ExportKeyword),
|
23
|
+
], "MyModule", undefined, undefined, []),
|
24
|
+
];
|
25
|
+
})(ModuleProgrammer || (exports.ModuleProgrammer = ModuleProgrammer = {}));
|
26
|
+
const $import = (file) => (instance) => typescript_1.default.factory.createImportDeclaration(undefined, typescript_1.default.factory.createImportClause(false, undefined, typescript_1.default.factory.createNamedImports([
|
27
|
+
typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier(instance)),
|
28
|
+
])), typescript_1.default.factory.createStringLiteral(file));
|
29
|
+
//# sourceMappingURL=ModuleProgrammer.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ModuleProgrammer.js","sourceRoot":"","sources":["../../src/programmers/ModuleProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAG5B,sDAAmD;AAEnD,IAAiB,gBAAgB,CAuChC;AAvCD,WAAiB,gBAAgB;IAClB,sBAAK,GAAG,CAAC,WAAiC,EAAkB,EAAE,CAAC;QAC1E,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;QACnC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACjE;QACD,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAC/B;YACE,oBAAE,CAAC,OAAO,CAAC,eAAe,CACxB,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EACrC,SAAS,EACT;gBACE,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACtC;oBACE,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAC1C,oBAAE,CAAC,OAAO,CAAC,4BAA4B,CACrC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CACpC,CACF,CACF;iBACF,EACD,IAAI,CACL;aACF,CACF,CACF;YACD,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC;SACpD,EACD,UAAU,EACV,SAAS,EACT,SAAS,EACT,EAAE,CACH;KACF,CAAC;AACJ,CAAC,EAvCgB,gBAAgB,gCAAhB,gBAAgB,QAuChC;AAED,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CACrD,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAC3B,KAAK,EACL,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC5B,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,KAAK,EACL,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CACtC;CACF,CAAC,CACH,EACD,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CACrC,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
|
+
import ts from "typescript";
|
1
2
|
import { IMigrateRoute } from "../structures/IMigrateRoute";
|
2
|
-
import { ISwaggerSchema } from "../structures/ISwaggeSchema";
|
3
3
|
import { ISwagger } from "../structures/ISwagger";
|
4
4
|
import { ISwaggerComponents } from "../structures/ISwaggerComponents";
|
5
5
|
import { ISwaggerRoute } from "../structures/ISwaggerRoute";
|
@@ -9,5 +9,5 @@ export declare namespace RouteProgrammer {
|
|
9
9
|
path: string;
|
10
10
|
method: string;
|
11
11
|
}) => (route: ISwaggerRoute) => IMigrateRoute | null;
|
12
|
-
const write: (components: ISwaggerComponents) => (
|
12
|
+
const write: (components: ISwaggerComponents) => (importer: ImportProgrammer) => (route: IMigrateRoute) => ts.MethodDeclaration;
|
13
13
|
}
|