@envelop/graphql-middleware
Version:
24 lines (23 loc) • 953 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useGraphQLMiddleware = void 0;
const graphql_middleware_1 = require("graphql-middleware");
const useGraphQLMiddleware = (middlewares) => {
const graphqlMiddlewareAppliedTransformSymbol = 'graphqlMiddleware.appliedTransform';
return {
onSchemaChange({ schema, replaceSchema }) {
if (schema.extensions?.[graphqlMiddlewareAppliedTransformSymbol]) {
return;
}
if (middlewares.length > 0) {
const wrappedSchema = (0, graphql_middleware_1.applyMiddleware)(schema, ...middlewares);
wrappedSchema.extensions = {
...schema.extensions,
[graphqlMiddlewareAppliedTransformSymbol]: true,
};
replaceSchema(wrappedSchema);
}
},
};
};
exports.useGraphQLMiddleware = useGraphQLMiddleware;