Skip to content

feat(react-native): no storage fallback to in-memory map#1281

Merged
joker23 merged 1 commit into
mainfrom
skz/sdk-1722/rn-storage-fallback
Apr 23, 2026
Merged

feat(react-native): no storage fallback to in-memory map#1281
joker23 merged 1 commit into
mainfrom
skz/sdk-1722/rn-storage-fallback

Conversation

@joker23

@joker23 joker23 commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

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-storage cannot be required, which can affect flag/key/context caching behavior in environments missing the native dependency.

Overview
When @react-native-async-storage/async-storage is unavailable, the React Native SDK now falls back to a per-instance in-memory Map implementation 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 require to fail and verifies the warning log plus basic getItem/setItem/removeItem behavior 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.

@github-actions

Copy link
Copy Markdown
Contributor

@launchdarkly/js-sdk-common size report
This is the brotli compressed size of the ESM build.
Compressed size: 25623 bytes
Compressed size limit: 29000
Uncompressed size: 125843 bytes

@github-actions

Copy link
Copy Markdown
Contributor

@launchdarkly/browser size report
This is the brotli compressed size of the ESM build.
Compressed size: 179382 bytes
Compressed size limit: 200000
Uncompressed size: 830105 bytes

@github-actions

Copy link
Copy Markdown
Contributor

@launchdarkly/js-client-sdk size report
This is the brotli compressed size of the ESM build.
Compressed size: 31664 bytes
Compressed size limit: 34000
Uncompressed size: 112917 bytes

@github-actions

Copy link
Copy Markdown
Contributor

@launchdarkly/js-client-sdk-common size report
This is the brotli compressed size of the ESM build.
Compressed size: 37214 bytes
Compressed size limit: 38000
Uncompressed size: 204443 bytes

@joker23 joker23 force-pushed the skz/sdk-1722/rn-storage-fallback branch from 138b467 to a68a5ba Compare April 15, 2026 19:05
@joker23 joker23 force-pushed the skz/sdk-1722/rn-storage-fallback branch from a68a5ba to 77106ed Compare April 15, 2026 19:12
@joker23

joker23 commented Apr 15, 2026

Copy link
Copy Markdown
Contributor Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ 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.

@joker23 joker23 marked this pull request as ready for review April 15, 2026 19:19
@joker23 joker23 requested a review from a team as a code owner April 15, 2026 19:19

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 2 additional findings.

Open in Devin Review

@joker23 joker23 merged commit cc86eab into main Apr 23, 2026
48 checks passed
@joker23 joker23 deleted the skz/sdk-1722/rn-storage-fallback branch April 23, 2026 15:33
@github-actions github-actions Bot mentioned this pull request Apr 23, 2026
joker23 pushed a commit that referenced this pull request Apr 23, 2026
🤖 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>
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.

2 participants