UNPKG

redux-simple-effects

Version:
1 lines 1.74 kB
{"version":3,"file":"index.mjs","sources":["../src/create-middleware.js"],"sourcesContent":["/**\n * Middleware factory to handle simple side effects\n *\n * @param {object} effects Object with [actionName => effectFnOrArrayOfEffectFns]\n * @param {*} additionalSharedData which will be sent to all effects as 4th argument\n * @returns {function} Redux middleware with some additional properties\n */\nexport default function createMiddleware(effects, additionalSharedData = null) {\n const setEffects = e => {\n effects = Object.assign({}, e)\n }\n\n function effectsMiddleware({ dispatch, getState }) {\n return next => action => {\n if (effects[action.type]) {\n // Delay to be fired after action is dispatched\n setTimeout(() => {\n [].concat(effects[action.type]).forEach(x => x(Object.assign({}, action), dispatch, getState(), additionalSharedData))\n }, 1)\n }\n\n next(action)\n }\n }\n\n effectsMiddleware.replaceEffects = setEffects\n\n setEffects(effects)\n\n return effectsMiddleware\n}\n"],"names":[],"mappings":"AAAA;;;;;;;AAOA,AAAe,SAAS,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,EAAE;EAC7E,MAAM,UAAU,GAAG,CAAC,IAAI;IACtB,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;GAC/B;;EAED,SAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACjD,OAAO,IAAI,IAAI,MAAM,IAAI;MACvB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;;QAExB,UAAU,CAAC,MAAM;UACf,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,oBAAoB,CAAC,CAAC;SACvH,EAAE,CAAC,CAAC;OACN;;MAED,IAAI,CAAC,MAAM,CAAC;KACb;GACF;;EAED,iBAAiB,CAAC,cAAc,GAAG,UAAU;;EAE7C,UAAU,CAAC,OAAO,CAAC;;EAEnB,OAAO,iBAAiB;CACzB,;;"}