UNPKG

ngz-cache-platform-server

Version:
78 lines 7.45 kB
import { isPlatformServer } from '@angular/common'; import { Inject, Injectable, Injector, PLATFORM_ID } from '@angular/core'; import { STORAGE } from 'ngz-cache-core'; export class FsCacheService { constructor(platformId, injector) { this.platformId = platformId; this.injector = injector; if (!isPlatformServer(platformId)) { throw new Error('FsCacheService is not supported outside `server` platform!'); } this.fsStorage = injector.get(STORAGE); } get isEnabled() { if (!isPlatformServer(this.platformId)) { return false; } try { this.fsStorage.setItem('test', 'test'); this.fsStorage.removeItem('test'); return true; } catch (e) { return false; } } get keys() { if (!this.isEnabled) { return undefined; } return this.fsStorage.keys; } setItem(key, value) { if (!this.isEnabled) { return false; } try { this.fsStorage.setItem(key, JSON.stringify(value)); return true; } catch (e) { return false; } } getItem(key) { if (!this.isEnabled) { return undefined; } const value = this.fsStorage.getItem(key); return value ? JSON.parse(value) : undefined; } removeItem(key, wild = false) { if (!this.isEnabled) { return; } this.fsStorage.removeItem(key); if (wild) { for (const item of this.keys) { if (item.indexOf(key) === 0) { this.fsStorage.removeItem(item); } } } } clear() { if (!this.isEnabled) { return; } this.fsStorage.clear(); } } FsCacheService.decorators = [ { type: Injectable } ]; FsCacheService.ctorParameters = () => [ { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }, { type: Injector } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL25nei1jYWNoZS9wbGF0Zm9ybS1zZXJ2ZXIvc3JjL2ZzLWNhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQXFCLE9BQU8sRUFBVyxNQUFNLGdCQUFnQixDQUFDO0FBR3JFLE1BQU0sT0FBTyxjQUFjO0lBa0J6QixZQUFrRCxVQUFlLEVBQW1CLFFBQWtCO1FBQXBELGVBQVUsR0FBVixVQUFVLENBQUs7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1NBQy9FO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFyQkQsSUFBWSxTQUFTO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUk7WUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFbEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFVRCxJQUFJLElBQUk7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBaUI7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUk7WUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBRW5ELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUxQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVyxFQUFFLElBQUksR0FBRyxLQUFLO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLElBQUksSUFBSSxFQUFFO1lBQ1IsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDakM7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7OztZQWpGRixVQUFVOzs7NENBbUJJLE1BQU0sU0FBQyxXQUFXO1lBdEJKLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWNoZSwgQ2FjaGVWYWx1ZSwgU1RPUkFHRSwgU3RvcmFnZSB9IGZyb20gJ25nei1jYWNoZS1jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZzQ2FjaGVTZXJ2aWNlIGltcGxlbWVudHMgQ2FjaGUge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZnNTdG9yYWdlOiBTdG9yYWdlO1xuXG4gIHByaXZhdGUgZ2V0IGlzRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmZzU3RvcmFnZS5zZXRJdGVtKCd0ZXN0JywgJ3Rlc3QnKTtcbiAgICAgIHRoaXMuZnNTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rlc3QnKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZDogYW55LCBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIGlmICghaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGc0NhY2hlU2VydmljZSBpcyBub3Qgc3VwcG9ydGVkIG91dHNpZGUgYHNlcnZlcmAgcGxhdGZvcm0hJyk7XG4gICAgfVxuXG4gICAgdGhpcy5mc1N0b3JhZ2UgPSBpbmplY3Rvci5nZXQoU1RPUkFHRSk7XG4gIH1cblxuICBnZXQga2V5cygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZzU3RvcmFnZS5rZXlzO1xuICB9XG5cbiAgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IENhY2hlVmFsdWUpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuZnNTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0SXRlbShrZXk6IHN0cmluZyk6IENhY2hlVmFsdWUge1xuICAgIGlmICghdGhpcy5pc0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZzU3RvcmFnZS5nZXRJdGVtKGtleSk7XG5cbiAgICByZXR1cm4gdmFsdWUgPyBKU09OLnBhcnNlKHZhbHVlKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcsIHdpbGQgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0VuYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZzU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG5cbiAgICBpZiAod2lsZCkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMua2V5cykge1xuICAgICAgICBpZiAoaXRlbS5pbmRleE9mKGtleSkgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmZzU3RvcmFnZS5yZW1vdmVJdGVtKGl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZnNTdG9yYWdlLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==