1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.getClassOrUndefined = exports.getResolverTypeFn = exports.getClassName = exports.addResolverMetadata = void 0;
|
4 | const common_1 = require("@nestjs/common");
|
5 | const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
|
6 | const graphql_constants_1 = require("../graphql.constants");
|
7 | const undefined_resolver_type_error_1 = require("../schema-builder/errors/undefined-resolver-type.error");
|
8 | function addResolverMetadata(resolver, name, target, key, descriptor) {
|
9 | (0, common_1.SetMetadata)(graphql_constants_1.RESOLVER_TYPE_METADATA, resolver || name)(target, key, descriptor);
|
10 | (0, common_1.SetMetadata)(graphql_constants_1.RESOLVER_NAME_METADATA, name)(target, key, descriptor);
|
11 | }
|
12 | exports.addResolverMetadata = addResolverMetadata;
|
13 | function getClassName(nameOrType) {
|
14 | if ((0, shared_utils_1.isString)(nameOrType)) {
|
15 | return nameOrType;
|
16 | }
|
17 | const classOrUndefined = getClassOrUndefined(nameOrType);
|
18 | return classOrUndefined && classOrUndefined.name;
|
19 | }
|
20 | exports.getClassName = getClassName;
|
21 | function getResolverTypeFn(nameOrType, target) {
|
22 | return nameOrType
|
23 | ? nameOrType.prototype
|
24 | ? () => nameOrType
|
25 | : nameOrType
|
26 | : () => {
|
27 | throw new undefined_resolver_type_error_1.UndefinedResolverTypeError(target.name);
|
28 | };
|
29 | }
|
30 | exports.getResolverTypeFn = getResolverTypeFn;
|
31 | function getClassOrUndefined(typeOrFunc) {
|
32 | return isConstructor(typeOrFunc)
|
33 | ? typeOrFunc
|
34 | : (0, shared_utils_1.isFunction)(typeOrFunc)
|
35 | ? typeOrFunc()
|
36 | : undefined;
|
37 | }
|
38 | exports.getClassOrUndefined = getClassOrUndefined;
|
39 | function isConstructor(obj) {
|
40 | return (!!obj.prototype &&
|
41 | !!obj.prototype.constructor &&
|
42 | !!obj.prototype.constructor.name);
|
43 | }
|