@shopgate/pwa-common
Version:
Common library for the Shopgate Connect PWA.
16 lines • 1.78 kB
JavaScript
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}/**
* Class to maintain the persisted redux reducers.
*/var PersistedReducers=/*#__PURE__*/function(){/**
* Constructor.
*/function PersistedReducers(){_classCallCheck(this,PersistedReducers);this.reducers=[];}/**
* Returns all reducers.
* @return {Array}
*/return _createClass(PersistedReducers,[{key:"getAll",value:function getAll(){return this.reducers;}/**
* Sets a new reducers to be persisted.
* @param {string|Array} reducer The name of the reducer to persist.
* @return {PersistedReducers}
*/},{key:"set",value:function set(reducer){var _this=this;if(Array.isArray(reducer)){reducer.forEach(function(red){if(!_this.reducers.includes(red)){_this.reducers.push(red);}});return this;}if(this.reducers.includes(reducer)){return this;}this.reducers.push(reducer);return this;}/**
* Removes a reducer from the list of persisted reducers.
* @param {string} reducer The name of the reducer to remove.
* @return {PersistedReducers}
*/},{key:"remove",value:function remove(reducer){this.reducers=this.reducers.filter(function(red){return red!==reducer;});return this;}}]);}();export default new PersistedReducers();