UNPKG

@sap/cli-core

Version:

Command-Line Interface (CLI) Core Module

23 lines (22 loc) 1.19 kB
"use strict"; 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;