UNPKG

breeze2-odata4

Version:

Library to allow OData 4 support for breezejs 2

62 lines 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var breeze_client_1 = require("breeze-client"); function getJsonResultsAdapter() { var adapter = new breeze_client_1.JsonResultsAdapter({ name: 'OData4', visitNode: visitNode }); return adapter; function visitNode(node, mappingContext, nodeContext) { var result = {}; var metadataStore = mappingContext.entityManager.metadataStore; var workingNode = node; var nodeODataType; if (node === null) { return result; } var entityType; var entityTypeName; if (nodeContext.nodeType === 'root') { if (mappingContext.query) { var eq = mappingContext.query; if (eq.resultEntityType instanceof breeze_client_1.EntityType && eq.resultEntityType) { entityType = eq.resultEntityType; } else { entityTypeName = metadataStore.getEntityTypeNameForResourceName(eq.resourceName); } } else { nodeODataType = node['@odata.type']; entityTypeName = breeze_client_1.MetadataStore.normalizeTypeName(nodeODataType.replace('#', '')); } } else if (nodeContext.nodeType === 'navProp' || nodeContext.nodeType === 'navPropItem') { entityTypeName = nodeContext.navigationProperty.entityTypeName; } entityType = entityType || (entityTypeName && metadataStore.getEntityType(entityTypeName, true)); if (entityType) { result.entityType = entityType; result.extraMetadata = {}; } if (workingNode.results) { result.node = workingNode.results; } var propertyName = nodeContext.propertyName; result.ignore = workingNode.__deferred != null || propertyName === '__metadata' || (propertyName === 'EntityKey' && workingNode.$type && breeze_client_1.core.stringStartsWith(workingNode.$type, 'System.Data')); result.ignore = false; return result; } } exports.getJsonResultsAdapter = getJsonResultsAdapter; //# sourceMappingURL=breeze-jsonResultsAdapter-factory.js.map