Catch the highlights of GraphQLConf 2023! Click for recordings. Or check out our recap blog post.
Docs
Transforms
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:

.meshrc.yaml
transforms:
  - resolversComposition:
      mode: bare | wrap
      compositions:
        - resolver: 'Query.me'
          composer: is-auth#isAuth
        - resolver: 'Mutation.*'
          composer: is-admin#isAdmin
is-auth.ts
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