@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.09 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import t from"../Error.js";function e(e,s){let a=s.responseType;a?"array-buffer"!==a&&"blob"!==a&&"json"!==a&&"native"!==a&&"native-request-init"!==a&&"text"!==a&&(a="text"):a="json",s.responseType=a;const r=s.signal;return delete s.signal,globalThis.invokeStaticMessage("request",{url:e,options:s},{signal:r}).then(async n=>{let o,i,l,u,c;if(n.data)if(n.data instanceof ArrayBuffer){if(!("json"!==a&&"text"!==a&&"blob"!==a||(o=new Blob([n.data]),"json"!==a&&"text"!==a||(u=await o.text(),"json"!==a)))){try{i=JSON.parse(u||null)}catch(p){const a={...p,url:e,requestOptions:s};throw new t("request:server",p.message,a)}if(i.error){const a={...i.error,url:e,requestOptions:s};throw new t("request:server",i.error.message,a)}}}else"native"===a&&(n.data.signal=r,l=await fetch(n.data.url,n.data),n.httpStatus=l.status);switch(a){case"blob":c=o;break;case"json":c=i;break;case"native":c=l;break;case"text":c=u;break;default:c=n.data}return{data:c,httpStatus:n.httpStatus,requestOptions:s,ssl:n.ssl,url:e}})}export{e as execute};