Renaming
Renaming transforms are constructed with a renamer function that returns a string. The transform
executes the renamer on each schema element within its scope and applies the revised names to
gateway schema elements. If a renamer returns undefined, the name will be left unchanged.
Additional options may control whether built-in types and scalars are renamed, see linked API docs.
- RenameTypes: renames all element types.
- RenameRootTypes: renames the root Query, Mutation, and Subscription types.
- RenameRootFields: renames fields on the root Query, Mutation, and Subscription objects.
- RenameObjectFields: renames fields of Object types.
- RenameObjectFieldArguments: renames field arguments of Object types.
- RenameInterfaceFields: renames fields of Interface types.
- RenameInputObjectFields: renames input fields of InputObject types.
import { stitchSchemas } from '@graphql-tools/stitch'
import {
  RenameInputObjectFields,
  RenameInterfaceFields,
  RenameObjectFieldArguments,
  RenameObjectFields,
  RenameRootFields,
  RenameRootTypes,
  RenameTypes,
  wrapSchema
} from '@graphql-tools/wrap'
 
const subschema = {
  schema: originalSchema,
  transforms: [
    new RenameTypes(name => `New${name}`),
    new RenameRootTypes(name => `New${name}`),
    new RenameRootFields((operationName, fieldName, fieldConfig) => `new_${fieldName}`),
    new RenameObjectFields((typeName, fieldName, fieldConfig) => `new_${fieldName}`),
    new RenameObjectFieldArguments((typeName, fieldName, argName) => `new_${argName}`),
    new RenameInterfaceFields((typeName, fieldName, fieldConfig) => `new_${fieldName}`),
    new RenameInputObjectFields((typeName, fieldName, inputFieldConfig) => `new_${fieldName}`)
  ]
}
 
const gateway = stitchSchemas({
  subschemas: [schema]
})Last updated on