@nestjs/graphql
Version:
Nest - modern, fast, powerful node.js web framework (@graphql)
43 lines (42 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addResolverMetadata = addResolverMetadata;
exports.getClassName = getClassName;
exports.getResolverTypeFn = getResolverTypeFn;
exports.getClassOrUndefined = getClassOrUndefined;
const common_1 = require("@nestjs/common");
const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
const graphql_constants_1 = require("../graphql.constants");
const undefined_resolver_type_error_1 = require("../schema-builder/errors/undefined-resolver-type.error");
function addResolverMetadata(resolver, name, target, key, descriptor) {
(0, common_1.SetMetadata)(graphql_constants_1.RESOLVER_TYPE_METADATA, resolver || name)(target, key, descriptor);
(0, common_1.SetMetadata)(graphql_constants_1.RESOLVER_NAME_METADATA, name)(target, key, descriptor);
}
function getClassName(nameOrType) {
if ((0, shared_utils_1.isString)(nameOrType)) {
return nameOrType;
}
const classOrUndefined = getClassOrUndefined(nameOrType);
return classOrUndefined && classOrUndefined.name;
}
function getResolverTypeFn(nameOrType, target) {
return nameOrType
? nameOrType.prototype
? () => nameOrType
: nameOrType
: () => {
throw new undefined_resolver_type_error_1.UndefinedResolverTypeError(target.name);
};
}
function getClassOrUndefined(typeOrFunc) {
return isConstructor(typeOrFunc)
? typeOrFunc
: (0, shared_utils_1.isFunction)(typeOrFunc)
? typeOrFunc()
: undefined;
}
function isConstructor(obj) {
return (!!obj.prototype &&
!!obj.prototype.constructor &&
!!obj.prototype.constructor.name);
}