@ngxp/log
Version:
68 lines • 3.05 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var lodash_es_1 = require("lodash-es");
var base_appender_1 = require("../base-appender");
var web_storage_log_config_1 = require("./web-storage-log-config");
var WebStorageLogAppender = /** @class */ (function (_super) {
__extends(WebStorageLogAppender, _super);
function WebStorageLogAppender(webStorageLogConfig) {
var _this = _super.call(this) || this;
_this.config = web_storage_log_config_1.applyDefaultConfig(webStorageLogConfig);
_this.logMessage$.subscribe(function (logMessage) {
_this.handleLogMessage(logMessage);
});
return _this;
}
Object.defineProperty(WebStorageLogAppender.prototype, "storage", {
get: function () {
if (this.config.storageType === web_storage_log_config_1.StorageType.LocalStorage) {
return window.localStorage;
}
if (this.config.storageType === web_storage_log_config_1.StorageType.SessionStorage) {
return window.sessionStorage;
}
throw new Error("Invalid storage type: <" + this.config.storageType + ">");
},
enumerable: true,
configurable: true
});
Object.defineProperty(WebStorageLogAppender.prototype, "logMessages", {
get: function () {
var messages = this.storage.getItem(this.config.storageItemKey);
return lodash_es_1.isNull(messages) ? [] : JSON.parse(messages);
},
set: function (logMessages) {
this.storage.setItem(this.config.storageItemKey, JSON.stringify(logMessages));
},
enumerable: true,
configurable: true
});
WebStorageLogAppender.prototype.handleLogMessage = function (logMessage) {
this.logMessages = __spreadArrays(lodash_es_1.takeRight(this.logMessages, this.config.maxLogSize - 1), [
logMessage
]);
};
return WebStorageLogAppender;
}(base_appender_1.BaseAppender));
exports.WebStorageLogAppender = WebStorageLogAppender;
//# sourceMappingURL=web-storage-log-appender.js.map