systelab-preferences
Version:
Library to manage your application preferences.
1 lines • 18.1 kB
Source Map (JSON)
{"version":3,"file":"systelab-preferences.mjs","sources":["../../../projects/systelab-preferences/src/lib/storage.service.ts","../../../projects/systelab-preferences/src/lib/local-storage.service.ts","../../../projects/systelab-preferences/src/lib/memory-storage.service.ts","../../../projects/systelab-preferences/src/lib/session-storage.service.ts","../../../projects/systelab-preferences/src/lib/preferences.service.ts","../../../projects/systelab-preferences/src/lib/systelab-preferences.module.ts","../../../projects/systelab-preferences/src/public-api.ts","../../../projects/systelab-preferences/src/systelab-preferences.ts"],"sourcesContent":["export class StorageService {\n\n\tprotected prefix = 'Systelab';\n\n\tconstructor(private storage: Storage) {\n\t}\n\n\tpublic usePrefix(prefix: string): void {\n\t\tthis.prefix = prefix;\n\t}\n\n\tpublic getPrefix(): string {\n\t\treturn this.prefix;\n\t}\n\n\tpublic clear(): void {\n\t\tthis.storage.clear();\n\t}\n\n\tpublic put(key: string, value: any): void {\n\t\tthis.storage.setItem(this.prefix + '.' + key, JSON.stringify(value));\n\t}\n\n\tpublic get(key: string, defaultValue?: any): any {\n\n\t\tconst value = this.parse(this.storage.getItem(this.prefix + '.' + key) || 'null') || null;\n\t\treturn value ? value : defaultValue;\n\t}\n\n\tpublic remove(key: string): void {\n\t\tthis.storage.removeItem(this.prefix + '.' + key);\n\t}\n\n\tpublic removeStartsWith(startWith: string): void {\n\t\tfor (let i = this.storage.length - 1; i >= 0; i--) {\n\t\t\tif (this.storage.key(i).startsWith(this.prefix + '.' +startWith)) {\n\t\t\t\tthis.storage.removeItem(this.storage.key(i));\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic removeEndsWith(endsWith: string): void {\n\t\tfor (let i = this.storage.length - 1; i >= 0; i--) {\n\t\t\tif (this.storage.key(i).endsWith(endsWith)) {\n\t\t\t\tthis.storage.removeItem(this.storage.key(i));\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate parse(text: string): any {\n\t\ttry {\n\t\t\treturn JSON.parse(text) || null;\n\t\t} catch (e) {\n\t\t\treturn text;\n\t\t}\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { StorageService } from './storage.service';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class LocalStorageService extends StorageService {\n\tconstructor() {\n\t\tsuper(localStorage);\n\t}\n}\n","import { Injectable } from '@angular/core';\n\ndeclare var pako: any;\nconst compressor: any = pako;\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class MemoryStorageService {\n\n\tprivate preferences = new Map<string, Object>();\n\n\tpublic clear(): void {\n\t\tthis.preferences.clear();\n\t}\n\n\tpublic put(key: string, value: any): void {\n\t\tthis.preferences.set(key, value);\n\t}\n\n\tpublic get(key: string, defaultValue?: any): any {\n\t\tconst value = this.preferences.get(key);\n\t\tif (value === undefined || value === null) {\n\t\t\tif (defaultValue === undefined || defaultValue === null) {\n\t\t\t\treturn value;\n\t\t\t} else {\n\t\t\t\treturn defaultValue;\n\t\t\t}\n\t\t} else {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tpublic remove(key: string): void {\n\t\tthis.preferences.delete(key);\n\t}\n\n\tpublic removeStartsWith(startWith: string): void {\n\t\tthis.preferences.forEach((value: Object, key: string) => {\n\t\t\tif (key.startsWith(startWith)) {\n\t\t\t\tthis.remove(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic removeEndsWith(endsWith: string): void {\n\t\tthis.preferences.forEach((value: Object, key: string) => {\n\t\t\tif (key.endsWith(endsWith)) {\n\t\t\t\tthis.remove(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getInCompressFormat(): string {\n\t\tconst compressed = compressor.deflate(this.getInStringFormat()); // Uint8Array\n\t\tconst binaryString = String.fromCharCode(...compressed);\n\t\treturn btoa(binaryString);\n\t}\n\n\tpublic getInStringFormat(): string {\n\t\tconst passToServer: any = {};\n\t\tthis.preferences.forEach((value, key) => passToServer[key] = value);\n\t\treturn JSON.stringify(passToServer);\n\t}\n\n\tpublic putFromCompressFormat(compressed: any) {\n\t\tthis.clear();\n\t\t// Do your best\n\t\ttry {\n\t\t\tconst binaryString = atob(compressed);\n\t\t\tconst byteArray = Uint8Array.from(binaryString, c => c.charCodeAt(0));\n\t\t\tconst result = compressor.inflate(byteArray, { to: 'string' });\n\t\t\tconst parsed = JSON.parse(result);\n\t\t\tObject.keys(parsed).forEach(key => this.preferences.set(key, parsed[key]));\n\t\t} catch (ex) {\n\t\t}\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { StorageService } from './storage.service';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SessionStorageService extends StorageService {\n\tconstructor() {\n\t\tsuper(sessionStorage);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { MemoryStorageService } from './memory-storage.service';\nimport { SessionStorageService } from './session-storage.service';\nimport { LocalStorageService } from './local-storage.service';\n\nexport enum StorageType {\n\tIN_MEMORY_STORAGE = 1,\n\tLOCAL_STORAGE = 2,\n\tSESSION_STORAGE = 3\n}\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class PreferencesService {\n\n\tprivate storage = StorageType.IN_MEMORY_STORAGE;\n\n\tpublic constructor(public memoryService: MemoryStorageService, public localService: LocalStorageService, public sessionService: SessionStorageService) {\n\t}\n\n\tpublic setStorage(storage: StorageType): void {\n\t\t\tthis.storage = storage;\n\t}\n\n\tpublic getStorage(): number {\n\t\treturn this.storage;\n\t}\n\n\tpublic usePrefix(prefix: string): void {\n\t\tif (this.storage === StorageType.LOCAL_STORAGE) {\n\t\t\tthis.localService.usePrefix(prefix);\n\t\t} else if (this.storage === StorageType.SESSION_STORAGE) {\n\t\t\tthis.sessionService.usePrefix(prefix);\n\t\t} else {\n\t\t\tconsole.error('You can not set a prefix for In-memory preferences');\n\t\t}\n\t}\n\n\tpublic getPrefix(): string {\n\t\tif (this.storage === StorageType.LOCAL_STORAGE) {\n\t\t\treturn this.localService.getPrefix();\n\t\t} else if (this.storage === StorageType.SESSION_STORAGE) {\n\t\t\treturn this.sessionService.getPrefix();\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\tpublic clear(): void {\n\t\tif (this.storage === StorageType.IN_MEMORY_STORAGE) {\n\t\t\tthis.memoryService.clear();\n\t\t} else if (this.storage === StorageType.LOCAL_STORAGE) {\n\t\t\tthis.localService.clear();\n\t\t} else {\n\t\t\tthis.sessionService.clear();\n\t\t}\n\t}\n\n\tpublic put(key: string, value: any): void {\n\t\tif (this.storage === StorageType.IN_MEMORY_STORAGE) {\n\t\t\tthis.memoryService.put(key, value);\n\t\t} else if (this.storage === StorageType.LOCAL_STORAGE) {\n\t\t\tthis.localService.put(key, value);\n\t\t} else {\n\t\t\tthis.sessionService.put(key, value);\n\t\t}\n\t}\n\n\tpublic get(key: string, defaultValue?: any): any {\n\t\tif (this.storage === StorageType.IN_MEMORY_STORAGE) {\n\t\t\treturn this.memoryService.get(key, defaultValue);\n\t\t} else if (this.storage === StorageType.LOCAL_STORAGE) {\n\t\t\treturn this.localService.get(key, defaultValue);\n\t\t} else {\n\t\t\treturn this.sessionService.get(key, defaultValue);\n\t\t}\n\t}\n\n\tpublic remove(key: string): void {\n\t\tif (this.storage === StorageType.IN_MEMORY_STORAGE) {\n\t\t\tthis.memoryService.remove(key);\n\t\t} else if (this.storage === StorageType.LOCAL_STORAGE) {\n\t\t\tthis.localService.remove(key);\n\t\t} else {\n\t\t\tthis.sessionService.remove(key);\n\t\t}\n\t}\n\n\tpublic removeStartsWith(startWith: string): void {\n\t\tif (this.storage === StorageType.IN_MEMORY_STORAGE) {\n\t\t\tthis.memoryService.removeStartsWith(startWith);\n\t\t} else if (this.storage === StorageType.LOCAL_STORAGE) {\n\t\t\tthis.localService.removeStartsWith(startWith);\n\t\t} else {\n\t\t\tthis.sessionService.removeStartsWith(startWith);\n\t\t}\n\t}\n\n\tpublic removeEndsWith(endsWith: string): void {\n\t\tif (this.storage === StorageType.IN_MEMORY_STORAGE) {\n\t\t\tthis.memoryService.removeEndsWith(endsWith);\n\t\t} else if (this.storage === StorageType.LOCAL_STORAGE) {\n\t\t\tthis.localService.removeEndsWith(endsWith);\n\t\t} else {\n\t\t\tthis.sessionService.removeEndsWith(endsWith);\n\t\t}\n\t}\n\n\tpublic getInStringFormat(): string {\n\t\tif (this.storage === StorageType.IN_MEMORY_STORAGE) {\n\t\t\treturn this.memoryService.getInStringFormat();\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tpublic getInCompressFormat(): any {\n\t\tif (this.storage === StorageType.IN_MEMORY_STORAGE) {\n\t\t\treturn this.memoryService.getInCompressFormat();\n\t\t} else {\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tpublic putFromCompressFormat(compressed: any): void {\n\t\tif (this.storage === StorageType.IN_MEMORY_STORAGE) {\n\t\t\tthis.memoryService.putFromCompressFormat(compressed);\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({})\nexport class SystelabPreferencesModule {\n}\n","/*\n * Public API Surface of systelab-preferences\n */\n\nexport * from './lib/local-storage.service';\nexport * from './lib/memory-storage.service';\nexport * from './lib/session-storage.service';\nexport * from './lib/preferences.service';\nexport * from './lib/systelab-preferences.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MemoryStorageService","i2.LocalStorageService","i3.SessionStorageService"],"mappings":"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"}