UNPKG

type-r2

Version:

Serializable, validated, and observable data layer for modern JS applications

68 lines 2.75 kB
import { __decorate, __extends } from "tslib"; import { Messenger } from './events'; import { define } from './mixins'; export var isProduction = typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'production', logEvents = isProduction ? ['error', 'info'] : ['error', 'warn', 'debug', 'info', 'log']; export var Logger = (function (_super) { __extends(Logger, _super); function Logger() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.counter = {}; return _this; } Logger.prototype.logToConsole = function (level, filter) { return this.on(level, function (topic, msg, props) { if (!filter || filter.test(topic)) { var args = ["[".concat(topic, "] ").concat(msg)]; for (var name_1 in props) { args.push("\n\t".concat(name_1, ":"), toString(props[name_1])); } console[level].apply(console, args); } }); }; Logger.prototype.throwOn = function (level, filter) { return this.on(level, function (topic, msg, props) { if (!filter || filter.test(topic)) { throw new Error("[".concat(topic, "] ").concat(msg)); } }); }; Logger.prototype.count = function (level, filter) { var _this = this; return this.on(level, function (topic, msg, props) { if (!filter || filter.test(topic)) { _this.counter[level] = (_this.counter[level] || 0) + 1; } }); }; Logger.prototype.on = function (a, b) { return _super.prototype.on.call(this, a, b); }; Logger = __decorate([ define ], Logger); return Logger; }(Messenger)); var toString = typeof window === 'undefined' ? function (something) { if (something && typeof something === 'object') { var __inner_state__ = something.__inner_state__, value = __inner_state__ || something, isArray = Array.isArray(value); var body = isArray ? "[ length = ".concat(value.length, " ]") : "{ ".concat(Object.keys(value).join(', '), " }"); return something.constructor.name + ' ' + body; } return JSON.stringify(something); } : function (x) { return x; }; export var logger = new Logger(); if (typeof console !== 'undefined') { for (var _i = 0, logEvents_1 = logEvents; _i < logEvents_1.length; _i++) { var event_1 = logEvents_1[_i]; logger.logToConsole(event_1); } } export var throwingLogger = new Logger(); throwingLogger.throwOn('error').throwOn('warn'); export var log = logger.trigger.bind(logger); //# sourceMappingURL=logging.js.map