@grnsft/if
Version:
Impact Framework
86 lines • 8.84 kB
JavaScript
;
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==