@nestia/migrate 0.8.0-dev.20240217-2 → 0.8.0-dev.20240217-4

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.
@@ -9,6 +9,7 @@ const MigrateAnalyzer_1 = require("./analyzers/MigrateAnalyzer");
9
9
  const NEST_TEMPLATE_1 = require("./bundles/NEST_TEMPLATE");
10
10
  const SDK_TEMPLATE_1 = require("./bundles/SDK_TEMPLATE");
11
11
  const MigrateApiProgrammer_1 = require("./programmers/MigrateApiProgrammer");
12
+ const MigrateApiStartProgrammer_1 = require("./programmers/MigrateApiStartProgrammer");
12
13
  const MigrateE2eProgrammer_1 = require("./programmers/MigrateE2eProgrammer");
13
14
  const MigrateNestProgrammer_1 = require("./programmers/MigrateNestProgrammer");
14
15
  class MigrateApplication {
@@ -1487,6 +1488,7 @@ class MigrateApplication {
1487
1488
  files: [
1488
1489
  ...SDK_TEMPLATE_1.SDK_TEMPLATE,
1489
1490
  ...MigrateApiProgrammer_1.MigrateApiProgrammer.write(program),
1491
+ MigrateApiStartProgrammer_1.MigrateApiStartProgrammer.write(program),
1490
1492
  ...(config.e2e ? MigrateE2eProgrammer_1.MigrateE2eProgrammer.write(program) : []),
1491
1493
  ],
1492
1494
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MigrateApplication.js","sourceRoot":"","sources":["../src/MigrateApplication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MigrateApplication.js","sourceRoot":"","sources":["../src/MigrateApplication.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { IMigrateFile } from "../structures/IMigrateFile";
2
+ import { IMigrateProgram } from "../structures/IMigrateProgram";
3
+ export declare namespace MigrateApiStartProgrammer {
4
+ const write: (program: IMigrateProgram) => IMigrateFile;
5
+ }
@@ -0,0 +1,74 @@
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.MigrateApiStartProgrammer = void 0;
7
+ const typescript_1 = __importDefault(require("typescript"));
8
+ const IdentifierFactory_1 = require("typia/lib/factories/IdentifierFactory");
9
+ const StatementFactory_1 = require("typia/lib/factories/StatementFactory");
10
+ const FilePrinter_1 = require("../utils/FilePrinter");
11
+ const MigrateE2eFileProgrammer_1 = require("./MigrateE2eFileProgrammer");
12
+ const MigrateImportProgrammer_1 = require("./MigrateImportProgrammer");
13
+ var MigrateApiStartProgrammer;
14
+ (function (MigrateApiStartProgrammer) {
15
+ MigrateApiStartProgrammer.write = (program) => {
16
+ const importer = new MigrateImportProgrammer_1.MigrateImportProgrammer();
17
+ const main = writeMain(program)(program.swagger)(importer)(pick(program.controllers.map((c) => c.routes).flat()));
18
+ const statements = [
19
+ ...importer.toStatements((name) => `@ORGANIZATION/PROJECT-api/lib/structures/${name}`),
20
+ FilePrinter_1.FilePrinter.newLine(),
21
+ typescript_1.default.factory.createImportDeclaration(undefined, typescript_1.default.factory.createImportClause(false, undefined, typescript_1.default.factory.createNamedImports([
22
+ typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("TestGlobal")),
23
+ ])), typescript_1.default.factory.createStringLiteral("./TestGlobal"), undefined),
24
+ FilePrinter_1.FilePrinter.newLine(),
25
+ main,
26
+ typescript_1.default.factory.createExpressionStatement(writeStarter()),
27
+ ];
28
+ return {
29
+ location: `test`,
30
+ file: "start.ts",
31
+ content: FilePrinter_1.FilePrinter.write({ statements }),
32
+ };
33
+ };
34
+ const writeMain = (config) => (swagger) => (importer) => (route) => StatementFactory_1.StatementFactory.constant("main", typescript_1.default.factory.createArrowFunction([typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.AsyncKeyword)], undefined, [], undefined, undefined, typescript_1.default.factory.createBlock([
35
+ writeConnection(config)(swagger)(importer),
36
+ ...MigrateE2eFileProgrammer_1.MigrateE2eFunctionProgrammer.writeBody(swagger.components)(importer)(route),
37
+ ], true)));
38
+ const writeConnection = (config) => (swagger) => (importer) => {
39
+ var _a, _b;
40
+ return typescript_1.default.factory.createVariableStatement(undefined, typescript_1.default.factory.createVariableDeclarationList([
41
+ typescript_1.default.factory.createVariableDeclaration("connection", undefined, typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier(importer.external({
42
+ type: "default",
43
+ library: "@ORGANIZATION/PROJECT-api",
44
+ name: "api",
45
+ })), typescript_1.default.factory.createIdentifier("IConnection"))), typescript_1.default.factory.createObjectLiteralExpression([
46
+ typescript_1.default.factory.createSpreadAssignment(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("TestGlobal"), "connection"), undefined, undefined)),
47
+ ...(((_b = (_a = swagger.servers[0]) === null || _a === void 0 ? void 0 : _a.url) === null || _b === void 0 ? void 0 : _b.length)
48
+ ? [
49
+ typescript_1.default.factory.createPropertyAssignment("host", typescript_1.default.factory.createStringLiteral(swagger.servers[0].url)),
50
+ ]
51
+ : []),
52
+ ...(config.simulate === true
53
+ ? [
54
+ typescript_1.default.factory.createPropertyAssignment("simulate", typescript_1.default.factory.createTrue()),
55
+ ]
56
+ : []),
57
+ ], true)),
58
+ ], typescript_1.default.NodeFlags.Const));
59
+ };
60
+ const writeStarter = () => typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("main"), undefined, undefined), "catch"), undefined, [
61
+ typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("exp")], undefined, undefined, typescript_1.default.factory.createBlock([
62
+ typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("console"), "log"), undefined, [typescript_1.default.factory.createIdentifier("exp")])),
63
+ typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier("process"), "exit"), undefined, [
64
+ typescript_1.default.factory.createPrefixMinus(typescript_1.default.factory.createNumericLiteral("1")),
65
+ ])),
66
+ ], true)),
67
+ ]);
68
+ })(MigrateApiStartProgrammer || (exports.MigrateApiStartProgrammer = MigrateApiStartProgrammer = {}));
69
+ const pick = (array) => {
70
+ const rand = Math.random() * array.length;
71
+ const index = Math.min(array.length - 1, Math.floor(rand));
72
+ return array[index];
73
+ };
74
+ //# sourceMappingURL=MigrateApiStartProgrammer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrateApiStartProgrammer.js","sourceRoot":"","sources":["../../src/programmers/MigrateApiStartProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAC5B,6EAA0E;AAC1E,2EAAwE;AAMxE,sDAAmD;AACnD,yEAA0E;AAC1E,uEAAoE;AAEpE,IAAiB,yBAAyB,CA+KzC;AA/KD,WAAiB,yBAAyB;IAC3B,+BAAK,GAAG,CAAC,OAAwB,EAAgB,EAAE;QAC9D,MAAM,QAAQ,GAA4B,IAAI,iDAAuB,EAAE,CAAC;QACxE,MAAM,IAAI,GAAyB,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACpE,QAAQ,CACT,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,UAAU,GAAmB;YACjC,GAAG,QAAQ,CAAC,YAAY,CACtB,CAAC,IAAI,EAAE,EAAE,CAAC,4CAA4C,IAAI,EAAE,CAC7D;YACD,yBAAW,CAAC,OAAO,EAAE;YACrB,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAC3B,KAAK,EACL,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBAC5B,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,KAAK,EACL,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAC1C;aACF,CAAC,CACH,EACD,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAC9C,SAAS,CACV;YACD,yBAAW,CAAC,OAAO,EAAE;YACrB,IAAI;YACJ,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC,YAAY,EAAE,CAAC;SACrD,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,yBAAW,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;SAC3C,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,SAAS,GACb,CAAC,MAA+B,EAAE,EAAE,CACpC,CAAC,OAAiB,EAAE,EAAE,CACtB,CAAC,QAAiC,EAAE,EAAE,CACtC,CAAC,KAAoB,EAAwB,EAAE,CAC7C,mCAAgB,CAAC,QAAQ,CACvB,MAAM,EACN,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,CAAC,oBAAE,CAAC,OAAO,CAAC,WAAW,CAAC,oBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EACpD,SAAS,EACT,EAAE,EACF,SAAS,EACT,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CACpB;QACE,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;QAC1C,GAAG,uDAA4B,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAC3D,QAAQ,CACT,CAAC,KAAK,CAAC;KACT,EACD,IAAI,CACL,CACF,CACF,CAAC;IAEN,MAAM,eAAe,GACnB,CAAC,MAA+B,EAAE,EAAE,CACpC,CAAC,OAAiB,EAAE,EAAE,CACtB,CAAC,QAAiC,EAAwB,EAAE;;QAC1D,OAAA,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACtC;YACE,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAClC,YAAY,EACZ,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,uBAAuB,CAChC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CACzB,QAAQ,CAAC,QAAQ,CAAC;gBAChB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,2BAA2B;gBACpC,IAAI,EAAE,KAAK;aACZ,CAAC,CACH,EACD,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAC3C,CACF,EACD,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACtC;gBACE,oBAAE,CAAC,OAAO,CAAC,sBAAsB,CAC/B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,EACzC,YAAY,CACb,EACD,SAAS,EACT,SAAS,CACV,CACF;gBACD,GAAG,CAAC,CAAA,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,GAAG,0CAAE,MAAM;oBACjC,CAAC,CAAC;wBACE,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,MAAM,EACN,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CACvB,CACF;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI;oBAC1B,CAAC,CAAC;wBACE,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,UAAU,EACV,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CACxB;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,EACD,IAAI,CACL,CACF;SACF,EACD,oBAAE,CAAC,SAAS,CAAC,KAAK,CACnB,CACF,CAAA;KAAA,CAAC;IAEN,MAAM,YAAY,GAAG,GAAsB,EAAE,CAC3C,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACnC,SAAS,EACT,SAAS,CACV,EACD,OAAO,CACR,EACD,SAAS,EACT;QACE,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC5B,SAAS,EACT,SAAS,EACT,CAAC,qCAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EACpC,SAAS,EACT,SAAS,EACT,oBAAE,CAAC,OAAO,CAAC,WAAW,CACpB;YACE,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAClC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACtC,KAAK,CACN,EACD,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CACrC,CACF;YACD,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAClC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CACvC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACtC,MAAM,CACP,EACD,SAAS,EACT;gBACE,oBAAE,CAAC,OAAO,CAAC,iBAAiB,CAC1B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CACrC;aACF,CACF,CACF;SACF,EACD,IAAI,CACL,CACF;KACF,CACF,CAAC;AACN,CAAC,EA/KgB,yBAAyB,yCAAzB,yBAAyB,QA+KzC;AAED,MAAM,IAAI,GAAG,CAAI,KAAU,EAAK,EAAE;IAChC,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;IAClD,MAAM,KAAK,GAAW,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC,CAAC"}
@@ -4,4 +4,5 @@ import { IMigrateRoute } from "../structures/IMigrateRoute";
4
4
  import { MigrateImportProgrammer } from "./MigrateImportProgrammer";
5
5
  export declare namespace MigrateE2eFunctionProgrammer {
6
6
  const write: (components: ISwaggerComponents) => (importer: MigrateImportProgrammer) => (route: IMigrateRoute) => ts.FunctionDeclaration;
7
+ const writeBody: (components: ISwaggerComponents) => (importer: MigrateImportProgrammer) => (route: IMigrateRoute) => ts.Statement[];
7
8
  }
@@ -18,8 +18,8 @@ var MigrateE2eFunctionProgrammer;
18
18
  library: "@ORGANIZATION/PROJECT-api",
19
19
  name: "api",
20
20
  })), typescript_1.default.factory.createIdentifier("IConnection")))),
21
- ], undefined, typescript_1.default.factory.createBlock(writeBody(components)(importer)(route), true));
22
- const writeBody = (components) => (importer) => (route) => [
21
+ ], undefined, typescript_1.default.factory.createBlock(MigrateE2eFunctionProgrammer.writeBody(components)(importer)(route), true));
22
+ MigrateE2eFunctionProgrammer.writeBody = (components) => (importer) => (route) => [
23
23
  typescript_1.default.factory.createVariableStatement([], typescript_1.default.factory.createVariableDeclarationList([
24
24
  typescript_1.default.factory.createVariableDeclaration("output", undefined, route.success
25
25
  ? MigrateSchemaProgrammer_1.MigrateSchemaProgrammer.write(components)(importer)(route.success.schema)
@@ -1 +1 @@
1
- {"version":3,"file":"MigrateE2eFileProgrammer.js","sourceRoot":"","sources":["../../src/programmers/MigrateE2eFileProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MigrateE2eFileProgrammer.js","sourceRoot":"","sources":["../../src/programmers/MigrateE2eFileProgrammer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestia/migrate",
3
- "version": "0.8.0-dev.20240217-2",
3
+ "version": "0.8.0-dev.20240217-4",
4
4
  "description": "Migration program from swagger to NestJS",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -5,6 +5,7 @@ import { NEST_TEMPLATE } from "./bundles/NEST_TEMPLATE";
5
5
  import { SDK_TEMPLATE } from "./bundles/SDK_TEMPLATE";
6
6
  import { IMigrateProgram } from "./module";
7
7
  import { MigrateApiProgrammer } from "./programmers/MigrateApiProgrammer";
8
+ import { MigrateApiStartProgrammer } from "./programmers/MigrateApiStartProgrammer";
8
9
  import { MigrateE2eProgrammer } from "./programmers/MigrateE2eProgrammer";
9
10
  import { MigrateNestProgrammer } from "./programmers/MigrateNestProgrammer";
10
11
  import { IMigrateFile } from "./structures/IMigrateFile";
@@ -49,6 +50,7 @@ export class MigrateApplication {
49
50
  files: [
50
51
  ...SDK_TEMPLATE,
51
52
  ...MigrateApiProgrammer.write(program),
53
+ MigrateApiStartProgrammer.write(program),
52
54
  ...(config.e2e ? MigrateE2eProgrammer.write(program) : []),
53
55
  ],
54
56
  };
@@ -0,0 +1,194 @@
1
+ import ts from "typescript";
2
+ import { IdentifierFactory } from "typia/lib/factories/IdentifierFactory";
3
+ import { StatementFactory } from "typia/lib/factories/StatementFactory";
4
+
5
+ import { IMigrateFile } from "../structures/IMigrateFile";
6
+ import { IMigrateProgram } from "../structures/IMigrateProgram";
7
+ import { IMigrateRoute } from "../structures/IMigrateRoute";
8
+ import { ISwagger } from "../structures/ISwagger";
9
+ import { FilePrinter } from "../utils/FilePrinter";
10
+ import { MigrateE2eFunctionProgrammer } from "./MigrateE2eFileProgrammer";
11
+ import { MigrateImportProgrammer } from "./MigrateImportProgrammer";
12
+
13
+ export namespace MigrateApiStartProgrammer {
14
+ export const write = (program: IMigrateProgram): IMigrateFile => {
15
+ const importer: MigrateImportProgrammer = new MigrateImportProgrammer();
16
+ const main: ts.VariableStatement = writeMain(program)(program.swagger)(
17
+ importer,
18
+ )(pick(program.controllers.map((c) => c.routes).flat()));
19
+ const statements: ts.Statement[] = [
20
+ ...importer.toStatements(
21
+ (name) => `@ORGANIZATION/PROJECT-api/lib/structures/${name}`,
22
+ ),
23
+ FilePrinter.newLine(),
24
+ ts.factory.createImportDeclaration(
25
+ undefined,
26
+ ts.factory.createImportClause(
27
+ false,
28
+ undefined,
29
+ ts.factory.createNamedImports([
30
+ ts.factory.createImportSpecifier(
31
+ false,
32
+ undefined,
33
+ ts.factory.createIdentifier("TestGlobal"),
34
+ ),
35
+ ]),
36
+ ),
37
+ ts.factory.createStringLiteral("./TestGlobal"),
38
+ undefined,
39
+ ),
40
+ FilePrinter.newLine(),
41
+ main,
42
+ ts.factory.createExpressionStatement(writeStarter()),
43
+ ];
44
+ return {
45
+ location: `test`,
46
+ file: "start.ts",
47
+ content: FilePrinter.write({ statements }),
48
+ };
49
+ };
50
+
51
+ const writeMain =
52
+ (config: IMigrateProgram.IConfig) =>
53
+ (swagger: ISwagger) =>
54
+ (importer: MigrateImportProgrammer) =>
55
+ (route: IMigrateRoute): ts.VariableStatement =>
56
+ StatementFactory.constant(
57
+ "main",
58
+ ts.factory.createArrowFunction(
59
+ [ts.factory.createToken(ts.SyntaxKind.AsyncKeyword)],
60
+ undefined,
61
+ [],
62
+ undefined,
63
+ undefined,
64
+ ts.factory.createBlock(
65
+ [
66
+ writeConnection(config)(swagger)(importer),
67
+ ...MigrateE2eFunctionProgrammer.writeBody(swagger.components)(
68
+ importer,
69
+ )(route),
70
+ ],
71
+ true,
72
+ ),
73
+ ),
74
+ );
75
+
76
+ const writeConnection =
77
+ (config: IMigrateProgram.IConfig) =>
78
+ (swagger: ISwagger) =>
79
+ (importer: MigrateImportProgrammer): ts.VariableStatement =>
80
+ ts.factory.createVariableStatement(
81
+ undefined,
82
+ ts.factory.createVariableDeclarationList(
83
+ [
84
+ ts.factory.createVariableDeclaration(
85
+ "connection",
86
+ undefined,
87
+ ts.factory.createTypeReferenceNode(
88
+ ts.factory.createQualifiedName(
89
+ ts.factory.createIdentifier(
90
+ importer.external({
91
+ type: "default",
92
+ library: "@ORGANIZATION/PROJECT-api",
93
+ name: "api",
94
+ }),
95
+ ),
96
+ ts.factory.createIdentifier("IConnection"),
97
+ ),
98
+ ),
99
+ ts.factory.createObjectLiteralExpression(
100
+ [
101
+ ts.factory.createSpreadAssignment(
102
+ ts.factory.createCallExpression(
103
+ ts.factory.createPropertyAccessExpression(
104
+ ts.factory.createIdentifier("TestGlobal"),
105
+ "connection",
106
+ ),
107
+ undefined,
108
+ undefined,
109
+ ),
110
+ ),
111
+ ...(swagger.servers[0]?.url?.length
112
+ ? [
113
+ ts.factory.createPropertyAssignment(
114
+ "host",
115
+ ts.factory.createStringLiteral(
116
+ swagger.servers[0].url,
117
+ ),
118
+ ),
119
+ ]
120
+ : []),
121
+ ...(config.simulate === true
122
+ ? [
123
+ ts.factory.createPropertyAssignment(
124
+ "simulate",
125
+ ts.factory.createTrue(),
126
+ ),
127
+ ]
128
+ : []),
129
+ ],
130
+ true,
131
+ ),
132
+ ),
133
+ ],
134
+ ts.NodeFlags.Const,
135
+ ),
136
+ );
137
+
138
+ const writeStarter = (): ts.CallExpression =>
139
+ ts.factory.createCallExpression(
140
+ ts.factory.createPropertyAccessExpression(
141
+ ts.factory.createCallExpression(
142
+ ts.factory.createIdentifier("main"),
143
+ undefined,
144
+ undefined,
145
+ ),
146
+ "catch",
147
+ ),
148
+ undefined,
149
+ [
150
+ ts.factory.createArrowFunction(
151
+ undefined,
152
+ undefined,
153
+ [IdentifierFactory.parameter("exp")],
154
+ undefined,
155
+ undefined,
156
+ ts.factory.createBlock(
157
+ [
158
+ ts.factory.createExpressionStatement(
159
+ ts.factory.createCallExpression(
160
+ ts.factory.createPropertyAccessExpression(
161
+ ts.factory.createIdentifier("console"),
162
+ "log",
163
+ ),
164
+ undefined,
165
+ [ts.factory.createIdentifier("exp")],
166
+ ),
167
+ ),
168
+ ts.factory.createExpressionStatement(
169
+ ts.factory.createCallExpression(
170
+ ts.factory.createPropertyAccessExpression(
171
+ ts.factory.createIdentifier("process"),
172
+ "exit",
173
+ ),
174
+ undefined,
175
+ [
176
+ ts.factory.createPrefixMinus(
177
+ ts.factory.createNumericLiteral("1"),
178
+ ),
179
+ ],
180
+ ),
181
+ ),
182
+ ],
183
+ true,
184
+ ),
185
+ ),
186
+ ],
187
+ );
188
+ }
189
+
190
+ const pick = <T>(array: T[]): T => {
191
+ const rand: number = Math.random() * array.length;
192
+ const index: number = Math.min(array.length - 1, Math.floor(rand));
193
+ return array[index];
194
+ };
@@ -40,7 +40,7 @@ export namespace MigrateE2eFunctionProgrammer {
40
40
  ts.factory.createBlock(writeBody(components)(importer)(route), true),
41
41
  );
42
42
 
43
- const writeBody =
43
+ export const writeBody =
44
44
  (components: ISwaggerComponents) =>
45
45
  (importer: MigrateImportProgrammer) =>
46
46
  (route: IMigrateRoute): ts.Statement[] => [