UNPKG

@nestjs/graphql

Version:

Nest - modern, fast, powerful node.js web framework (@graphql)

37 lines (36 loc) 1.38 kB
import { SetMetadata } from '@nestjs/common'; import { isFunction, isString } from '@nestjs/common/utils/shared.utils.js'; import { RESOLVER_NAME_METADATA, RESOLVER_TYPE_METADATA, } from '../graphql.constants.js'; import { UndefinedResolverTypeError } from '../schema-builder/errors/undefined-resolver-type.error.js'; export function addResolverMetadata(resolver, name, target, key, descriptor) { SetMetadata(RESOLVER_TYPE_METADATA, resolver || name)(target, key, descriptor); SetMetadata(RESOLVER_NAME_METADATA, name)(target, key, descriptor); } export function getClassName(nameOrType) { if (isString(nameOrType)) { return nameOrType; } const classOrUndefined = getClassOrUndefined(nameOrType); return classOrUndefined && classOrUndefined.name; } export function getResolverTypeFn(nameOrType, target) { return nameOrType ? nameOrType.prototype ? () => nameOrType : nameOrType : () => { throw new UndefinedResolverTypeError(target.name); }; } export function getClassOrUndefined(typeOrFunc) { return isConstructor(typeOrFunc) ? typeOrFunc : isFunction(typeOrFunc) ? typeOrFunc() : undefined; } function isConstructor(obj) { return (!!obj.prototype && !!obj.prototype.constructor && !!obj.prototype.constructor.name); }