Skip to content

Latest commit

 

History

History
46 lines (32 loc) · 2.22 KB

tiny-zoos-dance.md

File metadata and controls

46 lines (32 loc) · 2.22 KB
@graphql-tools/delegate @graphql-tools/wrap
major
major

Breaking changes

Schema generation optimization by removing transfomedSchema parameter

Previously we were applying the transforms multiple times. We needed to introduced some breaking changes to improve the initial wrapped/stitched schema generation performance;

  • Transform.transformSchema no longer accepts transformedSchema which can easily be created with applySchemaTransforms(schema, subschemaConfig) instead.
  • Proxying resolver factory function that is passed as createProxyingResolver to SubschemaConfig no longer takes transformedSchema which can easily be created with applySchemaTransforms(schema, subschemaConfig) instead.

stitchSchemas doesn't take nested arrays of subschemas

stitchSchemas no longer accepts an array of arrays of subschema configuration objects. Instead, it accepts an array of subschema configuration objects or schema objects directly.

stitchSchemas no longer prunes the schema with pruningOptions

You can use pruneSchema from @graphql-tools/utils to prune the schema instead.

stitchSchemas no longer respect "@computed" directive if stitchingDirectivesTransformer isn't applied

Also @graphql-tools/stitch no longer exports computedDirectiveTransformer and defaultSubschemaConfigTransforms. Instead, use @graphql-tools/stitching-directives package for @computed directive. Learn more about setting it up

computedFields has been removed from the merged type configuration

MergeTypeConfig.computedFields setting has been removed in favor of new computed field configuration written as:

merge: {
  MyType: {
    fields: {
      myComputedField: {
        selectionSet: '{ weight }',
        computed: true,
      }
    }
  }
}

A field-level selectionSet specifies field dependencies while the computed setting structures the field in a way that assures it is always selected with this data provided. The selectionSet is intentionally generic to support possible future uses. This new pattern organizes all field-level configuration (including canonical) into a single structure.