@cran/gql.core
Version:
Cran/GraphQL Core Utilities
26 lines (25 loc) • 816 B
JavaScript
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,
};
}