@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 2.09 kB
JavaScript
import{_ as r}from"../chunks/tslib.es6.js";import t from"./Accessor.js";import{isSome as o,isNone as e,abortMaybe as s,removeMaybe as n}from"./maybe.js";import{eachAlways as i,throwIfAbortError as l,onAbort as u}from"./promiseUtils.js";import{property as a}from"./accessorSupport/decorators/property.js";import"./accessorSupport/ensureType.js";import"./arrayUtils.js";import{subclass as p}from"./accessorSupport/decorators/subclass.js";function c(r,t,o){return i(r.map(((r,e)=>t.apply(o,[r,e]))))}async function h(r,t,o){return(await i(r.map(((r,e)=>t.apply(o,[r,e]))))).map((r=>r.value))}function m(r){return{ok:!0,value:r}}function f(r){return{ok:!1,error:r}}function _(r){return o(r)&&!0===r.ok?r.value:null}function y(r){return o(r)&&!1===r.ok?r.error:null}async function b(r){if(e(r))return{ok:!1,error:new Error("no promise provided")};try{return m(await r)}catch(t){return f(t)}}async function d(r){try{return m(await r)}catch(t){return l(t),f(t)}}function v(r){if(!0===r.ok)return r.value;throw r.error}function j(r,t){return new k(r,t)}let k=class extends t{get value(){return _(this._result)}get error(){return y(this._result)}get finished(){return o(this._result)}constructor(r,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=s(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:o}=this._abortController;this.promise=r(o),this.promise.then((r=>{this._result=m(r),this._cleanup()}),(r=>{this._result=f(r),this._cleanup()})),this._abortHandle=u(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=n(this._abortHandle),this._abortController=null}};r([a()],k.prototype,"value",null),r([a()],k.prototype,"error",null),r([a()],k.prototype,"finished",null),r([a()],k.prototype,"promise",void 0),r([a()],k.prototype,"_result",void 0),k=r([p("esri.core.asyncUtils.ReactiveTask")],k);export{v as assertResult,j as createTask,c as forEach,f as makeResultError,m as makeResultOk,h as map,b as result,y as resultError,d as resultOrAbort,_ as resultValue};