@nevware21/ts-async
Version:
support for asynchronous development with a Promise based task Scheduler, several different Promise implementations (synchronous, idle, asynchronous and native runtime wrappers), await helpers, and aliases all built and tested using TypeScript.
9 lines (8 loc) • 16.4 kB
JavaScript
/*!
* NevWare21 Solutions LLC - ts-async, 0.5.4
* https://github.com/nevware21/ts-async
* Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved.
* Licensed under the MIT license.
*/
function n(n,t){return n||t}function t(n,t){return n[t]}function A(n,t){try{return{v:n.apply(this,t)}}catch(n){return{e:n}}}function C(t){return function(n){return typeof n===t}}function b(n){return typeof n===c||n===c}function z(n){return n||n!==f}function j(n){return n&&n.then&&N(n.then)}function F(n,t){return!!n&&Un.hasOwnProperty[s](n,t)||!!Mn(n,t)}function q(n,t){if(n&&(n||n!==a&&!b(n))&&n&&typeof n===Cn)for(var e in n)if(Qn(n,e)&&-1===t[s](n,e,n[e]))break}function J(n,t,e){return k(n,t,(r=e,(u={})[Vn.c]=!0,u[Vn.e]=!0,r.l&&(u.get=function(){return r.l.v},n=Mn(r.l,"v"))&&n.set&&(u.set=function(n){r.l.v=n}),q(r,function(n,t){u[Vn[n]]=z(t)?t:u[Vn[n]]}),u));var r,u}function W(n,t,e,r){k(n,t,{value:e,enumerable:!0,writable:!!r})}function R(n,t){var e=$n,r=Un[Ln][s](n);r===Yn&&(n={stack:d(n.stack),message:d(n.message),name:d(n.name)});try{e=((e=JSON.stringify(n,a,t?"number"==typeof t?t:4:f))?e.replace(/"(\w+)"\s*:\s{0,1}/g,"$1: "):a)||d(n)}catch(n){e=" - "+R(n,t)}return r+": "+e}function I(n){throw new TypeError(n)}function H(n){return n}function L(n){return n[zn]||a}function U(n){return t=Zn,e={},q(n,function(n,t){W(e,n,n,void 0),W(e,t,n,void 0)}),t?t(e):e;var t,e}function B(){var n;return(n=(n=(n=typeof globalThis!==c?globalThis:n)||typeof self===c?n:self)||typeof window===c?n:window)||typeof global===c?n:global}function G(t){return function(n){return n[t]}}function K(){var n;tt||(n=A(B).v||{},tt=n[ut]=n[ut]||{}),g=tt}function E(n){return k({toJSON:function(){return n}},"v",{value:n})}function M(n,t){var e;return function(){return g||K(),(e=e&&!g.lzy?e:E(A(n,t).v)).v}}function Q(n){return g||K(),(it=it&&!1!==n&&!g.lzy?it:E(A(B).v||a)).v}function T(n,t){t=it&&!1!==t?it.v:Q(t);if(t&&t[n])return t[n];if(n===ot)try{return window}catch(n){}return a}function V(){return ct=E(A(T,[qn]).v)}function X(){return g||K(),((g.lzy?0:ct)||V()).v}function D(n){var t,e=rt[n],r=(g||K(),(g.lzy?0:ct)||V());return r.v?r.v[e||n]:(et=et||{},(r=rt[n])?et[r]=et[r]||((e={description:d(t=qn+"."+r),toString:function(){return qn+"("+t+")"}})[Jn]=!0,e):void 0)}function Y(n){return n&&N(n.next)}function Z(n){return n!==a&&z(n)&&N(n[D(3)])}function nn(t,n,e){if(t&&(Y(t)||(t=t[(ft=ft||E(D(3))).v]?t[ft.v]():a),Y(t))){var r=f,u=f;try{for(var i=0;!(u=t.next()).done&&-1!==n[s](e||t,u.value,i,t);)i++}catch(n){r={e:n},t.throw&&(u=a,t.throw(r))}finally{try{u&&!u.done&&t.return&&t.return(u)}finally{if(r)throw r.e}}}}function tn(n,t,e){return n.apply(t,e)}function en(n,t){if(n)for(var e=n[Wn]>>>0,r=0;r<e&&!(r in n&&-1===t[s](n,n[r],r,n));r++);}function _(n){return((n?n.slice:a)||y).apply(n,y[s](arguments,1))}function rn(n){var t;return n?((t=typeof n)!==Cn&&"function"!=t&&I("Prototype must be an Object or function: "+R(n)),e[l]=n,new e):{};function e(){}}function un(n,t){return(v.setPrototypeOf||function(e,n){var t;(yt=yt||E(((t={})[zn]=[],t instanceof Array))).v?e[zn]=n:q(n,function(n,t){return e[n]=t})})(n,t)}function on(n,t){t&&(n[Hn]=t)}function cn(u,i){var n,t,o=Error,c=o[l][Hn],f=Error.captureStackTrace,e=o;return A(J,[t=function(){var n=this,t=arguments;try{A(on,[o,u]);var e,r=tn(o,n,y[s](t))||n;return r!==n&&(e=nt(n))!==nt(r)&&un(r,e),f&&f(r,n[Fn]),i&&i(r,t),r}finally{A(on,[o,c])}},Hn,{v:n=u,c:!0,e:!1}]),(t=un(t,e))[l]=e===a?dt(e):(r[l]=e[l],new r),t;function r(){this[Fn]=t,A(J,[this,Hn,{v:n,c:!0,e:!1}])}}function h(){return(Date.now||fn)()}function fn(){return(new Date).getTime()}function an(n,t,e){var r,u=!0,i=t(a);function o(){return u=!1,i&&i[mt]&&i[mt](),r}function c(){i&&e(i),i=a}function f(){return i=t(i),u||o(),r}return(r={cancel:c,refresh:f})[pt]=function(){return i&&i[pt]?i[pt]():u},r[ht]=function(){return u=!0,i&&i[ht]&&i[ht](),r},r[mt]=o,{h:r=k(r,gt,{get:function(){return!!i},set:function(n){!n&&i&&c(),n&&!i&&f()}}),dn:function(){i=a}}}function O(){return n=f,t=y[s](arguments),r=(e=Gn(n))?n.length:0,u=(0<r?n[0]:e?f:n)||setTimeout,i=(1<r?n[1]:f)||clearTimeout,o=t[0],t[0]=function(){c.dn(),tn(o,f,y[s](arguments))},(c=an(0,function(n){if(n){if(n.refresh)return n.refresh(),n;tn(i,f,[n])}return tn(u,f,t)},function(n){tn(i,f,[n])})).h;var n,t,e,r,u,i,o,c}function ln(n,t){return m(n,function(n){return t?t({status:"fulfilled",rejected:!1,value:n}):n},function(n){return t?t({status:Et,rejected:!0,reason:n}):n})}function m(n,t,e,r){var u=n;try{if(j(n))(t||e)&&(u=n.then(t,e));else try{t&&(u=t(n))}catch(n){if(!e)throw n;u=e(n)}}finally{r&&sn(u,r)}return u}function sn(n,t){var e=n;return t&&(j(n)?e=n.finally?n.finally(t):n.then(function(n){return t(),n},function(n){throw t(),n}):t()),e}function vn(n,t){return n||t}function yn(n){var t;return!!(t=n&&n.createEvent?n.createEvent("Event"):t)&&t.initEvent}function dn(n){return N(n)?n.toString():R(n)}function hn(n){return new(Nt=Nt||E(A(T,["AggregationError"]).v||cn("AggregationError",function(n,t){n.errors=t[0]}))).v(n)}function mn(n,t,e){var o,i,r,u,c,f=_(arguments,3),a=0,l=!1,s=[],v=qt++,y=0<$.length?$[$.length-1]:void 0,d=!1,h=null;function m(u,i){try{return $.push(v),d=!0,h&&h.cancel(),h=null,n(function(e,r){s.push(function(){try{var n=2===a?u:i,t=b(n)?o:N(n)?n(o):n;j(t)?t.then(e,r):(n||3!==a?e:r)(t)}catch(n){r(n)}}),l&&g()},f)}finally{$.pop()}}function p(){return _t[a]}function g(){var n;0<s.length&&(n=s.slice(),s=[],d=!0,h&&h.cancel(),h=null,t(n))}function P(t,e){return function(n){a===e&&(2===t&&j(n)?(a=1,n.then(P(2,1),P(3,1))):(a=t,l=!0,o=n,g(),d||3!==t||(h=h||O(w,Jt))))}}function w(){var n,t,e,r,u;d||(d=!0,st()?process.emit(zt,o,i):(n=lt()||Q(),kt=kt||E(A(T,[x+"RejectionEvent"]).v),n=n,t=Ft,u=function(n){return J(n,"promise",{g:function(){return i}}),n.reason=o,n},e=!!kt.v,r=at(),u(u=(Dt=Dt||E(!!A(yn,[r]).v)).v?r.createEvent("Event"):e?new Event(t):{}),Dt.v&&u.initEvent(t,!1,!0),u&&n[Ot]?n[Ot](u):(r=n["on"+t])?r(u):(e=T("console"))&&(e.error||e.log)(t,R(u))))}k(i={then:m,catch:function(n){return m(void 0,n)},finally:function(t){var n=t,e=t;return N(t)&&(n=function(n){return t&&t(),n},e=function(n){throw t&&t(),n}),m(n,e)}},"state",{get:p}),Tt&&(r=i,S=function(){return n=o,Un[Ln].call(n);var n},u=function(){return d},jt=jt||{toString:function(){return"[[PromiseResult]]"}},Rt=Rt||{toString:function(){return"[[PromiseIsHandled]]"}},(c={})[bt=bt||{toString:function(){return"[[PromiseState]]"}}]={get:p},c[jt]={get:S},c[Rt]={get:u},Xn(r,c)),X()&&(i[D(11)]="IPromise"),i.toString=function(){return"IPromise"+(Tt?"["+v+(b(y)?"":":"+y)+"]":"")+" "+p()+(l?" - "+dn(o):"")},N(e)||I(x+": executor is not a function - "+dn(e));var S=P(3,0);try{e.call(i,P(2,0),S)}catch(n){S(n)}return i}function pn(e){return function(n){var t=_(arguments,1);return e(function(e,r){try{var u=[],i=1;nn(n,function(n,t){n&&(i++,m(n,function(n){u[t]=n,0==--i&&e(u)},r))}),0==--i&&e(u)}catch(n){r(n)}},t)}}function gn(e){return function(t){var n=_(arguments,1);return j(t)?t:e(function(n){n(t)},n)}}function Pn(t){return function(e){var n=_(arguments,1);return t(function(n,t){t(e)},n)}}function wn(t){return E(function(i){var n=_(arguments,1);return t(function(e,t){var r=[],u=1;function n(n,t){u++,ln(n,function(n){n.rejected?r[t]={status:Et,reason:n.reason}:r[t]={status:"fulfilled",value:n.value},0==--u&&e(r)})}try{Gn(i)?en(i,n):Z(i)?nn(i,n):I("Input is not an iterable"),0==--u&&e(r)}catch(n){t(n)}},n)})}function Sn(t){return E(function(u){var n=_(arguments,1);return t(function(t,e){var r=!1;function n(n){ln(n,function(n){r||(r=!0,n.rejected?e(n.reason):t(n.value))})}try{Gn(u)?en(u,n):Z(u)?nn(u,n):I("Input is not an iterable")}catch(n){e(n)}},n)})}function An(e){return E(function(t){var n=_(arguments,1);return e(function(e,r){var u=[],i=1,o=!1;function n(n,t){i++,ln(n,function(n){n.rejected?(u[t]=n.reason,0!=--i||o||r(hn(u))):(o=!0,e(n.value))})}try{Gn(t)?en(t,n):Z(t)?nn(t,n):I("Input is not an iterable"),0!=--i||o||r(hn(u))}catch(n){r(n)}},n)})}function bn(n){en(n,function(n){try{n()}catch(n){}})}function u(n,t){return mn(u,(r=Kn(e=t)?e:0,function(n){O(function(){bn(n)},r)}),n,t);var e,r}function jn(n,t){return(xt=xt||wn(u)).v(n,t)}function Rn(n,t){return($t=$t||Sn(u)).v(n,t)}function In(n,t){return(Ct=Ct||An(u)).v(n,t)}function En(r,n){return(w=w||E(A(T,[x]).v||null)).v&&w.v[r]?E(function(e,n){return i(function(n,t){w.v[r](e).then(n,t)})}):n()}function i(n,t){var e=(w=w||E(A(T,[x]).v||null)).v;if(!e)return u(n);N(n)||I(x+": executor is not a function - "+R(n));var r=0,e=new e(function(t,e){n(function(n){r=2,t(n)},function(n){r=3,e(n)})});return k(e,"state",{get:function(){return _t[r]}}),e}function e(n){return mn(e,bn,n)}function Tn(n){Zt=n}function r(n,t){var o,t=b(t)?Zt:t;return mn(r,(0<=t&&(o={timeout:+t}),function(t){function e(n){bn(t)}var r,n,u=o;function i(n){var t=h();return{didTimeout:n,timeRemaining:function(){return wt-(n=t,h()-n);var n}}}St()?(r=an(0,function(n){return n&&At()(n),St()(function(n){r.dn(),e(n||i(!1))},u)},function(n){At()(n)})).h:O(function(){e(i(!0))},b(n=(u||{}).timeout)?Pt:n)}),n,t)}function p(n,t){return(ce=ce||E(i)).v.call(this,n,t)}function Dn(n,t,e,r){if(t.res=e,!n){if(t.isDone&&N(t.isDone))return m(t.isDone.call(r,t),function(n){return t.iter++,!!n});n=!!t.isDone}return t.iter++,n}function _n(e,n,r){var u,i,o,c,t,f=function(n){throw a=!0,n},a=!1,l={st:h(),iter:0,isDone:n||!1};if(e)return o=function(){return p(function(n,t){i=n,f=t})},c=function(n){(a=!!n)?i(l.res):t()},(t=function(){for(;!a;)try{var n=e.call(r,l);if(j(n))return u=u||o(),m(n,function(n){try{m(Dn(a,l,n,r),c,f)}catch(n){f(n)}},f),u;var t=Dn(a,l,n,r);if(j(t))return u=u||o(),m(t,c,f),u;a=!!t}catch(n){return f(n),u}return a&&i&&i(l.res),u||l.res})()}function On(){}function Nn(n,t,e){be[n]||(be[n]=cn(n));var r=h();return new be[n]("Task [".concat(t.id,"] ").concat(e||"","- ").concat(t.st?"Running":"Waiting",": ").concat((r-(t.st||t.cr)||"0")+" ms"))}function kn(n,t){var e=h()-t;en(n,function(n){(n&&!n.rj&&n.st&&n.st<e||!n.st&&n.cr&&n.cr<e)&&n&&n[S](n.rj||Nn("Aborted",n,"Stale "))})}function xn(n,t){t=vt(n,t);-1!==t&&n.splice(t,1)}var o,f,a,$n,Cn,l,zn,c,Fn,qn,Jn,Wn,Hn,s,Ln,v,Un,Bn,y,N,Gn,Kn,Mn,Qn,Vn,k,Xn,d,Yn,Zn,nt,tt,et,g,rt,ut,it,ot,ct,ft,at,lt,st,vt,yt,dt,P,ht,mt,pt,gt,Pt,wt,St,At,bt,jt,Rt,x,It,Et,Tt,Dt,_t,Ot,Nt,kt,xt,$t,Ct,zt,Ft,$,qt,Jt,w,Wt,Ht,Lt,Ut,Bt,Gt,Kt,Mt,Qt,Vt,Xt,Yt,Zt,ne,te,ee,re,ue,ie,oe,ce,fe,ae,le,se,ve,ye,de,he,me,pe,ge,Pe,we,S,Se,Ae,be,je;this.nevware21=this.nevware21||{},this.nevware21["ts-async"]=(o={},f=void 0,a=null,$n="",Cn="object",zn="__proto__",c="undefined",Fn="constructor",qn="Symbol",Jn="_polyfill",Wn="length",Hn="name",s="call",Ln="toString",Un=t(v=n(Object),l="prototype"),y=t(Bn=t(Xt=n(Array),l),"slice"),N=C("function"),Gn=t(Xt,"isArray"),Kn=C("number"),Mn=t(v,"getOwnPropertyDescriptor"),Qn=n(t(v,"hasOwn"),F),Vn={e:"enumerable",c:"configurable",v:"value",w:"writable",g:"get",s:"set"},k=t(v,"defineProperty"),Xn=t(v,"defineProperties"),d=n(n(String)),Yn="[object Error]",Zn=n(t(v,"freeze"),H),nt=n(t(v,"getPrototypeOf"),L),rt=U({asyncIterator:0,hasInstance:1,isConcatSpreadable:2,iterator:3,match:4,matchAll:5,replace:6,search:7,species:8,split:9,toPrimitive:10,toStringTag:11,unscopables:12}),ut="__tsUtils$gblCfg",at=M(T,["document"]),lt=M(T,[ot="window"]),st=M(function(){return!!A(function(){return process&&(process.versions||{}).node}).v}),vt=(r=>{var u=Bn?Bn[r]:a;return function(n){var t,e=(n?n[r]:a)||u;if(e)return t=arguments,(e||void 0).apply(n,e?y[s](t,1):t);I('"'+d(r)+'" not defined for '+R(n))}})("indexOf"),dt=n(t(v,"create"),rn),P=G(Wn),ht="ref",mt="unref",pt="hasRef",gt="enabled",Pt=100,wt=50,St=M(T,["requestIdleCallback"]),At=M(T,["cancelIdleCallback"]),x="Promise",It="done",Tt=!(Et="rejected"),_t=["pending","resolving","resolved",Et],Ot="dispatchEvent",Ft=(zt="unhandledRejection").toLowerCase(),$=[],Jt=10,Bt=pn(u),Gt=gn(u),Kt=Pn(u),Xt=gn(i),Yt=Pn(i),re=pn(e),ue=gn(e),ie=Pn(e),oe=vn(Tn),se=pn(r),ve=gn(r),ye=Pn(r),me=pn(p),pe=gn(p),ge=Pn(p),S="reject",Se="Rejected",Ae=qt=0,be={},je=D(11),o.PolyPromise=(()=>{function n(n){this._$=u(n),je&&(this[je]="Promise"),k(this,"state",{get:function(){return this._$.state}})}n.all=Bt,n.race=Rn,n.any=In,n.reject=Kt,n.resolve=Gt,n.allSettled=jn;var t=n.prototype;return t.then=function(n,t){return this._$.then(n,t)},t.catch=function(n){return this._$.catch(n)},t.finally=function(n){return this._$.finally(n)},n})(),o.arrForEachAsync=function(t,e,r){if(t){var u=P(t);if(u)return _n(function(n){n=n.iter;if(n in t)return e.call(r||t,t[n],n,t)},function(n){if(n.iter>=u||-1===n.res)return!0})}},o.createAllPromise=me,o.createAllSettledPromise=function(n,t){return(fe=fe||wn(p)).v(n,t)},o.createAnyPromise=function(n,t){return(le=le||An(p)).v(n,t)},o.createAsyncAllPromise=Bt,o.createAsyncAllSettledPromise=jn,o.createAsyncAnyPromise=In,o.createAsyncPromise=u,o.createAsyncRacePromise=Rn,o.createAsyncRejectedPromise=Kt,o.createAsyncResolvedPromise=Gt,o.createIdleAllPromise=se,o.createIdleAllSettledPromise=function(n,t){return(ne=ne||wn(r)).v(n,t)},o.createIdleAnyPromise=function(n,t){return(ee=ee||An(r)).v(n,t)},o.createIdlePromise=r,o.createIdleRacePromise=function(n,t){return(te=te||Sn(r)).v(n,t)},o.createIdleRejectedPromise=ye,o.createIdleResolvedPromise=ve,o.createNativeAllPromise=function(n,t){return(Wt=Wt||En("all",function(){return E(pn(i))})).v(n,t)},o.createNativeAllSettledPromise=function(n,t){return(Ht=Ht||En("allSettled",function(){return wn(i)})).v(n,t)},o.createNativeAnyPromise=function(n,t){return(Ut=Ut||En("any",function(){return An(i)})).v(n,t)},o.createNativePromise=i,o.createNativeRacePromise=function(n,t){return(Lt=Lt||En("race",function(){return Sn(i)})).v(n,t)},o.createNativeRejectedPromise=Yt,o.createNativeResolvedPromise=Xt,o.createPromise=p,o.createRacePromise=function(n,t){return(ae=ae||Sn(p)).v(n,t)},o.createRejectedPromise=ge,o.createResolvedPromise=pe,o.createSyncAllPromise=re,o.createSyncAllSettledPromise=function(n,t){return(Mt=Mt||wn(e)).v(n,t)},o.createSyncAnyPromise=function(n,t){return(Vt=Vt||An(e)).v(n,t)},o.createSyncPromise=e,o.createSyncRacePromise=function(n,t){return(Qt=Qt||Sn(e)).v(n,t)},o.createSyncRejectedPromise=ie,o.createSyncResolvedPromise=ue,o.createTaskScheduler=function(f,n){function a(){var n=0<P(u)+P(v);0<i&&(e||(e=O(function(){kn(u,i),kn(v,i),e&&(e.enabled=0<P(u)+P(v))},o)).unref(),e)&&(e.enabled=n)}function l(i,o){return i.st=h(),u.push(i),a(),function(t,e){function r(n){i.rj=i.rj||n||Nn(Se,i),i[S]=On,c(i),t=null,e&&e(n),e=null}var n=i.id;if(i.rj)r(i.rj);else{i[S]=r;try{var u=o(n);i.to&&j(u)&&(i.t=O(function(){r(Nn("Timeout",i))},i.to)),m(u,function(n){c(i);try{t&&t(n)}catch(n){e&&e(n)}t=e=null},r)}catch(n){r(n)}}}}function c(n){xn(u,n),n.t&&n.t.cancel(),n.t=null,s&&s===n&&(s=null,P(u)+P(v)===0)&&(e&&e.cancel(),e=null)}var s,e,t,r,u=[],v=[],i=6e5,o=i/10,y=0,d=(n?n+".":"")+Ae++,n=(f=f||p,{idle:!0,queue:function(n,t,e){var r,u,i,o=d+"."+y++,c=(t&&(o+="-("+t+")"),(t={id:o,cr:h(),to:e})[S]=function(n){c.rj=n||Nn(Se,c),c[S]=On},t);return c.p=s?(u=s,i=n,v.push(r=c),a(),f(function(n,t){ln(u.p,function(){xn(v,r),l(r,i)(n,t)})})):f(l(c,n)),(s=c).p},setStaleTimeout:function(n,t){e&&e.cancel(),e=null,i=n,o=t||n/10,a()}});return J(n,"idle",{g:function(){return P(u)+P(v)===0}}),r=function(){return{l:s,r:u,w:v}},we=we||{toString:function(){return"[[SchedulerState]]"}},k(t=n,Pe=Pe||{toString:function(){return"[[SchedulerName]]"}},{get:function(){return d}}),k(t,we,{get:r}),n},o.createTimeoutPromise=function(e,r,u){return p(function(n,t){O(function(){(r?n:t)(b(u)?"Timeout of "+e+"ms exceeded":u)},e)})},o.doAwait=m,o.doAwaitResponse=ln,o.doFinally=sn,o.doWhileAsync=_n,o.iterForOfAsync=function(n,e,r){var t,u,i=n;function o(n){throw t={e:n},i.throw&&(u=null,i.throw(t)),n}function c(){try{u&&!u[It]&&i.return&&i.return(u)}finally{if(t)throw t.e}}if(n&&(Y(n)||(he=he||E(D(0)),i=n[he.v]?n[he.v]():null)||(de=de||E(D(3)),i=n[de.v]?n[de.v]():null),i)&&Y(i)){n=void 0;try{return n=j(n=_n(function(t){return m(i.next(),function(n){if(!(u=n)[It])return function(n,t){return n.apply(t,y[s](arguments,2))}(e,r||i,u.value,t.iter,i)},function(n){t.isDone=!0,o(n)})},function(n){if(!u||u[It]||-1===n.res)return c(),!0},r||i))?sn(n.catch(o),c):n}catch(n){o(n)}finally{n&&!j(n)&&c()}}},o.setCreatePromiseImpl=function(n){ce=n?E(n):null},o.setDefaultIdlePromiseTimeout=Tn,o.setDefaultIdleTimeout=oe,o.setPromiseDebugState=function(n,t){Tt=n},o);
//# sourceMappingURL=ts-async.min.js.map