@nestia/migrate 0.6.0 → 0.6.2

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 (85) hide show
  1. package/lib/{NestiaMigrateApplication.d.ts → MigrateApplication.d.ts} +2 -2
  2. package/lib/{NestiaMigrateApplication.js → MigrateApplication.js} +54 -29
  3. package/lib/MigrateApplication.js.map +1 -0
  4. package/lib/analyzers/ControllerAnalyzer.d.ts +5 -0
  5. package/lib/{programmers/ControllerProgrammer.js → analyzers/ControllerAnalyzer.js} +19 -37
  6. package/lib/analyzers/ControllerAnalyzer.js.map +1 -0
  7. package/lib/analyzers/MethodAnalyzer.d.ts +9 -0
  8. package/lib/{programmers/RouteProgrammer.js → analyzers/MethodAnalyzer.js} +24 -112
  9. package/lib/analyzers/MethodAnalyzer.js.map +1 -0
  10. package/lib/analyzers/MigrateAnalyzer.d.ts +4 -0
  11. package/lib/analyzers/MigrateAnalyzer.js +12 -0
  12. package/lib/analyzers/MigrateAnalyzer.js.map +1 -0
  13. package/lib/archivers/FileArchiver.d.ts +3 -3
  14. package/lib/archivers/FileArchiver.js +16 -7
  15. package/lib/archivers/FileArchiver.js.map +1 -1
  16. package/lib/executable/migrate.js +18 -9
  17. package/lib/executable/migrate.js.map +1 -1
  18. package/lib/module.d.ts +1 -1
  19. package/lib/module.js +1 -1
  20. package/lib/module.js.map +1 -1
  21. package/lib/programmers/ApiFileProgrammer.d.ts +17 -0
  22. package/lib/programmers/ApiFileProgrammer.js +28 -0
  23. package/lib/programmers/ApiFileProgrammer.js.map +1 -0
  24. package/lib/programmers/ApiFunctionProgrammer.d.ts +13 -0
  25. package/lib/programmers/ApiFunctionProgrammer.js +85 -0
  26. package/lib/programmers/ApiFunctionProgrammer.js.map +1 -0
  27. package/lib/programmers/ApiNamespaceProgrammer.d.ts +13 -0
  28. package/lib/programmers/ApiNamespaceProgrammer.js +134 -0
  29. package/lib/programmers/ApiNamespaceProgrammer.js.map +1 -0
  30. package/lib/programmers/ApiProgrammer.d.ts +5 -0
  31. package/lib/programmers/ApiProgrammer.js +62 -0
  32. package/lib/programmers/ApiProgrammer.js.map +1 -0
  33. package/lib/programmers/DtoProgrammer.js +2 -2
  34. package/lib/programmers/DtoProgrammer.js.map +1 -1
  35. package/lib/programmers/ImportProgrammer.d.ts +2 -1
  36. package/lib/programmers/ImportProgrammer.js +19 -4
  37. package/lib/programmers/ImportProgrammer.js.map +1 -1
  38. package/lib/programmers/{ControllerProgrammer.d.ts → NestControllerProgrammer.d.ts} +1 -3
  39. package/lib/programmers/NestControllerProgrammer.js +31 -0
  40. package/lib/programmers/NestControllerProgrammer.js.map +1 -0
  41. package/lib/programmers/{RouteProgrammer.d.ts → NestMethodProgrammer.d.ts} +1 -7
  42. package/lib/programmers/NestMethodProgrammer.js +118 -0
  43. package/lib/programmers/NestMethodProgrammer.js.map +1 -0
  44. package/lib/programmers/{ModuleProgrammer.d.ts → NestModuleProgrammer.d.ts} +1 -1
  45. package/lib/programmers/{ModuleProgrammer.js → NestModuleProgrammer.js} +6 -6
  46. package/lib/programmers/NestModuleProgrammer.js.map +1 -0
  47. package/lib/programmers/{MigrateProgrammer.d.ts → NestProgrammer.d.ts} +1 -3
  48. package/lib/programmers/{MigrateProgrammer.js → NestProgrammer.js} +10 -14
  49. package/lib/programmers/NestProgrammer.js.map +1 -0
  50. package/lib/programmers/SchemaProgrammer.d.ts +1 -1
  51. package/lib/programmers/SchemaProgrammer.js +17 -17
  52. package/lib/programmers/SchemaProgrammer.js.map +1 -1
  53. package/lib/structures/IMigrateRoute.d.ts +13 -4
  54. package/lib/utils/SetupWizard.js +0 -3
  55. package/lib/utils/SetupWizard.js.map +1 -1
  56. package/lib/utils/StringUtil.d.ts +1 -0
  57. package/lib/utils/StringUtil.js +4 -2
  58. package/lib/utils/StringUtil.js.map +1 -1
  59. package/package.json +1 -1
  60. package/src/{NestiaMigrateApplication.ts → MigrateApplication.ts} +32 -22
  61. package/src/{programmers/ControllerProgrammer.ts → analyzers/ControllerAnalyzer.ts} +123 -155
  62. package/src/{programmers/RouteProgrammer.ts → analyzers/MethodAnalyzer.ts} +20 -218
  63. package/src/analyzers/MigrateAnalyzer.ts +9 -0
  64. package/src/archivers/FileArchiver.ts +10 -7
  65. package/src/executable/migrate.ts +8 -8
  66. package/src/module.ts +1 -1
  67. package/src/programmers/ApiFileProgrammer.ts +51 -0
  68. package/src/programmers/ApiFunctionProgrammer.ts +177 -0
  69. package/src/programmers/ApiNamespaceProgrammer.ts +395 -0
  70. package/src/programmers/ApiProgrammer.ts +68 -0
  71. package/src/programmers/DtoProgrammer.ts +3 -3
  72. package/src/programmers/ImportProgrammer.ts +37 -21
  73. package/src/programmers/NestControllerProgrammer.ts +48 -0
  74. package/src/programmers/NestMethodProgrammer.ts +228 -0
  75. package/src/programmers/{ModuleProgrammer.ts → NestModuleProgrammer.ts} +1 -1
  76. package/src/programmers/{MigrateProgrammer.ts → NestProgrammer.ts} +11 -12
  77. package/src/programmers/SchemaProgrammer.ts +22 -25
  78. package/src/structures/IMigrateRoute.ts +13 -5
  79. package/src/utils/SetupWizard.ts +0 -3
  80. package/src/utils/StringUtil.ts +11 -2
  81. package/lib/NestiaMigrateApplication.js.map +0 -1
  82. package/lib/programmers/ControllerProgrammer.js.map +0 -1
  83. package/lib/programmers/MigrateProgrammer.js.map +0 -1
  84. package/lib/programmers/ModuleProgrammer.js.map +0 -1
  85. package/lib/programmers/RouteProgrammer.js.map +0 -1
@@ -1,14 +1,14 @@
1
1
  import { IMigrateFile } from "./structures/IMigrateFile";
2
2
  import { IMigrateProgram } from "./structures/IMigrateProgram";
3
3
  import { ISwagger } from "./structures/ISwagger";
4
- export declare class NestiaMigrateApplication {
4
+ export declare class MigrateApplication {
5
5
  readonly swagger: ISwagger;
6
6
  private program;
7
7
  private files;
8
8
  constructor(swagger: ISwagger);
9
9
  analyze(): IMigrateProgram;
10
10
  write(): IMigrateFile[];
11
- generate: (archiver: NestiaMigrateApplication.IArchiver) => (output: string) => void;
11
+ generate(output: string): Promise<void>;
12
12
  }
13
13
  export declare namespace NestiaMigrateApplication {
14
14
  interface IArchiver {
@@ -1,37 +1,28 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
5
14
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NestiaMigrateApplication = void 0;
15
+ exports.MigrateApplication = void 0;
7
16
  const child_process_1 = __importDefault(require("child_process"));
17
+ const fs_1 = __importDefault(require("fs"));
8
18
  const typia_1 = __importDefault(require("typia"));
19
+ const MigrateAnalyzer_1 = require("./analyzers/MigrateAnalyzer");
9
20
  const FileArchiver_1 = require("./archivers/FileArchiver");
10
21
  const TEMPLATE_1 = require("./bundles/TEMPLATE");
11
- const MigrateProgrammer_1 = require("./programmers/MigrateProgrammer");
12
- class NestiaMigrateApplication {
22
+ const ApiProgrammer_1 = require("./programmers/ApiProgrammer");
23
+ const NestProgrammer_1 = require("./programmers/NestProgrammer");
24
+ class MigrateApplication {
13
25
  constructor(swagger) {
14
- this.generate = (archiver) => (output) => {
15
- const program = this.analyze();
16
- const files = MigrateProgrammer_1.MigrateProgrammer.write(program);
17
- try {
18
- child_process_1.default.execSync(`git clone https://github.com/samchon/nestia-template "${output}"`, { stdio: "ignore" });
19
- for (const path of [
20
- "/.git",
21
- "/src/api",
22
- "/src/controllers",
23
- "/src/providers",
24
- "/test/features",
25
- ])
26
- child_process_1.default.execSync(`rm -rf "${output}${path}"`, {
27
- stdio: "ignore",
28
- });
29
- }
30
- catch (_a) {
31
- FileArchiver_1.FileArchiver.archive(archiver)(output)(TEMPLATE_1.TEMPLATE);
32
- }
33
- FileArchiver_1.FileArchiver.archive(archiver)(output)(files);
34
- };
35
26
  this.swagger = (input => {
36
27
  const __is = input => {
37
28
  const $io0 = input => "string" === typeof input.openapi && RegExp(/^3\.0\.[+-]?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?$/).test(input.openapi) && ("object" === typeof input.info && null !== input.info && $io1(input.info)) && (Array.isArray(input.servers) && input.servers.every(elem => "object" === typeof elem && null !== elem && $io4(elem))) && ("object" === typeof input.components && null !== input.components && false === Array.isArray(input.components) && $io5(input.components)) && ("object" === typeof input.paths && null !== input.paths && false === Array.isArray(input.paths) && $io30(input.paths)) && (undefined === input.security || Array.isArray(input.security) && input.security.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && $io42(elem)));
@@ -1489,16 +1480,50 @@ class NestiaMigrateApplication {
1489
1480
  }
1490
1481
  analyze() {
1491
1482
  if (this.program === null)
1492
- this.program = MigrateProgrammer_1.MigrateProgrammer.analyze(this.swagger);
1483
+ this.program = MigrateAnalyzer_1.MigrateAnalyzer.analyze(this.swagger);
1493
1484
  return this.program;
1494
1485
  }
1495
1486
  write() {
1487
+ var _a;
1496
1488
  if (this.files === null) {
1497
- const program = this.analyze();
1498
- this.files = MigrateProgrammer_1.MigrateProgrammer.write(program);
1489
+ (_a = this.program) !== null && _a !== void 0 ? _a : (this.program = this.analyze());
1490
+ this.files = [
1491
+ ...NestProgrammer_1.NestProgrammer.write(this.program),
1492
+ ...ApiProgrammer_1.ApiProgrammer.write(this.program),
1493
+ ];
1499
1494
  }
1500
1495
  return this.files;
1501
1496
  }
1497
+ generate(output) {
1498
+ return __awaiter(this, void 0, void 0, function* () {
1499
+ const files = this.write();
1500
+ const archiver = FileArchiver_1.FileArchiver.archive({
1501
+ mkdir: fs_1.default.promises.mkdir,
1502
+ writeFile: (file, content) => fs_1.default.promises.writeFile(file, content, "utf8"),
1503
+ })(output);
1504
+ try {
1505
+ child_process_1.default.execSync(`git clone https://github.com/samchon/nestia-template "${output}"`, { stdio: "ignore" });
1506
+ try {
1507
+ for (const path of [
1508
+ "/.git",
1509
+ "/src/api",
1510
+ "/src/controllers",
1511
+ "/src/providers",
1512
+ "/test/features",
1513
+ ])
1514
+ fs_1.default.rmSync(`${output}${path}`, {
1515
+ recursive: true,
1516
+ force: true,
1517
+ });
1518
+ }
1519
+ catch (_a) { }
1520
+ }
1521
+ catch (_b) {
1522
+ yield archiver(TEMPLATE_1.TEMPLATE);
1523
+ }
1524
+ yield archiver(files);
1525
+ });
1526
+ }
1502
1527
  }
1503
- exports.NestiaMigrateApplication = NestiaMigrateApplication;
1504
- //# sourceMappingURL=NestiaMigrateApplication.js.map
1528
+ exports.MigrateApplication = MigrateApplication;
1529
+ //# sourceMappingURL=MigrateApplication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrateApplication.js","sourceRoot":"","sources":["../src/MigrateApplication.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ISwagger } from "../module";
2
+ import { IMigrateController } from "../structures/IMigrateController";
3
+ export declare namespace ControllerAnalyzer {
4
+ const analyze: (swagger: ISwagger) => IMigrateController[];
5
+ }
@@ -1,21 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ControllerProgrammer = void 0;
7
- const typescript_1 = __importDefault(require("typescript"));
8
- const FilePrinter_1 = require("../utils/FilePrinter");
3
+ exports.ControllerAnalyzer = void 0;
4
+ const Escaper_1 = require("typia/lib/utils/Escaper");
9
5
  const MapUtil_1 = require("../utils/MapUtil");
10
6
  const StringUtil_1 = require("../utils/StringUtil");
11
- const ImportProgrammer_1 = require("./ImportProgrammer");
12
- const RouteProgrammer_1 = require("./RouteProgrammer");
13
- var ControllerProgrammer;
14
- (function (ControllerProgrammer) {
15
- /* -----------------------------------------------------------
16
- ANALYZERS
17
- ----------------------------------------------------------- */
18
- ControllerProgrammer.analyze = (swagger) => {
7
+ const MethodAnalyzer_1 = require("./MethodAnalyzer");
8
+ var ControllerAnalyzer;
9
+ (function (ControllerAnalyzer) {
10
+ ControllerAnalyzer.analyze = (swagger) => {
19
11
  const dict = new Map();
20
12
  // GATHER ROUTES
21
13
  for (const [path, collection] of Object.entries(swagger.paths)) {
@@ -28,7 +20,7 @@ var ControllerProgrammer;
28
20
  // INSERT ROUTES TO THE LAST DIRECTORY
29
21
  const routes = MapUtil_1.MapUtil.take(dict)(location)(() => []);
30
22
  for (const [method, value] of Object.entries(collection)) {
31
- const r = RouteProgrammer_1.RouteProgrammer.analyze(swagger)({
23
+ const r = MethodAnalyzer_1.MethodAnalzyer.analyze(swagger)({
32
24
  path,
33
25
  method,
34
26
  })(value);
@@ -65,7 +57,7 @@ var ControllerProgrammer;
65
57
  };
66
58
  if (controller.name === "Controller")
67
59
  controller.name = "__Controller";
68
- naming(controller);
60
+ emend(controller);
69
61
  return controller;
70
62
  });
71
63
  };
@@ -73,7 +65,7 @@ var ControllerProgrammer;
73
65
  .map((_str, i, entire) => entire.slice(0, i + 1).join("/"))
74
66
  .slice(0, -1)
75
67
  .reverse();
76
- const naming = (controller) => {
68
+ const emend = (controller) => {
77
69
  const dict = new Map();
78
70
  for (const route of controller.routes) {
79
71
  const additional = StringUtil_1.StringUtil.splitWithNormalization(route.path);
@@ -97,24 +89,14 @@ var ControllerProgrammer;
97
89
  : StringUtil_1.StringUtil.camel(`${emended}By/${c.variables.join("/and/")}`);
98
90
  }
99
91
  }
92
+ for (const method of controller.routes) {
93
+ if (Escaper_1.Escaper.variable(method.name) === false)
94
+ method.name = "_" + method.name;
95
+ for (const spec of [method.headers, method.query, method.body])
96
+ if (spec)
97
+ spec.key = StringUtil_1.StringUtil.escapeDuplicate(method.parameters.map((p) => p.key))(spec.key);
98
+ }
99
+ controller.routes.forEach((r, i) => (r.name = StringUtil_1.StringUtil.escapeDuplicate(controller.routes.filter((_r, j) => i !== j).map((x) => x.name))(r.name)));
100
100
  };
101
- /* -----------------------------------------------------------
102
- WRITERS
103
- ----------------------------------------------------------- */
104
- ControllerProgrammer.write = (components) => (controller) => {
105
- const importer = new ImportProgrammer_1.ImportProgrammer();
106
- const $class = typescript_1.default.factory.createClassDeclaration([
107
- typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.external({
108
- library: "@nestjs/common",
109
- instance: "Controller",
110
- })), [], [typescript_1.default.factory.createStringLiteral(controller.path)])),
111
- typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.ExportKeyword),
112
- ], controller.name, [], [], controller.routes.map(RouteProgrammer_1.RouteProgrammer.write(components)(importer)));
113
- return [
114
- ...importer.toStatements((ref) => `${"../".repeat(StringUtil_1.StringUtil.splitWithNormalization(controller.location).length - 1)}api/structures/${ref}`),
115
- ...(importer.empty() ? [] : [FilePrinter_1.FilePrinter.enter()]),
116
- $class,
117
- ];
118
- };
119
- })(ControllerProgrammer || (exports.ControllerProgrammer = ControllerProgrammer = {}));
120
- //# sourceMappingURL=ControllerProgrammer.js.map
101
+ })(ControllerAnalyzer || (exports.ControllerAnalyzer = ControllerAnalyzer = {}));
102
+ //# sourceMappingURL=ControllerAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyzers/ControllerAnalyzer.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAKlD,8CAA2C;AAC3C,oDAAiD;AACjD,qDAAkD;AAElD,IAAiB,kBAAkB,CAiHlC;AAjHD,WAAiB,kBAAkB;IACpB,0BAAO,GAAG,CAAC,OAAiB,EAAwB,EAAE;QACjE,MAAM,IAAI,GAAiC,IAAI,GAAG,EAAE,CAAC;QAErD,gBAAgB;QAChB,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/D,sBAAsB;YACtB,MAAM,QAAQ,GAAW,uBAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC;iBAC7D,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;iBACjD,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;gBAAE,iBAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAEpE,sCAAsC;YACtC,MAAM,MAAM,GAAoB,iBAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACvE,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzD,MAAM,CAAC,GAAyB,+BAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC9D,IAAI;oBACJ,MAAM;iBACP,CAAC,CAAC,KAAK,CAAC,CAAC;gBACV,IAAI,CAAC,KAAK,IAAI;oBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAiC,IAAI,GAAG,CACnD,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;QACF,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAClC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;oBACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACzB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;aACzC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;YAC1B,MAAM,MAAM,GAAW,uBAAU,CAAC,YAAY,CAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC1B,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,MAAM;gBACpB,CAAC,CAAC,IAAI,GAAG,uBAAU,CAAC,2BAA2B,CAC7C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAC3B,CAAC;YACJ,MAAM,UAAU,GAAuB;gBACrC,IAAI,EAAE,uBAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY;gBAChD,IAAI,EAAE,uBAAU,CAAC,2BAA2B,CAAC,MAAM,CAAC;gBACpD,QAAQ,EAAE,kBAAkB,GAAG,QAAQ;gBACvC,MAAM;aACP,CAAC;YACF,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY;gBAAE,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC;YACvE,KAAK,CAAC,UAAU,CAAC,CAAC;YAClB,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAY,EAAE,CAC9C,uBAAU,CAAC,sBAAsB,CAAC,QAAQ,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACZ,OAAO,EAAE,CAAC;IAEf,MAAM,KAAK,GAAG,CAAC,UAA8B,EAAQ,EAAE;QAKrD,MAAM,IAAI,GAAiC,IAAI,GAAG,EAAE,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,UAAU,GAAa,uBAAU,CAAC,sBAAsB,CAC5D,KAAK,CAAC,IAAI,CACX,CAAC;YACF,MAAM,OAAO,GAAa,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,MAAM;gBAAE,KAAK,CAAC,IAAI,GAAG,uBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;gBAEnE,iBAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;oBAC9C,SAAS,EAAE,UAAU;yBAClB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;yBAC/B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACjC,KAAK;iBACN,CAAC,CAAC;QACP,CAAC;QACD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YACtC,MAAM,OAAO,GAAW,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAY,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;gBAChD,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK;oBAClB,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,uBAAU,CAAC,KAAK,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK;gBACzC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;gBAC5D,IAAI,IAAI;oBACN,IAAI,CAAC,GAAG,GAAG,uBAAU,CAAC,eAAe,CACnC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,UAAU,CAAC,MAAM,CAAC,OAAO,CACvB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,CAAC,IAAI,GAAG,uBAAU,CAAC,eAAe,CAClC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAChE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACb,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,EAjHgB,kBAAkB,kCAAlB,kBAAkB,QAiHlC"}
@@ -0,0 +1,9 @@
1
+ import { ISwagger } from "../module";
2
+ import { IMigrateRoute } from "../structures/IMigrateRoute";
3
+ import { ISwaggerRoute } from "../structures/ISwaggerRoute";
4
+ export declare namespace MethodAnalzyer {
5
+ const analyze: (swagger: ISwagger) => (props: {
6
+ path: string;
7
+ method: string;
8
+ }) => (route: ISwaggerRoute) => IMigrateRoute | null;
9
+ }
@@ -1,25 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RouteProgrammer = void 0;
7
- const typescript_1 = __importDefault(require("typescript"));
8
- const ExpressionFactory_1 = require("typia/lib/factories/ExpressionFactory");
9
- const IdentifierFactory_1 = require("typia/lib/factories/IdentifierFactory");
10
- const TypeFactory_1 = require("typia/lib/factories/TypeFactory");
3
+ exports.MethodAnalzyer = void 0;
11
4
  const Escaper_1 = require("typia/lib/utils/Escaper");
12
- const FilePrinter_1 = require("../utils/FilePrinter");
13
5
  const JsonTypeChecker_1 = require("../utils/JsonTypeChecker");
14
6
  const StringUtil_1 = require("../utils/StringUtil");
15
- const SchemaProgrammer_1 = require("./SchemaProgrammer");
16
- var RouteProgrammer;
17
- (function (RouteProgrammer) {
18
- /* -----------------------------------------------------------
19
- ANALYZERS
20
- ----------------------------------------------------------- */
21
- RouteProgrammer.analyze = (swagger) => (props) => (route) => {
22
- var _a, _b, _c, _d, _e, _f;
7
+ var MethodAnalzyer;
8
+ (function (MethodAnalzyer) {
9
+ MethodAnalzyer.analyze = (swagger) => (props) => (route) => {
10
+ var _a, _b, _c, _d, _e, _f, _g, _h;
23
11
  const body = emplaceBodySchema(emplaceReference(swagger)("body"))(route.requestBody);
24
12
  const success = emplaceBodySchema(emplaceReference(swagger)("response"))((_b = (_a = route.responses) === null || _a === void 0 ? void 0 : _a["201"]) !== null && _b !== void 0 ? _b : (_c = route.responses) === null || _c === void 0 ? void 0 : _c["200"]);
25
13
  if (body === false || success === false) {
@@ -122,7 +110,12 @@ var RouteProgrammer;
122
110
  name: "@lazy",
123
111
  path: props.path,
124
112
  method: props.method,
125
- headers,
113
+ headers: headers
114
+ ? {
115
+ key: "headers",
116
+ schema: headers,
117
+ }
118
+ : null,
126
119
  parameters: ((_e = route.parameters) !== null && _e !== void 0 ? _e : [])
127
120
  .filter((p) => p.in === "path")
128
121
  .map((p, i) => {
@@ -141,7 +134,12 @@ var RouteProgrammer;
141
134
  schema: Object.assign(Object.assign({}, p.schema), { description: (_a = p.schema.description) !== null && _a !== void 0 ? _a : p.description }),
142
135
  });
143
136
  }),
144
- query,
137
+ query: query
138
+ ? {
139
+ key: "query",
140
+ schema: query,
141
+ }
142
+ : null,
145
143
  body,
146
144
  success,
147
145
  exceptions: Object.fromEntries(Object.entries((_f = route.responses) !== null && _f !== void 0 ? _f : {})
@@ -161,8 +159,9 @@ var RouteProgrammer;
161
159
  },
162
160
  ];
163
161
  })),
162
+ deprecated: (_g = route.deprecated) !== null && _g !== void 0 ? _g : false,
164
163
  description: describe(route),
165
- "x-nestia-jsDocTags": route["x-nestia-jsDocTags"],
164
+ tags: (_h = route.tags) !== null && _h !== void 0 ? _h : [],
166
165
  };
167
166
  };
168
167
  const describe = (route) => {
@@ -223,6 +222,7 @@ var RouteProgrammer;
223
222
  const { schema } = json[1];
224
223
  return {
225
224
  type: "application/json",
225
+ key: "body",
226
226
  schema: isNotObjectLiteral(schema) ? schema : emplacer(schema),
227
227
  "x-nestia-encrypted": meta["x-nestia-encrypted"],
228
228
  };
@@ -232,12 +232,13 @@ var RouteProgrammer;
232
232
  const { schema } = query[1];
233
233
  return {
234
234
  type: "application/x-www-form-urlencoded",
235
+ key: "body",
235
236
  schema: isNotObjectLiteral(schema) ? schema : emplacer(schema),
236
237
  };
237
238
  }
238
239
  const text = entries.find((e) => e[0].includes("text/plain"));
239
240
  if (text)
240
- return { type: "text/plain", schema: { type: "string" } };
241
+ return { type: "text/plain", key: "body", schema: { type: "string" } };
241
242
  return false;
242
243
  };
243
244
  const emplaceReference = (swagger) => (name) => (schema) => {
@@ -247,96 +248,7 @@ var RouteProgrammer;
247
248
  swagger.components.schemas[name] = schema;
248
249
  return { $ref: `#/components/schemas/${name}` };
249
250
  };
250
- /* -----------------------------------------------------------
251
- WRITERS
252
- ----------------------------------------------------------- */
253
- RouteProgrammer.write = (components) => (importer) => (route) => {
254
- var _a;
255
- const output = route.success
256
- ? SchemaProgrammer_1.SchemaProgrammer.write(importer)(components)(route.success.schema)
257
- : TypeFactory_1.TypeFactory.keyword("void");
258
- const method = typescript_1.default.factory.createMethodDeclaration([
259
- ...writeMethodDecorators(components)(importer)(route),
260
- typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.PublicKeyword),
261
- typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.AsyncKeyword),
262
- ], undefined, route.name, undefined, undefined, writeParameters(importer)(components)(route), typescript_1.default.factory.createTypeReferenceNode("Promise", [output]), typescript_1.default.factory.createBlock([
263
- ...[
264
- ...route.parameters.map((p) => StringUtil_1.StringUtil.normalize(p.key)),
265
- ...(route.headers ? ["headers"] : []),
266
- ...(route.query ? ["query"] : []),
267
- ...(route.body ? ["body"] : []),
268
- ].map((str) => typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createIdentifier(str))),
269
- typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.external({
270
- library: "typia",
271
- instance: "random",
272
- })), [output], undefined)),
273
- ], true));
274
- return FilePrinter_1.FilePrinter.description(method, (_a = route.description) !== null && _a !== void 0 ? _a : "");
275
- };
276
- const writeMethodDecorators = (components) => (importer) => (route) => {
277
- var _a, _b, _c, _d, _e, _f;
278
- const external = (lib) => (instance) => typescript_1.default.factory.createIdentifier(importer.external({ library: lib, instance }));
279
- const router = (instance) => typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(external("@nestia/core")(instance))(StringUtil_1.StringUtil.capitalize(route.method)), [], [typescript_1.default.factory.createStringLiteral(route.path)]));
280
- const decorators = [];
281
- if ((_a = route.success) === null || _a === void 0 ? void 0 : _a["x-nestia-encrypted"])
282
- decorators.push(router("EncryptedRoute"));
283
- else if (((_b = route.success) === null || _b === void 0 ? void 0 : _b.type) === "text/plain")
284
- decorators.push(typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(external("@nestjs/common")(StringUtil_1.StringUtil.capitalize(route.method)), [], [typescript_1.default.factory.createStringLiteral(route.path)])));
285
- else if (((_c = route.success) === null || _c === void 0 ? void 0 : _c.type) === "application/x-www-form-urlencoded")
286
- decorators.push(router("TypedQuery"));
287
- else if (((_d = route.success) === null || _d === void 0 ? void 0 : _d.type) === "application/json")
288
- decorators.push(router("TypedRoute"));
289
- else if (route.method === "head")
290
- decorators.push(typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(external("@nestjs/common")("Head"), [], [typescript_1.default.factory.createStringLiteral(route.path)])));
291
- for (const [key, value] of Object.entries((_e = route.exceptions) !== null && _e !== void 0 ? _e : {}))
292
- decorators.push(typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(external("@nestia/core")("TypedException"), [SchemaProgrammer_1.SchemaProgrammer.write(importer)(components)(value.schema)], [
293
- isNaN(Number(key))
294
- ? typescript_1.default.factory.createStringLiteral(key)
295
- : ExpressionFactory_1.ExpressionFactory.number(Number(key)),
296
- ...(((_f = value.description) === null || _f === void 0 ? void 0 : _f.length)
297
- ? [typescript_1.default.factory.createStringLiteral(value.description)]
298
- : []),
299
- ])));
300
- return decorators;
301
- };
302
- const writeParameters = (importer) => (components) => (route) => {
303
- var _a;
304
- return [
305
- ...route.parameters.map(({ key, schema: value }) => typescript_1.default.factory.createParameterDeclaration([
306
- typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.external({
307
- library: "@nestia/core",
308
- instance: "TypedParam",
309
- })), undefined, [typescript_1.default.factory.createStringLiteral(key)])),
310
- ], undefined, StringUtil_1.StringUtil.normalize(key), undefined, SchemaProgrammer_1.SchemaProgrammer.write(importer)(components)(value))),
311
- ...(route.headers
312
- ? [
313
- writeDtoParameter({ method: "TypedHeaders", variable: "headers" })(importer)(components)(route.headers),
314
- ]
315
- : []),
316
- ...(route.query
317
- ? [
318
- writeDtoParameter({ method: "TypedQuery", variable: "query" })(importer)(components)(route.query),
319
- ]
320
- : []),
321
- ...(route.body
322
- ? [
323
- writeDtoParameter({
324
- method: ((_a = route.body) === null || _a === void 0 ? void 0 : _a["x-nestia-encrypted"])
325
- ? "EncryptedBody"
326
- : "TypedBody",
327
- variable: "body",
328
- })(importer)(components)(route.body.schema),
329
- ]
330
- : []),
331
- ];
332
- };
333
- const writeDtoParameter = (accessor) => (importer) => (components) => (schema) => typescript_1.default.factory.createParameterDeclaration([
334
- typescript_1.default.factory.createDecorator(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.external({
335
- library: "@nestia/core",
336
- instance: accessor.method,
337
- })), undefined, undefined)),
338
- ], undefined, StringUtil_1.StringUtil.normalize(accessor.variable), undefined, SchemaProgrammer_1.SchemaProgrammer.write(importer)(components)(schema));
339
- })(RouteProgrammer || (exports.RouteProgrammer = RouteProgrammer = {}));
251
+ })(MethodAnalzyer || (exports.MethodAnalzyer = MethodAnalzyer = {}));
340
252
  const SUPPORTED_METHODS = new Set([
341
253
  "GET",
342
254
  "POST",
@@ -345,4 +257,4 @@ const SUPPORTED_METHODS = new Set([
345
257
  "DELETE",
346
258
  "HEAD",
347
259
  ]);
348
- //# sourceMappingURL=RouteProgrammer.js.map
260
+ //# sourceMappingURL=MethodAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodAnalyzer.js","sourceRoot":"","sources":["../../src/analyzers/MethodAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { IMigrateProgram, ISwagger } from "../module";
2
+ export declare namespace MigrateAnalyzer {
3
+ const analyze: (swagger: ISwagger) => IMigrateProgram;
4
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MigrateAnalyzer = void 0;
4
+ const ControllerAnalyzer_1 = require("./ControllerAnalyzer");
5
+ var MigrateAnalyzer;
6
+ (function (MigrateAnalyzer) {
7
+ MigrateAnalyzer.analyze = (swagger) => ({
8
+ swagger,
9
+ controllers: ControllerAnalyzer_1.ControllerAnalyzer.analyze(swagger),
10
+ });
11
+ })(MigrateAnalyzer || (exports.MigrateAnalyzer = MigrateAnalyzer = {}));
12
+ //# sourceMappingURL=MigrateAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrateAnalyzer.js","sourceRoot":"","sources":["../../src/analyzers/MigrateAnalyzer.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAE1D,IAAiB,eAAe,CAK/B;AALD,WAAiB,eAAe;IACjB,uBAAO,GAAG,CAAC,OAAiB,EAAmB,EAAE,CAAC,CAAC;QAC9D,OAAO;QACP,WAAW,EAAE,uCAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;KACjD,CAAC,CAAC;AACL,CAAC,EALgB,eAAe,+BAAf,eAAe,QAK/B"}
@@ -1,8 +1,8 @@
1
1
  import { IMigrateFile } from "../structures/IMigrateFile";
2
2
  export declare namespace FileArchiver {
3
3
  interface IOperator {
4
- mkdir(path: string): void;
5
- writeFile(path: string, content: string): void;
4
+ mkdir(path: string): Promise<void>;
5
+ writeFile(path: string, content: string): Promise<void>;
6
6
  }
7
- const archive: (operator: IOperator) => (output: string) => (files: IMigrateFile[]) => void;
7
+ const archive: (operator: IOperator) => (output: string) => (files: IMigrateFile[]) => Promise<void>;
8
8
  }
@@ -1,26 +1,35 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.FileArchiver = void 0;
4
13
  var FileArchiver;
5
14
  (function (FileArchiver) {
6
- FileArchiver.archive = (operator) => (output) => (files) => {
15
+ FileArchiver.archive = (operator) => (output) => (files) => __awaiter(this, void 0, void 0, function* () {
7
16
  const visited = new Set();
8
17
  for (const f of files) {
9
- mkdir(operator.mkdir)(output)(visited)(f.location);
10
- operator.writeFile([output, f.location, f.file].join("/"), f.content);
18
+ yield mkdir(operator.mkdir)(output)(visited)(f.location);
19
+ yield operator.writeFile([output, f.location, f.file].join("/"), f.content);
11
20
  }
12
- };
13
- const mkdir = (creator) => (output) => (visited) => (path) => {
21
+ });
22
+ const mkdir = (creator) => (output) => (visited) => (path) => __awaiter(this, void 0, void 0, function* () {
14
23
  const sequence = path
15
24
  .split("/")
16
25
  .map((_str, i, entire) => entire.slice(0, i + 1).join("/"));
17
26
  for (const s of sequence)
18
27
  if (visited.has(s) === false)
19
28
  try {
20
- creator([output, s].join("/"));
29
+ yield creator([output, s].join("/"));
21
30
  visited.add(s);
22
31
  }
23
32
  catch (_a) { }
24
- };
33
+ });
25
34
  })(FileArchiver || (exports.FileArchiver = FileArchiver = {}));
26
35
  //# sourceMappingURL=FileArchiver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileArchiver.js","sourceRoot":"","sources":["../../src/archivers/FileArchiver.ts"],"names":[],"mappings":";;;AAEA,IAAiB,YAAY,CAgC5B;AAhCD,WAAiB,YAAY;IAMd,oBAAO,GAClB,CAAC,QAAmB,EAAE,EAAE,CACxB,CAAC,MAAc,EAAE,EAAE,CACnB,CAAC,KAAqB,EAAQ,EAAE;QAC9B,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACnD,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC;IAEJ,MAAM,KAAK,GACT,CAAC,OAA+B,EAAE,EAAE,CACpC,CAAC,MAAc,EAAE,EAAE,CACnB,CAAC,OAAoB,EAAE,EAAE,CACzB,CAAC,IAAY,EAAQ,EAAE;QACrB,MAAM,QAAQ,GAAa,IAAI;aAC5B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,QAAQ;YACtB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK;gBAC1B,IAAI,CAAC;oBACH,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBAAC,WAAM,CAAC,CAAA,CAAC;IAChB,CAAC,CAAC;AACN,CAAC,EAhCgB,YAAY,4BAAZ,YAAY,QAgC5B"}
1
+ {"version":3,"file":"FileArchiver.js","sourceRoot":"","sources":["../../src/archivers/FileArchiver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,IAAiB,YAAY,CAmC5B;AAnCD,WAAiB,YAAY;IAMd,oBAAO,GAClB,CAAC,QAAmB,EAAE,EAAE,CACxB,CAAC,MAAc,EAAE,EAAE,CACnB,CAAO,KAAqB,EAAiB,EAAE;QAC7C,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,QAAQ,CAAC,SAAS,CACtB,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACtC,CAAC,CAAC,OAAO,CACV,CAAC;QACJ,CAAC;IACH,CAAC,CAAA,CAAC;IAEJ,MAAM,KAAK,GACT,CAAC,OAA+B,EAAE,EAAE,CACpC,CAAC,MAAc,EAAE,EAAE,CACnB,CAAC,OAAoB,EAAE,EAAE,CACzB,CAAO,IAAY,EAAiB,EAAE;QACpC,MAAM,QAAQ,GAAa,IAAI;aAC5B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,QAAQ;YACtB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK;gBAC1B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBAAC,WAAM,CAAC,CAAA,CAAC;IAChB,CAAC,CAAA,CAAC;AACN,CAAC,EAnCgB,YAAY,4BAAZ,YAAY,QAmC5B"}
@@ -1,12 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
3
12
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
14
  };
6
15
  Object.defineProperty(exports, "__esModule", { value: true });
7
16
  const fs_1 = __importDefault(require("fs"));
8
17
  const path_1 = __importDefault(require("path"));
9
- const NestiaMigrateApplication_1 = require("../NestiaMigrateApplication");
18
+ const MigrateApplication_1 = require("../MigrateApplication");
10
19
  const SetupWizard_1 = require("../utils/SetupWizard");
11
20
  const USAGE = `Wrong command has been detected. Use like below:
12
21
 
@@ -18,7 +27,7 @@ function halt(desc) {
18
27
  console.error(desc);
19
28
  process.exit(-1);
20
29
  }
21
- const main = (argv) => {
30
+ const main = (argv) => __awaiter(void 0, void 0, void 0, function* () {
22
31
  const resolve = (str) => str ? path_1.default.resolve(str).split("\\").join("/") : undefined;
23
32
  const input = resolve(argv[0]);
24
33
  const output = resolve(argv[1]);
@@ -45,13 +54,13 @@ const main = (argv) => {
45
54
  return swagger;
46
55
  })();
47
56
  // DO GENERATE
48
- const app = new NestiaMigrateApplication_1.NestiaMigrateApplication(swagger);
49
- app.generate({
50
- mkdir: fs_1.default.mkdirSync,
51
- writeFile: (path, content) => fs_1.default.writeFileSync(path, content, "utf8"),
52
- })(output);
57
+ const app = new MigrateApplication_1.MigrateApplication(swagger);
58
+ yield app.generate(output);
53
59
  // RUN SCRIPTS
54
60
  SetupWizard_1.SetupWizard.setup(output);
55
- };
56
- main(process.argv.slice(2));
61
+ });
62
+ main(process.argv.slice(2)).catch((exp) => {
63
+ console.error(exp);
64
+ process.exit(-1);
65
+ });
57
66
  //# sourceMappingURL=migrate.js.map