@graphql-mesh/transport-rest
Version:
10 lines (9 loc) • 500 B
JavaScript
export function processDiscriminatorAnnotations({ interfaceType, discriminatorField, discriminatorMapping, }) {
const discriminatorMappingObj = Array.isArray(discriminatorMapping)
? Object.fromEntries(discriminatorMapping)
: discriminatorMapping;
interfaceType.resolveType = function discriminatorDirectiveHandler(data) {
const discriminatorValue = data[discriminatorField];
return discriminatorMappingObj?.[discriminatorValue] || discriminatorValue;
};
}