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