UNPKG

@funded-labs/plug-controller

Version:

Internet Computer Plug wallet's controller

115 lines (114 loc) 4.29 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const extensionizer_1 = __importDefault(require("extensionizer")); const utils_1 = require("./utils"); /* eslint-disable no-underscore-dangle */ /* eslint-disable class-methods-use-this */ /** * A wrapper around the extension's storage local API */ class ExtensionStore { constructor() { var _a; this.isSupported = Boolean((_a = extensionizer_1.default === null || extensionizer_1.default === void 0 ? void 0 : extensionizer_1.default.storage) === null || _a === void 0 ? void 0 : _a.local); if (!this.isSupported) { console.log('Storage not supported in this browser'); // eslint-disable-line } } /** * Returns all of the keys currently saved * @returns {Promise<*>} */ get() { return __awaiter(this, void 0, void 0, function* () { if (!this.isSupported) { return undefined; } const result = yield this._get(); // extension?.storage.local always returns an obj // if the object is empty, treat it as undefined if ((0, utils_1.isEmpty)(result)) { return undefined; } return result; }); } /** * Sets the key in local state * @param {Object} state - The state to set * @returns {Promise<void>} */ set(state) { return __awaiter(this, void 0, void 0, function* () { return this._set(state); }); } /** * Returns all of the keys currently saved * @private * @returns {Object} the key-value map from local storage */ _get() { const { local } = extensionizer_1.default === null || extensionizer_1.default === void 0 ? void 0 : extensionizer_1.default.storage; return new Promise((resolve, reject) => { local.get(null, (/** @type {any} */ result) => { const err = (0, utils_1.checkForError)(); if (err) { reject(err); } else { resolve(result); } }); }); } /** * Sets the key in local state * @param {Object} obj - The key to set * @returns {Promise<void>} * @private */ _set(obj) { const { local } = extensionizer_1.default === null || extensionizer_1.default === void 0 ? void 0 : extensionizer_1.default.storage; return new Promise((resolve, reject) => { local.set(obj, () => { const err = (0, utils_1.checkForError)(); if (err) { reject(err); } else { resolve(); } }); }); } clear() { return __awaiter(this, void 0, void 0, function* () { const { local } = extensionizer_1.default === null || extensionizer_1.default === void 0 ? void 0 : extensionizer_1.default.storage; return new Promise((resolve, reject) => { local.clear(() => { const err = (0, utils_1.checkForError)(); if (err) { reject(err); } else { resolve(); } }); }); }); } } exports.default = ExtensionStore;