@zuu/owl
Version:
Zuu's Experimental GraphQL Implementation
43 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const getMetadataStorage_1 = require("../metadata/getMetadataStorage");
const findType_1 = require("../helpers/findType");
const decorators_1 = require("../helpers/decorators");
const errors_1 = require("../errors");
function Field(returnTypeFuncOrOptions, maybeOptions) {
return (prototype, propertyKey, descriptor) => {
if (typeof propertyKey === "symbol") {
throw new errors_1.SymbolKeysNotSupportedError();
}
const { options, returnTypeFunc } = decorators_1.getTypeDecoratorParams(returnTypeFuncOrOptions, maybeOptions);
const isResolver = Boolean(descriptor);
const isResolverMethod = Boolean(descriptor && descriptor.value);
const { getType, typeOptions } = findType_1.findType({
metadataKey: isResolverMethod ? "design:returntype" : "design:type",
prototype,
propertyKey,
returnTypeFunc,
typeOptions: options,
});
getMetadataStorage_1.getMetadataStorage().collectClassFieldMetadata({
name: propertyKey,
schemaName: options.name || propertyKey,
getType,
typeOptions,
target: prototype.constructor,
description: options.description,
deprecationReason: options.deprecationReason,
});
if (isResolver) {
getMetadataStorage_1.getMetadataStorage().collectFieldResolverMetadata({
kind: "internal",
methodName: propertyKey,
schemaName: options.name || propertyKey,
target: prototype.constructor,
handler: isResolverMethod ? prototype[propertyKey] : undefined,
});
}
};
}
exports.Field = Field;
//# sourceMappingURL=Field.js.map