@samwise-tech/browser
Version:
Browser specific utilities for Samwise projects
124 lines • 4.94 kB
JavaScript
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
;