UNPKG

ngx-webstorage-service

Version:
63 lines 7.36 kB
import { BaseStorageService } from './base-storage.service'; import { StorageTranscoders } from './storage-transcoders'; /** * A volatile `StorageService` implementation. This service guarantees that data stored will remain available as long as the application * instance is active. After the application is terminated all data will be lost. */ export class InMemoryStorageService extends BaseStorageService { /** * Creates a new `InMemoryStorageService` instance. */ constructor() { super(StorageTranscoders.JSON); /** A map that serves as the underlying backing storage for this service. */ this.storage = new Map(); } /** * Checks whether an entry with the specified key exists in the storage. * * @param key Identifier of the entry for which its presence in the storage is to be checked. * @returns `true` if an entry with the specified key exists in the storage, `false` if not. */ has(key) { return this.storage.has(key); } /** * Removes the entry that is identified by the specified key. Attempting to remove an entry for an unknown key will have no effect. * Attempting to retrieve an entry via the `get` method after it has been removed will result in `undefined`. * * @param key Identifier of the entry which is to be removed. */ remove(key) { this.storage.delete(key); } /** * Clears the storage by removing all entries. Subsequent `get(x)` calls for a key *x* will return `undefined`, until a new value is set * for key *x*. */ clear() { this.storage.clear(); } /** * Performs the actual retrieval of a value from storage. * * @param key Identifier of the entry whose value is to be retrieved. * @returns The value that is stored for the specified entry or `undefined` if no entry exists for the specified key. */ getItem(key) { if (!this.storage.has(key)) { return undefined; } return this.storage.get(key); } /** * Stores the provided value using specified key in the storage. * * @param key Identifier of the entry for which the value is to be stored. * @param value The value that is to be stored. */ setItem(key, value) { this.storage.set(key, value); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9zcmMvaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQXVCO0lBSy9EOztPQUVHO0lBQ0g7UUFDSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFQbkMsNEVBQTRFO1FBQzNELFlBQU8sR0FBd0IsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFPMUUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksR0FBRyxDQUFDLEdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsR0FBVztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSztRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sT0FBTyxDQUFDLEdBQVc7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTyxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vYmFzZS1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmFnZVRyYW5zY29kZXJzIH0gZnJvbSAnLi9zdG9yYWdlLXRyYW5zY29kZXJzJztcblxuLyoqXG4gKiBBIHZvbGF0aWxlIGBTdG9yYWdlU2VydmljZWAgaW1wbGVtZW50YXRpb24uIFRoaXMgc2VydmljZSBndWFyYW50ZWVzIHRoYXQgZGF0YSBzdG9yZWQgd2lsbCByZW1haW4gYXZhaWxhYmxlIGFzIGxvbmcgYXMgdGhlIGFwcGxpY2F0aW9uXG4gKiBpbnN0YW5jZSBpcyBhY3RpdmUuIEFmdGVyIHRoZSBhcHBsaWNhdGlvbiBpcyB0ZXJtaW5hdGVkIGFsbCBkYXRhIHdpbGwgYmUgbG9zdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEluTWVtb3J5U3RvcmFnZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU3RvcmFnZVNlcnZpY2U8YW55PiB7XG5cbiAgICAvKiogQSBtYXAgdGhhdCBzZXJ2ZXMgYXMgdGhlIHVuZGVybHlpbmcgYmFja2luZyBzdG9yYWdlIGZvciB0aGlzIHNlcnZpY2UuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYEluTWVtb3J5U3RvcmFnZVNlcnZpY2VgIGluc3RhbmNlLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihTdG9yYWdlVHJhbnNjb2RlcnMuSlNPTik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgYW4gZW50cnkgd2l0aCB0aGUgc3BlY2lmaWVkIGtleSBleGlzdHMgaW4gdGhlIHN0b3JhZ2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gICBrZXkgSWRlbnRpZmllciBvZiB0aGUgZW50cnkgZm9yIHdoaWNoIGl0cyBwcmVzZW5jZSBpbiB0aGUgc3RvcmFnZSBpcyB0byBiZSBjaGVja2VkLlxuICAgICAqIEByZXR1cm5zICAgICBgdHJ1ZWAgaWYgYW4gZW50cnkgd2l0aCB0aGUgc3BlY2lmaWVkIGtleSBleGlzdHMgaW4gdGhlIHN0b3JhZ2UsIGBmYWxzZWAgaWYgbm90LlxuICAgICAqL1xuICAgIHB1YmxpYyBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5oYXMoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBlbnRyeSB0aGF0IGlzIGlkZW50aWZpZWQgYnkgdGhlIHNwZWNpZmllZCBrZXkuIEF0dGVtcHRpbmcgdG8gcmVtb3ZlIGFuIGVudHJ5IGZvciBhbiB1bmtub3duIGtleSB3aWxsIGhhdmUgbm8gZWZmZWN0LlxuICAgICAqIEF0dGVtcHRpbmcgdG8gcmV0cmlldmUgYW4gZW50cnkgdmlhIHRoZSBgZ2V0YCBtZXRob2QgYWZ0ZXIgaXQgaGFzIGJlZW4gcmVtb3ZlZCB3aWxsIHJlc3VsdCBpbiBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXkgSWRlbnRpZmllciBvZiB0aGUgZW50cnkgd2hpY2ggaXMgdG8gYmUgcmVtb3ZlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmFnZS5kZWxldGUoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgdGhlIHN0b3JhZ2UgYnkgcmVtb3ZpbmcgYWxsIGVudHJpZXMuIFN1YnNlcXVlbnQgYGdldCh4KWAgY2FsbHMgZm9yIGEga2V5ICp4KiB3aWxsIHJldHVybiBgdW5kZWZpbmVkYCwgdW50aWwgYSBuZXcgdmFsdWUgaXMgc2V0XG4gICAgICogZm9yIGtleSAqeCouXG4gICAgICovXG4gICAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JhZ2UuY2xlYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyB0aGUgYWN0dWFsIHJldHJpZXZhbCBvZiBhIHZhbHVlIGZyb20gc3RvcmFnZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSAgIGtleSBJZGVudGlmaWVyIG9mIHRoZSBlbnRyeSB3aG9zZSB2YWx1ZSBpcyB0byBiZSByZXRyaWV2ZWQuXG4gICAgICogQHJldHVybnMgICAgIFRoZSB2YWx1ZSB0aGF0IGlzIHN0b3JlZCBmb3IgdGhlIHNwZWNpZmllZCBlbnRyeSBvciBgdW5kZWZpbmVkYCBpZiBubyBlbnRyeSBleGlzdHMgZm9yIHRoZSBzcGVjaWZpZWQga2V5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmdldChrZXkpITtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZXMgdGhlIHByb3ZpZGVkIHZhbHVlIHVzaW5nIHNwZWNpZmllZCBrZXkgaW4gdGhlIHN0b3JhZ2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5ICAgSWRlbnRpZmllciBvZiB0aGUgZW50cnkgZm9yIHdoaWNoIHRoZSB2YWx1ZSBpcyB0byBiZSBzdG9yZWQuXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0aGF0IGlzIHRvIGJlIHN0b3JlZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0KGtleSwgdmFsdWUpO1xuICAgIH1cblxufVxuIl19