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

fix: data passed to refreshInterval function is not latest #2354

Merged
merged 8 commits into from
Apr 10, 2023

Conversation

hong24
Copy link
Contributor

@hong24 hong24 commented Jan 8, 2023

fix: #2547

@codesandbox-ci
Copy link

codesandbox-ci bot commented Jan 8, 2023

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit fc5f1b4:

Sandbox Source
SWR-Basic Configuration
SWR-States Configuration
SWR-Infinite Configuration
SWR-SSR Configuration

@koba04
Copy link
Collaborator

koba04 commented Jan 8, 2023

@hong24 Thank you! Could you add a test for this?

Copy link
Collaborator

@koba04 koba04 left a comment

Choose a reason for hiding this comment

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

I'd say this is a stale data problem, so I think this should be fixed by adding data into the dependency list of useIsomorphicLayoutEffect

@hong24
Copy link
Contributor Author

hong24 commented Feb 6, 2023

There is an issue when data is a dependency: refreshInterval will be called twice
one time when data is changed,
the other time when revalidating successfully
2fba51545417963b7bfa0a383903092

@hong24
Copy link
Contributor Author

hong24 commented Feb 6, 2023

I have other questions:

  1. The first call to refreshInterval is with undefined. In my understanding, It's supposed to call refreshinterval after the first fetch is resolved and with the resolved data.
  2. When the key is null, the fetcher will be not called, but refreshInterval will be called over and over again. According to the related source code, this problem may be expected but It's a little weird and unintuitive.

I'm currently just fixing the latest data, but for the above two issues, I don't have a good solution.

@koba04
Copy link
Collaborator

koba04 commented Feb 7, 2023

There is an issue when data is a dependency: refreshInterval will be called twice

Is this a problem? I think refreshInterval would be a pure function that returns an interval time, so it would be ok to be called twice. It seems to make sense to reset the timer when data has been changed.

@hong24
Copy link
Contributor Author

hong24 commented Feb 8, 2023

I think this is a problem. Even a pure function called twice doesn't make sense, and the parameters of the refreshInterval call are different twice. Once with the latest data and once with the previous data.

@suutari
Copy link

suutari commented Apr 2, 2023

I got hit by this issue today.

Additionally seems that there's another problem too: If the function passed to refreshInterval is staying unchanged between the useSWR calls, it seems to get called only once and that call is with the undefined data; but it won't get called anymore after the data arrives. As a workaround I can define the refreshInterval as a lambda so that it'll change between successive useSWR calls.

Here's an example from my current code, which tries to keep data of a job up-to-date with the refreshInterval:

export function useJobInfo(jobId: JobId | null)  {
  return useSWR(
    jobId ? `/jobs/${jobId}` : null,
    fetcher,
    {
      dedupingInterval: 250,

      // This doesn't work, since function would be called only once:
      //refreshInterval: jobId ? getRefreshIntervalOfJob : 0,

      // This is the workaround:
      refreshInterval: jobId ? (jobInfo) => getRefreshIntervalOfJob(jobInfo) : 0,
    }
  );
}

function getRefreshIntervalOfJob(jobInfo: JobInfo | undefined): number {
  ...
}

@suutari
Copy link

suutari commented Apr 2, 2023

Additionally seems that there's another problem too: If the function passed to refreshInterval is staying unchanged between the useSWR calls, it seems to get called only once and that call is with the undefined data; but it won't get called anymore after the data arrives.

Actually, now that I checked again, have to correct my statement: It will be called again, if I return non-zero value from the function when it's called for the first time (with the undefined value). However, all successive calls are still done with the undefined value, even if the data is already fetched.

Seems like that the next function has the data stored in the closure and it won't update when refreshInterval function is called with the timer. The fix in this PR seems to help in my case too.

Any plans to release this fix?

@promer94 promer94 requested a review from koba04 April 7, 2023 16:47
core/use-swr.ts Outdated Show resolved Hide resolved
core/use-swr.ts Outdated Show resolved Hide resolved
core/use-swr.ts Outdated Show resolved Hide resolved
@promer94 promer94 requested a review from koba04 April 10, 2023 02:25
@promer94 promer94 merged commit 540a449 into vercel:main Apr 10, 2023
4 checks passed
kodiakhq bot pushed a commit to kula-app/OnLaunch that referenced this pull request Apr 10, 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 |
|---|---|---|---|---|---|
| [swr](https://swr.vercel.app) ([source](https://togithub.com/vercel/swr)) | [`2.1.2` -> `2.1.3`](https://renovatebot.com/diffs/npm/swr/2.1.2/2.1.3) | [![age](https://badges.renovateapi.com/packages/npm/swr/2.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/swr/2.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/swr/2.1.3/compatibility-slim/2.1.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/swr/2.1.3/confidence-slim/2.1.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>vercel/swr</summary>

### [`v2.1.3`](https://togithub.com/vercel/swr/releases/tag/v2.1.3)

[Compare Source](https://togithub.com/vercel/swr/compare/v2.1.2...v2.1.3)

#### What's Changed

-   Fix [#&#8203;2548](https://togithub.com/vercel/swr/issues/2548): pass origin key to subcription callback by [@&#8203;Zheaoli](https://togithub.com/Zheaoli) in [vercel/swr#2550
-   Examples: fix type in axios-typescript example by [@&#8203;daochouwangu](https://togithub.com/daochouwangu) in [vercel/swr#2552
-   Update Cache Interface types by [@&#8203;dmmulroy](https://togithub.com/dmmulroy) in [vercel/swr#2554
-   fix: data passed to refreshInterval function is not latest by [@&#8203;hong24](https://togithub.com/hong24) in [vercel/swr#2354
-   types: allow passing function as `Data` for `useSWRSubscriptionOptions` by [@&#8203;promer94](https://togithub.com/promer94) in [vercel/swr#2551

#### New Contributors

-   [@&#8203;Zheaoli](https://togithub.com/Zheaoli) made their first contribution in [vercel/swr#2550
-   [@&#8203;daochouwangu](https://togithub.com/daochouwangu) made their first contribution in [vercel/swr#2552
-   [@&#8203;dmmulroy](https://togithub.com/dmmulroy) made their first contribution in [vercel/swr#2554

**Full Changelog**: vercel/swr@v2.1.2...v2.1.3

</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 this update 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/kula-app/OnLaunch).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->
David-Duefrene pushed a commit to David-Duefrene/dataviewer that referenced this pull request Apr 12, 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 |
|---|---|---|---|---|---|
| [swr](https://swr.vercel.app)
([source](https://togithub.com/vercel/swr)) | [`2.1.2` ->
`2.1.3`](https://renovatebot.com/diffs/npm/swr/2.1.2/2.1.3) |
[![age](https://badges.renovateapi.com/packages/npm/swr/2.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/swr/2.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/swr/2.1.3/compatibility-slim/2.1.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/swr/2.1.3/confidence-slim/2.1.2)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vercel/swr</summary>

### [`v2.1.3`](https://togithub.com/vercel/swr/releases/tag/v2.1.3)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.1.2...v2.1.3)

#### What's Changed

- Fix [#&#8203;2548](https://togithub.com/vercel/swr/issues/2548): pass
origin key to subcription callback by
[@&#8203;Zheaoli](https://togithub.com/Zheaoli) in
[vercel/swr#2550
- Examples: fix type in axios-typescript example by
[@&#8203;daochouwangu](https://togithub.com/daochouwangu) in
[vercel/swr#2552
- Update Cache Interface types by
[@&#8203;dmmulroy](https://togithub.com/dmmulroy) in
[vercel/swr#2554
- fix: data passed to refreshInterval function is not latest by
[@&#8203;hong24](https://togithub.com/hong24) in
[vercel/swr#2354
- types: allow passing function as `Data` for
`useSWRSubscriptionOptions` by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2551

#### New Contributors

- [@&#8203;Zheaoli](https://togithub.com/Zheaoli) made their first
contribution in
[vercel/swr#2550
- [@&#8203;daochouwangu](https://togithub.com/daochouwangu) made their
first contribution in
[vercel/swr#2552
- [@&#8203;dmmulroy](https://togithub.com/dmmulroy) made their first
contribution in
[vercel/swr#2554

**Full Changelog**:
vercel/swr@v2.1.2...v2.1.3

</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 this update
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/David-Duefrene/dataviewer).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
sebald pushed a commit to sebald/pattern-analyzer that referenced this pull request Apr 30, 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 |
|---|---|---|---|---|---|
| [swr](https://swr.vercel.app)
([source](https://togithub.com/vercel/swr)) | [`2.1.2` ->
`2.1.5`](https://renovatebot.com/diffs/npm/swr/2.1.2/2.1.5) |
[![age](https://badges.renovateapi.com/packages/npm/swr/2.1.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/swr/2.1.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/swr/2.1.5/compatibility-slim/2.1.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/swr/2.1.5/confidence-slim/2.1.2)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vercel/swr</summary>

### [`v2.1.5`](https://togithub.com/vercel/swr/releases/tag/v2.1.5)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.1.4...v2.1.5)

#### What's Changed

- fix: missing interop helpers in bundle by
[@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#2582

**Full Changelog**:
vercel/swr@v2.1.4...v2.1.5

### [`v2.1.4`](https://togithub.com/vercel/swr/releases/tag/v2.1.4)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.1.3...v2.1.4)

#### What's Changed

- Upgrade bundler by [@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#2557
- examples: fix invalid links by
[@&#8203;fxOne](https://togithub.com/fxOne) in
[vercel/swr#2559
- types: Allow auto-import by improving generated types by
[@&#8203;oosawy](https://togithub.com/oosawy) in
[vercel/swr#2563
- fix: pass serialized args to preload fetcher by
[@&#8203;oosawy](https://togithub.com/oosawy) in
[vercel/swr#2564
- chore: use provenance for release by
[@&#8203;HerringtonDarkholme](https://togithub.com/HerringtonDarkholme)
in
[vercel/swr#2571
- deps: update
[@&#8203;testing-library/react](https://togithub.com/testing-library/react)
to v14 by [@&#8203;koba04](https://togithub.com/koba04) in
[vercel/swr#2578
- fix: Fix dependency tracking and useSES bug by
[@&#8203;shuding](https://togithub.com/shuding) and
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2576

#### New Contributors

- [@&#8203;fxOne](https://togithub.com/fxOne) made their first
contribution in
[vercel/swr#2559
- [@&#8203;oosawy](https://togithub.com/oosawy) made their first
contribution in
[vercel/swr#2563
-
[@&#8203;HerringtonDarkholme](https://togithub.com/HerringtonDarkholme)
made their first contribution in
[vercel/swr#2571

**Full Changelog**:
vercel/swr@v2.1.3...v2.1.4

### [`v2.1.3`](https://togithub.com/vercel/swr/releases/tag/v2.1.3)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.1.2...v2.1.3)

#### What's Changed

- Fix [#&#8203;2548](https://togithub.com/vercel/swr/issues/2548): pass
origin key to subcription callback by
[@&#8203;Zheaoli](https://togithub.com/Zheaoli) in
[vercel/swr#2550
- Examples: fix type in axios-typescript example by
[@&#8203;daochouwangu](https://togithub.com/daochouwangu) in
[vercel/swr#2552
- Update Cache Interface types by
[@&#8203;dmmulroy](https://togithub.com/dmmulroy) in
[vercel/swr#2554
- fix: data passed to refreshInterval function is not latest by
[@&#8203;hong24](https://togithub.com/hong24) in
[vercel/swr#2354
- types: allow passing function as `Data` for
`useSWRSubscriptionOptions` by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2551

#### New Contributors

- [@&#8203;Zheaoli](https://togithub.com/Zheaoli) made their first
contribution in
[vercel/swr#2550
- [@&#8203;daochouwangu](https://togithub.com/daochouwangu) made their
first contribution in
[vercel/swr#2552
- [@&#8203;dmmulroy](https://togithub.com/dmmulroy) made their first
contribution in
[vercel/swr#2554

**Full Changelog**:
vercel/swr@v2.1.2...v2.1.3

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
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/sebald/pattern-analyzer).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to Unleash/unleash that referenced this pull request May 4, 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 |
|---|---|---|---|---|---|
| [swr](https://swr.vercel.app)
([source](https://togithub.com/vercel/swr)) | [`2.0.4` ->
`2.1.5`](https://renovatebot.com/diffs/npm/swr/2.0.4/2.1.5) |
[![age](https://badges.renovateapi.com/packages/npm/swr/2.1.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/swr/2.1.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/swr/2.1.5/compatibility-slim/2.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/swr/2.1.5/confidence-slim/2.0.4)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vercel/swr</summary>

### [`v2.1.5`](https://togithub.com/vercel/swr/releases/tag/v2.1.5)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.1.4...v2.1.5)

#### What's Changed

- fix: missing interop helpers in bundle by
[@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#2582

**Full Changelog**:
vercel/swr@v2.1.4...v2.1.5

### [`v2.1.4`](https://togithub.com/vercel/swr/releases/tag/v2.1.4)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.1.3...v2.1.4)

#### What's Changed

- Upgrade bundler by [@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#2557
- examples: fix invalid links by
[@&#8203;fxOne](https://togithub.com/fxOne) in
[vercel/swr#2559
- types: Allow auto-import by improving generated types by
[@&#8203;oosawy](https://togithub.com/oosawy) in
[vercel/swr#2563
- fix: pass serialized args to preload fetcher by
[@&#8203;oosawy](https://togithub.com/oosawy) in
[vercel/swr#2564
- chore: use provenance for release by
[@&#8203;HerringtonDarkholme](https://togithub.com/HerringtonDarkholme)
in
[vercel/swr#2571
- deps: update
[@&#8203;testing-library/react](https://togithub.com/testing-library/react)
to v14 by [@&#8203;koba04](https://togithub.com/koba04) in
[vercel/swr#2578
- fix: Fix dependency tracking and useSES bug by
[@&#8203;shuding](https://togithub.com/shuding) and
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2576

#### New Contributors

- [@&#8203;fxOne](https://togithub.com/fxOne) made their first
contribution in
[vercel/swr#2559
- [@&#8203;oosawy](https://togithub.com/oosawy) made their first
contribution in
[vercel/swr#2563
-
[@&#8203;HerringtonDarkholme](https://togithub.com/HerringtonDarkholme)
made their first contribution in
[vercel/swr#2571

**Full Changelog**:
vercel/swr@v2.1.3...v2.1.4

### [`v2.1.3`](https://togithub.com/vercel/swr/releases/tag/v2.1.3)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.1.2...v2.1.3)

#### What's Changed

- Fix [#&#8203;2548](https://togithub.com/vercel/swr/issues/2548): pass
origin key to subcription callback by
[@&#8203;Zheaoli](https://togithub.com/Zheaoli) in
[vercel/swr#2550
- Examples: fix type in axios-typescript example by
[@&#8203;daochouwangu](https://togithub.com/daochouwangu) in
[vercel/swr#2552
- Update Cache Interface types by
[@&#8203;dmmulroy](https://togithub.com/dmmulroy) in
[vercel/swr#2554
- fix: data passed to refreshInterval function is not latest by
[@&#8203;hong24](https://togithub.com/hong24) in
[vercel/swr#2354
- types: allow passing function as `Data` for
`useSWRSubscriptionOptions` by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2551

#### New Contributors

- [@&#8203;Zheaoli](https://togithub.com/Zheaoli) made their first
contribution in
[vercel/swr#2550
- [@&#8203;daochouwangu](https://togithub.com/daochouwangu) made their
first contribution in
[vercel/swr#2552
- [@&#8203;dmmulroy](https://togithub.com/dmmulroy) made their first
contribution in
[vercel/swr#2554

**Full Changelog**:
vercel/swr@v2.1.2...v2.1.3

### [`v2.1.2`](https://togithub.com/vercel/swr/releases/tag/v2.1.2)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.1.1...v2.1.2)

##### Patches

-   Improved type inferring for `swr/subscription`
-   Adding `SWRSubscriptionOptions` type for `swr/subscription`

#### Changes

- test: add typing test for empty config by
[@&#8203;koba04](https://togithub.com/koba04) in
[vercel/swr#2521
- test: fix syntax error in Equal type alias implementation by
[@&#8203;SACHINnANYAKKARA](https://togithub.com/SACHINnANYAKKARA) in
[vercel/swr#2517
- chore: remove engines by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2536
- types: improve `useSWRSubscription` types by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2535
- Rename subscription types by
[@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#2537

#### New Contributors

- [@&#8203;SACHINnANYAKKARA](https://togithub.com/SACHINnANYAKKARA) made
their first contribution in
[vercel/swr#2517

**Full Changelog**:
vercel/swr@v2.1.1...v2.1.2

### [`v2.1.1`](https://togithub.com/vercel/swr/releases/tag/v2.1.1)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.1.0...v2.1.1)

#### Patches

- refactor: remove useless dataRef, always compare cached data by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2431
- fix: swr infers incorrect `data` type for default `SWRConfig` generic
type by [@&#8203;connorch](https://togithub.com/connorch) in
[vercel/swr#2506

#### Documentation

- docs: update subscription example by
[@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#2499

#### New Contributors

- [@&#8203;connorch](https://togithub.com/connorch) made their first
contribution in
[vercel/swr#2506

**Full Changelog**:
vercel/swr@v2.1.0...v2.1.1

### [`v2.1.0`](https://togithub.com/vercel/swr/releases/tag/v2.1.0)

[Compare
Source](https://togithub.com/vercel/swr/compare/v2.0.4...v2.1.0)

#### Feature

- Subscription mode by [@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#1263
- parallel option for useSWRInfinite by
[@&#8203;koba04](https://togithub.com/koba04) in
[vercel/swr#2404

Checkout [subscription docs](https://swr.vercel.app/docs/subscription)
and [useSWRInfinite parallel fetching
docs](https://swr.vercel.app/docs/pagination#parallel-fetching-mode) for
more details

#### Patches

- fix: use the latest config in useSWRMutation by
[@&#8203;koba04](https://togithub.com/koba04) in
[vercel/swr#2468
- Fix: type support for suspense and
fallbackData([#&#8203;2396](https://togithub.com/vercel/swr/issues/2396))
by [@&#8203;taro-28](https://togithub.com/taro-28) in
[vercel/swr#2452
- Error should be reset when new data comes by
[@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#2472
- fix: avoid creating new snapshot if cache is not updated at client
during streaming by [@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2475
- refactor: initialize the cache only on first access by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2479

#### Misc

- ci: fix publish workflow by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2453
- ci: faster e2e test by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2428
- test: add a test for keepPreviousData without changing key by
[@&#8203;koba04](https://togithub.com/koba04) in
[vercel/swr#2470
- Always assume subscriptions will return sub count from current key by
[@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#2460
- test: Fix flaky e2e test by
[@&#8203;promer94](https://togithub.com/promer94) in
[vercel/swr#2476
- chore: Add subscription example by
[@&#8203;huozhi](https://togithub.com/huozhi) in
[vercel/swr#2480

#### New Contributors

- [@&#8203;taro-28](https://togithub.com/taro-28) made their first
contribution in
[vercel/swr#2452

**Full Changelog**:
vercel/swr@v2.0.4...v2.1.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
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/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS42OS4zIiwidXBkYXRlZEluVmVyIjoiMzUuNjkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
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.

refreshInterval: callback reference issue
4 participants