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 | };
|
11 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
12 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
13 | };
|
14 | Object.defineProperty(exports, "__esModule", { value: true });
|
15 | const CodegenConfigurator_1 = __importDefault(require("./config/CodegenConfigurator"));
|
16 | const DefaultGenerator_1 = __importDefault(require("./DefaultGenerator"));
|
17 | class ApiGenUtils {
|
18 | |
19 |
|
20 |
|
21 | static extractApiEventsAndRequests(swaggerSchemaFile) {
|
22 | return __awaiter(this, void 0, void 0, function* () {
|
23 | try {
|
24 | const config = {
|
25 | inputSpec: swaggerSchemaFile,
|
26 | lang: 'ERNAndroid',
|
27 | outputDir: 'fake',
|
28 | };
|
29 | const cc = new CodegenConfigurator_1.default(config);
|
30 | const opts = yield cc.toClientOptInput();
|
31 | const generator = new DefaultGenerator_1.default().opts(opts);
|
32 | const apis = generator.processPaths(generator.swagger.getPaths()).value;
|
33 | const result = [];
|
34 | for (const apiKey in apis) {
|
35 | if (apis.hasOwnProperty(apiKey)) {
|
36 | const { requests, events, } = ApiGenUtils.generateApiEventsAndRequestNames(apis[apiKey]);
|
37 | result.push({ apiName: apiKey, requests, events });
|
38 | }
|
39 | }
|
40 | return result;
|
41 | }
|
42 | catch (e) {
|
43 | throw new Error(`Unable to extract the apis: ${e}`);
|
44 | }
|
45 | });
|
46 | }
|
47 | static generateApiEventsAndRequestNames(api) {
|
48 | const requests = [];
|
49 | const events = [];
|
50 | for (const key in api) {
|
51 | if (api.hasOwnProperty(key) && api[key].httpMethod === `EVENT`) {
|
52 | events.push(api[key].camelizedNickName);
|
53 | }
|
54 | else {
|
55 | requests.push(api[key].camelizedNickName);
|
56 | }
|
57 | }
|
58 | return { requests, events };
|
59 | }
|
60 | }
|
61 | exports.default = ApiGenUtils;
|
62 |
|
\ | No newline at end of file |