| name | persist-async-storage |
| description | Persist with React Native AsyncStorage via @stainless-code/persist/backends/async-storage. Use for RN string-wire JSON state; always gate with useHydrated. |
| license | MIT |
| metadata | {"type":"composition","library":"@stainless-code/persist","library_version":"0.4.1","framework":"@react-native-async-storage/async-storage"} |
| requires | ["persist"] |
| sources | ["stainless-code/persist:src/adapters/backends/async-storage.ts"] |
AsyncStorage backend
JSON via createJSONStorage under the hood. Fully async → useHydrated mandatory. Factory does not accept clearCorruptOnFailure — use createStorage(() => asyncStorageStateStorage(), jsonCodec(), opts) when you need it.
Install
bun add @stainless-code/persist @react-native-async-storage/async-storage
Peer: @react-native-async-storage/async-storage >=1.0.0.
Minimal wiring
import { createAsyncStorage } from "@stainless-code/persist/backends/async-storage";
const storage = createAsyncStorage<Prefs>()!;
Optional custom instance for namespacing: createAsyncStorage(myAsyncStorage).
Common mistakes
- Treating hydrate as sync.
- Expecting Set/Map/Date — use seroval compose or avoid.
- Passing
clearCorruptOnFailure to the factory.
API surface
createAsyncStorage(storage?) · asyncStorageStateStorage(storage?)
See also: persist-mmkv (sync RN).