@useorbis/db-sdk
Version:
Orbis' Typescript SDK for building open-data experiences.
46 lines (45 loc) • 1.28 kB
JavaScript
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;
}
}