react-native-mmkv 4.0.0-beta.1 → 4.0.0-beta.11
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/NitroMmkv.podspec +44 -0
- package/README.md +1 -3
- package/android/CMakeLists.txt +31 -30
- package/android/build.gradle +66 -21
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -5
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/mmkv/HybridMMKVPlatformContext.kt +19 -0
- package/android/src/main/java/com/margelo/nitro/mmkv/NitroMmkvPackage.java +33 -0
- package/cpp/HybridMMKV.cpp +184 -0
- package/cpp/HybridMMKV.hpp +47 -0
- package/cpp/HybridMMKVFactory.cpp +33 -0
- package/cpp/HybridMMKVFactory.hpp +24 -0
- package/cpp/{MmkvTypes.h → MMKVTypes.hpp} +1 -1
- package/cpp/MMKVValueChangedListenerRegistry.cpp +58 -0
- package/cpp/MMKVValueChangedListenerRegistry.hpp +43 -0
- package/cpp/{ManagedMMBuffer.h → ManagedMMBuffer.hpp} +13 -5
- package/ios/HybridMMKVPlatformContext.swift +43 -0
- package/lib/__tests__/hooks.test.d.ts +1 -0
- package/lib/__tests__/hooks.test.js +69 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.d.ts +2 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.js +25 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.mock.d.ts +2 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.mock.js +3 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.web.d.ts +2 -0
- package/lib/addMemoryWarningListener/addMemoryWarningListener.web.js +3 -0
- package/lib/createMMKV/createMMKV.d.ts +3 -0
- package/lib/createMMKV/createMMKV.js +40 -0
- package/lib/createMMKV/createMMKV.web.d.ts +3 -0
- package/lib/createMMKV/createMMKV.web.js +117 -0
- package/lib/createMMKV/createMockMMKV.d.ts +5 -0
- package/lib/createMMKV/createMockMMKV.js +74 -0
- package/lib/createMMKV/getDefaultMMKVInstance.d.ts +2 -0
- package/lib/createMMKV/getDefaultMMKVInstance.js +8 -0
- package/lib/hooks/createMMKVHook.d.ts +2 -0
- package/lib/hooks/createMMKVHook.js +49 -0
- package/lib/hooks/useMMKV.d.ts +11 -0
- package/lib/hooks/useMMKV.js +23 -0
- package/lib/hooks/useMMKVBoolean.d.ts +11 -0
- package/lib/hooks/useMMKVBoolean.js +12 -0
- package/lib/hooks/useMMKVBuffer.d.ts +11 -0
- package/lib/hooks/useMMKVBuffer.js +12 -0
- package/lib/hooks/useMMKVKeys.d.ts +12 -0
- package/lib/hooks/useMMKVKeys.js +33 -0
- package/lib/hooks/useMMKVListener.d.ts +15 -0
- package/lib/hooks/useMMKVListener.js +26 -0
- package/lib/hooks/useMMKVNumber.d.ts +11 -0
- package/lib/hooks/useMMKVNumber.js +12 -0
- package/lib/hooks/useMMKVObject.d.ts +17 -0
- package/lib/hooks/useMMKVObject.js +38 -0
- package/lib/hooks/useMMKVString.d.ts +11 -0
- package/lib/hooks/useMMKVString.js +12 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.js +11 -0
- package/lib/isTest.d.ts +1 -0
- package/lib/isTest.js +7 -0
- package/lib/specs/MMKV.nitro.d.ts +94 -0
- package/lib/specs/MMKV.nitro.js +1 -0
- package/lib/{typescript/src/NativeMmkv.d.ts → specs/MMKVFactory.nitro.d.ts} +26 -33
- package/lib/specs/MMKVFactory.nitro.js +1 -0
- package/lib/specs/MMKVPlatformContext.nitro.d.ts +18 -0
- package/lib/specs/MMKVPlatformContext.nitro.js +1 -0
- package/lib/{typescript/src → web}/createTextEncoder.d.ts +0 -1
- package/lib/web/createTextEncoder.js +17 -0
- package/nitro.json +28 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroMmkv+autolinking.cmake +80 -0
- package/nitrogen/generated/android/NitroMmkv+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroMmkvOnLoad.cpp +54 -0
- package/nitrogen/generated/android/NitroMmkvOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JHybridMMKVPlatformContextSpec.cpp +52 -0
- package/nitrogen/generated/android/c++/JHybridMMKVPlatformContextSpec.hpp +65 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mmkv/HybridMMKVPlatformContextSpec.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mmkv/NitroMmkvOnLoad.kt +35 -0
- package/nitrogen/generated/ios/NitroMmkv+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroMmkv-Swift-Cxx-Bridge.cpp +32 -0
- package/nitrogen/generated/ios/NitroMmkv-Swift-Cxx-Bridge.hpp +77 -0
- package/nitrogen/generated/ios/NitroMmkv-Swift-Cxx-Umbrella.hpp +45 -0
- package/nitrogen/generated/ios/NitroMmkvAutolinking.mm +43 -0
- package/nitrogen/generated/ios/NitroMmkvAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridMMKVPlatformContextSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridMMKVPlatformContextSpecSwift.hpp +82 -0
- package/nitrogen/generated/ios/swift/HybridMMKVPlatformContextSpec.swift +50 -0
- package/nitrogen/generated/ios/swift/HybridMMKVPlatformContextSpec_cxx.swift +141 -0
- package/nitrogen/generated/shared/c++/Configuration.hpp +86 -0
- package/nitrogen/generated/shared/c++/HybridMMKVFactorySpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridMMKVFactorySpec.hpp +69 -0
- package/nitrogen/generated/shared/c++/HybridMMKVPlatformContextSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridMMKVPlatformContextSpec.hpp +64 -0
- package/nitrogen/generated/shared/c++/HybridMMKVSpec.cpp +34 -0
- package/nitrogen/generated/shared/c++/HybridMMKVSpec.hpp +83 -0
- package/nitrogen/generated/shared/c++/Listener.hpp +67 -0
- package/nitrogen/generated/shared/c++/Mode.hpp +76 -0
- package/package.json +74 -122
- package/react-native.config.js +2 -15
- package/src/__tests__/hooks.test.tsx +39 -34
- package/src/addMemoryWarningListener/addMemoryWarningListener.mock.ts +5 -0
- package/src/{MemoryWarningListener.ts → addMemoryWarningListener/addMemoryWarningListener.ts} +12 -12
- package/src/addMemoryWarningListener/addMemoryWarningListener.web.ts +5 -0
- package/src/createMMKV/createMMKV.ts +51 -0
- package/src/{createMMKV.web.ts → createMMKV/createMMKV.web.ts} +58 -46
- package/src/createMMKV/createMockMMKV.ts +78 -0
- package/src/createMMKV/getDefaultMMKVInstance.ts +10 -0
- package/src/hooks/createMMKVHook.ts +66 -0
- package/src/hooks/useMMKV.ts +45 -0
- package/src/hooks/useMMKVBoolean.ts +15 -0
- package/src/hooks/useMMKVBuffer.ts +15 -0
- package/src/hooks/useMMKVKeys.ts +36 -0
- package/src/hooks/useMMKVListener.ts +33 -0
- package/src/hooks/useMMKVNumber.ts +15 -0
- package/src/hooks/useMMKVObject.ts +53 -0
- package/src/hooks/useMMKVString.ts +15 -0
- package/src/index.ts +15 -3
- package/src/{PlatformChecker.ts → isTest.ts} +2 -2
- package/src/specs/MMKV.nitro.ts +93 -0
- package/src/specs/MMKVFactory.nitro.ts +87 -0
- package/src/specs/MMKVPlatformContext.nitro.ts +17 -0
- package/src/{createTextEncoder.ts → web/createTextEncoder.ts} +7 -7
- package/android/src/main/cpp/AndroidLogger.cpp +0 -16
- package/android/src/main/java/com/mrousavy/mmkv/MmkvPackage.java +0 -44
- package/android/src/main/java/com/mrousavy/mmkv/MmkvPlatformContextModule.java +0 -26
- package/cpp/MmkvHostObject.cpp +0 -360
- package/cpp/MmkvHostObject.h +0 -31
- package/cpp/MmkvLogger.h +0 -35
- package/cpp/NativeMmkvModule.cpp +0 -43
- package/cpp/NativeMmkvModule.h +0 -31
- package/ios/AppleLogger.mm +0 -16
- package/ios/MmkvOnLoad.mm +0 -25
- package/ios/MmkvPlatformContext.h +0 -19
- package/ios/MmkvPlatformContextModule.mm +0 -55
- package/lib/commonjs/MMKV.js +0 -124
- package/lib/commonjs/MMKV.js.map +0 -1
- package/lib/commonjs/MemoryWarningListener.js +0 -31
- package/lib/commonjs/MemoryWarningListener.js.map +0 -1
- package/lib/commonjs/MemoryWarningListener.web.js +0 -11
- package/lib/commonjs/MemoryWarningListener.web.js.map +0 -1
- package/lib/commonjs/ModuleNotFoundError.js +0 -75
- package/lib/commonjs/ModuleNotFoundError.js.map +0 -1
- package/lib/commonjs/NativeMmkv.js +0 -47
- package/lib/commonjs/NativeMmkv.js.map +0 -1
- package/lib/commonjs/NativeMmkvPlatformContext.js +0 -22
- package/lib/commonjs/NativeMmkvPlatformContext.js.map +0 -1
- package/lib/commonjs/PlatformChecker.js +0 -14
- package/lib/commonjs/PlatformChecker.js.map +0 -1
- package/lib/commonjs/Types.js +0 -26
- package/lib/commonjs/Types.js.map +0 -1
- package/lib/commonjs/createMMKV.js +0 -43
- package/lib/commonjs/createMMKV.js.map +0 -1
- package/lib/commonjs/createMMKV.mock.js +0 -43
- package/lib/commonjs/createMMKV.mock.js.map +0 -1
- package/lib/commonjs/createMMKV.web.js +0 -110
- package/lib/commonjs/createMMKV.web.js.map +0 -1
- package/lib/commonjs/createTextEncoder.js +0 -23
- package/lib/commonjs/createTextEncoder.js.map +0 -1
- package/lib/commonjs/hooks.js +0 -198
- package/lib/commonjs/hooks.js.map +0 -1
- package/lib/commonjs/index.js +0 -40
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/package.json +0 -1
- package/lib/module/MMKV.js +0 -119
- package/lib/module/MMKV.js.map +0 -1
- package/lib/module/MemoryWarningListener.js +0 -27
- package/lib/module/MemoryWarningListener.js.map +0 -1
- package/lib/module/MemoryWarningListener.web.js +0 -6
- package/lib/module/MemoryWarningListener.web.js.map +0 -1
- package/lib/module/ModuleNotFoundError.js +0 -70
- package/lib/module/ModuleNotFoundError.js.map +0 -1
- package/lib/module/NativeMmkv.js +0 -45
- package/lib/module/NativeMmkv.js.map +0 -1
- package/lib/module/NativeMmkvPlatformContext.js +0 -18
- package/lib/module/NativeMmkvPlatformContext.js.map +0 -1
- package/lib/module/PlatformChecker.js +0 -10
- package/lib/module/PlatformChecker.js.map +0 -1
- package/lib/module/Types.js +0 -25
- package/lib/module/Types.js.map +0 -1
- package/lib/module/createMMKV.js +0 -38
- package/lib/module/createMMKV.js.map +0 -1
- package/lib/module/createMMKV.mock.js +0 -38
- package/lib/module/createMMKV.mock.js.map +0 -1
- package/lib/module/createMMKV.web.js +0 -105
- package/lib/module/createMMKV.web.js.map +0 -1
- package/lib/module/createTextEncoder.js +0 -19
- package/lib/module/createTextEncoder.js.map +0 -1
- package/lib/module/hooks.js +0 -189
- package/lib/module/hooks.js.map +0 -1
- package/lib/module/index.js +0 -6
- package/lib/module/index.js.map +0 -1
- package/lib/module/package.json +0 -1
- package/lib/typescript/src/MMKV.d.ts +0 -34
- package/lib/typescript/src/MMKV.d.ts.map +0 -1
- package/lib/typescript/src/MemoryWarningListener.d.ts +0 -3
- package/lib/typescript/src/MemoryWarningListener.d.ts.map +0 -1
- package/lib/typescript/src/MemoryWarningListener.web.d.ts +0 -3
- package/lib/typescript/src/MemoryWarningListener.web.d.ts.map +0 -1
- package/lib/typescript/src/ModuleNotFoundError.d.ts +0 -7
- package/lib/typescript/src/ModuleNotFoundError.d.ts.map +0 -1
- package/lib/typescript/src/NativeMmkv.d.ts.map +0 -1
- package/lib/typescript/src/NativeMmkvPlatformContext.d.ts +0 -20
- package/lib/typescript/src/NativeMmkvPlatformContext.d.ts.map +0 -1
- package/lib/typescript/src/PlatformChecker.d.ts +0 -2
- package/lib/typescript/src/PlatformChecker.d.ts.map +0 -1
- package/lib/typescript/src/Types.d.ts +0 -172
- package/lib/typescript/src/Types.d.ts.map +0 -1
- package/lib/typescript/src/__tests__/hooks.test.d.ts +0 -2
- package/lib/typescript/src/__tests__/hooks.test.d.ts.map +0 -1
- package/lib/typescript/src/createMMKV.d.ts +0 -3
- package/lib/typescript/src/createMMKV.d.ts.map +0 -1
- package/lib/typescript/src/createMMKV.mock.d.ts +0 -3
- package/lib/typescript/src/createMMKV.mock.d.ts.map +0 -1
- package/lib/typescript/src/createMMKV.web.d.ts +0 -3
- package/lib/typescript/src/createMMKV.web.d.ts.map +0 -1
- package/lib/typescript/src/createTextEncoder.d.ts.map +0 -1
- package/lib/typescript/src/hooks.d.ts +0 -86
- package/lib/typescript/src/hooks.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -4
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/react-native-mmkv.podspec +0 -32
- package/src/MMKV.ts +0 -142
- package/src/MemoryWarningListener.web.ts +0 -5
- package/src/ModuleNotFoundError.ts +0 -95
- package/src/NativeMmkv.ts +0 -118
- package/src/NativeMmkvPlatformContext.ts +0 -38
- package/src/Types.ts +0 -178
- package/src/createMMKV.mock.ts +0 -38
- package/src/createMMKV.ts +0 -42
- package/src/hooks.ts +0 -247
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createMMKV = void 0;
|
|
7
|
-
var _reactNative = require("react-native");
|
|
8
|
-
var _NativeMmkv = require("./NativeMmkv");
|
|
9
|
-
var _Types = require("./Types");
|
|
10
|
-
var _NativeMmkvPlatformContext = require("./NativeMmkvPlatformContext");
|
|
11
|
-
const createMMKV = config => {
|
|
12
|
-
const module = (0, _NativeMmkv.getMMKVTurboModule)();
|
|
13
|
-
if (_reactNative.Platform.OS === 'ios') {
|
|
14
|
-
if (config.path == null) {
|
|
15
|
-
try {
|
|
16
|
-
// If no `path` was supplied, we check if an `AppGroup` was set in Info.plist
|
|
17
|
-
const appGroupDirectory = (0, _NativeMmkvPlatformContext.getMMKVPlatformContextTurboModule)().getAppGroupDirectory();
|
|
18
|
-
if (appGroupDirectory != null) {
|
|
19
|
-
// If we have an `AppGroup` in Info.plist, use that as a path.
|
|
20
|
-
config.path = appGroupDirectory;
|
|
21
|
-
}
|
|
22
|
-
} catch (e) {
|
|
23
|
-
// We cannot throw errors here because it is a sync C++ TurboModule func. idk why.
|
|
24
|
-
console.error(e);
|
|
25
|
-
}
|
|
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
|
-
}
|
|
34
|
-
const instance = module.createMMKV(config);
|
|
35
|
-
if (__DEV__) {
|
|
36
|
-
if (typeof instance !== 'object' || instance == null) {
|
|
37
|
-
throw new Error('Failed to create MMKV instance - an unknown object was returned by createMMKV(..)!');
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return instance;
|
|
41
|
-
};
|
|
42
|
-
exports.createMMKV = createMMKV;
|
|
43
|
-
//# sourceMappingURL=createMMKV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createMockMMKV = void 0;
|
|
7
|
-
/* Mock MMKV instance for use in tests */
|
|
8
|
-
const createMockMMKV = () => {
|
|
9
|
-
const storage = new Map();
|
|
10
|
-
return {
|
|
11
|
-
clearAll: () => storage.clear(),
|
|
12
|
-
delete: key => storage.delete(key),
|
|
13
|
-
set: (key, value) => storage.set(key, value),
|
|
14
|
-
getString: key => {
|
|
15
|
-
const result = storage.get(key);
|
|
16
|
-
return typeof result === 'string' ? result : undefined;
|
|
17
|
-
},
|
|
18
|
-
getNumber: key => {
|
|
19
|
-
const result = storage.get(key);
|
|
20
|
-
return typeof result === 'number' ? result : undefined;
|
|
21
|
-
},
|
|
22
|
-
getBoolean: key => {
|
|
23
|
-
const result = storage.get(key);
|
|
24
|
-
return typeof result === 'boolean' ? result : undefined;
|
|
25
|
-
},
|
|
26
|
-
getBuffer: key => {
|
|
27
|
-
const result = storage.get(key);
|
|
28
|
-
return result instanceof ArrayBuffer ? result : undefined;
|
|
29
|
-
},
|
|
30
|
-
getAllKeys: () => Array.from(storage.keys()),
|
|
31
|
-
contains: key => storage.has(key),
|
|
32
|
-
recrypt: () => {
|
|
33
|
-
console.warn('Encryption is not supported in mocked MMKV instances!');
|
|
34
|
-
},
|
|
35
|
-
size: 0,
|
|
36
|
-
isReadOnly: false,
|
|
37
|
-
trim: () => {
|
|
38
|
-
// no-op
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
exports.createMockMMKV = createMockMMKV;
|
|
43
|
-
//# sourceMappingURL=createMMKV.mock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,110 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createMMKV = void 0;
|
|
7
|
-
var _createTextEncoder = require("./createTextEncoder");
|
|
8
|
-
/* global localStorage */
|
|
9
|
-
|
|
10
|
-
const canUseDOM = typeof window !== 'undefined' && window.document?.createElement != null;
|
|
11
|
-
const hasAccessToLocalStorage = () => {
|
|
12
|
-
try {
|
|
13
|
-
// throws ACCESS_DENIED error
|
|
14
|
-
window.localStorage;
|
|
15
|
-
return true;
|
|
16
|
-
} catch {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
const KEY_WILDCARD = '\\';
|
|
21
|
-
const inMemoryStorage = new Map();
|
|
22
|
-
const createMMKV = config => {
|
|
23
|
-
if (config.encryptionKey != null) {
|
|
24
|
-
throw new Error("MMKV: 'encryptionKey' is not supported on Web!");
|
|
25
|
-
}
|
|
26
|
-
if (config.path != null) {
|
|
27
|
-
throw new Error("MMKV: 'path' is not supported on Web!");
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// canUseDOM check prevents spam in Node server environments, such as Next.js server side props.
|
|
31
|
-
if (!hasAccessToLocalStorage() && canUseDOM) {
|
|
32
|
-
console.warn('MMKV: LocalStorage has been disabled. Your experience will be limited to in-memory storage!');
|
|
33
|
-
}
|
|
34
|
-
const storage = () => {
|
|
35
|
-
if (!canUseDOM) {
|
|
36
|
-
throw new Error('Tried to access storage on the server. Did you forget to call this in useEffect?');
|
|
37
|
-
}
|
|
38
|
-
if (!hasAccessToLocalStorage()) {
|
|
39
|
-
return {
|
|
40
|
-
getItem: key => inMemoryStorage.get(key) ?? null,
|
|
41
|
-
setItem: (key, value) => inMemoryStorage.set(key, value),
|
|
42
|
-
removeItem: key => inMemoryStorage.delete(key),
|
|
43
|
-
clear: () => inMemoryStorage.clear(),
|
|
44
|
-
length: inMemoryStorage.size,
|
|
45
|
-
key: index => Object.keys(inMemoryStorage).at(index) ?? null
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
const domStorage = global?.localStorage ?? window?.localStorage ?? localStorage;
|
|
49
|
-
if (domStorage == null) {
|
|
50
|
-
throw new Error(`Could not find 'localStorage' instance!`);
|
|
51
|
-
}
|
|
52
|
-
return domStorage;
|
|
53
|
-
};
|
|
54
|
-
const textEncoder = (0, _createTextEncoder.createTextEncoder)();
|
|
55
|
-
if (config.id.includes(KEY_WILDCARD)) {
|
|
56
|
-
throw new Error('MMKV: `id` cannot contain the backslash character (`\\`)!');
|
|
57
|
-
}
|
|
58
|
-
const keyPrefix = `${config.id}${KEY_WILDCARD}`; // mmkv.default\\
|
|
59
|
-
const prefixedKey = key => {
|
|
60
|
-
if (key.includes('\\')) {
|
|
61
|
-
throw new Error('MMKV: `key` cannot contain the backslash character (`\\`)!');
|
|
62
|
-
}
|
|
63
|
-
return `${keyPrefix}${key}`;
|
|
64
|
-
};
|
|
65
|
-
return {
|
|
66
|
-
clearAll: () => {
|
|
67
|
-
const keys = Object.keys(storage());
|
|
68
|
-
for (const key of keys) {
|
|
69
|
-
if (key.startsWith(keyPrefix)) {
|
|
70
|
-
storage().removeItem(key);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
delete: key => storage().removeItem(prefixedKey(key)),
|
|
75
|
-
set: (key, value) => {
|
|
76
|
-
storage().setItem(prefixedKey(key), value.toString());
|
|
77
|
-
},
|
|
78
|
-
getString: key => storage().getItem(prefixedKey(key)) ?? undefined,
|
|
79
|
-
getNumber: key => {
|
|
80
|
-
const value = storage().getItem(prefixedKey(key));
|
|
81
|
-
if (value == null) return undefined;
|
|
82
|
-
return Number(value);
|
|
83
|
-
},
|
|
84
|
-
getBoolean: key => {
|
|
85
|
-
const value = storage().getItem(prefixedKey(key));
|
|
86
|
-
if (value == null) return undefined;
|
|
87
|
-
return value === 'true';
|
|
88
|
-
},
|
|
89
|
-
getBuffer: key => {
|
|
90
|
-
const value = storage().getItem(prefixedKey(key));
|
|
91
|
-
if (value == null) return undefined;
|
|
92
|
-
return textEncoder.encode(value).buffer;
|
|
93
|
-
},
|
|
94
|
-
getAllKeys: () => {
|
|
95
|
-
const keys = Object.keys(storage());
|
|
96
|
-
return keys.filter(key => key.startsWith(keyPrefix)).map(key => key.slice(keyPrefix.length));
|
|
97
|
-
},
|
|
98
|
-
contains: key => storage().getItem(prefixedKey(key)) != null,
|
|
99
|
-
recrypt: () => {
|
|
100
|
-
throw new Error('`recrypt(..)` is not supported on Web!');
|
|
101
|
-
},
|
|
102
|
-
size: 0,
|
|
103
|
-
isReadOnly: false,
|
|
104
|
-
trim: () => {
|
|
105
|
-
// no-op
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
exports.createMMKV = createMMKV;
|
|
110
|
-
//# sourceMappingURL=createMMKV.web.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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","buffer","getAllKeys","filter","map","slice","contains","recrypt","isReadOnly","trim","exports"],"sourceRoot":"../../src","sources":["createMMKV.web.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createTextEncoder = createTextEncoder;
|
|
7
|
-
/* global TextEncoder */
|
|
8
|
-
function createTextEncoder() {
|
|
9
|
-
if (global.TextEncoder != null) {
|
|
10
|
-
return new global.TextEncoder();
|
|
11
|
-
} else {
|
|
12
|
-
return {
|
|
13
|
-
encode: () => {
|
|
14
|
-
throw new Error('TextEncoder is not supported in this environment!');
|
|
15
|
-
},
|
|
16
|
-
encodeInto: () => {
|
|
17
|
-
throw new Error('TextEncoder is not supported in this environment!');
|
|
18
|
-
},
|
|
19
|
-
encoding: 'utf-8'
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=createTextEncoder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createTextEncoder","global","TextEncoder","encode","Error","encodeInto","encoding"],"sourceRoot":"../../src","sources":["createTextEncoder.ts"],"mappings":";;;;;;AAAA;AACO,SAASA,iBAAiBA,CAAA,EAAgB;EAC/C,IAAIC,MAAM,CAACC,WAAW,IAAI,IAAI,EAAE;IAC9B,OAAO,IAAID,MAAM,CAACC,WAAW,CAAC,CAAC;EACjC,CAAC,MAAM;IACL,OAAO;MACLC,MAAM,EAAEA,CAAA,KAAM;QACZ,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;MACtE,CAAC;MACDC,UAAU,EAAEA,CAAA,KAAM;QAChB,MAAM,IAAID,KAAK,CAAC,mDAAmD,CAAC;MACtE,CAAC;MACDE,QAAQ,EAAE;IACZ,CAAC;EACH;AACF","ignoreList":[]}
|
package/lib/commonjs/hooks.js
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useMMKV = useMMKV;
|
|
7
|
-
exports.useMMKVBuffer = exports.useMMKVBoolean = void 0;
|
|
8
|
-
exports.useMMKVListener = useMMKVListener;
|
|
9
|
-
exports.useMMKVNumber = void 0;
|
|
10
|
-
exports.useMMKVObject = useMMKVObject;
|
|
11
|
-
exports.useMMKVString = void 0;
|
|
12
|
-
var _react = require("react");
|
|
13
|
-
var _MMKV = require("./MMKV");
|
|
14
|
-
function isConfigurationEqual(left, right) {
|
|
15
|
-
if (left == null || right == null) return left == null && right == null;
|
|
16
|
-
return left.encryptionKey === right.encryptionKey && left.id === right.id && left.path === right.path && left.mode === right.mode;
|
|
17
|
-
}
|
|
18
|
-
let defaultInstance = null;
|
|
19
|
-
function getDefaultInstance() {
|
|
20
|
-
if (defaultInstance == null) {
|
|
21
|
-
defaultInstance = new _MMKV.MMKV();
|
|
22
|
-
}
|
|
23
|
-
return defaultInstance;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Use the default, shared MMKV instance.
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Use a custom MMKV instance with the given configuration.
|
|
32
|
-
* @param configuration The configuration to initialize the MMKV instance with. Does not have to be memoized.
|
|
33
|
-
*/
|
|
34
|
-
|
|
35
|
-
function useMMKV(configuration) {
|
|
36
|
-
const instance = (0, _react.useRef)(undefined);
|
|
37
|
-
const lastConfiguration = (0, _react.useRef)(undefined);
|
|
38
|
-
if (configuration == null) return getDefaultInstance();
|
|
39
|
-
if (instance.current == null || !isConfigurationEqual(lastConfiguration.current, configuration)) {
|
|
40
|
-
lastConfiguration.current = configuration;
|
|
41
|
-
instance.current = new _MMKV.MMKV(configuration);
|
|
42
|
-
}
|
|
43
|
-
return instance.current;
|
|
44
|
-
}
|
|
45
|
-
function createMMKVHook(getter) {
|
|
46
|
-
return (key, instance) => {
|
|
47
|
-
const mmkv = instance ?? getDefaultInstance();
|
|
48
|
-
const [bump, setBump] = (0, _react.useState)(0);
|
|
49
|
-
const value = (0, _react.useMemo)(() => {
|
|
50
|
-
// bump is here as an additional outside dependency, so this useMemo
|
|
51
|
-
// re-computes the value each time bump changes, effectively acting as a hint
|
|
52
|
-
// that the outside value (storage) has changed. setting bump refreshes this value.
|
|
53
|
-
bump;
|
|
54
|
-
return getter(mmkv, key);
|
|
55
|
-
}, [mmkv, key, bump]);
|
|
56
|
-
|
|
57
|
-
// update value by user set
|
|
58
|
-
const set = (0, _react.useCallback)(v => {
|
|
59
|
-
const newValue = typeof v === 'function' ? v(getter(mmkv, key)) : v;
|
|
60
|
-
switch (typeof newValue) {
|
|
61
|
-
case 'number':
|
|
62
|
-
case 'string':
|
|
63
|
-
case 'boolean':
|
|
64
|
-
mmkv.set(key, newValue);
|
|
65
|
-
break;
|
|
66
|
-
case 'undefined':
|
|
67
|
-
mmkv.delete(key);
|
|
68
|
-
break;
|
|
69
|
-
case 'object':
|
|
70
|
-
if (newValue instanceof ArrayBuffer) {
|
|
71
|
-
mmkv.set(key, newValue);
|
|
72
|
-
break;
|
|
73
|
-
} else {
|
|
74
|
-
throw new Error(`MMKV: Type object (${newValue}) is not supported!`);
|
|
75
|
-
}
|
|
76
|
-
default:
|
|
77
|
-
throw new Error(`MMKV: Type ${typeof newValue} is not supported!`);
|
|
78
|
-
}
|
|
79
|
-
}, [key, mmkv]);
|
|
80
|
-
|
|
81
|
-
// update value if it changes somewhere else (second hook, same key)
|
|
82
|
-
(0, _react.useEffect)(() => {
|
|
83
|
-
const listener = mmkv.addOnValueChangedListener(changedKey => {
|
|
84
|
-
if (changedKey === key) {
|
|
85
|
-
setBump(b => b + 1);
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
return () => listener.remove();
|
|
89
|
-
}, [key, mmkv]);
|
|
90
|
-
return [value, set];
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Use the string value of the given `key` from the given MMKV storage instance.
|
|
96
|
-
*
|
|
97
|
-
* If no instance is provided, a shared default instance will be used.
|
|
98
|
-
*
|
|
99
|
-
* @example
|
|
100
|
-
* ```ts
|
|
101
|
-
* const [username, setUsername] = useMMKVString("user.name")
|
|
102
|
-
* ```
|
|
103
|
-
*/
|
|
104
|
-
const useMMKVString = exports.useMMKVString = createMMKVHook((instance, key) => instance.getString(key));
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Use the number value of the given `key` from the given MMKV storage instance.
|
|
108
|
-
*
|
|
109
|
-
* If no instance is provided, a shared default instance will be used.
|
|
110
|
-
*
|
|
111
|
-
* @example
|
|
112
|
-
* ```ts
|
|
113
|
-
* const [age, setAge] = useMMKVNumber("user.age")
|
|
114
|
-
* ```
|
|
115
|
-
*/
|
|
116
|
-
const useMMKVNumber = exports.useMMKVNumber = createMMKVHook((instance, key) => instance.getNumber(key));
|
|
117
|
-
/**
|
|
118
|
-
* Use the boolean value of the given `key` from the given MMKV storage instance.
|
|
119
|
-
*
|
|
120
|
-
* If no instance is provided, a shared default instance will be used.
|
|
121
|
-
*
|
|
122
|
-
* @example
|
|
123
|
-
* ```ts
|
|
124
|
-
* const [isPremiumAccount, setIsPremiumAccount] = useMMKVBoolean("user.isPremium")
|
|
125
|
-
* ```
|
|
126
|
-
*/
|
|
127
|
-
const useMMKVBoolean = exports.useMMKVBoolean = createMMKVHook((instance, key) => instance.getBoolean(key));
|
|
128
|
-
/**
|
|
129
|
-
* Use the buffer value (unsigned 8-bit (0-255)) of the given `key` from the given MMKV storage instance.
|
|
130
|
-
*
|
|
131
|
-
* If no instance is provided, a shared default instance will be used.
|
|
132
|
-
*
|
|
133
|
-
* @example
|
|
134
|
-
* ```ts
|
|
135
|
-
* const [privateKey, setPrivateKey] = useMMKVBuffer("user.privateKey")
|
|
136
|
-
* ```
|
|
137
|
-
*/
|
|
138
|
-
const useMMKVBuffer = exports.useMMKVBuffer = createMMKVHook((instance, key) => instance.getBuffer(key));
|
|
139
|
-
/**
|
|
140
|
-
* Use an object value of the given `key` from the given MMKV storage instance.
|
|
141
|
-
*
|
|
142
|
-
* If no instance is provided, a shared default instance will be used.
|
|
143
|
-
*
|
|
144
|
-
* The object will be serialized using `JSON`.
|
|
145
|
-
*
|
|
146
|
-
* @example
|
|
147
|
-
* ```ts
|
|
148
|
-
* const [user, setUser] = useMMKVObject<User>("user")
|
|
149
|
-
* ```
|
|
150
|
-
*/
|
|
151
|
-
function useMMKVObject(key, instance) {
|
|
152
|
-
const [json, setJson] = useMMKVString(key, instance);
|
|
153
|
-
const value = (0, _react.useMemo)(() => {
|
|
154
|
-
if (json == null) return undefined;
|
|
155
|
-
return JSON.parse(json);
|
|
156
|
-
}, [json]);
|
|
157
|
-
const setValue = (0, _react.useCallback)(v => {
|
|
158
|
-
if (v instanceof Function) {
|
|
159
|
-
setJson(currentJson => {
|
|
160
|
-
const currentValue = currentJson != null ? JSON.parse(currentJson) : undefined;
|
|
161
|
-
const newValue = v(currentValue);
|
|
162
|
-
// Store the Object as a serialized Value or clear the value
|
|
163
|
-
return newValue != null ? JSON.stringify(newValue) : undefined;
|
|
164
|
-
});
|
|
165
|
-
} else {
|
|
166
|
-
// Store the Object as a serialized Value or clear the value
|
|
167
|
-
const newValue = v != null ? JSON.stringify(v) : undefined;
|
|
168
|
-
setJson(newValue);
|
|
169
|
-
}
|
|
170
|
-
}, [setJson]);
|
|
171
|
-
return [value, setValue];
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Listen for changes in the given MMKV storage instance.
|
|
176
|
-
* If no instance is passed, the default instance will be used.
|
|
177
|
-
* @param valueChangedListener The function to call whenever a value inside the storage instance changes
|
|
178
|
-
* @param instance The instance to listen to changes to (or the default instance)
|
|
179
|
-
*
|
|
180
|
-
* @example
|
|
181
|
-
* ```ts
|
|
182
|
-
* useMMKVListener((key) => {
|
|
183
|
-
* console.log(`Value for "${key}" changed!`)
|
|
184
|
-
* })
|
|
185
|
-
* ```
|
|
186
|
-
*/
|
|
187
|
-
function useMMKVListener(valueChangedListener, instance) {
|
|
188
|
-
const ref = (0, _react.useRef)(valueChangedListener);
|
|
189
|
-
ref.current = valueChangedListener;
|
|
190
|
-
const mmkv = instance ?? getDefaultInstance();
|
|
191
|
-
(0, _react.useEffect)(() => {
|
|
192
|
-
const listener = mmkv.addOnValueChangedListener(changedKey => {
|
|
193
|
-
ref.current(changedKey);
|
|
194
|
-
});
|
|
195
|
-
return () => listener.remove();
|
|
196
|
-
}, [mmkv]);
|
|
197
|
-
}
|
|
198
|
-
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","mode","defaultInstance","getDefaultInstance","MMKV","useMMKV","configuration","instance","useRef","undefined","lastConfiguration","current","createMMKVHook","getter","key","mmkv","bump","setBump","useState","value","useMemo","set","useCallback","v","newValue","delete","ArrayBuffer","Error","useEffect","listener","addOnValueChangedListener","changedKey","b","remove","useMMKVString","exports","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","JSON","parse","setValue","Function","currentJson","currentValue","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
var _exportNames = {
|
|
7
|
-
Mode: true
|
|
8
|
-
};
|
|
9
|
-
Object.defineProperty(exports, "Mode", {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: function () {
|
|
12
|
-
return _Types.Mode;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
var _MMKV = require("./MMKV");
|
|
16
|
-
Object.keys(_MMKV).forEach(function (key) {
|
|
17
|
-
if (key === "default" || key === "__esModule") return;
|
|
18
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
19
|
-
if (key in exports && exports[key] === _MMKV[key]) return;
|
|
20
|
-
Object.defineProperty(exports, key, {
|
|
21
|
-
enumerable: true,
|
|
22
|
-
get: function () {
|
|
23
|
-
return _MMKV[key];
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
var _hooks = require("./hooks");
|
|
28
|
-
Object.keys(_hooks).forEach(function (key) {
|
|
29
|
-
if (key === "default" || key === "__esModule") return;
|
|
30
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
31
|
-
if (key in exports && exports[key] === _hooks[key]) return;
|
|
32
|
-
Object.defineProperty(exports, key, {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function () {
|
|
35
|
-
return _hooks[key];
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
var _Types = require("./Types");
|
|
40
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"type":"commonjs"}
|
package/lib/module/MMKV.js
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { createMMKV } from './createMMKV';
|
|
4
|
-
import { createMockMMKV } from './createMMKV.mock';
|
|
5
|
-
import { isTest } from './PlatformChecker';
|
|
6
|
-
import { addMemoryWarningListener } from './MemoryWarningListener';
|
|
7
|
-
const onValueChangedListeners = new Map();
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* A single MMKV instance.
|
|
11
|
-
*/
|
|
12
|
-
export class MMKV {
|
|
13
|
-
/**
|
|
14
|
-
* Creates a new MMKV instance with the given Configuration.
|
|
15
|
-
* If no custom `id` is supplied, `'mmkv.default'` will be used.
|
|
16
|
-
*/
|
|
17
|
-
constructor(configuration = {
|
|
18
|
-
id: 'mmkv.default'
|
|
19
|
-
}) {
|
|
20
|
-
this.id = configuration.id;
|
|
21
|
-
this.nativeInstance = isTest() ? createMockMMKV() : createMMKV(configuration);
|
|
22
|
-
this.functionCache = {};
|
|
23
|
-
addMemoryWarningListener(this);
|
|
24
|
-
}
|
|
25
|
-
get onValueChangedListeners() {
|
|
26
|
-
if (!onValueChangedListeners.has(this.id)) {
|
|
27
|
-
onValueChangedListeners.set(this.id, []);
|
|
28
|
-
}
|
|
29
|
-
return onValueChangedListeners.get(this.id);
|
|
30
|
-
}
|
|
31
|
-
getFunctionFromCache(functionName) {
|
|
32
|
-
if (this.functionCache[functionName] == null) {
|
|
33
|
-
this.functionCache[functionName] = this.nativeInstance[functionName];
|
|
34
|
-
}
|
|
35
|
-
return this.functionCache[functionName];
|
|
36
|
-
}
|
|
37
|
-
onValuesChanged(keys) {
|
|
38
|
-
if (this.onValueChangedListeners.length === 0) return;
|
|
39
|
-
for (const key of keys) {
|
|
40
|
-
for (const listener of this.onValueChangedListeners) {
|
|
41
|
-
listener(key);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
get size() {
|
|
46
|
-
return this.nativeInstance.size;
|
|
47
|
-
}
|
|
48
|
-
get isReadOnly() {
|
|
49
|
-
return this.nativeInstance.isReadOnly;
|
|
50
|
-
}
|
|
51
|
-
set(key, value) {
|
|
52
|
-
const func = this.getFunctionFromCache('set');
|
|
53
|
-
func(key, value);
|
|
54
|
-
this.onValuesChanged([key]);
|
|
55
|
-
}
|
|
56
|
-
getBoolean(key) {
|
|
57
|
-
const func = this.getFunctionFromCache('getBoolean');
|
|
58
|
-
return func(key);
|
|
59
|
-
}
|
|
60
|
-
getString(key) {
|
|
61
|
-
const func = this.getFunctionFromCache('getString');
|
|
62
|
-
return func(key);
|
|
63
|
-
}
|
|
64
|
-
getNumber(key) {
|
|
65
|
-
const func = this.getFunctionFromCache('getNumber');
|
|
66
|
-
return func(key);
|
|
67
|
-
}
|
|
68
|
-
getBuffer(key) {
|
|
69
|
-
const func = this.getFunctionFromCache('getBuffer');
|
|
70
|
-
return func(key);
|
|
71
|
-
}
|
|
72
|
-
contains(key) {
|
|
73
|
-
const func = this.getFunctionFromCache('contains');
|
|
74
|
-
return func(key);
|
|
75
|
-
}
|
|
76
|
-
delete(key) {
|
|
77
|
-
const func = this.getFunctionFromCache('delete');
|
|
78
|
-
func(key);
|
|
79
|
-
this.onValuesChanged([key]);
|
|
80
|
-
}
|
|
81
|
-
getAllKeys() {
|
|
82
|
-
const func = this.getFunctionFromCache('getAllKeys');
|
|
83
|
-
return func();
|
|
84
|
-
}
|
|
85
|
-
clearAll() {
|
|
86
|
-
const keys = this.getAllKeys();
|
|
87
|
-
const func = this.getFunctionFromCache('clearAll');
|
|
88
|
-
func();
|
|
89
|
-
this.onValuesChanged(keys);
|
|
90
|
-
}
|
|
91
|
-
recrypt(key) {
|
|
92
|
-
const func = this.getFunctionFromCache('recrypt');
|
|
93
|
-
return func(key);
|
|
94
|
-
}
|
|
95
|
-
trim() {
|
|
96
|
-
const func = this.getFunctionFromCache('trim');
|
|
97
|
-
func();
|
|
98
|
-
}
|
|
99
|
-
toString() {
|
|
100
|
-
return `MMKV (${this.id}): [${this.getAllKeys().join(', ')}]`;
|
|
101
|
-
}
|
|
102
|
-
toJSON() {
|
|
103
|
-
return {
|
|
104
|
-
[this.id]: this.getAllKeys()
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
addOnValueChangedListener(onValueChanged) {
|
|
108
|
-
this.onValueChangedListeners.push(onValueChanged);
|
|
109
|
-
return {
|
|
110
|
-
remove: () => {
|
|
111
|
-
const index = this.onValueChangedListeners.indexOf(onValueChanged);
|
|
112
|
-
if (index !== -1) {
|
|
113
|
-
this.onValueChangedListeners.splice(index, 1);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=MMKV.js.map
|
package/lib/module/MMKV.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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":[]}
|
|
@@ -1,27 +0,0 @@
|
|
|
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
|