ngx-webstorage
Version:
### Local and session storage - Angular service This library provides an easy to use service to manage the web storages (local and session) from your Angular application. It provides also two decorators to synchronize the component attributes and the web
45 lines • 6.07 kB
JavaScript
import { BaseSyncStorageStrategy } from './baseSyncStorage';
import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
import { LOCAL_STORAGE } from '../core/nativeStorage';
import { StorageStrategies } from '../constants/strategy';
import { isPlatformBrowser } from '@angular/common';
import * as i0 from "@angular/core";
import * as i1 from "../core/strategyCache";
class LocalStorageStrategy extends BaseSyncStorageStrategy {
static { this.strategyName = StorageStrategies.Local; }
constructor(storage, cache, platformId, zone) {
super(storage, cache);
this.storage = storage;
this.cache = cache;
this.platformId = platformId;
this.zone = zone;
this.name = LocalStorageStrategy.strategyName;
if (isPlatformBrowser(this.platformId))
this.listenExternalChanges();
}
listenExternalChanges() {
window.addEventListener('storage', (event) => this.zone.run(() => {
if (event.storageArea !== this.storage)
return;
const key = event.key;
if (key !== null)
this.cache.del(this.name, event.key);
else
this.cache.clear(this.name);
this.keyChanges.next(key);
}));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LocalStorageStrategy, deps: [{ token: LOCAL_STORAGE }, { token: i1.StrategyCacheService }, { token: PLATFORM_ID }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LocalStorageStrategy }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LocalStorageStrategy, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: undefined, decorators: [{
type: Inject,
args: [LOCAL_STORAGE]
}] }, { type: i1.StrategyCacheService }, { type: undefined, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }, { type: i0.NgZone }] });
export { LocalStorageStrategy };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXdlYnN0b3JhZ2Uvc3JjL2xpYi9zdHJhdGVnaWVzL2xvY2FsU3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBVSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7QUFHbEQsTUFDTSxvQkFBcUIsU0FBUSx1QkFBdUI7YUFDekMsaUJBQVksR0FBVyxpQkFBaUIsQ0FBQyxLQUFLLEFBQWxDLENBQW1DO0lBRy9ELFlBQTZDLE9BQW1CLEVBQ25ELEtBQTJCLEVBQ04sVUFBZSxFQUNwQyxJQUFZO1FBQ3hCLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFKc0IsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuRCxVQUFLLEdBQUwsS0FBSyxDQUFzQjtRQUNOLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUxoQixTQUFJLEdBQVcsb0JBQW9CLENBQUMsWUFBWSxDQUFDO1FBT3pELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFUyxxQkFBcUI7UUFDOUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUM5RSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTztZQUMvQyxNQUFNLEdBQUcsR0FBVyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzlCLElBQUksR0FBRyxLQUFLLElBQUk7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7O2dCQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBcEJJLG9CQUFvQixrQkFJTCxhQUFhLGlEQUV0QixXQUFXO2tIQU5qQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRHpCLFVBQVU7OzBCQUtHLE1BQU07MkJBQUMsYUFBYTs7MEJBRTdCLE1BQU07MkJBQUMsV0FBVzs7QUFrQnZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdHJhdGVneUNhY2hlU2VydmljZX0gZnJvbSAnLi4vY29yZS9zdHJhdGVneUNhY2hlJztcbmltcG9ydCB7QmFzZVN5bmNTdG9yYWdlU3RyYXRlZ3l9IGZyb20gJy4vYmFzZVN5bmNTdG9yYWdlJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBOZ1pvbmUsIFBMQVRGT1JNX0lEfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TE9DQUxfU1RPUkFHRX0gZnJvbSAnLi4vY29yZS9uYXRpdmVTdG9yYWdlJztcbmltcG9ydCB7U3RvcmFnZVN0cmF0ZWdpZXN9IGZyb20gJy4uL2NvbnN0YW50cy9zdHJhdGVneSc7XG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtXZWJTdG9yYWdlfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMvd2ViU3RvcmFnZSc7XG5cbkBJbmplY3RhYmxlKClcbmNsYXNzIExvY2FsU3RvcmFnZVN0cmF0ZWd5IGV4dGVuZHMgQmFzZVN5bmNTdG9yYWdlU3RyYXRlZ3kge1xuXHRzdGF0aWMgcmVhZG9ubHkgc3RyYXRlZ3lOYW1lOiBzdHJpbmcgPSBTdG9yYWdlU3RyYXRlZ2llcy5Mb2NhbDtcblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nID0gTG9jYWxTdG9yYWdlU3RyYXRlZ3kuc3RyYXRlZ3lOYW1lO1xuXG5cdGNvbnN0cnVjdG9yKEBJbmplY3QoTE9DQUxfU1RPUkFHRSkgcHJvdGVjdGVkIHN0b3JhZ2U6IFdlYlN0b3JhZ2UsXG5cdFx0XHRcdHByb3RlY3RlZCBjYWNoZTogU3RyYXRlZ3lDYWNoZVNlcnZpY2UsXG5cdFx0XHRcdEBJbmplY3QoUExBVEZPUk1fSUQpIHByb3RlY3RlZCBwbGF0Zm9ybUlkOiBhbnksXG5cdFx0XHRcdHByb3RlY3RlZCB6b25lOiBOZ1pvbmUpIHtcblx0XHRzdXBlcihzdG9yYWdlLCBjYWNoZSk7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHRoaXMubGlzdGVuRXh0ZXJuYWxDaGFuZ2VzKCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgbGlzdGVuRXh0ZXJuYWxDaGFuZ2VzKCkge1xuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgKGV2ZW50OiBTdG9yYWdlRXZlbnQpID0+IHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuXHRcdFx0aWYgKGV2ZW50LnN0b3JhZ2VBcmVhICE9PSB0aGlzLnN0b3JhZ2UpIHJldHVybjtcblx0XHRcdGNvbnN0IGtleTogc3RyaW5nID0gZXZlbnQua2V5O1xuXHRcdFx0aWYgKGtleSAhPT0gbnVsbCkgdGhpcy5jYWNoZS5kZWwodGhpcy5uYW1lLCBldmVudC5rZXkpO1xuXHRcdFx0ZWxzZSB0aGlzLmNhY2hlLmNsZWFyKHRoaXMubmFtZSk7XG5cdFx0XHR0aGlzLmtleUNoYW5nZXMubmV4dChrZXkpO1xuXHRcdH0pKTtcblx0fVxuXG59XG5cbmV4cG9ydCB7TG9jYWxTdG9yYWdlU3RyYXRlZ3l9O1xuIl19