UNPKG

@arcgis/core

Version:

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

3 lines (2 loc) 1.67 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{valueOf as e,exists as t}from"./get.js";import{getProperties as r}from"./utils.js";import{originSpecificReadPropertyDefinition as s,originSpecificPropertyDefinition as o}from"./extensions/serializableProperty/utils.js";function n(e,r,s){if(!e?.read||!1===e.read.enabled||!e.read.source)return!1;const o=e.read.source;if("string"==typeof o){if(o===r)return!0;if(o.includes(".")&&o.startsWith(r)&&t(o,s))return!0}else for(const n of o){if(n===r)return!0;if(n.includes(".")&&n.startsWith(r)&&t(n,s))return!0}return!1}function i(e){return e&&(!e.read||!1!==e.read.enabled&&!e.read.source)}function a(e,t,r,o,a){let f=s(t[r],a);i(f)&&(e[r]=!0);for(const i of Object.getOwnPropertyNames(t))f=s(t[i],a),n(f,r,o)&&(e[i]=!0)}function f(e,t,r,s){const n=r.metadata,i=o(n[t],s),a=i?.default;if(void 0===a)return;const f="function"==typeof a?a.call(e,t,s):a;void 0!==f&&r.set(t,f)}const c={origin:"service"};function u(t,o,n=c){if(!o||"object"!=typeof o)return;const i=r(t),u=i.metadata,d={};for(const e of Object.getOwnPropertyNames(o))a(d,u,e,o,n);i.setDefaultOrigin(n.origin);for(const r of Object.getOwnPropertyNames(d)){const a=s(u[r],n).read,f=a?.source;let c;c=f&&"string"==typeof f?e(o,f):o[r],a?.reader&&(c=a.reader.call(t,c,o,n)),void 0!==c&&i.set(r,c)}if(!n||!n.ignoreDefaults){i.setDefaultOrigin("defaults");for(const e of Object.getOwnPropertyNames(u))d[e]||f(t,e,i,n)}i.setDefaultOrigin("user")}function d(e,t,r,s=c){const o={...s,messages:[]};r(o),o.messages?.forEach(t=>{"warning"!==t.type||e.loaded?s?.messages&&s.messages.push(t):e.loadWarnings.push(t)})}export{u as read,d as readLoadable};