redux-event-emitter
Version:
Redux Event Emitter Middleware
1 lines • 3.82 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("redux-event-emitter",[],t):"object"==typeof exports?exports["redux-event-emitter"]=t():e["redux-event-emitter"]=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.reduxEventEmitter=void 0;var f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),c=n(1),a=r(c),s=function(){function e(){i(this,e),this.emitter=new a["default"]}return u(e,[{key:"createEvents",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==("undefined"==typeof e?"undefined":f(e)))throw new TypeError('createEvents expects events object as its first parameter, you passed type "'+("undefined"==typeof e?"undefined":f(e))+'"');Object.keys(e).forEach(function(t){if("function"!=typeof e[t])throw new TypeError("Each key in createEvents's events object must be a dispatch-able function, key \""+t+'" is of type "'+f(e[t])+'"')});var t=this;return function(n){var r=n.dispatch;return Object.keys(e).forEach(function(n){t.emitter.on(n,function(){r(e[n].apply(e,arguments))})}),function(e){return function(n){if(n.type.startsWith("@@emitter")){var r;(r=t.emitter).emit.apply(r,[n.channel].concat(o(n.args||[])))}return e(n)}}}}},{key:"once",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("object"!==("undefined"==typeof e?"undefined":f(e)))throw new TypeError("createEvents expects events object as its first parameter, you passed type '"+("undefined"==typeof e?"undefined":f(e))+'"');Object.keys(e).forEach(function(t){if("function"!=typeof e[t])throw new TypeError("Each key in createEvents's events object must be a dispatch-able function, key \""+t+'" is of type "'+f(e[t])+'"')});var t=this;return function(n){var r=n.dispatch;return Object.keys(e).forEach(function(n){t.emitter.once(n,function(){r(e[n].apply(e,arguments))})}),function(e){return function(t){return e(t)}}}}},{key:"emit",value:function(e){return{type:"@@emitter",channel:e,args:Array.prototype.slice.call(arguments,1)}}},{key:"off",value:function(e){return this.emitter.off(e)}},{key:"on",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.createEvents(e)}}]),e}();t.reduxEventEmitter=new s},function(e,t){function n(){}n.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){function r(){o.off(e,r),t.apply(n,arguments)}var o=this;return r._=t,this.on(e,r,n)},emit:function(e){var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,o=n.length;for(r;r<o;r++)n[r].fn.apply(n[r].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),r=n[e],o=[];if(r&&t)for(var i=0,f=r.length;i<f;i++)r[i].fn!==t&&r[i].fn._!==t&&o.push(r[i]);return o.length?n[e]=o:delete n[e],this}},e.exports=n,e.exports.TinyEmitter=n}])});