react-native-mmkv 3.3.0 → 4.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +18 -9
- package/android/build.gradle +6 -2
- package/cpp/{MMKVManagedBuffer.h → ManagedMMBuffer.h} +6 -6
- package/cpp/MmkvHostObject.cpp +13 -8
- package/cpp/MmkvHostObject.h +1 -2
- package/cpp/MmkvTypes.h +50 -0
- package/cpp/NativeMmkvModule.cpp +3 -3
- package/cpp/NativeMmkvModule.h +1 -8
- package/lib/commonjs/hooks.js +2 -2
- package/lib/commonjs/hooks.js.map +1 -1
- package/lib/module/hooks.js +2 -2
- package/lib/module/hooks.js.map +1 -1
- package/lib/typescript/src/MemoryWarningListener.web.d.ts.map +1 -1
- package/lib/typescript/src/createMMKV.d.ts.map +1 -1
- package/lib/typescript/src/createMMKV.web.d.ts.map +1 -1
- package/package.json +24 -24
- package/react-native-mmkv.podspec +3 -9
- package/react-native.config.js +9 -0
- package/src/hooks.ts +2 -2
- package/MMKV/Core/CMakeLists.txt +0 -172
- package/MMKV/Core/CodedInputData.cpp +0 -252
- package/MMKV/Core/CodedInputData.h +0 -87
- package/MMKV/Core/CodedInputDataCrypt.cpp +0 -280
- package/MMKV/Core/CodedInputDataCrypt.h +0 -87
- package/MMKV/Core/CodedInputDataCrypt_OSX.cpp +0 -62
- package/MMKV/Core/CodedInputData_OSX.cpp +0 -92
- package/MMKV/Core/CodedOutputData.cpp +0 -186
- package/MMKV/Core/CodedOutputData.h +0 -88
- package/MMKV/Core/Core.xcodeproj/project.pbxproj +0 -707
- package/MMKV/Core/Core.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/MMKV/Core/Core.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/MMKV/Core/Core.xcodeproj/xcshareddata/xcschemes/Core.xcscheme +0 -67
- package/MMKV/Core/Core.xcodeproj/xcshareddata/xcschemes/MMKVWatchCore.xcscheme +0 -67
- package/MMKV/Core/InterProcessLock.cpp +0 -186
- package/MMKV/Core/InterProcessLock.h +0 -119
- package/MMKV/Core/InterProcessLock_Android.cpp +0 -103
- package/MMKV/Core/InterProcessLock_Win32.cpp +0 -108
- package/MMKV/Core/KeyValueHolder.cpp +0 -236
- package/MMKV/Core/KeyValueHolder.h +0 -122
- package/MMKV/Core/MMBuffer.cpp +0 -210
- package/MMKV/Core/MMBuffer.h +0 -111
- package/MMKV/Core/MMKV.cpp +0 -1702
- package/MMKV/Core/MMKV.h +0 -595
- package/MMKV/Core/MMKVLog.cpp +0 -127
- package/MMKV/Core/MMKVLog.h +0 -86
- package/MMKV/Core/MMKVLog_Android.cpp +0 -134
- package/MMKV/Core/MMKVMetaInfo.hpp +0 -99
- package/MMKV/Core/MMKVPredef.h +0 -293
- package/MMKV/Core/MMKV_Android.cpp +0 -261
- package/MMKV/Core/MMKV_IO.cpp +0 -1905
- package/MMKV/Core/MMKV_IO.h +0 -57
- package/MMKV/Core/MMKV_OSX.cpp +0 -423
- package/MMKV/Core/MMKV_OSX.h +0 -57
- package/MMKV/Core/MemoryFile.cpp +0 -603
- package/MMKV/Core/MemoryFile.h +0 -194
- package/MMKV/Core/MemoryFile_Android.cpp +0 -236
- package/MMKV/Core/MemoryFile_Linux.cpp +0 -125
- package/MMKV/Core/MemoryFile_OSX.cpp +0 -142
- package/MMKV/Core/MemoryFile_Win32.cpp +0 -554
- package/MMKV/Core/MiniPBCoder.cpp +0 -672
- package/MMKV/Core/MiniPBCoder.h +0 -151
- package/MMKV/Core/MiniPBCoder_OSX.cpp +0 -237
- package/MMKV/Core/PBEncodeItem.hpp +0 -104
- package/MMKV/Core/PBUtility.cpp +0 -61
- package/MMKV/Core/PBUtility.h +0 -148
- package/MMKV/Core/ScopedLock.hpp +0 -69
- package/MMKV/Core/ThreadLock.cpp +0 -75
- package/MMKV/Core/ThreadLock.h +0 -81
- package/MMKV/Core/ThreadLock_Win32.cpp +0 -89
- package/MMKV/Core/aes/AESCrypt.cpp +0 -273
- package/MMKV/Core/aes/AESCrypt.h +0 -112
- package/MMKV/Core/aes/openssl/openssl_aes-armv4.S +0 -1243
- package/MMKV/Core/aes/openssl/openssl_aes.h +0 -130
- package/MMKV/Core/aes/openssl/openssl_aes_core.cpp +0 -1044
- package/MMKV/Core/aes/openssl/openssl_aes_locl.h +0 -38
- package/MMKV/Core/aes/openssl/openssl_aesv8-armx.S +0 -308
- package/MMKV/Core/aes/openssl/openssl_arm_arch.h +0 -84
- package/MMKV/Core/aes/openssl/openssl_cfb128.cpp +0 -97
- package/MMKV/Core/aes/openssl/openssl_md32_common.h +0 -254
- package/MMKV/Core/aes/openssl/openssl_md5.h +0 -49
- package/MMKV/Core/aes/openssl/openssl_md5_dgst.cpp +0 -166
- package/MMKV/Core/aes/openssl/openssl_md5_locl.h +0 -75
- package/MMKV/Core/aes/openssl/openssl_md5_one.cpp +0 -30
- package/MMKV/Core/aes/openssl/openssl_opensslconf.h +0 -271
- package/MMKV/Core/core.vcxproj +0 -288
- package/MMKV/Core/core.vcxproj.filters +0 -150
- package/MMKV/Core/crc32/Checksum.h +0 -75
- package/MMKV/Core/crc32/crc32_armv8.cpp +0 -134
- package/MMKV/Core/crc32/zlib/CMakeLists.txt +0 -60
- package/MMKV/Core/crc32/zlib/crc32.cpp +0 -55
- package/MMKV/Core/crc32/zlib/crc32.h +0 -48
- package/MMKV/Core/crc32/zlib/zconf.h +0 -380
- package/MMKV/Core/crc32/zlib/zutil.h +0 -25
- package/MMKV/LICENSE.TXT +0 -193
- package/MMKV/README.md +0 -354
package/android/CMakeLists.txt
CHANGED
|
@@ -2,7 +2,12 @@ cmake_minimum_required(VERSION 3.9.0)
|
|
|
2
2
|
project(ReactNativeMmkv)
|
|
3
3
|
|
|
4
4
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
5
|
-
set(CMAKE_CXX_STANDARD
|
|
5
|
+
set(CMAKE_CXX_STANDARD 20)
|
|
6
|
+
|
|
7
|
+
# Check for supported ABIs only
|
|
8
|
+
if(NOT (ANDROID_ABI STREQUAL "arm64-v8a" OR ANDROID_ABI STREQUAL "x86_64"))
|
|
9
|
+
message(FATAL_ERROR "MMKV prefab does not support ABI: ${ANDROID_ABI}. Supported ABIs: arm64-v8a, x86_64")
|
|
10
|
+
endif()
|
|
6
11
|
|
|
7
12
|
# Compile sources
|
|
8
13
|
add_library(
|
|
@@ -13,20 +18,24 @@ add_library(
|
|
|
13
18
|
../cpp/NativeMmkvModule.cpp
|
|
14
19
|
)
|
|
15
20
|
|
|
16
|
-
|
|
17
|
-
target_include_directories(react-native-mmkv PUBLIC ../MMKV/Core)
|
|
18
|
-
target_include_directories(react-native-mmkv PUBLIC ../cpp)
|
|
21
|
+
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../cpp)
|
|
19
22
|
|
|
20
|
-
#
|
|
21
|
-
|
|
23
|
+
# Find MMKV prefab package
|
|
24
|
+
find_package(mmkv REQUIRED CONFIG)
|
|
22
25
|
|
|
23
26
|
# Add android/log dependency
|
|
24
|
-
find_library(
|
|
27
|
+
find_library(android_log log)
|
|
28
|
+
|
|
29
|
+
target_include_directories(
|
|
30
|
+
react-native-mmkv
|
|
31
|
+
PUBLIC
|
|
32
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../cpp
|
|
33
|
+
)
|
|
25
34
|
|
|
26
35
|
target_link_libraries(
|
|
27
36
|
react-native-mmkv
|
|
28
|
-
|
|
29
|
-
${
|
|
37
|
+
mmkv::mmkv # <-- MMKV core (now manually configured)
|
|
38
|
+
${android_log} # <-- Logcat logger
|
|
30
39
|
android # <-- Android JNI core
|
|
31
40
|
react_codegen_RNMmkvSpec # <-- Generated Specs from CodeGen
|
|
32
41
|
)
|
package/android/build.gradle
CHANGED
|
@@ -5,7 +5,7 @@ buildscript {
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
dependencies {
|
|
8
|
-
classpath "com.android.tools.build:gradle:
|
|
8
|
+
classpath "com.android.tools.build:gradle:8.12.1"
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
|
|
@@ -44,6 +44,7 @@ android {
|
|
|
44
44
|
|
|
45
45
|
buildFeatures {
|
|
46
46
|
buildConfig true
|
|
47
|
+
prefab true
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
buildTypes {
|
|
@@ -74,8 +75,8 @@ android {
|
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
repositories {
|
|
77
|
-
mavenCentral()
|
|
78
78
|
google()
|
|
79
|
+
mavenCentral()
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
|
|
@@ -84,6 +85,9 @@ dependencies {
|
|
|
84
85
|
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
|
85
86
|
//noinspection GradleDynamicVersion
|
|
86
87
|
implementation "com.facebook.react:react-native:+"
|
|
88
|
+
|
|
89
|
+
// Use the MMKV shared lib - includes C++ prefabs (shared STL for React Native compatibility)
|
|
90
|
+
implementation "com.tencent:mmkv-shared:2.2.3"
|
|
87
91
|
}
|
|
88
92
|
|
|
89
93
|
if (isNewArchitectureEnabled()) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//
|
|
2
|
-
//
|
|
2
|
+
// ManagedMMBuffer.h
|
|
3
3
|
// react-native-mmkv
|
|
4
4
|
//
|
|
5
5
|
// Created by Marc Rousavy on 25.03.24.
|
|
@@ -7,17 +7,17 @@
|
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
|
-
#include "
|
|
10
|
+
#include "MmkvTypes.h" // IWYU pragma: keep
|
|
11
11
|
#include <jsi/jsi.h>
|
|
12
12
|
|
|
13
13
|
using namespace facebook;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
A jsi::MutableBuffer that manages
|
|
16
|
+
A jsi::MutableBuffer that manages MMBuffer memory (by ownership).
|
|
17
17
|
*/
|
|
18
|
-
class
|
|
18
|
+
class ManagedMMBuffer : public jsi::MutableBuffer {
|
|
19
19
|
public:
|
|
20
|
-
explicit
|
|
20
|
+
explicit ManagedMMBuffer(MMBuffer&& buffer) : _buffer(std::move(buffer)) {}
|
|
21
21
|
|
|
22
22
|
uint8_t* data() override {
|
|
23
23
|
return static_cast<uint8_t*>(_buffer.getPtr());
|
|
@@ -28,5 +28,5 @@ public:
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
private:
|
|
31
|
-
|
|
31
|
+
MMBuffer _buffer;
|
|
32
32
|
};
|
package/cpp/MmkvHostObject.cpp
CHANGED
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
//
|
|
8
8
|
|
|
9
9
|
#include "MmkvHostObject.h"
|
|
10
|
-
#include "
|
|
10
|
+
#include "ManagedMMBuffer.h"
|
|
11
11
|
#include "MmkvLogger.h"
|
|
12
|
-
#include <MMKV.h>
|
|
13
12
|
#include <string>
|
|
14
13
|
#include <vector>
|
|
15
14
|
|
|
@@ -28,7 +27,7 @@ MmkvHostObject::MmkvHostObject(const facebook::react::MMKVConfig& config) {
|
|
|
28
27
|
MMKVMode mode = getMMKVMode(config);
|
|
29
28
|
if (config.readOnly.has_value() && config.readOnly.value()) {
|
|
30
29
|
MmkvLogger::log("RNMMKV", "Instance is read-only!");
|
|
31
|
-
mode = mode |
|
|
30
|
+
mode = mode | mmkv::MMKV_READ_ONLY;
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
#ifdef __APPLE__
|
|
@@ -71,14 +70,14 @@ std::vector<jsi::PropNameID> MmkvHostObject::getPropertyNames(jsi::Runtime& rt)
|
|
|
71
70
|
|
|
72
71
|
MMKVMode MmkvHostObject::getMMKVMode(const facebook::react::MMKVConfig& config) {
|
|
73
72
|
if (!config.mode.has_value()) {
|
|
74
|
-
return
|
|
73
|
+
return mmkv::MMKV_SINGLE_PROCESS;
|
|
75
74
|
}
|
|
76
75
|
react::NativeMmkvMode mode = config.mode.value();
|
|
77
76
|
switch (mode) {
|
|
78
77
|
case react::NativeMmkvMode::SINGLE_PROCESS:
|
|
79
|
-
return
|
|
78
|
+
return mmkv::MMKV_SINGLE_PROCESS;
|
|
80
79
|
case react::NativeMmkvMode::MULTI_PROCESS:
|
|
81
|
-
return
|
|
80
|
+
return mmkv::MMKV_MULTI_PROCESS;
|
|
82
81
|
default:
|
|
83
82
|
[[unlikely]] throw std::runtime_error("Invalid MMKV Mode value!");
|
|
84
83
|
}
|
|
@@ -221,12 +220,18 @@ jsi::Value MmkvHostObject::get(jsi::Runtime& runtime, const jsi::PropNameID& pro
|
|
|
221
220
|
}
|
|
222
221
|
|
|
223
222
|
std::string keyName = arguments[0].getString(runtime).utf8(runtime);
|
|
224
|
-
|
|
223
|
+
MMBuffer buffer;
|
|
224
|
+
#ifdef __OBJC__
|
|
225
|
+
// iOS: Convert std::string to NSString* for MMKVCore pod compatibility
|
|
226
|
+
bool hasValue = instance->getBytes(@(keyName.c_str()), buffer);
|
|
227
|
+
#else
|
|
228
|
+
// Android/other platforms: Use std::string directly (converts to std::string_view)
|
|
225
229
|
bool hasValue = instance->getBytes(keyName, buffer);
|
|
230
|
+
#endif
|
|
226
231
|
if (!hasValue) [[unlikely]] {
|
|
227
232
|
return jsi::Value::undefined();
|
|
228
233
|
}
|
|
229
|
-
auto mutableData = std::make_shared<
|
|
234
|
+
auto mutableData = std::make_shared<ManagedMMBuffer>(std::move(buffer));
|
|
230
235
|
return jsi::ArrayBuffer(runtime, mutableData);
|
|
231
236
|
});
|
|
232
237
|
}
|
package/cpp/MmkvHostObject.h
CHANGED
|
@@ -8,12 +8,11 @@
|
|
|
8
8
|
|
|
9
9
|
#pragma once
|
|
10
10
|
|
|
11
|
-
#include "
|
|
11
|
+
#include "MmkvTypes.h" // IWYU pragma: keep
|
|
12
12
|
#include "NativeMmkvModule.h"
|
|
13
13
|
#include <jsi/jsi.h>
|
|
14
14
|
|
|
15
15
|
using namespace facebook;
|
|
16
|
-
using namespace mmkv;
|
|
17
16
|
|
|
18
17
|
class MmkvHostObject : public jsi::HostObject {
|
|
19
18
|
public:
|
package/cpp/MmkvTypes.h
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MmkvTypes.h
|
|
3
|
+
// react-native-mmkv
|
|
4
|
+
//
|
|
5
|
+
// Created by Brad Anderson on 10.08.2025.
|
|
6
|
+
// Platform-specific MMKV type unification header
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
// Platform-specific MMKV includes
|
|
12
|
+
#ifdef __ANDROID__
|
|
13
|
+
#include <MMKV/MMKV.h>
|
|
14
|
+
|
|
15
|
+
// On Android, bring global namespace types into mmkv namespace for consistency
|
|
16
|
+
namespace mmkv {
|
|
17
|
+
using MMKV = ::MMKV;
|
|
18
|
+
using MMKVMode = ::MMKVMode;
|
|
19
|
+
using MMKVLogLevel = ::MMKVLogLevel;
|
|
20
|
+
|
|
21
|
+
// Constants - bring into mmkv namespace
|
|
22
|
+
constexpr auto MMKVLogDebug = ::MMKVLogDebug;
|
|
23
|
+
constexpr auto MMKVLogInfo = ::MMKVLogInfo;
|
|
24
|
+
constexpr auto MMKVLogWarning = ::MMKVLogWarning;
|
|
25
|
+
constexpr auto MMKVLogError = ::MMKVLogError;
|
|
26
|
+
constexpr auto MMKVLogNone = ::MMKVLogNone;
|
|
27
|
+
|
|
28
|
+
constexpr auto MMKV_SINGLE_PROCESS = ::MMKV_SINGLE_PROCESS;
|
|
29
|
+
constexpr auto MMKV_MULTI_PROCESS = ::MMKV_MULTI_PROCESS;
|
|
30
|
+
constexpr auto MMKV_READ_ONLY = ::MMKVMode::MMKV_READ_ONLY;
|
|
31
|
+
} // namespace mmkv
|
|
32
|
+
|
|
33
|
+
#else
|
|
34
|
+
#include <MMKVCore/MMKV.h>
|
|
35
|
+
// iOS already has everything in mmkv:: namespace
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Unified MMKV namespace usage for cross-platform compatibility.
|
|
40
|
+
*
|
|
41
|
+
* After including this header, use:
|
|
42
|
+
* - mmkv::MMKV for the main class
|
|
43
|
+
* - mmkv::MMKVMode for mode enum
|
|
44
|
+
* - mmkv::MMKVLogLevel for log level enum
|
|
45
|
+
* - mmkv::MMBuffer for buffer type
|
|
46
|
+
* - mmkv::MMKV_SINGLE_PROCESS / mmkv::MMKV_MULTI_PROCESS for modes
|
|
47
|
+
* - mmkv::MMKVLogDebug, etc. for log levels
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
using namespace mmkv;
|
package/cpp/NativeMmkvModule.cpp
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
#include "NativeMmkvModule.h"
|
|
9
|
-
#include "MMKV.h"
|
|
10
9
|
#include "MmkvHostObject.h"
|
|
11
10
|
#include "MmkvLogger.h"
|
|
11
|
+
#include "MmkvTypes.h" // IWYU pragma: keep
|
|
12
12
|
|
|
13
13
|
namespace facebook::react {
|
|
14
14
|
|
|
@@ -23,9 +23,9 @@ bool NativeMmkvModule::initialize(jsi::Runtime& runtime, std::string basePath) {
|
|
|
23
23
|
MmkvLogger::log("RNMMKV", "Initializing MMKV at %s...", basePath.c_str());
|
|
24
24
|
|
|
25
25
|
#ifdef DEBUG
|
|
26
|
-
MMKVLogLevel logLevel = MMKVLogDebug;
|
|
26
|
+
MMKVLogLevel logLevel = mmkv::MMKVLogDebug;
|
|
27
27
|
#else
|
|
28
|
-
MMKVLogLevel logLevel = MMKVLogWarning;
|
|
28
|
+
MMKVLogLevel logLevel = mmkv::MMKVLogWarning;
|
|
29
29
|
#endif
|
|
30
30
|
|
|
31
31
|
MMKV::initializeMMKV(basePath, logLevel);
|
package/cpp/NativeMmkvModule.h
CHANGED
|
@@ -7,15 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
|
-
#if __has_include(<React-Codegen/RNMmkvSpecJSI.h>)
|
|
11
|
-
// CocoaPods include (iOS)
|
|
12
|
-
#include <React-Codegen/RNMmkvSpecJSI.h>
|
|
13
|
-
#elif __has_include(<RNMmkvSpecJSI.h>)
|
|
14
|
-
// CMake include on Android
|
|
15
10
|
#include <RNMmkvSpecJSI.h>
|
|
16
|
-
#
|
|
17
|
-
#error Cannot find react-native-mmkv spec! Try cleaning your cache and re-running CodeGen!
|
|
18
|
-
#endif
|
|
11
|
+
#include <string>
|
|
19
12
|
|
|
20
13
|
namespace facebook::react {
|
|
21
14
|
|
package/lib/commonjs/hooks.js
CHANGED
|
@@ -33,8 +33,8 @@ function getDefaultInstance() {
|
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
35
|
function useMMKV(configuration) {
|
|
36
|
-
const instance = (0, _react.useRef)();
|
|
37
|
-
const lastConfiguration = (0, _react.useRef)();
|
|
36
|
+
const instance = (0, _react.useRef)(undefined);
|
|
37
|
+
const lastConfiguration = (0, _react.useRef)(undefined);
|
|
38
38
|
if (configuration == null) return getDefaultInstance();
|
|
39
39
|
if (instance.current == null || !isConfigurationEqual(lastConfiguration.current, configuration)) {
|
|
40
40
|
lastConfiguration.current = configuration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","mode","defaultInstance","getDefaultInstance","MMKV","useMMKV","configuration","instance","useRef","lastConfiguration","current","createMMKVHook","getter","key","mmkv","bump","setBump","useState","value","useMemo","set","useCallback","v","newValue","delete","ArrayBuffer","Error","useEffect","listener","addOnValueChangedListener","changedKey","b","remove","useMMKVString","exports","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","
|
|
1
|
+
{"version":3,"names":["_react","require","_MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","mode","defaultInstance","getDefaultInstance","MMKV","useMMKV","configuration","instance","useRef","undefined","lastConfiguration","current","createMMKVHook","getter","key","mmkv","bump","setBump","useState","value","useMemo","set","useCallback","v","newValue","delete","ArrayBuffer","Error","useEffect","listener","addOnValueChangedListener","changedKey","b","remove","useMMKVString","exports","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","JSON","parse","setValue","Function","currentJson","currentValue","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/hooks.js
CHANGED
|
@@ -24,8 +24,8 @@ function getDefaultInstance() {
|
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
export function useMMKV(configuration) {
|
|
27
|
-
const instance = useRef();
|
|
28
|
-
const lastConfiguration = useRef();
|
|
27
|
+
const instance = useRef(undefined);
|
|
28
|
+
const lastConfiguration = useRef(undefined);
|
|
29
29
|
if (configuration == null) return getDefaultInstance();
|
|
30
30
|
if (instance.current == null || !isConfigurationEqual(lastConfiguration.current, configuration)) {
|
|
31
31
|
lastConfiguration.current = configuration;
|
package/lib/module/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useState","useMemo","useCallback","useEffect","MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","mode","defaultInstance","getDefaultInstance","useMMKV","configuration","instance","lastConfiguration","current","createMMKVHook","getter","key","mmkv","bump","setBump","value","set","v","newValue","delete","ArrayBuffer","Error","listener","addOnValueChangedListener","changedKey","b","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","
|
|
1
|
+
{"version":3,"names":["useRef","useState","useMemo","useCallback","useEffect","MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","mode","defaultInstance","getDefaultInstance","useMMKV","configuration","instance","undefined","lastConfiguration","current","createMMKVHook","getter","key","mmkv","bump","setBump","value","set","v","newValue","delete","ArrayBuffer","Error","listener","addOnValueChangedListener","changedKey","b","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","JSON","parse","setValue","Function","currentJson","currentValue","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryWarningListener.web.d.ts","sourceRoot":"","sources":["../../../src/MemoryWarningListener.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"MemoryWarningListener.web.d.ts","sourceRoot":"","sources":["../../../src/MemoryWarningListener.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,eAAO,MAAM,wBAAwB,GAAI,OAAO,aAAa,KAAG,IAE/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMMKV.d.ts","sourceRoot":"","sources":["../../../src/createMMKV.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAQ,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAGpE,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"createMMKV.d.ts","sourceRoot":"","sources":["../../../src/createMMKV.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAQ,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAGpE,eAAO,MAAM,UAAU,GAAI,QAAQ,aAAa,KAAG,UAoClD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMMKV.web.d.ts","sourceRoot":"","sources":["../../../src/createMMKV.web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAoBzD,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"createMMKV.web.d.ts","sourceRoot":"","sources":["../../../src/createMMKV.web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAoBzD,eAAO,MAAM,UAAU,GAAI,QAAQ,aAAa,KAAG,UAyGlD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-mmkv",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-beta.1",
|
|
4
4
|
"description": "The fastest key/value storage for React Native. ~30x faster than AsyncStorage! Works on Android, iOS and Web.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"cpp/**/*.h",
|
|
12
12
|
"cpp/**/*.cpp",
|
|
13
|
-
"MMKV/Core",
|
|
14
13
|
"android/src",
|
|
15
14
|
"android/build.gradle",
|
|
16
15
|
"android/CMakeLists.txt",
|
|
@@ -37,9 +36,8 @@
|
|
|
37
36
|
"test": "jest",
|
|
38
37
|
"typecheck": "tsc --noEmit",
|
|
39
38
|
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
40
|
-
"prepare": "
|
|
39
|
+
"prepare": "bob build",
|
|
41
40
|
"prepack": "bob build",
|
|
42
|
-
"update-submodule": "git submodule update --remote --merge",
|
|
43
41
|
"pods": "cd example && yarn pods",
|
|
44
42
|
"release": "release-it",
|
|
45
43
|
"codegen": "npx react-native codegen"
|
|
@@ -70,26 +68,28 @@
|
|
|
70
68
|
"registry": "https://registry.npmjs.org/"
|
|
71
69
|
},
|
|
72
70
|
"devDependencies": {
|
|
73
|
-
"@firmnav/eslint-github-actions-formatter": "
|
|
74
|
-
"@jamesacarr/eslint-formatter-github-actions": "
|
|
75
|
-
"@react-native-community/cli
|
|
76
|
-
"@react-native/
|
|
77
|
-
"@
|
|
78
|
-
"@
|
|
79
|
-
"@
|
|
80
|
-
"@
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"eslint
|
|
85
|
-
"
|
|
86
|
-
"prettier": "
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"react
|
|
90
|
-
"react-
|
|
91
|
-
"
|
|
92
|
-
"
|
|
71
|
+
"@firmnav/eslint-github-actions-formatter": "1.0.1",
|
|
72
|
+
"@jamesacarr/eslint-formatter-github-actions": "0.2.0",
|
|
73
|
+
"@react-native-community/cli": "19.1.1",
|
|
74
|
+
"@react-native-community/cli-types": "18.0.0",
|
|
75
|
+
"@react-native/babel-preset": "^0.81.0",
|
|
76
|
+
"@react-native/eslint-config": "0.81.0",
|
|
77
|
+
"@release-it/conventional-changelog": "9.0.1",
|
|
78
|
+
"@testing-library/react-native": "13.0.1",
|
|
79
|
+
"@types/jest": "29.5.13",
|
|
80
|
+
"@types/react": "19.1.01",
|
|
81
|
+
"del-cli": "6.0.0",
|
|
82
|
+
"eslint": "8.51.0",
|
|
83
|
+
"eslint-config-prettier": "9.0.0",
|
|
84
|
+
"eslint-plugin-prettier": "5.2.1",
|
|
85
|
+
"jest": "29.7.0",
|
|
86
|
+
"prettier": "3.3.3",
|
|
87
|
+
"react": "19.1.0",
|
|
88
|
+
"react-native": "0.81.0",
|
|
89
|
+
"react-native-builder-bob": "0.37.0",
|
|
90
|
+
"react-test-renderer": "19.1.0",
|
|
91
|
+
"release-it": "17.10.0",
|
|
92
|
+
"typescript": "^5.8.3"
|
|
93
93
|
},
|
|
94
94
|
"peerDependencies": {
|
|
95
95
|
"react": "*",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require "json"
|
|
2
2
|
|
|
3
3
|
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
-
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
|
|
5
4
|
|
|
6
5
|
Pod::UI.puts "[react-native-mmkv] Thank you for using react-native-mmkv ❤️"
|
|
7
6
|
Pod::UI.puts "[react-native-mmkv] If you enjoy using react-native-mmkv, please consider sponsoring this project: https://github.com/sponsors/mrousavy"
|
|
@@ -18,21 +17,16 @@ Pod::Spec.new do |s|
|
|
|
18
17
|
s.source = { :git => "https://github.com/mrousavy/react-native-mmkv.git", :tag => "#{s.version}" }
|
|
19
18
|
|
|
20
19
|
s.pod_target_xcconfig = {
|
|
21
|
-
"CLANG_CXX_LANGUAGE_STANDARD" => "c++
|
|
22
|
-
"CLANG_CXX_LIBRARY" => "libc++",
|
|
23
|
-
"CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF" => "NO",
|
|
24
|
-
# FORCE_POSIX ensures we are using C++ types instead of Objective-C types for MMKV.
|
|
25
|
-
"GCC_PREPROCESSOR_DEFINITIONS" => "$(inherited) FORCE_POSIX",
|
|
20
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
|
|
26
21
|
}
|
|
27
22
|
s.compiler_flags = '-x objective-c++'
|
|
28
23
|
s.libraries = "z", "c++"
|
|
29
24
|
s.source_files = [
|
|
30
25
|
# react-native-mmkv
|
|
31
26
|
"ios/**/*.{h,m,mm}",
|
|
32
|
-
"cpp/**/*.{hpp,cpp,c,h}"
|
|
33
|
-
# MMKV/Core
|
|
34
|
-
"MMKV/Core/**/*.{h,cpp,hpp,S}",
|
|
27
|
+
"cpp/**/*.{hpp,cpp,c,h}"
|
|
35
28
|
]
|
|
36
29
|
|
|
30
|
+
s.dependency 'MMKVCore', '>= 2.2.3'
|
|
37
31
|
install_modules_dependencies(s)
|
|
38
32
|
end
|
package/react-native.config.js
CHANGED
package/src/hooks.ts
CHANGED
|
@@ -34,8 +34,8 @@ export function useMMKV(): MMKV;
|
|
|
34
34
|
*/
|
|
35
35
|
export function useMMKV(configuration: Configuration): MMKV;
|
|
36
36
|
export function useMMKV(configuration?: Configuration): MMKV {
|
|
37
|
-
const instance = useRef<MMKV>();
|
|
38
|
-
const lastConfiguration = useRef<Configuration>();
|
|
37
|
+
const instance = useRef<MMKV>(undefined);
|
|
38
|
+
const lastConfiguration = useRef<Configuration>(undefined);
|
|
39
39
|
|
|
40
40
|
if (configuration == null) return getDefaultInstance();
|
|
41
41
|
|