react-native-mmkv 2.7.0 → 2.8.0
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/README.md +2 -3
- 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/JSIUtils.mm +2 -1
- package/ios/MmkvModule.mm +12 -7
- package/lib/commonjs/MMKV.js +0 -10
- package/lib/commonjs/MMKV.js.map +1 -1
- package/lib/commonjs/createMMKV.web.js +32 -12
- package/lib/commonjs/createMMKV.web.js.map +1 -1
- package/lib/commonjs/hooks.js +7 -0
- package/lib/commonjs/hooks.js.map +1 -1
- package/lib/module/MMKV.js +0 -10
- package/lib/module/MMKV.js.map +1 -1
- package/lib/module/createMMKV.web.js +32 -12
- package/lib/module/createMMKV.web.js.map +1 -1
- package/lib/module/hooks.js +7 -0
- package/lib/module/hooks.js.map +1 -1
- package/lib/typescript/MMKV.d.ts +0 -12
- package/lib/typescript/MMKV.d.ts.map +1 -1
- package/lib/typescript/createMMKV.web.d.ts.map +1 -1
- package/lib/typescript/hooks.d.ts.map +1 -1
- package/package.json +13 -9
- package/MMKV/LICENSE.TXT +0 -193
- package/MMKV/README.md +0 -291
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/JSIUtils.mm
CHANGED
|
@@ -80,7 +80,8 @@ id convertJSIValueToObjCObject(jsi::Runtime &runtime, const jsi::Value &value);
|
|
|
80
80
|
|
|
81
81
|
NSString *convertJSIStringToNSString(jsi::Runtime &runtime, const jsi::String &value)
|
|
82
82
|
{
|
|
83
|
-
|
|
83
|
+
auto string = value.utf8(runtime);
|
|
84
|
+
return [NSString stringWithUTF8String:string.c_str()];
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
NSArray *convertJSIArrayToNSArray(jsi::Runtime &runtime,
|
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/MMKV.js
CHANGED
|
@@ -7,7 +7,6 @@ exports.MMKV = void 0;
|
|
|
7
7
|
var _createMMKV = require("./createMMKV");
|
|
8
8
|
var _createMMKV2 = require("./createMMKV.mock");
|
|
9
9
|
var _PlatformChecker = require("./PlatformChecker");
|
|
10
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
10
|
const onValueChangedListeners = new Map();
|
|
12
11
|
|
|
13
12
|
/**
|
|
@@ -22,12 +21,7 @@ class MMKV {
|
|
|
22
21
|
let configuration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
23
22
|
id: 'mmkv.default'
|
|
24
23
|
};
|
|
25
|
-
_defineProperty(this, "nativeInstance", void 0);
|
|
26
|
-
_defineProperty(this, "functionCache", void 0);
|
|
27
|
-
_defineProperty(this, "id", void 0);
|
|
28
|
-
_defineProperty(this, "fastWrites", void 0);
|
|
29
24
|
this.id = configuration.id;
|
|
30
|
-
this.fastWrites = configuration.fastWrites ?? false;
|
|
31
25
|
this.nativeInstance = (0, _PlatformChecker.isJest)() ? (0, _createMMKV2.createMockMMKV)() : (0, _createMMKV.createMMKV)(configuration);
|
|
32
26
|
this.functionCache = {};
|
|
33
27
|
}
|
|
@@ -52,10 +46,6 @@ class MMKV {
|
|
|
52
46
|
}
|
|
53
47
|
}
|
|
54
48
|
set(key, value) {
|
|
55
|
-
if (!this.fastWrites) {
|
|
56
|
-
// Delete the value first. MMKV just leaves old values dangling by default
|
|
57
|
-
this.delete(key);
|
|
58
|
-
}
|
|
59
49
|
const func = this.getFunctionFromCache('set');
|
|
60
50
|
func(key, value);
|
|
61
51
|
this.onValuesChanged([key]);
|
package/lib/commonjs/MMKV.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["onValueChangedListeners","Map","MMKV","constructor","configuration","id","
|
|
1
|
+
{"version":3,"names":["onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","isJest","createMockMMKV","createMMKV","functionCache","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","value","func","getBoolean","getString","getNumber","getBuffer","contains","delete","getAllKeys","clearAll","recrypt","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AA+HA,MAAMA,uBAAuB,GAAG,IAAIC,GAAG,EAAqC;;AAE5E;AACA;AACA;AACO,MAAMC,IAAI,CAA0B;EAKzC;AACF;AACA;AACA;EACEC,WAAW,GAA4D;IAAA,IAA3DC,aAAgC,uEAAG;MAAEC,EAAE,EAAE;IAAe,CAAC;IACnE,IAAI,CAACA,EAAE,GAAGD,aAAa,CAACC,EAAE;IAC1B,IAAI,CAACC,cAAc,GAAG,IAAAC,uBAAM,GAAE,GAC1B,IAAAC,2BAAc,GAAE,GAChB,IAAAC,sBAAU,EAACL,aAAa,CAAC;IAC7B,IAAI,CAACM,aAAa,GAAG,CAAC,CAAC;EACzB;EAEA,IAAYV,uBAAuB,GAAG;IACpC,IAAI,CAACA,uBAAuB,CAACW,GAAG,CAAC,IAAI,CAACN,EAAE,CAAC,EAAE;MACzCL,uBAAuB,CAACY,GAAG,CAAC,IAAI,CAACP,EAAE,EAAE,EAAE,CAAC;IAC1C;IACA,OAAOL,uBAAuB,CAACa,GAAG,CAAC,IAAI,CAACR,EAAE,CAAC;EAC7C;EAEQS,oBAAoB,CAC1BC,YAAe,EACA;IACf,IAAI,IAAI,CAACL,aAAa,CAACK,YAAY,CAAC,IAAI,IAAI,EAAE;MAC5C,IAAI,CAACL,aAAa,CAACK,YAAY,CAAC,GAAG,IAAI,CAACT,cAAc,CAACS,YAAY,CAAC;IACtE;IACA,OAAO,IAAI,CAACL,aAAa,CAACK,YAAY,CAAC;EACzC;EAEQC,eAAe,CAACC,IAAc,EAAE;IACtC,IAAI,IAAI,CAACjB,uBAAuB,CAACkB,MAAM,KAAK,CAAC,EAAE;IAE/C,KAAK,MAAMC,GAAG,IAAIF,IAAI,EAAE;MACtB,KAAK,MAAMG,QAAQ,IAAI,IAAI,CAACpB,uBAAuB,EAAE;QACnDoB,QAAQ,CAACD,GAAG,CAAC;MACf;IACF;EACF;EAEAP,GAAG,CAACO,GAAW,EAAEE,KAA6C,EAAQ;IACpE,MAAMC,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,KAAK,CAAC;IAC7CQ,IAAI,CAACH,GAAG,EAAEE,KAAK,CAAC;IAEhB,IAAI,CAACL,eAAe,CAAC,CAACG,GAAG,CAAC,CAAC;EAC7B;EACAI,UAAU,CAACJ,GAAW,EAAuB;IAC3C,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,YAAY,CAAC;IACpD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAK,SAAS,CAACL,GAAW,EAAsB;IACzC,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,WAAW,CAAC;IACnD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAM,SAAS,CAACN,GAAW,EAAsB;IACzC,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,WAAW,CAAC;IACnD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAO,SAAS,CAACP,GAAW,EAA0B;IAC7C,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,WAAW,CAAC;IACnD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAQ,QAAQ,CAACR,GAAW,EAAW;IAC7B,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,UAAU,CAAC;IAClD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EACAS,MAAM,CAACT,GAAW,EAAQ;IACxB,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,QAAQ,CAAC;IAChDQ,IAAI,CAACH,GAAG,CAAC;IAET,IAAI,CAACH,eAAe,CAAC,CAACG,GAAG,CAAC,CAAC;EAC7B;EACAU,UAAU,GAAa;IACrB,MAAMP,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,YAAY,CAAC;IACpD,OAAOQ,IAAI,EAAE;EACf;EACAQ,QAAQ,GAAS;IACf,MAAMb,IAAI,GAAG,IAAI,CAACY,UAAU,EAAE;IAE9B,MAAMP,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,UAAU,CAAC;IAClDQ,IAAI,EAAE;IAEN,IAAI,CAACN,eAAe,CAACC,IAAI,CAAC;EAC5B;EACAc,OAAO,CAACZ,GAAuB,EAAQ;IACrC,MAAMG,IAAI,GAAG,IAAI,CAACR,oBAAoB,CAAC,SAAS,CAAC;IACjD,OAAOQ,IAAI,CAACH,GAAG,CAAC;EAClB;EAEAa,QAAQ,GAAW;IACjB,OAAQ,SAAQ,IAAI,CAAC3B,EAAG,OAAM,IAAI,CAACwB,UAAU,EAAE,CAACI,IAAI,CAAC,IAAI,CAAE,GAAE;EAC/D;EACAC,MAAM,GAAW;IACf,OAAO;MACL,CAAC,IAAI,CAAC7B,EAAE,GAAG,IAAI,CAACwB,UAAU;IAC5B,CAAC;EACH;EAEAM,yBAAyB,CAACC,cAAqC,EAAY;IACzE,IAAI,CAACpC,uBAAuB,CAACqC,IAAI,CAACD,cAAc,CAAC;IAEjD,OAAO;MACLE,MAAM,EAAE,MAAM;QACZ,MAAMC,KAAK,GAAG,IAAI,CAACvC,uBAAuB,CAACwC,OAAO,CAACJ,cAAc,CAAC;QAClE,IAAIG,KAAK,KAAK,CAAC,CAAC,EAAE;UAChB,IAAI,CAACvC,uBAAuB,CAACyC,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;QAC/C;MACF;IACF,CAAC;EACH;AACF;AAAC"}
|
|
@@ -7,10 +7,8 @@ exports.createMMKV = void 0;
|
|
|
7
7
|
var _createTextEncoder = require("./createTextEncoder");
|
|
8
8
|
var _window$document;
|
|
9
9
|
const canUseDOM = typeof window !== 'undefined' && ((_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.createElement) != null;
|
|
10
|
+
const KEY_WILDCARD = '\\';
|
|
10
11
|
const createMMKV = config => {
|
|
11
|
-
if (config.id !== 'mmkv.default') {
|
|
12
|
-
throw new Error("MMKV: 'id' is not supported on Web!");
|
|
13
|
-
}
|
|
14
12
|
if (config.encryptionKey != null) {
|
|
15
13
|
throw new Error("MMKV: 'encryptionKey' is not supported on Web!");
|
|
16
14
|
}
|
|
@@ -29,28 +27,50 @@ const createMMKV = config => {
|
|
|
29
27
|
return domStorage;
|
|
30
28
|
};
|
|
31
29
|
const textEncoder = (0, _createTextEncoder.createTextEncoder)();
|
|
30
|
+
if (config.id.includes(KEY_WILDCARD)) {
|
|
31
|
+
throw new Error('MMKV: `id` cannot contain the backslash character (`\\`)!');
|
|
32
|
+
}
|
|
33
|
+
const keyPrefix = `${config.id}${KEY_WILDCARD}`; // mmkv.default\\
|
|
34
|
+
const prefixedKey = key => {
|
|
35
|
+
if (key.includes('\\')) {
|
|
36
|
+
throw new Error('MMKV: `key` cannot contain the backslash character (`\\`)!');
|
|
37
|
+
}
|
|
38
|
+
return `${keyPrefix}${key}`;
|
|
39
|
+
};
|
|
32
40
|
return {
|
|
33
|
-
clearAll: () =>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
41
|
+
clearAll: () => {
|
|
42
|
+
const keys = Object.keys(storage());
|
|
43
|
+
for (const key of keys) {
|
|
44
|
+
if (key.startsWith(keyPrefix)) {
|
|
45
|
+
storage().removeItem(key);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
delete: key => storage().removeItem(prefixedKey(key)),
|
|
50
|
+
set: (key, value) => {
|
|
51
|
+
storage().setItem(prefixedKey(key), value.toString());
|
|
52
|
+
},
|
|
53
|
+
getString: key => storage().getItem(prefixedKey(key)) ?? undefined,
|
|
37
54
|
getNumber: key => {
|
|
38
|
-
const value = storage().getItem(key);
|
|
55
|
+
const value = storage().getItem(prefixedKey(key));
|
|
39
56
|
if (value == null) return undefined;
|
|
40
57
|
return Number(value);
|
|
41
58
|
},
|
|
42
59
|
getBoolean: key => {
|
|
43
|
-
const value = storage().getItem(key);
|
|
60
|
+
const value = storage().getItem(prefixedKey(key));
|
|
44
61
|
if (value == null) return undefined;
|
|
45
62
|
return value === 'true';
|
|
46
63
|
},
|
|
47
64
|
getBuffer: key => {
|
|
48
|
-
const value = storage().getItem(key);
|
|
65
|
+
const value = storage().getItem(prefixedKey(key));
|
|
49
66
|
if (value == null) return undefined;
|
|
50
67
|
return textEncoder.encode(value);
|
|
51
68
|
},
|
|
52
|
-
getAllKeys: () =>
|
|
53
|
-
|
|
69
|
+
getAllKeys: () => {
|
|
70
|
+
const keys = Object.keys(storage());
|
|
71
|
+
return keys.filter(key => key.startsWith(keyPrefix));
|
|
72
|
+
},
|
|
73
|
+
contains: key => storage().getItem(prefixedKey(key)) != null,
|
|
54
74
|
recrypt: () => {
|
|
55
75
|
throw new Error('`recrypt(..)` is not supported on Web!');
|
|
56
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["canUseDOM","window","document","createElement","createMMKV","config","
|
|
1
|
+
{"version":3,"names":["canUseDOM","window","document","createElement","KEY_WILDCARD","createMMKV","config","encryptionKey","Error","path","storage","domStorage","global","localStorage","textEncoder","createTextEncoder","id","includes","keyPrefix","prefixedKey","key","clearAll","keys","Object","startsWith","removeItem","delete","set","value","setItem","toString","getString","getItem","undefined","getNumber","Number","getBoolean","getBuffer","encode","getAllKeys","filter","contains","recrypt"],"sourceRoot":"../../src","sources":["createMMKV.web.ts"],"mappings":";;;;;;AAEA;AAAwD;AAExD,MAAMA,SAAS,GACb,OAAOC,MAAM,KAAK,WAAW,IAAI,qBAAAA,MAAM,CAACC,QAAQ,qDAAf,iBAAiBC,aAAa,KAAI,IAAI;AAEzE,MAAMC,YAAY,GAAG,IAAI;AAElB,MAAMC,UAAU,GAAIC,MAAyB,IAAiB;EACnE,IAAIA,MAAM,CAACC,aAAa,IAAI,IAAI,EAAE;IAChC,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;EACnE;EACA,IAAIF,MAAM,CAACG,IAAI,IAAI,IAAI,EAAE;IACvB,MAAM,IAAID,KAAK,CAAC,uCAAuC,CAAC;EAC1D;EAEA,MAAME,OAAO,GAAG,MAAM;IAAA;IACpB,IAAI,CAACV,SAAS,EAAE;MACd,MAAM,IAAIQ,KAAK,CACb,kFAAkF,CACnF;IACH;IACA,MAAMG,UAAU,GACd,YAAAC,MAAM,4CAAN,QAAQC,YAAY,iBAAIZ,MAAM,4CAAN,QAAQY,YAAY,KAAIA,YAAY;IAC9D,IAAIF,UAAU,IAAI,IAAI,EAAE;MACtB,MAAM,IAAIH,KAAK,CAAE,yCAAwC,CAAC;IAC5D;IACA,OAAOG,UAAU;EACnB,CAAC;EAED,MAAMG,WAAW,GAAG,IAAAC,oCAAiB,GAAE;EAEvC,IAAIT,MAAM,CAACU,EAAE,CAACC,QAAQ,CAACb,YAAY,CAAC,EAAE;IACpC,MAAM,IAAII,KAAK,CACb,2DAA2D,CAC5D;EACH;EAEA,MAAMU,SAAS,GAAI,GAAEZ,MAAM,CAACU,EAAG,GAAEZ,YAAa,EAAC,CAAC,CAAC;EACjD,MAAMe,WAAW,GAAIC,GAAW,IAAK;IACnC,IAAIA,GAAG,CAACH,QAAQ,CAAC,IAAI,CAAC,EAAE;MACtB,MAAM,IAAIT,KAAK,CACb,4DAA4D,CAC7D;IACH;IACA,OAAQ,GAAEU,SAAU,GAAEE,GAAI,EAAC;EAC7B,CAAC;EAED,OAAO;IACLC,QAAQ,EAAE,MAAM;MACd,MAAMC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACZ,OAAO,EAAE,CAAC;MACnC,KAAK,MAAMU,GAAG,IAAIE,IAAI,EAAE;QACtB,IAAIF,GAAG,CAACI,UAAU,CAACN,SAAS,CAAC,EAAE;UAC7BR,OAAO,EAAE,CAACe,UAAU,CAACL,GAAG,CAAC;QAC3B;MACF;IACF,CAAC;IACDM,MAAM,EAAGN,GAAG,IAAKV,OAAO,EAAE,CAACe,UAAU,CAACN,WAAW,CAACC,GAAG,CAAC,CAAC;IACvDO,GAAG,EAAE,CAACP,GAAG,EAAEQ,KAAK,KAAK;MACnBlB,OAAO,EAAE,CAACmB,OAAO,CAACV,WAAW,CAACC,GAAG,CAAC,EAAEQ,KAAK,CAACE,QAAQ,EAAE,CAAC;IACvD,CAAC;IACDC,SAAS,EAAGX,GAAG,IAAKV,OAAO,EAAE,CAACsB,OAAO,CAACb,WAAW,CAACC,GAAG,CAAC,CAAC,IAAIa,SAAS;IACpEC,SAAS,EAAGd,GAAG,IAAK;MAClB,MAAMQ,KAAK,GAAGlB,OAAO,EAAE,CAACsB,OAAO,CAACb,WAAW,CAACC,GAAG,CAAC,CAAC;MACjD,IAAIQ,KAAK,IAAI,IAAI,EAAE,OAAOK,SAAS;MACnC,OAAOE,MAAM,CAACP,KAAK,CAAC;IACtB,CAAC;IACDQ,UAAU,EAAGhB,GAAG,IAAK;MACnB,MAAMQ,KAAK,GAAGlB,OAAO,EAAE,CAACsB,OAAO,CAACb,WAAW,CAACC,GAAG,CAAC,CAAC;MACjD,IAAIQ,KAAK,IAAI,IAAI,EAAE,OAAOK,SAAS;MACnC,OAAOL,KAAK,KAAK,MAAM;IACzB,CAAC;IACDS,SAAS,EAAGjB,GAAG,IAAK;MAClB,MAAMQ,KAAK,GAAGlB,OAAO,EAAE,CAACsB,OAAO,CAACb,WAAW,CAACC,GAAG,CAAC,CAAC;MACjD,IAAIQ,KAAK,IAAI,IAAI,EAAE,OAAOK,SAAS;MACnC,OAAOnB,WAAW,CAACwB,MAAM,CAACV,KAAK,CAAC;IAClC,CAAC;IACDW,UAAU,EAAE,MAAM;MAChB,MAAMjB,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACZ,OAAO,EAAE,CAAC;MACnC,OAAOY,IAAI,CAACkB,MAAM,CAAEpB,GAAG,IAAKA,GAAG,CAACI,UAAU,CAACN,SAAS,CAAC,CAAC;IACxD,CAAC;IACDuB,QAAQ,EAAGrB,GAAG,IAAKV,OAAO,EAAE,CAACsB,OAAO,CAACb,WAAW,CAACC,GAAG,CAAC,CAAC,IAAI,IAAI;IAC9DsB,OAAO,EAAE,MAAM;MACb,MAAM,IAAIlC,KAAK,CAAC,wCAAwC,CAAC;IAC3D;EACF,CAAC;AACH,CAAC;AAAC"}
|
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/MMKV.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
1
|
import { createMMKV } from './createMMKV';
|
|
3
2
|
import { createMockMMKV } from './createMMKV.mock';
|
|
4
3
|
import { isJest } from './PlatformChecker';
|
|
@@ -16,12 +15,7 @@ export class MMKV {
|
|
|
16
15
|
let configuration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
17
16
|
id: 'mmkv.default'
|
|
18
17
|
};
|
|
19
|
-
_defineProperty(this, "nativeInstance", void 0);
|
|
20
|
-
_defineProperty(this, "functionCache", void 0);
|
|
21
|
-
_defineProperty(this, "id", void 0);
|
|
22
|
-
_defineProperty(this, "fastWrites", void 0);
|
|
23
18
|
this.id = configuration.id;
|
|
24
|
-
this.fastWrites = configuration.fastWrites ?? false;
|
|
25
19
|
this.nativeInstance = isJest() ? createMockMMKV() : createMMKV(configuration);
|
|
26
20
|
this.functionCache = {};
|
|
27
21
|
}
|
|
@@ -46,10 +40,6 @@ export class MMKV {
|
|
|
46
40
|
}
|
|
47
41
|
}
|
|
48
42
|
set(key, value) {
|
|
49
|
-
if (!this.fastWrites) {
|
|
50
|
-
// Delete the value first. MMKV just leaves old values dangling by default
|
|
51
|
-
this.delete(key);
|
|
52
|
-
}
|
|
53
43
|
const func = this.getFunctionFromCache('set');
|
|
54
44
|
func(key, value);
|
|
55
45
|
this.onValuesChanged([key]);
|
package/lib/module/MMKV.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createMMKV","createMockMMKV","isJest","onValueChangedListeners","Map","MMKV","constructor","configuration","id","
|
|
1
|
+
{"version":3,"names":["createMMKV","createMockMMKV","isJest","onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","functionCache","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","value","func","getBoolean","getString","getNumber","getBuffer","contains","delete","getAllKeys","clearAll","recrypt","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":"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"}
|