UNPKG

redux-storage-decorator-engines

Version:
53 lines (42 loc) 1.57 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _entries = require('babel-runtime/core-js/object/entries'); var _entries2 = _interopRequireDefault(_entries); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (engines) { return { load: function load() { var state = {}; var loads = engines.map(function (engine) { return engine.load().then(function (partialState) { (0, _entries2.default)(partialState || {}).forEach(function (_ref) { var _ref2 = (0, _slicedToArray3.default)(_ref, 2); var key = _ref2[0]; var value = _ref2[1]; if (process.env.NODE_ENV !== 'production') { if (state[key]) { console.warn( // eslint-disable-line no-console '[redux-storage-decorator-engines] "' + key + '" state found in more than one storage'); } } state[key] = value; }); }); }); return _promise2.default.all(loads).then(function () { return state; }); }, save: function save(state) { return _promise2.default.all(engines.map(function (engine) { return engine.save(state); })); } }; };