feat(ws): allow closing active subscriptions#4136
Conversation
|
The latest updates on your projects. Learn more about Vercel for Git βοΈ
|
|
@Dealerpriest is attempting to deploy a commit to the trpc Team on Vercel. A member of the Team first needs to authorize it. |
KATT
left a comment
There was a problem hiding this comment.
LGTM :)
Feel free to request another review once build is passing
|
looks like this breaks a test, could you take a look @Dealerpriest? |
| function closeActiveSubscriptions() { | ||
| Object.values(pendingRequests).forEach((req) => { | ||
| if (req.type === 'subscription') { | ||
| req.callbacks.complete(); | ||
| } | ||
| }); | ||
| } |
There was a problem hiding this comment.
I.e. making sure that if you have an active sub & call .close() it should just close
There was a problem hiding this comment.
Will give it a shot! What's the purpose/differentiation between the interop tests and the usual ones? At first glance I got the impression they are just a duplication ?
There was a problem hiding this comment.
Is there a reason for not merging? I have added/edited tests to account for the new functionality. I think it should be correctππ
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@trpc/client](https://trpc.io) ([source](https://togithub.com/trpc/trpc)) | [`10.27.1` -> `10.28.0`](https://renovatebot.com/diffs/npm/@trpc%2fclient/10.27.1/10.28.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@trpc/react-query](https://trpc.io) ([source](https://togithub.com/trpc/trpc)) | [`10.27.1` -> `10.28.0`](https://renovatebot.com/diffs/npm/@trpc%2freact-query/10.27.1/10.28.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@trpc/server](https://trpc.io) ([source](https://togithub.com/trpc/trpc)) | [`10.27.1` -> `10.28.0`](https://renovatebot.com/diffs/npm/@trpc%2fserver/10.27.1/10.28.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>trpc/trpc</summary> ### [`v10.28.0`](https://togithub.com/trpc/trpc/releases/tag/v10.28.0) [Compare Source](https://togithub.com/trpc/trpc/compare/v10.27.3...v10.28.0) #### What's Changed - feat(`client`): allow closing active subscriptions by [@​Dealerpriest](https://togithub.com/Dealerpriest) in [https://github.com/trpc/trpc/pull/4136](https://togithub.com/trpc/trpc/pull/4136) - feat(`client`): add ability to call `TRPCProxyClient`-methods with `.apply()` by [@​atoy40](https://togithub.com/atoy40) in [https://github.com/trpc/trpc/pull/3973](https://togithub.com/trpc/trpc/pull/3973) - feat(`react-query`): allow optional cursor in `useInfiniteQuery` by [@​lithdew](https://togithub.com/lithdew) in [https://github.com/trpc/trpc/pull/4374](https://togithub.com/trpc/trpc/pull/4374) - fix(`*`): exclude `*.test.*`-files in build outputs by [@​KATT](https://togithub.com/KATT) in [https://github.com/trpc/trpc/pull/4417](https://togithub.com/trpc/trpc/pull/4417) #### New Contributors - [@​atoy40](https://togithub.com/atoy40) made their first contribution in [https://github.com/trpc/trpc/pull/3973](https://togithub.com/trpc/trpc/pull/3973) - [@​miguelvelasquezdev](https://togithub.com/miguelvelasquezdev) made their first contribution in [https://github.com/trpc/trpc/pull/4341](https://togithub.com/trpc/trpc/pull/4341) - [@​lithdew](https://togithub.com/lithdew) made their first contribution in [https://github.com/trpc/trpc/pull/4374](https://togithub.com/trpc/trpc/pull/4374) **Full Changelog**: trpc/trpc@v10.27.3...v10.28.0 ### [`v10.27.3`](https://togithub.com/trpc/trpc/releases/tag/v10.27.3) [Compare Source](https://togithub.com/trpc/trpc/compare/v10.27.2...v10.27.3) #### What's Changed - fix(`react-query`): fix `useInfiniteQuery` `placeholderData` types by [@​SSHari](https://togithub.com/SSHari) in [https://github.com/trpc/trpc/pull/4402](https://togithub.com/trpc/trpc/pull/4402) #### New Contributors - [@​SSHari](https://togithub.com/SSHari) made their first contribution in [https://github.com/trpc/trpc/pull/4402](https://togithub.com/trpc/trpc/pull/4402) **Full Changelog**: trpc/trpc@v10.27.2...v10.27.3 ### [`v10.27.2`](https://togithub.com/trpc/trpc/releases/tag/v10.27.2) [Compare Source](https://togithub.com/trpc/trpc/compare/v10.27.1...v10.27.2) #### What's Changed - fix(`next)`: remove conditional hook in `withTRPC()` by [@​KATT](https://togithub.com/KATT) in [https://github.com/trpc/trpc/pull/4410](https://togithub.com/trpc/trpc/pull/4410) **Full Changelog**: trpc/trpc@v10.27.1...v10.27.2 </details> --- ### Configuration π **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). π¦ **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. π **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/synopsisgg/bot). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuNCIsInVwZGF0ZWRJblZlciI6IjM1LjEwMi40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
Closes #4133
Closes #4135
π― Changes
Don't throw "Operation ended prematurely" when calling
completefrom outsideunsubscribeFunc.wsClient closes all active subscriptions when wsClient is closed allowing the wsClient to actually close the websocket.
β Checklist