12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.25/esri/copyright.txt for details.
- */
- import{collectClassPaths as e}from"./utils.js";function n(e){const n=a(e),t=[],c=i(n),r={};p("api","",e.api,n,c.api,r);const s={};p("spec","",e.spec,n,c.spec,s);const u=o(n);for(const p in r){const e=r[p],n=s[p],i=u[e.container.id],o=`${e.container.name} (${n.container.name})${e.container.typeValue?` <${e.container.typeValue}>`:""}`;t.push({name:o,api:e,spec:n,indent:i})}return t}function t(e,n,i,o,a,r,s,u,f){if(s.has(o))return f;for(const l of o.properties){const d=n?`${n}.${l.name}`:l.name,m=i?`${i}.${l.name}`:l.name,y=a[m];if(y){const n=r[y[e].id];f.push({name:d,type:"ref",ref:y,refName:n}),p(e,m,y[e],a,r,u)}else"string"==typeof l.type?f.push(c(d,l)):(s.add(o),t(e,d,m,l.type,a,r,s,u,f))}return s.delete(o),f}function p(e,n,p,i,o,a){if(p.id in a)return a;const c={container:p,text:null,props:[]};return o[p.id].forEach((e=>a[e]=c)),t(e,"",n,p,i,o,new Set,a,c.props),c.props.sort(r),a}function i(e){const n={api:{},spec:{}};for(const t in e){const p=e[t],i=`${p.api.name} (${p.spec.name})${p.api.typeValue?` <${p.api.typeValue}>`:""}`;let o=n.api[p.api.id];o||(o=new Set,n.api[p.api.id]=o),o.add(i);let a=n.spec[p.spec.id];a||(a=new Set,n.spec[p.spec.id]=a),a.add(i)}return n}function o(e){const n={};for(const t in e){const p=t?t.split(".").length:0,i=e[t].api.id;n[i]=i in n?Math.min(p,n[i]):p}return n}function a(n){const t=e(n.api),p=e(n.spec),i={};i[""]={api:n.api,spec:n.spec};for(const e in t){const n=p[e];if(n){const p=t[e];i[e]={api:p,spec:n}}}return i}function c(e,n){return{name:e,type:n.enum||("string"==typeof n.type?n.type:""),default:JSON.stringify(n.default)}}function r(e,n){const t=e.name.localeCompare(n.name);if(0!==t)return t;const p=(e.type||"").localeCompare(n.type||"");return 0!==p?p:(e.default||"").localeCompare(n.default||"")}export{n as collect};
|