@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 4.54 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import e from"../../../core/Logger.js";import t from"../../../geometry/SpatialReference.js";import i from"../DataModel.js";import r from"../EntityType.js";import n from"../FieldIndex.js";import a from"../GraphObjectType.js";import o from"../GraphProperty.js";import s from"../RelationshipType.js";import p from"../SearchIndex.js";import l from"../SourceTypeValueBehavior.js";import{EsriUuidMethodHintTypes as d,EsriIdentifierInfoType as f,EsriNamedTypeCategory as u,NamedObjectTypes as c,EsriGraphPropertyRole as y,EsriGeometryTypes as m,EsriFieldTypes as _}from"./WasmDataModelWrapperInterfaces.js";let g=!1;function h(r){r.deleteLater(),g=!1;const n=new i({timestamp:r.timestamp,spatialReference:new t(r.spatial_reference),strict:r.strict,objectIdField:r.objectid_property,globalIdField:r.globalid_property,arcgisManaged:r.arcgis_managed,identifierInfo:{identifierMappingInfo:{identifierInfoType:f[r.identifier_info?.identifier_mapping_info?.identifier_info_type?.value],databaseNativeIdentifier:r.identifier_info?.identifier_mapping_info?.database_native_identifier,uniformPropertyIdentifier:{identifierPropertyName:r.identifier_info?.identifier_mapping_info?.uniform_property_identifier?.identifier_property_name}},identifierGenerationInfo:{uuidMethodHint:d[r.identifier_info?.identifier_generation_info?.uuid_method_hint?.value]}},searchIndexes:S(r.search_indexes),entityTypes:L(r.entity_types),relationshipTypes:F(r.relationship_types),metaEntityTypes:L(r.meta_entity_types),provenanceSourceTypeValues:G(r.provenance_source_type_values.value_behavior_array)});return g&&e.getLogger("esri.rest.knowledgeGraph.knowledgeGraphService").warnOnce("A big integer field was detected in the retrieved data model. The `big-integer` field type is not fully supported in web clients. Please see https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-Field.html#type"),n}function v(e){return e.deleteLater(),new r(z(e))}function b(e){return e.deleteLater(),new n({name:e.name,unique:e.unique,ascending:e.ascending,description:e.description,fieldNames:x(e.fields)})}function j(e){return e.deleteLater(),new a(z(e))}function z(e){return{name:e.name,alias:e.alias,role:c[e.role.value],strict:e.strict,properties:M(e.properties),fieldIndexes:P(e.field_indexes)}}function T(e){return e.deleteLater(),new o({alias:e.alias,name:e.name,fieldType:_[e.field_type.value]?_[e.field_type.value]:void 0,geometryType:m[e.geometry_type.value]?m[e.geometry_type.value]:null,hasM:e.has_m,hasZ:e.has_z,nullable:e.nullable,editable:e.editable,required:e.required,defaultVisibility:e.default_visibility,systemMaintained:e.system_maintained,role:y[e.role.value],defaultValue:e.default_value})}function w(e){e.deleteLater();const t=z(e),i=[];for(let r=0;r<e.end_points.size();r++){const t=e.end_points.get(r);i.push({originEntityType:t.origin_entity_type,destinationEntityType:t.dest_entity_type})}return e.end_points.delete(),new s(Object.assign({endPoints:i},t))}function I(e){return new l({behavior:e.behavior,value:e.value})}function L(e){const t=[];for(let i=0;i<e.size();i++)t.push(v(e.get(i)));return e.delete(),t}function x(e){const t=[];for(let i=0;i<e.size();i++)t.push(e.get(i));return e.delete(),t}function M(e){const t=[];for(let i=0;i<e.size();i++){const r=T(e.get(i));"esriFieldTypeBigInteger"===r.fieldType&&(g=!0),t.push(r)}return e.delete(),t}function P(e){const t=[];for(let i=0;i<e.size();i++)t.push(b(e.get(i)));return e.delete(),t}function F(e){const t=[];for(let i=0;i<e.size();i++)t.push(w(e.get(i)));return e.delete(),t}function G(e){const t=[];for(let i=0;i<e.size();i++){const r=e.get(i);r.deleteLater(),t.push(I(r))}return e.delete(),t}function S(e){const t=[];for(let i=0;i<e.size();i++){const r=new p,n=e.get(i);r.name=n.name,r.supportedCategory=u[n.supported_category.value];const a=n.analyzers.size();for(let e=0;e<a;e++)r.analyzers.push({name:n.analyzers.get(e).name});n.analyzers.delete();for(let e=0;e<n.search_properties.keys().size();e++){const t=n.search_properties.keys().get(e),i=n.search_properties.get(t),a=[];for(let e=0;e<i.property_names.size();e++)a.push(i.property_names.get(e));r.searchProperties.set(t,{propertyNames:a})}t.push(r)}return e.delete(),t}export{h as wasmToDataModel,v as wasmToEntityType,b as wasmToFieldIndex,j as wasmToGraphObjectType,T as wasmToGraphProperty,w as wasmToRelationshipType,I as wasmToSourceTypeValueBehavior};