UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 3.83 kB
import{clock as t}from"./clock.js";import{deprecatedFunction as e}from"./deprecate.js";import r from"./Error.js";import{once as n}from"./events.js";import o from"./Logger.js";import{isSome as i,isNone as s,removeMaybe as c,assumeNonNull as u}from"./maybe.js";async function l(t,e){const r=t.slice(),n=await Promise.all(t.map(((t,r)=>e(t,r))));return r.filter(((t,e)=>n[e]))}function m(t){return e(o.getLogger("esri.core.promiseUtils"),"create",{moduleName:"esri.core.promiseUtils",replacement:"new Promise()",version:"4.24"}),new Promise(((e,r)=>{try{t(e,r)}catch(n){Promise.resolve().then((()=>r(n)))}}))}function a(t="Aborted"){return new r("AbortError",t)}function f(t,e="Aborted"){if(p(t))throw a(e)}function h(t){return i(t)?"aborted"in t?t:t.signal:t}function p(t){const e=h(t);return i(e)&&e.aborted}function w(t){if(j(t))throw t}function b(t){if(!j(t))throw t}function v(t,e){const r=h(t);if(!s(r)){if(!r.aborted)return n(r,"abort",(()=>e()));e()}}function d(t,e){const r=h(t);if(!s(r))return f(r),n(r,"abort",(()=>e(a())))}function y(t,e){const r=h(e);return s(r)?t:new Promise(((r,n)=>{let o=v(e,(()=>n(a())));const i=()=>o=c(o);t.then(i,i),t.then(r,n)}))}function P(t,e,n){return Promise.race([t,U(e).then((()=>{throw new r("timeout",`Did not resolve within ${e} milliseconds (${n??"timeout"})`)}))])}function j(t){return"AbortError"===t?.name}async function g(t){try{return await t}catch(e){if(!j(e))throw e;return}}async function T(t,e=o.getLogger("esri")){try{return await t}catch(r){j(r)||e.error(r)}}function A(){let t=null;const e=new Promise(((e,r)=>{t={promise:void 0,resolve:e,reject:r}}));return t.promise=e,t}async function E(t){if(!t)return;if("function"!=typeof t.forEach){const e=Object.keys(t),r=e.map((e=>t[e])),n=await E(r),o={};return e.map(((t,e)=>o[t]=n[e])),o}const e=t;return new Promise((t=>{const r=[];let n=e.length;0===n&&t(r),e.forEach((e=>{const o={promise:e||Promise.resolve(e)};r.push(o),o.promise.then((t=>{o.value=t})).catch((t=>{o.error=t})).then((()=>{--n,0===n&&t(r)}))}))}))}async function L(t){return(await E(t)).filter((t=>!!t.value)).map((t=>t.value))}function U(t,e,r){const n=new AbortController;return v(r,(()=>n.abort())),new Promise(((r,o)=>{let i=setTimeout((()=>{i=0,r(e)}),t);v(n,(()=>{i&&(clearTimeout(i),o(a()))}))}))}function k(t,e,n,o){const i=n&&"abort"in n?n:null;null!=o||i||(o=n);let s=setTimeout((()=>{s=0,i&&i.abort()}),e);const c=()=>o||new r("promiseUtils:timeout","The wrapped promise did not resolve within "+e+" ms");return t.then((t=>{if(0===s)throw c();return clearTimeout(s),t}),(t=>{throw clearTimeout(s),0===s?c():t}))}function C(t){return t&&"function"==typeof t.then}function $(t){return C(t)?t:Promise.resolve(t)}function x(t,e=-1){let r,n,o,i,s=null;const c=(...l)=>{if(r){n=l,i&&i.reject(a()),i=A();const t=u(i.promise);if(s){const t=s;s=null,t.abort()}return t}if(o=i||A(),i=null,e>0){const n=new AbortController;r=$(t(...l,n.signal));const o=r;U(e).then((()=>{r===o&&(i?n.abort():s=n)}))}else r=1,r=$(t(...l));const m=()=>{const t=n;n=o=r=s=null,null!=t&&c(...t)},f=r,h=o;return f.then(m,m),f.then(h.resolve,h.reject),u(h.promise)};return c}function D(){let e,r;const n=new Promise(((t,n)=>{e=t,r=n})),o=t=>{e(t)};return o.resolve=t=>e(t),o.reject=t=>r(t),o.timeout=(e,r)=>t.setTimeout((()=>o.reject(r)),e),o.promise=n,o}function N(t,e){return t.then(e,e)}async function O(t){await Promise.resolve(),f(t)}export{U as after,N as always,m as create,a as createAbortError,A as createDeferred,D as createResolver,x as debounce,E as eachAlways,L as eachAlwaysValues,l as filter,g as ignoreAbortErrors,j as isAbortError,p as isAborted,C as isPromiseLike,T as logOnError,v as onAbort,d as onAbortOrThrow,w as throwIfAbortError,f as throwIfAborted,b as throwIfNotAbortError,k as timeout,O as waitTick,$ as when,y as whenOrAbort,P as whenOrTimeout};