@cran/lib.gql.core
Version:
GQL Core Functionality
30 lines (21 loc) • 765 B
text/typescript
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); });
});
}