ngx-store
Version:
Angular decorators to automagically keep variables in HTML5 LocalStorage, SessionStorage, cookies; injectable services for managing and listening to data changes and a bit more.
19 lines • 2.96 kB
JavaScript
import { WebStorageService } from './webstorage.service';
import { localStorageUtility } from '../utility/index';
import { Injectable } from '@angular/core';
import { fromEvent, merge } from 'rxjs';
import { filter, map } from 'rxjs/operators';
export class LocalStorageService extends WebStorageService {
constructor() {
super(localStorageUtility);
this._changes =
merge(fromEvent(window, 'storage')
.pipe(filter((event) => event.storageArea === localStorage), map((event) => this.mapNativeEvent(event))), localStorageUtility.changes);
}
}
LocalStorageService.keys = [];
LocalStorageService.decorators = [
{ type: Injectable }
];
LocalStorageService.ctorParameters = () => [];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0b3JlL3NyYy9saWIvc2VydmljZS9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTdDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxpQkFBaUI7SUFHeEQ7UUFDRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUTtZQUNYLEtBQUssQ0FBQyxTQUFTLENBQWtCLE1BQU0sRUFBRSxTQUFTLENBQUM7aUJBQzlDLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQyxFQUN0RSxHQUFHLENBQUMsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzVELEVBQ0gsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7QUFYYSx3QkFBSSxHQUFrQixFQUFFLENBQUM7O1lBRnhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXZWJTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vd2Vic3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IGxvY2FsU3RvcmFnZVV0aWxpdHkgfSBmcm9tICcuLi91dGlsaXR5L2luZGV4JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTmd4U3RvcmFnZUV2ZW50IH0gZnJvbSAnLi4vdXRpbGl0eS9zdG9yYWdlL3N0b3JhZ2UtZXZlbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSBleHRlbmRzIFdlYlN0b3JhZ2VTZXJ2aWNlIHtcbiAgcHVibGljIHN0YXRpYyBrZXlzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIobG9jYWxTdG9yYWdlVXRpbGl0eSk7XG4gICAgdGhpcy5fY2hhbmdlcyA9XG4gICAgICBtZXJnZShmcm9tRXZlbnQ8Tmd4U3RvcmFnZUV2ZW50Pih3aW5kb3csICdzdG9yYWdlJylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoZXZlbnQ6IE5neFN0b3JhZ2VFdmVudCkgPT4gZXZlbnQuc3RvcmFnZUFyZWEgPT09IGxvY2FsU3RvcmFnZSksXG4gICAgICAgICAgICBtYXAoKGV2ZW50OiBOZ3hTdG9yYWdlRXZlbnQpID0+IHRoaXMubWFwTmF0aXZlRXZlbnQoZXZlbnQpKSxcbiAgICAgICAgICApLFxuICAgICAgICBsb2NhbFN0b3JhZ2VVdGlsaXR5LmNoYW5nZXMpO1xuICB9XG59XG4iXX0=