UNPKG

ern-api-gen

Version:

Electrode Native API generator

61 lines 2.76 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const CodegenConfigurator_1 = __importDefault(require("./config/CodegenConfigurator")); const DefaultGenerator_1 = __importDefault(require("./DefaultGenerator")); class ApiGenUtils { /** * Util method to extract all requests from a given swagger schema json file. */ static extractApiEventsAndRequests(swaggerSchemaFile) { return __awaiter(this, void 0, void 0, function* () { try { const config = { inputSpec: swaggerSchemaFile, lang: 'ERNAndroid', outputDir: 'fake', }; const cc = new CodegenConfigurator_1.default(config); const opts = yield cc.toClientOptInput(); const generator = new DefaultGenerator_1.default().opts(opts); const apis = generator.processPaths(generator.swagger.getPaths()).value; const result = []; for (const apiKey in apis) { if (apis.hasOwnProperty(apiKey)) { const { requests, events, } = ApiGenUtils.generateApiEventsAndRequestNames(apis[apiKey]); result.push({ apiName: apiKey, requests, events }); } } return result; } catch (e) { throw new Error(`Unable to extract the apis: ${e}`); } }); } static generateApiEventsAndRequestNames(api) { const requests = []; const events = []; for (const key in api) { if (api.hasOwnProperty(key) && api[key].httpMethod === `EVENT`) { events.push(api[key].camelizedNickName); } else { requests.push(api[key].camelizedNickName); } } return { requests, events }; } } exports.default = ApiGenUtils; //# sourceMappingURL=ApiGenUtils.js.map