@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.15 kB
JavaScript
import{unwrapOr as e}from"../../../../../core/maybe.js";import{isHostedAgolService as r}from"../../../../../layers/support/arcgisLayerUrl.js";import{DrillDownFeatureSource as t}from"./DrillDownFeatureSource.js";import{PagedFeatureSource as o}from"./PagedFeatureSource.js";import{SnapshotFeatureSource as s}from"./SnapshotFeatureSource.js";import{StreamSource as n}from"./StreamSource.js";function a(e,r,a,u,i,p){const f=c(e,r,a,u,i,p);switch(f.type){case"feature":switch(f.origin){case"hosted":case"local":return new o(f);case"snapshot":return new s(f);default:return new t(f)}case"stream":return new n(f)}}function c(t,o,s,n,a,c){switch(t.type){case"snapshot":return{type:"feature",origin:"snapshot",featureCount:e(t.featureCount,0),serviceInfo:t,onMessage:n,outSR:o,tileInfoView:s,canAcceptRequest:a,store:c};case"stream":return{type:"stream",serviceInfo:t,onMessage:n,outSR:o,canAcceptRequest:a};case"memory":case"on-demand":return{type:"feature",serviceInfo:t,onMessage:n,outSR:o,origin:u(t.source),tileInfoView:s,canAcceptRequest:a}}function u(e){return Array.isArray(e)?"local":"path"in e&&r(e.path)?"hosted":"unknown"}}export{a as createSource};