@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.4 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import has from"../core/has.js";import{getOrCreateMapValue as r}from"../core/MapUtils.js";import{isAborted as e,createAbortError as o}from"../core/promiseUtils.js";import{getOrigin as t}from"../core/urlUtils.js";import{isHostedAgolService as s}from"../layers/support/arcgisLayerUrl.js";import{createRequestError as n,processRequest as u}from"./process.js";const c={useQueue:!0,priority:"high"},i={useQueue:!0,priority:"auto"};function p(r){const e=f(r);if(!e)return!1;const o=l.get(e.origin);return o?.full??!1}async function a(t){const s=f(t.parameters.url);if(!s)return null;const{QueueProcessor:c,SharedConcurrency:i}=await import("../core/QueueProcessor.js");return r(l,s.origin,()=>{const r=(s.isHosted?has("request-queue-concurrency-hosted"):has("request-queue-concurrency-non-hosted"))??4;return m??=new i(has("request-queue-concurrency-global")??50),new c({concurrency:r,sharedConcurrency:m,process:r=>{if(e(r.parameters.requestOptions))throw n("",o("Request canceled"),r.parameters);return u(r)}})})}const l=new Map;let m;function f(r){let e,o=!1;return"string"==typeof r?(e=t(r,!0),o=s(r)):(e=r.origin,o=s(r.toString())),null==e?null:new y(e,o)}class y{constructor(r,e){this.origin=r,this.isHosted=e}}export{a as ensureRequestQueue,f as getOriginInfo,p as isRequestQueueFull,i as queueAutoPriority,c as queueHighPriority};