UNPKG

zync-nest-library

Version:

NestJS library with database backup and file upload utilities

31 lines (29 loc) 962 B
import { getDirective, MapperKind, mapSchema } from "@graphql-tools/utils"; import { defaultFieldResolver, GraphQLSchema } from "graphql"; export function deptLimitDirectiveTransformer( schema: GraphQLSchema, directiveName: string ) { return mapSchema(schema, { [MapperKind.OBJECT_FIELD]: (fieldConfig) => { const deptLimitDirective = getDirective( schema, fieldConfig, directiveName )?.[0]; if (deptLimitDirective) { const { resolve = defaultFieldResolver } = fieldConfig; fieldConfig.resolve = async function (source, args, context, info) { const result = await resolve(source, args, context, info); const { value }: any = fieldConfig.astNode.directives[0].arguments[0].value; if (Array.isArray(result)) { return result.slice(0, +value); } return result; }; return fieldConfig; } }, }); }