UNPKG

mixpanel-browser

Version:

The official Mixpanel JavaScript browser client library

51 lines (44 loc) 1.32 kB
import { Promise } from '../promise-polyfill'; import { _, JSONParse, JSONStringify } from '../utils'; // eslint-disable-line camelcase import { window } from '../window'; /** * @type {import('./wrapper').StorageWrapper} */ var LocalStorageWrapper = function (storageOverride) { this.storage = storageOverride || window.localStorage; }; LocalStorageWrapper.prototype.init = function () { return Promise.resolve(); }; LocalStorageWrapper.prototype.setItem = function (key, value) { return new Promise(_.bind(function (resolve, reject) { try { this.storage.setItem(key, JSONStringify(value)); } catch (e) { reject(e); } resolve(); }, this)); }; LocalStorageWrapper.prototype.getItem = function (key) { return new Promise(_.bind(function (resolve, reject) { var item; try { item = JSONParse(this.storage.getItem(key)); } catch (e) { reject(e); } resolve(item); }, this)); }; LocalStorageWrapper.prototype.removeItem = function (key) { return new Promise(_.bind(function (resolve, reject) { try { this.storage.removeItem(key); } catch (e) { reject(e); } resolve(); }, this)); }; export { LocalStorageWrapper };