subscribe: replace perEventExecutor with mapSourceToResponseEvent#4729
Merged
Conversation
Remove the perEventExecutor execution arg and expose the subscription response-stream mapping step as mapSourceToResponseEvent. Subscription customization now has a full pipeline of helpers: validateSubscriptionArgs createSourceEventStream mapSourceToResponseEvent Replacing subscribe with a custom executor was already theoretically possible by calling createSourceEventStream and writing the mapping helper yourself. By exporting the helper and removing perEventExecutor, there is now one supported way to customize subscribe: compose the subscription pipeline directly. Having a single customization path reduces the documentation and maintenance surface. perEventExecutor was only released on the v17 alpha line, so this is not a breaking change from v16.
|
@yaacovCR is attempting to deploy a commit to the The GraphQL Foundation Team on Vercel. A member of the Team first needs to authorize it. |
yaacovCR
added a commit
that referenced
this pull request
May 10, 2026
## v17.0.0-beta.1 (2026-05-10) #### Breaking Change 💥 * [#4729](#4729) subscribe: replace perEventExecutor with mapSourceToResponseEvent ([@yaacovCR](https://github.com/yaacovCR)) * [#4730](#4730) chore(engines): drop Node 20 support ([@yaacovCR](https://github.com/yaacovCR)) * [#4731](#4731) refactor(execution): extract buildResolveInfo helper ([@yaacovCR](https://github.com/yaacovCR)) #### New Feature 🚀 * [#4733](#4733) feat: support node v26 ([@yaacovCR](https://github.com/yaacovCR)) #### Bug Fix 🐞 * [#4725](#4725) chore: forward-port directives on directive definitions (#4521) ([@yaacovCR](https://github.com/yaacovCR)) * [#4727](#4727) chore: forward-port configuration of the `ofType` introspection depth (#4317) ([@yaacovCR](https://github.com/yaacovCR)) #### Polish 💅 * [#4728](#4728) polish: group FRAGMENT_VARIABLE_DEFINITION with executable defs ([@yaacovCR](https://github.com/yaacovCR)) #### Internal 🏠 <details> <summary> 3 PRs were merged </summary> * [#4460](#4460) internal: use node experimental-strip-types instead of ts-node ([@yaacovCR](https://github.com/yaacovCR)) * [#4732](#4732) internal: use node test instead of mocha + c8 ([@yaacovCR](https://github.com/yaacovCR)) * [#4734](#4734) internal: add comment re: rewriteRelativeImportExtensions ([@yaacovCR](https://github.com/yaacovCR)) </details> #### Committers: 1 * Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remove the
perEventExecutorexecution arg and expose the subscription response-stream mapping step asmapSourceToResponseEvent.Subscription customization now has a full pipeline of helpers:
validateSubscriptionArgscreateSourceEventStreammapSourceToResponseEventReplacing
subscribewith a custom executor was already theoretically possible by callingcreateSourceEventStreamand writing the mapping helper yourself. By exporting the helper and removingperEventExecutor, there is now one supported way to customizesubscribe: compose the subscription pipeline directly.Having a single customization path reduces the documentation and maintenance surface.
perEventExecutorwas only released on the v17 alpha line, so this is a breaking change from previous v17 pre-releases, but not a breaking change from v16.