UNPKG

@grnsft/if

Version:

Impact Framework

86 lines 8.84 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeManifests = void 0; const path = __importStar(require("path")); const fs_1 = require("../../common/util/fs"); const load_1 = require("../../common/lib/load"); const exhaust_1 = require("../../if-run/lib/exhaust"); /** * Merges the given manifests in the one file. */ const mergeManifests = async (mergeArgs) => { const { manifests: commandManifests, output, name, description } = mergeArgs; let manifests = commandManifests; if (commandManifests.length === 1) { manifests = await (0, fs_1.getYamlFiles)(commandManifests[0]); } const context = { name: name || 'if-merge', description: description || 'merged manifest', tags: null, initialize: { plugins: {} }, }; const tree = await mergeManifestsData(manifests, context); await saveMergedManifest(tree, context, output); }; exports.mergeManifests = mergeManifests; /** * Merges manifests data. */ const mergeManifestsData = async (manifests, context) => { const tree = { children: {} }; for await (const manifest of manifests) { const manifestName = (0, fs_1.getFileName)(manifest); const { rawManifest } = await (0, load_1.load)(manifest); const parentDir = path.basename(path.dirname(manifest)); const uniqueName = `${parentDir}-${manifestName}`; context.tags = Object.assign({}, context.tags, rawManifest.tags); context.initialize.plugins = { ...context.initialize.plugins, ...rawManifest.initialize.plugins, }; Object.keys(rawManifest.tree.children).forEach(child => { tree.children[`${child}-${uniqueName}`] = { ...rawManifest.tree.children[child], }; }); } return tree; }; /** * Saves the merged manifest in the `merged-manifest.yaml` file. */ const saveMergedManifest = async (tree, context, outputPath) => { if (outputPath?.endsWith('/')) { outputPath += 'merged-manifest'; } const output = { outputPath, noOutput: false, }; await (0, exhaust_1.exhaust)(tree, context, output); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXJnZS91dGlsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFFN0IsNkNBQStEO0FBRS9ELGdEQUEyQztBQUUzQyxzREFBaUQ7QUFHakQ7O0dBRUc7QUFDSSxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsU0FBc0IsRUFBRSxFQUFFO0lBQzdELE1BQU0sRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUMsR0FBRyxTQUFTLENBQUM7SUFDM0UsSUFBSSxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7SUFFakMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2pDLFNBQVMsR0FBRyxNQUFNLElBQUEsaUJBQVksRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3JEO0lBQ0QsTUFBTSxPQUFPLEdBQUc7UUFDZCxJQUFJLEVBQUUsSUFBSSxJQUFJLFVBQVU7UUFDeEIsV0FBVyxFQUFFLFdBQVcsSUFBSSxpQkFBaUI7UUFDN0MsSUFBSSxFQUFFLElBQUk7UUFDVixVQUFVLEVBQUUsRUFBQyxPQUFPLEVBQUUsRUFBRSxFQUFDO0tBQzFCLENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxNQUFNLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUxRCxNQUFNLGtCQUFrQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDO0FBaEJXLFFBQUEsY0FBYyxrQkFnQnpCO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFBRSxTQUFtQixFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUN6RSxNQUFNLElBQUksR0FBUSxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUVqQyxJQUFJLEtBQUssRUFBRSxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUU7UUFDdEMsTUFBTSxZQUFZLEdBQUcsSUFBQSxnQkFBVyxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sVUFBVSxHQUFHLEdBQUcsU0FBUyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUc7WUFDM0IsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDN0IsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU87U0FDbEMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHO2dCQUN4QyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUNwQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDOUIsSUFBUyxFQUNULE9BQWdCLEVBQ2hCLFVBQThCLEVBQzlCLEVBQUU7SUFDRixJQUFJLFVBQVUsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDN0IsVUFBVSxJQUFJLGlCQUFpQixDQUFDO0tBQ2pDO0lBRUQsTUFBTSxNQUFNLEdBQUc7UUFDYixVQUFVO1FBQ1YsUUFBUSxFQUFFLEtBQUs7S0FDaEIsQ0FBQztJQUNGLE1BQU0sSUFBQSxpQkFBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtnZXRGaWxlTmFtZSwgZ2V0WWFtbEZpbGVzfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC9mcyc7XG5pbXBvcnQge0NvbnRleHR9IGZyb20gJy4uLy4uL2NvbW1vbi90eXBlcy9tYW5pZmVzdCc7XG5pbXBvcnQge2xvYWR9IGZyb20gJy4uLy4uL2NvbW1vbi9saWIvbG9hZCc7XG5cbmltcG9ydCB7ZXhoYXVzdH0gZnJvbSAnLi4vLi4vaWYtcnVuL2xpYi9leGhhdXN0JztcbmltcG9ydCB7SUZNZXJnZUFyZ3N9IGZyb20gJy4uL3R5cGVzL3Byb2Nlc3MtYXJncyc7XG5cbi8qKlxuICogTWVyZ2VzIHRoZSBnaXZlbiBtYW5pZmVzdHMgaW4gdGhlIG9uZSBmaWxlLlxuICovXG5leHBvcnQgY29uc3QgbWVyZ2VNYW5pZmVzdHMgPSBhc3luYyAobWVyZ2VBcmdzOiBJRk1lcmdlQXJncykgPT4ge1xuICBjb25zdCB7bWFuaWZlc3RzOiBjb21tYW5kTWFuaWZlc3RzLCBvdXRwdXQsIG5hbWUsIGRlc2NyaXB0aW9ufSA9IG1lcmdlQXJncztcbiAgbGV0IG1hbmlmZXN0cyA9IGNvbW1hbmRNYW5pZmVzdHM7XG5cbiAgaWYgKGNvbW1hbmRNYW5pZmVzdHMubGVuZ3RoID09PSAxKSB7XG4gICAgbWFuaWZlc3RzID0gYXdhaXQgZ2V0WWFtbEZpbGVzKGNvbW1hbmRNYW5pZmVzdHNbMF0pO1xuICB9XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgbmFtZTogbmFtZSB8fCAnaWYtbWVyZ2UnLFxuICAgIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB8fCAnbWVyZ2VkIG1hbmlmZXN0JyxcbiAgICB0YWdzOiBudWxsLFxuICAgIGluaXRpYWxpemU6IHtwbHVnaW5zOiB7fX0sXG4gIH07XG4gIGNvbnN0IHRyZWUgPSBhd2FpdCBtZXJnZU1hbmlmZXN0c0RhdGEobWFuaWZlc3RzLCBjb250ZXh0KTtcblxuICBhd2FpdCBzYXZlTWVyZ2VkTWFuaWZlc3QodHJlZSwgY29udGV4dCwgb3V0cHV0KTtcbn07XG5cbi8qKlxuICogTWVyZ2VzIG1hbmlmZXN0cyBkYXRhLlxuICovXG5jb25zdCBtZXJnZU1hbmlmZXN0c0RhdGEgPSBhc3luYyAobWFuaWZlc3RzOiBzdHJpbmdbXSwgY29udGV4dDogQ29udGV4dCkgPT4ge1xuICBjb25zdCB0cmVlOiBhbnkgPSB7Y2hpbGRyZW46IHt9fTtcblxuICBmb3IgYXdhaXQgKGNvbnN0IG1hbmlmZXN0IG9mIG1hbmlmZXN0cykge1xuICAgIGNvbnN0IG1hbmlmZXN0TmFtZSA9IGdldEZpbGVOYW1lKG1hbmlmZXN0KTtcbiAgICBjb25zdCB7cmF3TWFuaWZlc3R9ID0gYXdhaXQgbG9hZChtYW5pZmVzdCk7XG4gICAgY29uc3QgcGFyZW50RGlyID0gcGF0aC5iYXNlbmFtZShwYXRoLmRpcm5hbWUobWFuaWZlc3QpKTtcbiAgICBjb25zdCB1bmlxdWVOYW1lID0gYCR7cGFyZW50RGlyfS0ke21hbmlmZXN0TmFtZX1gO1xuXG4gICAgY29udGV4dC50YWdzID0gT2JqZWN0LmFzc2lnbih7fSwgY29udGV4dC50YWdzLCByYXdNYW5pZmVzdC50YWdzKTtcbiAgICBjb250ZXh0LmluaXRpYWxpemUucGx1Z2lucyA9IHtcbiAgICAgIC4uLmNvbnRleHQuaW5pdGlhbGl6ZS5wbHVnaW5zLFxuICAgICAgLi4ucmF3TWFuaWZlc3QuaW5pdGlhbGl6ZS5wbHVnaW5zLFxuICAgIH07XG5cbiAgICBPYmplY3Qua2V5cyhyYXdNYW5pZmVzdC50cmVlLmNoaWxkcmVuKS5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgIHRyZWUuY2hpbGRyZW5bYCR7Y2hpbGR9LSR7dW5pcXVlTmFtZX1gXSA9IHtcbiAgICAgICAgLi4ucmF3TWFuaWZlc3QudHJlZS5jaGlsZHJlbltjaGlsZF0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRyZWU7XG59O1xuXG4vKipcbiAqIFNhdmVzIHRoZSBtZXJnZWQgbWFuaWZlc3QgaW4gdGhlIGBtZXJnZWQtbWFuaWZlc3QueWFtbGAgZmlsZS5cbiAqL1xuY29uc3Qgc2F2ZU1lcmdlZE1hbmlmZXN0ID0gYXN5bmMgKFxuICB0cmVlOiBhbnksXG4gIGNvbnRleHQ6IENvbnRleHQsXG4gIG91dHB1dFBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZFxuKSA9PiB7XG4gIGlmIChvdXRwdXRQYXRoPy5lbmRzV2l0aCgnLycpKSB7XG4gICAgb3V0cHV0UGF0aCArPSAnbWVyZ2VkLW1hbmlmZXN0JztcbiAgfVxuXG4gIGNvbnN0IG91dHB1dCA9IHtcbiAgICBvdXRwdXRQYXRoLFxuICAgIG5vT3V0cHV0OiBmYWxzZSxcbiAgfTtcbiAgYXdhaXQgZXhoYXVzdCh0cmVlLCBjb250ZXh0LCBvdXRwdXQpO1xufTtcbiJdfQ==