UNPKG

@grnsft/if

Version:

Impact Framework

60 lines 7.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseIfMergeArgs = void 0; const ts_command_line_args_1 = require("ts-command-line-args"); const utils_1 = require("@grnsft/if-core/utils"); const fs_1 = require("../../common/util/fs"); const helpers_1 = require("../../common/util/helpers"); const yaml_1 = require("../../common/util/yaml"); const config_1 = require("../../common/config"); const config_2 = require("../config"); const { ParseCliParamsError, InvalidDirectoryError, CliSourceFileError } = utils_1.ERRORS; const { ARGS, HELP } = config_2.CONFIG; const { MANIFEST_IS_NOT_YAML } = config_2.STRINGS; const { MANIFEST_NOT_FOUND, DIRECTORY_NOT_FOUND } = config_1.STRINGS; /** * Parses `if-merge` process arguments. */ const validateAndParseIfMergeArgs = () => { try { return (0, ts_command_line_args_1.parse)(ARGS, HELP); } catch (error) { if (error instanceof Error) { console.log(error.message); (0, helpers_1.runHelpCommand)('if-merge'); } throw error; } }; /** * Checks if the `manifests` command is provided and they are valid manifests files or a folder. */ const parseIfMergeArgs = async () => { const { manifests, output, name, description } = validateAndParseIfMergeArgs(); const manifestsWithFullPath = []; if (manifests.length === 1) { const isDirectory = await (0, fs_1.isDirectoryExists)(manifests[0]); if (!isDirectory) { throw new InvalidDirectoryError(DIRECTORY_NOT_FOUND); } return { manifests, output, name, description }; } for await (const manifest of manifests) { const response = (0, helpers_1.prependFullFilePath)(manifest); const isManifestFileExists = await (0, fs_1.isFileExists)(response); const isYamlFile = (0, yaml_1.checkIfFileIsYaml)(response); if (!isManifestFileExists) { throw new ParseCliParamsError(`${manifest} ${MANIFEST_NOT_FOUND}`); } if (!isYamlFile) { throw new CliSourceFileError(MANIFEST_IS_NOT_YAML(manifest)); } if ((0, yaml_1.checkIfFileIsYaml)(manifest)) { manifestsWithFullPath.push(response); } } return { manifests: manifestsWithFullPath, output, name, description }; }; exports.parseIfMergeArgs = parseIfMergeArgs; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZi1tZXJnZS91dGlsL2FyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQTJDO0FBQzNDLGlEQUE2QztBQUU3Qyw2Q0FBcUU7QUFDckUsdURBQThFO0FBQzlFLGlEQUF5RDtBQUV6RCxnREFBOEQ7QUFJOUQsc0NBQTBDO0FBRTFDLE1BQU0sRUFBQyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBQyxHQUFHLGNBQU0sQ0FBQztBQUNoRixNQUFNLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxHQUFHLGVBQU0sQ0FBQztBQUM1QixNQUFNLEVBQUMsb0JBQW9CLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBQ3ZDLE1BQU0sRUFBQyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBQyxHQUFHLGdCQUFjLENBQUM7QUFFakU7O0dBRUc7QUFDSCxNQUFNLDJCQUEyQixHQUFHLEdBQUcsRUFBRTtJQUN2QyxJQUFJO1FBQ0YsT0FBTyxJQUFBLDRCQUFLLEVBQWMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3ZDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFM0IsSUFBQSx3QkFBYyxFQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzVCO1FBRUQsTUFBTSxLQUFLLENBQUM7S0FDYjtBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0ksTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLElBQUksRUFBRTtJQUN6QyxNQUFNLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztJQUU3RSxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUVqQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzFCLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSxzQkFBaUIsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDO0tBQy9DO0lBRUQsSUFBSSxLQUFLLEVBQUUsTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUEsNkJBQW1CLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLElBQUEsaUJBQVksRUFBQyxRQUFRLENBQUMsQ0FBQztRQUMxRCxNQUFNLFVBQVUsR0FBRyxJQUFBLHdCQUFpQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN6QixNQUFNLElBQUksbUJBQW1CLENBQUMsR0FBRyxRQUFRLElBQUksa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1NBQ3BFO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxJQUFBLHdCQUFpQixFQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QztLQUNGO0lBRUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDO0FBQ3ZFLENBQUMsQ0FBQztBQWpDVyxRQUFBLGdCQUFnQixvQkFpQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZX0gZnJvbSAndHMtY29tbWFuZC1saW5lLWFyZ3MnO1xuaW1wb3J0IHtFUlJPUlN9IGZyb20gJ0Bncm5zZnQvaWYtY29yZS91dGlscyc7XG5cbmltcG9ydCB7aXNGaWxlRXhpc3RzLCBpc0RpcmVjdG9yeUV4aXN0c30gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvZnMnO1xuaW1wb3J0IHtwcmVwZW5kRnVsbEZpbGVQYXRoLCBydW5IZWxwQ29tbWFuZH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWwvaGVscGVycyc7XG5pbXBvcnQge2NoZWNrSWZGaWxlSXNZYW1sfSBmcm9tICcuLi8uLi9jb21tb24vdXRpbC95YW1sJztcblxuaW1wb3J0IHtTVFJJTkdTIGFzIENPTU1PTl9TVFJJTkdTfSBmcm9tICcuLi8uLi9jb21tb24vY29uZmlnJztcblxuaW1wb3J0IHtJRk1lcmdlQXJnc30gZnJvbSAnLi4vdHlwZXMvcHJvY2Vzcy1hcmdzJztcblxuaW1wb3J0IHtDT05GSUcsIFNUUklOR1N9IGZyb20gJy4uL2NvbmZpZyc7XG5cbmNvbnN0IHtQYXJzZUNsaVBhcmFtc0Vycm9yLCBJbnZhbGlkRGlyZWN0b3J5RXJyb3IsIENsaVNvdXJjZUZpbGVFcnJvcn0gPSBFUlJPUlM7XG5jb25zdCB7QVJHUywgSEVMUH0gPSBDT05GSUc7XG5jb25zdCB7TUFOSUZFU1RfSVNfTk9UX1lBTUx9ID0gU1RSSU5HUztcbmNvbnN0IHtNQU5JRkVTVF9OT1RfRk9VTkQsIERJUkVDVE9SWV9OT1RfRk9VTkR9ID0gQ09NTU9OX1NUUklOR1M7XG5cbi8qKlxuICogUGFyc2VzIGBpZi1tZXJnZWAgcHJvY2VzcyBhcmd1bWVudHMuXG4gKi9cbmNvbnN0IHZhbGlkYXRlQW5kUGFyc2VJZk1lcmdlQXJncyA9ICgpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2U8SUZNZXJnZUFyZ3M+KEFSR1MsIEhFTFApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTtcblxuICAgICAgcnVuSGVscENvbW1hbmQoJ2lmLW1lcmdlJyk7XG4gICAgfVxuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBgbWFuaWZlc3RzYCBjb21tYW5kIGlzIHByb3ZpZGVkIGFuZCB0aGV5IGFyZSB2YWxpZCBtYW5pZmVzdHMgZmlsZXMgb3IgYSBmb2xkZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUlmTWVyZ2VBcmdzID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCB7bWFuaWZlc3RzLCBvdXRwdXQsIG5hbWUsIGRlc2NyaXB0aW9ufSA9IHZhbGlkYXRlQW5kUGFyc2VJZk1lcmdlQXJncygpO1xuXG4gIGNvbnN0IG1hbmlmZXN0c1dpdGhGdWxsUGF0aCA9IFtdO1xuXG4gIGlmIChtYW5pZmVzdHMubGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3QgaXNEaXJlY3RvcnkgPSBhd2FpdCBpc0RpcmVjdG9yeUV4aXN0cyhtYW5pZmVzdHNbMF0pO1xuICAgIGlmICghaXNEaXJlY3RvcnkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkRGlyZWN0b3J5RXJyb3IoRElSRUNUT1JZX05PVF9GT1VORCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHttYW5pZmVzdHMsIG91dHB1dCwgbmFtZSwgZGVzY3JpcHRpb259O1xuICB9XG5cbiAgZm9yIGF3YWl0IChjb25zdCBtYW5pZmVzdCBvZiBtYW5pZmVzdHMpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHByZXBlbmRGdWxsRmlsZVBhdGgobWFuaWZlc3QpO1xuICAgIGNvbnN0IGlzTWFuaWZlc3RGaWxlRXhpc3RzID0gYXdhaXQgaXNGaWxlRXhpc3RzKHJlc3BvbnNlKTtcbiAgICBjb25zdCBpc1lhbWxGaWxlID0gY2hlY2tJZkZpbGVJc1lhbWwocmVzcG9uc2UpO1xuXG4gICAgaWYgKCFpc01hbmlmZXN0RmlsZUV4aXN0cykge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlQ2xpUGFyYW1zRXJyb3IoYCR7bWFuaWZlc3R9ICR7TUFOSUZFU1RfTk9UX0ZPVU5EfWApO1xuICAgIH1cblxuICAgIGlmICghaXNZYW1sRmlsZSkge1xuICAgICAgdGhyb3cgbmV3IENsaVNvdXJjZUZpbGVFcnJvcihNQU5JRkVTVF9JU19OT1RfWUFNTChtYW5pZmVzdCkpO1xuICAgIH1cblxuICAgIGlmIChjaGVja0lmRmlsZUlzWWFtbChtYW5pZmVzdCkpIHtcbiAgICAgIG1hbmlmZXN0c1dpdGhGdWxsUGF0aC5wdXNoKHJlc3BvbnNlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge21hbmlmZXN0czogbWFuaWZlc3RzV2l0aEZ1bGxQYXRoLCBvdXRwdXQsIG5hbWUsIGRlc2NyaXB0aW9ufTtcbn07XG4iXX0=