absinthe_graphql_ws
absinthe_graphql_ws copied to clipboard
feat: Add incremental delivery support for @defer and @stream directives
Summary
This PR adds incremental delivery support to absinthe_graphql_ws for @defer and @stream directives.
⚠️ DEPENDENCY NOTICE
This PR depends on gigsmart/absinthe#gigmart/defer-stream-incremental
The main absinthe package must be merged first before this PR can be merged.
Features
- GraphQL-WS protocol transport for incremental delivery
- Uses Next/Complete messages for proper protocol compliance
- Transport extensions for handling streaming responses
- Maintains WebSocket connection efficiency during streaming
Implementation
Absinthe.GraphQL.WS.Incremental.Transport- Main transport adapterAbsinthe.GraphQL.WS.TransportExtensions- Protocol extensions
Testing
- Protocol compliance tests
- Message sequencing validation
- Error handling scenarios
Breaking Changes
None - incremental delivery is opt-in and backward compatible.