Rename Transform
The rename transform allows you to rename:
- GraphQL types
 - GraphQL fields
 - GraphQL field arguments
 
The rename transform helps you avoid conflicting names, simplify complicated names and make
queries look more like mutations.
How to use?
You can import createRenameTransform to create an instance of the transform. You can use regular
JavaScript functions to rename types, fields, and field arguments.
mesh.config.ts
import {
  createRenameTransform,
  defineConfig,
  loadGraphQLHTTPSubgraph
} from '@graphql-mesh/compose-cli'
 
export const composeConfig = defineConfig({
  subgraphs: [
    {
      sourceHandler: loadGraphQLHTTPSubgraph('Countries', {
        endpoint: 'https://countries.trevorblades.com'
      }),
      transforms: [
        createRenameTransform({
          // Rename types
          typeRenamer(opts) {
            if (opts.typeName === 'Country') {
              return 'MyCountry'
            }
            return ''
          },
          // Rename fields
          fieldRenamer(opts) {
            if (opts.typeName === 'Country' && opts.fieldName === 'name') {
              return 'countryName'
            }
            return ''
          },
          // Rename field arguments
          argRenamer(opts) {
            if (
              opts.typeName === 'Country' &&
              opts.fieldName === 'name' &&
              opts.argName === 'lang'
            ) {
              return 'language'
            }
            return ''
          }
        })
      ]
    }
  ]
})