@wpk-cli/cli
Version:
an unofficial CLI for webpack
101 lines (75 loc) • 2.29 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _isString = _interopRequireDefault(require("lodash/isString"));
var _isArray = _interopRequireDefault(require("lodash/isArray"));
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
var _logger = _interopRequireDefault(require("@wpk-cli/logger"));
var _assign = _interopRequireDefault(require("lodash/assign"));
var _cliClear = _interopRequireDefault(require("cli-clear"));
var _utilities = require("@wpk-cli/utilities");
let initialised = false;
const globals = global.wpk = {
log: _logger.default,
clear() {},
logExitDebugs() {},
exit(code) {
_logger.default.intercept.restore();
globals.logExitDebugs();
const shouldExit = process.env.__WPK_TEST__DISABLE_PROCESS_EXIT;
if (!shouldExit || shouldExit === "false") {
process.exit(code);
}
},
try(what, fn, report = false) {
if ((0, _isString.default)(what)) {
what = [what];
} else if (!(0, _isArray.default)(what)) {
throw new Error("expecting what to be array or string");
}
if (!(0, _isFunction.default)(fn)) {
throw new Error("expecting fn to be function");
}
what[0] = "failed " + what;
try {
return fn();
} catch (err) {
(0, _utilities.printError)(err, what, report);
globals.exit(1);
}
},
initialise:
/* istanbul ignore next */
function initialise({
program,
command,
cmd,
info
}) {
if (initialised) {
throw new Error("tried to initialise global.wpk twice");
}
initialised = true;
(0, _assign.default)(this, {
commandInfo: info,
startedAt: Date.now(),
help: program.help.bind(program),
clear() {
(0, _cliClear.default)();
(0, _logger.default)(globals.commandInfo);
},
logExitDebugs() {
if (cmd.wpkDebug) {
const endedAt = Date.now();
_logger.default.debug("command finished");
_logger.default.debug("run time:", (endedAt - globals.startedAt) / 1000, "seconds");
}
}
});
}
};
var _default = globals;
exports.default = _default;
;