react-native-mmkv 2.6.2 → 2.6.3
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/build.gradle +1 -0
- package/android/src/main/cpp/cpp-adapter.cpp +5 -0
- package/cpp/TypedArray.cpp +187 -199
- package/cpp/TypedArray.h +112 -109
- package/ios/MmkvModule.mm +12 -7
- package/lib/commonjs/hooks.js +7 -0
- package/lib/commonjs/hooks.js.map +1 -1
- package/lib/module/hooks.js +7 -0
- package/lib/module/hooks.js.map +1 -1
- package/lib/typescript/hooks.d.ts.map +1 -1
- package/package.json +1 -1
package/android/build.gradle
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
#include <jsi/jsi.h>
|
|
3
3
|
#include <MMKV.h>
|
|
4
4
|
#include "MmkvHostObject.h"
|
|
5
|
+
#include "TypedArray.h"
|
|
5
6
|
|
|
6
7
|
using namespace facebook;
|
|
7
8
|
|
|
@@ -32,6 +33,10 @@ void install(jsi::Runtime& jsiRuntime) {
|
|
|
32
33
|
return jsi::Object::createFromHostObject(runtime, instance);
|
|
33
34
|
});
|
|
34
35
|
jsiRuntime.global().setProperty(jsiRuntime, "mmkvCreateNewInstance", std::move(mmkvCreateNewInstance));
|
|
36
|
+
|
|
37
|
+
// Adds the PropNameIDCache object to the Runtime. If the Runtime gets destroyed, the Object gets destroyed and the cache gets invalidated.
|
|
38
|
+
auto propNameIdCache = std::make_shared<InvalidateCacheOnDestroy>(jsiRuntime);
|
|
39
|
+
jsiRuntime.global().setProperty(jsiRuntime, "mmkvArrayBufferPropNameIdCache", jsi::Object::createFromHostObject(jsiRuntime, propNameIdCache));
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
std::string jstringToStdString(JNIEnv *env, jstring jStr) {
|
package/cpp/TypedArray.cpp
CHANGED
|
@@ -9,62 +9,70 @@
|
|
|
9
9
|
#include "TypedArray.h"
|
|
10
10
|
|
|
11
11
|
#include <unordered_map>
|
|
12
|
+
#include <memory>
|
|
13
|
+
#include <utility>
|
|
14
|
+
#include <vector>
|
|
15
|
+
#include <algorithm>
|
|
16
|
+
#include <string>
|
|
12
17
|
|
|
13
18
|
template <TypedArrayKind T>
|
|
14
19
|
using ContentType = typename typedArrayTypeMap<T>::type;
|
|
15
20
|
|
|
16
|
-
enum class Prop
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Float64Array, // "Float64Array"
|
|
21
|
+
enum class Prop {
|
|
22
|
+
Buffer, // "buffer"
|
|
23
|
+
Constructor, // "constructor"
|
|
24
|
+
Name, // "name"
|
|
25
|
+
Proto, // "__proto__"
|
|
26
|
+
Length, // "length"
|
|
27
|
+
ByteLength, // "byteLength"
|
|
28
|
+
ByteOffset, // "offset"
|
|
29
|
+
IsView, // "isView"
|
|
30
|
+
ArrayBuffer, // "ArrayBuffer"
|
|
31
|
+
Int8Array, // "Int8Array"
|
|
32
|
+
Int16Array, // "Int16Array"
|
|
33
|
+
Int32Array, // "Int32Array"
|
|
34
|
+
Uint8Array, // "Uint8Array"
|
|
35
|
+
Uint8ClampedArray, // "Uint8ClampedArray"
|
|
36
|
+
Uint16Array, // "Uint16Array"
|
|
37
|
+
Uint32Array, // "Uint32Array"
|
|
38
|
+
Float32Array, // "Float32Array"
|
|
39
|
+
Float64Array, // "Float64Array"
|
|
36
40
|
};
|
|
37
41
|
|
|
38
|
-
class PropNameIDCache
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
{
|
|
43
|
-
|
|
44
|
-
{
|
|
45
|
-
this->props[prop] = std::make_unique<jsi::PropNameID>(createProp(runtime, prop));
|
|
46
|
-
}
|
|
47
|
-
return *(this->props[prop]);
|
|
42
|
+
class PropNameIDCache {
|
|
43
|
+
public:
|
|
44
|
+
const jsi::PropNameID &get(jsi::Runtime &runtime, Prop prop) {
|
|
45
|
+
auto key = reinterpret_cast<uintptr_t>(&runtime);
|
|
46
|
+
if (this->props.find(key) == this->props.end()) {
|
|
47
|
+
this->props[key] = std::unordered_map<Prop, std::unique_ptr<jsi::PropNameID>>();
|
|
48
48
|
}
|
|
49
|
+
if (!this->props[key][prop]) {
|
|
50
|
+
this->props[key][prop] = std::make_unique<jsi::PropNameID>(createProp(runtime, prop));
|
|
51
|
+
}
|
|
52
|
+
return *(this->props[key][prop]);
|
|
53
|
+
}
|
|
49
54
|
|
|
50
|
-
|
|
55
|
+
const jsi::PropNameID &getConstructorNameProp(jsi::Runtime &runtime, TypedArrayKind kind);
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
{
|
|
54
|
-
|
|
57
|
+
void invalidate(uintptr_t key) {
|
|
58
|
+
if (props.find(key) != props.end()) {
|
|
59
|
+
props[key].clear();
|
|
55
60
|
}
|
|
61
|
+
}
|
|
56
62
|
|
|
57
|
-
private:
|
|
58
|
-
|
|
63
|
+
private:
|
|
64
|
+
std::unordered_map<uintptr_t, std::unordered_map<Prop, std::unique_ptr<jsi::PropNameID>>> props;
|
|
59
65
|
|
|
60
|
-
|
|
66
|
+
jsi::PropNameID createProp(jsi::Runtime &runtime, Prop prop);
|
|
61
67
|
};
|
|
62
68
|
|
|
63
69
|
PropNameIDCache propNameIDCache;
|
|
64
70
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
71
|
+
InvalidateCacheOnDestroy::InvalidateCacheOnDestroy(jsi::Runtime &runtime) {
|
|
72
|
+
key = reinterpret_cast<uintptr_t>(&runtime);
|
|
73
|
+
}
|
|
74
|
+
InvalidateCacheOnDestroy::~InvalidateCacheOnDestroy() {
|
|
75
|
+
propNameIDCache.invalidate(key);
|
|
68
76
|
}
|
|
69
77
|
|
|
70
78
|
TypedArrayKind getTypedArrayKindForName(const std::string &name);
|
|
@@ -82,235 +90,216 @@ TypedArrayBase::TypedArrayBase(jsi::Runtime &runtime, size_t size, TypedArrayKin
|
|
|
82
90
|
TypedArrayBase::TypedArrayBase(jsi::Runtime &runtime, const jsi::Object &obj)
|
|
83
91
|
: jsi::Object(jsi::Value(runtime, obj).asObject(runtime)) {}
|
|
84
92
|
|
|
85
|
-
TypedArrayKind TypedArrayBase::getKind(jsi::Runtime &runtime) const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
};
|
|
93
|
+
TypedArrayKind TypedArrayBase::getKind(jsi::Runtime &runtime) const {
|
|
94
|
+
auto constructorName = this->getProperty(runtime, propNameIDCache.get(runtime, Prop::Constructor))
|
|
95
|
+
.asObject(runtime)
|
|
96
|
+
.getProperty(runtime, propNameIDCache.get(runtime, Prop::Name))
|
|
97
|
+
.asString(runtime)
|
|
98
|
+
.utf8(runtime);
|
|
99
|
+
return getTypedArrayKindForName(constructorName);
|
|
100
|
+
}
|
|
94
101
|
|
|
95
|
-
size_t TypedArrayBase::size(jsi::Runtime &runtime) const
|
|
96
|
-
|
|
97
|
-
return getProperty(runtime, propNameIDCache.get(runtime, Prop::Length)).asNumber();
|
|
102
|
+
size_t TypedArrayBase::size(jsi::Runtime &runtime) const {
|
|
103
|
+
return getProperty(runtime, propNameIDCache.get(runtime, Prop::Length)).asNumber();
|
|
98
104
|
}
|
|
99
105
|
|
|
100
|
-
size_t TypedArrayBase::length(jsi::Runtime &runtime) const
|
|
101
|
-
|
|
102
|
-
return getProperty(runtime, propNameIDCache.get(runtime, Prop::Length)).asNumber();
|
|
106
|
+
size_t TypedArrayBase::length(jsi::Runtime &runtime) const {
|
|
107
|
+
return getProperty(runtime, propNameIDCache.get(runtime, Prop::Length)).asNumber();
|
|
103
108
|
}
|
|
104
109
|
|
|
105
|
-
size_t TypedArrayBase::byteLength(jsi::Runtime &runtime) const
|
|
106
|
-
|
|
107
|
-
return getProperty(runtime, propNameIDCache.get(runtime, Prop::ByteLength)).asNumber();
|
|
110
|
+
size_t TypedArrayBase::byteLength(jsi::Runtime &runtime) const {
|
|
111
|
+
return getProperty(runtime, propNameIDCache.get(runtime, Prop::ByteLength)).asNumber();
|
|
108
112
|
}
|
|
109
113
|
|
|
110
|
-
size_t TypedArrayBase::byteOffset(jsi::Runtime &runtime) const
|
|
111
|
-
|
|
112
|
-
return getProperty(runtime, propNameIDCache.get(runtime, Prop::ByteOffset)).asNumber();
|
|
114
|
+
size_t TypedArrayBase::byteOffset(jsi::Runtime &runtime) const {
|
|
115
|
+
return getProperty(runtime, propNameIDCache.get(runtime, Prop::ByteOffset)).asNumber();
|
|
113
116
|
}
|
|
114
117
|
|
|
115
|
-
bool TypedArrayBase::hasBuffer(jsi::Runtime &runtime) const
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return buffer.isObject() && buffer.asObject(runtime).isArrayBuffer(runtime);
|
|
118
|
+
bool TypedArrayBase::hasBuffer(jsi::Runtime &runtime) const {
|
|
119
|
+
auto buffer = getProperty(runtime, propNameIDCache.get(runtime, Prop::Buffer));
|
|
120
|
+
return buffer.isObject() && buffer.asObject(runtime).isArrayBuffer(runtime);
|
|
119
121
|
}
|
|
120
122
|
|
|
121
|
-
std::vector<uint8_t> TypedArrayBase::toVector(jsi::Runtime &runtime)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
auto end = start + byteLength(runtime);
|
|
126
|
-
return std::vector<uint8_t>(start, end);
|
|
123
|
+
std::vector<uint8_t> TypedArrayBase::toVector(jsi::Runtime &runtime) {
|
|
124
|
+
auto start = reinterpret_cast<uint8_t *>(getBuffer(runtime).data(runtime) + byteOffset(runtime));
|
|
125
|
+
auto end = start + byteLength(runtime);
|
|
126
|
+
return std::vector<uint8_t>(start, end);
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
jsi::ArrayBuffer TypedArrayBase::getBuffer(jsi::Runtime &runtime) const
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
else
|
|
137
|
-
{
|
|
138
|
-
throw std::runtime_error("no ArrayBuffer attached");
|
|
139
|
-
}
|
|
129
|
+
jsi::ArrayBuffer TypedArrayBase::getBuffer(jsi::Runtime &runtime) const {
|
|
130
|
+
auto buffer = getProperty(runtime, propNameIDCache.get(runtime, Prop::Buffer));
|
|
131
|
+
if (buffer.isObject() && buffer.asObject(runtime).isArrayBuffer(runtime)) {
|
|
132
|
+
return buffer.asObject(runtime).getArrayBuffer(runtime);
|
|
133
|
+
} else {
|
|
134
|
+
throw std::runtime_error("no ArrayBuffer attached");
|
|
135
|
+
}
|
|
140
136
|
}
|
|
141
137
|
|
|
142
|
-
bool isTypedArray(jsi::Runtime &runtime, const jsi::Object &jsObj)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
else
|
|
156
|
-
{
|
|
157
|
-
throw std::runtime_error("value is not a boolean");
|
|
158
|
-
}
|
|
138
|
+
bool isTypedArray(jsi::Runtime &runtime, const jsi::Object &jsObj) {
|
|
139
|
+
auto jsVal = runtime.global()
|
|
140
|
+
.getProperty(runtime, propNameIDCache.get(runtime, Prop::ArrayBuffer))
|
|
141
|
+
.asObject(runtime)
|
|
142
|
+
.getProperty(runtime, propNameIDCache.get(runtime, Prop::IsView))
|
|
143
|
+
.asObject(runtime)
|
|
144
|
+
.asFunction(runtime)
|
|
145
|
+
.callWithThis(runtime, runtime.global(), {jsi::Value(runtime, jsObj)});
|
|
146
|
+
if (jsVal.isBool()) {
|
|
147
|
+
return jsVal.getBool();
|
|
148
|
+
} else {
|
|
149
|
+
throw std::runtime_error("value is not a boolean");
|
|
150
|
+
}
|
|
159
151
|
}
|
|
160
152
|
|
|
161
|
-
TypedArrayBase getTypedArray(jsi::Runtime &runtime, const jsi::Object &jsObj)
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
else
|
|
175
|
-
{
|
|
176
|
-
throw std::runtime_error("value is not a boolean");
|
|
177
|
-
}
|
|
153
|
+
TypedArrayBase getTypedArray(jsi::Runtime &runtime, const jsi::Object &jsObj) {
|
|
154
|
+
auto jsVal = runtime.global()
|
|
155
|
+
.getProperty(runtime, propNameIDCache.get(runtime, Prop::ArrayBuffer))
|
|
156
|
+
.asObject(runtime)
|
|
157
|
+
.getProperty(runtime, propNameIDCache.get(runtime, Prop::IsView))
|
|
158
|
+
.asObject(runtime)
|
|
159
|
+
.asFunction(runtime)
|
|
160
|
+
.callWithThis(runtime, runtime.global(), {jsi::Value(runtime, jsObj)});
|
|
161
|
+
if (jsVal.isBool()) {
|
|
162
|
+
return TypedArrayBase(runtime, jsObj);
|
|
163
|
+
} else {
|
|
164
|
+
throw std::runtime_error("value is not a boolean");
|
|
165
|
+
}
|
|
178
166
|
}
|
|
179
167
|
|
|
180
|
-
std::vector<uint8_t> arrayBufferToVector(jsi::Runtime &runtime, jsi::Object &jsObj)
|
|
181
|
-
{
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
auto jsArrayBuffer = jsObj.getArrayBuffer(runtime);
|
|
168
|
+
std::vector<uint8_t> arrayBufferToVector(jsi::Runtime &runtime, jsi::Object &jsObj) {
|
|
169
|
+
if (!jsObj.isArrayBuffer(runtime)) {
|
|
170
|
+
throw std::runtime_error("Object is not an ArrayBuffer");
|
|
171
|
+
}
|
|
172
|
+
auto jsArrayBuffer = jsObj.getArrayBuffer(runtime);
|
|
187
173
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
174
|
+
uint8_t *dataBlock = jsArrayBuffer.data(runtime);
|
|
175
|
+
size_t blockSize =
|
|
176
|
+
jsArrayBuffer.getProperty(runtime, propNameIDCache.get(runtime, Prop::ByteLength)).asNumber();
|
|
177
|
+
return std::vector<uint8_t>(dataBlock, dataBlock + blockSize);
|
|
192
178
|
}
|
|
193
179
|
|
|
194
180
|
void arrayBufferUpdate(
|
|
195
181
|
jsi::Runtime &runtime,
|
|
196
182
|
jsi::ArrayBuffer &buffer,
|
|
197
183
|
std::vector<uint8_t> data,
|
|
198
|
-
size_t offset)
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
std::copy(data.begin(), data.end(), dataBlock + offset);
|
|
184
|
+
size_t offset) {
|
|
185
|
+
uint8_t *dataBlock = buffer.data(runtime);
|
|
186
|
+
size_t blockSize = buffer.size(runtime);
|
|
187
|
+
if (data.size() > blockSize) {
|
|
188
|
+
throw jsi::JSError(runtime, "ArrayBuffer is to small to fit data");
|
|
189
|
+
}
|
|
190
|
+
std::copy(data.begin(), data.end(), dataBlock + offset);
|
|
207
191
|
}
|
|
208
192
|
|
|
209
193
|
template <TypedArrayKind T>
|
|
210
|
-
TypedArray<T>::TypedArray(jsi::Runtime &runtime, size_t size) : TypedArrayBase(runtime, size, T){}
|
|
194
|
+
TypedArray<T>::TypedArray(jsi::Runtime &runtime, size_t size) : TypedArrayBase(runtime, size, T) {}
|
|
211
195
|
|
|
212
196
|
template <TypedArrayKind T>
|
|
213
197
|
TypedArray<T>::TypedArray(jsi::Runtime &runtime, std::vector<ContentType<T>> data)
|
|
214
|
-
: TypedArrayBase(runtime, data.size(), T)
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
};
|
|
198
|
+
: TypedArrayBase(runtime, data.size(), T) {
|
|
199
|
+
update(runtime, data);
|
|
200
|
+
}
|
|
218
201
|
|
|
219
202
|
template <TypedArrayKind T>
|
|
220
203
|
TypedArray<T>::TypedArray(TypedArrayBase &&base) : TypedArrayBase(std::move(base)) {}
|
|
221
204
|
|
|
222
205
|
template <TypedArrayKind T>
|
|
223
|
-
std::vector<ContentType<T>> TypedArray<T>::toVector(jsi::Runtime &runtime)
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return std::vector<ContentType<T>>(start, end);
|
|
206
|
+
std::vector<ContentType<T>> TypedArray<T>::toVector(jsi::Runtime &runtime) {
|
|
207
|
+
auto start =
|
|
208
|
+
reinterpret_cast<ContentType<T> *>(getBuffer(runtime).data(runtime) + byteOffset(runtime));
|
|
209
|
+
auto end = start + size(runtime);
|
|
210
|
+
return std::vector<ContentType<T>>(start, end);
|
|
229
211
|
}
|
|
230
212
|
|
|
231
213
|
template <TypedArrayKind T>
|
|
232
|
-
void TypedArray<T>::update(jsi::Runtime &runtime, const std::vector<ContentType<T>> &data)
|
|
233
|
-
{
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
214
|
+
void TypedArray<T>::update(jsi::Runtime &runtime, const std::vector<ContentType<T>> &data) {
|
|
215
|
+
if (data.size() != size(runtime)) {
|
|
216
|
+
throw jsi::JSError(runtime, "TypedArray can only be updated with a vector of the same size");
|
|
217
|
+
}
|
|
218
|
+
uint8_t *rawData = getBuffer(runtime).data(runtime) + byteOffset(runtime);
|
|
219
|
+
std::copy(data.begin(), data.end(), reinterpret_cast<ContentType<T> *>(rawData));
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
template <TypedArrayKind T>
|
|
223
|
+
void TypedArray<T>::updateUnsafe(jsi::Runtime &runtime, ContentType<T> *data, size_t length) {
|
|
224
|
+
if (length != size(runtime)) {
|
|
225
|
+
throw jsi::JSError(runtime, "TypedArray can only be updated with an array of the same size");
|
|
226
|
+
}
|
|
227
|
+
uint8_t *rawData = getBuffer(runtime).data(runtime) + byteOffset(runtime);
|
|
228
|
+
memcpy(rawData, data, length);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
template <TypedArrayKind T>
|
|
232
|
+
uint8_t* TypedArray<T>::data(jsi::Runtime &runtime) {
|
|
233
|
+
return getBuffer(runtime).data(runtime) + byteOffset(runtime);
|
|
240
234
|
}
|
|
241
235
|
|
|
242
236
|
const jsi::PropNameID &PropNameIDCache::getConstructorNameProp(
|
|
243
237
|
jsi::Runtime &runtime,
|
|
244
|
-
TypedArrayKind kind)
|
|
245
|
-
{
|
|
246
|
-
switch (kind)
|
|
247
|
-
{
|
|
238
|
+
TypedArrayKind kind) {
|
|
239
|
+
switch (kind) {
|
|
248
240
|
case TypedArrayKind::Int8Array:
|
|
249
|
-
|
|
241
|
+
return get(runtime, Prop::Int8Array);
|
|
250
242
|
case TypedArrayKind::Int16Array:
|
|
251
|
-
|
|
243
|
+
return get(runtime, Prop::Int16Array);
|
|
252
244
|
case TypedArrayKind::Int32Array:
|
|
253
|
-
|
|
245
|
+
return get(runtime, Prop::Int32Array);
|
|
254
246
|
case TypedArrayKind::Uint8Array:
|
|
255
|
-
|
|
247
|
+
return get(runtime, Prop::Uint8Array);
|
|
256
248
|
case TypedArrayKind::Uint8ClampedArray:
|
|
257
|
-
|
|
249
|
+
return get(runtime, Prop::Uint8ClampedArray);
|
|
258
250
|
case TypedArrayKind::Uint16Array:
|
|
259
|
-
|
|
251
|
+
return get(runtime, Prop::Uint16Array);
|
|
260
252
|
case TypedArrayKind::Uint32Array:
|
|
261
|
-
|
|
253
|
+
return get(runtime, Prop::Uint32Array);
|
|
262
254
|
case TypedArrayKind::Float32Array:
|
|
263
|
-
|
|
255
|
+
return get(runtime, Prop::Float32Array);
|
|
264
256
|
case TypedArrayKind::Float64Array:
|
|
265
|
-
|
|
266
|
-
|
|
257
|
+
return get(runtime, Prop::Float64Array);
|
|
258
|
+
}
|
|
267
259
|
}
|
|
268
260
|
|
|
269
|
-
jsi::PropNameID PropNameIDCache::createProp(jsi::Runtime &runtime, Prop prop)
|
|
270
|
-
{
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
};
|
|
275
|
-
switch (prop)
|
|
276
|
-
{
|
|
261
|
+
jsi::PropNameID PropNameIDCache::createProp(jsi::Runtime &runtime, Prop prop) {
|
|
262
|
+
auto create = [&](const std::string &propName) {
|
|
263
|
+
return jsi::PropNameID::forUtf8(runtime, propName);
|
|
264
|
+
};
|
|
265
|
+
switch (prop) {
|
|
277
266
|
case Prop::Buffer:
|
|
278
|
-
|
|
267
|
+
return create("buffer");
|
|
279
268
|
case Prop::Constructor:
|
|
280
|
-
|
|
269
|
+
return create("constructor");
|
|
281
270
|
case Prop::Name:
|
|
282
|
-
|
|
271
|
+
return create("name");
|
|
283
272
|
case Prop::Proto:
|
|
284
|
-
|
|
273
|
+
return create("__proto__");
|
|
285
274
|
case Prop::Length:
|
|
286
|
-
|
|
275
|
+
return create("length");
|
|
287
276
|
case Prop::ByteLength:
|
|
288
|
-
|
|
277
|
+
return create("byteLength");
|
|
289
278
|
case Prop::ByteOffset:
|
|
290
|
-
|
|
279
|
+
return create("byteOffset");
|
|
291
280
|
case Prop::IsView:
|
|
292
|
-
|
|
281
|
+
return create("isView");
|
|
293
282
|
case Prop::ArrayBuffer:
|
|
294
|
-
|
|
283
|
+
return create("ArrayBuffer");
|
|
295
284
|
case Prop::Int8Array:
|
|
296
|
-
|
|
285
|
+
return create("Int8Array");
|
|
297
286
|
case Prop::Int16Array:
|
|
298
|
-
|
|
287
|
+
return create("Int16Array");
|
|
299
288
|
case Prop::Int32Array:
|
|
300
|
-
|
|
289
|
+
return create("Int32Array");
|
|
301
290
|
case Prop::Uint8Array:
|
|
302
|
-
|
|
291
|
+
return create("Uint8Array");
|
|
303
292
|
case Prop::Uint8ClampedArray:
|
|
304
|
-
|
|
293
|
+
return create("Uint8ClampedArray");
|
|
305
294
|
case Prop::Uint16Array:
|
|
306
|
-
|
|
295
|
+
return create("Uint16Array");
|
|
307
296
|
case Prop::Uint32Array:
|
|
308
|
-
|
|
297
|
+
return create("Uint32Array");
|
|
309
298
|
case Prop::Float32Array:
|
|
310
|
-
|
|
299
|
+
return create("Float32Array");
|
|
311
300
|
case Prop::Float64Array:
|
|
312
|
-
|
|
313
|
-
|
|
301
|
+
return create("Float64Array");
|
|
302
|
+
}
|
|
314
303
|
}
|
|
315
304
|
|
|
316
305
|
std::unordered_map<std::string, TypedArrayKind> nameToKindMap = {
|
|
@@ -325,9 +314,8 @@ std::unordered_map<std::string, TypedArrayKind> nameToKindMap = {
|
|
|
325
314
|
{"Float64Array", TypedArrayKind::Float64Array},
|
|
326
315
|
};
|
|
327
316
|
|
|
328
|
-
TypedArrayKind getTypedArrayKindForName(const std::string &name)
|
|
329
|
-
|
|
330
|
-
return nameToKindMap.at(name);
|
|
317
|
+
TypedArrayKind getTypedArrayKindForName(const std::string &name) {
|
|
318
|
+
return nameToKindMap.at(name);
|
|
331
319
|
}
|
|
332
320
|
|
|
333
321
|
template class TypedArray<TypedArrayKind::Int8Array>;
|
package/cpp/TypedArray.h
CHANGED
|
@@ -9,20 +9,21 @@
|
|
|
9
9
|
#pragma once
|
|
10
10
|
|
|
11
11
|
#include <jsi/jsi.h>
|
|
12
|
+
#include <utility>
|
|
13
|
+
#include <vector>
|
|
12
14
|
|
|
13
15
|
namespace jsi = facebook::jsi;
|
|
14
16
|
|
|
15
|
-
enum class TypedArrayKind
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
Float64Array,
|
|
17
|
+
enum class TypedArrayKind {
|
|
18
|
+
Int8Array,
|
|
19
|
+
Int16Array,
|
|
20
|
+
Int32Array,
|
|
21
|
+
Uint8Array,
|
|
22
|
+
Uint8ClampedArray,
|
|
23
|
+
Uint16Array,
|
|
24
|
+
Uint32Array,
|
|
25
|
+
Float32Array,
|
|
26
|
+
Float64Array,
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
template <TypedArrayKind T>
|
|
@@ -31,87 +32,94 @@ class TypedArray;
|
|
|
31
32
|
template <TypedArrayKind T>
|
|
32
33
|
struct typedArrayTypeMap;
|
|
33
34
|
template <>
|
|
34
|
-
struct typedArrayTypeMap<TypedArrayKind::Int8Array>
|
|
35
|
-
|
|
36
|
-
typedef int8_t type;
|
|
35
|
+
struct typedArrayTypeMap<TypedArrayKind::Int8Array> {
|
|
36
|
+
typedef int8_t type;
|
|
37
37
|
};
|
|
38
38
|
template <>
|
|
39
|
-
struct typedArrayTypeMap<TypedArrayKind::Int16Array>
|
|
40
|
-
|
|
41
|
-
typedef int16_t type;
|
|
39
|
+
struct typedArrayTypeMap<TypedArrayKind::Int16Array> {
|
|
40
|
+
typedef int16_t type;
|
|
42
41
|
};
|
|
43
42
|
template <>
|
|
44
|
-
struct typedArrayTypeMap<TypedArrayKind::Int32Array>
|
|
45
|
-
|
|
46
|
-
typedef int32_t type;
|
|
43
|
+
struct typedArrayTypeMap<TypedArrayKind::Int32Array> {
|
|
44
|
+
typedef int32_t type;
|
|
47
45
|
};
|
|
48
46
|
template <>
|
|
49
|
-
struct typedArrayTypeMap<TypedArrayKind::Uint8Array>
|
|
50
|
-
|
|
51
|
-
typedef uint8_t type;
|
|
47
|
+
struct typedArrayTypeMap<TypedArrayKind::Uint8Array> {
|
|
48
|
+
typedef uint8_t type;
|
|
52
49
|
};
|
|
53
50
|
template <>
|
|
54
|
-
struct typedArrayTypeMap<TypedArrayKind::Uint8ClampedArray>
|
|
55
|
-
|
|
56
|
-
typedef uint8_t type;
|
|
51
|
+
struct typedArrayTypeMap<TypedArrayKind::Uint8ClampedArray> {
|
|
52
|
+
typedef uint8_t type;
|
|
57
53
|
};
|
|
58
54
|
template <>
|
|
59
|
-
struct typedArrayTypeMap<TypedArrayKind::Uint16Array>
|
|
60
|
-
|
|
61
|
-
typedef uint16_t type;
|
|
55
|
+
struct typedArrayTypeMap<TypedArrayKind::Uint16Array> {
|
|
56
|
+
typedef uint16_t type;
|
|
62
57
|
};
|
|
63
58
|
template <>
|
|
64
|
-
struct typedArrayTypeMap<TypedArrayKind::Uint32Array>
|
|
65
|
-
|
|
66
|
-
typedef uint32_t type;
|
|
59
|
+
struct typedArrayTypeMap<TypedArrayKind::Uint32Array> {
|
|
60
|
+
typedef uint32_t type;
|
|
67
61
|
};
|
|
68
62
|
template <>
|
|
69
|
-
struct typedArrayTypeMap<TypedArrayKind::Float32Array>
|
|
70
|
-
|
|
71
|
-
typedef float type;
|
|
63
|
+
struct typedArrayTypeMap<TypedArrayKind::Float32Array> {
|
|
64
|
+
typedef float type;
|
|
72
65
|
};
|
|
73
66
|
template <>
|
|
74
|
-
struct typedArrayTypeMap<TypedArrayKind::Float64Array>
|
|
75
|
-
|
|
76
|
-
typedef double type;
|
|
67
|
+
struct typedArrayTypeMap<TypedArrayKind::Float64Array> {
|
|
68
|
+
typedef double type;
|
|
77
69
|
};
|
|
78
70
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
{
|
|
83
|
-
public:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
71
|
+
// Instance of this class will invalidate PropNameIDCache when destructor is called.
|
|
72
|
+
// Attach this object to global in specific jsi::Runtime to make sure lifecycle of
|
|
73
|
+
// the cache object is connected to the lifecycle of the js runtime
|
|
74
|
+
class InvalidateCacheOnDestroy : public jsi::HostObject {
|
|
75
|
+
public:
|
|
76
|
+
explicit InvalidateCacheOnDestroy(jsi::Runtime &runtime);
|
|
77
|
+
virtual ~InvalidateCacheOnDestroy();
|
|
78
|
+
virtual jsi::Value get(jsi::Runtime &, const jsi::PropNameID &name) {
|
|
79
|
+
return jsi::Value::null();
|
|
80
|
+
}
|
|
81
|
+
virtual void set(jsi::Runtime &, const jsi::PropNameID &name, const jsi::Value &value) {}
|
|
82
|
+
virtual std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &rt) {
|
|
83
|
+
return {};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
private:
|
|
87
|
+
uintptr_t key;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
class TypedArrayBase : public jsi::Object {
|
|
91
|
+
public:
|
|
92
|
+
template <TypedArrayKind T>
|
|
93
|
+
using ContentType = typename typedArrayTypeMap<T>::type;
|
|
94
|
+
|
|
95
|
+
TypedArrayBase(jsi::Runtime &, size_t, TypedArrayKind);
|
|
96
|
+
TypedArrayBase(jsi::Runtime &, const jsi::Object &);
|
|
97
|
+
TypedArrayBase(TypedArrayBase &&) = default;
|
|
98
|
+
TypedArrayBase &operator=(TypedArrayBase &&) = default;
|
|
99
|
+
|
|
100
|
+
TypedArrayKind getKind(jsi::Runtime &runtime) const;
|
|
101
|
+
|
|
102
|
+
template <TypedArrayKind T>
|
|
103
|
+
TypedArray<T> get(jsi::Runtime &runtime) const &;
|
|
104
|
+
template <TypedArrayKind T>
|
|
105
|
+
TypedArray<T> get(jsi::Runtime &runtime) &&;
|
|
106
|
+
template <TypedArrayKind T>
|
|
107
|
+
TypedArray<T> as(jsi::Runtime &runtime) const &;
|
|
108
|
+
template <TypedArrayKind T>
|
|
109
|
+
TypedArray<T> as(jsi::Runtime &runtime) &&;
|
|
110
|
+
|
|
111
|
+
size_t size(jsi::Runtime &runtime) const;
|
|
112
|
+
size_t length(jsi::Runtime &runtime) const;
|
|
113
|
+
size_t byteLength(jsi::Runtime &runtime) const;
|
|
114
|
+
size_t byteOffset(jsi::Runtime &runtime) const;
|
|
115
|
+
bool hasBuffer(jsi::Runtime &runtime) const;
|
|
116
|
+
|
|
117
|
+
std::vector<uint8_t> toVector(jsi::Runtime &runtime);
|
|
118
|
+
jsi::ArrayBuffer getBuffer(jsi::Runtime &runtime) const;
|
|
119
|
+
|
|
120
|
+
private:
|
|
121
|
+
template <TypedArrayKind>
|
|
122
|
+
friend class TypedArray;
|
|
115
123
|
};
|
|
116
124
|
|
|
117
125
|
bool isTypedArray(jsi::Runtime &runtime, const jsi::Object &jsObj);
|
|
@@ -125,51 +133,46 @@ void arrayBufferUpdate(
|
|
|
125
133
|
size_t offset);
|
|
126
134
|
|
|
127
135
|
template <TypedArrayKind T>
|
|
128
|
-
class TypedArray : public TypedArrayBase
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
class TypedArray : public TypedArrayBase {
|
|
137
|
+
public:
|
|
138
|
+
explicit TypedArray(TypedArrayBase &&base);
|
|
139
|
+
TypedArray(jsi::Runtime &runtime, size_t size);
|
|
140
|
+
TypedArray(jsi::Runtime &runtime, std::vector<ContentType<T>> data);
|
|
141
|
+
TypedArray(TypedArray &&) = default;
|
|
142
|
+
TypedArray &operator=(TypedArray &&) = default;
|
|
143
|
+
|
|
144
|
+
std::vector<ContentType<T>> toVector(jsi::Runtime &runtime);
|
|
145
|
+
void update(jsi::Runtime &runtime, const std::vector<ContentType<T>> &data);
|
|
146
|
+
void updateUnsafe(jsi::Runtime &runtime, ContentType<T> *data, size_t length);
|
|
147
|
+
uint8_t* data(jsi::Runtime &runtime);
|
|
139
148
|
};
|
|
140
149
|
|
|
141
150
|
template <TypedArrayKind T>
|
|
142
|
-
TypedArray<T> TypedArrayBase::get(jsi::Runtime &runtime) const &
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
return TypedArray<T>(jsi::Value(runtime, jsi::Value(runtime, *this).asObject(runtime)));
|
|
151
|
+
TypedArray<T> TypedArrayBase::get(jsi::Runtime &runtime) const & {
|
|
152
|
+
assert(getKind(runtime) == T);
|
|
153
|
+
(void)runtime; // when assert is disabled we need to mark this as used
|
|
154
|
+
return TypedArray<T>(jsi::Value(runtime, jsi::Value(runtime, *this).asObject(runtime)));
|
|
147
155
|
}
|
|
148
156
|
|
|
149
157
|
template <TypedArrayKind T>
|
|
150
|
-
TypedArray<T> TypedArrayBase::get(jsi::Runtime &runtime) &&
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return TypedArray<T>(std::move(*this));
|
|
158
|
+
TypedArray<T> TypedArrayBase::get(jsi::Runtime &runtime) && {
|
|
159
|
+
assert(getKind(runtime) == T);
|
|
160
|
+
(void)runtime; // when assert is disabled we need to mark this as used
|
|
161
|
+
return TypedArray<T>(std::move(*this));
|
|
155
162
|
}
|
|
156
163
|
|
|
157
164
|
template <TypedArrayKind T>
|
|
158
|
-
TypedArray<T> TypedArrayBase::as(jsi::Runtime &runtime) const &
|
|
159
|
-
{
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
164
|
-
return get<T>(runtime);
|
|
165
|
+
TypedArray<T> TypedArrayBase::as(jsi::Runtime &runtime) const & {
|
|
166
|
+
if (getKind(runtime) != T) {
|
|
167
|
+
throw jsi::JSError(runtime, "Object is not a TypedArray");
|
|
168
|
+
}
|
|
169
|
+
return get<T>(runtime);
|
|
165
170
|
}
|
|
166
171
|
|
|
167
172
|
template <TypedArrayKind T>
|
|
168
|
-
TypedArray<T> TypedArrayBase::as(jsi::Runtime &runtime) &&
|
|
169
|
-
{
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
return std::move(*this).get<T>(runtime);
|
|
173
|
+
TypedArray<T> TypedArrayBase::as(jsi::Runtime &runtime) && {
|
|
174
|
+
if (getKind(runtime) != T) {
|
|
175
|
+
throw jsi::JSError(runtime, "Object is not a TypedArray");
|
|
176
|
+
}
|
|
177
|
+
return std::move(*this).get<T>(runtime);
|
|
175
178
|
}
|
package/ios/MmkvModule.mm
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#import <MMKV/MMKV.h>
|
|
9
9
|
#import "MmkvHostObject.h"
|
|
10
|
+
#import "../cpp/TypedArray.h"
|
|
10
11
|
|
|
11
12
|
using namespace facebook;
|
|
12
13
|
|
|
@@ -31,19 +32,19 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install:(nullable NSString*)storageDirect
|
|
|
31
32
|
if (cxxBridge == nil) {
|
|
32
33
|
return @false;
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
+
|
|
35
36
|
using namespace facebook;
|
|
36
|
-
|
|
37
|
+
|
|
37
38
|
auto jsiRuntime = (jsi::Runtime*) cxxBridge.runtime;
|
|
38
39
|
if (jsiRuntime == nil) {
|
|
39
40
|
return @false;
|
|
40
41
|
}
|
|
41
42
|
auto& runtime = *jsiRuntime;
|
|
42
|
-
|
|
43
|
+
|
|
43
44
|
RCTUnsafeExecuteOnMainQueueSync(^{
|
|
44
45
|
[MMKV initializeMMKV:storageDirectory];
|
|
45
46
|
});
|
|
46
|
-
|
|
47
|
+
|
|
47
48
|
// MMKV.createNewInstance()
|
|
48
49
|
auto mmkvCreateNewInstance = jsi::Function::createFromHostFunction(runtime,
|
|
49
50
|
jsi::PropNameID::forAscii(runtime, "mmkvCreateNewInstance"),
|
|
@@ -56,16 +57,20 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install:(nullable NSString*)storageDirect
|
|
|
56
57
|
throw jsi::JSError(runtime, "MMKV.createNewInstance(..) expects one argument (object)!");
|
|
57
58
|
}
|
|
58
59
|
jsi::Object config = arguments[0].asObject(runtime);
|
|
59
|
-
|
|
60
|
+
|
|
60
61
|
NSString* instanceId = [MmkvModule getPropertyAsStringOrNilFromObject:config propertyName:"id" runtime:runtime];
|
|
61
62
|
NSString* path = [MmkvModule getPropertyAsStringOrNilFromObject:config propertyName:"path" runtime:runtime];
|
|
62
63
|
NSString* encryptionKey = [MmkvModule getPropertyAsStringOrNilFromObject:config propertyName:"encryptionKey" runtime:runtime];
|
|
63
|
-
|
|
64
|
+
|
|
64
65
|
auto instance = std::make_shared<MmkvHostObject>(instanceId, path, encryptionKey);
|
|
65
66
|
return jsi::Object::createFromHostObject(runtime, instance);
|
|
66
67
|
});
|
|
67
68
|
runtime.global().setProperty(runtime, "mmkvCreateNewInstance", std::move(mmkvCreateNewInstance));
|
|
68
|
-
|
|
69
|
+
|
|
70
|
+
// Adds the PropNameIDCache object to the Runtime. If the Runtime gets destroyed, the Object gets destroyed and the cache gets invalidated.
|
|
71
|
+
auto propNameIdCache = std::make_shared<InvalidateCacheOnDestroy>(runtime);
|
|
72
|
+
runtime.global().setProperty(runtime, "mmkvArrayBufferPropNameIdCache", jsi::Object::createFromHostObject(runtime, propNameIdCache));
|
|
73
|
+
|
|
69
74
|
NSLog(@"Installed global.mmkvCreateNewInstance!");
|
|
70
75
|
return @true;
|
|
71
76
|
}
|
package/lib/commonjs/hooks.js
CHANGED
|
@@ -56,6 +56,13 @@ function createMMKVHook(getter) {
|
|
|
56
56
|
case 'undefined':
|
|
57
57
|
mmkv.delete(key);
|
|
58
58
|
break;
|
|
59
|
+
case 'object':
|
|
60
|
+
if (newValue instanceof Uint8Array) {
|
|
61
|
+
mmkv.set(key, newValue);
|
|
62
|
+
break;
|
|
63
|
+
} else {
|
|
64
|
+
throw new Error(`MMKV: Type object (${newValue}) is not supported!`);
|
|
65
|
+
}
|
|
59
66
|
default:
|
|
60
67
|
throw new Error(`MMKV: Type ${typeof newValue} is not supported!`);
|
|
61
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isConfigurationEqual","left","right","encryptionKey","id","path","defaultInstance","getDefaultInstance","MMKV","useMMKV","configuration","instance","useRef","lastConfiguration","current","createMMKVHook","getter","key","mmkv","value","setValue","useState","valueRef","set","useCallback","v","newValue","delete","Error","useEffect","listener","addOnValueChangedListener","changedKey","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","string","setString","useMemo","undefined","JSON","parse","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":";;;;;;;;;;;AAAA;AACA;AAEA,SAASA,oBAAoB,CAC3BC,IAAwB,EACxBC,KAAyB,EAChB;EACT,IAAID,IAAI,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI,EAAE,OAAOD,IAAI,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI;EAEvE,OACED,IAAI,CAACE,aAAa,KAAKD,KAAK,CAACC,aAAa,IAC1CF,IAAI,CAACG,EAAE,KAAKF,KAAK,CAACE,EAAE,IACpBH,IAAI,CAACI,IAAI,KAAKH,KAAK,CAACG,IAAI;AAE5B;AAEA,IAAIC,eAA4B,GAAG,IAAI;AACvC,SAASC,kBAAkB,GAAS;EAClC,IAAID,eAAe,IAAI,IAAI,EAAE;IAC3BA,eAAe,GAAG,IAAIE,UAAI,EAAE;EAC9B;EACA,OAAOF,eAAe;AACxB;;AAEA;AACA;AACA;;AAOO,SAASG,OAAO,CAACC,aAAiC,EAAQ;EAC/D,MAAMC,QAAQ,GAAG,IAAAC,aAAM,GAAQ;EAC/B,MAAMC,iBAAiB,GAAG,IAAAD,aAAM,GAAqB;EAErD,IAAIF,aAAa,IAAI,IAAI,EAAE,OAAOH,kBAAkB,EAAE;EAEtD,IACEI,QAAQ,CAACG,OAAO,IAAI,IAAI,IACxB,CAACd,oBAAoB,CAACa,iBAAiB,CAACC,OAAO,EAAEJ,aAAa,CAAC,EAC/D;IACAG,iBAAiB,CAACC,OAAO,GAAGJ,aAAa;IACzCC,QAAQ,CAACG,OAAO,GAAG,IAAIN,UAAI,CAACE,aAAa,CAAC;EAC5C;EAEA,OAAOC,QAAQ,CAACG,OAAO;AACzB;AAEA,SAASC,cAAc,CAIrBC,MAA0C,EAAE;EAC5C,OAAO,CACLC,GAAW,EACXN,QAAe,KACuC;IACtD,MAAMO,IAAI,GAAGP,QAAQ,IAAIJ,kBAAkB,EAAE;IAC7C,MAAM,CAACY,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAML,MAAM,CAACE,IAAI,EAAED,GAAG,CAAC,CAAC;IAC3D,MAAMK,QAAQ,GAAG,IAAAV,aAAM,EAAIO,KAAK,CAAC;IACjCG,QAAQ,CAACR,OAAO,GAAGK,KAAK;;IAExB;IACA,MAAMI,GAAG,GAAG,IAAAC,kBAAW,EACpBC,CAAa,IAAK;MACjB,MAAMC,QAAQ,GAAG,OAAOD,CAAC,KAAK,UAAU,GAAGA,CAAC,CAACH,QAAQ,CAACR,OAAO,CAAC,GAAGW,CAAC;MAClE,QAAQ,OAAOC,QAAQ;QACrB,KAAK,QAAQ;QACb,KAAK,QAAQ;QACb,KAAK,SAAS;UACZR,IAAI,CAACK,GAAG,CAACN,GAAG,EAAES,QAAQ,CAAC;UACvB;QACF,KAAK,WAAW;UACdR,IAAI,CAACS,MAAM,CAACV,GAAG,CAAC;UAChB;QACF;UACE,MAAM,
|
|
1
|
+
{"version":3,"names":["isConfigurationEqual","left","right","encryptionKey","id","path","defaultInstance","getDefaultInstance","MMKV","useMMKV","configuration","instance","useRef","lastConfiguration","current","createMMKVHook","getter","key","mmkv","value","setValue","useState","valueRef","set","useCallback","v","newValue","delete","Uint8Array","Error","useEffect","listener","addOnValueChangedListener","changedKey","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","string","setString","useMemo","undefined","JSON","parse","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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"}
|
package/lib/module/hooks.js
CHANGED
|
@@ -45,6 +45,13 @@ function createMMKVHook(getter) {
|
|
|
45
45
|
case 'undefined':
|
|
46
46
|
mmkv.delete(key);
|
|
47
47
|
break;
|
|
48
|
+
case 'object':
|
|
49
|
+
if (newValue instanceof Uint8Array) {
|
|
50
|
+
mmkv.set(key, newValue);
|
|
51
|
+
break;
|
|
52
|
+
} else {
|
|
53
|
+
throw new Error(`MMKV: Type object (${newValue}) is not supported!`);
|
|
54
|
+
}
|
|
48
55
|
default:
|
|
49
56
|
throw new Error(`MMKV: Type ${typeof newValue} is not supported!`);
|
|
50
57
|
}
|
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","defaultInstance","getDefaultInstance","useMMKV","configuration","instance","lastConfiguration","current","createMMKVHook","getter","key","mmkv","value","setValue","valueRef","set","v","newValue","delete","Error","listener","addOnValueChangedListener","changedKey","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","string","setString","undefined","JSON","parse","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"AAAA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,WAAW,EAAEC,SAAS,QAAQ,OAAO;AACzE,SAASC,IAAI,QAA2B,QAAQ;AAEhD,SAASC,oBAAoB,CAC3BC,IAAwB,EACxBC,KAAyB,EAChB;EACT,IAAID,IAAI,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI,EAAE,OAAOD,IAAI,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI;EAEvE,OACED,IAAI,CAACE,aAAa,KAAKD,KAAK,CAACC,aAAa,IAC1CF,IAAI,CAACG,EAAE,KAAKF,KAAK,CAACE,EAAE,IACpBH,IAAI,CAACI,IAAI,KAAKH,KAAK,CAACG,IAAI;AAE5B;AAEA,IAAIC,eAA4B,GAAG,IAAI;AACvC,SAASC,kBAAkB,GAAS;EAClC,IAAID,eAAe,IAAI,IAAI,EAAE;IAC3BA,eAAe,GAAG,IAAIP,IAAI,EAAE;EAC9B;EACA,OAAOO,eAAe;AACxB;;AAEA;AACA;AACA;;AAOA,OAAO,SAASE,OAAO,CAACC,aAAiC,EAAQ;EAC/D,MAAMC,QAAQ,GAAGhB,MAAM,EAAQ;EAC/B,MAAMiB,iBAAiB,GAAGjB,MAAM,EAAqB;EAErD,IAAIe,aAAa,IAAI,IAAI,EAAE,OAAOF,kBAAkB,EAAE;EAEtD,IACEG,QAAQ,CAACE,OAAO,IAAI,IAAI,IACxB,CAACZ,oBAAoB,CAACW,iBAAiB,CAACC,OAAO,EAAEH,aAAa,CAAC,EAC/D;IACAE,iBAAiB,CAACC,OAAO,GAAGH,aAAa;IACzCC,QAAQ,CAACE,OAAO,GAAG,IAAIb,IAAI,CAACU,aAAa,CAAC;EAC5C;EAEA,OAAOC,QAAQ,CAACE,OAAO;AACzB;AAEA,SAASC,cAAc,CAIrBC,MAA0C,EAAE;EAC5C,OAAO,CACLC,GAAW,EACXL,QAAe,KACuC;IACtD,MAAMM,IAAI,GAAGN,QAAQ,IAAIH,kBAAkB,EAAE;IAC7C,MAAM,CAACU,KAAK,EAAEC,QAAQ,CAAC,GAAGvB,QAAQ,CAAC,MAAMmB,MAAM,CAACE,IAAI,EAAED,GAAG,CAAC,CAAC;IAC3D,MAAMI,QAAQ,GAAGzB,MAAM,CAAIuB,KAAK,CAAC;IACjCE,QAAQ,CAACP,OAAO,GAAGK,KAAK;;IAExB;IACA,MAAMG,GAAG,GAAGvB,WAAW,CACpBwB,CAAa,IAAK;MACjB,MAAMC,QAAQ,GAAG,OAAOD,CAAC,KAAK,UAAU,GAAGA,CAAC,CAACF,QAAQ,CAACP,OAAO,CAAC,GAAGS,CAAC;MAClE,QAAQ,OAAOC,QAAQ;QACrB,KAAK,QAAQ;QACb,KAAK,QAAQ;QACb,KAAK,SAAS;UACZN,IAAI,CAACI,GAAG,CAACL,GAAG,EAAEO,QAAQ,CAAC;UACvB;QACF,KAAK,WAAW;UACdN,IAAI,CAACO,MAAM,CAACR,GAAG,CAAC;UAChB;QACF;UACE,MAAM,
|
|
1
|
+
{"version":3,"names":["useRef","useState","useMemo","useCallback","useEffect","MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","defaultInstance","getDefaultInstance","useMMKV","configuration","instance","lastConfiguration","current","createMMKVHook","getter","key","mmkv","value","setValue","valueRef","set","v","newValue","delete","Uint8Array","Error","listener","addOnValueChangedListener","changedKey","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","string","setString","undefined","JSON","parse","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAuBjD;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAAC;AAChC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAuBjD;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAAC;AAChC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;AA8EhE;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAhEjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CAgEpD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QA9EjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CA8EpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QA3FlB,MAAM,aACA,IAAI,sIAC8B,IAAI,CA2FpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAxGjB,MAAM,aACA,IAAI,kJAC8B,IAAI,CAwGpD,CAAC;AACF;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,IAAI,GACd,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC,CAqBlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC3C,QAAQ,CAAC,EAAE,IAAI,GACd,IAAI,CAYN"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-mmkv",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.3",
|
|
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",
|