ern-api-gen
Version:
Electrode Native API generator
61 lines • 2.76 kB
JavaScript
;
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