react-native-mmkv-dz 2.5.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/LICENSE +219 -0
- package/MMKV/CHANGELOG.md +553 -0
- package/MMKV/Core/CMakeLists.txt +153 -0
- package/MMKV/Core/CodedInputData.cpp +228 -0
- package/MMKV/Core/CodedInputData.h +83 -0
- package/MMKV/Core/CodedInputDataCrypt.cpp +280 -0
- package/MMKV/Core/CodedInputDataCrypt.h +87 -0
- package/MMKV/Core/CodedInputDataCrypt_OSX.cpp +62 -0
- package/MMKV/Core/CodedInputData_OSX.cpp +92 -0
- package/MMKV/Core/CodedOutputData.cpp +174 -0
- package/MMKV/Core/CodedOutputData.h +82 -0
- package/MMKV/Core/Core.xcodeproj/project.pbxproj +702 -0
- package/MMKV/Core/Core.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/MMKV/Core/Core.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/MMKV/Core/Core.xcodeproj/xcshareddata/xcschemes/Core.xcscheme +67 -0
- package/MMKV/Core/Core.xcodeproj/xcshareddata/xcschemes/MMKVWatchCore.xcscheme +67 -0
- package/MMKV/Core/InterProcessLock.cpp +186 -0
- package/MMKV/Core/InterProcessLock.h +119 -0
- package/MMKV/Core/InterProcessLock_Android.cpp +103 -0
- package/MMKV/Core/InterProcessLock_Win32.cpp +108 -0
- package/MMKV/Core/KeyValueHolder.cpp +236 -0
- package/MMKV/Core/KeyValueHolder.h +118 -0
- package/MMKV/Core/MMBuffer.cpp +185 -0
- package/MMKV/Core/MMBuffer.h +107 -0
- package/MMKV/Core/MMKV.cpp +1418 -0
- package/MMKV/Core/MMKV.h +386 -0
- package/MMKV/Core/MMKVLog.cpp +127 -0
- package/MMKV/Core/MMKVLog.h +86 -0
- package/MMKV/Core/MMKVLog_Android.cpp +79 -0
- package/MMKV/Core/MMKVMetaInfo.hpp +81 -0
- package/MMKV/Core/MMKVPredef.h +245 -0
- package/MMKV/Core/MMKV_Android.cpp +259 -0
- package/MMKV/Core/MMKV_IO.cpp +1119 -0
- package/MMKV/Core/MMKV_IO.h +57 -0
- package/MMKV/Core/MMKV_OSX.cpp +347 -0
- package/MMKV/Core/MMKV_OSX.h +51 -0
- package/MMKV/Core/MemoryFile.cpp +537 -0
- package/MMKV/Core/MemoryFile.h +182 -0
- package/MMKV/Core/MemoryFile_Android.cpp +211 -0
- package/MMKV/Core/MemoryFile_Linux.cpp +120 -0
- package/MMKV/Core/MemoryFile_OSX.cpp +142 -0
- package/MMKV/Core/MemoryFile_Win32.cpp +536 -0
- package/MMKV/Core/MiniPBCoder.cpp +366 -0
- package/MMKV/Core/MiniPBCoder.h +129 -0
- package/MMKV/Core/MiniPBCoder_OSX.cpp +228 -0
- package/MMKV/Core/PBEncodeItem.hpp +86 -0
- package/MMKV/Core/PBUtility.cpp +61 -0
- package/MMKV/Core/PBUtility.h +153 -0
- package/MMKV/Core/ScopedLock.hpp +69 -0
- package/MMKV/Core/ThreadLock.cpp +68 -0
- package/MMKV/Core/ThreadLock.h +78 -0
- package/MMKV/Core/ThreadLock_Win32.cpp +89 -0
- package/MMKV/Core/aes/AESCrypt.cpp +256 -0
- package/MMKV/Core/aes/AESCrypt.h +107 -0
- package/MMKV/Core/aes/openssl/openssl_aes-armv4.S +1231 -0
- package/MMKV/Core/aes/openssl/openssl_aes.h +118 -0
- package/MMKV/Core/aes/openssl/openssl_aes_core.cpp +1044 -0
- package/MMKV/Core/aes/openssl/openssl_aes_locl.h +38 -0
- package/MMKV/Core/aes/openssl/openssl_aesv8-armx.S +308 -0
- package/MMKV/Core/aes/openssl/openssl_arm_arch.h +84 -0
- package/MMKV/Core/aes/openssl/openssl_cfb128.cpp +97 -0
- package/MMKV/Core/aes/openssl/openssl_md32_common.h +254 -0
- package/MMKV/Core/aes/openssl/openssl_md5.h +49 -0
- package/MMKV/Core/aes/openssl/openssl_md5_dgst.cpp +166 -0
- package/MMKV/Core/aes/openssl/openssl_md5_locl.h +75 -0
- package/MMKV/Core/aes/openssl/openssl_md5_one.cpp +30 -0
- package/MMKV/Core/aes/openssl/openssl_opensslconf.h +271 -0
- package/MMKV/Core/core.vcxproj +186 -0
- package/MMKV/Core/core.vcxproj.filters +150 -0
- package/MMKV/Core/crc32/Checksum.h +67 -0
- package/MMKV/Core/crc32/crc32_armv8.cpp +132 -0
- package/MMKV/Core/crc32/zlib/crc32.cpp +55 -0
- package/MMKV/Core/crc32/zlib/crc32.h +48 -0
- package/MMKV/Core/crc32/zlib/zconf.h +380 -0
- package/MMKV/Core/crc32/zlib/zutil.h +25 -0
- package/MMKV/LICENSE.TXT +193 -0
- package/MMKV/README.md +288 -0
- package/README.md +221 -0
- package/android/CMakeLists.txt +71 -0
- package/android/build.gradle +371 -0
- package/android/gradle.properties +4 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/cpp/MmkvHostObject.cpp +302 -0
- package/android/src/main/cpp/MmkvHostObject.h +26 -0
- package/android/src/main/cpp/cpp-adapter.cpp +65 -0
- package/android/src/main/java/com/reactnativemmkv/MmkvModule.java +49 -0
- package/android/src/main/java/com/reactnativemmkv/MmkvPackage.java +26 -0
- package/cpp/TypedArray.cpp +341 -0
- package/cpp/TypedArray.h +175 -0
- package/ios/JSIUtils.h +50 -0
- package/ios/JSIUtils.mm +194 -0
- package/ios/Mmkv.xcodeproj/project.pbxproj +291 -0
- package/ios/MmkvHostObject.h +27 -0
- package/ios/MmkvHostObject.mm +299 -0
- package/ios/MmkvModule.h +5 -0
- package/ios/MmkvModule.mm +73 -0
- package/lib/commonjs/MMKV.js +146 -0
- package/lib/commonjs/MMKV.js.map +1 -0
- package/lib/commonjs/PlatformChecker.js +16 -0
- package/lib/commonjs/PlatformChecker.js.map +1 -0
- package/lib/commonjs/createMMKV.js +66 -0
- package/lib/commonjs/createMMKV.js.map +1 -0
- package/lib/commonjs/createMMKV.mock.js +40 -0
- package/lib/commonjs/createMMKV.mock.js.map +1 -0
- package/lib/commonjs/createMMKV.web.js +77 -0
- package/lib/commonjs/createMMKV.web.js.map +1 -0
- package/lib/commonjs/createTextEncoder.js +24 -0
- package/lib/commonjs/createTextEncoder.js.map +1 -0
- package/lib/commonjs/hooks.js +200 -0
- package/lib/commonjs/hooks.js.map +1 -0
- package/lib/commonjs/index.js +32 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/module/MMKV.js +134 -0
- package/lib/module/MMKV.js.map +1 -0
- package/lib/module/PlatformChecker.js +9 -0
- package/lib/module/PlatformChecker.js.map +1 -0
- package/lib/module/createMMKV.js +55 -0
- package/lib/module/createMMKV.js.map +1 -0
- package/lib/module/createMMKV.mock.js +31 -0
- package/lib/module/createMMKV.mock.js.map +1 -0
- package/lib/module/createMMKV.web.js +67 -0
- package/lib/module/createMMKV.web.js.map +1 -0
- package/lib/module/createTextEncoder.js +17 -0
- package/lib/module/createTextEncoder.js.map +1 -0
- package/lib/module/hooks.js +181 -0
- package/lib/module/hooks.js.map +1 -0
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/MMKV.d.ts +137 -0
- package/lib/typescript/PlatformChecker.d.ts +1 -0
- package/lib/typescript/createMMKV.d.ts +6 -0
- package/lib/typescript/createMMKV.mock.d.ts +2 -0
- package/lib/typescript/createMMKV.web.d.ts +2 -0
- package/lib/typescript/createTextEncoder.d.ts +1 -0
- package/lib/typescript/hooks.d.ts +81 -0
- package/lib/typescript/index.d.ts +2 -0
- package/package.json +168 -0
- package/react-native-mmkv.podspec +32 -0
package/ios/JSIUtils.mm
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
//
|
|
2
|
+
// REAJsiUtilities.cpp
|
|
3
|
+
// RNReanimated
|
|
4
|
+
//
|
|
5
|
+
// Created by Christian Falch on 25/04/2019.
|
|
6
|
+
// Copyright © 2019 Facebook. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#include "JSIUtils.h"
|
|
10
|
+
#import <React/RCTConvert.h>
|
|
11
|
+
#import <React/RCTBridgeModule.h>
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* All helper functions are ObjC++ specific.
|
|
15
|
+
*/
|
|
16
|
+
jsi::Value convertNSNumberToJSIBoolean(jsi::Runtime &runtime, NSNumber *value)
|
|
17
|
+
{
|
|
18
|
+
return jsi::Value((bool)[value boolValue]);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
jsi::Value convertNSNumberToJSINumber(jsi::Runtime &runtime, NSNumber *value)
|
|
22
|
+
{
|
|
23
|
+
return jsi::Value([value doubleValue]);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
jsi::String convertNSStringToJSIString(jsi::Runtime &runtime, NSString *value)
|
|
27
|
+
{
|
|
28
|
+
return jsi::String::createFromUtf8(runtime, [value UTF8String] ?: "");
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
jsi::Value convertObjCObjectToJSIValue(jsi::Runtime &runtime, id value);
|
|
32
|
+
|
|
33
|
+
jsi::Object convertNSDictionaryToJSIObject(jsi::Runtime &runtime, NSDictionary *value)
|
|
34
|
+
{
|
|
35
|
+
jsi::Object result = jsi::Object(runtime);
|
|
36
|
+
for (NSString *k in value) {
|
|
37
|
+
result.setProperty(runtime, [k UTF8String], convertObjCObjectToJSIValue(runtime, value[k]));
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
jsi::Array convertNSArrayToJSIArray(jsi::Runtime &runtime, NSArray *value)
|
|
43
|
+
{
|
|
44
|
+
jsi::Array result = jsi::Array(runtime, value.count);
|
|
45
|
+
for (size_t i = 0; i < value.count; i++) {
|
|
46
|
+
result.setValueAtIndex(runtime, i, convertObjCObjectToJSIValue(runtime, value[i]));
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
std::vector<jsi::Value> convertNSArrayToStdVector(jsi::Runtime &runtime, NSArray *value)
|
|
52
|
+
{
|
|
53
|
+
std::vector<jsi::Value> result;
|
|
54
|
+
for (size_t i = 0; i < value.count; i++) {
|
|
55
|
+
result.emplace_back(convertObjCObjectToJSIValue(runtime, value[i]));
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
jsi::Value convertObjCObjectToJSIValue(jsi::Runtime &runtime, id value)
|
|
61
|
+
{
|
|
62
|
+
if ([value isKindOfClass:[NSString class]]) {
|
|
63
|
+
return convertNSStringToJSIString(runtime, (NSString *)value);
|
|
64
|
+
} else if ([value isKindOfClass:[NSNumber class]]) {
|
|
65
|
+
if ([value isKindOfClass:[@YES class]]) {
|
|
66
|
+
return convertNSNumberToJSIBoolean(runtime, (NSNumber *)value);
|
|
67
|
+
}
|
|
68
|
+
return convertNSNumberToJSINumber(runtime, (NSNumber *)value);
|
|
69
|
+
} else if ([value isKindOfClass:[NSDictionary class]]) {
|
|
70
|
+
return convertNSDictionaryToJSIObject(runtime, (NSDictionary *)value);
|
|
71
|
+
} else if ([value isKindOfClass:[NSArray class]]) {
|
|
72
|
+
return convertNSArrayToJSIArray(runtime, (NSArray *)value);
|
|
73
|
+
} else if (value == (id)kCFNull) {
|
|
74
|
+
return jsi::Value::null();
|
|
75
|
+
}
|
|
76
|
+
return jsi::Value::undefined();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
id convertJSIValueToObjCObject(jsi::Runtime &runtime, const jsi::Value &value);
|
|
80
|
+
|
|
81
|
+
NSString *convertJSIStringToNSString(jsi::Runtime &runtime, const jsi::String &value)
|
|
82
|
+
{
|
|
83
|
+
return [NSString stringWithUTF8String:value.utf8(runtime).c_str()];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
NSArray *convertJSIArrayToNSArray(jsi::Runtime &runtime,
|
|
87
|
+
const jsi::Array &value)
|
|
88
|
+
{
|
|
89
|
+
size_t size = value.size(runtime);
|
|
90
|
+
NSMutableArray *result = [NSMutableArray new];
|
|
91
|
+
for (size_t i = 0; i < size; i++) {
|
|
92
|
+
// Insert kCFNull when it's `undefined` value to preserve the indices.
|
|
93
|
+
[result
|
|
94
|
+
addObject:convertJSIValueToObjCObject(runtime, value.getValueAtIndex(runtime, i)) ?: (id)kCFNull];
|
|
95
|
+
}
|
|
96
|
+
return [result copy];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
NSDictionary *convertJSIObjectToNSDictionary(jsi::Runtime &runtime,
|
|
100
|
+
const jsi::Object &value)
|
|
101
|
+
{
|
|
102
|
+
jsi::Array propertyNames = value.getPropertyNames(runtime);
|
|
103
|
+
size_t size = propertyNames.size(runtime);
|
|
104
|
+
NSMutableDictionary *result = [NSMutableDictionary new];
|
|
105
|
+
for (size_t i = 0; i < size; i++) {
|
|
106
|
+
jsi::String name = propertyNames.getValueAtIndex(runtime, i).getString(runtime);
|
|
107
|
+
NSString *k = convertJSIStringToNSString(runtime, name);
|
|
108
|
+
id v = convertJSIValueToObjCObject(runtime, value.getProperty(runtime, name));
|
|
109
|
+
if (v) {
|
|
110
|
+
result[k] = v;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return [result copy];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
RCTResponseSenderBlock convertJSIFunctionToCallback(jsi::Runtime &runtime,
|
|
117
|
+
const jsi::Function &value)
|
|
118
|
+
{
|
|
119
|
+
__block auto cb = value.getFunction(runtime);
|
|
120
|
+
|
|
121
|
+
return ^(NSArray *responses) {
|
|
122
|
+
cb.call(runtime, convertNSArrayToJSIArray(runtime, responses), 2);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
id convertJSIValueToObjCObject(jsi::Runtime &runtime,
|
|
127
|
+
const jsi::Value &value)
|
|
128
|
+
{
|
|
129
|
+
if (value.isUndefined() || value.isNull()) {
|
|
130
|
+
return nil;
|
|
131
|
+
}
|
|
132
|
+
if (value.isBool()) {
|
|
133
|
+
return @(value.getBool());
|
|
134
|
+
}
|
|
135
|
+
if (value.isNumber()) {
|
|
136
|
+
return @(value.getNumber());
|
|
137
|
+
}
|
|
138
|
+
if (value.isString()) {
|
|
139
|
+
return convertJSIStringToNSString(runtime, value.getString(runtime));
|
|
140
|
+
}
|
|
141
|
+
if (value.isObject()) {
|
|
142
|
+
jsi::Object o = value.getObject(runtime);
|
|
143
|
+
if (o.isArray(runtime)) {
|
|
144
|
+
return convertJSIArrayToNSArray(runtime, o.getArray(runtime));
|
|
145
|
+
}
|
|
146
|
+
if (o.isFunction(runtime)) {
|
|
147
|
+
return convertJSIFunctionToCallback(runtime,
|
|
148
|
+
std::move(o.getFunction(runtime)));
|
|
149
|
+
}
|
|
150
|
+
return convertJSIObjectToNSDictionary(runtime, o);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
throw std::runtime_error("Unsupported jsi::jsi::Value kind");
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
Promise::Promise(jsi::Runtime &rt, jsi::Function resolve, jsi::Function reject)
|
|
157
|
+
: runtime_(rt), resolve_(std::move(resolve)), reject_(std::move(reject)) {}
|
|
158
|
+
|
|
159
|
+
void Promise::resolve(const jsi::Value &result)
|
|
160
|
+
{
|
|
161
|
+
resolve_.call(runtime_, result);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
void Promise::reject(const std::string &message)
|
|
165
|
+
{
|
|
166
|
+
jsi::Object error(runtime_);
|
|
167
|
+
error.setProperty(runtime_,
|
|
168
|
+
"message",
|
|
169
|
+
jsi::String::createFromUtf8(runtime_, message));
|
|
170
|
+
reject_.call(runtime_, error);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
jsi::Value createPromiseAsJSIValue(jsi::Runtime &rt,
|
|
174
|
+
const PromiseSetupFunctionType func)
|
|
175
|
+
{
|
|
176
|
+
jsi::Function JSPromise = rt.global().getPropertyAsFunction(rt, "Promise");
|
|
177
|
+
jsi::Function fn = jsi::Function::createFromHostFunction(rt,
|
|
178
|
+
jsi::PropNameID::forAscii(rt, "fn"),
|
|
179
|
+
2,
|
|
180
|
+
[func](jsi::Runtime &rt2,
|
|
181
|
+
const jsi::Value &thisVal,
|
|
182
|
+
const jsi::Value *args,
|
|
183
|
+
size_t count) {
|
|
184
|
+
jsi::Function resolve = args[0].getObject(rt2).getFunction(rt2);
|
|
185
|
+
jsi::Function reject = args[1].getObject(rt2).getFunction(rt2);
|
|
186
|
+
auto wrapper = std::make_shared<Promise>(rt2,
|
|
187
|
+
std::move(resolve),
|
|
188
|
+
std::move(reject));
|
|
189
|
+
func(rt2, wrapper);
|
|
190
|
+
return jsi::Value::undefined();
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
return JSPromise.callAsConstructor(rt, fn);
|
|
194
|
+
}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
// !$*UTF8*$!
|
|
2
|
+
{
|
|
3
|
+
archiveVersion = 1;
|
|
4
|
+
classes = {
|
|
5
|
+
};
|
|
6
|
+
objectVersion = 46;
|
|
7
|
+
objects = {
|
|
8
|
+
|
|
9
|
+
/* Begin PBXBuildFile section */
|
|
10
|
+
B81384EA26E23A8500A8507D /* MmkvHostObject.mm in Sources */ = {isa = PBXBuildFile; fileRef = B81384E926E23A8500A8507D /* MmkvHostObject.mm */; };
|
|
11
|
+
B8A8A9BE28F5797400345076 /* MmkvModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = B8A8A9BD28F5797400345076 /* MmkvModule.mm */; };
|
|
12
|
+
B8CC270225E65597009808A2 /* JSIUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = B8CC270125E65597009808A2 /* JSIUtils.mm */; };
|
|
13
|
+
/* End PBXBuildFile section */
|
|
14
|
+
|
|
15
|
+
/* Begin PBXCopyFilesBuildPhase section */
|
|
16
|
+
58B511D91A9E6C8500147676 /* CopyFiles */ = {
|
|
17
|
+
isa = PBXCopyFilesBuildPhase;
|
|
18
|
+
buildActionMask = 2147483647;
|
|
19
|
+
dstPath = "include/$(PRODUCT_NAME)";
|
|
20
|
+
dstSubfolderSpec = 16;
|
|
21
|
+
files = (
|
|
22
|
+
);
|
|
23
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
24
|
+
};
|
|
25
|
+
/* End PBXCopyFilesBuildPhase section */
|
|
26
|
+
|
|
27
|
+
/* Begin PBXFileReference section */
|
|
28
|
+
134814201AA4EA6300B7C361 /* libMmkv.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMmkv.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
29
|
+
B81384E926E23A8500A8507D /* MmkvHostObject.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MmkvHostObject.mm; sourceTree = "<group>"; };
|
|
30
|
+
B81384EB26E23A8D00A8507D /* MmkvHostObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmkvHostObject.h; sourceTree = "<group>"; };
|
|
31
|
+
B8A8A9BC28F5797400345076 /* MmkvModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MmkvModule.h; sourceTree = "<group>"; };
|
|
32
|
+
B8A8A9BD28F5797400345076 /* MmkvModule.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MmkvModule.mm; sourceTree = "<group>"; };
|
|
33
|
+
B8A8A9BF28F5798100345076 /* cpp */ = {isa = PBXFileReference; lastKnownFileType = folder; name = cpp; path = ../cpp; sourceTree = "<group>"; };
|
|
34
|
+
B8CC270125E65597009808A2 /* JSIUtils.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = JSIUtils.mm; sourceTree = "<group>"; };
|
|
35
|
+
B8CC270425E655AD009808A2 /* JSIUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSIUtils.h; sourceTree = "<group>"; };
|
|
36
|
+
/* End PBXFileReference section */
|
|
37
|
+
|
|
38
|
+
/* Begin PBXFrameworksBuildPhase section */
|
|
39
|
+
58B511D81A9E6C8500147676 /* Frameworks */ = {
|
|
40
|
+
isa = PBXFrameworksBuildPhase;
|
|
41
|
+
buildActionMask = 2147483647;
|
|
42
|
+
files = (
|
|
43
|
+
);
|
|
44
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
45
|
+
};
|
|
46
|
+
/* End PBXFrameworksBuildPhase section */
|
|
47
|
+
|
|
48
|
+
/* Begin PBXGroup section */
|
|
49
|
+
134814211AA4EA7D00B7C361 /* Products */ = {
|
|
50
|
+
isa = PBXGroup;
|
|
51
|
+
children = (
|
|
52
|
+
134814201AA4EA6300B7C361 /* libMmkv.a */,
|
|
53
|
+
);
|
|
54
|
+
name = Products;
|
|
55
|
+
sourceTree = "<group>";
|
|
56
|
+
};
|
|
57
|
+
58B511D21A9E6C8500147676 = {
|
|
58
|
+
isa = PBXGroup;
|
|
59
|
+
children = (
|
|
60
|
+
B81384EB26E23A8D00A8507D /* MmkvHostObject.h */,
|
|
61
|
+
B81384E926E23A8500A8507D /* MmkvHostObject.mm */,
|
|
62
|
+
B8CC270425E655AD009808A2 /* JSIUtils.h */,
|
|
63
|
+
B8CC270125E65597009808A2 /* JSIUtils.mm */,
|
|
64
|
+
B8A8A9BC28F5797400345076 /* MmkvModule.h */,
|
|
65
|
+
B8A8A9BD28F5797400345076 /* MmkvModule.mm */,
|
|
66
|
+
B8A8A9BF28F5798100345076 /* cpp */,
|
|
67
|
+
134814211AA4EA7D00B7C361 /* Products */,
|
|
68
|
+
);
|
|
69
|
+
sourceTree = "<group>";
|
|
70
|
+
};
|
|
71
|
+
/* End PBXGroup section */
|
|
72
|
+
|
|
73
|
+
/* Begin PBXNativeTarget section */
|
|
74
|
+
58B511DA1A9E6C8500147676 /* Mmkv */ = {
|
|
75
|
+
isa = PBXNativeTarget;
|
|
76
|
+
buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "Mmkv" */;
|
|
77
|
+
buildPhases = (
|
|
78
|
+
58B511D71A9E6C8500147676 /* Sources */,
|
|
79
|
+
58B511D81A9E6C8500147676 /* Frameworks */,
|
|
80
|
+
58B511D91A9E6C8500147676 /* CopyFiles */,
|
|
81
|
+
);
|
|
82
|
+
buildRules = (
|
|
83
|
+
);
|
|
84
|
+
dependencies = (
|
|
85
|
+
);
|
|
86
|
+
name = Mmkv;
|
|
87
|
+
productName = RCTDataManager;
|
|
88
|
+
productReference = 134814201AA4EA6300B7C361 /* libMmkv.a */;
|
|
89
|
+
productType = "com.apple.product-type.library.static";
|
|
90
|
+
};
|
|
91
|
+
/* End PBXNativeTarget section */
|
|
92
|
+
|
|
93
|
+
/* Begin PBXProject section */
|
|
94
|
+
58B511D31A9E6C8500147676 /* Project object */ = {
|
|
95
|
+
isa = PBXProject;
|
|
96
|
+
attributes = {
|
|
97
|
+
LastUpgradeCheck = 0920;
|
|
98
|
+
ORGANIZATIONNAME = Facebook;
|
|
99
|
+
TargetAttributes = {
|
|
100
|
+
58B511DA1A9E6C8500147676 = {
|
|
101
|
+
CreatedOnToolsVersion = 6.1.1;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "Mmkv" */;
|
|
106
|
+
compatibilityVersion = "Xcode 3.2";
|
|
107
|
+
developmentRegion = English;
|
|
108
|
+
hasScannedForEncodings = 0;
|
|
109
|
+
knownRegions = (
|
|
110
|
+
English,
|
|
111
|
+
en,
|
|
112
|
+
);
|
|
113
|
+
mainGroup = 58B511D21A9E6C8500147676;
|
|
114
|
+
productRefGroup = 58B511D21A9E6C8500147676;
|
|
115
|
+
projectDirPath = "";
|
|
116
|
+
projectRoot = "";
|
|
117
|
+
targets = (
|
|
118
|
+
58B511DA1A9E6C8500147676 /* Mmkv */,
|
|
119
|
+
);
|
|
120
|
+
};
|
|
121
|
+
/* End PBXProject section */
|
|
122
|
+
|
|
123
|
+
/* Begin PBXSourcesBuildPhase section */
|
|
124
|
+
58B511D71A9E6C8500147676 /* Sources */ = {
|
|
125
|
+
isa = PBXSourcesBuildPhase;
|
|
126
|
+
buildActionMask = 2147483647;
|
|
127
|
+
files = (
|
|
128
|
+
B81384EA26E23A8500A8507D /* MmkvHostObject.mm in Sources */,
|
|
129
|
+
B8A8A9BE28F5797400345076 /* MmkvModule.mm in Sources */,
|
|
130
|
+
B8CC270225E65597009808A2 /* JSIUtils.mm in Sources */,
|
|
131
|
+
);
|
|
132
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
133
|
+
};
|
|
134
|
+
/* End PBXSourcesBuildPhase section */
|
|
135
|
+
|
|
136
|
+
/* Begin XCBuildConfiguration section */
|
|
137
|
+
58B511ED1A9E6C8500147676 /* Debug */ = {
|
|
138
|
+
isa = XCBuildConfiguration;
|
|
139
|
+
buildSettings = {
|
|
140
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
141
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
142
|
+
CLANG_CXX_LIBRARY = "libc++";
|
|
143
|
+
CLANG_ENABLE_MODULES = YES;
|
|
144
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
145
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
146
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
147
|
+
CLANG_WARN_COMMA = YES;
|
|
148
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
149
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
150
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
|
151
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
152
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
153
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
|
154
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
155
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
156
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
157
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
158
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
159
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
160
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
161
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
162
|
+
COPY_PHASE_STRIP = NO;
|
|
163
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
164
|
+
ENABLE_TESTABILITY = YES;
|
|
165
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
166
|
+
GCC_DYNAMIC_NO_PIC = NO;
|
|
167
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
|
168
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
|
169
|
+
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
170
|
+
"DEBUG=1",
|
|
171
|
+
"$(inherited)",
|
|
172
|
+
);
|
|
173
|
+
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
|
174
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
175
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
176
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
177
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
178
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
179
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
180
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
181
|
+
MTL_ENABLE_DEBUG_INFO = YES;
|
|
182
|
+
ONLY_ACTIVE_ARCH = YES;
|
|
183
|
+
SDKROOT = iphoneos;
|
|
184
|
+
};
|
|
185
|
+
name = Debug;
|
|
186
|
+
};
|
|
187
|
+
58B511EE1A9E6C8500147676 /* Release */ = {
|
|
188
|
+
isa = XCBuildConfiguration;
|
|
189
|
+
buildSettings = {
|
|
190
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
191
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
192
|
+
CLANG_CXX_LIBRARY = "libc++";
|
|
193
|
+
CLANG_ENABLE_MODULES = YES;
|
|
194
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
195
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
196
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
197
|
+
CLANG_WARN_COMMA = YES;
|
|
198
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
199
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
200
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
|
201
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
202
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
203
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
|
204
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
205
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
206
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
207
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
208
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
209
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
210
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
211
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
212
|
+
COPY_PHASE_STRIP = YES;
|
|
213
|
+
ENABLE_NS_ASSERTIONS = NO;
|
|
214
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
215
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
216
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
|
217
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
218
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
219
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
220
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
221
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
222
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
223
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
224
|
+
MTL_ENABLE_DEBUG_INFO = NO;
|
|
225
|
+
SDKROOT = iphoneos;
|
|
226
|
+
VALIDATE_PRODUCT = YES;
|
|
227
|
+
};
|
|
228
|
+
name = Release;
|
|
229
|
+
};
|
|
230
|
+
58B511F01A9E6C8500147676 /* Debug */ = {
|
|
231
|
+
isa = XCBuildConfiguration;
|
|
232
|
+
buildSettings = {
|
|
233
|
+
HEADER_SEARCH_PATHS = (
|
|
234
|
+
"$(inherited)",
|
|
235
|
+
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
|
236
|
+
"$(SRCROOT)/../../../React/**",
|
|
237
|
+
"$(SRCROOT)/../../react-native/React/**",
|
|
238
|
+
);
|
|
239
|
+
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
|
240
|
+
OTHER_LDFLAGS = "-ObjC";
|
|
241
|
+
PRODUCT_NAME = Mmkv;
|
|
242
|
+
SKIP_INSTALL = YES;
|
|
243
|
+
SWIFT_OBJC_BRIDGING_HEADER = "Mmkv-Bridging-Header.h";
|
|
244
|
+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
245
|
+
SWIFT_VERSION = 5.0;
|
|
246
|
+
};
|
|
247
|
+
name = Debug;
|
|
248
|
+
};
|
|
249
|
+
58B511F11A9E6C8500147676 /* Release */ = {
|
|
250
|
+
isa = XCBuildConfiguration;
|
|
251
|
+
buildSettings = {
|
|
252
|
+
HEADER_SEARCH_PATHS = (
|
|
253
|
+
"$(inherited)",
|
|
254
|
+
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
|
255
|
+
"$(SRCROOT)/../../../React/**",
|
|
256
|
+
"$(SRCROOT)/../../react-native/React/**",
|
|
257
|
+
);
|
|
258
|
+
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
|
259
|
+
OTHER_LDFLAGS = "-ObjC";
|
|
260
|
+
PRODUCT_NAME = Mmkv;
|
|
261
|
+
SKIP_INSTALL = YES;
|
|
262
|
+
SWIFT_OBJC_BRIDGING_HEADER = "Mmkv-Bridging-Header.h";
|
|
263
|
+
SWIFT_VERSION = 5.0;
|
|
264
|
+
};
|
|
265
|
+
name = Release;
|
|
266
|
+
};
|
|
267
|
+
/* End XCBuildConfiguration section */
|
|
268
|
+
|
|
269
|
+
/* Begin XCConfigurationList section */
|
|
270
|
+
58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "Mmkv" */ = {
|
|
271
|
+
isa = XCConfigurationList;
|
|
272
|
+
buildConfigurations = (
|
|
273
|
+
58B511ED1A9E6C8500147676 /* Debug */,
|
|
274
|
+
58B511EE1A9E6C8500147676 /* Release */,
|
|
275
|
+
);
|
|
276
|
+
defaultConfigurationIsVisible = 0;
|
|
277
|
+
defaultConfigurationName = Release;
|
|
278
|
+
};
|
|
279
|
+
58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "Mmkv" */ = {
|
|
280
|
+
isa = XCConfigurationList;
|
|
281
|
+
buildConfigurations = (
|
|
282
|
+
58B511F01A9E6C8500147676 /* Debug */,
|
|
283
|
+
58B511F11A9E6C8500147676 /* Release */,
|
|
284
|
+
);
|
|
285
|
+
defaultConfigurationIsVisible = 0;
|
|
286
|
+
defaultConfigurationName = Release;
|
|
287
|
+
};
|
|
288
|
+
/* End XCConfigurationList section */
|
|
289
|
+
};
|
|
290
|
+
rootObject = 58B511D31A9E6C8500147676 /* Project object */;
|
|
291
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
#import <Foundation/Foundation.h>
|
|
12
|
+
#import <jsi/jsi.h>
|
|
13
|
+
#import <MMKV/MMKV.h>
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
class JSI_EXPORT MmkvHostObject: public jsi::HostObject {
|
|
18
|
+
public:
|
|
19
|
+
MmkvHostObject(NSString* instanceId, NSString* path, NSString* cryptKey);
|
|
20
|
+
|
|
21
|
+
public:
|
|
22
|
+
jsi::Value get(jsi::Runtime&, const jsi::PropNameID& name) override;
|
|
23
|
+
std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& rt) override;
|
|
24
|
+
|
|
25
|
+
private:
|
|
26
|
+
MMKV* instance;
|
|
27
|
+
};
|