@exodus/walletconnect-keyvaluestorage
Version:
Isomorphic Key-Value Storage
35 lines (34 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.KeyValueStorage = void 0;
const tslib_1 = require("tslib");
const walletconnect_safe_json_1 = require("@exodus/walletconnect-safe-json");
const localStorage_1 = tslib_1.__importDefault(require("./lib/localStorage"));
const shared_1 = require("../shared");
class KeyValueStorage {
constructor() {
this.localStorage = localStorage_1.default;
}
async getKeys() {
return Array.from(this.localStorage.mapping.keys());
}
async getEntries() {
const mapping = this.localStorage.mapping;
return Array.from(mapping.entries()).map(shared_1.parseEntry);
}
async getItem(key) {
const item = this.localStorage.getItem(key);
if (item === null) {
return undefined;
}
return (0, walletconnect_safe_json_1.safeJsonParse)(item);
}
async setItem(key, value) {
this.localStorage.setItem(key, (0, walletconnect_safe_json_1.safeJsonStringify)(value));
}
async removeItem(key) {
this.localStorage.removeItem(key);
}
}
exports.KeyValueStorage = KeyValueStorage;
exports.default = KeyValueStorage;