UNPKG

@envelop/graphql-middleware

Version:
20 lines (19 loc) 759 B
import { applyMiddleware } from 'graphql-middleware'; export const useGraphQLMiddleware = (middlewares) => { const graphqlMiddlewareAppliedTransformSymbol = 'graphqlMiddleware.appliedTransform'; return { onSchemaChange({ schema, replaceSchema }) { if (schema.extensions?.[graphqlMiddlewareAppliedTransformSymbol]) { return; } if (middlewares.length > 0) { const wrappedSchema = applyMiddleware(schema, ...middlewares); wrappedSchema.extensions = { ...schema.extensions, [graphqlMiddlewareAppliedTransformSymbol]: true, }; replaceSchema(wrappedSchema); } }, }; };