UNPKG

@graphql-yoga/plugin-disable-introspection

Version:

Disable Introspection plugin for GraphQL Yoga.

24 lines (23 loc) 949 B
"use strict"; 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); } }, }; }