@graphql-tools/delegate | @graphql-tools/wrap |
---|---|
major |
major |
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 acceptstransformedSchema
which can easily be created withapplySchemaTransforms(schema, subschemaConfig)
instead.- Proxying resolver factory function that is passed as
createProxyingResolver
toSubschemaConfig
no longer takestransformedSchema
which can easily be created withapplySchemaTransforms(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.