@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.5 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import e from"../core/Collection.js";import{makeHandle as r}from"../core/handleUtils.js";import t from"../core/Logger.js";import{getOrCreateMapValue as o}from"../core/MapUtils.js";import n from"../rest/featureService/FeatureService.js";import s from"./VersioningState.js";import i from"./VersionManagementService.js";import{createVersionAdapters as a}from"./versionAdapters/utils.js";async function c(r,t){let o;if("layers"in r){const e=a(r.allTables.concat(r.allLayers).filter((e=>"group"!==e.type)).toArray());r.utilityNetworks&&r.utilityNetworks.forEach((r=>{const t=a([r]);e.push(...t)})),o=e}else o=new e(r);const c=new Map;for(const n of o){const r=c.get(n.featureServiceUrl);r?r.push(n):c.set(n.featureServiceUrl,new e([n]))}const l=new e;for(const[e,a]of c){const r=new n({url:e});if(await r.load(),!r.versionManagementServiceUrl)continue;const o=new i({url:r.versionManagementServiceUrl});l.push(new s({versionManagementService:o,versionableItems:a,usePersistentReadSessions:t}))}return l}const l=new Map;async function f(e,n=!1){const s=await c(e.map,n);return o(l,e,(()=>(e.addHandles(r((()=>{l.delete(e),s.forEach((e=>e.destroy()))}))),s.forEach((e=>e.load().catch((e=>{t.getLogger("esri.versionManagement.VersioningState").error("Failed to load Versioning State",e)})))),s)))}export{c as createVersioningStates,f as getVersioningStates};