@nestjs/graphql
Version:
Nest - modern, fast, powerful node.js web framework (@graphql)
22 lines (21 loc) • 1.05 kB
JavaScript
import 'reflect-metadata';
import { RESOLVER_NAME_METADATA, RESOLVER_PROPERTY_METADATA, RESOLVER_REFERENCE_KEY, RESOLVER_REFERENCE_METADATA, RESOLVER_TYPE_METADATA, } from '../graphql.constants.js';
export function extractMetadata(instance, prototype, methodName, filterPredicate) {
const callback = prototype[methodName];
const resolverType = Reflect.getMetadata(RESOLVER_TYPE_METADATA, callback) ||
Reflect.getMetadata(RESOLVER_TYPE_METADATA, instance.constructor);
const isPropertyResolver = !!Reflect.getMetadata(RESOLVER_PROPERTY_METADATA, callback);
const resolverName = Reflect.getMetadata(RESOLVER_NAME_METADATA, callback);
const isReferenceResolver = !!Reflect.getMetadata(RESOLVER_REFERENCE_METADATA, callback);
if (filterPredicate(resolverType, isReferenceResolver, isPropertyResolver)) {
return null;
}
const name = isReferenceResolver
? RESOLVER_REFERENCE_KEY
: resolverName || methodName;
return {
type: resolverType,
methodName,
name,
};
}