Catch the highlights of GraphQLConf 2023! Click for recordings. Or check out our recap blog post.
Resolvers Composition

Resolvers Composition Transform (deprecated)

We don't recommend to use this transform anymore!

The resolversComposition transform allows adding middleware to your existing resolvers.

npm i @graphql-mesh/transform-resolvers-composition

How to use?

Add the following configuration to your Mesh config file:

  - resolversComposition:
      mode: bare | wrap
        - resolver: ''
          composer: is-auth#isAuth
        - resolver: 'Mutation.*'
          composer: is-admin#isAdmin
module.exports = {
  isAuth: next => (root, args, context, info) => {
    // Check if Authorization header is present
    if (!context.headers.authorization) {
      throw new Error('Unauthorized')
    return next(root, args, context, info)

For information about "bare" and "wrap" modes, please read the dedicated section.

Config API Reference

  • mode (type: String (bare | wrap)) - Specify to apply resolvers-composition transforms to bare schema or by wrapping original schema
  • compositions (type: Array of Object, required) - Array of resolver/composer to apply:
    • resolver (type: String, required) - The GraphQL Resolver path Example: Query.users
    • composer (type: Any, required) - Path to the composer function Example: ./src/auth.js#authComposer