@akumzy/gri-prisma-select
Version:
Generate Prisma select object from GraphQL Resolve Info.
25 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toPrismaSelectDirectiveTransformer = void 0;
const utils_1 = require("@graphql-tools/utils");
const toPrismaSelect_1 = require("./toPrismaSelect");
function toPrismaSelectDirectiveTransformer(schema, directiveName) {
return (0, utils_1.mapSchema)(schema, {
// Executes once for each object field definition in the schema
[utils_1.MapperKind.OBJECT_FIELD]: (fieldConfig) => {
var _a;
const directive = (_a = (0, utils_1.getDirective)(schema, fieldConfig, directiveName)) === null || _a === void 0 ? void 0 : _a[0];
if (directive) {
const { resolve } = fieldConfig;
fieldConfig.resolve = async function (source, arg, ctx, info) {
const prismaSelect = await (0, toPrismaSelect_1.toPrismaSelect)(info);
ctx = { ...ctx, prismaSelect };
return resolve === null || resolve === void 0 ? void 0 : resolve.apply(this, [source, arg, ctx, info]);
};
}
return fieldConfig;
},
});
}
exports.toPrismaSelectDirectiveTransformer = toPrismaSelectDirectiveTransformer;
//# sourceMappingURL=directive.js.map