@morjs/runtime-base
Version:
mor runtime base
85 lines • 2.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = void 0;
var tslib_1 = require("tslib");
var PREFIX = '[mor]';
function warn() {
var msgs = [];
for (var _i = 0; _i < arguments.length; _i++) {
msgs[_i] = arguments[_i];
}
console.warn && console.warn.apply(console, tslib_1.__spreadArray([PREFIX], msgs, false));
}
function log() {
var msgs = [];
for (var _i = 0; _i < arguments.length; _i++) {
msgs[_i] = arguments[_i];
}
console.log && console.log.apply(console, tslib_1.__spreadArray([PREFIX], msgs, false));
}
function error() {
var msgs = [];
for (var _i = 0; _i < arguments.length; _i++) {
msgs[_i] = arguments[_i];
}
console.error && console.error.apply(console, tslib_1.__spreadArray([PREFIX], msgs, false));
}
function info() {
var msgs = [];
for (var _i = 0; _i < arguments.length; _i++) {
msgs[_i] = arguments[_i];
}
console.info && console.info.apply(console, tslib_1.__spreadArray([PREFIX], msgs, false));
}
function debug() {
var msgs = [];
for (var _i = 0; _i < arguments.length; _i++) {
msgs[_i] = arguments[_i];
}
console.debug && console.debug.apply(console, tslib_1.__spreadArray([PREFIX], msgs, false));
}
function deprecated(msg, fn) {
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
warn(msg);
return fn.apply(void 0, args);
};
}
var PERFORMANCE_TIMERS = {};
/**
* 记录时间开始
* @param label 标签
*/
function time(label) {
PERFORMANCE_TIMERS[label] = +new Date();
}
/**
* 记录时间结束并输出耗时
* 大于 50ms 时会输出 warn
* @param label 标签
*/
function timeEnd(label) {
var start = PERFORMANCE_TIMERS[label];
if (start) {
delete PERFORMANCE_TIMERS[label];
var millis = Date.now() - start;
var msg = "".concat(label, " \u8017\u65F6: ").concat(millis, "ms");
// 超过 50 ms
// 输出警告
millis > 50 ? warn(msg) : debug(msg);
}
}
exports.logger = {
warn: warn,
log: log,
error: error,
info: info,
debug: debug,
deprecated: deprecated,
time: time,
timeEnd: timeEnd
};
//# sourceMappingURL=logger.js.map