@gaopeng123/utils.log
Version:
console print beautification
101 lines (98 loc) • 3.42 kB
JavaScript
import { isObject, isString, isNumber } from '@gaopeng123/utils.types';
/**********************************************************************
*
* @模块名称: log
*
* @模块作用: log
*
* @创建人: pgli
*
* @date: 2023/9/7 1:52 下午
*
* @版权所有: pgli
*
**********************************************************************/
var COLOR_TYPE = ['info', 'log', 'warn', 'error', 'success'];
var COLORS = {
info: '#bfbfbf',
log: '#1677ff',
warn: '#fa8c16',
error: "#f5222d",
success: '#52c41a'
};
var getColor = function getColor(type) {
return COLORS[type];
};
/**
* 创建log的type
* @param fn
*/
var createLogTypesFactory = function createLogTypesFactory(fn) {
return COLOR_TYPE.reduce(function (logs, type) {
logs[type] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return fn.apply(void 0, [type].concat(args));
};
return logs;
}, {});
};
/**
* 带标记的打印
*/
var consoleTag = /*#__PURE__*/createLogTypesFactory(function (type, ns, msg) {
var _console;
var color = getColor(type);
var hasTwoTags = isString(msg) || isNumber(msg);
for (var _len2 = arguments.length, args = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {
args[_key2 - 3] = arguments[_key2];
}
var logArgs = ["%c " + ns + " " + (hasTwoTags ? '%c ' + msg : '') + " %c " + (args.length ? '%o' : '')];
if (hasTwoTags) {
logArgs.push("background:" + color + ";border:1px solid " + color + "; padding: 1px; border-radius: 4px 0 0 4px; color: #fff;");
logArgs.push("border:1px solid " + color + "; padding: 1px; border-radius: 0 4px 4px 0; color: " + color + ";");
logArgs.push('background:transparent');
} else {
logArgs.push("background:" + color + ";border:1px solid " + color + "; padding: 1px; border-radius: 4px; color: #fff;");
logArgs.push('background:transparent');
logArgs.push(msg);
}
(_console = console).log.apply(_console, logArgs.concat(args));
});
/**
* 修改字符串颜色
*/
var consoleStr = /*#__PURE__*/createLogTypesFactory(function (type, msg) {
var _console2;
var color = getColor(type);
for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
args[_key3 - 2] = arguments[_key3];
}
(_console2 = console).log.apply(_console2, ["%c " + msg + " " + (args.length ? '%o' : ''), "color: " + color + ";"].concat(args));
});
/**
* 修改打印背景
*/
var consoleBg = /*#__PURE__*/createLogTypesFactory(function (type, msg) {
var _console3;
var color = getColor(type);
for (var _len4 = arguments.length, args = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
args[_key4 - 2] = arguments[_key4];
}
(_console3 = console).log.apply(_console3, ["%c " + msg + " " + (args.length ? '%o' : ''), "background:" + color + "; padding: 2px; border-radius: 4px; color: #fff;"].concat(args));
});
/**
* 对外报漏修改入口
* @param obj
* @param myColors
*/
var createConsoleFactory = function createConsoleFactory(obj, myColors) {
Object.assign(COLORS, myColors);
if (isObject(obj)) {
obj.bg = consoleBg;
obj.str = consoleStr;
obj.tag = consoleTag;
}
};
export { consoleBg, consoleStr, consoleTag, createConsoleFactory };