UNPKG

@bitblit/epsilon

Version:

Tiny adapter to simplify building API gateway Lambda APIS

38 lines 1.7 kB
"use strict"; /* Functions to combine a set of yaml files */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.YamlCombiner = void 0; const fs_1 = __importDefault(require("fs")); const require_ratchet_1 = require("@bitblit/ratchet/common/require-ratchet"); const js_yaml_1 = __importDefault(require("js-yaml")); const logger_1 = require("@bitblit/ratchet/common/logger"); class YamlCombiner { static combine(files, inRootPath = []) { require_ratchet_1.RequireRatchet.notNullOrUndefined(files, 'Files argument'); require_ratchet_1.RequireRatchet.true(files.length > 0, 'Files argument larger than 0'); require_ratchet_1.RequireRatchet.notNullOrUndefined(inRootPath, 'Root path argument'); logger_1.Logger.info('Processing %d files into output', files.length); let allElements = {}; for (let i = 0; i < files.length; i++) { const fileContents = fs_1.default.readFileSync(files[i]).toString(); const openApi = js_yaml_1.default.load(fileContents); allElements = Object.assign(allElements, openApi); } const rootPath = Object.assign([], inRootPath); while (rootPath.length > 0) { const next = {}; next[rootPath[rootPath.length - 1]] = allElements; rootPath.splice(rootPath.length - 1, 1); allElements = next; } const rval = js_yaml_1.default.dump(allElements); return rval; } } exports.YamlCombiner = YamlCombiner; //# sourceMappingURL=yaml-combiner.js.map