ammarahm-ed/react-native-mmkv-storage
An ultra fast (0.0002s read/write), small & encrypted mobile key-value storage framework for React Native written in C++ using JSI
📋 What's Changed
- Fix nvalid bin path in package.json by @ammarahm-ed in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/381
- [Fix Exception in HostFunction unknown on iOS ](https://github.com/ammarahm-ed/react-native-mmkv-storage/commit/2ecfdebadcba21ea707c40544c0b8f0a48bab57e)https://github.com/ammarahm-ed/react-native-mmkv-storage/issues/363
- Full Changelog: https://github.com/ammarahm-ed/react-native-mmkv-storage/compare/v12.0.0...v12.0.1
📋 What's Changed
- Support 16 KB page-size on Android (NDK r27 + MMKV v1.3.14) by @JacobFJ in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/379
- remove __turboModuleProxy from jest mock by @paulschreiber in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/370
✨ New Contributors
- @JacobFJ made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/379
- @paulschreiber made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/370
- Full Changelog: https://github.com/ammarahm-ed/react-native-mmkv-storage/compare/v0.11.0...v12.0.0
📋 What's Changed
- Add support for new architecture by @ammarahm-ed in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/367
- Full Changelog: https://github.com/ammarahm-ed/react-native-mmkv-storage/compare/v0.10.3...v0.11.0
✨ What's New
- Upgrade to MMKV v1.3.9
- Upgrade example app to react-native 0.75.2
- Added [useMMKVRef](https://rnmmkv.vercel.app/#/usemmkvref) hook
📋 What's Changed
- removed unnecessary move by @polishchlieb in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/328
- chore: fix broken docs link by @Mookiies in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/330
- fix: Encryption typings by @Mookiies in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/331
- chore(docs): fixed typo in docs for getKeys by @JeneaVranceanu in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/333
- chore: allowing higher patch version of mmkv pod by @normanzb in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/334
- Fix detox 0.71 error duplicated libc++_shared.so for Android builds by @ayush-shta in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/336
- fix detox 0.72 error duplicated libfbjni.so for Android builds by @claired4l in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/340
- chore: grammar fix, transcation to transaction by @giacomocerquone in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/344
- + 3 more
✨ New Contributors
- @polishchlieb made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/328
- @JeneaVranceanu made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/333
- @normanzb made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/334
- @ayush-shta made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/336
- @claired4l made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/340
- @giacomocerquone made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/344
- @sidferreira made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/351
- @josephyanks made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/343
- + 2 more
💥 Breaking Change
- Works only on react native 0.71.x and above.
📋 What's Changed
- docs: update usage of MMKVLoader in readme by @unfernandito in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/274
- Update flipper doc by @pnthach95 in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/278
- Update README.md by @pfcodes in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/288
- fix: API of getItem and setItem now match AsyncStorage by @mmmoussa in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/293
- Fix apollo interface wrapper by @cdaleas in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/302
- Add supports for RN 0.71 by @focux in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/305
✨ New Contributors
- @pfcodes made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/288
- @mmmoussa made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/293
- @cdaleas made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/302
- Full Changelog: https://github.com/ammarahm-ed/react-native-mmkv-storage/compare/v0.8.0...v0.9.0
📋 What's Changed
- Update MMKV from 1.2.10 to 1.2.13 by @andrei-tofan in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/257
- Removed conditional imports in ObjC files by @amrfarid140 in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/259
- fix: incorrect default iOS keychain accessibility level by @JoniVR in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/263
- Fixed README.md typos by @TheYuriG in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/267
- [fix: incomplete implementation of transaction manager](https://github.com/ammarahm-ed/react-native-mmkv-storage/commit/eefda9a3231232a9a6217dd887bc62594f3f7db5)
- Fix mmkv causing a crash when app is closed
📦 Flipper Support 🎉
- 
- You can install it directly from plugin manager:
- 
💥 BREAKING CHANGE
- ```js
- export const encryptedStorage = new MMKVLoader()
- .setAccessibleIOS(IOSAccessibleStates.WHEN_UNLOCKED)
- .withInstanceID('encrypted')
- .withEncryption()
- .initialize();
- ```
✨ New Contributors
- @amrfarid140 made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/259
- @TheYuriG made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/267
- [pnthach95](https://github.com/pnthach95/flipper-plugin-react-native-mmkv-storage/commits?author=pnthach95)
- Full Changelog: https://github.com/ammarahm-ed/react-native-mmkv-storage/compare/v0.7.6...v0.8.0
📋 What's Changed
- Fix useMMKVStorage typings and falsy values persistance by @douugbr in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/254
- Added support for RN 0.69
✨ New Contributors
- @douugbr made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/254
- Full Changelog: https://github.com/ammarahm-ed/react-native-mmkv-storage/compare/v0.7.5...v0.7.6
Fix: set `defaultValue` parameter in `useMMKVStorage` hook optional
📋 What's Changed
- Fix: check for undefined on pathname when checking for chrome debugger by @hosseintalebi in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/250
- Use RCTBridgeModule's bridge property instead of [RCTBridge currentBridge] by @cltnschlosser in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/249
- Fix `removeItem` breaking `useMMKVStorage` hook #252
- Fix `useMMKVStorage` hook not returning same default value as get/set functions #252
✨ New Contributors
- @hosseintalebi made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/250
- @cltnschlosser made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/249
- Full Changelog: https://github.com/ammarahm-ed/react-native-mmkv-storage/compare/v0.7.3...v0.7.4
📋 What's Changed
- fix: useMMKVStorage nextValue as a function by @tony-sanchez in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/247
✨ New Contributors
- @tony-sanchez made their first contribution in https://github.com/ammarahm-ed/react-native-mmkv-storage/pull/247
- Full Changelog: https://github.com/ammarahm-ed/react-native-mmkv-storage/compare/v0.7.2...v0.7.3
✨ What's New
- 1. Remote Debugging with in-memory adapter
- 2. Add type assertions when setting values to storage #240
🐛 What's Fixed
- 4. Fix CI issues when building project on android #242
- 5. Fix `useMMKVStorage` hook not updating when removing a value or setting it to null/undefined #163 @autoreleasefool
📋 What's Changed
- The default `MMKVStorage.Loader` import has been deprecated in favor of direct importing. @unfernandito
- Before:
- ```js
- import MMKVStorage from "react-native-mmkv-storage";
- const MMKV = new MMKVStorage.Loader().initialize();
- ```
- Now more simple and clear:
- ```js
- + 3 more
📋 Changes
- fix: add missing types on async functions
✨ What's New
- 1. Migrate codebase to typescript
- 2. Add support for RN 0.68 #230
- 3. Add new builder function `withPersistedDefaultValues`. Use it to persist default value passed to hook
- 4. Added in-memory storage adapter which can be used for testing with jest.
- 5. Run example app with local symlinks
- 6. Expo support in docs
- 7. Add support for type generics in `useMMKVStorage` hook
🐛 What's Fixed
- 2. [fix: incorrect return type for hooks](https://github.com/ammarahm-ed/react-native-mmkv-storage/commit/f94d10fd111569244ffa83fdc10a62c1f1367795)
- 3. Fix mmkv not init on main thread on iOS
📋 Changes
- Fix build failing on android when upgrading from 0.6.10
📋 Changes
- Fix #195 & #141
- Change theme of documentation to improve readability
📋 Changes
- Fixed auto linking in React Native 0.67.x
✨ What's New
- Fixed migration from 0.3.7 to 0.6.x
- Fixed `defaultValue` not passed as a param when using a mutator function in `setValue`.
1. Fix multiple META-INF/MANIFEST.MF path error during detox build #199 Thanks to @andreialecu and @gersomvg 2. Fixed support for android API 21 & 22. #196
📋 Changes
- Fix google developer console security warning/app review rejection #194
- Fix typescript compilation errors @hatem-72
- Fix multiple `META-INF/MANIFEST.MF` path error @gersomvg
- Fix migration issue when upgrading from v0.4.4
- Refactor C++ code on android @waqar144
- Add notice about the `Map` data type not being supported @DysphoricUnicorn
- Fix return type for `getKeys` @Mookiies
- Update docs related to `useIndex`/`useMMKVStorage` hooks
📦 Auto linking on android
- Thanks to @retyui. Now you can simply link library with your project with a single command.
- ```
- `npx mmkv-link`
- ```
🐛 Fixed
- Fixed build issues on android, especially on older versions of react-native.
- Added missing dependencies to `setNewValue` function in `useMMKVStorage` hook
📋 Changes
- Fix build failing on RN 0.66
📋 Changes
- Add support for monorepo projects
- Fix falsy value not being set in hook #163 Thanks to @pnthach95
📋 Changes
- Remove fixed cmake version from build.gradle
📋 Changes
- Fix build failing on App Center, App Circle & Gitlab etc. #160
- Simplify cmake build
📋 Changes
- Trigger `useMMKVStorage` change when `removeItem` is called
- move `getAllMMKVInstanceIDs` and `getCurrentMMKVInstanceIDs` to module level
- `hasKey` functions in indexer are now synchronous
- Allow changing when `key` and/or `storage` in `useMMKVStorage` hook at runtime
- Add `clearMemoryCache` function
- Add `getKey` function to get encryption key of current MMKV instance
- Prevent a possible crash when sending incorrect parameters to `create` function.
- Do not recompile jsi.cpp from source on Android
- + 7 more
✨ What's new
- Transactions
- ```js
- storage.transactions.register("object","onwrite",(key,value) => {
- //do something
- })
- ```
- Remember that these are not events but functions. If you register the same type of function twice, the later will take precedence.
- useIndex
- + 3 more
🐛 Fixed
- 1. Null exception while migrating if value for key is null
- 2. `create` function not imported correctly.
- 3. Trigger useMMKVStorage change when removeItem is called Thanks @frw
- 4. improved types definition for useMMKVStorage hook Thanks @Thanaen
✨ What's new
- 1. The library now exports a simple `create` function which you can use to create a `useMMKVStorage` hook.
- 2. The `useMMKVStorage` hook now supports setter functions. #98 Thanks to @SaltedBlowfish
🐛 What's fixed
- 1. useMMKVStorage return value if it exists on init #105 by @vokhuyetOz
- 2. Minor fixes in the docs.
1. Fixed unable to access storage after calling `clearStore` #95
1. Fix return type on useMMKVStorage hook to pass ts typecheck script #92 @mateosilguero & @mmapplebeck 2. Removed console.log from `useMMKVStorage` hook 3. Convert `removeItem` & `clearStore` methods to sync.
Fixed build failing on android #91
