@sap/cli-core
Version:
Command-Line Interface (CLI) Core Module
23 lines (22 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.create = void 0;
const lodash_1 = require("lodash");
const config_1 = require("../../config");
const utils_1 = require("./utils");
const constants_1 = require("../../constants");
const logger_1 = require("../../logger");
const create = (handlerArgs) => async () => async (...args) => {
const { debug } = (0, logger_1.get)("commands.handler.parseArguments");
const command = args[args.length - 1].name();
const options = Object.entries(args[args.length - 2])
.map((o) => [o[0], (0, utils_1.parseOption)(o[1])])
.reduce((prev, curr) => ({ ...prev, [(0, lodash_1.kebabCase)(curr[0])]: curr[1] }), {});
const commandArgs = handlerArgs
? handlerArgs.reduce((p, c, i) => ({ ...p, [c.argument]: args[i] }), {})
: {};
const verbose = (0, utils_1.getBooleanOption)(options[constants_1.OPTION_VERBOSE.longName]);
debug("setting command: %s, options: %s, arguments: %s, verbose: %s", command, JSON.stringify(options), JSON.stringify(commandArgs), verbose);
(0, config_1.set)({ command, options, arguments: commandArgs, verbose });
};
exports.create = create;