UNPKG

@cerebral/storage

Version:
73 lines (56 loc) 2.11 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.StorageProviderError = undefined; var _StorageProviderError = require('./StorageProviderError'); Object.defineProperty(exports, 'StorageProviderError', { enumerable: true, get: function get() { return _interopRequireDefault(_StorageProviderError).default; } }); var _cerebral = require('cerebral'); var _StorageProviderError2 = _interopRequireDefault(_StorageProviderError); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function StorageProvider() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var target = options.target; options.json = 'json' in options ? options.json : true; options.prefix = options.prefix ? options.prefix + '.' : ''; return (0, _cerebral.Provider)({ get: function get(key) { var value = target.getItem(options.prefix + key); function resolveValue(value) { if (options.json && value) { return JSON.parse(value); } return value; } if (value instanceof Promise) { return value.then(resolveValue).catch(function (error) { throw new _StorageProviderError2.default(error); }); } return resolveValue(value); }, set: function set(key, value) { var maybePromise = value === undefined ? target.removeItem(options.prefix + key) : target.setItem(options.prefix + key, options.json ? JSON.stringify(value) : value); if (maybePromise instanceof Promise) { return maybePromise.catch(function (error) { throw new _StorageProviderError2.default(error); }); } }, remove: function remove(key) { var maybePromise = target.removeItem(options.prefix + key); if (maybePromise instanceof Promise) { return maybePromise.catch(function (error) { throw new _StorageProviderError2.default(error); }); } } }); } exports.default = StorageProvider; //# sourceMappingURL=StorageProvider.js.map