feat(react-native): no storage fallback to in-memory map#1281
Conversation
|
@launchdarkly/js-sdk-common size report |
|
@launchdarkly/browser size report |
|
@launchdarkly/js-client-sdk size report |
|
@launchdarkly/js-client-sdk-common size report |
138b467 to
a68a5ba
Compare
a68a5ba to
77106ed
Compare
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 77106ed. Configure here.
🤖 I have created a release *beep* *boop* --- <details><summary>browser: 0.1.17</summary> ## [0.1.17](browser-v0.1.16...browser-v0.1.17) (2026-04-23) ### Dependencies * The following workspace dependencies were updated * dependencies * @launchdarkly/js-client-sdk bumped from 4.6.1 to 4.6.2 </details> <details><summary>browser-telemetry: 1.0.33</summary> ## [1.0.33](browser-telemetry-v1.0.32...browser-telemetry-v1.0.33) (2026-04-23) ### Dependencies * The following workspace dependencies were updated * devDependencies * @launchdarkly/js-client-sdk bumped from 4.6.1 to 4.6.2 </details> <details><summary>jest: 1.0.11</summary> ## [1.0.11](jest-v1.0.10...jest-v1.0.11) (2026-04-23) ### Dependencies * The following workspace dependencies were updated * dependencies * @launchdarkly/react-native-client-sdk bumped from ~10.16.0 to ~10.17.0 </details> <details><summary>js-client-sdk: 4.6.2</summary> ## [4.6.2](js-client-sdk-v4.6.1...js-client-sdk-v4.6.2) (2026-04-23) ### Dependencies * The following workspace dependencies were updated * dependencies * @launchdarkly/js-client-sdk-common bumped from 1.25.0 to 1.26.0 </details> <details><summary>js-client-sdk-common: 1.26.0</summary> ## [1.26.0](js-client-sdk-common-v1.25.0...js-client-sdk-common-v1.26.0) (2026-04-23) ### Features * support waitForNetworkResults in FDv2 data manager ([#1280](#1280)) ([df7fa9e](df7fa9e)) ### Bug Fixes * FDv2 Only -- Adjust the behavior of initialization when only cache initializers are available. ([#1304](#1304)) ([9a2b25a](9a2b25a)) * migrate anonymous context namespace to general namespace ([#1312](#1312)) ([afbed0f](afbed0f)) </details> <details><summary>node-server-sdk-dynamodb: 6.2.24</summary> ## [6.2.24](node-server-sdk-dynamodb-v6.2.23...node-server-sdk-dynamodb-v6.2.24) (2026-04-23) ### Bug Fixes * **node-server-sdk-dynamodb:** remove unnecessary ioredis package ([#1306](#1306)) ([5d6c86e](5d6c86e)) </details> <details><summary>react-native-client-sdk: 10.17.0</summary> ## [10.17.0](react-native-client-sdk-v10.16.0...react-native-client-sdk-v10.17.0) (2026-04-23) ### Features * **react-native:** no storage fallback to in-memory map ([#1281](#1281)) ([cc86eab](cc86eab)) ### Dependencies * The following workspace dependencies were updated * dependencies * @launchdarkly/js-client-sdk-common bumped from 1.25.0 to 1.26.0 </details> <details><summary>react-sdk: 0.2.3</summary> ## [0.2.3](react-sdk-v0.2.2...react-sdk-v0.2.3) (2026-04-23) ### Dependencies * The following workspace dependencies were updated * dependencies * @launchdarkly/js-client-sdk bumped from ^4.6.1 to ^4.6.2 </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Primarily a Release Please version bump across multiple packages with dependency updates; only minimal runtime impact beyond consuming the new `@launchdarkly/js-client-sdk-common` behavior changes pulled in by the bumps. > > **Overview** > **Release automation update:** bumps workspace package versions and changelogs for a coordinated release. > > Updates `@launchdarkly/js-client-sdk` to `4.6.2` (and consumers `@launchdarkly/browser`, `@launchdarkly/react-sdk`, and examples) plus `@launchdarkly/js-client-sdk-common` to `1.26.0`. Also bumps `@launchdarkly/react-native-client-sdk` to `10.17.0` (and `@launchdarkly/jest` dependency), `@launchdarkly/browser-telemetry` to `1.0.33`, and `@launchdarkly/node-server-sdk-dynamodb` to `6.2.24`, along with manifest updates and wrapper/version constants. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 9c1a764. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This PR will change the no storage fallback from NOOP to in-memory storage.
SDK-1856
Note
Medium Risk
Changes the React Native SDK storage fallback behavior when
@react-native-async-storage/async-storagecannot be required, which can affect flag/key/context caching behavior in environments missing the native dependency.Overview
When
@react-native-async-storage/async-storageis unavailable, the React Native SDK now falls back to a per-instance in-memoryMapimplementation instead of a no-op storage, providing session-only persistence for cached flags, generated keys, and context data.Adds a focused Jest test suite that forces the
requireto fail and verifies the warning log plus basicgetItem/setItem/removeItembehavior and isolation between fallback instances.Reviewed by Cursor Bugbot for commit 77106ed. Bugbot is set up for automated code reviews on this repo. Configure here.