UNPKG

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