@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.
Files changed (72) hide show
  1. package/lib/NestiaMigrateApplication.js +15 -15
  2. package/lib/NestiaMigrateApplication.js.map +1 -1
  3. package/lib/archivers/FileArchiver.js.map +1 -1
  4. package/lib/bundles/TEMPLATE.js +11 -11
  5. package/lib/bundles/TEMPLATE.js.map +1 -1
  6. package/lib/executable/bundle.js.map +1 -1
  7. package/lib/executable/migrate.js +5 -5
  8. package/lib/executable/migrate.js.map +1 -1
  9. package/lib/programmers/ControllerProgrammer.d.ts +2 -1
  10. package/lib/programmers/ControllerProgrammer.js +21 -18
  11. package/lib/programmers/ControllerProgrammer.js.map +1 -1
  12. package/lib/programmers/DtoProgrammer.d.ts +8 -4
  13. package/lib/programmers/DtoProgrammer.js +36 -77
  14. package/lib/programmers/DtoProgrammer.js.map +1 -1
  15. package/lib/programmers/ImportProgrammer.d.ts +5 -5
  16. package/lib/programmers/ImportProgrammer.js +27 -19
  17. package/lib/programmers/ImportProgrammer.js.map +1 -1
  18. package/lib/programmers/MigrateProgrammer.d.ts +1 -2
  19. package/lib/programmers/MigrateProgrammer.js +52 -36
  20. package/lib/programmers/MigrateProgrammer.js.map +1 -1
  21. package/lib/programmers/ModuleProgrammer.d.ts +5 -0
  22. package/lib/programmers/ModuleProgrammer.js +29 -0
  23. package/lib/programmers/ModuleProgrammer.js.map +1 -0
  24. package/lib/programmers/RouteProgrammer.d.ts +2 -2
  25. package/lib/programmers/RouteProgrammer.js +108 -111
  26. package/lib/programmers/RouteProgrammer.js.map +1 -1
  27. package/lib/programmers/SchemaProgrammer.d.ts +2 -1
  28. package/lib/programmers/SchemaProgrammer.js +122 -189
  29. package/lib/programmers/SchemaProgrammer.js.map +1 -1
  30. package/lib/structures/IMigrateProgram.d.ts +2 -2
  31. package/lib/structures/ISwaggerInfo.d.ts +3 -3
  32. package/lib/utils/FilePrinter.d.ts +9 -0
  33. package/lib/utils/FilePrinter.js +25 -0
  34. package/lib/utils/FilePrinter.js.map +1 -0
  35. package/lib/utils/JsonTypeChecker.d.ts +3 -1
  36. package/lib/utils/JsonTypeChecker.js +31 -18
  37. package/lib/utils/JsonTypeChecker.js.map +1 -1
  38. package/lib/utils/MapUtil.js.map +1 -1
  39. package/lib/utils/SetupWizard.js.map +1 -1
  40. package/lib/utils/StringUtil.js.map +1 -1
  41. package/package.json +11 -9
  42. package/src/NestiaMigrateApplication.ts +68 -73
  43. package/src/archivers/FileArchiver.ts +35 -38
  44. package/src/bundles/TEMPLATE.ts +11 -11
  45. package/src/executable/bundle.ts +72 -78
  46. package/src/executable/migrate.ts +59 -60
  47. package/src/index.ts +4 -4
  48. package/src/module.ts +4 -4
  49. package/src/programmers/ControllerProgrammer.ts +155 -157
  50. package/src/programmers/DtoProgrammer.ts +74 -118
  51. package/src/programmers/ImportProgrammer.ts +98 -60
  52. package/src/programmers/MigrateProgrammer.ts +75 -62
  53. package/src/programmers/ModuleProgrammer.ts +62 -0
  54. package/src/programmers/RouteProgrammer.ts +486 -466
  55. package/src/programmers/SchemaProgrammer.ts +247 -339
  56. package/src/structures/IMigrateController.ts +8 -8
  57. package/src/structures/IMigrateDto.ts +8 -8
  58. package/src/structures/IMigrateFile.ts +5 -5
  59. package/src/structures/IMigrateProgram.ts +7 -7
  60. package/src/structures/IMigrateRoute.ts +36 -36
  61. package/src/structures/IMigrateSchema.ts +4 -4
  62. package/src/structures/ISwaggeSchema.ts +82 -82
  63. package/src/structures/ISwagger.ts +20 -20
  64. package/src/structures/ISwaggerComponents.ts +7 -7
  65. package/src/structures/ISwaggerInfo.ts +57 -57
  66. package/src/structures/ISwaggerRoute.ts +52 -52
  67. package/src/structures/ISwaggerSecurity.ts +47 -47
  68. package/src/utils/FilePrinter.ts +36 -0
  69. package/src/utils/JsonTypeChecker.ts +67 -52
  70. package/src/utils/MapUtil.ts +13 -13
  71. package/src/utils/SetupWizard.ts +15 -15
  72. 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.analyze = (swagger) => {
13
+ DtoProgrammer.write = (components) => {
10
14
  var _a;
11
- const root = new Modulo("");
12
- // COMPONENTS
13
- for (const [id, schema] of Object.entries((_a = swagger.components.schemas) !== null && _a !== void 0 ? _a : {})) {
14
- const modulo = emplace(root)(id);
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 emplace = (modulo) => (name) => {
20
- const identifiers = name.split(".");
21
- for (const key of identifiers)
22
- modulo = MapUtil_1.MapUtil.take(modulo.children)(key)(() => new Modulo(key));
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
- DtoProgrammer.write = (components) => (dto) => {
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
- class Modulo {
76
- constructor(name) {
77
- this.dto = {
78
- name,
79
- location: "src/api/structures",
80
- schema: null,
81
- children: [],
82
- };
83
- this.children = new Map();
84
- }
85
- toDto() {
86
- this.dto.children = Array.from(this.children.values()).map((modulo) => modulo.toDto());
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":"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"}
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(name: string | null);
5
+ constructor();
6
6
  empty(): boolean;
7
7
  external(props: ImportProgrammer.IProps): string;
8
- tag(type: string, arg: number | string): string;
9
- dto(name: string): string;
10
- toScript(dtoPath: (name: string) => string, current?: string): string[];
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(name) {
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}<${JSON.stringify(arg)}>`;
24
- }
25
- dto(name) {
26
- const file = name.split(".")[0];
27
- if (this.name !== file)
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
- toScript(dtoPath, current) {
32
- const content = [...this.external_.entries()].map(([library, properties]) => `import { ${[...properties].join(", ")} } from "${library}";`);
33
- if (this.external_.size && this.dtos_.size)
34
- content.push("");
35
- content.push(...[...this.dtos_]
36
- .filter(current
37
- ? (name) => name !== current.split(".")[0]
38
- : () => true)
39
- .map((i) => `import { ${i} } from "${dtoPath(i)}";`));
40
- return content;
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":";;;AAAA,8CAA2C;AAE3C,MAAa,gBAAgB;IAIzB,YAAmC,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;QAH9C,cAAS,GAA6B,IAAI,GAAG,EAAE,CAAC;QAChD,UAAK,GAAgB,IAAI,GAAG,EAAE,CAAC;IAEkB,CAAC;IAEnD,KAAK;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEM,QAAQ,CAAC,KAA8B;QAC1C,iBAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAC5D,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/B,CAAC;QACF,OAAO,KAAK,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAEM,GAAG,CAAC,IAAY,EAAE,GAAoB;QACzC,IAAI,CAAC,QAAQ,CAAC;YACV,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,MAAM;SACnB,CAAC,CAAC;QACH,OAAO,QAAQ,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;IAClD,CAAC;IAEM,GAAG,CAAC,IAAY;QACnB,MAAM,IAAI,GAAW,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,QAAQ,CACX,OAAiC,EACjC,OAAgB;QAEhB,MAAM,OAAO,GAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACvD,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CACtB,YAAY,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,OAAO,IAAI,CACpE,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CACR,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;aACb,MAAM,CACH,OAAO;YACH,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CACnB;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAC3D,CAAC;QACF,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAnDD,4CAmDC"}
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: (components: ISwaggerComponents) => (program: IMigrateProgram) => IMigrateFile[];
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
- const controllers = ControllerProgrammer_1.ControllerProgrammer.analyze(swagger);
10
- const structures = DtoProgrammer_1.DtoProgrammer.analyze(swagger);
11
- return {
12
- controllers,
13
- structures,
14
- };
15
- };
16
- MigrateProgrammer.write = (components) => (program) => {
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
- ...program.structures.map((s) => ({
19
- location: s.location,
20
- file: `${s.name}.ts`,
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":";;;AAMA,iEAA8D;AAC9D,mDAAgD;AAEhD,IAAiB,iBAAiB,CAgCjC;AAhCD,WAAiB,iBAAiB;IACjB,yBAAO,GAAG,CAAC,OAAiB,EAAmB,EAAE;QAC1D,MAAM,WAAW,GACb,2CAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAkB,6BAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO;YACH,WAAW;YACX,UAAU;SACb,CAAC;IACN,CAAC,CAAC;IAEW,uBAAK,GACd,CAAC,UAA8B,EAAE,EAAE,CACnC,CAAC,OAAwB,EAAkB,EAAE;QACzC,OAAO;YACH,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK;gBACpB,OAAO,EAAE,6BAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aAC9C,CAAC,CAAC;YACH,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK;gBACpB,OAAO,EAAE,2CAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACrD,CAAC,CAAC;YACH;gBACI,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;aACzC;SACJ,CAAC;IACN,CAAC,CAAC;AACV,CAAC,EAhCgB,iBAAiB,iCAAjB,iBAAiB,QAgCjC;AAED,MAAM,QAAQ,GAAG,CAAC,WAAiC,EAAU,EAAE,CAC3D;IACI,0CAA0C;IAC1C,EAAE;IACF,GAAG,WAAW,CAAC,GAAG,CACd,CAAC,CAAC,EAAE,EAAE,CACF,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAC5C,MAAM,EACN,IAAI,CACP,IAAI,CAAC,CAAC,IAAI,IAAI,CACtB;IACD,EAAE;IACF,WAAW;IACX,oBAAoB;IACpB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,GAAG,CAAC;IAC/C,QAAQ;IACR,IAAI;IACJ,0BAA0B;CAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"MigrateProgrammer.js","sourceRoot":"","sources":["../../src/programmers/MigrateProgrammer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { IMigrateController } from "../structures/IMigrateController";
3
+ export declare namespace ModuleProgrammer {
4
+ const write: (controllers: IMigrateController[]) => ts.Statement[];
5
+ }
@@ -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) => (references: ISwaggerSchema.IReference[]) => (importer: ImportProgrammer) => (route: IMigrateRoute) => string;
12
+ const write: (components: ISwaggerComponents) => (importer: ImportProgrammer) => (route: IMigrateRoute) => ts.MethodDeclaration;
13
13
  }