@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
40 lines • 5.17 kB
JavaScript
import { LogPublisher } from './log-publisher';
export class LocalStorageLogPublisher extends LogPublisher {
static DEFAULT_KEY = 'application-log';
constructor(publisherService, logKey) {
super(publisherService);
this.location = !logKey ? LocalStorageLogPublisher.DEFAULT_KEY : logKey;
}
clear() {
localStorage.removeItem(this.location);
}
log(entry) {
if (!entry) {
return;
}
const logString = localStorage.getItem(this.location);
let log;
if (!logString) {
log = [];
}
else {
log = JSON.parse(logString);
}
log.push(entry);
try {
localStorage.setItem(this.location, JSON.stringify(log));
}
catch (e) {
const deleted = log.splice(0, 1)[0];
console.debug('Log entry from ' + deleted.date.toISOString() + ' was deleted from the LocalStorage \'' + this.location + '\'');
try {
localStorage.setItem(this.location, JSON.stringify(log));
}
catch (ex) {
console.error(ex);
throw new Error(ex.message);
}
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS1sb2ctcHVibGlzaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9sb2dnZXIvcHVibGlzaGVycy9sb2NhbC1zdG9yYWdlLWxvZy1wdWJsaXNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSTdDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxZQUFZO0lBRS9DLE1BQU0sQ0FBVSxXQUFXLEdBQUcsaUJBQWlCLENBQUM7SUFFdkQsWUFBWSxnQkFBcUMsRUFBRSxNQUFlO1FBQzlELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVFLENBQUM7SUFFRCxLQUFLO1FBQ0QsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFlO1FBQ2YsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU87U0FDVjtRQUNELE1BQU0sU0FBUyxHQUFXLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELElBQUksR0FBb0IsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ1osR0FBRyxHQUFHLEVBQUUsQ0FBQztTQUNaO2FBQU07WUFDSCxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMvQjtRQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsSUFBSTtZQUNBLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLE1BQU0sT0FBTyxHQUFhLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyx1Q0FBdUMsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQy9ILElBQUk7Z0JBQ0EsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1RDtZQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQy9CO1NBQ0o7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2dQdWJsaXNoZXJ9IGZyb20gJy4vbG9nLXB1Ymxpc2hlcic7XG5pbXBvcnQge0xvZ0VudHJ5fSBmcm9tICcuLi9tb2RlbHMvbG9nLWVudHJ5JztcbmltcG9ydCB7TG9nUHVibGlzaGVyU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvbG9nLXB1Ymxpc2hlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZUxvZ1B1Ymxpc2hlciBleHRlbmRzIExvZ1B1Ymxpc2hlciB7XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfS0VZID0gJ2FwcGxpY2F0aW9uLWxvZyc7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaXNoZXJTZXJ2aWNlOiBMb2dQdWJsaXNoZXJTZXJ2aWNlLCBsb2dLZXk/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocHVibGlzaGVyU2VydmljZSk7XG4gICAgICAgIHRoaXMubG9jYXRpb24gPSAhbG9nS2V5ID8gTG9jYWxTdG9yYWdlTG9nUHVibGlzaGVyLkRFRkFVTFRfS0VZIDogbG9nS2V5O1xuICAgIH1cblxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmxvY2F0aW9uKTtcbiAgICB9XG5cbiAgICBsb2coZW50cnk6IExvZ0VudHJ5KTogdm9pZCB7XG4gICAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsb2dTdHJpbmc6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYXRpb24pO1xuICAgICAgICBsZXQgbG9nOiBBcnJheTxMb2dFbnRyeT47XG4gICAgICAgIGlmICghbG9nU3RyaW5nKSB7XG4gICAgICAgICAgICBsb2cgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZyA9IEpTT04ucGFyc2UobG9nU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBsb2cucHVzaChlbnRyeSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2F0aW9uLCBKU09OLnN0cmluZ2lmeShsb2cpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc3QgZGVsZXRlZDogTG9nRW50cnkgPSBsb2cuc3BsaWNlKDAsIDEpWzBdO1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnTG9nIGVudHJ5IGZyb20gJyArIGRlbGV0ZWQuZGF0ZS50b0lTT1N0cmluZygpICsgJyB3YXMgZGVsZXRlZCBmcm9tIHRoZSBMb2NhbFN0b3JhZ2UgXFwnJyArIHRoaXMubG9jYXRpb24gKyAnXFwnJyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYXRpb24sIEpTT04uc3RyaW5naWZ5KGxvZykpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXgubWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==