UNPKG

event-queuejs

Version:
2 lines (1 loc) 3.04 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("core-js/modules/es.symbol"),require("core-js/modules/es.array.filter"),require("core-js/modules/es.array.for-each"),require("core-js/modules/es.array.map"),require("core-js/modules/es.object.define-properties"),require("core-js/modules/es.object.define-property"),require("core-js/modules/es.object.get-own-property-descriptor"),require("core-js/modules/es.object.get-own-property-descriptors"),require("core-js/modules/es.object.keys"),require("core-js/modules/web.dom-collections.for-each"),require("core-js/modules/web.timers")):"function"==typeof define&&define.amd?define(["core-js/modules/es.symbol","core-js/modules/es.array.filter","core-js/modules/es.array.for-each","core-js/modules/es.array.map","core-js/modules/es.object.define-properties","core-js/modules/es.object.define-property","core-js/modules/es.object.get-own-property-descriptor","core-js/modules/es.object.get-own-property-descriptors","core-js/modules/es.object.keys","core-js/modules/web.dom-collections.for-each","core-js/modules/web.timers"],t):(e=e||self).eventQueueJs=t()}(this,function(){"use strict";var o=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e};function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,o)}return r}var n={maxEventNumber:5,async:!0,breakRun:function(){},complete:function(){},completeAll:function(){}};function e(e){this.init(e)}return e.prototype={constructor:e,init:function(e){var t,r=0<arguments.length&&void 0!==e?e:{};this.options=function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach(function(e){o(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}({},n,{},r),this.options.maxEventNumber=(t=this.options.maxEventNumber,isNaN(t)||t<=0?n.maxEventNumber:t),this.eventList=[],this.overEventList=[],this.eventRunNumber=0,this.eventOverNumber=0},done:function(){--this.eventRunNumber,this.eventOverNumber+=1,this.run()},add:function(e){var t=this;return"function"==typeof e&&(e=[e]),e&&0<e.length&&e.map(function(e){t.on(e)}),this},on:function(e){this.eventList.push(e)},run:function(){var e=this.eventList,t=this.eventRunNumber,r=this.eventOverNumber,o=this.options;if(!(t>=o.maxEventNumber)){var s,n,i=e[t+r];if(i)o.breakRun&&o.breakRun({eventRunNumber:t,eventOverNumber:r})||(this.emit(i),this.eventRunNumber+=1,this.run());else((s=o.completeAll)&&"function"==typeof s||n)&&o.completeAll(this.overEventList)}},emit:function(e){var t=arguments,r=this;this.options.async?setTimeout(function(){r.overEventList.push(e.apply(r,t))},6):this.overEventList.push(e.apply(this,arguments))}},e});