UNPKG

@dotgov/core

Version:

DGS core.

60 lines 6.26 kB
import { EventEmitter, Injectable } from '@angular/core'; export class StorageService { constructor() { this._storage = {}; this._inProgress = {}; } get(key) { return this._storage[key]; } set(key, value) { this._storage[key] = value; } remove(key, taskId) { const found = this._storage[key]; if (taskId && found && Array.isArray(found)) { const index = found.findIndex(f => f.taskId === taskId); if (index > -1) { found.splice(index, 1); if (found.length > 0) { this._storage[key] = found; return; } } else { return found; } } delete this._storage[key]; } removeMatched(match) { Object.keys(this._storage).forEach(key => { if (key.indexOf(match) !== -1) { this.remove(key); } }); Object.keys(this._inProgress).forEach(key => { if (key.indexOf(match) !== -1) { this.deleteProgress(key); } }); } clearCache() { this._inProgress = {}; this._storage = {}; } getProgress(key) { return this._inProgress[key]; } deleteProgress(key) { delete this._inProgress[key]; } setProgress(key) { this._inProgress[key] = new EventEmitter(); } } StorageService.decorators = [ { type: Injectable } ]; StorageService.ctorParameters = () => []; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsTUFBTSxPQUFPLGNBQWM7SUFJekI7UUFIUSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO0lBRWxCLENBQUM7SUFFaEIsR0FBRyxDQUFDLEdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxNQUFPO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDeEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO29CQUMzQixPQUFPO2lCQUNSO2FBQ0Y7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFUyxXQUFXLENBQUMsR0FBVztRQUMvQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVTLGNBQWMsQ0FBQyxHQUFXO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVMsV0FBVyxDQUFDLEdBQVc7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xELENBQUM7OztZQTVERixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfc3RvcmFnZTogT2JqZWN0ID0ge307XHJcbiAgcHJpdmF0ZSBfaW5Qcm9ncmVzczogT2JqZWN0ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgZ2V0KGtleTogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zdG9yYWdlW2tleV07XHJcbiAgfVxyXG5cclxuICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX3N0b3JhZ2Vba2V5XSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGtleTogc3RyaW5nLCB0YXNrSWQ/KSB7XHJcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuX3N0b3JhZ2Vba2V5XTtcclxuICAgIGlmICh0YXNrSWQgJiYgZm91bmQgJiYgQXJyYXkuaXNBcnJheShmb3VuZCkpIHtcclxuICAgICAgY29uc3QgaW5kZXggPSBmb3VuZC5maW5kSW5kZXgoZiA9PiBmLnRhc2tJZCA9PT0gdGFza0lkKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICBmb3VuZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIGlmIChmb3VuZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLl9zdG9yYWdlW2tleV0gPSBmb3VuZDtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkZWxldGUgdGhpcy5fc3RvcmFnZVtrZXldO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTWF0Y2hlZChtYXRjaDogc3RyaW5nKSB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLl9zdG9yYWdlKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGlmIChrZXkuaW5kZXhPZihtYXRjaCkgIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLl9pblByb2dyZXNzKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGlmIChrZXkuaW5kZXhPZihtYXRjaCkgIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVQcm9ncmVzcyhrZXkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUoKSB7XHJcbiAgICB0aGlzLl9pblByb2dyZXNzID0ge307XHJcbiAgICB0aGlzLl9zdG9yYWdlID0ge307XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0UHJvZ3Jlc3Moa2V5OiBzdHJpbmcpOiBFdmVudEVtaXR0ZXI8YW55PiB8IHVuZGVmaW5lZCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luUHJvZ3Jlc3Nba2V5XTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBkZWxldGVQcm9ncmVzcyhrZXk6IHN0cmluZykge1xyXG4gICAgZGVsZXRlIHRoaXMuX2luUHJvZ3Jlc3Nba2V5XTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXRQcm9ncmVzcyhrZXk6IHN0cmluZykge1xyXG4gICAgdGhpcy5faW5Qcm9ncmVzc1trZXldID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==