react-native-mmkv 2.7.0 → 2.9.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.
Files changed (53) hide show
  1. package/MMKV/Core/Core.xcodeproj/project.pbxproj +15 -19
  2. package/MMKV/Core/Core.xcodeproj/xcshareddata/xcschemes/Core.xcscheme +1 -1
  3. package/MMKV/Core/Core.xcodeproj/xcshareddata/xcschemes/MMKVWatchCore.xcscheme +1 -1
  4. package/MMKV/Core/MMBuffer.cpp +18 -0
  5. package/MMKV/Core/MMBuffer.h +1 -0
  6. package/MMKV/Core/MMKV.cpp +173 -33
  7. package/MMKV/Core/MMKV.h +44 -0
  8. package/MMKV/Core/MMKVMetaInfo.hpp +18 -0
  9. package/MMKV/Core/MMKVPredef.h +2 -2
  10. package/MMKV/Core/MMKV_IO.cpp +477 -68
  11. package/MMKV/Core/MMKV_OSX.cpp +65 -14
  12. package/MMKV/Core/MemoryFile_Win32.cpp +39 -35
  13. package/MMKV/Core/MiniPBCoder.cpp +3 -7
  14. package/MMKV/Core/MiniPBCoder_OSX.cpp +4 -4
  15. package/MMKV/Core/PBUtility.cpp +1 -1
  16. package/MMKV/Core/PBUtility.h +7 -0
  17. package/MMKV/Core/aes/AESCrypt.h +1 -1
  18. package/MMKV/Core/aes/openssl/openssl_aes-armv4.S +4 -0
  19. package/README.md +14 -6
  20. package/android/build.gradle +2 -0
  21. package/android/src/main/AndroidManifest.xml +1 -2
  22. package/android/src/main/cpp/cpp-adapter.cpp +5 -0
  23. package/cpp/TypedArray.cpp +187 -199
  24. package/cpp/TypedArray.h +112 -109
  25. package/ios/JSIUtils.mm +2 -1
  26. package/ios/MmkvModule.mm +12 -7
  27. package/lib/commonjs/MMKV.js +0 -10
  28. package/lib/commonjs/MMKV.js.map +1 -1
  29. package/lib/commonjs/createMMKV.web.js +55 -12
  30. package/lib/commonjs/createMMKV.web.js.map +1 -1
  31. package/lib/commonjs/hooks.js +7 -0
  32. package/lib/commonjs/hooks.js.map +1 -1
  33. package/lib/module/MMKV.js +0 -10
  34. package/lib/module/MMKV.js.map +1 -1
  35. package/lib/module/createMMKV.web.js +55 -12
  36. package/lib/module/createMMKV.web.js.map +1 -1
  37. package/lib/module/hooks.js +7 -0
  38. package/lib/module/hooks.js.map +1 -1
  39. package/lib/typescript/MMKV.d.ts +0 -12
  40. package/lib/typescript/MMKV.d.ts.map +1 -1
  41. package/lib/typescript/createMMKV.web.d.ts.map +1 -1
  42. package/lib/typescript/hooks.d.ts.map +1 -1
  43. package/package.json +15 -10
  44. package/src/MMKV.ts +248 -0
  45. package/src/PlatformChecker.ts +7 -0
  46. package/src/createMMKV.mock.ts +33 -0
  47. package/src/createMMKV.ts +70 -0
  48. package/src/createMMKV.web.ts +119 -0
  49. package/src/createTextEncoder.ts +16 -0
  50. package/src/hooks.ts +232 -0
  51. package/src/index.ts +2 -0
  52. package/MMKV/LICENSE.TXT +0 -193
  53. 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
- Int8Array,
18
- Int16Array,
19
- Int32Array,
20
- Uint8Array,
21
- Uint8ClampedArray,
22
- Uint16Array,
23
- Uint32Array,
24
- Float32Array,
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
- void invalidateJsiPropNameIDCache();
80
-
81
- class TypedArrayBase : public jsi::Object
82
- {
83
- public:
84
- template <TypedArrayKind T>
85
- using ContentType = typename typedArrayTypeMap<T>::type;
86
-
87
- TypedArrayBase(jsi::Runtime &, size_t, TypedArrayKind);
88
- TypedArrayBase(jsi::Runtime &, const jsi::Object &);
89
- TypedArrayBase(TypedArrayBase &&) = default;
90
- TypedArrayBase &operator=(TypedArrayBase &&) = default;
91
-
92
- TypedArrayKind getKind(jsi::Runtime &runtime) const;
93
-
94
- template <TypedArrayKind T>
95
- TypedArray<T> get(jsi::Runtime &runtime) const &;
96
- template <TypedArrayKind T>
97
- TypedArray<T> get(jsi::Runtime &runtime) &&;
98
- template <TypedArrayKind T>
99
- TypedArray<T> as(jsi::Runtime &runtime) const &;
100
- template <TypedArrayKind T>
101
- TypedArray<T> as(jsi::Runtime &runtime) &&;
102
-
103
- size_t size(jsi::Runtime &runtime) const;
104
- size_t length(jsi::Runtime &runtime) const;
105
- size_t byteLength(jsi::Runtime &runtime) const;
106
- size_t byteOffset(jsi::Runtime &runtime) const;
107
- bool hasBuffer(jsi::Runtime &runtime) const;
108
-
109
- std::vector<uint8_t> toVector(jsi::Runtime &runtime);
110
- jsi::ArrayBuffer getBuffer(jsi::Runtime &runtime) const;
111
-
112
- private:
113
- template <TypedArrayKind>
114
- friend class TypedArray;
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
- public:
131
- TypedArray(jsi::Runtime &runtime, size_t size);
132
- TypedArray(jsi::Runtime &runtime, std::vector<ContentType<T>> data);
133
- TypedArray(TypedArrayBase &&base);
134
- TypedArray(TypedArray &&) = default;
135
- TypedArray &operator=(TypedArray &&) = default;
136
-
137
- std::vector<ContentType<T>> toVector(jsi::Runtime &runtime);
138
- void update(jsi::Runtime &runtime, const std::vector<ContentType<T>> &data);
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
- assert(getKind(runtime) == T);
145
- (void)runtime; // when assert is disabled we need to mark this as used
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
- assert(getKind(runtime) == T);
153
- (void)runtime; // when assert is disabled we need to mark this as used
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
- if (getKind(runtime) != T)
161
- {
162
- throw jsi::JSError(runtime, "Object is not a TypedArray");
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
- if (getKind(runtime) != T)
171
- {
172
- throw jsi::JSError(runtime, "Object is not a TypedArray");
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
- return [NSString stringWithUTF8String:value.utf8(runtime).c_str()];
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
  }
@@ -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]);
@@ -1 +1 @@
1
- {"version":3,"names":["onValueChangedListeners","Map","MMKV","constructor","configuration","id","fastWrites","nativeInstance","isJest","createMockMMKV","createMMKV","functionCache","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","value","delete","func","getBoolean","getString","getNumber","getBuffer","contains","getAllKeys","clearAll","recrypt","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":"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"}
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":"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"}
@@ -7,21 +7,42 @@ 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 createMMKV = config => {
11
- if (config.id !== 'mmkv.default') {
12
- throw new Error("MMKV: 'id' is not supported on Web!");
10
+ const hasAccessToLocalStorage = () => {
11
+ try {
12
+ // throws ACCESS_DENIED error
13
+ window.localStorage;
14
+ return true;
15
+ } catch {
16
+ return false;
13
17
  }
18
+ };
19
+ const KEY_WILDCARD = '\\';
20
+ const inMemoryStorage = new Map();
21
+ const createMMKV = config => {
14
22
  if (config.encryptionKey != null) {
15
23
  throw new Error("MMKV: 'encryptionKey' is not supported on Web!");
16
24
  }
17
25
  if (config.path != null) {
18
26
  throw new Error("MMKV: 'path' is not supported on Web!");
19
27
  }
28
+ if (!hasAccessToLocalStorage()) {
29
+ console.warn('MMKV: LocalStorage has been disabled. Your experience will be limited to in-memory storage!');
30
+ }
20
31
  const storage = () => {
21
32
  var _global, _window;
22
33
  if (!canUseDOM) {
23
34
  throw new Error('Tried to access storage on the server. Did you forget to call this in useEffect?');
24
35
  }
36
+ if (!hasAccessToLocalStorage()) {
37
+ return {
38
+ getItem: key => inMemoryStorage.get(key) ?? null,
39
+ setItem: (key, value) => inMemoryStorage.set(key, value),
40
+ removeItem: key => inMemoryStorage.delete(key),
41
+ clear: () => inMemoryStorage.clear(),
42
+ length: inMemoryStorage.size,
43
+ key: index => Object.keys(inMemoryStorage).at(index) ?? null
44
+ };
45
+ }
25
46
  const domStorage = ((_global = global) === null || _global === void 0 ? void 0 : _global.localStorage) ?? ((_window = window) === null || _window === void 0 ? void 0 : _window.localStorage) ?? localStorage;
26
47
  if (domStorage == null) {
27
48
  throw new Error(`Could not find 'localStorage' instance!`);
@@ -29,28 +50,50 @@ const createMMKV = config => {
29
50
  return domStorage;
30
51
  };
31
52
  const textEncoder = (0, _createTextEncoder.createTextEncoder)();
53
+ if (config.id.includes(KEY_WILDCARD)) {
54
+ throw new Error('MMKV: `id` cannot contain the backslash character (`\\`)!');
55
+ }
56
+ const keyPrefix = `${config.id}${KEY_WILDCARD}`; // mmkv.default\\
57
+ const prefixedKey = key => {
58
+ if (key.includes('\\')) {
59
+ throw new Error('MMKV: `key` cannot contain the backslash character (`\\`)!');
60
+ }
61
+ return `${keyPrefix}${key}`;
62
+ };
32
63
  return {
33
- clearAll: () => storage().clear(),
34
- delete: key => storage().removeItem(key),
35
- set: (key, value) => storage().setItem(key, value.toString()),
36
- getString: key => storage().getItem(key) ?? undefined,
64
+ clearAll: () => {
65
+ const keys = Object.keys(storage());
66
+ for (const key of keys) {
67
+ if (key.startsWith(keyPrefix)) {
68
+ storage().removeItem(key);
69
+ }
70
+ }
71
+ },
72
+ delete: key => storage().removeItem(prefixedKey(key)),
73
+ set: (key, value) => {
74
+ storage().setItem(prefixedKey(key), value.toString());
75
+ },
76
+ getString: key => storage().getItem(prefixedKey(key)) ?? undefined,
37
77
  getNumber: key => {
38
- const value = storage().getItem(key);
78
+ const value = storage().getItem(prefixedKey(key));
39
79
  if (value == null) return undefined;
40
80
  return Number(value);
41
81
  },
42
82
  getBoolean: key => {
43
- const value = storage().getItem(key);
83
+ const value = storage().getItem(prefixedKey(key));
44
84
  if (value == null) return undefined;
45
85
  return value === 'true';
46
86
  },
47
87
  getBuffer: key => {
48
- const value = storage().getItem(key);
88
+ const value = storage().getItem(prefixedKey(key));
49
89
  if (value == null) return undefined;
50
90
  return textEncoder.encode(value);
51
91
  },
52
- getAllKeys: () => Object.keys(storage()),
53
- contains: key => storage().getItem(key) != null,
92
+ getAllKeys: () => {
93
+ const keys = Object.keys(storage());
94
+ return keys.filter(key => key.startsWith(keyPrefix));
95
+ },
96
+ contains: key => storage().getItem(prefixedKey(key)) != null,
54
97
  recrypt: () => {
55
98
  throw new Error('`recrypt(..)` is not supported on Web!');
56
99
  }
@@ -1 +1 @@
1
- {"version":3,"names":["canUseDOM","window","document","createElement","createMMKV","config","id","Error","encryptionKey","path","storage","domStorage","global","localStorage","textEncoder","createTextEncoder","clearAll","clear","delete","key","removeItem","set","value","setItem","toString","getString","getItem","undefined","getNumber","Number","getBoolean","getBuffer","encode","getAllKeys","Object","keys","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;AAElE,MAAMC,UAAU,GAAIC,MAAyB,IAAiB;EACnE,IAAIA,MAAM,CAACC,EAAE,KAAK,cAAc,EAAE;IAChC,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;EACxD;EACA,IAAIF,MAAM,CAACG,aAAa,IAAI,IAAI,EAAE;IAChC,MAAM,IAAID,KAAK,CAAC,gDAAgD,CAAC;EACnE;EACA,IAAIF,MAAM,CAACI,IAAI,IAAI,IAAI,EAAE;IACvB,MAAM,IAAIF,KAAK,CAAC,uCAAuC,CAAC;EAC1D;EAEA,MAAMG,OAAO,GAAG,MAAM;IAAA;IACpB,IAAI,CAACV,SAAS,EAAE;MACd,MAAM,IAAIO,KAAK,CACb,kFAAkF,CACnF;IACH;IACA,MAAMI,UAAU,GACd,YAAAC,MAAM,4CAAN,QAAQC,YAAY,iBAAIZ,MAAM,4CAAN,QAAQY,YAAY,KAAIA,YAAY;IAC9D,IAAIF,UAAU,IAAI,IAAI,EAAE;MACtB,MAAM,IAAIJ,KAAK,CAAE,yCAAwC,CAAC;IAC5D;IACA,OAAOI,UAAU;EACnB,CAAC;EAED,MAAMG,WAAW,GAAG,IAAAC,oCAAiB,GAAE;EAEvC,OAAO;IACLC,QAAQ,EAAE,MAAMN,OAAO,EAAE,CAACO,KAAK,EAAE;IACjCC,MAAM,EAAGC,GAAG,IAAKT,OAAO,EAAE,CAACU,UAAU,CAACD,GAAG,CAAC;IAC1CE,GAAG,EAAE,CAACF,GAAG,EAAEG,KAAK,KAAKZ,OAAO,EAAE,CAACa,OAAO,CAACJ,GAAG,EAAEG,KAAK,CAACE,QAAQ,EAAE,CAAC;IAC7DC,SAAS,EAAGN,GAAG,IAAKT,OAAO,EAAE,CAACgB,OAAO,CAACP,GAAG,CAAC,IAAIQ,SAAS;IACvDC,SAAS,EAAGT,GAAG,IAAK;MAClB,MAAMG,KAAK,GAAGZ,OAAO,EAAE,CAACgB,OAAO,CAACP,GAAG,CAAC;MACpC,IAAIG,KAAK,IAAI,IAAI,EAAE,OAAOK,SAAS;MACnC,OAAOE,MAAM,CAACP,KAAK,CAAC;IACtB,CAAC;IACDQ,UAAU,EAAGX,GAAG,IAAK;MACnB,MAAMG,KAAK,GAAGZ,OAAO,EAAE,CAACgB,OAAO,CAACP,GAAG,CAAC;MACpC,IAAIG,KAAK,IAAI,IAAI,EAAE,OAAOK,SAAS;MACnC,OAAOL,KAAK,KAAK,MAAM;IACzB,CAAC;IACDS,SAAS,EAAGZ,GAAG,IAAK;MAClB,MAAMG,KAAK,GAAGZ,OAAO,EAAE,CAACgB,OAAO,CAACP,GAAG,CAAC;MACpC,IAAIG,KAAK,IAAI,IAAI,EAAE,OAAOK,SAAS;MACnC,OAAOb,WAAW,CAACkB,MAAM,CAACV,KAAK,CAAC;IAClC,CAAC;IACDW,UAAU,EAAE,MAAMC,MAAM,CAACC,IAAI,CAACzB,OAAO,EAAE,CAAC;IACxC0B,QAAQ,EAAGjB,GAAG,IAAKT,OAAO,EAAE,CAACgB,OAAO,CAACP,GAAG,CAAC,IAAI,IAAI;IACjDkB,OAAO,EAAE,MAAM;MACb,MAAM,IAAI9B,KAAK,CAAC,wCAAwC,CAAC;IAC3D;EACF,CAAC;AACH,CAAC;AAAC"}
1
+ {"version":3,"names":["canUseDOM","window","document","createElement","hasAccessToLocalStorage","localStorage","KEY_WILDCARD","inMemoryStorage","Map","createMMKV","config","encryptionKey","Error","path","console","warn","storage","getItem","key","get","setItem","value","set","removeItem","delete","clear","length","size","index","Object","keys","at","domStorage","global","textEncoder","createTextEncoder","id","includes","keyPrefix","prefixedKey","clearAll","startsWith","toString","getString","undefined","getNumber","Number","getBoolean","getBuffer","encode","getAllKeys","filter","contains","recrypt"],"sourceRoot":"../../src","sources":["createMMKV.web.ts"],"mappings":"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"}
@@ -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":"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"}
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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"}
@@ -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]);
@@ -1 +1 @@
1
- {"version":3,"names":["createMMKV","createMockMMKV","isJest","onValueChangedListeners","Map","MMKV","constructor","configuration","id","fastWrites","nativeInstance","functionCache","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","value","delete","func","getBoolean","getString","getNumber","getBuffer","contains","getAllKeys","clearAll","recrypt","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":"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"}
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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"}