UNPKG

@feflow/cli

Version:
89 lines 3.83 kB
"use strict"; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolvePlugin = void 0; var fs_1 = __importDefault(require("fs")); var chalk_1 = __importDefault(require("chalk")); var osenv_1 = __importDefault(require("osenv")); var path_1 = __importDefault(require("path")); var compose_1 = __importDefault(require("./compose")); var command_picker_1 = require("../command-picker"); var logger_1 = __importDefault(require("../logger")); var plugin_1 = require("../universal-pkg/schema/plugin"); var yaml_1 = require("../../shared/yaml"); var constant_1 = require("../../shared/constant"); function applyPlugins(plugins) { return function (ctx) { if (!plugins.length) { return; } var pickConfig = new command_picker_1.CacheController(ctx); var chain = plugins.map(function (name) { var home = path_1.default.join(osenv_1.default.home(), constant_1.FEFLOW_ROOT); var pluginPath = path_1.default.join(home, 'node_modules', name); pickConfig.registerSubCommand(command_picker_1.CommandType.PLUGIN_TYPE, ctx.commander.store, name); try { ctx.logger.debug('Plugin loaded: %s', chalk_1.default.magenta(name)); var pluginLogger = (0, logger_1.default)({ debug: Boolean(ctx.args.debug), silent: Boolean(ctx.args.silent), name: name, }); // eslint-disable-next-line @typescript-eslint/no-require-imports return require(pluginPath)(Object.assign({}, ctx, { logger: pluginLogger })); } catch (err) { ctx.fefError.printError({ error: err, msg: 'command load failed: %s', pluginPath: pluginPath }); } return []; }); compose_1.default.apply(void 0, __spreadArray([], __read(chain), false)); pickConfig.registerSubCommand(command_picker_1.CommandType.PLUGIN_TYPE, ctx.commander.store); pickConfig.updateCache(command_picker_1.CommandType.PLUGIN_TYPE); }; } exports.default = applyPlugins; function resolvePlugin(ctx, repoPath) { var pluginFile = path_1.default.join(repoPath, constant_1.UNIVERSAL_PLUGIN_CONFIG); var exists = fs_1.default.existsSync(pluginFile); if (!exists) { throw new Error("the ".concat(constant_1.UNIVERSAL_PLUGIN_CONFIG, " file was not found")); } var config; try { config = (0, yaml_1.parseYaml)(pluginFile); } catch (e) { throw new Error("the ".concat(constant_1.UNIVERSAL_PLUGIN_CONFIG, " file failed to resolve, please check the syntax, e: ").concat(e)); } return new plugin_1.Plugin(ctx, repoPath, config); } exports.resolvePlugin = resolvePlugin; //# sourceMappingURL=apply-plugins.js.map