UNPKG

@samwise-tech/browser

Version:

Browser specific utilities for Samwise projects

124 lines 4.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var core_1 = require("@samwise-tech/core"); var di_1 = require("@samwise-tech/di"); var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); var js_console_1 = require("./js-console"); var BrowserLogger = /** @class */ (function (_super) { tslib_1.__extends(BrowserLogger, _super); function BrowserLogger(nativeConsole) { var _this = _super.call(this) || this; _this.nativeConsole = nativeConsole; _this.events$ = new rxjs_1.Subject(); core_1.Bind.to(_this); return _this; } BrowserLogger.prototype.getConsoleEvents = function (allowedLogLevels) { return this.events$.pipe(operators_1.filter(function (_a) { var level = _a.level; return allowedLogLevels.includes(level); })); }; BrowserLogger.prototype.log = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.callMethod.apply(this, [core_1.LogLevel.Log].concat(args)); }; BrowserLogger.prototype.warn = function (warnMsg) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } this.callMethod.apply(this, [core_1.LogLevel.Warn].concat([warnMsg].concat(args))); }; BrowserLogger.prototype.error = function (errMsg) { var error = errMsg instanceof Error ? errMsg : new Error(errMsg); this.callMethod(core_1.LogLevel.Error, error); }; BrowserLogger.prototype.debug = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.callMethod.apply(this, [core_1.LogLevel.Debug].concat(args)); }; BrowserLogger.prototype.info = function (infoMsg) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } this.callMethod.apply(this, [core_1.LogLevel.Info].concat([infoMsg].concat(args))); }; BrowserLogger.prototype.onCatch = function (label) { var _this = this; return function (err) { if (err instanceof Error) { _this.error(err); } else { _this.error(label); _this.debug(label + " Due:", err); } return Promise.reject(err); }; }; BrowserLogger.prototype.callMethod = function (level) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } var _a; if (process.env.NODE_ENV !== 'production') { this.events$.next({ level: level, data: args }); (_a = this.nativeConsole)[level].apply(_a, args); // ( as (...args: any[]) => void) } }; tslib_1.__decorate([ core_1.Bind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Array]), tslib_1.__metadata("design:returntype", rxjs_1.Observable) ], BrowserLogger.prototype, "getConsoleEvents", null); tslib_1.__decorate([ core_1.Bind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", void 0) ], BrowserLogger.prototype, "log", null); tslib_1.__decorate([ core_1.Bind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object, Object]), tslib_1.__metadata("design:returntype", void 0) ], BrowserLogger.prototype, "warn", null); tslib_1.__decorate([ core_1.Bind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", void 0) ], BrowserLogger.prototype, "error", null); tslib_1.__decorate([ core_1.Bind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", void 0) ], BrowserLogger.prototype, "debug", null); tslib_1.__decorate([ core_1.Bind, tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object, Object]), tslib_1.__metadata("design:returntype", void 0) ], BrowserLogger.prototype, "info", null); BrowserLogger = tslib_1.__decorate([ di_1.Injectable(), tslib_1.__param(0, di_1.Inject(js_console_1.JsConsole)), tslib_1.__metadata("design:paramtypes", [Object]) ], BrowserLogger); return BrowserLogger; }(core_1.Logger)); exports.BrowserLogger = BrowserLogger; //# sourceMappingURL=logger.js.map