UNPKG

@cran/lib.gql.core

Version:

GQL Core Functionality

30 lines (21 loc) 765 B
import { type GraphQLType, __EnumValue, __Schema, __Type, __TypeKind, } from "graphql"; import { createArg, modifyResolver } from "../utilities"; let once = false; export function withAugmentedIntrospection ( ) { if (once) { return; } once = true; __Schema.getFields()["types"]!.args = [ createArg({ name: "kind", type: __TypeKind, }), ]; const resolver = __Type.getFields()["kind"]!.resolve as ( type: GraphQLType ) => string; modifyResolver(__Schema.getFields()["types"]!, function filterByKind ( result, _source, args ) { if (!args.kind) { return result; } return (result as Array<GraphQLType>).filter(function filter ( type: GraphQLType ): boolean { return args.kind === resolver(type); }); }); }