UNPKG

@useorbis/db-sdk

Version:

Orbis' Typescript SDK for building open-data experiences.

46 lines (45 loc) 1.28 kB
export class MemoryStore { message = "[MemoryStore] An in-memory store is being used. Data will not be preserved between sessions."; memoryStore = {}; getItem(key) { return this.memoryStore[key]; } setItem(key, value) { this.memoryStore[key] = value; return false; } removeItem(key) { delete this.memoryStore[key]; return false; } } /** Store class to use localStorage or AsyncStorage */ export class Store { /** Type of storage we want to use: 'localStorage' or 'AsyncStorage' */ #storage; /** Initialize storage with one of the supported options */ constructor(options) { if (options && options.storage) { this.#storage = options.storage; } else { if (typeof localStorage === "undefined") { this.#storage = new MemoryStore(); } else { this.#storage = localStorage; } } } async setItem(key, value) { await this.#storage.setItem(key, value); return true; } async getItem(key) { return await this.#storage.getItem(key); } async removeItem(key) { await this.#storage.removeItem(key); return true; } }