Releases: reactive/data-client
@data-client/[email protected]
@data-client/[email protected]
Patch Changes
-
c3514c6Thanks @ntucker! - Remove unnecessary polyfills in build -
Updated dependencies [
c3514c6]:- @data-client/[email protected]
@data-client/[email protected]
@data-client/[email protected]
Patch Changes
-
060d8e1Thanks @ntucker! - Update @testing-library/react-native to v13 -
#3365
66e7336Thanks @ntucker! - fix: Interceptors work on manager-dispatched actions.For example, renderHook now can use resolverFixtures to resolve fetches for subscriptions.
This was not possible before as SubscriptionManager's dispatches would not be intercepted with the
previous implementation. -
#3371
679d76aThanks @ntucker! - Add react-native entry to package.json exports -
#3353
165afedThanks @renovate! - Polyfills no longer pollute global scope
@data-client/[email protected]
Patch Changes
@data-client/[email protected]
Patch Changes
-
#3343
1df829eThanks @ntucker! - Add gcPolicy option to DataProvider and prepareStore// run GC sweep every 10min <DataProvider gcPolicy={new GCPolicy({ intervalMS: 60 * 1000 * 10 })}> {children} </DataProvider>
const { store, selector, controller } = prepareStore( initialState, managers, Controller, otherReducers, extraMiddlewares, gcPolicy: new GCPolicy({ intervalMS: 60 * 1000 * 10 }), );
To maintain existing behavior, use
ImmortalGCPolicy:import { ImmortalGCPolicy, DataProvider } from '@data-client/react'; <DataProvider gcPolicy={new ImmortalGCPolicy()}>{children}</DataProvider>;
-
#3343
1df829eThanks @ntucker! - Add GCPolicy to control Garbage Collection of data in the store.This can be configured with constructor options, or custom GCPolicies implemented by extending
or simply building your own. UseImmortalGCPolicyto never GC (to maintain existing behavior).constructor
intervalMS = 60 * 1000 * 5
How long between low priority GC sweeps.
Longer values may result in more memory usage, but less performance impact.
expiryMultiplier = 2
Used in the default
hasExpiredpolicy.Represents how many 'stale' lifetimes data should persist before being
garbage collected.expiresAt
expiresAt({ fetchedAt, expiresAt, }: { expiresAt: number; date: number; fetchedAt: number; }): number { return ( Math.max( (expiresAt - fetchedAt) * this.options.expiryMultiplier, 120000, ) + fetchedAt ); }
Indicates at what timestamp it is acceptable to remove unused data from the store.
Data not currently rendered in any components is considered unused. However, unused
data may be used again in the future (as a cache).This results in a tradeoff between memory usage and cache hit rate (and thus performance).
-
#3371
679d76aThanks @ntucker! - Add react-native entry to package.json exports -
12bb010Thanks @ntucker! - Update async boundary link in BackupLoading component -
#3353
165afedThanks @renovate! - Polyfills no longer pollute global scope -
Updated dependencies [
1df829e,f796b6c,f796b6c,66e7336,1df829e,679d76a,165afed]:- @data-client/[email protected]
- @data-client/[email protected]