UNPKG

@cran/gql.core

Version:

Cran/GraphQL Core Utilities

26 lines (25 loc) 816 B
import { modifyResolver } from "../utilities/wrapResolver"; import { __Schema, __Type, __TypeKind } from "graphql/type/introspection"; export function withAugmentedIntrospection() { __Schema.getFields().types.args = [ createArg({ name: "kind", type: __TypeKind, }), ]; const resolver = __Type.getFields().kind.resolve; modifyResolver(__Schema.getFields().types, function filterByKind(result, _source, args) { if (!args.kind) { return result; } return result.filter(function filter(type) { return args.kind === resolver(type); }); }); } export function createArg(config) { return { description: undefined, defaultValue: null, extensions: undefined, astNode: undefined, ...config, }; }