react-native-mmkv 3.0.2 → 3.2.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/MMKV/Core/MMKV.cpp +51 -15
- package/MMKV/Core/MMKV.h +19 -5
- package/MMKV/Core/MMKVPredef.h +2 -2
- package/MMKV/Core/MMKV_Android.cpp +13 -13
- package/MMKV/Core/MMKV_IO.cpp +37 -6
- package/MMKV/Core/MMKV_OSX.cpp +15 -4
- package/MMKV/Core/MemoryFile.cpp +24 -10
- package/MMKV/Core/MemoryFile.h +8 -2
- package/MMKV/Core/MemoryFile_Android.cpp +4 -3
- package/MMKV/Core/MemoryFile_Win32.cpp +22 -11
- package/MMKV/Core/aes/AESCrypt.cpp +19 -24
- package/MMKV/Core/aes/AESCrypt.h +4 -1
- package/MMKV/README.md +354 -0
- package/README.md +5 -0
- package/cpp/MmkvHostObject.cpp +18 -3
- package/cpp/NativeMmkvModule.h +1 -1
- package/lib/commonjs/MMKV.js +5 -5
- package/lib/commonjs/MMKV.js.map +1 -1
- package/lib/commonjs/MemoryWarningListener.js +31 -0
- package/lib/commonjs/MemoryWarningListener.js.map +1 -0
- package/lib/commonjs/MemoryWarningListener.web.js +11 -0
- package/lib/commonjs/MemoryWarningListener.web.js.map +1 -0
- package/lib/commonjs/NativeMmkv.js +10 -5
- package/lib/commonjs/NativeMmkv.js.map +1 -1
- package/lib/commonjs/NativeMmkvPlatformContext.js +4 -4
- package/lib/commonjs/NativeMmkvPlatformContext.js.map +1 -1
- package/lib/commonjs/Types.js +24 -0
- package/lib/commonjs/Types.js.map +1 -1
- package/lib/commonjs/createMMKV.js +7 -0
- package/lib/commonjs/createMMKV.js.map +1 -1
- package/lib/commonjs/createMMKV.mock.js +1 -0
- package/lib/commonjs/createMMKV.mock.js.map +1 -1
- package/lib/commonjs/createMMKV.web.js +1 -0
- package/lib/commonjs/createMMKV.web.js.map +1 -1
- package/lib/commonjs/index.js +3 -10
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/MMKV.js +5 -5
- package/lib/module/MMKV.js.map +1 -1
- package/lib/module/MemoryWarningListener.js +27 -0
- package/lib/module/MemoryWarningListener.js.map +1 -0
- package/lib/module/MemoryWarningListener.web.js +6 -0
- package/lib/module/MemoryWarningListener.web.js.map +1 -0
- package/lib/module/NativeMmkv.js +10 -5
- package/lib/module/NativeMmkv.js.map +1 -1
- package/lib/module/NativeMmkvPlatformContext.js +4 -4
- package/lib/module/NativeMmkvPlatformContext.js.map +1 -1
- package/lib/module/Types.js +23 -0
- package/lib/module/Types.js.map +1 -1
- package/lib/module/createMMKV.js +7 -0
- package/lib/module/createMMKV.js.map +1 -1
- package/lib/module/createMMKV.mock.js +1 -0
- package/lib/module/createMMKV.mock.js.map +1 -1
- package/lib/module/createMMKV.web.js +1 -0
- package/lib/module/createMMKV.web.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/MMKV.d.ts +2 -2
- package/lib/typescript/src/MMKV.d.ts.map +1 -1
- package/lib/typescript/src/MemoryWarningListener.d.ts +3 -0
- package/lib/typescript/src/MemoryWarningListener.d.ts.map +1 -0
- package/lib/typescript/src/MemoryWarningListener.web.d.ts +3 -0
- package/lib/typescript/src/MemoryWarningListener.web.d.ts.map +1 -0
- package/lib/typescript/src/NativeMmkv.d.ts +9 -0
- package/lib/typescript/src/NativeMmkv.d.ts.map +1 -1
- package/lib/typescript/src/NativeMmkvPlatformContext.d.ts.map +1 -1
- package/lib/typescript/src/Types.d.ts +76 -0
- package/lib/typescript/src/Types.d.ts.map +1 -1
- package/lib/typescript/src/createMMKV.d.ts +1 -2
- package/lib/typescript/src/createMMKV.d.ts.map +1 -1
- package/lib/typescript/src/createMMKV.mock.d.ts.map +1 -1
- package/lib/typescript/src/createMMKV.web.d.ts +1 -2
- package/lib/typescript/src/createMMKV.web.d.ts.map +1 -1
- package/lib/typescript/src/hooks.d.ts +1 -1
- package/lib/typescript/src/hooks.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +12 -14
- package/react-native-mmkv.podspec +1 -1
- package/src/MMKV.ts +11 -7
- package/src/MemoryWarningListener.ts +29 -0
- package/src/MemoryWarningListener.web.ts +5 -0
- package/src/NativeMmkv.ts +14 -5
- package/src/NativeMmkvPlatformContext.ts +6 -4
- package/src/Types.ts +79 -0
- package/src/createMMKV.mock.ts +1 -0
- package/src/createMMKV.ts +9 -2
- package/src/createMMKV.web.ts +2 -2
- package/src/hooks.ts +1 -1
- package/src/index.ts +1 -1
- package/img/banner-dark.png +0 -0
- package/img/banner-light.png +0 -0
package/lib/commonjs/MMKV.js
CHANGED
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.MMKV = void 0;
|
|
7
|
-
var _reactNative = require("react-native");
|
|
8
7
|
var _createMMKV = require("./createMMKV");
|
|
9
8
|
var _createMMKV2 = require("./createMMKV.mock");
|
|
10
9
|
var _PlatformChecker = require("./PlatformChecker");
|
|
10
|
+
var _MemoryWarningListener = require("./MemoryWarningListener");
|
|
11
11
|
const onValueChangedListeners = new Map();
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -24,10 +24,7 @@ class MMKV {
|
|
|
24
24
|
this.id = configuration.id;
|
|
25
25
|
this.nativeInstance = (0, _PlatformChecker.isTest)() ? (0, _createMMKV2.createMockMMKV)() : (0, _createMMKV.createMMKV)(configuration);
|
|
26
26
|
this.functionCache = {};
|
|
27
|
-
|
|
28
|
-
// when we have a memory warning, delete unused keys by trimming MMKV
|
|
29
|
-
this.trim();
|
|
30
|
-
});
|
|
27
|
+
(0, _MemoryWarningListener.addMemoryWarningListener)(this);
|
|
31
28
|
}
|
|
32
29
|
get onValueChangedListeners() {
|
|
33
30
|
if (!onValueChangedListeners.has(this.id)) {
|
|
@@ -52,6 +49,9 @@ class MMKV {
|
|
|
52
49
|
get size() {
|
|
53
50
|
return this.nativeInstance.size;
|
|
54
51
|
}
|
|
52
|
+
get isReadOnly() {
|
|
53
|
+
return this.nativeInstance.isReadOnly;
|
|
54
|
+
}
|
|
55
55
|
set(key, value) {
|
|
56
56
|
const func = this.getFunctionFromCache('set');
|
|
57
57
|
func(key, value);
|
package/lib/commonjs/MMKV.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_createMMKV","require","_createMMKV2","_PlatformChecker","_MemoryWarningListener","onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","isTest","createMockMMKV","createMMKV","functionCache","addMemoryWarningListener","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","size","isReadOnly","value","func","getBoolean","getString","getNumber","getBuffer","contains","delete","getAllKeys","clearAll","recrypt","trim","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice","exports"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addMemoryWarningListener = addMemoryWarningListener;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
function addMemoryWarningListener(mmkv) {
|
|
9
|
+
if (global.WeakRef != null && global.FinalizationRegistry != null) {
|
|
10
|
+
// 1. Weakify MMKV so we can safely use it inside the memoryWarning event listener
|
|
11
|
+
const weakMmkv = new WeakRef(mmkv);
|
|
12
|
+
const listener = _reactNative.AppState.addEventListener('memoryWarning', () => {
|
|
13
|
+
// 0. Everytime we receive a memoryWarning, we try to trim the MMKV instance (if it is still valid)
|
|
14
|
+
weakMmkv.deref()?.trim();
|
|
15
|
+
});
|
|
16
|
+
// 2. Add a listener to when the MMKV instance is deleted
|
|
17
|
+
const finalization = new FinalizationRegistry(l => {
|
|
18
|
+
// 3. When MMKV is deleted, this listener will be called with the memoryWarning listener.
|
|
19
|
+
l.remove();
|
|
20
|
+
});
|
|
21
|
+
// 2.1. Bind the listener to the actual MMKV instance.
|
|
22
|
+
finalization.register(mmkv, listener);
|
|
23
|
+
} else {
|
|
24
|
+
// WeakRef/FinalizationRegistry is not implemented in this engine.
|
|
25
|
+
// Just add the listener, even if it retains MMKV strong forever.
|
|
26
|
+
_reactNative.AppState.addEventListener('memoryWarning', () => {
|
|
27
|
+
mmkv.trim();
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=MemoryWarningListener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","addMemoryWarningListener","mmkv","global","WeakRef","FinalizationRegistry","weakMmkv","listener","AppState","addEventListener","deref","trim","finalization","l","remove","register"],"sourceRoot":"../../src","sources":["MemoryWarningListener.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIO,SAASC,wBAAwBA,CAACC,IAAmB,EAAQ;EAClE,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,IAAID,MAAM,CAACE,oBAAoB,IAAI,IAAI,EAAE;IACjE;IACA,MAAMC,QAAQ,GAAG,IAAIF,OAAO,CAACF,IAAI,CAAC;IAClC,MAAMK,QAAQ,GAAGC,qBAAQ,CAACC,gBAAgB,CAAC,eAAe,EAAE,MAAM;MAChE;MACAH,QAAQ,CAACI,KAAK,CAAC,CAAC,EAAEC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF;IACA,MAAMC,YAAY,GAAG,IAAIP,oBAAoB,CAC1CQ,CAA0B,IAAK;MAC9B;MACAA,CAAC,CAACC,MAAM,CAAC,CAAC;IACZ,CACF,CAAC;IACD;IACAF,YAAY,CAACG,QAAQ,CAACb,IAAI,EAAEK,QAAQ,CAAC;EACvC,CAAC,MAAM;IACL;IACA;IACAC,qBAAQ,CAACC,gBAAgB,CAAC,eAAe,EAAE,MAAM;MAC/CP,IAAI,CAACS,IAAI,CAAC,CAAC;IACb,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addMemoryWarningListener = void 0;
|
|
7
|
+
const addMemoryWarningListener = _mmkv => {
|
|
8
|
+
//no-op function, there is not a web equivalent to memory warning
|
|
9
|
+
};
|
|
10
|
+
exports.addMemoryWarningListener = addMemoryWarningListener;
|
|
11
|
+
//# sourceMappingURL=MemoryWarningListener.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["addMemoryWarningListener","_mmkv","exports"],"sourceRoot":"../../src","sources":["MemoryWarningListener.web.ts"],"mappings":";;;;;;AAEO,MAAMA,wBAAwB,GAAIC,KAAoB,IAAW;EACtE;AAAA,CACD;AAACC,OAAA,CAAAF,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -8,6 +8,11 @@ exports.getMMKVTurboModule = getMMKVTurboModule;
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _ModuleNotFoundError = require("./ModuleNotFoundError");
|
|
10
10
|
var _NativeMmkvPlatformContext = require("./NativeMmkvPlatformContext");
|
|
11
|
+
/**
|
|
12
|
+
* IMPORTANT: These types are also in the Types.ts file.
|
|
13
|
+
* Due to how react-native-codegen works these are required here as the spec types can not be separated from spec.
|
|
14
|
+
* We also need the types separate to allow bypassing importing turbo module registry in web
|
|
15
|
+
*/
|
|
11
16
|
/**
|
|
12
17
|
* Configures the mode of the MMKV instance.
|
|
13
18
|
*/
|
|
@@ -19,21 +24,21 @@ let Mode = exports.Mode = /*#__PURE__*/function (Mode) {
|
|
|
19
24
|
/**
|
|
20
25
|
* Used for configuration of a single MMKV instance.
|
|
21
26
|
*/
|
|
22
|
-
let
|
|
27
|
+
let mmkvModule;
|
|
23
28
|
function getMMKVTurboModule() {
|
|
24
29
|
try {
|
|
25
|
-
if (
|
|
30
|
+
if (mmkvModule == null) {
|
|
26
31
|
// 1. Load MMKV TurboModule
|
|
27
|
-
|
|
32
|
+
mmkvModule = _reactNative.TurboModuleRegistry.getEnforcing('MmkvCxx');
|
|
28
33
|
|
|
29
34
|
// 2. Get the PlatformContext TurboModule as well
|
|
30
35
|
const platformContext = (0, _NativeMmkvPlatformContext.getMMKVPlatformContextTurboModule)();
|
|
31
36
|
|
|
32
37
|
// 3. Initialize it with the documents directory from platform-specific context
|
|
33
38
|
const basePath = platformContext.getBaseDirectory();
|
|
34
|
-
|
|
39
|
+
mmkvModule.initialize(basePath);
|
|
35
40
|
}
|
|
36
|
-
return
|
|
41
|
+
return mmkvModule;
|
|
37
42
|
} catch (cause) {
|
|
38
43
|
// TurboModule could not be found!
|
|
39
44
|
throw new _ModuleNotFoundError.ModuleNotFoundError(cause);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_ModuleNotFoundError","_NativeMmkvPlatformContext","Mode","exports","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_ModuleNotFoundError","_NativeMmkvPlatformContext","Mode","exports","mmkvModule","getMMKVTurboModule","TurboModuleRegistry","getEnforcing","platformContext","getMMKVPlatformContextTurboModule","basePath","getBaseDirectory","initialize","cause","ModuleNotFoundError"],"sourceRoot":"../../src","sources":["NativeMmkv.ts"],"mappings":";;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA,IAGYG,IAAI,GAAAC,OAAA,CAAAD,IAAA,0BAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAWhB;AACA;AACA;AAqEA,IAAIE,UAAuB;AAEpB,SAASC,kBAAkBA,CAAA,EAAS;EACzC,IAAI;IACF,IAAID,UAAU,IAAI,IAAI,EAAE;MACtB;MACAA,UAAU,GAAGE,gCAAmB,CAACC,YAAY,CAAO,SAAS,CAAC;;MAE9D;MACA,MAAMC,eAAe,GAAG,IAAAC,4DAAiC,EAAC,CAAC;;MAE3D;MACA,MAAMC,QAAQ,GAAGF,eAAe,CAACG,gBAAgB,CAAC,CAAC;MACnDP,UAAU,CAACQ,UAAU,CAACF,QAAQ,CAAC;IACjC;IAEA,OAAON,UAAU;EACnB,CAAC,CAAC,OAAOS,KAAK,EAAE;IACd;IACA,MAAM,IAAIC,wCAAmB,CAACD,KAAK,CAAC;EACtC;AACF","ignoreList":[]}
|
|
@@ -6,14 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getMMKVPlatformContextTurboModule = getMMKVPlatformContextTurboModule;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _ModuleNotFoundError = require("./ModuleNotFoundError");
|
|
9
|
-
let
|
|
9
|
+
let mmkvPlatformModule;
|
|
10
10
|
function getMMKVPlatformContextTurboModule() {
|
|
11
11
|
try {
|
|
12
|
-
if (
|
|
12
|
+
if (mmkvPlatformModule == null) {
|
|
13
13
|
// 1. Get the TurboModule
|
|
14
|
-
|
|
14
|
+
mmkvPlatformModule = _reactNative.TurboModuleRegistry.getEnforcing('MmkvPlatformContext');
|
|
15
15
|
}
|
|
16
|
-
return
|
|
16
|
+
return mmkvPlatformModule;
|
|
17
17
|
} catch (e) {
|
|
18
18
|
// TurboModule could not be found!
|
|
19
19
|
throw new _ModuleNotFoundError.ModuleNotFoundError(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_ModuleNotFoundError","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_ModuleNotFoundError","mmkvPlatformModule","getMMKVPlatformContextTurboModule","TurboModuleRegistry","getEnforcing","e","ModuleNotFoundError"],"sourceRoot":"../../src","sources":["NativeMmkvPlatformContext.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAoBA,IAAIE,kBAA+B;AAE5B,SAASC,iCAAiCA,CAAA,EAAS;EACxD,IAAI;IACF,IAAID,kBAAkB,IAAI,IAAI,EAAE;MAC9B;MACAA,kBAAkB,GAAGE,gCAAmB,CAACC,YAAY,CACnD,qBACF,CAAC;IACH;IACA,OAAOH,kBAAkB;EAC3B,CAAC,CAAC,OAAOI,CAAC,EAAE;IACV;IACA,MAAM,IAAIC,wCAAmB,CAACD,CAAC,CAAC;EAClC;AACF","ignoreList":[]}
|
package/lib/commonjs/Types.js
CHANGED
|
@@ -1,2 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Mode = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* IMPORTANT: Some of these types are also in the NativeMmkv.ts file.
|
|
9
|
+
* Due to how react-native-codegen works these are required here as the spec types can not be separated from spec.
|
|
10
|
+
* We also need the types separate to allow bypassing importing turbo module registry in web
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Configures the mode of the MMKV instance.
|
|
14
|
+
*/
|
|
15
|
+
let Mode = exports.Mode = /*#__PURE__*/function (Mode) {
|
|
16
|
+
Mode[Mode["SINGLE_PROCESS"] = 0] = "SINGLE_PROCESS";
|
|
17
|
+
Mode[Mode["MULTI_PROCESS"] = 1] = "MULTI_PROCESS";
|
|
18
|
+
return Mode;
|
|
19
|
+
}({});
|
|
20
|
+
/**
|
|
21
|
+
* Used for configuration of a single MMKV instance.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Represents a single MMKV instance.
|
|
25
|
+
*/
|
|
2
26
|
//# sourceMappingURL=Types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["Types.ts"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Mode","exports"],"sourceRoot":"../../src","sources":["Types.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAFA,IAGYA,IAAI,GAAAC,OAAA,CAAAD,IAAA,0BAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAWhB;AACA;AACA;AAoDA;AACA;AACA","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.createMMKV = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _NativeMmkv = require("./NativeMmkv");
|
|
9
|
+
var _Types = require("./Types");
|
|
9
10
|
var _NativeMmkvPlatformContext = require("./NativeMmkvPlatformContext");
|
|
10
11
|
const createMMKV = config => {
|
|
11
12
|
const module = (0, _NativeMmkv.getMMKVTurboModule)();
|
|
@@ -24,6 +25,12 @@ const createMMKV = config => {
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
}
|
|
28
|
+
if (typeof config.mode === 'number') {
|
|
29
|
+
// Code-gen expects enums to be strings. In TS, they might be numbers tho.
|
|
30
|
+
// This sucks, so we need a workaround.
|
|
31
|
+
// @ts-expect-error the native side actually expects a string.
|
|
32
|
+
config.mode = _Types.Mode[config.mode];
|
|
33
|
+
}
|
|
27
34
|
const instance = module.createMMKV(config);
|
|
28
35
|
if (__DEV__) {
|
|
29
36
|
if (typeof instance !== 'object' || instance == null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeMmkv","_NativeMmkvPlatformContext","createMMKV","config","module","getMMKVTurboModule","Platform","OS","path","appGroupDirectory","getMMKVPlatformContextTurboModule","getAppGroupDirectory","e","console","error","instance","__DEV__","Error","exports"],"sourceRoot":"../../src","sources":["createMMKV.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeMmkv","_Types","_NativeMmkvPlatformContext","createMMKV","config","module","getMMKVTurboModule","Platform","OS","path","appGroupDirectory","getMMKVPlatformContextTurboModule","getAppGroupDirectory","e","console","error","mode","Mode","instance","__DEV__","Error","exports"],"sourceRoot":"../../src","sources":["createMMKV.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AAEO,MAAMI,UAAU,GAAIC,MAAqB,IAAiB;EAC/D,MAAMC,MAAM,GAAG,IAAAC,8BAAkB,EAAC,CAAC;EAEnC,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,IAAIJ,MAAM,CAACK,IAAI,IAAI,IAAI,EAAE;MACvB,IAAI;QACF;QACA,MAAMC,iBAAiB,GACrB,IAAAC,4DAAiC,EAAC,CAAC,CAACC,oBAAoB,CAAC,CAAC;QAC5D,IAAIF,iBAAiB,IAAI,IAAI,EAAE;UAC7B;UACAN,MAAM,CAACK,IAAI,GAAGC,iBAAiB;QACjC;MACF,CAAC,CAAC,OAAOG,CAAC,EAAE;QACV;QACAC,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC;MAClB;IACF;EACF;EAEA,IAAI,OAAOT,MAAM,CAACY,IAAI,KAAK,QAAQ,EAAE;IACnC;IACA;IACA;IACAZ,MAAM,CAACY,IAAI,GAAGC,WAAI,CAACb,MAAM,CAACY,IAAI,CAAC;EACjC;EAEA,MAAME,QAAQ,GAAGb,MAAM,CAACF,UAAU,CAACC,MAAM,CAAC;EAC1C,IAAIe,OAAO,EAAE;IACX,IAAI,OAAOD,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,IAAI,IAAI,EAAE;MACpD,MAAM,IAAIE,KAAK,CACb,oFACF,CAAC;IACH;EACF;EACA,OAAOF,QAAQ;AACjB,CAAC;AAACG,OAAA,CAAAlB,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createMockMMKV","storage","Map","clearAll","clear","delete","key","set","value","getString","result","get","undefined","getNumber","getBoolean","getBuffer","ArrayBuffer","getAllKeys","Array","from","keys","contains","has","recrypt","console","warn","size","trim","exports"],"sourceRoot":"../../src","sources":["createMMKV.mock.ts"],"mappings":";;;;;;AAEA;AACO,MAAMA,cAAc,GAAGA,CAAA,KAAkB;EAC9C,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAkD,CAAC;EAE1E,OAAO;IACLC,QAAQ,EAAEA,CAAA,KAAMF,OAAO,CAACG,KAAK,CAAC,CAAC;IAC/BC,MAAM,EAAGC,GAAG,IAAKL,OAAO,CAACI,MAAM,CAACC,GAAG,CAAC;IACpCC,GAAG,EAAEA,CAACD,GAAG,EAAEE,KAAK,KAAKP,OAAO,CAACM,GAAG,CAACD,GAAG,EAAEE,KAAK,CAAC;IAC5CC,SAAS,EAAGH,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDC,SAAS,EAAGP,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDE,UAAU,EAAGR,GAAG,IAAK;MACnB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,SAAS,GAAGA,MAAM,GAAGE,SAAS;IACzD,CAAC;IACDG,SAAS,EAAGT,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAOI,MAAM,YAAYM,WAAW,GAAGN,MAAM,GAAGE,SAAS;IAC3D,CAAC;IACDK,UAAU,EAAEA,CAAA,KAAMC,KAAK,CAACC,IAAI,CAAClB,OAAO,CAACmB,IAAI,CAAC,CAAC,CAAC;IAC5CC,QAAQ,EAAGf,GAAG,IAAKL,OAAO,CAACqB,GAAG,CAAChB,GAAG,CAAC;IACnCiB,OAAO,EAAEA,CAAA,KAAM;MACbC,OAAO,CAACC,IAAI,CAAC,uDAAuD,CAAC;IACvE,CAAC;IACDC,IAAI,EAAE,CAAC;IACPC,IAAI,EAAEA,CAAA,KAAM;MACV;IAAA;EAEJ,CAAC;AACH,CAAC;AAACC,OAAA,
|
|
1
|
+
{"version":3,"names":["createMockMMKV","storage","Map","clearAll","clear","delete","key","set","value","getString","result","get","undefined","getNumber","getBoolean","getBuffer","ArrayBuffer","getAllKeys","Array","from","keys","contains","has","recrypt","console","warn","size","isReadOnly","trim","exports"],"sourceRoot":"../../src","sources":["createMMKV.mock.ts"],"mappings":";;;;;;AAEA;AACO,MAAMA,cAAc,GAAGA,CAAA,KAAkB;EAC9C,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAkD,CAAC;EAE1E,OAAO;IACLC,QAAQ,EAAEA,CAAA,KAAMF,OAAO,CAACG,KAAK,CAAC,CAAC;IAC/BC,MAAM,EAAGC,GAAG,IAAKL,OAAO,CAACI,MAAM,CAACC,GAAG,CAAC;IACpCC,GAAG,EAAEA,CAACD,GAAG,EAAEE,KAAK,KAAKP,OAAO,CAACM,GAAG,CAACD,GAAG,EAAEE,KAAK,CAAC;IAC5CC,SAAS,EAAGH,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDC,SAAS,EAAGP,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDE,UAAU,EAAGR,GAAG,IAAK;MACnB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,SAAS,GAAGA,MAAM,GAAGE,SAAS;IACzD,CAAC;IACDG,SAAS,EAAGT,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAOI,MAAM,YAAYM,WAAW,GAAGN,MAAM,GAAGE,SAAS;IAC3D,CAAC;IACDK,UAAU,EAAEA,CAAA,KAAMC,KAAK,CAACC,IAAI,CAAClB,OAAO,CAACmB,IAAI,CAAC,CAAC,CAAC;IAC5CC,QAAQ,EAAGf,GAAG,IAAKL,OAAO,CAACqB,GAAG,CAAChB,GAAG,CAAC;IACnCiB,OAAO,EAAEA,CAAA,KAAM;MACbC,OAAO,CAACC,IAAI,CAAC,uDAAuD,CAAC;IACvE,CAAC;IACDC,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,KAAK;IACjBC,IAAI,EAAEA,CAAA,KAAM;MACV;IAAA;EAEJ,CAAC;AACH,CAAC;AAACC,OAAA,CAAA7B,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createTextEncoder","require","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","map","slice","contains","recrypt","trim","exports"],"sourceRoot":"../../src","sources":["createMMKV.web.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_createTextEncoder","require","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","map","slice","contains","recrypt","isReadOnly","trim","exports"],"sourceRoot":"../../src","sources":["createMMKV.web.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -4,19 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
var _exportNames = {
|
|
7
|
-
Mode: true
|
|
8
|
-
Configuration: true
|
|
7
|
+
Mode: true
|
|
9
8
|
};
|
|
10
|
-
Object.defineProperty(exports, "Configuration", {
|
|
11
|
-
enumerable: true,
|
|
12
|
-
get: function () {
|
|
13
|
-
return _NativeMmkv.Configuration;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
9
|
Object.defineProperty(exports, "Mode", {
|
|
17
10
|
enumerable: true,
|
|
18
11
|
get: function () {
|
|
19
|
-
return
|
|
12
|
+
return _Types.Mode;
|
|
20
13
|
}
|
|
21
14
|
});
|
|
22
15
|
var _MMKV = require("./MMKV");
|
|
@@ -43,5 +36,5 @@ Object.keys(_hooks).forEach(function (key) {
|
|
|
43
36
|
}
|
|
44
37
|
});
|
|
45
38
|
});
|
|
46
|
-
var
|
|
39
|
+
var _Types = require("./Types");
|
|
47
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_MMKV","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_hooks","
|
|
1
|
+
{"version":3,"names":["_MMKV","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_hooks","_Types"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,MAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,MAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,MAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAU,MAAA,GAAAd,OAAA","ignoreList":[]}
|
package/lib/module/MMKV.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { AppState } from 'react-native';
|
|
4
3
|
import { createMMKV } from './createMMKV';
|
|
5
4
|
import { createMockMMKV } from './createMMKV.mock';
|
|
6
5
|
import { isTest } from './PlatformChecker';
|
|
6
|
+
import { addMemoryWarningListener } from './MemoryWarningListener';
|
|
7
7
|
const onValueChangedListeners = new Map();
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -20,10 +20,7 @@ export class MMKV {
|
|
|
20
20
|
this.id = configuration.id;
|
|
21
21
|
this.nativeInstance = isTest() ? createMockMMKV() : createMMKV(configuration);
|
|
22
22
|
this.functionCache = {};
|
|
23
|
-
|
|
24
|
-
// when we have a memory warning, delete unused keys by trimming MMKV
|
|
25
|
-
this.trim();
|
|
26
|
-
});
|
|
23
|
+
addMemoryWarningListener(this);
|
|
27
24
|
}
|
|
28
25
|
get onValueChangedListeners() {
|
|
29
26
|
if (!onValueChangedListeners.has(this.id)) {
|
|
@@ -48,6 +45,9 @@ export class MMKV {
|
|
|
48
45
|
get size() {
|
|
49
46
|
return this.nativeInstance.size;
|
|
50
47
|
}
|
|
48
|
+
get isReadOnly() {
|
|
49
|
+
return this.nativeInstance.isReadOnly;
|
|
50
|
+
}
|
|
51
51
|
set(key, value) {
|
|
52
52
|
const func = this.getFunctionFromCache('set');
|
|
53
53
|
func(key, value);
|
package/lib/module/MMKV.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createMMKV","createMockMMKV","isTest","addMemoryWarningListener","onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","functionCache","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","size","isReadOnly","value","func","getBoolean","getString","getNumber","getBuffer","contains","delete","getAllKeys","clearAll","recrypt","trim","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { AppState } from 'react-native';
|
|
4
|
+
export function addMemoryWarningListener(mmkv) {
|
|
5
|
+
if (global.WeakRef != null && global.FinalizationRegistry != null) {
|
|
6
|
+
// 1. Weakify MMKV so we can safely use it inside the memoryWarning event listener
|
|
7
|
+
const weakMmkv = new WeakRef(mmkv);
|
|
8
|
+
const listener = AppState.addEventListener('memoryWarning', () => {
|
|
9
|
+
// 0. Everytime we receive a memoryWarning, we try to trim the MMKV instance (if it is still valid)
|
|
10
|
+
weakMmkv.deref()?.trim();
|
|
11
|
+
});
|
|
12
|
+
// 2. Add a listener to when the MMKV instance is deleted
|
|
13
|
+
const finalization = new FinalizationRegistry(l => {
|
|
14
|
+
// 3. When MMKV is deleted, this listener will be called with the memoryWarning listener.
|
|
15
|
+
l.remove();
|
|
16
|
+
});
|
|
17
|
+
// 2.1. Bind the listener to the actual MMKV instance.
|
|
18
|
+
finalization.register(mmkv, listener);
|
|
19
|
+
} else {
|
|
20
|
+
// WeakRef/FinalizationRegistry is not implemented in this engine.
|
|
21
|
+
// Just add the listener, even if it retains MMKV strong forever.
|
|
22
|
+
AppState.addEventListener('memoryWarning', () => {
|
|
23
|
+
mmkv.trim();
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=MemoryWarningListener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AppState","addMemoryWarningListener","mmkv","global","WeakRef","FinalizationRegistry","weakMmkv","listener","addEventListener","deref","trim","finalization","l","remove","register"],"sourceRoot":"../../src","sources":["MemoryWarningListener.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAIvC,OAAO,SAASC,wBAAwBA,CAACC,IAAmB,EAAQ;EAClE,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,IAAID,MAAM,CAACE,oBAAoB,IAAI,IAAI,EAAE;IACjE;IACA,MAAMC,QAAQ,GAAG,IAAIF,OAAO,CAACF,IAAI,CAAC;IAClC,MAAMK,QAAQ,GAAGP,QAAQ,CAACQ,gBAAgB,CAAC,eAAe,EAAE,MAAM;MAChE;MACAF,QAAQ,CAACG,KAAK,CAAC,CAAC,EAAEC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF;IACA,MAAMC,YAAY,GAAG,IAAIN,oBAAoB,CAC1CO,CAA0B,IAAK;MAC9B;MACAA,CAAC,CAACC,MAAM,CAAC,CAAC;IACZ,CACF,CAAC;IACD;IACAF,YAAY,CAACG,QAAQ,CAACZ,IAAI,EAAEK,QAAQ,CAAC;EACvC,CAAC,MAAM;IACL;IACA;IACAP,QAAQ,CAACQ,gBAAgB,CAAC,eAAe,EAAE,MAAM;MAC/CN,IAAI,CAACQ,IAAI,CAAC,CAAC;IACb,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["addMemoryWarningListener","_mmkv"],"sourceRoot":"../../src","sources":["MemoryWarningListener.web.ts"],"mappings":";;AAEA,OAAO,MAAMA,wBAAwB,GAAIC,KAAoB,IAAW;EACtE;AAAA,CACD","ignoreList":[]}
|
package/lib/module/NativeMmkv.js
CHANGED
|
@@ -4,6 +4,11 @@ import { TurboModuleRegistry } from 'react-native';
|
|
|
4
4
|
import { ModuleNotFoundError } from './ModuleNotFoundError';
|
|
5
5
|
import { getMMKVPlatformContextTurboModule } from './NativeMmkvPlatformContext';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* IMPORTANT: These types are also in the Types.ts file.
|
|
9
|
+
* Due to how react-native-codegen works these are required here as the spec types can not be separated from spec.
|
|
10
|
+
* We also need the types separate to allow bypassing importing turbo module registry in web
|
|
11
|
+
*/
|
|
7
12
|
/**
|
|
8
13
|
* Configures the mode of the MMKV instance.
|
|
9
14
|
*/
|
|
@@ -17,21 +22,21 @@ export let Mode = /*#__PURE__*/function (Mode) {
|
|
|
17
22
|
* Used for configuration of a single MMKV instance.
|
|
18
23
|
*/
|
|
19
24
|
|
|
20
|
-
let
|
|
25
|
+
let mmkvModule;
|
|
21
26
|
export function getMMKVTurboModule() {
|
|
22
27
|
try {
|
|
23
|
-
if (
|
|
28
|
+
if (mmkvModule == null) {
|
|
24
29
|
// 1. Load MMKV TurboModule
|
|
25
|
-
|
|
30
|
+
mmkvModule = TurboModuleRegistry.getEnforcing('MmkvCxx');
|
|
26
31
|
|
|
27
32
|
// 2. Get the PlatformContext TurboModule as well
|
|
28
33
|
const platformContext = getMMKVPlatformContextTurboModule();
|
|
29
34
|
|
|
30
35
|
// 3. Initialize it with the documents directory from platform-specific context
|
|
31
36
|
const basePath = platformContext.getBaseDirectory();
|
|
32
|
-
|
|
37
|
+
mmkvModule.initialize(basePath);
|
|
33
38
|
}
|
|
34
|
-
return
|
|
39
|
+
return mmkvModule;
|
|
35
40
|
} catch (cause) {
|
|
36
41
|
// TurboModule could not be found!
|
|
37
42
|
throw new ModuleNotFoundError(cause);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","ModuleNotFoundError","getMMKVPlatformContextTurboModule","Mode","
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","ModuleNotFoundError","getMMKVPlatformContextTurboModule","Mode","mmkvModule","getMMKVTurboModule","getEnforcing","platformContext","basePath","getBaseDirectory","initialize","cause"],"sourceRoot":"../../src","sources":["NativeMmkv.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAElD,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,iCAAiC,QAAQ,6BAA6B;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYC,IAAI,0BAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;;AAWhB;AACA;AACA;;AAqEA,IAAIC,UAAuB;AAE3B,OAAO,SAASC,kBAAkBA,CAAA,EAAS;EACzC,IAAI;IACF,IAAID,UAAU,IAAI,IAAI,EAAE;MACtB;MACAA,UAAU,GAAGJ,mBAAmB,CAACM,YAAY,CAAO,SAAS,CAAC;;MAE9D;MACA,MAAMC,eAAe,GAAGL,iCAAiC,CAAC,CAAC;;MAE3D;MACA,MAAMM,QAAQ,GAAGD,eAAe,CAACE,gBAAgB,CAAC,CAAC;MACnDL,UAAU,CAACM,UAAU,CAACF,QAAQ,CAAC;IACjC;IAEA,OAAOJ,UAAU;EACnB,CAAC,CAAC,OAAOO,KAAK,EAAE;IACd;IACA,MAAM,IAAIV,mBAAmB,CAACU,KAAK,CAAC;EACtC;AACF","ignoreList":[]}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
import { TurboModuleRegistry } from 'react-native';
|
|
4
4
|
import { ModuleNotFoundError } from './ModuleNotFoundError';
|
|
5
|
-
let
|
|
5
|
+
let mmkvPlatformModule;
|
|
6
6
|
export function getMMKVPlatformContextTurboModule() {
|
|
7
7
|
try {
|
|
8
|
-
if (
|
|
8
|
+
if (mmkvPlatformModule == null) {
|
|
9
9
|
// 1. Get the TurboModule
|
|
10
|
-
|
|
10
|
+
mmkvPlatformModule = TurboModuleRegistry.getEnforcing('MmkvPlatformContext');
|
|
11
11
|
}
|
|
12
|
-
return
|
|
12
|
+
return mmkvPlatformModule;
|
|
13
13
|
} catch (e) {
|
|
14
14
|
// TurboModule could not be found!
|
|
15
15
|
throw new ModuleNotFoundError(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","ModuleNotFoundError","
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","ModuleNotFoundError","mmkvPlatformModule","getMMKVPlatformContextTurboModule","getEnforcing","e"],"sourceRoot":"../../src","sources":["NativeMmkvPlatformContext.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAClD,SAASC,mBAAmB,QAAQ,uBAAuB;AAoB3D,IAAIC,kBAA+B;AAEnC,OAAO,SAASC,iCAAiCA,CAAA,EAAS;EACxD,IAAI;IACF,IAAID,kBAAkB,IAAI,IAAI,EAAE;MAC9B;MACAA,kBAAkB,GAAGF,mBAAmB,CAACI,YAAY,CACnD,qBACF,CAAC;IACH;IACA,OAAOF,kBAAkB;EAC3B,CAAC,CAAC,OAAOG,CAAC,EAAE;IACV;IACA,MAAM,IAAIJ,mBAAmB,CAACI,CAAC,CAAC;EAClC;AACF","ignoreList":[]}
|
package/lib/module/Types.js
CHANGED
|
@@ -1,2 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* IMPORTANT: Some of these types are also in the NativeMmkv.ts file.
|
|
5
|
+
* Due to how react-native-codegen works these are required here as the spec types can not be separated from spec.
|
|
6
|
+
* We also need the types separate to allow bypassing importing turbo module registry in web
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Configures the mode of the MMKV instance.
|
|
11
|
+
*/
|
|
12
|
+
export let Mode = /*#__PURE__*/function (Mode) {
|
|
13
|
+
Mode[Mode["SINGLE_PROCESS"] = 0] = "SINGLE_PROCESS";
|
|
14
|
+
Mode[Mode["MULTI_PROCESS"] = 1] = "MULTI_PROCESS";
|
|
15
|
+
return Mode;
|
|
16
|
+
}({});
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Used for configuration of a single MMKV instance.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Represents a single MMKV instance.
|
|
24
|
+
*/
|
|
2
25
|
//# sourceMappingURL=Types.js.map
|
package/lib/module/Types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["Types.ts"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Mode"],"sourceRoot":"../../src","sources":["Types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAYA,IAAI,0BAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;;AAWhB;AACA;AACA;;AAoDA;AACA;AACA","ignoreList":[]}
|
package/lib/module/createMMKV.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
4
|
import { getMMKVTurboModule } from './NativeMmkv';
|
|
5
|
+
import { Mode } from './Types';
|
|
5
6
|
import { getMMKVPlatformContextTurboModule } from './NativeMmkvPlatformContext';
|
|
6
7
|
export const createMMKV = config => {
|
|
7
8
|
const module = getMMKVTurboModule();
|
|
@@ -20,6 +21,12 @@ export const createMMKV = config => {
|
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
}
|
|
24
|
+
if (typeof config.mode === 'number') {
|
|
25
|
+
// Code-gen expects enums to be strings. In TS, they might be numbers tho.
|
|
26
|
+
// This sucks, so we need a workaround.
|
|
27
|
+
// @ts-expect-error the native side actually expects a string.
|
|
28
|
+
config.mode = Mode[config.mode];
|
|
29
|
+
}
|
|
23
30
|
const instance = module.createMMKV(config);
|
|
24
31
|
if (__DEV__) {
|
|
25
32
|
if (typeof instance !== 'object' || instance == null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","getMMKVTurboModule","getMMKVPlatformContextTurboModule","createMMKV","config","module","OS","path","appGroupDirectory","getAppGroupDirectory","e","console","error","instance","__DEV__","Error"],"sourceRoot":"../../src","sources":["createMMKV.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,kBAAkB,
|
|
1
|
+
{"version":3,"names":["Platform","getMMKVTurboModule","Mode","getMMKVPlatformContextTurboModule","createMMKV","config","module","OS","path","appGroupDirectory","getAppGroupDirectory","e","console","error","mode","instance","__DEV__","Error"],"sourceRoot":"../../src","sources":["createMMKV.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,kBAAkB,QAAQ,cAAc;AACjD,SAA6BC,IAAI,QAAyB,SAAS;AACnE,SAASC,iCAAiC,QAAQ,6BAA6B;AAE/E,OAAO,MAAMC,UAAU,GAAIC,MAAqB,IAAiB;EAC/D,MAAMC,MAAM,GAAGL,kBAAkB,CAAC,CAAC;EAEnC,IAAID,QAAQ,CAACO,EAAE,KAAK,KAAK,EAAE;IACzB,IAAIF,MAAM,CAACG,IAAI,IAAI,IAAI,EAAE;MACvB,IAAI;QACF;QACA,MAAMC,iBAAiB,GACrBN,iCAAiC,CAAC,CAAC,CAACO,oBAAoB,CAAC,CAAC;QAC5D,IAAID,iBAAiB,IAAI,IAAI,EAAE;UAC7B;UACAJ,MAAM,CAACG,IAAI,GAAGC,iBAAiB;QACjC;MACF,CAAC,CAAC,OAAOE,CAAC,EAAE;QACV;QACAC,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC;MAClB;IACF;EACF;EAEA,IAAI,OAAON,MAAM,CAACS,IAAI,KAAK,QAAQ,EAAE;IACnC;IACA;IACA;IACAT,MAAM,CAACS,IAAI,GAAGZ,IAAI,CAACG,MAAM,CAACS,IAAI,CAAC;EACjC;EAEA,MAAMC,QAAQ,GAAGT,MAAM,CAACF,UAAU,CAACC,MAAM,CAAC;EAC1C,IAAIW,OAAO,EAAE;IACX,IAAI,OAAOD,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,IAAI,IAAI,EAAE;MACpD,MAAM,IAAIE,KAAK,CACb,oFACF,CAAC;IACH;EACF;EACA,OAAOF,QAAQ;AACjB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createMockMMKV","storage","Map","clearAll","clear","delete","key","set","value","getString","result","get","undefined","getNumber","getBoolean","getBuffer","ArrayBuffer","getAllKeys","Array","from","keys","contains","has","recrypt","console","warn","size","trim"],"sourceRoot":"../../src","sources":["createMMKV.mock.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,cAAc,GAAGA,CAAA,KAAkB;EAC9C,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAkD,CAAC;EAE1E,OAAO;IACLC,QAAQ,EAAEA,CAAA,KAAMF,OAAO,CAACG,KAAK,CAAC,CAAC;IAC/BC,MAAM,EAAGC,GAAG,IAAKL,OAAO,CAACI,MAAM,CAACC,GAAG,CAAC;IACpCC,GAAG,EAAEA,CAACD,GAAG,EAAEE,KAAK,KAAKP,OAAO,CAACM,GAAG,CAACD,GAAG,EAAEE,KAAK,CAAC;IAC5CC,SAAS,EAAGH,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDC,SAAS,EAAGP,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDE,UAAU,EAAGR,GAAG,IAAK;MACnB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,SAAS,GAAGA,MAAM,GAAGE,SAAS;IACzD,CAAC;IACDG,SAAS,EAAGT,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAOI,MAAM,YAAYM,WAAW,GAAGN,MAAM,GAAGE,SAAS;IAC3D,CAAC;IACDK,UAAU,EAAEA,CAAA,KAAMC,KAAK,CAACC,IAAI,CAAClB,OAAO,CAACmB,IAAI,CAAC,CAAC,CAAC;IAC5CC,QAAQ,EAAGf,GAAG,IAAKL,OAAO,CAACqB,GAAG,CAAChB,GAAG,CAAC;IACnCiB,OAAO,EAAEA,CAAA,KAAM;MACbC,OAAO,CAACC,IAAI,CAAC,uDAAuD,CAAC;IACvE,CAAC;IACDC,IAAI,EAAE,CAAC;IACPC,IAAI,EAAEA,CAAA,KAAM;MACV;IAAA;EAEJ,CAAC;AACH,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createMockMMKV","storage","Map","clearAll","clear","delete","key","set","value","getString","result","get","undefined","getNumber","getBoolean","getBuffer","ArrayBuffer","getAllKeys","Array","from","keys","contains","has","recrypt","console","warn","size","isReadOnly","trim"],"sourceRoot":"../../src","sources":["createMMKV.mock.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,cAAc,GAAGA,CAAA,KAAkB;EAC9C,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAkD,CAAC;EAE1E,OAAO;IACLC,QAAQ,EAAEA,CAAA,KAAMF,OAAO,CAACG,KAAK,CAAC,CAAC;IAC/BC,MAAM,EAAGC,GAAG,IAAKL,OAAO,CAACI,MAAM,CAACC,GAAG,CAAC;IACpCC,GAAG,EAAEA,CAACD,GAAG,EAAEE,KAAK,KAAKP,OAAO,CAACM,GAAG,CAACD,GAAG,EAAEE,KAAK,CAAC;IAC5CC,SAAS,EAAGH,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDC,SAAS,EAAGP,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAGE,SAAS;IACxD,CAAC;IACDE,UAAU,EAAGR,GAAG,IAAK;MACnB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAO,OAAOI,MAAM,KAAK,SAAS,GAAGA,MAAM,GAAGE,SAAS;IACzD,CAAC;IACDG,SAAS,EAAGT,GAAG,IAAK;MAClB,MAAMI,MAAM,GAAGT,OAAO,CAACU,GAAG,CAACL,GAAG,CAAC;MAC/B,OAAOI,MAAM,YAAYM,WAAW,GAAGN,MAAM,GAAGE,SAAS;IAC3D,CAAC;IACDK,UAAU,EAAEA,CAAA,KAAMC,KAAK,CAACC,IAAI,CAAClB,OAAO,CAACmB,IAAI,CAAC,CAAC,CAAC;IAC5CC,QAAQ,EAAGf,GAAG,IAAKL,OAAO,CAACqB,GAAG,CAAChB,GAAG,CAAC;IACnCiB,OAAO,EAAEA,CAAA,KAAM;MACbC,OAAO,CAACC,IAAI,CAAC,uDAAuD,CAAC;IACvE,CAAC;IACDC,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,KAAK;IACjBC,IAAI,EAAEA,CAAA,KAAM;MACV;IAAA;EAEJ,CAAC;AACH,CAAC","ignoreList":[]}
|