@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 1.29 kB
JavaScript
import{isOneOf as r}from"../ensureType.js";import{process as n}from"./serializableProperty/originAliases.js";import{create as i}from"./serializableProperty/reader.js";import{process as e}from"./serializableProperty/shorthands.js";import{create as o}from"./serializableProperty/writer.js";function t(r,n){return a(r,"read",n)}function s(r,n){return a(r,"write",n)}function a(r,n,i){let e=r&&r.json;if(r&&r.json&&r.json.origins&&i){const o=i.origin&&r.json.origins[i.origin];o&&("any"===n||n in o)&&(e=o)}return e}function p(r){const n=y(r);if(r.json.origins)for(const e in r.json.origins){const t=r.json.origins[e],s=t.types?f(t):n;i(s,t,!1),t.types&&!t.write&&r.json.write&&r.json.write.enabled&&(t.write={...r.json.write}),o(s,t)}i(n,r.json,!0),o(n,r.json)}function y(r){return r.json.types?u(r.json):r.type?j(r):u(r)}function f(r){return r.type?j(r):u(r)}function j(n){if(!n.type)return;let i=0,e=n.type;for(;Array.isArray(e)&&!r(e);)e=e[0],i++;return{type:e,ndimArray:i}}function u(r){if(!r.types)return;let n=0,i=r.types;for(;Array.isArray(i);)i=i[0],n++;return{types:i,ndimArray:n}}function c(r){e(r)&&(n(r),p(r))}export{a as originSpecificPropertyDefinition,t as originSpecificReadPropertyDefinition,s as originSpecificWritePropertyDefinition,c as processPrototypePropertyMetadata};