UNPKG

@omnigraph/odata

Version:
27 lines (26 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAbstractTypeResolver = createAbstractTypeResolver; const graphql_1 = require("graphql"); const getTypeNameFromRef_js_1 = require("../utils/getTypeNameFromRef.js"); function createAbstractTypeResolver({ entityTypeName, isAbstract, aliasNamespaceMap, multipleSchemas, namespaces, }) { return function abstractTypeResolver(root, context, info) { const typeRef = root['@odata.type']?.replace('#', ''); if (typeRef) { const typeName = (0, getTypeNameFromRef_js_1.getTypeNameFromRef)({ typeRef: root['@odata.type'].replace('#', ''), isInput: false, isRequired: false, aliasNamespaceMap, multipleSchemas, namespaces, isEnumType(typeName) { const type = info.schema.getType(typeName); return (0, graphql_1.isEnumType)(type); }, }); return typeName; } return isAbstract ? `T${entityTypeName}` : entityTypeName; }; }