UNPKG

si-funciona

Version:

Funciones de utilidad para uso general. [General usage utility functions.]

1 lines 1.67 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/stable"),require("regenerator-runtime/runtime");var _makeBasicQueue=_interopRequireDefault(require("./makeBasicQueue"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const queueManager=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=!1,t=!0;const n=function(e,r,t){const n=function*(){const t=yield;return"function"==typeof t.fn?e(t.fn(...t.args)):r(t)}();n.next();for(var u=arguments.length,o=new Array(u>3?u-3:0),i=3;i<u;i++)o[i-3]=arguments[i];return{item:{fn:t,args:o},generator:n}},u=e=>(r=!1,o(),e),o=()=>{if(!t&&!e.empty()&&!r){r=!0;let t=e.dequeue();if(null==t)return null;if("function"==typeof t&&new Promise(((e,r)=>{t=n(e,r,t),o()})).then(u),"success"in t)return console.info(t.success),null;if(!t.generator||"error"in t){let e='Verify queued function implements "done()" state.';throw"error"in t&&t.error&&(e="[".concat(t.error,"]: ").concat(e)),new Error(e)}if(t.generator&&t.item)return t.generator.next(t.item)}return null},i=function(r){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s<t;s++)i[s-1]=arguments[s];return new Promise(((t,u)=>{e.enqueue(n(t,u,r,...i)),o()})).then(u)};if(Array.isArray(e)){const r=e;e=(0,_makeBasicQueue.default)(),r.forEach((e=>i(e)))}return null===e&&(e=(0,_makeBasicQueue.default)()),o(),{start:()=>{t=!1,o()},pause:()=>{t=!0},push:i}};var _default=exports.default=queueManager;