react-native-onyx
react-native-onyx copied to clipboard
Persistent, offline-first state management solution for React Native. Easy to use with minimal config and boilerplate.
We use a very popular checklist in the `Expensify/App` repo that asks authors and reviewers to consider and perform some sane checks on testing, code quality, best practices, etc. In...
In the benchmarks performed here: https://github.com/Expensify/Expensify.cash/issues/2667#issuecomment-874160913 I've noticed that sequential reads happen very fast `8-9ms`, much faster than what it takes in E.cash I think the reason is that `Onyx`...
### Problem Currently, the way `multiset` works is that it notifies subscribers of any changes to the onyx keys in a loop: https://github.com/Expensify/react-native-onyx/blob/f96fa2dc38b6abd1f99512af59647162fa11c88e/lib/Onyx.js#L985-L992 The performance of this can be improved...
Coming from https://github.com/Expensify/App/issues/25481#issuecomment-1687321203 ### Problem Generally, to delete stuff from Onyx you set it to null. However: - Given a subscriber to a collection key with waitForCollectionCallback: true - When...
We have observed that IndexedDB can be super slow with writes and cause major lag and jank in the app when there is a huge amount of data to store...
Coming from this [🧵 on slack](https://expensify.slack.com/archives/C01GTK53T8Q/p1691509392124649) We need to update the docs to list all the new features we've added in Onyx since Dec 2022. We should also add an...
**Problem** The default behavior of Oynx.merge is a deep merge which will object keys and array elements. This is fine but for some scenarios, we want to overwrite the object...
**Reproduction:** 1. Set something to Onyx in web implementation that cannot be serialized like `FormData` or some other class 2. See this: 
**Problem:** On dev we are pointing to `dist/web.development.js` which is a bit more difficult to test code changes. My current workaround is: Run `npm run build` in `/react-native-onyx` Copy `web.developent.js`...
**Reproduction:** - Add `captureMetrics: true` in `Onyx.init()` - Observe error in JS console ``` app-c63af0784ac898b80ef3.bundle.js:33823 Uncaught TypeError: getAllKeys is not a function at addAllSafeEvictionKeysToRecentlyAccessedList (web.development.js?d0e7:698:1) at Object.init (web.development.js?d0e7:1418:1) at __WEBPACK_DEFAULT_EXPORT__...