@graphql-yoga/plugin-disable-introspection
Version:
Disable Introspection plugin for GraphQL Yoga.
24 lines (23 loc) • 949 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.useDisableIntrospection = useDisableIntrospection;
const graphql_1 = require("graphql");
const promise_helpers_1 = require("@whatwg-node/promise-helpers");
function useDisableIntrospection(props) {
const disabledIntrospection = new WeakSet();
return {
onRequestParse({ request, serverContext }) {
return (0, promise_helpers_1.handleMaybePromise)(() => (props?.isDisabled ? props.isDisabled(request, serverContext) : true), result => {
if (result) {
disabledIntrospection.add(request);
}
});
},
onValidate({ addValidationRule, context }) {
const isDisabled = disabledIntrospection.has(context.request);
if (isDisabled) {
addValidationRule(graphql_1.NoSchemaIntrospectionCustomRule);
}
},
};
}
;