@graphql-yoga/plugin-disable-introspection
Version:
Disable Introspection plugin for GraphQL Yoga.
17 lines (16 loc) • 591 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);
}
},
};
};