UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 1.16 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{getPreferredHost as e,getPreferredUrl as r}from"./layerUtils.js";import{requestServiceJSON as a}from"../../request/serviceJSON.js";const t=new Set(["Catalog Layer","Feature Layer","Oriented Imagery Layer"]);async function n(t,n){const{loadContext:s,...c}=n||{},o=s?await s.fetchServiceMetadata(t,c):await a(t,c),y=e();l(o),i(o);const u={serviceJSON:o,preferredHost:y};if((o.currentVersion??0)<10.5)return u;const f=`${r()??t}/layers`,L=s?await s.fetchServiceMetadata(f,c):await a(f,c);return l(L),i(L),u.layersJSON={layers:L.layers,tables:L.tables},u}function s(e){const{type:r}=e;return!!r&&t.has(r)}function c(e){return"Table"===e.type}function i(e){e.layers=e.layers?.filter(s),e.tables=e.tables?.filter(c)}function o(e){e.type||="Feature Layer"}function y(e){e.type||="Table"}function l(e){e.layers?.forEach(o),e.tables?.forEach(y)}function u(e){switch(e){case"Feature Layer":case"Table":return"FeatureLayer";case"Oriented Imagery Layer":return"OrientedImageryLayer";case"Catalog Layer":return"CatalogLayer"}return"FeatureLayer"}export{n as fetchFeatureService,u as getLayerModuleType};