Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upcoming Release Changes #3011

Merged
merged 1 commit into from
Jul 28, 2021
Merged

Upcoming Release Changes #3011

merged 1 commit into from
Jul 28, 2021

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented May 27, 2021

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to master, this PR will be updated.

Releases

@graphql-tools/batch-delegate@8.0.0

Major Changes

  • dae6dc7: refactor: ExecutionParams type replaced by Request type

    rootValue property is now a part of the Request type.

    When delegating with delegateToSchema, rootValue can be set multiple ways:

    • when using a custom executor, the custom executor can utilize a rootValue in whichever custom way it specifies.
    • when using the default executor (execute/subscribe from graphql-js):
      -- rootValue can be passed to delegateToSchema via a named option
      -- rootValue can be included within a subschemaConfig
      -- otherwise, rootValue is inferred from the originating schema

    When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.

Patch Changes

@graphql-tools/batch-execute@8.0.0

Major Changes

  • dae6dc7: refactor: ExecutionParams type replaced by Request type

    rootValue property is now a part of the Request type.

    When delegating with delegateToSchema, rootValue can be set multiple ways:

    • when using a custom executor, the custom executor can utilize a rootValue in whichever custom way it specifies.
    • when using the default executor (execute/subscribe from graphql-js):
      -- rootValue can be passed to delegateToSchema via a named option
      -- rootValue can be included within a subschemaConfig
      -- otherwise, rootValue is inferred from the originating schema

    When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.

  • c42e811: BREAKING CHANGES;

    • Rename Request to ExecutionRequest
    • Add required operationType: OperationTypeNode field in ExecutionRequest
    • Add context in createRequest and createRequestInfo instead of delegateToSchema

    It doesn't rely on info.operation.operationType to allow the user to call an operation from different root type.
    And it doesn't call getOperationAST again and again to get operation type from the document/operation because we have it in Request and ExecutionParams
    https://github.com/ardatan/graphql-tools/pull/3166/files#diff-d4824895ea613dcc1f710c3ac82e952fe0ca12391b671f70d9f2d90d5656fdceR38

    Improvements;

    • Memoize defaultExecutor for a single GraphQLSchema so allow getBatchingExecutor to memoize batchingExecutor correctly.
    • And there is no different defaultExecutor is created for subscription and other operation types. Only one executor is used.

    Batch executor is memoized by executor reference but createDefaultExecutor didn't memoize the default executor so this memoization wasn't working correctly on batch-execute side.
    https://github.com/ardatan/graphql-tools/blob/remove-info-executor/packages/batch-execute/src/getBatchingExecutor.ts#L9

  • c0ca319: BREAKING CHANGE

    • Remove Subscriber and use only Executor
      • Now Executor can receive AsyncIterable and subscriptions will also be handled by Executor. This is a future-proof change for defer, stream and live queries

Patch Changes

@graphql-tools/delegate@8.0.0

Major Changes

  • 7d3e300: BREAKING CHANGE

    • Remove rootValue from subschemaConfig
      • Pass it through ExecutionParams or delegation options
    • Do not pass info.rootValue if rootValue is falsy
  • d53e3be: BREAKING CHANGES;

    Refactor the core delegation transforms into individual functions to modify request and results. This will improve the performance considerably by reducing the number of visits over the request document.

    • Replace CheckResultAndHandleErrors with checkResultAndHandleErrors
    • Remove delegationBindings
    • Replace AddArgumentsAsVariables, AddSelectionSets, AddTypenameToAbstract, ExpandAbstractTypes, FilterToSchema, VisitSelectionSets and WrapConcreteTypes with prepareGatewayRequest and finalizeGatewayRequest
  • dae6dc7: refactor: ExecutionParams type replaced by Request type

    rootValue property is now a part of the Request type.

    When delegating with delegateToSchema, rootValue can be set multiple ways:

    • when using a custom executor, the custom executor can utilize a rootValue in whichever custom way it specifies.
    • when using the default executor (execute/subscribe from graphql-js):
      -- rootValue can be passed to delegateToSchema via a named option
      -- rootValue can be included within a subschemaConfig
      -- otherwise, rootValue is inferred from the originating schema

    When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.

  • c42e811: BREAKING CHANGES;

    • Rename Request to ExecutionRequest
    • Add required operationType: OperationTypeNode field in ExecutionRequest
    • Add context in createRequest and createRequestInfo instead of delegateToSchema

    It doesn't rely on info.operation.operationType to allow the user to call an operation from different root type.
    And it doesn't call getOperationAST again and again to get operation type from the document/operation because we have it in Request and ExecutionParams
    https://github.com/ardatan/graphql-tools/pull/3166/files#diff-d4824895ea613dcc1f710c3ac82e952fe0ca12391b671f70d9f2d90d5656fdceR38

    Improvements;

    • Memoize defaultExecutor for a single GraphQLSchema so allow getBatchingExecutor to memoize batchingExecutor correctly.
    • And there is no different defaultExecutor is created for subscription and other operation types. Only one executor is used.

    Batch executor is memoized by executor reference but createDefaultExecutor didn't memoize the default executor so this memoization wasn't working correctly on batch-execute side.
    https://github.com/ardatan/graphql-tools/blob/remove-info-executor/packages/batch-execute/src/getBatchingExecutor.ts#L9

  • 7d3e300: BREAKING CHANGE

    • Now it uses the native AggregateError implementation. The major difference is the individual errors are kept under errors property instead of the object itself with Symbol.iterator.
    // From;
    for (const error of aggregateError)
    // To;
    for (const error of aggregateError.errors)
  • aa43054: BREAKING CHANGE: validations are skipped by default, use validateRequest: true to reenable

  • c0ca319: BREAKING CHANGE

    • Remove Subscriber and use only Executor
      • Now Executor can receive AsyncIterable and subscriptions will also be handled by Executor. This is a future-proof change for defer, stream and live queries

Patch Changes

  • Updated dependencies [af9a78d]
  • Updated dependencies [9c26b84]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [dae6dc7]
  • Updated dependencies [6877b91]
  • Updated dependencies [7d3e300]
  • Updated dependencies [c42e811]
  • Updated dependencies [7d3e300]
  • Updated dependencies [8c8d4fc]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [74581cf]
  • Updated dependencies [c0ca319]
  • Updated dependencies [7d3e300]
  • Updated dependencies [982c8f5]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
    • @graphql-tools/utils@8.0.0
    • @graphql-tools/schema@8.0.0
    • @graphql-tools/batch-execute@8.0.0

@graphql-tools/graphql-tag-pluck@7.0.0

Major Changes

  • 34c31de: BREAKING CHANGE
    • feat(graphql-tag-pluck): keep locationOffset and return graphql-js Source instead of string

Patch Changes

  • f1d7b3c: ensure operations with GraphQL magic comment are only parsed once.
  • Updated dependencies [af9a78d]
  • Updated dependencies [9c26b84]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [dae6dc7]
  • Updated dependencies [6877b91]
  • Updated dependencies [c42e811]
  • Updated dependencies [7d3e300]
  • Updated dependencies [8c8d4fc]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [74581cf]
  • Updated dependencies [c0ca319]
  • Updated dependencies [982c8f5]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
    • @graphql-tools/utils@8.0.0

graphql-tools@8.0.0

Major Changes

  • 7d3e300: BREAKING CHANGE
    • Now it only exports makeExecutableSchema from @graphql-tools/schema
    • Please migrate to scoped packages(@graphql-tools/*) because this npm package will no longer get updated

Patch Changes

  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
    • @graphql-tools/schema@8.0.0

@graphql-tools/jest-transform@1.0.0

Major Changes

Patch Changes

  • Updated dependencies [5a4d198]
    • @graphql-tools/webpack-loader@6.5.0

@graphql-tools/links@8.0.0

Major Changes

  • dae6dc7: refactor: ExecutionParams type replaced by Request type

    rootValue property is now a part of the Request type.

    When delegating with delegateToSchema, rootValue can be set multiple ways:

    • when using a custom executor, the custom executor can utilize a rootValue in whichever custom way it specifies.
    • when using the default executor (execute/subscribe from graphql-js):
      -- rootValue can be passed to delegateToSchema via a named option
      -- rootValue can be included within a subschemaConfig
      -- otherwise, rootValue is inferred from the originating schema

    When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.

  • c42e811: BREAKING CHANGES;

    • Rename Request to ExecutionRequest
    • Add required operationType: OperationTypeNode field in ExecutionRequest
    • Add context in createRequest and createRequestInfo instead of delegateToSchema

    It doesn't rely on info.operation.operationType to allow the user to call an operation from different root type.
    And it doesn't call getOperationAST again and again to get operation type from the document/operation because we have it in Request and ExecutionParams
    https://github.com/ardatan/graphql-tools/pull/3166/files#diff-d4824895ea613dcc1f710c3ac82e952fe0ca12391b671f70d9f2d90d5656fdceR38

    Improvements;

    • Memoize defaultExecutor for a single GraphQLSchema so allow getBatchingExecutor to memoize batchingExecutor correctly.
    • And there is no different defaultExecutor is created for subscription and other operation types. Only one executor is used.

    Batch executor is memoized by executor reference but createDefaultExecutor didn't memoize the default executor so this memoization wasn't working correctly on batch-execute side.
    https://github.com/ardatan/graphql-tools/blob/remove-info-executor/packages/batch-execute/src/getBatchingExecutor.ts#L9

  • c0ca319: BREAKING CHANGE

    • Remove Subscriber and use only Executor
      • Now Executor can receive AsyncIterable and subscriptions will also be handled by Executor. This is a future-proof change for defer, stream and live queries

Minor Changes

  • 7d3e300: feat(links): Respect operationName

Patch Changes

@graphql-tools/load@7.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

Patch Changes

  • c5342de: Loader.canLoad and Loader.canLoadSync can only handle file paths not glob patterns
  • Updated dependencies [af9a78d]
  • Updated dependencies [9c26b84]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [dae6dc7]
  • Updated dependencies [6877b91]
  • Updated dependencies [c42e811]
  • Updated dependencies [7d3e300]
  • Updated dependencies [8c8d4fc]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [74581cf]
  • Updated dependencies [c0ca319]
  • Updated dependencies [982c8f5]
  • Updated dependencies [7d3e300]
  • Updated dependencies [a31f959]
  • Updated dependencies [7d3e300]
    • @graphql-tools/utils@8.0.0
    • @graphql-tools/merge@6.2.15

@graphql-tools/apollo-engine-loader@7.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

  • 7d3e300: BREAKING CHANGE

    • Now it uses the native AggregateError implementation. The major difference is the individual errors are kept under errors property instead of the object itself with Symbol.iterator.
    // From;
    for (const error of aggregateError)
    // To;
    for (const error of aggregateError.errors)

Minor Changes

  • a31f959: feat(apollo-engine): add sync support

Patch Changes

@graphql-tools/code-file-loader@7.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

  • c5342de: Loader.canLoad and Loader.canLoadSync can only handle file paths not glob patterns

Minor Changes

  • af9a78d: include rawSDL in Source of plucked files
  • bbb5746: allow supplying config via constructor

Patch Changes

  • a31f959: enhance(code-file-loader): remove extra work on loader level
  • Updated dependencies [af9a78d]
  • Updated dependencies [9c26b84]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [dae6dc7]
  • Updated dependencies [6877b91]
  • Updated dependencies [c42e811]
  • Updated dependencies [7d3e300]
  • Updated dependencies [8c8d4fc]
  • Updated dependencies [7d3e300]
  • Updated dependencies [f1d7b3c]
  • Updated dependencies [7d3e300]
  • Updated dependencies [74581cf]
  • Updated dependencies [c0ca319]
  • Updated dependencies [34c31de]
  • Updated dependencies [982c8f5]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
    • @graphql-tools/utils@8.0.0
    • @graphql-tools/graphql-tag-pluck@7.0.0

@graphql-tools/git-loader@7.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

  • c5342de: Loader.canLoad and Loader.canLoadSync can only handle file paths not glob patterns

Minor Changes

  • 67cf150: feat(git-loader): add glob support

Patch Changes

@graphql-tools/github-loader@7.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

Minor Changes

  • a31f959: feat(github-loader): handle SDL correctly on loader level

Patch Changes

@graphql-tools/graphql-file-loader@7.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

  • c5342de: Loader.canLoad and Loader.canLoadSync can only handle file paths not glob patterns

Patch Changes

@graphql-tools/json-file-loader@7.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

Patch Changes

@graphql-tools/module-loader@7.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

Minor Changes

  • a31f959: feat(module-loader): check if module exists using FS

Patch Changes

@graphql-tools/url-loader@7.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

  • 614c08c: BREAKING CHANGE

    • Remove handleSDLAsync and handleSDLSync; use handleSDL instead
    • Remove useSSEForSubscription and useWebSocketLegacyProtocol; use subscriptionProtocol instead
    • If introspection source is different than endpoint, use endpoint for remote execution source
    • Default HTTP Executor is renamed to buildHTTPExecutor with a new signature
    • build*Subscriber methods are renamed to buildWSLegacyExecutor, buildWSExecutor and buildSSEExecutor with new signatures
    • getFetch no longer takes async flag
  • dae6dc7: refactor: ExecutionParams type replaced by Request type

    rootValue property is now a part of the Request type.

    When delegating with delegateToSchema, rootValue can be set multiple ways:

    • when using a custom executor, the custom executor can utilize a rootValue in whichever custom way it specifies.
    • when using the default executor (execute/subscribe from graphql-js):
      -- rootValue can be passed to delegateToSchema via a named option
      -- rootValue can be included within a subschemaConfig
      -- otherwise, rootValue is inferred from the originating schema

    When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.

  • c0ca319: BREAKING CHANGE

    • Remove Subscriber and use only Executor
      • Now Executor can receive AsyncIterable and subscriptions will also be handled by Executor. This is a future-proof change for defer, stream and live queries
  • 7d3e300: BREAKING CHANGE

    • No more accept arrays or functions for headers

    NEW FEATURES

    • Respect operationName and extensions
    • Ability to get headers from extensions.headers

Patch Changes

  • a31f959: enhance(url-loader): avoid doing extra work on loader level
  • fd81e80: fix(url-loader): fix node support for EventSource
  • Updated dependencies [af9a78d]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [9c26b84]
  • Updated dependencies [7d3e300]
  • Updated dependencies [d53e3be]
  • Updated dependencies [7d3e300]
  • Updated dependencies [dae6dc7]
  • Updated dependencies [6877b91]
  • Updated dependencies [c42e811]
  • Updated dependencies [7d3e300]
  • Updated dependencies [8c8d4fc]
  • Updated dependencies [c0ca319]
  • Updated dependencies [7d3e300]
  • Updated dependencies [aa43054]
  • Updated dependencies [7d3e300]
  • Updated dependencies [74581cf]
  • Updated dependencies [c0ca319]
  • Updated dependencies [982c8f5]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
    • @graphql-tools/utils@8.0.0
    • @graphql-tools/delegate@8.0.0
    • @graphql-tools/wrap@8.0.0

@graphql-tools/schema@8.0.0

Major Changes

  • 7d3e300: BREAKING CHANGE
  • 7d3e300: BREAKING CHANGE
    • Remove logger and addErrorLoggingToSchema
      • You can implement logging and debugging mechanism outside the resolvers using some kind of plugin system based library like Envelop
  • 7d3e300: BREAKING CHANGE
    • Remove schema level resolvers feature and addSchemaLevelResolver
  • 7d3e300: BREAKING CHANGE
    • No longer exports buildSchemaFromTypeDefinitions, use buildSchema from graphql-js instead
    • Remove allowUndefinedResolve option in makeExecutableSchema because GraphQL Schema itself does this checking

Patch Changes

  • 7d3e300: enhance(schema): use merge package to handle typeDefs and resolvers merging
  • Updated dependencies [af9a78d]
  • Updated dependencies [9c26b84]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [dae6dc7]
  • Updated dependencies [6877b91]
  • Updated dependencies [c42e811]
  • Updated dependencies [7d3e300]
  • Updated dependencies [8c8d4fc]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [74581cf]
  • Updated dependencies [c0ca319]
  • Updated dependencies [982c8f5]
  • Updated dependencies [7d3e300]
  • Updated dependencies [a31f959]
  • Updated dependencies [7d3e300]
    • @graphql-tools/utils@8.0.0
    • @graphql-tools/merge@6.2.15

@graphql-tools/stitch@8.0.0

Major Changes

  • 7d3e300: BREAKING CHANGE

  • dae6dc7: refactor: ExecutionParams type replaced by Request type

    rootValue property is now a part of the Request type.

    When delegating with delegateToSchema, rootValue can be set multiple ways:

    • when using a custom executor, the custom executor can utilize a rootValue in whichever custom way it specifies.
    • when using the default executor (execute/subscribe from graphql-js):
      -- rootValue can be passed to delegateToSchema via a named option
      -- rootValue can be included within a subschemaConfig
      -- otherwise, rootValue is inferred from the originating schema

    When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.

  • 74581cf: fix(getDirectives): preserve order around repeatable directives

    BREAKING CHANGE: getDirectives now always return an array of individual DirectiveAnnotation objects consisting of name and args properties.

    New useful function getDirective returns an array of objects representing any args for each use of a single directive (returning the empty object {} when a directive is used without arguments).

    Note: The getDirective function returns an array even when the specified directive is non-repeatable. This is because one use of this function is to throw an error if more than one directive annotation is used for a non repeatable directive!

    When specifying directives in extensions, one can use either the old or new format.

  • c0ca319: BREAKING CHANGE

    • Remove Subscriber and use only Executor
      • Now Executor can receive AsyncIterable and subscriptions will also be handled by Executor. This is a future-proof change for defer, stream and live queries

Minor Changes

  • 1b0ce2a: @ardatanfeat(stitch): add helpers for Relay

Patch Changes

  • 91155ab: Fixed issue with stitchSchemas function returning info object with left.subschema and right.subschema referencing the same object
  • Updated dependencies [af9a78d]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [9c26b84]
  • Updated dependencies [7d3e300]
  • Updated dependencies [d53e3be]
  • Updated dependencies [7d3e300]
  • Updated dependencies [dae6dc7]
  • Updated dependencies [6877b91]
  • Updated dependencies [7d3e300]
  • Updated dependencies [c42e811]
  • Updated dependencies [7d3e300]
  • Updated dependencies [8c8d4fc]
  • Updated dependencies [7d3e300]
  • Updated dependencies [c0ca319]
  • Updated dependencies [7d3e300]
  • Updated dependencies [aa43054]
  • Updated dependencies [7d3e300]
  • Updated dependencies [74581cf]
  • Updated dependencies [c0ca319]
  • Updated dependencies [7d3e300]
  • Updated dependencies [982c8f5]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [a31f959]
  • Updated dependencies [7d3e300]
    • @graphql-tools/utils@8.0.0
    • @graphql-tools/delegate@8.0.0
    • @graphql-tools/wrap@8.0.0
    • @graphql-tools/schema@8.0.0
    • @graphql-tools/batch-delegate@8.0.0
    • @graphql-tools/merge@6.2.15

@graphql-tools/stitching-directives@2.0.0

Major Changes

  • 74581cf: fix(getDirectives): preserve order around repeatable directives

    BREAKING CHANGE: getDirectives now always return an array of individual DirectiveAnnotation objects consisting of name and args properties.

    New useful function getDirective returns an array of objects representing any args for each use of a single directive (returning the empty object {} when a directive is used without arguments).

    Note: The getDirective function returns an array even when the specified directive is non-repeatable. This is because one use of this function is to throw an error if more than one directive annotation is used for a non repeatable directive!

    When specifying directives in extensions, one can use either the old or new format.

Minor Changes

  • 70cd65e: feat(stitching-directives): move federation-to-stitching-sdl

Patch Changes

@graphql-tools/utils@8.0.0

Major Changes

  • af9a78d: BREAKING CHANGE

    • Now each loader handles glob patterns internally and returns an array of Source object instead of single Source

    • GraphQL Tag Pluck now respects code locations and returns graphql-js Source objects for each found code block

    • Thanks to the one above, CodeFileLoader now returns different Source objects for each found SDL code block.

  • 7d3e300: BREAKING CHANGE

    • Remove fieldToFieldConfig, argsToFieldConfigArgument and argumentToArgumentConfig
      • You can use .toConfig method instead for each.
  • 7d3e300: BREAKING CHANGE

  • dae6dc7: refactor: ExecutionParams type replaced by Request type

    rootValue property is now a part of the Request type.

    When delegating with delegateToSchema, rootValue can be set multiple ways:

    • when using a custom executor, the custom executor can utilize a rootValue in whichever custom way it specifies.
    • when using the default executor (execute/subscribe from graphql-js):
      -- rootValue can be passed to delegateToSchema via a named option
      -- rootValue can be included within a subschemaConfig
      -- otherwise, rootValue is inferred from the originating schema

    When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.

  • 6877b91: BREAKING CHANGES;

    mergeDeep now takes an array of sources instead of set of parameters as input and it takes an additional flag to enable prototype merging
    Instead of mergeDeep(...sources) => mergeDeep(sources)

  • c42e811: BREAKING CHANGES;

    • Rename Request to ExecutionRequest
    • Add required operationType: OperationTypeNode field in ExecutionRequest
    • Add context in createRequest and createRequestInfo instead of delegateToSchema

    It doesn't rely on info.operation.operationType to allow the user to call an operation from different root type.
    And it doesn't call getOperationAST again and again to get operation type from the document/operation because we have it in Request and ExecutionParams
    https://github.com/ardatan/graphql-tools/pull/3166/files#diff-d4824895ea613dcc1f710c3ac82e952fe0ca12391b671f70d9f2d90d5656fdceR38

    Improvements;

    • Memoize defaultExecutor for a single GraphQLSchema so allow getBatchingExecutor to memoize batchingExecutor correctly.
    • And there is no different defaultExecutor is created for subscription and other operation types. Only one executor is used.

    Batch executor is memoized by executor reference but createDefaultExecutor didn't memoize the default executor so this memoization wasn't working correctly on batch-execute side.
    https://github.com/ardatan/graphql-tools/blob/remove-info-executor/packages/batch-execute/src/getBatchingExecutor.ts#L9

  • 7d3e300: BREAKING CHANGE

    • Now it uses the native AggregateError implementation. The major difference is the individual errors are kept under errors property instead of the object itself with Symbol.iterator.
    // From;
    for (const error of aggregateError)
    // To;
    for (const error of aggregateError.errors)
  • 8c8d4fc: BREAKING CHANGE: remove cloneSchema

  • 7d3e300: BREAKING CHANGE

    • No longer exports debugLog but uses console.log directly only if DEBUG is available under process.env
  • 7d3e300: BREAKING CHANGE

    • No longer applies camelCase naming convention in buildOperationNodeForField
  • 74581cf: fix(getDirectives): preserve order around repeatable directives

    BREAKING CHANGE: getDirectives now always return an array of individual DirectiveAnnotation objects consisting of name and args properties.

    New useful function getDirective returns an array of objects representing any args for each use of a single directive (returning the empty object {} when a directive is used without arguments).

    Note: The getDirective function returns an array even when the specified directive is non-repeatable. This is because one use of this function is to throw an error if more than one directive annotation is used for a non repeatable directive!

    When specifying directives in extensions, one can use either the old or new format.

  • c0ca319: BREAKING CHANGE

    • Remove Subscriber and use only Executor
      • Now Executor can receive AsyncIterable and subscriptions will also be handled by Executor. This is a future-proof change for defer, stream and live queries
  • 7d3e300: BREAKING CHANGE

    • No longer exports SchemaVisitor, visitSchema and VisitSchemaKind

Minor Changes

  • 9c26b84: enhance(loaders): remove optional methods from the Loader interface
  • 7d3e300: feat(utils): Respect operationName and rootValue in ExecutionParams

Patch Changes

  • 982c8f5: enhance(utils): refactor, cleanup and remove extra work

@graphql-tools/wrap@8.0.0

Major Changes

  • 7d3e300: BREAKING CHANGE

    • makeRemoteExecutableSchema has been removed.
  • dae6dc7: refactor: ExecutionParams type replaced by Request type

    rootValue property is now a part of the Request type.

    When delegating with delegateToSchema, rootValue can be set multiple ways:

    • when using a custom executor, the custom executor can utilize a rootValue in whichever custom way it specifies.
    • when using the default executor (execute/subscribe from graphql-js):
      -- rootValue can be passed to delegateToSchema via a named option
      -- rootValue can be included within a subschemaConfig
      -- otherwise, rootValue is inferred from the originating schema

    When using wrapSchema/stitchSchemas, a subschemaConfig can specify the createProxyingResolver function which can pass whatever rootValue it wants to delegateToSchema as above.

  • c42e811: BREAKING CHANGES;

    • Rename Request to ExecutionRequest
    • Add required operationType: OperationTypeNode field in ExecutionRequest
    • Add context in createRequest and createRequestInfo instead of delegateToSchema

    It doesn't rely on info.operation.operationType to allow the user to call an operation from different root type.
    And it doesn't call getOperationAST again and again to get operation type from the document/operation because we have it in Request and ExecutionParams
    https://github.com/ardatan/graphql-tools/pull/3166/files#diff-d4824895ea613dcc1f710c3ac82e952fe0ca12391b671f70d9f2d90d5656fdceR38

    Improvements;

    • Memoize defaultExecutor for a single GraphQLSchema so allow getBatchingExecutor to memoize batchingExecutor correctly.
    • And there is no different defaultExecutor is created for subscription and other operation types. Only one executor is used.

    Batch executor is memoized by executor reference but createDefaultExecutor didn't memoize the default executor so this memoization wasn't working correctly on batch-execute side.
    https://github.com/ardatan/graphql-tools/blob/remove-info-executor/packages/batch-execute/src/getBatchingExecutor.ts#L9

  • 7d3e300: BREAKING CHANGE

    • Now it uses the native AggregateError implementation. The major difference is the individual errors are kept under errors property instead of the object itself with Symbol.iterator.
    // From;
    for (const error of aggregateError)
    // To;
    for (const error of aggregateError.errors)
  • c0ca319: BREAKING CHANGE

    • Remove unnecessary introspectSchemaSync, introspectSchema already handles sync execution
  • 74581cf: fix(getDirectives): preserve order around repeatable directives

    BREAKING CHANGE: getDirectives now always return an array of individual DirectiveAnnotation objects consisting of name and args properties.

    New useful function getDirective returns an array of objects representing any args for each use of a single directive (returning the empty object {} when a directive is used without arguments).

    Note: The getDirective function returns an array even when the specified directive is non-repeatable. This is because one use of this function is to throw an error if more than one directive annotation is used for a non repeatable directive!

    When specifying directives in extensions, one can use either the old or new format.

  • c0ca319: BREAKING CHANGE

    • Remove Subscriber and use only Executor
      • Now Executor can receive AsyncIterable and subscriptions will also be handled by Executor. This is a future-proof change for defer, stream and live queries

Patch Changes

@graphql-tools/resolvers-composition@6.3.0

Minor Changes

  • 1a81264: Added glob pattern support for composeResolver method

Patch Changes

@graphql-tools/webpack-loader@6.5.0

Minor Changes

  • 5a4d198: feat(webpack-loader): export Options

@graphql-tools/prisma-loader@6.3.1

Patch Changes

@graphql-tools/merge@6.2.15

Patch Changes

@graphql-tools/mock@8.1.4

Patch Changes

@graphql-tools/node-require@6.2.5

Patch Changes

  • Updated dependencies [af9a78d]
  • Updated dependencies [9c26b84]
  • Updated dependencies [7d3e300]
  • Updated dependencies [63e048f]
  • Updated dependencies [7d3e300]
  • Updated dependencies [dae6dc7]
  • Updated dependencies [6877b91]
  • Updated dependencies [c42e811]
  • Updated dependencies [7d3e300]
  • Updated dependencies [8c8d4fc]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
  • Updated dependencies [c5342de]
  • Updated dependencies [74581cf]
  • Updated dependencies [c0ca319]
  • Updated dependencies [982c8f5]
  • Updated dependencies [7d3e300]
  • Updated dependencies [7d3e300]
    • @graphql-tools/load@7.0.0
    • @graphql-tools/graphql-file-loader@7.0.0
    • @graphql-tools/utils@8.0.0

@graphql-tools/relay-operation-optimizer@6.3.1

Patch Changes

federation-benchmark@0.0.1

Patch Changes

  • Updated dependencies [91155ab]
  • Updated dependencies [7d3e300]
  • Updated dependencies [dae6dc7]
  • Updated dependencies [1b0ce2a]
  • Updated dependencies [74581cf]
  • Updated dependencies [70cd65e]
  • Updated dependencies [c0ca319]
    • @graphql-tools/stitch@8.0.0
    • @graphql-tools/stitching-directives@2.0.0

@github-actions github-actions bot force-pushed the changeset-release/master branch 13 times, most recently from 73e0ba0 to 1515fba Compare June 3, 2021 11:54
@github-actions github-actions bot force-pushed the changeset-release/master branch 17 times, most recently from a3cad88 to ee87892 Compare June 8, 2021 20:29
@github-actions github-actions bot force-pushed the changeset-release/master branch 12 times, most recently from 760a3e3 to 3caec61 Compare July 24, 2021 21:47
@github-actions github-actions bot force-pushed the changeset-release/master branch 5 times, most recently from cdc78b7 to cea0849 Compare July 26, 2021 15:14
@github-actions github-actions bot force-pushed the changeset-release/master branch 3 times, most recently from eb287f5 to 372b48d Compare July 27, 2021 15:02
@github-actions github-actions bot force-pushed the changeset-release/master branch 2 times, most recently from 85dcc2f to d60bb25 Compare July 28, 2021 02:26
@ardatan ardatan merged commit 7681cdc into master Jul 28, 2021
@ardatan ardatan deleted the changeset-release/master branch July 28, 2021 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant