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