verdaccio
Version:
A lightweight private npm proxy registry
85 lines (65 loc) • 7.66 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.printMessage = printMessage;
exports.fillInMsgTemplate = fillInMsgTemplate;
var _util = require("util");
var _kleur = require("kleur");
var _utils = require("../utils");
var _levels = require("./levels");
let LEVEL_VALUE_MAX = 0;
for (const l in _levels.levels) {
if (Object.prototype.hasOwnProperty.call(_levels.levels, l)) {
LEVEL_VALUE_MAX = Math.max(LEVEL_VALUE_MAX, l.length);
}
}
/**
* Apply colors to a string based on level parameters.
* @param {*} type
* @param {*} msg
* @param {*} templateObjects
* @param {*} hasColors
* @return {String}
*/
function printMessage(type, msg, templateObjects, hasColors) {
if (typeof type === 'number') {
type = (0, _levels.calculateLevel)(type);
}
const finalMessage = fillInMsgTemplate(msg, templateObjects, hasColors);
const sub = _levels.subsystems[hasColors ? 0 : 1][templateObjects.sub] || _levels.subsystems[+!hasColors].default;
if (hasColors) {
return ` ${_levels.levels[type]((0, _utils.pad)(type, LEVEL_VALUE_MAX))}${(0, _kleur.white)(`${sub} ${finalMessage}`)}`;
}
return ` ${(0, _utils.pad)(type, LEVEL_VALUE_MAX)}${sub} ${finalMessage}`;
}
function fillInMsgTemplate(msg, obj, colors) {
return msg.replace(/@{(!?[$A-Za-z_][$0-9A-Za-z\._]*)}/g, (_, name) => {
let str = obj;
let is_error;
if (name[0] === '!') {
name = name.substr(1);
is_error = true;
}
const _ref = name.split('.');
for (let _i = 0; _i < _ref.length; _i++) {
const id = _ref[_i];
if ((0, _utils.isObject)(str)) {
// @ts-ignore
str = str[id];
} else {
str = undefined;
}
}
if (typeof str === 'string') {
if (!colors || str.includes('\n')) {
return str;
} else if (is_error) {
return (0, _kleur.red)(str);
}
return (0, _kleur.green)(str);
}
return (0, _util.inspect)(str, undefined, null, colors);
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbG9nZ2VyL2Zvcm1hdHRlci50cyJdLCJuYW1lcyI6WyJMRVZFTF9WQUxVRV9NQVgiLCJsIiwibGV2ZWxzIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiTWF0aCIsIm1heCIsImxlbmd0aCIsInByaW50TWVzc2FnZSIsInR5cGUiLCJtc2ciLCJ0ZW1wbGF0ZU9iamVjdHMiLCJoYXNDb2xvcnMiLCJmaW5hbE1lc3NhZ2UiLCJmaWxsSW5Nc2dUZW1wbGF0ZSIsInN1YiIsInN1YnN5c3RlbXMiLCJkZWZhdWx0Iiwib2JqIiwiY29sb3JzIiwicmVwbGFjZSIsIl8iLCJuYW1lIiwic3RyIiwiaXNfZXJyb3IiLCJzdWJzdHIiLCJfcmVmIiwic3BsaXQiLCJfaSIsImlkIiwidW5kZWZpbmVkIiwiaW5jbHVkZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBRUEsSUFBSUEsZUFBZSxHQUFHLENBQXRCOztBQUNBLEtBQUssTUFBTUMsQ0FBWCxJQUFnQkMsY0FBaEIsRUFBd0I7QUFDdEIsTUFBSUMsTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNKLGNBQXJDLEVBQTZDRCxDQUE3QyxDQUFKLEVBQXFEO0FBQ25ERCxJQUFBQSxlQUFlLEdBQUdPLElBQUksQ0FBQ0MsR0FBTCxDQUFTUixlQUFULEVBQTBCQyxDQUFDLENBQUNRLE1BQTVCLENBQWxCO0FBQ0Q7QUFDRjtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLFNBQVNDLFlBQVQsQ0FBc0JDLElBQXRCLEVBQTRCQyxHQUE1QixFQUFpQ0MsZUFBakMsRUFBa0RDLFNBQWxELEVBQTZEO0FBQ2xFLE1BQUksT0FBT0gsSUFBUCxLQUFnQixRQUFwQixFQUE4QjtBQUM1QkEsSUFBQUEsSUFBSSxHQUFHLDRCQUFlQSxJQUFmLENBQVA7QUFDRDs7QUFFRCxRQUFNSSxZQUFZLEdBQUdDLGlCQUFpQixDQUFDSixHQUFELEVBQU1DLGVBQU4sRUFBdUJDLFNBQXZCLENBQXRDO0FBRUEsUUFBTUcsR0FBRyxHQUFHQyxtQkFBV0osU0FBUyxHQUFHLENBQUgsR0FBTyxDQUEzQixFQUE4QkQsZUFBZSxDQUFDSSxHQUE5QyxLQUFzREMsbUJBQVcsQ0FBQyxDQUFDSixTQUFiLEVBQXdCSyxPQUExRjs7QUFDQSxNQUFJTCxTQUFKLEVBQWU7QUFDYixXQUFRLElBQUdaLGVBQU9TLElBQVAsRUFBYSxnQkFBSUEsSUFBSixFQUFVWCxlQUFWLENBQWIsQ0FBeUMsR0FBRSxrQkFBTyxHQUFFaUIsR0FBSSxJQUFHRixZQUFhLEVBQTdCLENBQWdDLEVBQXRGO0FBQ0Q7O0FBQ0QsU0FBUSxJQUFHLGdCQUFJSixJQUFKLEVBQVVYLGVBQVYsQ0FBMkIsR0FBRWlCLEdBQUksSUFBR0YsWUFBYSxFQUE1RDtBQUNEOztBQUVNLFNBQVNDLGlCQUFULENBQTJCSixHQUEzQixFQUFnQ1EsR0FBaEMsRUFBOENDLE1BQTlDLEVBQThEO0FBQ25FLFNBQU9ULEdBQUcsQ0FBQ1UsT0FBSixDQUFZLG9DQUFaLEVBQWtELENBQUNDLENBQUQsRUFBSUMsSUFBSixLQUFxQjtBQUM1RSxRQUFJQyxHQUFHLEdBQUdMLEdBQVY7QUFDQSxRQUFJTSxRQUFKOztBQUNBLFFBQUlGLElBQUksQ0FBQyxDQUFELENBQUosS0FBWSxHQUFoQixFQUFxQjtBQUNuQkEsTUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUNHLE1BQUwsQ0FBWSxDQUFaLENBQVA7QUFDQUQsTUFBQUEsUUFBUSxHQUFHLElBQVg7QUFDRDs7QUFFRCxVQUFNRSxJQUFJLEdBQUdKLElBQUksQ0FBQ0ssS0FBTCxDQUFXLEdBQVgsQ0FBYjs7QUFDQSxTQUFLLElBQUlDLEVBQUUsR0FBRyxDQUFkLEVBQWlCQSxFQUFFLEdBQUdGLElBQUksQ0FBQ25CLE1BQTNCLEVBQW1DcUIsRUFBRSxFQUFyQyxFQUF5QztBQUN2QyxZQUFNQyxFQUFFLEdBQUdILElBQUksQ0FBQ0UsRUFBRCxDQUFmOztBQUNBLFVBQUkscUJBQVNMLEdBQVQsQ0FBSixFQUFtQjtBQUNqQjtBQUNBQSxRQUFBQSxHQUFHLEdBQUdBLEdBQUcsQ0FBQ00sRUFBRCxDQUFUO0FBQ0QsT0FIRCxNQUdPO0FBQ0xOLFFBQUFBLEdBQUcsR0FBR08sU0FBTjtBQUNEO0FBQ0Y7O0FBRUQsUUFBSSxPQUFPUCxHQUFQLEtBQWUsUUFBbkIsRUFBNkI7QUFDM0IsVUFBSSxDQUFDSixNQUFELElBQVlJLEdBQUQsQ0FBZ0JRLFFBQWhCLENBQXlCLElBQXpCLENBQWYsRUFBK0M7QUFDN0MsZUFBT1IsR0FBUDtBQUNELE9BRkQsTUFFTyxJQUFJQyxRQUFKLEVBQWM7QUFDbkIsZUFBTyxnQkFBSUQsR0FBSixDQUFQO0FBQ0Q7O0FBQ0QsYUFBTyxrQkFBTUEsR0FBTixDQUFQO0FBQ0Q7O0FBQ0QsV0FBTyxtQkFBUUEsR0FBUixFQUFhTyxTQUFiLEVBQXdCLElBQXhCLEVBQThCWCxNQUE5QixDQUFQO0FBQ0QsR0E1Qk0sQ0FBUDtBQTZCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluc3BlY3QgfSBmcm9tICd1dGlsJztcbmltcG9ydCB7IHJlZCwgZ3JlZW4gfSBmcm9tICdrbGV1cic7XG5cbmltcG9ydCB7IHdoaXRlIH0gZnJvbSAna2xldXInO1xuaW1wb3J0IHsgaXNPYmplY3QsIHBhZCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGNhbGN1bGF0ZUxldmVsLCBsZXZlbHMsIHN1YnN5c3RlbXMgfSBmcm9tICcuL2xldmVscyc7XG5cbmxldCBMRVZFTF9WQUxVRV9NQVggPSAwO1xuZm9yIChjb25zdCBsIGluIGxldmVscykge1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGxldmVscywgbCkpIHtcbiAgICBMRVZFTF9WQUxVRV9NQVggPSBNYXRoLm1heChMRVZFTF9WQUxVRV9NQVgsIGwubGVuZ3RoKTtcbiAgfVxufVxuXG4vKipcbiAqIEFwcGx5IGNvbG9ycyB0byBhIHN0cmluZyBiYXNlZCBvbiBsZXZlbCBwYXJhbWV0ZXJzLlxuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0geyp9IG1zZ1xuICogQHBhcmFtIHsqfSB0ZW1wbGF0ZU9iamVjdHNcbiAqIEBwYXJhbSB7Kn0gaGFzQ29sb3JzXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludE1lc3NhZ2UodHlwZSwgbXNnLCB0ZW1wbGF0ZU9iamVjdHMsIGhhc0NvbG9ycykge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgdHlwZSA9IGNhbGN1bGF0ZUxldmVsKHR5cGUpO1xuICB9XG5cbiAgY29uc3QgZmluYWxNZXNzYWdlID0gZmlsbEluTXNnVGVtcGxhdGUobXNnLCB0ZW1wbGF0ZU9iamVjdHMsIGhhc0NvbG9ycyk7XG5cbiAgY29uc3Qgc3ViID0gc3Vic3lzdGVtc1toYXNDb2xvcnMgPyAwIDogMV1bdGVtcGxhdGVPYmplY3RzLnN1Yl0gfHwgc3Vic3lzdGVtc1srIWhhc0NvbG9yc10uZGVmYXVsdDtcbiAgaWYgKGhhc0NvbG9ycykge1xuICAgIHJldHVybiBgICR7bGV2ZWxzW3R5cGVdKHBhZCh0eXBlLCBMRVZFTF9WQUxVRV9NQVgpKX0ke3doaXRlKGAke3N1Yn0gJHtmaW5hbE1lc3NhZ2V9YCl9YDtcbiAgfVxuICByZXR1cm4gYCAke3BhZCh0eXBlLCBMRVZFTF9WQUxVRV9NQVgpfSR7c3VifSAke2ZpbmFsTWVzc2FnZX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsbEluTXNnVGVtcGxhdGUobXNnLCBvYmo6IHVua25vd24sIGNvbG9ycyk6IHN0cmluZyB7XG4gIHJldHVybiBtc2cucmVwbGFjZSgvQHsoIT9bJEEtWmEtel9dWyQwLTlBLVphLXpcXC5fXSopfS9nLCAoXywgbmFtZSk6IHN0cmluZyA9PiB7XG4gICAgbGV0IHN0ciA9IG9iajtcbiAgICBsZXQgaXNfZXJyb3I7XG4gICAgaWYgKG5hbWVbMF0gPT09ICchJykge1xuICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyKDEpO1xuICAgICAgaXNfZXJyb3IgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IF9yZWYgPSBuYW1lLnNwbGl0KCcuJyk7XG4gICAgZm9yIChsZXQgX2kgPSAwOyBfaSA8IF9yZWYubGVuZ3RoOyBfaSsrKSB7XG4gICAgICBjb25zdCBpZCA9IF9yZWZbX2ldO1xuICAgICAgaWYgKGlzT2JqZWN0KHN0cikpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBzdHIgPSBzdHJbaWRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RyID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc3RyID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKCFjb2xvcnMgfHwgKHN0ciBhcyBzdHJpbmcpLmluY2x1ZGVzKCdcXG4nKSkge1xuICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgfSBlbHNlIGlmIChpc19lcnJvcikge1xuICAgICAgICByZXR1cm4gcmVkKHN0cik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZ3JlZW4oc3RyKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3BlY3Qoc3RyLCB1bmRlZmluZWQsIG51bGwsIGNvbG9ycyk7XG4gIH0pO1xufVxuIl19
;