UNPKG

@grnsft/if

Version:

Impact Framework

94 lines 10.4 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.addTemplateManifest = exports.initializeAndInstallLibs = exports.getOptionsFromArgs = void 0; /* eslint-disable no-process-exit */ const path = __importStar(require("path")); const fs = __importStar(require("fs/promises")); const utils_1 = require("@grnsft/if-core/utils"); const npm_1 = require("./npm"); const load_1 = require("../../common/lib/load"); const config_1 = require("../config"); const { MissingManifestDependenciesError } = utils_1.ERRORS; const { FAILURE_MESSAGE_DEPENDENCIES, FAILURE_MESSAGE, FAILURE_MESSAGE_TEMPLATE, } = config_1.STRINGS; /** * Gets the folder path of the manifest file, dependencies from manifest file and install argument from the given arguments. */ const getOptionsFromArgs = async (commandArgs) => { const { manifest, install } = commandArgs; const folderPath = path.dirname(manifest); const loadedManifest = await (0, load_1.load)(manifest); const rawManifest = loadedManifest.rawManifest; const plugins = rawManifest?.initialize?.plugins || {}; const dependencies = rawManifest?.execution?.environment.dependencies || []; if (!dependencies.length) { throw new MissingManifestDependenciesError(FAILURE_MESSAGE_DEPENDENCIES); } const pathsWithVersion = (0, npm_1.extractPathsWithVersion)(plugins, dependencies); return { folderPath, dependencies: pathsWithVersion, install, }; }; exports.getOptionsFromArgs = getOptionsFromArgs; /** * Creates folder if not exists, installs dependencies if required, update depenedencies. */ const initializeAndInstallLibs = async (options) => { try { const { folderPath, install, cwd, dependencies } = options; const packageJsonPath = await (0, npm_1.initPackageJsonIfNotExists)(folderPath); await (0, npm_1.updatePackageJsonProperties)(packageJsonPath, cwd); if (install) { await (0, npm_1.installDependencies)(folderPath, dependencies); } else { await (0, npm_1.updatePackageJsonDependencies)(packageJsonPath, dependencies, cwd); } } catch (error) { console.log(FAILURE_MESSAGE); process.exit(2); } }; exports.initializeAndInstallLibs = initializeAndInstallLibs; /** * Adds a manifest template to the folder where the if-env CLI command runs. */ const addTemplateManifest = async (destinationDir) => { try { const templateManifest = path.resolve(__dirname, '../config/env-template.yml'); const destinationPath = path.resolve(destinationDir, 'manifest.yml'); const data = await fs.readFile(templateManifest, 'utf-8'); await fs.writeFile(destinationPath, data, 'utf-8'); } catch (error) { console.log(FAILURE_MESSAGE_TEMPLATE); process.exit(1); } }; exports.addTemplateManifest = addTemplateManifest; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1lbnYvdXRpbC9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0NBQW9DO0FBQ3BDLDJDQUE2QjtBQUM3QixnREFBa0M7QUFDbEMsaURBQTZDO0FBRTdDLCtCQU1lO0FBQ2YsZ0RBQTJDO0FBRTNDLHNDQUFrQztBQUlsQyxNQUFNLEVBQUMsZ0NBQWdDLEVBQUMsR0FBRyxjQUFNLENBQUM7QUFDbEQsTUFBTSxFQUNKLDRCQUE0QixFQUM1QixlQUFlLEVBQ2Ysd0JBQXdCLEdBQ3pCLEdBQUcsZ0JBQU8sQ0FBQztBQUVaOztHQUVHO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEVBQUUsV0FHeEMsRUFBRSxFQUFFO0lBQ0gsTUFBTSxFQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUMsR0FBRyxXQUFXLENBQUM7SUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFDL0MsTUFBTSxPQUFPLEdBQUcsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ3ZELE1BQU0sWUFBWSxHQUFHLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7SUFFNUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7UUFDeEIsTUFBTSxJQUFJLGdDQUFnQyxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDMUU7SUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUEsNkJBQXVCLEVBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRXhFLE9BQU87UUFDTCxVQUFVO1FBQ1YsWUFBWSxFQUFFLGdCQUFnQjtRQUM5QixPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXRCVyxRQUFBLGtCQUFrQixzQkFzQjdCO0FBRUY7O0dBRUc7QUFDSSxNQUFNLHdCQUF3QixHQUFHLEtBQUssRUFBRSxPQUEyQixFQUFFLEVBQUU7SUFDNUUsSUFBSTtRQUNGLE1BQU0sRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUMsR0FBRyxPQUFPLENBQUM7UUFDekQsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFBLGdDQUEwQixFQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sSUFBQSxpQ0FBMkIsRUFBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFeEQsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLElBQUEseUJBQW1CLEVBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxNQUFNLElBQUEsbUNBQTZCLEVBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN6RTtLQUNGO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUM7QUFoQlcsUUFBQSx3QkFBd0IsNEJBZ0JuQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsY0FBc0IsRUFBRSxFQUFFO0lBQ2xFLElBQUk7UUFDRixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQ25DLFNBQVMsRUFDVCw0QkFBNEIsQ0FDN0IsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxRCxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNwRDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUM7QUFmVyxRQUFBLG1CQUFtQix1QkFlOUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm9jZXNzLWV4aXQgKi9cbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQge0VSUk9SU30gZnJvbSAnQGdybnNmdC9pZi1jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtcbiAgZXh0cmFjdFBhdGhzV2l0aFZlcnNpb24sXG4gIGluaXRQYWNrYWdlSnNvbklmTm90RXhpc3RzLFxuICBpbnN0YWxsRGVwZW5kZW5jaWVzLFxuICB1cGRhdGVQYWNrYWdlSnNvbkRlcGVuZGVuY2llcyxcbiAgdXBkYXRlUGFja2FnZUpzb25Qcm9wZXJ0aWVzLFxufSBmcm9tICcuL25wbSc7XG5pbXBvcnQge2xvYWR9IGZyb20gJy4uLy4uL2NvbW1vbi9saWIvbG9hZCc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vY29uZmlnJztcblxuaW1wb3J0IHtFbnZpcm9ubWVudE9wdGlvbnN9IGZyb20gJy4uL3R5cGVzL2lmLWVudic7XG5cbmNvbnN0IHtNaXNzaW5nTWFuaWZlc3REZXBlbmRlbmNpZXNFcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7XG4gIEZBSUxVUkVfTUVTU0FHRV9ERVBFTkRFTkNJRVMsXG4gIEZBSUxVUkVfTUVTU0FHRSxcbiAgRkFJTFVSRV9NRVNTQUdFX1RFTVBMQVRFLFxufSA9IFNUUklOR1M7XG5cbi8qKlxuICogR2V0cyB0aGUgZm9sZGVyIHBhdGggb2YgdGhlIG1hbmlmZXN0IGZpbGUsIGRlcGVuZGVuY2llcyBmcm9tIG1hbmlmZXN0IGZpbGUgYW5kIGluc3RhbGwgYXJndW1lbnQgZnJvbSB0aGUgZ2l2ZW4gYXJndW1lbnRzLlxuICovXG5leHBvcnQgY29uc3QgZ2V0T3B0aW9uc0Zyb21BcmdzID0gYXN5bmMgKGNvbW1hbmRBcmdzOiB7XG4gIG1hbmlmZXN0OiBzdHJpbmc7XG4gIGluc3RhbGw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59KSA9PiB7XG4gIGNvbnN0IHttYW5pZmVzdCwgaW5zdGFsbH0gPSBjb21tYW5kQXJncztcbiAgY29uc3QgZm9sZGVyUGF0aCA9IHBhdGguZGlybmFtZShtYW5pZmVzdCk7XG4gIGNvbnN0IGxvYWRlZE1hbmlmZXN0ID0gYXdhaXQgbG9hZChtYW5pZmVzdCk7XG4gIGNvbnN0IHJhd01hbmlmZXN0ID0gbG9hZGVkTWFuaWZlc3QucmF3TWFuaWZlc3Q7XG4gIGNvbnN0IHBsdWdpbnMgPSByYXdNYW5pZmVzdD8uaW5pdGlhbGl6ZT8ucGx1Z2lucyB8fCB7fTtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmF3TWFuaWZlc3Q/LmV4ZWN1dGlvbj8uZW52aXJvbm1lbnQuZGVwZW5kZW5jaWVzIHx8IFtdO1xuXG4gIGlmICghZGVwZW5kZW5jaWVzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBNaXNzaW5nTWFuaWZlc3REZXBlbmRlbmNpZXNFcnJvcihGQUlMVVJFX01FU1NBR0VfREVQRU5ERU5DSUVTKTtcbiAgfVxuXG4gIGNvbnN0IHBhdGhzV2l0aFZlcnNpb24gPSBleHRyYWN0UGF0aHNXaXRoVmVyc2lvbihwbHVnaW5zLCBkZXBlbmRlbmNpZXMpO1xuXG4gIHJldHVybiB7XG4gICAgZm9sZGVyUGF0aCxcbiAgICBkZXBlbmRlbmNpZXM6IHBhdGhzV2l0aFZlcnNpb24sXG4gICAgaW5zdGFsbCxcbiAgfTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBmb2xkZXIgaWYgbm90IGV4aXN0cywgaW5zdGFsbHMgZGVwZW5kZW5jaWVzIGlmIHJlcXVpcmVkLCB1cGRhdGUgZGVwZW5lZGVuY2llcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGluaXRpYWxpemVBbmRJbnN0YWxsTGlicyA9IGFzeW5jIChvcHRpb25zOiBFbnZpcm9ubWVudE9wdGlvbnMpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7Zm9sZGVyUGF0aCwgaW5zdGFsbCwgY3dkLCBkZXBlbmRlbmNpZXN9ID0gb3B0aW9ucztcbiAgICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBhd2FpdCBpbml0UGFja2FnZUpzb25JZk5vdEV4aXN0cyhmb2xkZXJQYXRoKTtcblxuICAgIGF3YWl0IHVwZGF0ZVBhY2thZ2VKc29uUHJvcGVydGllcyhwYWNrYWdlSnNvblBhdGgsIGN3ZCk7XG5cbiAgICBpZiAoaW5zdGFsbCkge1xuICAgICAgYXdhaXQgaW5zdGFsbERlcGVuZGVuY2llcyhmb2xkZXJQYXRoLCBkZXBlbmRlbmNpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB1cGRhdGVQYWNrYWdlSnNvbkRlcGVuZGVuY2llcyhwYWNrYWdlSnNvblBhdGgsIGRlcGVuZGVuY2llcywgY3dkKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coRkFJTFVSRV9NRVNTQUdFKTtcbiAgICBwcm9jZXNzLmV4aXQoMik7XG4gIH1cbn07XG5cbi8qKlxuICogQWRkcyBhIG1hbmlmZXN0IHRlbXBsYXRlIHRvIHRoZSBmb2xkZXIgd2hlcmUgdGhlIGlmLWVudiBDTEkgY29tbWFuZCBydW5zLlxuICovXG5leHBvcnQgY29uc3QgYWRkVGVtcGxhdGVNYW5pZmVzdCA9IGFzeW5jIChkZXN0aW5hdGlvbkRpcjogc3RyaW5nKSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGVtcGxhdGVNYW5pZmVzdCA9IHBhdGgucmVzb2x2ZShcbiAgICAgIF9fZGlybmFtZSxcbiAgICAgICcuLi9jb25maWcvZW52LXRlbXBsYXRlLnltbCdcbiAgICApO1xuXG4gICAgY29uc3QgZGVzdGluYXRpb25QYXRoID0gcGF0aC5yZXNvbHZlKGRlc3RpbmF0aW9uRGlyLCAnbWFuaWZlc3QueW1sJyk7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZzLnJlYWRGaWxlKHRlbXBsYXRlTWFuaWZlc3QsICd1dGYtOCcpO1xuXG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGRlc3RpbmF0aW9uUGF0aCwgZGF0YSwgJ3V0Zi04Jyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coRkFJTFVSRV9NRVNTQUdFX1RFTVBMQVRFKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn07XG4iXX0=