UNPKG

@stainless-code/persist

Version:

Hydration-aware persistence for any reactive store — zero-dep persistSource core; codecs, backends, cross-tab transport, source + framework hydration adapters ship as opt-in recipes

47 lines (33 loc) • 1.25 kB
--- name: persist-mmkv description: Persist with react-native-mmkv via @stainless-code/persist/backends/mmkv (createMmkvStorage). Sync JSON string-wire; id required; optional MMKV encryptionKey (≤16 bytes). license: MIT metadata: type: composition library: "@stainless-code/persist" library_version: "0.4.1" framework: "react-native-mmkv" requires: - persist sources: - stainless-code/persist:src/adapters/backends/mmkv.ts --- # MMKV backend **Sync** backend — no hydrate UI gate required for flash. JSON string-wire. `id` namespaces the MMKV file. `encryptionKey` is MMKV's own key (max **16 bytes**), not `persist-encrypted`. ## Install ```bash bun add @stainless-code/persist react-native-mmkv ``` Peer: `react-native-mmkv` `>=4.0.0`. ## Minimal wiring ```ts import { createMmkvStorage } from "@stainless-code/persist/backends/mmkv"; const storage = createMmkvStorage<Prefs>({ id: "app-prefs" })!; ``` ## Common mistakes - **Gating like IDB** — MMKV is sync. - **Confusing `encryptionKey` with `backends/encrypted`.** - **Omitting `id`.** ## API surface - `createMmkvStorage({ id, path?, encryptionKey? })` · `mmkvStateStorage(instance)` See also: `persist-async-storage`; `persist-encrypted` for WebCrypto AES-GCM.