react-native-mmkv 4.0.0-beta.1 → 4.0.0-beta.11
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/NitroMmkv.podspec +44 -0
- package/README.md +1 -3
- package/android/CMakeLists.txt +31 -30
- package/android/build.gradle +66 -21
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -5
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/mmkv/HybridMMKVPlatformContext.kt +19 -0
- package/android/src/main/java/com/margelo/nitro/mmkv/NitroMmkvPackage.java +33 -0
- package/cpp/HybridMMKV.cpp +184 -0
- package/cpp/HybridMMKV.hpp +47 -0
- package/cpp/HybridMMKVFactory.cpp +33 -0
- package/cpp/HybridMMKVFactory.hpp +24 -0
- package/cpp/{MmkvTypes.h → MMKVTypes.hpp} +1 -1
- package/cpp/MMKVValueChangedListenerRegistry.cpp +58 -0
- package/cpp/MMKVValueChangedListenerRegistry.hpp +43 -0
- package/cpp/{ManagedMMBuffer.h → ManagedMMBuffer.hpp} +13 -5
- package/ios/HybridMMKVPlatformContext.swift +43 -0
- package/lib/__tests__/hooks.test.d.ts +1 -0
- package/lib/__tests__/hooks.test.js +69 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.d.ts +2 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.js +25 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.mock.d.ts +2 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.mock.js +3 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.web.d.ts +2 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.web.js +3 -0
- package/lib/createMMKV/createMMKV.d.ts +3 -0
- package/lib/createMMKV/createMMKV.js +40 -0
- package/lib/createMMKV/createMMKV.web.d.ts +3 -0
- package/lib/createMMKV/createMMKV.web.js +117 -0
- package/lib/createMMKV/createMockMMKV.d.ts +5 -0
- package/lib/createMMKV/createMockMMKV.js +74 -0
- package/lib/createMMKV/getDefaultMMKVInstance.d.ts +2 -0
- package/lib/createMMKV/getDefaultMMKVInstance.js +8 -0
- package/lib/hooks/createMMKVHook.d.ts +2 -0
- package/lib/hooks/createMMKVHook.js +49 -0
- package/lib/hooks/useMMKV.d.ts +11 -0
- package/lib/hooks/useMMKV.js +23 -0
- package/lib/hooks/useMMKVBoolean.d.ts +11 -0
- package/lib/hooks/useMMKVBoolean.js +12 -0
- package/lib/hooks/useMMKVBuffer.d.ts +11 -0
- package/lib/hooks/useMMKVBuffer.js +12 -0
- package/lib/hooks/useMMKVKeys.d.ts +12 -0
- package/lib/hooks/useMMKVKeys.js +33 -0
- package/lib/hooks/useMMKVListener.d.ts +15 -0
- package/lib/hooks/useMMKVListener.js +26 -0
- package/lib/hooks/useMMKVNumber.d.ts +11 -0
- package/lib/hooks/useMMKVNumber.js +12 -0
- package/lib/hooks/useMMKVObject.d.ts +17 -0
- package/lib/hooks/useMMKVObject.js +38 -0
- package/lib/hooks/useMMKVString.d.ts +11 -0
- package/lib/hooks/useMMKVString.js +12 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.js +11 -0
- package/lib/isTest.d.ts +1 -0
- package/lib/isTest.js +7 -0
- package/lib/specs/MMKV.nitro.d.ts +94 -0
- package/lib/specs/MMKV.nitro.js +1 -0
- package/lib/{typescript/src/NativeMmkv.d.ts → specs/MMKVFactory.nitro.d.ts} +26 -33
- package/lib/specs/MMKVFactory.nitro.js +1 -0
- package/lib/specs/MMKVPlatformContext.nitro.d.ts +18 -0
- package/lib/specs/MMKVPlatformContext.nitro.js +1 -0
- package/lib/{typescript/src → web}/createTextEncoder.d.ts +0 -1
- package/lib/web/createTextEncoder.js +17 -0
- package/nitro.json +28 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroMmkv+autolinking.cmake +80 -0
- package/nitrogen/generated/android/NitroMmkv+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroMmkvOnLoad.cpp +54 -0
- package/nitrogen/generated/android/NitroMmkvOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JHybridMMKVPlatformContextSpec.cpp +52 -0
- package/nitrogen/generated/android/c++/JHybridMMKVPlatformContextSpec.hpp +65 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mmkv/HybridMMKVPlatformContextSpec.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mmkv/NitroMmkvOnLoad.kt +35 -0
- package/nitrogen/generated/ios/NitroMmkv+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroMmkv-Swift-Cxx-Bridge.cpp +32 -0
- package/nitrogen/generated/ios/NitroMmkv-Swift-Cxx-Bridge.hpp +77 -0
- package/nitrogen/generated/ios/NitroMmkv-Swift-Cxx-Umbrella.hpp +45 -0
- package/nitrogen/generated/ios/NitroMmkvAutolinking.mm +43 -0
- package/nitrogen/generated/ios/NitroMmkvAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridMMKVPlatformContextSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridMMKVPlatformContextSpecSwift.hpp +82 -0
- package/nitrogen/generated/ios/swift/HybridMMKVPlatformContextSpec.swift +50 -0
- package/nitrogen/generated/ios/swift/HybridMMKVPlatformContextSpec_cxx.swift +141 -0
- package/nitrogen/generated/shared/c++/Configuration.hpp +86 -0
- package/nitrogen/generated/shared/c++/HybridMMKVFactorySpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridMMKVFactorySpec.hpp +69 -0
- package/nitrogen/generated/shared/c++/HybridMMKVPlatformContextSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridMMKVPlatformContextSpec.hpp +64 -0
- package/nitrogen/generated/shared/c++/HybridMMKVSpec.cpp +34 -0
- package/nitrogen/generated/shared/c++/HybridMMKVSpec.hpp +83 -0
- package/nitrogen/generated/shared/c++/Listener.hpp +67 -0
- package/nitrogen/generated/shared/c++/Mode.hpp +76 -0
- package/package.json +74 -122
- package/react-native.config.js +2 -15
- package/src/__tests__/hooks.test.tsx +39 -34
- package/src/addMemoryWarningListener/addMemoryWarningListener.mock.ts +5 -0
- package/src/{MemoryWarningListener.ts → addMemoryWarningListener/addMemoryWarningListener.ts} +12 -12
- package/src/addMemoryWarningListener/addMemoryWarningListener.web.ts +5 -0
- package/src/createMMKV/createMMKV.ts +51 -0
- package/src/{createMMKV.web.ts → createMMKV/createMMKV.web.ts} +58 -46
- package/src/createMMKV/createMockMMKV.ts +78 -0
- package/src/createMMKV/getDefaultMMKVInstance.ts +10 -0
- package/src/hooks/createMMKVHook.ts +66 -0
- package/src/hooks/useMMKV.ts +45 -0
- package/src/hooks/useMMKVBoolean.ts +15 -0
- package/src/hooks/useMMKVBuffer.ts +15 -0
- package/src/hooks/useMMKVKeys.ts +36 -0
- package/src/hooks/useMMKVListener.ts +33 -0
- package/src/hooks/useMMKVNumber.ts +15 -0
- package/src/hooks/useMMKVObject.ts +53 -0
- package/src/hooks/useMMKVString.ts +15 -0
- package/src/index.ts +15 -3
- package/src/{PlatformChecker.ts → isTest.ts} +2 -2
- package/src/specs/MMKV.nitro.ts +93 -0
- package/src/specs/MMKVFactory.nitro.ts +87 -0
- package/src/specs/MMKVPlatformContext.nitro.ts +17 -0
- package/src/{createTextEncoder.ts → web/createTextEncoder.ts} +7 -7
- package/android/src/main/cpp/AndroidLogger.cpp +0 -16
- package/android/src/main/java/com/mrousavy/mmkv/MmkvPackage.java +0 -44
- package/android/src/main/java/com/mrousavy/mmkv/MmkvPlatformContextModule.java +0 -26
- package/cpp/MmkvHostObject.cpp +0 -360
- package/cpp/MmkvHostObject.h +0 -31
- package/cpp/MmkvLogger.h +0 -35
- package/cpp/NativeMmkvModule.cpp +0 -43
- package/cpp/NativeMmkvModule.h +0 -31
- package/ios/AppleLogger.mm +0 -16
- package/ios/MmkvOnLoad.mm +0 -25
- package/ios/MmkvPlatformContext.h +0 -19
- package/ios/MmkvPlatformContextModule.mm +0 -55
- package/lib/commonjs/MMKV.js +0 -124
- package/lib/commonjs/MMKV.js.map +0 -1
- package/lib/commonjs/MemoryWarningListener.js +0 -31
- package/lib/commonjs/MemoryWarningListener.js.map +0 -1
- package/lib/commonjs/MemoryWarningListener.web.js +0 -11
- package/lib/commonjs/MemoryWarningListener.web.js.map +0 -1
- package/lib/commonjs/ModuleNotFoundError.js +0 -75
- package/lib/commonjs/ModuleNotFoundError.js.map +0 -1
- package/lib/commonjs/NativeMmkv.js +0 -47
- package/lib/commonjs/NativeMmkv.js.map +0 -1
- package/lib/commonjs/NativeMmkvPlatformContext.js +0 -22
- package/lib/commonjs/NativeMmkvPlatformContext.js.map +0 -1
- package/lib/commonjs/PlatformChecker.js +0 -14
- package/lib/commonjs/PlatformChecker.js.map +0 -1
- package/lib/commonjs/Types.js +0 -26
- package/lib/commonjs/Types.js.map +0 -1
- package/lib/commonjs/createMMKV.js +0 -43
- package/lib/commonjs/createMMKV.js.map +0 -1
- package/lib/commonjs/createMMKV.mock.js +0 -43
- package/lib/commonjs/createMMKV.mock.js.map +0 -1
- package/lib/commonjs/createMMKV.web.js +0 -110
- package/lib/commonjs/createMMKV.web.js.map +0 -1
- package/lib/commonjs/createTextEncoder.js +0 -23
- package/lib/commonjs/createTextEncoder.js.map +0 -1
- package/lib/commonjs/hooks.js +0 -198
- package/lib/commonjs/hooks.js.map +0 -1
- package/lib/commonjs/index.js +0 -40
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/package.json +0 -1
- package/lib/module/MMKV.js +0 -119
- package/lib/module/MMKV.js.map +0 -1
- package/lib/module/MemoryWarningListener.js +0 -27
- package/lib/module/MemoryWarningListener.js.map +0 -1
- package/lib/module/MemoryWarningListener.web.js +0 -6
- package/lib/module/MemoryWarningListener.web.js.map +0 -1
- package/lib/module/ModuleNotFoundError.js +0 -70
- package/lib/module/ModuleNotFoundError.js.map +0 -1
- package/lib/module/NativeMmkv.js +0 -45
- package/lib/module/NativeMmkv.js.map +0 -1
- package/lib/module/NativeMmkvPlatformContext.js +0 -18
- package/lib/module/NativeMmkvPlatformContext.js.map +0 -1
- package/lib/module/PlatformChecker.js +0 -10
- package/lib/module/PlatformChecker.js.map +0 -1
- package/lib/module/Types.js +0 -25
- package/lib/module/Types.js.map +0 -1
- package/lib/module/createMMKV.js +0 -38
- package/lib/module/createMMKV.js.map +0 -1
- package/lib/module/createMMKV.mock.js +0 -38
- package/lib/module/createMMKV.mock.js.map +0 -1
- package/lib/module/createMMKV.web.js +0 -105
- package/lib/module/createMMKV.web.js.map +0 -1
- package/lib/module/createTextEncoder.js +0 -19
- package/lib/module/createTextEncoder.js.map +0 -1
- package/lib/module/hooks.js +0 -189
- package/lib/module/hooks.js.map +0 -1
- package/lib/module/index.js +0 -6
- package/lib/module/index.js.map +0 -1
- package/lib/module/package.json +0 -1
- package/lib/typescript/src/MMKV.d.ts +0 -34
- package/lib/typescript/src/MMKV.d.ts.map +0 -1
- package/lib/typescript/src/MemoryWarningListener.d.ts +0 -3
- package/lib/typescript/src/MemoryWarningListener.d.ts.map +0 -1
- package/lib/typescript/src/MemoryWarningListener.web.d.ts +0 -3
- package/lib/typescript/src/MemoryWarningListener.web.d.ts.map +0 -1
- package/lib/typescript/src/ModuleNotFoundError.d.ts +0 -7
- package/lib/typescript/src/ModuleNotFoundError.d.ts.map +0 -1
- package/lib/typescript/src/NativeMmkv.d.ts.map +0 -1
- package/lib/typescript/src/NativeMmkvPlatformContext.d.ts +0 -20
- package/lib/typescript/src/NativeMmkvPlatformContext.d.ts.map +0 -1
- package/lib/typescript/src/PlatformChecker.d.ts +0 -2
- package/lib/typescript/src/PlatformChecker.d.ts.map +0 -1
- package/lib/typescript/src/Types.d.ts +0 -172
- package/lib/typescript/src/Types.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/hooks.test.d.ts +0 -2
- package/lib/typescript/src/__tests__/hooks.test.d.ts.map +0 -1
- package/lib/typescript/src/createMMKV.d.ts +0 -3
- package/lib/typescript/src/createMMKV.d.ts.map +0 -1
- package/lib/typescript/src/createMMKV.mock.d.ts +0 -3
- package/lib/typescript/src/createMMKV.mock.d.ts.map +0 -1
- package/lib/typescript/src/createMMKV.web.d.ts +0 -3
- package/lib/typescript/src/createMMKV.web.d.ts.map +0 -1
- package/lib/typescript/src/createTextEncoder.d.ts.map +0 -1
- package/lib/typescript/src/hooks.d.ts +0 -86
- package/lib/typescript/src/hooks.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -4
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/react-native-mmkv.podspec +0 -32
- package/src/MMKV.ts +0 -142
- package/src/MemoryWarningListener.web.ts +0 -5
- package/src/ModuleNotFoundError.ts +0 -95
- package/src/NativeMmkv.ts +0 -118
- package/src/NativeMmkvPlatformContext.ts +0 -38
- package/src/Types.ts +0 -178
- package/src/createMMKV.mock.ts +0 -38
- package/src/createMMKV.ts +0 -42
- package/src/hooks.ts +0 -247
package/cpp/MmkvHostObject.h
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// MmkvHostObject.h
|
|
3
|
-
// Mmkv
|
|
4
|
-
//
|
|
5
|
-
// Created by Marc Rousavy on 03.09.21.
|
|
6
|
-
// Copyright © 2021 Facebook. All rights reserved.
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
#pragma once
|
|
10
|
-
|
|
11
|
-
#include "MmkvTypes.h" // IWYU pragma: keep
|
|
12
|
-
#include "NativeMmkvModule.h"
|
|
13
|
-
#include <jsi/jsi.h>
|
|
14
|
-
|
|
15
|
-
using namespace facebook;
|
|
16
|
-
|
|
17
|
-
class MmkvHostObject : public jsi::HostObject {
|
|
18
|
-
public:
|
|
19
|
-
MmkvHostObject(const facebook::react::MMKVConfig& config);
|
|
20
|
-
~MmkvHostObject();
|
|
21
|
-
|
|
22
|
-
public:
|
|
23
|
-
jsi::Value get(jsi::Runtime&, const jsi::PropNameID& name) override;
|
|
24
|
-
std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& rt) override;
|
|
25
|
-
|
|
26
|
-
private:
|
|
27
|
-
static MMKVMode getMMKVMode(const facebook::react::MMKVConfig& config);
|
|
28
|
-
|
|
29
|
-
private:
|
|
30
|
-
MMKV* instance;
|
|
31
|
-
};
|
package/cpp/MmkvLogger.h
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// MmkvLogger.h
|
|
3
|
-
// react-native-mmkv
|
|
4
|
-
//
|
|
5
|
-
// Created by Marc Rousavy on 25.03.24.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
#include <string>
|
|
9
|
-
|
|
10
|
-
class MmkvLogger {
|
|
11
|
-
private:
|
|
12
|
-
MmkvLogger() = delete;
|
|
13
|
-
|
|
14
|
-
private:
|
|
15
|
-
template <typename... Args>
|
|
16
|
-
static std::string string_format(const std::string& format, Args... args) {
|
|
17
|
-
int size_s = std::snprintf(nullptr, 0, format.c_str(), args...) + 1; // Extra space for '\0'
|
|
18
|
-
if (size_s <= 0) {
|
|
19
|
-
throw std::runtime_error("Failed to format string!");
|
|
20
|
-
}
|
|
21
|
-
auto size = static_cast<size_t>(size_s);
|
|
22
|
-
std::unique_ptr<char[]> buf(new char[size]);
|
|
23
|
-
std::snprintf(buf.get(), size, format.c_str(), args...);
|
|
24
|
-
return std::string(buf.get(), buf.get() + size - 1); // We don't want the '\0' inside
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public:
|
|
28
|
-
static void log(const std::string& tag, const std::string& message);
|
|
29
|
-
|
|
30
|
-
template <typename... Args>
|
|
31
|
-
inline static void log(const std::string& tag, const std::string& formatString, Args&&... args) {
|
|
32
|
-
std::string formattedString = string_format(formatString, std::forward<Args>(args)...);
|
|
33
|
-
log(tag, formattedString);
|
|
34
|
-
}
|
|
35
|
-
};
|
package/cpp/NativeMmkvModule.cpp
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// NativeMmkvModule.cpp
|
|
3
|
-
// react-native-mmkv
|
|
4
|
-
//
|
|
5
|
-
// Created by Marc Rousavy on 25.03.2024.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
#include "NativeMmkvModule.h"
|
|
9
|
-
#include "MmkvHostObject.h"
|
|
10
|
-
#include "MmkvLogger.h"
|
|
11
|
-
#include "MmkvTypes.h" // IWYU pragma: keep
|
|
12
|
-
|
|
13
|
-
namespace facebook::react {
|
|
14
|
-
|
|
15
|
-
NativeMmkvModule::NativeMmkvModule(std::shared_ptr<CallInvoker> jsInvoker)
|
|
16
|
-
: NativeMmkvCxxSpec(jsInvoker) {}
|
|
17
|
-
|
|
18
|
-
bool NativeMmkvModule::initialize(jsi::Runtime& runtime, std::string basePath) {
|
|
19
|
-
if (basePath.empty()) {
|
|
20
|
-
throw jsi::JSError(runtime, "Path cannot be empty!");
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
MmkvLogger::log("RNMMKV", "Initializing MMKV at %s...", basePath.c_str());
|
|
24
|
-
|
|
25
|
-
#ifdef DEBUG
|
|
26
|
-
MMKVLogLevel logLevel = mmkv::MMKVLogDebug;
|
|
27
|
-
#else
|
|
28
|
-
MMKVLogLevel logLevel = mmkv::MMKVLogWarning;
|
|
29
|
-
#endif
|
|
30
|
-
|
|
31
|
-
MMKV::initializeMMKV(basePath, logLevel);
|
|
32
|
-
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
NativeMmkvModule::~NativeMmkvModule() {}
|
|
37
|
-
|
|
38
|
-
jsi::Object NativeMmkvModule::createMMKV(jsi::Runtime& runtime, MMKVConfig config) {
|
|
39
|
-
auto instance = std::make_shared<MmkvHostObject>(config);
|
|
40
|
-
return jsi::Object::createFromHostObject(runtime, instance);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
} // namespace facebook::react
|
package/cpp/NativeMmkvModule.h
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// NativeMmkvModule.h
|
|
3
|
-
// react-native-mmkv
|
|
4
|
-
//
|
|
5
|
-
// Created by Marc Rousavy on 25.03.2024.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
#pragma once
|
|
9
|
-
|
|
10
|
-
#include <RNMmkvSpecJSI.h>
|
|
11
|
-
#include <string>
|
|
12
|
-
|
|
13
|
-
namespace facebook::react {
|
|
14
|
-
|
|
15
|
-
// The MMKVConfiguration type from JS
|
|
16
|
-
using MMKVConfig =
|
|
17
|
-
NativeMmkvConfiguration<std::string, std::optional<std::string>, std::optional<std::string>,
|
|
18
|
-
std::optional<NativeMmkvMode>, std::optional<bool>>;
|
|
19
|
-
template <> struct Bridging<MMKVConfig> : NativeMmkvConfigurationBridging<MMKVConfig> {};
|
|
20
|
-
|
|
21
|
-
// The TurboModule itself
|
|
22
|
-
class NativeMmkvModule : public NativeMmkvCxxSpec<NativeMmkvModule> {
|
|
23
|
-
public:
|
|
24
|
-
NativeMmkvModule(std::shared_ptr<CallInvoker> jsInvoker);
|
|
25
|
-
~NativeMmkvModule();
|
|
26
|
-
|
|
27
|
-
bool initialize(jsi::Runtime& runtime, std::string basePath);
|
|
28
|
-
jsi::Object createMMKV(jsi::Runtime& runtime, MMKVConfig config);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
} // namespace facebook::react
|
package/ios/AppleLogger.mm
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AppleMmkvLogger.m
|
|
3
|
-
// react-native-mmkv
|
|
4
|
-
//
|
|
5
|
-
// Created by Marc Rousavy on 25.03.24.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
#import "MmkvLogger.h"
|
|
9
|
-
#import <Foundation/Foundation.h>
|
|
10
|
-
|
|
11
|
-
void MmkvLogger::log(const std::string& tag, const std::string& message) {
|
|
12
|
-
#pragma clang diagnostic push
|
|
13
|
-
#pragma clang diagnostic ignored "-Wformat-security"
|
|
14
|
-
NSLog(@"[%s]: %s", tag.c_str(), message.c_str());
|
|
15
|
-
#pragma clang diagnostic pop
|
|
16
|
-
}
|
package/ios/MmkvOnLoad.mm
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// MmkvOnLoad.mm
|
|
3
|
-
// react-native-mmkv
|
|
4
|
-
//
|
|
5
|
-
// Created by Marc Rousavy on 27.03.24.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
#import "NativeMmkvModule.h"
|
|
9
|
-
#import <Foundation/Foundation.h>
|
|
10
|
-
#import <ReactCommon/CxxTurboModuleUtils.h>
|
|
11
|
-
|
|
12
|
-
@interface MMKVOnLoad : NSObject
|
|
13
|
-
@end
|
|
14
|
-
|
|
15
|
-
@implementation MMKVOnLoad
|
|
16
|
-
|
|
17
|
-
+ (void)load {
|
|
18
|
-
facebook::react::registerCxxModuleToGlobalModuleMap(
|
|
19
|
-
std::string(facebook::react::NativeMmkvModule::kModuleName),
|
|
20
|
-
[&](std::shared_ptr<facebook::react::CallInvoker> jsInvoker) {
|
|
21
|
-
return std::make_shared<facebook::react::NativeMmkvModule>(jsInvoker);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
@end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// RTNMmkvPlatformContext.h
|
|
3
|
-
// Pods
|
|
4
|
-
//
|
|
5
|
-
// Created by Marc Rousavy on 27.03.24.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
#pragma once
|
|
9
|
-
|
|
10
|
-
#import <Foundation/Foundation.h>
|
|
11
|
-
#import <RNMmkvSpec/RNMmkvSpec.h>
|
|
12
|
-
|
|
13
|
-
NS_ASSUME_NONNULL_BEGIN
|
|
14
|
-
|
|
15
|
-
@interface MmkvPlatformContext : NSObject <NativeMmkvPlatformContextSpec>
|
|
16
|
-
|
|
17
|
-
@end
|
|
18
|
-
|
|
19
|
-
NS_ASSUME_NONNULL_END
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// AppleMmkvPlatformContext.m
|
|
3
|
-
// react-native-mmkv
|
|
4
|
-
//
|
|
5
|
-
// Created by Marc Rousavy on 25.03.24.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
#import "MmkvPlatformContext.h"
|
|
9
|
-
#import <Foundation/Foundation.h>
|
|
10
|
-
|
|
11
|
-
@implementation MmkvPlatformContext
|
|
12
|
-
|
|
13
|
-
RCT_EXPORT_MODULE()
|
|
14
|
-
|
|
15
|
-
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
16
|
-
(const facebook::react::ObjCTurboModule::InitParams&)params {
|
|
17
|
-
return std::make_shared<facebook::react::NativeMmkvPlatformContextSpecJSI>(params);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
- (NSString*)getBaseDirectory {
|
|
21
|
-
#if TARGET_OS_TV
|
|
22
|
-
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
|
|
23
|
-
#else
|
|
24
|
-
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
|
25
|
-
#endif
|
|
26
|
-
NSString* documentPath = (NSString*)[paths firstObject];
|
|
27
|
-
if (documentPath.length > 0) {
|
|
28
|
-
NSString* basePath = [documentPath stringByAppendingPathComponent:@"mmkv"];
|
|
29
|
-
return basePath;
|
|
30
|
-
} else {
|
|
31
|
-
@throw [NSException exceptionWithName:@"BasePathNotFound"
|
|
32
|
-
reason:@"Cannot find base-path to store MMKV files!"
|
|
33
|
-
userInfo:nil];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
- (NSString*)getAppGroupDirectory {
|
|
38
|
-
NSString* appGroup = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"AppGroup"];
|
|
39
|
-
if (appGroup == nil) {
|
|
40
|
-
// No AppGroup set in Info.plist.
|
|
41
|
-
return nil;
|
|
42
|
-
}
|
|
43
|
-
NSURL* groupDir =
|
|
44
|
-
[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:appGroup];
|
|
45
|
-
if (groupDir == nil) {
|
|
46
|
-
// We have an AppGroup set in Info.plist, but the path is not readable!
|
|
47
|
-
@throw [NSException exceptionWithName:@"AppGroupNotAccessible"
|
|
48
|
-
reason:@"An AppGroup was set in Info.plist, but it is not "
|
|
49
|
-
@"accessible via NSFileManager!"
|
|
50
|
-
userInfo:@{@"appGroup" : appGroup}];
|
|
51
|
-
}
|
|
52
|
-
return groupDir.path;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
@end
|
package/lib/commonjs/MMKV.js
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.MMKV = void 0;
|
|
7
|
-
var _createMMKV = require("./createMMKV");
|
|
8
|
-
var _createMMKV2 = require("./createMMKV.mock");
|
|
9
|
-
var _PlatformChecker = require("./PlatformChecker");
|
|
10
|
-
var _MemoryWarningListener = require("./MemoryWarningListener");
|
|
11
|
-
const onValueChangedListeners = new Map();
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* A single MMKV instance.
|
|
15
|
-
*/
|
|
16
|
-
class MMKV {
|
|
17
|
-
/**
|
|
18
|
-
* Creates a new MMKV instance with the given Configuration.
|
|
19
|
-
* If no custom `id` is supplied, `'mmkv.default'` will be used.
|
|
20
|
-
*/
|
|
21
|
-
constructor(configuration = {
|
|
22
|
-
id: 'mmkv.default'
|
|
23
|
-
}) {
|
|
24
|
-
this.id = configuration.id;
|
|
25
|
-
this.nativeInstance = (0, _PlatformChecker.isTest)() ? (0, _createMMKV2.createMockMMKV)() : (0, _createMMKV.createMMKV)(configuration);
|
|
26
|
-
this.functionCache = {};
|
|
27
|
-
(0, _MemoryWarningListener.addMemoryWarningListener)(this);
|
|
28
|
-
}
|
|
29
|
-
get onValueChangedListeners() {
|
|
30
|
-
if (!onValueChangedListeners.has(this.id)) {
|
|
31
|
-
onValueChangedListeners.set(this.id, []);
|
|
32
|
-
}
|
|
33
|
-
return onValueChangedListeners.get(this.id);
|
|
34
|
-
}
|
|
35
|
-
getFunctionFromCache(functionName) {
|
|
36
|
-
if (this.functionCache[functionName] == null) {
|
|
37
|
-
this.functionCache[functionName] = this.nativeInstance[functionName];
|
|
38
|
-
}
|
|
39
|
-
return this.functionCache[functionName];
|
|
40
|
-
}
|
|
41
|
-
onValuesChanged(keys) {
|
|
42
|
-
if (this.onValueChangedListeners.length === 0) return;
|
|
43
|
-
for (const key of keys) {
|
|
44
|
-
for (const listener of this.onValueChangedListeners) {
|
|
45
|
-
listener(key);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
get size() {
|
|
50
|
-
return this.nativeInstance.size;
|
|
51
|
-
}
|
|
52
|
-
get isReadOnly() {
|
|
53
|
-
return this.nativeInstance.isReadOnly;
|
|
54
|
-
}
|
|
55
|
-
set(key, value) {
|
|
56
|
-
const func = this.getFunctionFromCache('set');
|
|
57
|
-
func(key, value);
|
|
58
|
-
this.onValuesChanged([key]);
|
|
59
|
-
}
|
|
60
|
-
getBoolean(key) {
|
|
61
|
-
const func = this.getFunctionFromCache('getBoolean');
|
|
62
|
-
return func(key);
|
|
63
|
-
}
|
|
64
|
-
getString(key) {
|
|
65
|
-
const func = this.getFunctionFromCache('getString');
|
|
66
|
-
return func(key);
|
|
67
|
-
}
|
|
68
|
-
getNumber(key) {
|
|
69
|
-
const func = this.getFunctionFromCache('getNumber');
|
|
70
|
-
return func(key);
|
|
71
|
-
}
|
|
72
|
-
getBuffer(key) {
|
|
73
|
-
const func = this.getFunctionFromCache('getBuffer');
|
|
74
|
-
return func(key);
|
|
75
|
-
}
|
|
76
|
-
contains(key) {
|
|
77
|
-
const func = this.getFunctionFromCache('contains');
|
|
78
|
-
return func(key);
|
|
79
|
-
}
|
|
80
|
-
delete(key) {
|
|
81
|
-
const func = this.getFunctionFromCache('delete');
|
|
82
|
-
func(key);
|
|
83
|
-
this.onValuesChanged([key]);
|
|
84
|
-
}
|
|
85
|
-
getAllKeys() {
|
|
86
|
-
const func = this.getFunctionFromCache('getAllKeys');
|
|
87
|
-
return func();
|
|
88
|
-
}
|
|
89
|
-
clearAll() {
|
|
90
|
-
const keys = this.getAllKeys();
|
|
91
|
-
const func = this.getFunctionFromCache('clearAll');
|
|
92
|
-
func();
|
|
93
|
-
this.onValuesChanged(keys);
|
|
94
|
-
}
|
|
95
|
-
recrypt(key) {
|
|
96
|
-
const func = this.getFunctionFromCache('recrypt');
|
|
97
|
-
return func(key);
|
|
98
|
-
}
|
|
99
|
-
trim() {
|
|
100
|
-
const func = this.getFunctionFromCache('trim');
|
|
101
|
-
func();
|
|
102
|
-
}
|
|
103
|
-
toString() {
|
|
104
|
-
return `MMKV (${this.id}): [${this.getAllKeys().join(', ')}]`;
|
|
105
|
-
}
|
|
106
|
-
toJSON() {
|
|
107
|
-
return {
|
|
108
|
-
[this.id]: this.getAllKeys()
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
addOnValueChangedListener(onValueChanged) {
|
|
112
|
-
this.onValueChangedListeners.push(onValueChanged);
|
|
113
|
-
return {
|
|
114
|
-
remove: () => {
|
|
115
|
-
const index = this.onValueChangedListeners.indexOf(onValueChanged);
|
|
116
|
-
if (index !== -1) {
|
|
117
|
-
this.onValueChangedListeners.splice(index, 1);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
exports.MMKV = MMKV;
|
|
124
|
-
//# sourceMappingURL=MMKV.js.map
|
package/lib/commonjs/MMKV.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_createMMKV","require","_createMMKV2","_PlatformChecker","_MemoryWarningListener","onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","isTest","createMockMMKV","createMMKV","functionCache","addMemoryWarningListener","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","size","isReadOnly","value","func","getBoolean","getString","getNumber","getBuffer","contains","delete","getAllKeys","clearAll","recrypt","trim","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice","exports"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.addMemoryWarningListener = addMemoryWarningListener;
|
|
7
|
-
var _reactNative = require("react-native");
|
|
8
|
-
function addMemoryWarningListener(mmkv) {
|
|
9
|
-
if (global.WeakRef != null && global.FinalizationRegistry != null) {
|
|
10
|
-
// 1. Weakify MMKV so we can safely use it inside the memoryWarning event listener
|
|
11
|
-
const weakMmkv = new WeakRef(mmkv);
|
|
12
|
-
const listener = _reactNative.AppState.addEventListener('memoryWarning', () => {
|
|
13
|
-
// 0. Everytime we receive a memoryWarning, we try to trim the MMKV instance (if it is still valid)
|
|
14
|
-
weakMmkv.deref()?.trim();
|
|
15
|
-
});
|
|
16
|
-
// 2. Add a listener to when the MMKV instance is deleted
|
|
17
|
-
const finalization = new FinalizationRegistry(l => {
|
|
18
|
-
// 3. When MMKV is deleted, this listener will be called with the memoryWarning listener.
|
|
19
|
-
l.remove();
|
|
20
|
-
});
|
|
21
|
-
// 2.1. Bind the listener to the actual MMKV instance.
|
|
22
|
-
finalization.register(mmkv, listener);
|
|
23
|
-
} else {
|
|
24
|
-
// WeakRef/FinalizationRegistry is not implemented in this engine.
|
|
25
|
-
// Just add the listener, even if it retains MMKV strong forever.
|
|
26
|
-
_reactNative.AppState.addEventListener('memoryWarning', () => {
|
|
27
|
-
mmkv.trim();
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=MemoryWarningListener.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","addMemoryWarningListener","mmkv","global","WeakRef","FinalizationRegistry","weakMmkv","listener","AppState","addEventListener","deref","trim","finalization","l","remove","register"],"sourceRoot":"../../src","sources":["MemoryWarningListener.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIO,SAASC,wBAAwBA,CAACC,IAAmB,EAAQ;EAClE,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,IAAID,MAAM,CAACE,oBAAoB,IAAI,IAAI,EAAE;IACjE;IACA,MAAMC,QAAQ,GAAG,IAAIF,OAAO,CAACF,IAAI,CAAC;IAClC,MAAMK,QAAQ,GAAGC,qBAAQ,CAACC,gBAAgB,CAAC,eAAe,EAAE,MAAM;MAChE;MACAH,QAAQ,CAACI,KAAK,CAAC,CAAC,EAAEC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF;IACA,MAAMC,YAAY,GAAG,IAAIP,oBAAoB,CAC1CQ,CAA0B,IAAK;MAC9B;MACAA,CAAC,CAACC,MAAM,CAAC,CAAC;IACZ,CACF,CAAC;IACD;IACAF,YAAY,CAACG,QAAQ,CAACb,IAAI,EAAEK,QAAQ,CAAC;EACvC,CAAC,MAAM;IACL;IACA;IACAC,qBAAQ,CAACC,gBAAgB,CAAC,eAAe,EAAE,MAAM;MAC/CP,IAAI,CAACS,IAAI,CAAC,CAAC;IACb,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.addMemoryWarningListener = void 0;
|
|
7
|
-
const addMemoryWarningListener = _mmkv => {
|
|
8
|
-
//no-op function, there is not a web equivalent to memory warning
|
|
9
|
-
};
|
|
10
|
-
exports.addMemoryWarningListener = addMemoryWarningListener;
|
|
11
|
-
//# sourceMappingURL=MemoryWarningListener.web.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["addMemoryWarningListener","_mmkv","exports"],"sourceRoot":"../../src","sources":["MemoryWarningListener.web.ts"],"mappings":";;;;;;AAEO,MAAMA,wBAAwB,GAAIC,KAAoB,IAAW;EACtE;AAAA,CACD;AAACC,OAAA,CAAAF,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.ModuleNotFoundError = void 0;
|
|
7
|
-
var _reactNative = require("react-native");
|
|
8
|
-
const BULLET_POINT = '\n* ';
|
|
9
|
-
function messageWithSuggestions(message, suggestions) {
|
|
10
|
-
return message + BULLET_POINT + suggestions.join(BULLET_POINT);
|
|
11
|
-
}
|
|
12
|
-
function getFrameworkType() {
|
|
13
|
-
// check if Expo
|
|
14
|
-
const ExpoConstants = _reactNative.NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants;
|
|
15
|
-
if (ExpoConstants != null) {
|
|
16
|
-
if (ExpoConstants.appOwnership === 'expo') {
|
|
17
|
-
// We're running Expo Go
|
|
18
|
-
return 'expo-go';
|
|
19
|
-
} else {
|
|
20
|
-
// We're running Expo bare / standalone
|
|
21
|
-
return 'expo';
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return 'react-native';
|
|
25
|
-
}
|
|
26
|
-
class ModuleNotFoundError extends Error {
|
|
27
|
-
constructor(cause) {
|
|
28
|
-
// TurboModule not found, something went wrong!
|
|
29
|
-
if (global.__turboModuleProxy == null) {
|
|
30
|
-
// TurboModules are not available/new arch is not enabled.
|
|
31
|
-
// react-native-mmkv 3.x.x requires new arch (react-native >0.74)
|
|
32
|
-
// react-native-mmkv 2.x.x works on old arch (react-native <0.74)
|
|
33
|
-
const message = 'Failed to create a new MMKV instance: react-native-mmkv 3.x.x requires TurboModules, but the new architecture is not enabled!';
|
|
34
|
-
const suggestions = [];
|
|
35
|
-
suggestions.push('Downgrade to react-native-mmkv 2.x.x if you want to stay on the old architecture.');
|
|
36
|
-
suggestions.push('Enable the new architecture in your app to use react-native-mmkv 3.x.x. (See https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md)');
|
|
37
|
-
const error = messageWithSuggestions(message, suggestions);
|
|
38
|
-
super(error, {
|
|
39
|
-
cause: cause
|
|
40
|
-
});
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
const framework = getFrameworkType();
|
|
44
|
-
if (framework === 'expo-go') {
|
|
45
|
-
super('react-native-mmkv is not supported in Expo Go! Use EAS (`expo prebuild`) or eject to a bare workflow instead.');
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const message = 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
|
|
49
|
-
const suggestions = [];
|
|
50
|
-
suggestions.push('Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)');
|
|
51
|
-
suggestions.push('Make sure you enabled the new architecture (TurboModules) and CodeGen properly generated the react-native-mmkv specs. See https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md');
|
|
52
|
-
suggestions.push('Make sure you are using react-native 0.74.0 or higher, because react-native-mmkv is a C++ TurboModule.');
|
|
53
|
-
suggestions.push('Make sure you rebuilt the app.');
|
|
54
|
-
if (framework === 'expo') {
|
|
55
|
-
suggestions.push('Make sure you ran `expo prebuild`.');
|
|
56
|
-
}
|
|
57
|
-
switch (_reactNative.Platform.OS) {
|
|
58
|
-
case 'ios':
|
|
59
|
-
case 'macos':
|
|
60
|
-
suggestions.push('Make sure you ran `pod install` in the ios/ directory.');
|
|
61
|
-
break;
|
|
62
|
-
case 'android':
|
|
63
|
-
suggestions.push('Make sure gradle is synced.');
|
|
64
|
-
break;
|
|
65
|
-
default:
|
|
66
|
-
throw new Error(`MMKV is not supported on ${_reactNative.Platform.OS}!`);
|
|
67
|
-
}
|
|
68
|
-
const error = messageWithSuggestions(message, suggestions);
|
|
69
|
-
super(error, {
|
|
70
|
-
cause: cause
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.ModuleNotFoundError = ModuleNotFoundError;
|
|
75
|
-
//# sourceMappingURL=ModuleNotFoundError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","BULLET_POINT","messageWithSuggestions","message","suggestions","join","getFrameworkType","ExpoConstants","NativeModules","NativeUnimoduleProxy","modulesConstants","ExponentConstants","appOwnership","ModuleNotFoundError","Error","constructor","cause","global","__turboModuleProxy","push","error","framework","Platform","OS","exports"],"sourceRoot":"../../src","sources":["ModuleNotFoundError.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAOA,MAAMC,YAAY,GAAG,MAAM;AAE3B,SAASC,sBAAsBA,CAC7BC,OAAe,EACfC,WAAqB,EACb;EACR,OAAOD,OAAO,GAAGF,YAAY,GAAGG,WAAW,CAACC,IAAI,CAACJ,YAAY,CAAC;AAChE;AAEA,SAASK,gBAAgBA,CAAA,EAAwC;EAC/D;EACA,MAAMC,aAAa,GACjBC,0BAAa,CAACC,oBAAoB,EAAEC,gBAAgB,EAAEC,iBAAiB;EACzE,IAAIJ,aAAa,IAAI,IAAI,EAAE;IACzB,IAAIA,aAAa,CAACK,YAAY,KAAK,MAAM,EAAE;MACzC;MACA,OAAO,SAAS;IAClB,CAAC,MAAM;MACL;MACA,OAAO,MAAM;IACf;EACF;EACA,OAAO,cAAc;AACvB;AAEO,MAAMC,mBAAmB,SAASC,KAAK,CAAC;EAC7CC,WAAWA,CAACC,KAAe,EAAE;IAC3B;IACA,IAAIC,MAAM,CAACC,kBAAkB,IAAI,IAAI,EAAE;MACrC;MACA;MACA;MACA,MAAMf,OAAO,GACX,+HAA+H;MACjI,MAAMC,WAAqB,GAAG,EAAE;MAChCA,WAAW,CAACe,IAAI,CACd,mFACF,CAAC;MACDf,WAAW,CAACe,IAAI,CACd,sKACF,CAAC;MACD,MAAMC,KAAK,GAAGlB,sBAAsB,CAACC,OAAO,EAAEC,WAAW,CAAC;MAC1D,KAAK,CAACgB,KAAK,EAAE;QAAEJ,KAAK,EAAEA;MAAM,CAAC,CAAC;MAC9B;IACF;IAEA,MAAMK,SAAS,GAAGf,gBAAgB,CAAC,CAAC;IACpC,IAAIe,SAAS,KAAK,SAAS,EAAE;MAC3B,KAAK,CACH,+GACF,CAAC;MACD;IACF;IAEA,MAAMlB,OAAO,GACX,kFAAkF;IACpF,MAAMC,WAAqB,GAAG,EAAE;IAChCA,WAAW,CAACe,IAAI,CACd,+FACF,CAAC;IACDf,WAAW,CAACe,IAAI,CACd,kNACF,CAAC;IACDf,WAAW,CAACe,IAAI,CACd,wGACF,CAAC;IACDf,WAAW,CAACe,IAAI,CAAC,gCAAgC,CAAC;IAClD,IAAIE,SAAS,KAAK,MAAM,EAAE;MACxBjB,WAAW,CAACe,IAAI,CAAC,oCAAoC,CAAC;IACxD;IACA,QAAQG,qBAAQ,CAACC,EAAE;MACjB,KAAK,KAAK;MACV,KAAK,OAAO;QACVnB,WAAW,CAACe,IAAI,CACd,wDACF,CAAC;QACD;MACF,KAAK,SAAS;QACZf,WAAW,CAACe,IAAI,CAAC,6BAA6B,CAAC;QAC/C;MACF;QACE,MAAM,IAAIL,KAAK,CAAC,4BAA4BQ,qBAAQ,CAACC,EAAE,GAAG,CAAC;IAC/D;IAEA,MAAMH,KAAK,GAAGlB,sBAAsB,CAACC,OAAO,EAAEC,WAAW,CAAC;IAC1D,KAAK,CAACgB,KAAK,EAAE;MAAEJ,KAAK,EAAEA;IAAM,CAAC,CAAC;EAChC;AACF;AAACQ,OAAA,CAAAX,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.Mode = void 0;
|
|
7
|
-
exports.getMMKVTurboModule = getMMKVTurboModule;
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _ModuleNotFoundError = require("./ModuleNotFoundError");
|
|
10
|
-
var _NativeMmkvPlatformContext = require("./NativeMmkvPlatformContext");
|
|
11
|
-
/**
|
|
12
|
-
* IMPORTANT: These types are also in the Types.ts file.
|
|
13
|
-
* Due to how react-native-codegen works these are required here as the spec types can not be separated from spec.
|
|
14
|
-
* We also need the types separate to allow bypassing importing turbo module registry in web
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Configures the mode of the MMKV instance.
|
|
18
|
-
*/
|
|
19
|
-
let Mode = exports.Mode = /*#__PURE__*/function (Mode) {
|
|
20
|
-
Mode[Mode["SINGLE_PROCESS"] = 0] = "SINGLE_PROCESS";
|
|
21
|
-
Mode[Mode["MULTI_PROCESS"] = 1] = "MULTI_PROCESS";
|
|
22
|
-
return Mode;
|
|
23
|
-
}({});
|
|
24
|
-
/**
|
|
25
|
-
* Used for configuration of a single MMKV instance.
|
|
26
|
-
*/
|
|
27
|
-
let mmkvModule;
|
|
28
|
-
function getMMKVTurboModule() {
|
|
29
|
-
try {
|
|
30
|
-
if (mmkvModule == null) {
|
|
31
|
-
// 1. Load MMKV TurboModule
|
|
32
|
-
mmkvModule = _reactNative.TurboModuleRegistry.getEnforcing('MmkvCxx');
|
|
33
|
-
|
|
34
|
-
// 2. Get the PlatformContext TurboModule as well
|
|
35
|
-
const platformContext = (0, _NativeMmkvPlatformContext.getMMKVPlatformContextTurboModule)();
|
|
36
|
-
|
|
37
|
-
// 3. Initialize it with the documents directory from platform-specific context
|
|
38
|
-
const basePath = platformContext.getBaseDirectory();
|
|
39
|
-
mmkvModule.initialize(basePath);
|
|
40
|
-
}
|
|
41
|
-
return mmkvModule;
|
|
42
|
-
} catch (cause) {
|
|
43
|
-
// TurboModule could not be found!
|
|
44
|
-
throw new _ModuleNotFoundError.ModuleNotFoundError(cause);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=NativeMmkv.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_ModuleNotFoundError","_NativeMmkvPlatformContext","Mode","exports","mmkvModule","getMMKVTurboModule","TurboModuleRegistry","getEnforcing","platformContext","getMMKVPlatformContextTurboModule","basePath","getBaseDirectory","initialize","cause","ModuleNotFoundError"],"sourceRoot":"../../src","sources":["NativeMmkv.ts"],"mappings":";;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA,IAGYG,IAAI,GAAAC,OAAA,CAAAD,IAAA,0BAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAWhB;AACA;AACA;AAqEA,IAAIE,UAAuB;AAEpB,SAASC,kBAAkBA,CAAA,EAAS;EACzC,IAAI;IACF,IAAID,UAAU,IAAI,IAAI,EAAE;MACtB;MACAA,UAAU,GAAGE,gCAAmB,CAACC,YAAY,CAAO,SAAS,CAAC;;MAE9D;MACA,MAAMC,eAAe,GAAG,IAAAC,4DAAiC,EAAC,CAAC;;MAE3D;MACA,MAAMC,QAAQ,GAAGF,eAAe,CAACG,gBAAgB,CAAC,CAAC;MACnDP,UAAU,CAACQ,UAAU,CAACF,QAAQ,CAAC;IACjC;IAEA,OAAON,UAAU;EACnB,CAAC,CAAC,OAAOS,KAAK,EAAE;IACd;IACA,MAAM,IAAIC,wCAAmB,CAACD,KAAK,CAAC;EACtC;AACF","ignoreList":[]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getMMKVPlatformContextTurboModule = getMMKVPlatformContextTurboModule;
|
|
7
|
-
var _reactNative = require("react-native");
|
|
8
|
-
var _ModuleNotFoundError = require("./ModuleNotFoundError");
|
|
9
|
-
let mmkvPlatformModule;
|
|
10
|
-
function getMMKVPlatformContextTurboModule() {
|
|
11
|
-
try {
|
|
12
|
-
if (mmkvPlatformModule == null) {
|
|
13
|
-
// 1. Get the TurboModule
|
|
14
|
-
mmkvPlatformModule = _reactNative.TurboModuleRegistry.getEnforcing('MmkvPlatformContext');
|
|
15
|
-
}
|
|
16
|
-
return mmkvPlatformModule;
|
|
17
|
-
} catch (e) {
|
|
18
|
-
// TurboModule could not be found!
|
|
19
|
-
throw new _ModuleNotFoundError.ModuleNotFoundError(e);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=NativeMmkvPlatformContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_ModuleNotFoundError","mmkvPlatformModule","getMMKVPlatformContextTurboModule","TurboModuleRegistry","getEnforcing","e","ModuleNotFoundError"],"sourceRoot":"../../src","sources":["NativeMmkvPlatformContext.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAoBA,IAAIE,kBAA+B;AAE5B,SAASC,iCAAiCA,CAAA,EAAS;EACxD,IAAI;IACF,IAAID,kBAAkB,IAAI,IAAI,EAAE;MAC9B;MACAA,kBAAkB,GAAGE,gCAAmB,CAACC,YAAY,CACnD,qBACF,CAAC;IACH;IACA,OAAOH,kBAAkB;EAC3B,CAAC,CAAC,OAAOI,CAAC,EAAE;IACV;IACA,MAAM,IAAIC,wCAAmB,CAACD,CAAC,CAAC;EAClC;AACF","ignoreList":[]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.isTest = isTest;
|
|
7
|
-
function isTest() {
|
|
8
|
-
if (global.process == null) {
|
|
9
|
-
// In a WebBrowser/Electron the `process` variable does not exist
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
return process.env.JEST_WORKER_ID != null || process.env.VITEST_WORKER_ID != null;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=PlatformChecker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["isTest","global","process","env","JEST_WORKER_ID","VITEST_WORKER_ID"],"sourceRoot":"../../src","sources":["PlatformChecker.ts"],"mappings":";;;;;;AAAO,SAASA,MAAMA,CAAA,EAAY;EAChC,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,EAAE;IAC1B;IACA,OAAO,KAAK;EACd;EACA,OACEA,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,IAAI,IAAIF,OAAO,CAACC,GAAG,CAACE,gBAAgB,IAAI,IAAI;AAE9E","ignoreList":[]}
|
package/lib/commonjs/Types.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.Mode = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* IMPORTANT: Some of these types are also in the NativeMmkv.ts file.
|
|
9
|
-
* Due to how react-native-codegen works these are required here as the spec types can not be separated from spec.
|
|
10
|
-
* We also need the types separate to allow bypassing importing turbo module registry in web
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Configures the mode of the MMKV instance.
|
|
14
|
-
*/
|
|
15
|
-
let Mode = exports.Mode = /*#__PURE__*/function (Mode) {
|
|
16
|
-
Mode[Mode["SINGLE_PROCESS"] = 0] = "SINGLE_PROCESS";
|
|
17
|
-
Mode[Mode["MULTI_PROCESS"] = 1] = "MULTI_PROCESS";
|
|
18
|
-
return Mode;
|
|
19
|
-
}({});
|
|
20
|
-
/**
|
|
21
|
-
* Used for configuration of a single MMKV instance.
|
|
22
|
-
*/
|
|
23
|
-
/**
|
|
24
|
-
* Represents a single MMKV instance.
|
|
25
|
-
*/
|
|
26
|
-
//# sourceMappingURL=Types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Mode","exports"],"sourceRoot":"../../src","sources":["Types.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAFA,IAGYA,IAAI,GAAAC,OAAA,CAAAD,IAAA,0BAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAWhB;AACA;AACA;AA0DA;AACA;AACA","ignoreList":[]}
|