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

feat(client): add ability to call TRPCProxyClient-methods with .apply() #3973

Merged
merged 6 commits into from
May 25, 2023

Conversation

atoy40
Copy link
Contributor

@atoy40 atoy40 commented Mar 10, 2023

Closes #3964

🎯 Changes

This PR allow the client to be call as :
client.myrouter.myresolver.query.apply(undefined, [input])
instead of :
client.myrouter.myresolver.query(input)

It allows to use tools where you pass the function, and the tool call it using apply on the function object itself.

βœ… Checklist

  • I have followed the steps listed in the Contributing guide.
  • If necessary, I have added documentation related to the changes made.
  • I have added or updated the tests related to the changes made.

@vercel
Copy link

vercel bot commented Mar 10, 2023

The latest updates on your projects. Learn more about Vercel for Git β†—οΈŽ

Name Status Preview Comments Updated (UTC)
www βœ… Ready (Inspect) Visit Preview πŸ’¬ Add feedback May 25, 2023 9:51am

@vercel
Copy link

vercel bot commented Mar 10, 2023

@atoy40 is attempting to deploy a commit to the trpc Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Member

@KATT KATT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand why you need this, but if you do, please add tests

@atoy40
Copy link
Contributor Author

atoy40 commented Mar 10, 2023

@KATT I dont' need it directly. I need it because i'm using redux-saga, a tools over redux which help to handle/synchronize async operation and state managment using JS function generators. This library provide helpers to handle promises, one of them is call(fct_returning_a_promise). Behind the scene, this function call the apply method of the "fct_returning_a_promise" to execute it. In my case, i'm just using something like :
yield call(trpcclient.myrouter.myresolver.query, [inputs])
and call will really execute rpcclient.myrouter.myresolver.query.apply(ctx, [inputs])

Btw, I'll add a test.

Anthony.

@KATT
Copy link
Member

KATT commented Mar 11, 2023

Cool, I'm happy to merge if there are some tests that asserts it

@KATT KATT changed the title Fixed the case where query/mutate/subscribe are call using the apply function method feat(client): add ability to call TRPCProxyClient methods with .apply() Mar 11, 2023
@KATT KATT changed the title feat(client): add ability to call TRPCProxyClient methods with .apply() feat(client): add ability to call TRPCProxyClient-methods with .apply() Mar 11, 2023
@atoy40
Copy link
Contributor Author

atoy40 commented Mar 14, 2023

@KATT I added a test, I hope It's located well.
Anthony.

@atoy40 atoy40 reopened this Mar 14, 2023
@bautistaaa
Copy link
Contributor

should we handle call bind apply in this? they all "apply" here

@sachinraja
Copy link
Member

bumping this, @atoy40 would you be willing to update this PR with @bautistaaa's feedback?

@KATT KATT changed the title feat(client): add ability to call TRPCProxyClient-methods with .apply() feat(client): add ability to call TRPCProxyClient-methods with .apply() May 25, 2023
@KATT KATT enabled auto-merge (squash) May 25, 2023 08:49
@KATT KATT disabled auto-merge May 25, 2023 09:43
@KATT KATT merged commit 7aaf4aa into trpc:main May 25, 2023
15 of 19 checks passed
mastondzn added a commit to mastondzn/synopsisbot that referenced this pull request May 28, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](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)
|
[![age](https://badges.renovateapi.com/packages/npm/@trpc%2fclient/10.28.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@trpc%2fclient/10.28.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@trpc%2fclient/10.28.0/compatibility-slim/10.27.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@trpc%2fclient/10.28.0/confidence-slim/10.27.1)](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)
|
[![age](https://badges.renovateapi.com/packages/npm/@trpc%2freact-query/10.28.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@trpc%2freact-query/10.28.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@trpc%2freact-query/10.28.0/compatibility-slim/10.27.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@trpc%2freact-query/10.28.0/confidence-slim/10.27.1)](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)
|
[![age](https://badges.renovateapi.com/packages/npm/@trpc%2fserver/10.28.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@trpc%2fserver/10.28.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@trpc%2fserver/10.28.0/compatibility-slim/10.27.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@trpc%2fserver/10.28.0/confidence-slim/10.27.1)](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
[@&#8203;Dealerpriest](https://togithub.com/Dealerpriest) in
[trpc/trpc#4136
- feat(`client`): add ability to call `TRPCProxyClient`-methods with
`.apply()` by [@&#8203;atoy40](https://togithub.com/atoy40) in
[trpc/trpc#3973
- feat(`react-query`): allow optional cursor in `useInfiniteQuery` by
[@&#8203;lithdew](https://togithub.com/lithdew) in
[trpc/trpc#4374
- fix(`*`): exclude `*.test.*`-files in build outputs by
[@&#8203;KATT](https://togithub.com/KATT) in
[trpc/trpc#4417

#### New Contributors

- [@&#8203;atoy40](https://togithub.com/atoy40) made their first
contribution in
[trpc/trpc#3973
- [@&#8203;miguelvelasquezdev](https://togithub.com/miguelvelasquezdev)
made their first contribution in
[trpc/trpc#4341
- [@&#8203;lithdew](https://togithub.com/lithdew) made their first
contribution in
[trpc/trpc#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
[@&#8203;SSHari](https://togithub.com/SSHari) in
[trpc/trpc#4402

#### New Contributors

- [@&#8203;SSHari](https://togithub.com/SSHari) made their first
contribution in
[trpc/trpc#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
[@&#8203;KATT](https://togithub.com/KATT) in
[trpc/trpc#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-->
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 24, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat: call TRPCProxyClient methods with .apply()
4 participants