@graphql-yoga/plugin-disable-introspection
Version:
Disable Introspection plugin for GraphQL Yoga.
19 lines (18 loc) • 623 B
JavaScript
import { NoSchemaIntrospectionCustomRule } from 'graphql';
const store = new WeakMap();
export const useDisableIntrospection = (props) => {
return {
async onRequest({ request }) {
const isDisabled = props?.isDisabled
? await props.isDisabled(request)
: true;
store.set(request, isDisabled);
},
onValidate({ addValidationRule, context }) {
const isDisabled = store.get(context.request) ?? true;
if (isDisabled) {
addValidationRule(NoSchemaIntrospectionCustomRule);
}
},
};
};