react-native-mmkv 3.0.0-beta.2 → 3.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/MMKV/Core/CMakeLists.txt +12 -4
  2. package/MMKV/Core/Core.xcodeproj/project.pbxproj +13 -4
  3. package/MMKV/Core/Core.xcodeproj/xcshareddata/xcschemes/Core.xcscheme +1 -1
  4. package/MMKV/Core/Core.xcodeproj/xcshareddata/xcschemes/MMKVWatchCore.xcscheme +1 -1
  5. package/MMKV/Core/MMKV.cpp +3 -4
  6. package/MMKV/Core/MMKVLog_Android.cpp +56 -1
  7. package/MMKV/Core/MMKVPredef.h +8 -1
  8. package/MMKV/Core/MMKV_Android.cpp +3 -3
  9. package/MMKV/Core/MMKV_IO.cpp +1 -1
  10. package/MMKV/Core/MemoryFile.cpp +33 -2
  11. package/MMKV/Core/MemoryFile.h +1 -0
  12. package/MMKV/Core/MemoryFile_Android.cpp +13 -3
  13. package/MMKV/Core/MemoryFile_Linux.cpp +8 -3
  14. package/MMKV/Core/MemoryFile_Win32.cpp +3 -3
  15. package/MMKV/Core/ThreadLock.cpp +9 -5
  16. package/MMKV/Core/ThreadLock.h +2 -3
  17. package/MMKV/Core/aes/AESCrypt.h +1 -0
  18. package/MMKV/Core/aes/openssl/openssl_aes.h +12 -0
  19. package/MMKV/Core/aes/openssl/openssl_aes_core.cpp +4 -4
  20. package/MMKV/Core/core.vcxproj +102 -0
  21. package/MMKV/Core/crc32/Checksum.h +5 -0
  22. package/MMKV/Core/crc32/crc32_armv8.cpp +3 -1
  23. package/MMKV/Core/crc32/zlib/CMakeLists.txt +60 -0
  24. package/MMKV/LICENSE.TXT +193 -0
  25. package/MMKV/README.md +74 -10
  26. package/README.md +12 -5
  27. package/cpp/MmkvHostObject.cpp +1 -0
  28. package/cpp/NativeMmkvModule.cpp +2 -5
  29. package/lib/commonjs/LazyTurboModule.js +26 -9
  30. package/lib/commonjs/LazyTurboModule.js.map +1 -1
  31. package/lib/commonjs/MMKV.js +1 -1
  32. package/lib/commonjs/MMKV.js.map +1 -1
  33. package/lib/commonjs/PlatformChecker.js +3 -3
  34. package/lib/commonjs/PlatformChecker.js.map +1 -1
  35. package/lib/commonjs/index.js +19 -0
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/module/LazyTurboModule.js +26 -9
  38. package/lib/module/LazyTurboModule.js.map +1 -1
  39. package/lib/module/MMKV.js +2 -2
  40. package/lib/module/MMKV.js.map +1 -1
  41. package/lib/module/PlatformChecker.js +2 -2
  42. package/lib/module/PlatformChecker.js.map +1 -1
  43. package/lib/module/index.js +1 -0
  44. package/lib/module/index.js.map +1 -1
  45. package/lib/typescript/src/LazyTurboModule.d.ts +3 -0
  46. package/lib/typescript/src/LazyTurboModule.d.ts.map +1 -1
  47. package/lib/typescript/src/PlatformChecker.d.ts +1 -1
  48. package/lib/typescript/src/PlatformChecker.d.ts.map +1 -1
  49. package/lib/typescript/src/index.d.ts +1 -0
  50. package/lib/typescript/src/index.d.ts.map +1 -1
  51. package/package.json +5 -5
  52. package/src/LazyTurboModule.ts +48 -12
  53. package/src/MMKV.ts +2 -2
  54. package/src/PlatformChecker.ts +4 -2
  55. package/src/index.ts +2 -0
@@ -16,7 +16,7 @@ NativeMmkvModule::NativeMmkvModule(std::shared_ptr<CallInvoker> jsInvoker)
16
16
  : NativeMmkvCxxSpec(jsInvoker) {}
17
17
 
18
18
  bool NativeMmkvModule::initialize(jsi::Runtime& runtime, std::string basePath) {
19
- if (basePath.size() < 1) {
19
+ if (basePath.empty()) {
20
20
  throw jsi::JSError(runtime, "Path cannot be empty!");
21
21
  }
22
22
 
@@ -33,10 +33,7 @@ bool NativeMmkvModule::initialize(jsi::Runtime& runtime, std::string basePath) {
33
33
  return true;
34
34
  }
35
35
 
36
- NativeMmkvModule::~NativeMmkvModule() {
37
- Logger::log("RNMMKV", "Closing all MMKV instances...");
38
- MMKV::onExit();
39
- }
36
+ NativeMmkvModule::~NativeMmkvModule() {}
40
37
 
41
38
  jsi::Object NativeMmkvModule::createMMKV(jsi::Runtime& runtime, MMKVConfig config) {
42
39
  auto instance = std::make_shared<MmkvHostObject>(config);
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getLazyTurboModule = getLazyTurboModule;
7
7
  var _reactNative = require("react-native");
8
+ const BULLET_POINT = '\n* ';
9
+
8
10
  /**
9
11
  * Lazily get a TurboModule by wrapping it in a Proxy.
10
12
  */
@@ -18,13 +20,28 @@ function getLazyTurboModule(initializeTurboModule) {
18
20
  target.module = initializeTurboModule();
19
21
  if (target.module == null) {
20
22
  // TurboModule not found, something went wrong!
21
- let message = 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
22
- message += '\n* Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)';
23
- if (_reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'macos') {
24
- message += '\n* Make sure you ran `pod install` in the ios/ directory.';
23
+ if (global.__turboModuleProxy == null) {
24
+ // TurboModules are not available/new arch is not enabled.
25
+ // react-native-mmkv 3.x.x requires new arch (react-native >0.74)
26
+ // react-native-mmkv 2.x.x works on old arch (react-native <0.74)
27
+ throw new Error('Failed to create a new MMKV instance: react-native-mmkv 3.x.x requires TurboModules, but the new architecture is not enabled!' + BULLET_POINT + 'Downgrade to react-native-mmkv 2.x.x if you want to stay on the old architecture.' + BULLET_POINT + 'Enable the new architecture in your app to use react-native-mmkv 3.x.x. (See https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md)');
25
28
  }
26
- if (_reactNative.Platform.OS === 'android') {
27
- message += '\n* Make sure gradle is synced.';
29
+ const message = 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
30
+ const suggestions = [];
31
+ suggestions.push('Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)');
32
+ suggestions.push('Make sure you enabled the new architecture (TurboModules) and CodeGen properly generated the react-native-mmkv specs. See https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md');
33
+ suggestions.push('Make sure you are using react-native 0.74.0 or higher, because react-native-mmkv is a C++ TurboModule.');
34
+ suggestions.push('Make sure you rebuilt the app.');
35
+ switch (_reactNative.Platform.OS) {
36
+ case 'ios':
37
+ case 'macos':
38
+ suggestions.push('Make sure you ran `pod install` in the ios/ directory.');
39
+ break;
40
+ case 'android':
41
+ suggestions.push('Make sure gradle is synced.');
42
+ break;
43
+ default:
44
+ throw new Error(`MMKV is not supported on ${_reactNative.Platform.OS}!`);
28
45
  }
29
46
  // check if Expo
30
47
  const ExpoConstants = _reactNative.NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants;
@@ -34,11 +51,11 @@ function getLazyTurboModule(initializeTurboModule) {
34
51
  throw new Error('react-native-mmkv is not supported in Expo Go! Use EAS (`expo prebuild`) or eject to a bare workflow instead.');
35
52
  } else {
36
53
  // We're running Expo bare / standalone
37
- message += '\n* Make sure you ran `expo prebuild`.';
54
+ suggestions.push('Make sure you ran `expo prebuild`.');
38
55
  }
39
56
  }
40
- message += '\n* Make sure you rebuilt the app.';
41
- throw new Error(message);
57
+ const error = message + BULLET_POINT + suggestions.join(BULLET_POINT);
58
+ throw new Error(error);
42
59
  }
43
60
  }
44
61
  return target.module[property];
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","getLazyTurboModule","initializeTurboModule","proxy","Proxy","module","get","target","property","message","Platform","OS","ExpoConstants","NativeModules","NativeUnimoduleProxy","modulesConstants","ExponentConstants","appOwnership","Error"],"sourceRoot":"../../src","sources":["LazyTurboModule.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAMA;AACA;AACA;AACO,SAASC,kBAAkBA,CAChCC,qBAAqC,EAClC;EACH,MAAMC,KAAK,GAAG,IAAIC,KAAK,CACrB;IACEC,MAAM,EAAE;EACV,CAAC,EACD;IACEC,GAAG,EAAEA,CAACC,MAAM,EAAEC,QAAQ,KAAK;MACzB,IAAID,MAAM,CAACF,MAAM,IAAI,IAAI,EAAE;QACzB;QACAE,MAAM,CAACF,MAAM,GAAGH,qBAAqB,CAAC,CAAC;QAEvC,IAAIK,MAAM,CAACF,MAAM,IAAI,IAAI,EAAE;UACzB;UACA,IAAII,OAAO,GACT,kFAAkF;UACpFA,OAAO,IACL,mGAAmG;UACrG,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAID,qBAAQ,CAACC,EAAE,KAAK,OAAO,EAAE;YACpDF,OAAO,IACL,4DAA4D;UAChE;UACA,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;YAC7BF,OAAO,IAAI,iCAAiC;UAC9C;UACA;UACA,MAAMG,aAAa,GACjBC,0BAAa,CAACC,oBAAoB,EAAEC,gBAAgB,EAChDC,iBAAiB;UACvB,IAAIJ,aAAa,IAAI,IAAI,EAAE;YACzB,IAAIA,aAAa,CAACK,YAAY,KAAK,MAAM,EAAE;cACzC;cACA,MAAM,IAAIC,KAAK,CACb,+GACF,CAAC;YACH,CAAC,MAAM;cACL;cACAT,OAAO,IAAI,wCAAwC;YACrD;UACF;UAEAA,OAAO,IAAI,oCAAoC;UAC/C,MAAM,IAAIS,KAAK,CAACT,OAAO,CAAC;QAC1B;MACF;MAEA,OAAOF,MAAM,CAACF,MAAM,CAACG,QAAQ,CAAY;IAC3C;EACF,CACF,CAAC;EACD,OAAOL,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","BULLET_POINT","getLazyTurboModule","initializeTurboModule","proxy","Proxy","module","get","target","property","global","__turboModuleProxy","Error","message","suggestions","push","Platform","OS","ExpoConstants","NativeModules","NativeUnimoduleProxy","modulesConstants","ExponentConstants","appOwnership","error","join"],"sourceRoot":"../../src","sources":["LazyTurboModule.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAWA,MAAMC,YAAY,GAAG,MAAM;;AAE3B;AACA;AACA;AACO,SAASC,kBAAkBA,CAChCC,qBAAqC,EAClC;EACH,MAAMC,KAAK,GAAG,IAAIC,KAAK,CACrB;IACEC,MAAM,EAAE;EACV,CAAC,EACD;IACEC,GAAG,EAAEA,CAACC,MAAM,EAAEC,QAAQ,KAAK;MACzB,IAAID,MAAM,CAACF,MAAM,IAAI,IAAI,EAAE;QACzB;QACAE,MAAM,CAACF,MAAM,GAAGH,qBAAqB,CAAC,CAAC;QAEvC,IAAIK,MAAM,CAACF,MAAM,IAAI,IAAI,EAAE;UACzB;UACA,IAAII,MAAM,CAACC,kBAAkB,IAAI,IAAI,EAAE;YACrC;YACA;YACA;YACA,MAAM,IAAIC,KAAK,CACb,+HAA+H,GAC7HX,YAAY,GACZ,mFAAmF,GACnFA,YAAY,GACZ,sKACJ,CAAC;UACH;UAEA,MAAMY,OAAO,GACX,kFAAkF;UACpF,MAAMC,WAAqB,GAAG,EAAE;UAChCA,WAAW,CAACC,IAAI,CACd,+FACF,CAAC;UACDD,WAAW,CAACC,IAAI,CACd,kNACF,CAAC;UACDD,WAAW,CAACC,IAAI,CACd,wGACF,CAAC;UACDD,WAAW,CAACC,IAAI,CAAC,gCAAgC,CAAC;UAClD,QAAQC,qBAAQ,CAACC,EAAE;YACjB,KAAK,KAAK;YACV,KAAK,OAAO;cACVH,WAAW,CAACC,IAAI,CACd,wDACF,CAAC;cACD;YACF,KAAK,SAAS;cACZD,WAAW,CAACC,IAAI,CAAC,6BAA6B,CAAC;cAC/C;YACF;cACE,MAAM,IAAIH,KAAK,CAAE,4BAA2BI,qBAAQ,CAACC,EAAG,GAAE,CAAC;UAC/D;UACA;UACA,MAAMC,aAAa,GACjBC,0BAAa,CAACC,oBAAoB,EAAEC,gBAAgB,EAChDC,iBAAiB;UACvB,IAAIJ,aAAa,IAAI,IAAI,EAAE;YACzB,IAAIA,aAAa,CAACK,YAAY,KAAK,MAAM,EAAE;cACzC;cACA,MAAM,IAAIX,KAAK,CACb,+GACF,CAAC;YACH,CAAC,MAAM;cACL;cACAE,WAAW,CAACC,IAAI,CAAC,oCAAoC,CAAC;YACxD;UACF;UAEA,MAAMS,KAAK,GACTX,OAAO,GAAGZ,YAAY,GAAGa,WAAW,CAACW,IAAI,CAACxB,YAAY,CAAC;UACzD,MAAM,IAAIW,KAAK,CAACY,KAAK,CAAC;QACxB;MACF;MAEA,OAAOhB,MAAM,CAACF,MAAM,CAACG,QAAQ,CAAY;IAC3C;EACF,CACF,CAAC;EACD,OAAOL,KAAK;AACd","ignoreList":[]}
@@ -35,7 +35,7 @@ class MMKV {
35
35
  id: 'mmkv.default'
36
36
  }) {
37
37
  this.id = configuration.id;
38
- this.nativeInstance = (0, _PlatformChecker.isJest)() ? (0, _createMMKV2.createMockMMKV)() : (0, _createMMKV.createMMKV)(configuration);
38
+ this.nativeInstance = (0, _PlatformChecker.isTest)() ? (0, _createMMKV2.createMockMMKV)() : (0, _createMMKV.createMMKV)(configuration);
39
39
  this.functionCache = {};
40
40
  _reactNative.AppState.addEventListener('memoryWarning', () => {
41
41
  // when we have a memory warning, delete unused keys by trimming MMKV
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_createMMKV","_createMMKV2","_PlatformChecker","_NativeMmkv","onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","isJest","createMockMMKV","createMMKV","functionCache","AppState","addEventListener","trim","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","size","value","func","getBoolean","getString","getNumber","getBuffer","contains","delete","getAllKeys","clearAll","recrypt","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice","exports"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_createMMKV","_createMMKV2","_PlatformChecker","_NativeMmkv","onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","isTest","createMockMMKV","createMMKV","functionCache","AppState","addEventListener","trim","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","size","value","func","getBoolean","getString","getNumber","getBuffer","contains","delete","getAllKeys","clearAll","recrypt","toString","join","toJSON","addOnValueChangedListener","onValueChanged","push","remove","index","indexOf","splice","exports"],"sourceRoot":"../../src","sources":["MMKV.ts"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAGA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,MAAMK,uBAAuB,GAAG,IAAIC,GAAG,CAAoC,CAAC;;AAE5E;AACA;AACA;AACO,MAAMC,IAAI,CAA0B;EAKzC;AACF;AACA;AACA;EACEC,WAAWA,CAACC,aAA4B,GAAG;IAAEC,EAAE,EAAE;EAAe,CAAC,EAAE;IACjE,IAAI,CAACA,EAAE,GAAGD,aAAa,CAACC,EAAE;IAC1B,IAAI,CAACC,cAAc,GAAG,IAAAC,uBAAM,EAAC,CAAC,GAC1B,IAAAC,2BAAc,EAAC,CAAC,GAChB,IAAAC,sBAAU,EAACL,aAAa,CAAC;IAC7B,IAAI,CAACM,aAAa,GAAG,CAAC,CAAC;IAEvBC,qBAAQ,CAACC,gBAAgB,CAAC,eAAe,EAAE,MAAM;MAC/C;MACA,IAAI,CAACC,IAAI,CAAC,CAAC;IACb,CAAC,CAAC;EACJ;EAEA,IAAYb,uBAAuBA,CAAA,EAAG;IACpC,IAAI,CAACA,uBAAuB,CAACc,GAAG,CAAC,IAAI,CAACT,EAAE,CAAC,EAAE;MACzCL,uBAAuB,CAACe,GAAG,CAAC,IAAI,CAACV,EAAE,EAAE,EAAE,CAAC;IAC1C;IACA,OAAOL,uBAAuB,CAACgB,GAAG,CAAC,IAAI,CAACX,EAAE,CAAC;EAC7C;EAEQY,oBAAoBA,CAC1BC,YAAe,EACA;IACf,IAAI,IAAI,CAACR,aAAa,CAACQ,YAAY,CAAC,IAAI,IAAI,EAAE;MAC5C,IAAI,CAACR,aAAa,CAACQ,YAAY,CAAC,GAAG,IAAI,CAACZ,cAAc,CAACY,YAAY,CAAC;IACtE;IACA,OAAO,IAAI,CAACR,aAAa,CAACQ,YAAY,CAAC;EACzC;EAEQC,eAAeA,CAACC,IAAc,EAAE;IACtC,IAAI,IAAI,CAACpB,uBAAuB,CAACqB,MAAM,KAAK,CAAC,EAAE;IAE/C,KAAK,MAAMC,GAAG,IAAIF,IAAI,EAAE;MACtB,KAAK,MAAMG,QAAQ,IAAI,IAAI,CAACvB,uBAAuB,EAAE;QACnDuB,QAAQ,CAACD,GAAG,CAAC;MACf;IACF;EACF;EAEA,IAAIE,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAAClB,cAAc,CAACkB,IAAI;EACjC;EACAT,GAAGA,CAACO,GAAW,EAAEG,KAA8C,EAAQ;IACrE,MAAMC,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,KAAK,CAAC;IAC7CS,IAAI,CAACJ,GAAG,EAAEG,KAAK,CAAC;IAEhB,IAAI,CAACN,eAAe,CAAC,CAACG,GAAG,CAAC,CAAC;EAC7B;EACAK,UAAUA,CAACL,GAAW,EAAuB;IAC3C,MAAMI,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,YAAY,CAAC;IACpD,OAAOS,IAAI,CAACJ,GAAG,CAAC;EAClB;EACAM,SAASA,CAACN,GAAW,EAAsB;IACzC,MAAMI,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,WAAW,CAAC;IACnD,OAAOS,IAAI,CAACJ,GAAG,CAAC;EAClB;EACAO,SAASA,CAACP,GAAW,EAAsB;IACzC,MAAMI,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,WAAW,CAAC;IACnD,OAAOS,IAAI,CAACJ,GAAG,CAAC;EAClB;EACAQ,SAASA,CAACR,GAAW,EAA2B;IAC9C,MAAMI,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,WAAW,CAAC;IACnD,OAAOS,IAAI,CAACJ,GAAG,CAAC;EAClB;EACAS,QAAQA,CAACT,GAAW,EAAW;IAC7B,MAAMI,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,UAAU,CAAC;IAClD,OAAOS,IAAI,CAACJ,GAAG,CAAC;EAClB;EACAU,MAAMA,CAACV,GAAW,EAAQ;IACxB,MAAMI,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,QAAQ,CAAC;IAChDS,IAAI,CAACJ,GAAG,CAAC;IAET,IAAI,CAACH,eAAe,CAAC,CAACG,GAAG,CAAC,CAAC;EAC7B;EACAW,UAAUA,CAAA,EAAa;IACrB,MAAMP,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,YAAY,CAAC;IACpD,OAAOS,IAAI,CAAC,CAAC;EACf;EACAQ,QAAQA,CAAA,EAAS;IACf,MAAMd,IAAI,GAAG,IAAI,CAACa,UAAU,CAAC,CAAC;IAE9B,MAAMP,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,UAAU,CAAC;IAClDS,IAAI,CAAC,CAAC;IAEN,IAAI,CAACP,eAAe,CAACC,IAAI,CAAC;EAC5B;EACAe,OAAOA,CAACb,GAAuB,EAAQ;IACrC,MAAMI,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,SAAS,CAAC;IACjD,OAAOS,IAAI,CAACJ,GAAG,CAAC;EAClB;EACAT,IAAIA,CAAA,EAAS;IACX,MAAMa,IAAI,GAAG,IAAI,CAACT,oBAAoB,CAAC,MAAM,CAAC;IAC9CS,IAAI,CAAC,CAAC;EACR;EAEAU,QAAQA,CAAA,EAAW;IACjB,OAAQ,SAAQ,IAAI,CAAC/B,EAAG,OAAM,IAAI,CAAC4B,UAAU,CAAC,CAAC,CAACI,IAAI,CAAC,IAAI,CAAE,GAAE;EAC/D;EACAC,MAAMA,CAAA,EAAW;IACf,OAAO;MACL,CAAC,IAAI,CAACjC,EAAE,GAAG,IAAI,CAAC4B,UAAU,CAAC;IAC7B,CAAC;EACH;EAEAM,yBAAyBA,CAACC,cAAqC,EAAY;IACzE,IAAI,CAACxC,uBAAuB,CAACyC,IAAI,CAACD,cAAc,CAAC;IAEjD,OAAO;MACLE,MAAM,EAAEA,CAAA,KAAM;QACZ,MAAMC,KAAK,GAAG,IAAI,CAAC3C,uBAAuB,CAAC4C,OAAO,CAACJ,cAAc,CAAC;QAClE,IAAIG,KAAK,KAAK,CAAC,CAAC,EAAE;UAChB,IAAI,CAAC3C,uBAAuB,CAAC6C,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;QAC/C;MACF;IACF,CAAC;EACH;AACF;AAACG,OAAA,CAAA5C,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isJest = isJest;
7
- function isJest() {
6
+ exports.isTest = isTest;
7
+ function isTest() {
8
8
  if (global.process == null) {
9
9
  // In a WebBrowser/Electron the `process` variable does not exist
10
10
  return false;
11
11
  }
12
- return process.env.JEST_WORKER_ID != null;
12
+ return process.env.JEST_WORKER_ID != null || process.env.VITEST_WORKER_ID != null;
13
13
  }
14
14
  //# sourceMappingURL=PlatformChecker.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isJest","global","process","env","JEST_WORKER_ID"],"sourceRoot":"../../src","sources":["PlatformChecker.ts"],"mappings":";;;;;;AAAO,SAASA,MAAMA,CAAA,EAAY;EAChC,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,EAAE;IAC1B;IACA,OAAO,KAAK;EACd;EACA,OAAOA,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,IAAI;AAC3C","ignoreList":[]}
1
+ {"version":3,"names":["isTest","global","process","env","JEST_WORKER_ID","VITEST_WORKER_ID"],"sourceRoot":"../../src","sources":["PlatformChecker.ts"],"mappings":";;;;;;AAAO,SAASA,MAAMA,CAAA,EAAY;EAChC,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,EAAE;IAC1B;IACA,OAAO,KAAK;EACd;EACA,OACEA,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,IAAI,IAAIF,OAAO,CAACC,GAAG,CAACE,gBAAgB,IAAI,IAAI;AAE9E","ignoreList":[]}
@@ -3,9 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ Mode: true,
8
+ Configuration: true
9
+ };
10
+ Object.defineProperty(exports, "Configuration", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _NativeMmkv.Configuration;
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "Mode", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _NativeMmkv.Mode;
20
+ }
21
+ });
6
22
  var _MMKV = require("./MMKV");
7
23
  Object.keys(_MMKV).forEach(function (key) {
8
24
  if (key === "default" || key === "__esModule") return;
25
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
9
26
  if (key in exports && exports[key] === _MMKV[key]) return;
10
27
  Object.defineProperty(exports, key, {
11
28
  enumerable: true,
@@ -17,6 +34,7 @@ Object.keys(_MMKV).forEach(function (key) {
17
34
  var _hooks = require("./hooks");
18
35
  Object.keys(_hooks).forEach(function (key) {
19
36
  if (key === "default" || key === "__esModule") return;
37
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
38
  if (key in exports && exports[key] === _hooks[key]) return;
21
39
  Object.defineProperty(exports, key, {
22
40
  enumerable: true,
@@ -25,4 +43,5 @@ Object.keys(_hooks).forEach(function (key) {
25
43
  }
26
44
  });
27
45
  });
46
+ var _NativeMmkv = require("./NativeMmkv");
28
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_MMKV","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_hooks"],"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,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_MMKV","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_hooks","_NativeMmkv"],"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,WAAA,GAAAd,OAAA","ignoreList":[]}
@@ -1,4 +1,6 @@
1
1
  import { NativeModules, Platform } from 'react-native';
2
+ const BULLET_POINT = '\n* ';
3
+
2
4
  /**
3
5
  * Lazily get a TurboModule by wrapping it in a Proxy.
4
6
  */
@@ -12,13 +14,28 @@ export function getLazyTurboModule(initializeTurboModule) {
12
14
  target.module = initializeTurboModule();
13
15
  if (target.module == null) {
14
16
  // TurboModule not found, something went wrong!
15
- let message = 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
16
- message += '\n* Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)';
17
- if (Platform.OS === 'ios' || Platform.OS === 'macos') {
18
- message += '\n* Make sure you ran `pod install` in the ios/ directory.';
17
+ if (global.__turboModuleProxy == null) {
18
+ // TurboModules are not available/new arch is not enabled.
19
+ // react-native-mmkv 3.x.x requires new arch (react-native >0.74)
20
+ // react-native-mmkv 2.x.x works on old arch (react-native <0.74)
21
+ throw new Error('Failed to create a new MMKV instance: react-native-mmkv 3.x.x requires TurboModules, but the new architecture is not enabled!' + BULLET_POINT + 'Downgrade to react-native-mmkv 2.x.x if you want to stay on the old architecture.' + BULLET_POINT + 'Enable the new architecture in your app to use react-native-mmkv 3.x.x. (See https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md)');
19
22
  }
20
- if (Platform.OS === 'android') {
21
- message += '\n* Make sure gradle is synced.';
23
+ const message = 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
24
+ const suggestions = [];
25
+ suggestions.push('Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)');
26
+ suggestions.push('Make sure you enabled the new architecture (TurboModules) and CodeGen properly generated the react-native-mmkv specs. See https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md');
27
+ suggestions.push('Make sure you are using react-native 0.74.0 or higher, because react-native-mmkv is a C++ TurboModule.');
28
+ suggestions.push('Make sure you rebuilt the app.');
29
+ switch (Platform.OS) {
30
+ case 'ios':
31
+ case 'macos':
32
+ suggestions.push('Make sure you ran `pod install` in the ios/ directory.');
33
+ break;
34
+ case 'android':
35
+ suggestions.push('Make sure gradle is synced.');
36
+ break;
37
+ default:
38
+ throw new Error(`MMKV is not supported on ${Platform.OS}!`);
22
39
  }
23
40
  // check if Expo
24
41
  const ExpoConstants = NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants;
@@ -28,11 +45,11 @@ export function getLazyTurboModule(initializeTurboModule) {
28
45
  throw new Error('react-native-mmkv is not supported in Expo Go! Use EAS (`expo prebuild`) or eject to a bare workflow instead.');
29
46
  } else {
30
47
  // We're running Expo bare / standalone
31
- message += '\n* Make sure you ran `expo prebuild`.';
48
+ suggestions.push('Make sure you ran `expo prebuild`.');
32
49
  }
33
50
  }
34
- message += '\n* Make sure you rebuilt the app.';
35
- throw new Error(message);
51
+ const error = message + BULLET_POINT + suggestions.join(BULLET_POINT);
52
+ throw new Error(error);
36
53
  }
37
54
  }
38
55
  return target.module[property];
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","getLazyTurboModule","initializeTurboModule","proxy","Proxy","module","get","target","property","message","OS","ExpoConstants","NativeUnimoduleProxy","modulesConstants","ExponentConstants","appOwnership","Error"],"sourceRoot":"../../src","sources":["LazyTurboModule.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAqB,cAAc;AAMnE;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,qBAAqC,EAClC;EACH,MAAMC,KAAK,GAAG,IAAIC,KAAK,CACrB;IACEC,MAAM,EAAE;EACV,CAAC,EACD;IACEC,GAAG,EAAEA,CAACC,MAAM,EAAEC,QAAQ,KAAK;MACzB,IAAID,MAAM,CAACF,MAAM,IAAI,IAAI,EAAE;QACzB;QACAE,MAAM,CAACF,MAAM,GAAGH,qBAAqB,CAAC,CAAC;QAEvC,IAAIK,MAAM,CAACF,MAAM,IAAI,IAAI,EAAE;UACzB;UACA,IAAII,OAAO,GACT,kFAAkF;UACpFA,OAAO,IACL,mGAAmG;UACrG,IAAIT,QAAQ,CAACU,EAAE,KAAK,KAAK,IAAIV,QAAQ,CAACU,EAAE,KAAK,OAAO,EAAE;YACpDD,OAAO,IACL,4DAA4D;UAChE;UACA,IAAIT,QAAQ,CAACU,EAAE,KAAK,SAAS,EAAE;YAC7BD,OAAO,IAAI,iCAAiC;UAC9C;UACA;UACA,MAAME,aAAa,GACjBZ,aAAa,CAACa,oBAAoB,EAAEC,gBAAgB,EAChDC,iBAAiB;UACvB,IAAIH,aAAa,IAAI,IAAI,EAAE;YACzB,IAAIA,aAAa,CAACI,YAAY,KAAK,MAAM,EAAE;cACzC;cACA,MAAM,IAAIC,KAAK,CACb,+GACF,CAAC;YACH,CAAC,MAAM;cACL;cACAP,OAAO,IAAI,wCAAwC;YACrD;UACF;UAEAA,OAAO,IAAI,oCAAoC;UAC/C,MAAM,IAAIO,KAAK,CAACP,OAAO,CAAC;QAC1B;MACF;MAEA,OAAOF,MAAM,CAACF,MAAM,CAACG,QAAQ,CAAY;IAC3C;EACF,CACF,CAAC;EACD,OAAOL,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","BULLET_POINT","getLazyTurboModule","initializeTurboModule","proxy","Proxy","module","get","target","property","global","__turboModuleProxy","Error","message","suggestions","push","OS","ExpoConstants","NativeUnimoduleProxy","modulesConstants","ExponentConstants","appOwnership","error","join"],"sourceRoot":"../../src","sources":["LazyTurboModule.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAqB,cAAc;AAWnE,MAAMC,YAAY,GAAG,MAAM;;AAE3B;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,qBAAqC,EAClC;EACH,MAAMC,KAAK,GAAG,IAAIC,KAAK,CACrB;IACEC,MAAM,EAAE;EACV,CAAC,EACD;IACEC,GAAG,EAAEA,CAACC,MAAM,EAAEC,QAAQ,KAAK;MACzB,IAAID,MAAM,CAACF,MAAM,IAAI,IAAI,EAAE;QACzB;QACAE,MAAM,CAACF,MAAM,GAAGH,qBAAqB,CAAC,CAAC;QAEvC,IAAIK,MAAM,CAACF,MAAM,IAAI,IAAI,EAAE;UACzB;UACA,IAAII,MAAM,CAACC,kBAAkB,IAAI,IAAI,EAAE;YACrC;YACA;YACA;YACA,MAAM,IAAIC,KAAK,CACb,+HAA+H,GAC7HX,YAAY,GACZ,mFAAmF,GACnFA,YAAY,GACZ,sKACJ,CAAC;UACH;UAEA,MAAMY,OAAO,GACX,kFAAkF;UACpF,MAAMC,WAAqB,GAAG,EAAE;UAChCA,WAAW,CAACC,IAAI,CACd,+FACF,CAAC;UACDD,WAAW,CAACC,IAAI,CACd,kNACF,CAAC;UACDD,WAAW,CAACC,IAAI,CACd,wGACF,CAAC;UACDD,WAAW,CAACC,IAAI,CAAC,gCAAgC,CAAC;UAClD,QAAQf,QAAQ,CAACgB,EAAE;YACjB,KAAK,KAAK;YACV,KAAK,OAAO;cACVF,WAAW,CAACC,IAAI,CACd,wDACF,CAAC;cACD;YACF,KAAK,SAAS;cACZD,WAAW,CAACC,IAAI,CAAC,6BAA6B,CAAC;cAC/C;YACF;cACE,MAAM,IAAIH,KAAK,CAAE,4BAA2BZ,QAAQ,CAACgB,EAAG,GAAE,CAAC;UAC/D;UACA;UACA,MAAMC,aAAa,GACjBlB,aAAa,CAACmB,oBAAoB,EAAEC,gBAAgB,EAChDC,iBAAiB;UACvB,IAAIH,aAAa,IAAI,IAAI,EAAE;YACzB,IAAIA,aAAa,CAACI,YAAY,KAAK,MAAM,EAAE;cACzC;cACA,MAAM,IAAIT,KAAK,CACb,+GACF,CAAC;YACH,CAAC,MAAM;cACL;cACAE,WAAW,CAACC,IAAI,CAAC,oCAAoC,CAAC;YACxD;UACF;UAEA,MAAMO,KAAK,GACTT,OAAO,GAAGZ,YAAY,GAAGa,WAAW,CAACS,IAAI,CAACtB,YAAY,CAAC;UACzD,MAAM,IAAIW,KAAK,CAACU,KAAK,CAAC;QACxB;MACF;MAEA,OAAOd,MAAM,CAACF,MAAM,CAACG,QAAQ,CAAY;IAC3C;EACF,CACF,CAAC;EACD,OAAOL,KAAK;AACd","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { AppState } from 'react-native';
2
2
  import { createMMKV } from './createMMKV';
3
3
  import { createMockMMKV } from './createMMKV.mock';
4
- import { isJest } from './PlatformChecker';
4
+ import { isTest } from './PlatformChecker';
5
5
  export { Configuration, Mode } from './NativeMmkv';
6
6
  const onValueChangedListeners = new Map();
7
7
 
@@ -17,7 +17,7 @@ export class MMKV {
17
17
  id: 'mmkv.default'
18
18
  }) {
19
19
  this.id = configuration.id;
20
- this.nativeInstance = isJest() ? createMockMMKV() : createMMKV(configuration);
20
+ this.nativeInstance = isTest() ? createMockMMKV() : createMMKV(configuration);
21
21
  this.functionCache = {};
22
22
  AppState.addEventListener('memoryWarning', () => {
23
23
  // when we have a memory warning, delete unused keys by trimming MMKV
@@ -1 +1 @@
1
- {"version":3,"names":["AppState","createMMKV","createMockMMKV","isJest","Configuration","Mode","onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","functionCache","addEventListener","trim","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","size","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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","ignoreList":[]}
1
+ {"version":3,"names":["AppState","createMMKV","createMockMMKV","isTest","Configuration","Mode","onValueChangedListeners","Map","MMKV","constructor","configuration","id","nativeInstance","functionCache","addEventListener","trim","has","set","get","getFunctionFromCache","functionName","onValuesChanged","keys","length","key","listener","size","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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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- export function isJest() {
1
+ export function isTest() {
2
2
  if (global.process == null) {
3
3
  // In a WebBrowser/Electron the `process` variable does not exist
4
4
  return false;
5
5
  }
6
- return process.env.JEST_WORKER_ID != null;
6
+ return process.env.JEST_WORKER_ID != null || process.env.VITEST_WORKER_ID != null;
7
7
  }
8
8
  //# sourceMappingURL=PlatformChecker.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isJest","global","process","env","JEST_WORKER_ID"],"sourceRoot":"../../src","sources":["PlatformChecker.ts"],"mappings":"AAAA,OAAO,SAASA,MAAMA,CAAA,EAAY;EAChC,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,EAAE;IAC1B;IACA,OAAO,KAAK;EACd;EACA,OAAOA,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,IAAI;AAC3C","ignoreList":[]}
1
+ {"version":3,"names":["isTest","global","process","env","JEST_WORKER_ID","VITEST_WORKER_ID"],"sourceRoot":"../../src","sources":["PlatformChecker.ts"],"mappings":"AAAA,OAAO,SAASA,MAAMA,CAAA,EAAY;EAChC,IAAIC,MAAM,CAACC,OAAO,IAAI,IAAI,EAAE;IAC1B;IACA,OAAO,KAAK;EACd;EACA,OACEA,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,IAAI,IAAIF,OAAO,CAACC,GAAG,CAACE,gBAAgB,IAAI,IAAI;AAE9E","ignoreList":[]}
@@ -1,3 +1,4 @@
1
1
  export * from './MMKV';
2
2
  export * from './hooks';
3
+ export { Mode, Configuration } from './NativeMmkv';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,cAAc,QAAQ;AACtB,cAAc,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["Mode","Configuration"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,cAAc,QAAQ;AACtB,cAAc,SAAS;AAEvB,SAASA,IAAI,EAAEC,aAAa,QAAQ,cAAc","ignoreList":[]}
@@ -1,4 +1,7 @@
1
1
  import { TurboModule } from 'react-native';
2
+ declare global {
3
+ var __turboModuleProxy: unknown | undefined;
4
+ }
2
5
  /**
3
6
  * Lazily get a TurboModule by wrapping it in a Proxy.
4
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"LazyTurboModule.d.ts","sourceRoot":"","sources":["../../../src/LazyTurboModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,WAAW,EAAE,MAAM,cAAc,CAAC;AAMpE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EACtD,qBAAqB,EAAE,MAAM,CAAC,GAAG,IAAI,GACpC,CAAC,CAkDH"}
1
+ {"version":3,"file":"LazyTurboModule.d.ts","sourceRoot":"","sources":["../../../src/LazyTurboModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,kBAAkB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AAQD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EACtD,qBAAqB,EAAE,MAAM,CAAC,GAAG,IAAI,GACpC,CAAC,CA+EH"}
@@ -1,2 +1,2 @@
1
- export declare function isJest(): boolean;
1
+ export declare function isTest(): boolean;
2
2
  //# sourceMappingURL=PlatformChecker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformChecker.d.ts","sourceRoot":"","sources":["../../../src/PlatformChecker.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,IAAI,OAAO,CAMhC"}
1
+ {"version":3,"file":"PlatformChecker.d.ts","sourceRoot":"","sources":["../../../src/PlatformChecker.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,IAAI,OAAO,CAQhC"}
@@ -1,3 +1,4 @@
1
1
  export * from './MMKV';
2
2
  export * from './hooks';
3
+ export { Mode, Configuration } from './NativeMmkv';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-mmkv",
3
- "version": "3.0.0-beta.2",
3
+ "version": "3.0.0-beta.3",
4
4
  "description": "The fastest key/value storage for React Native. ~30x faster than AsyncStorage! Works on Android, iOS and Web.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -73,7 +73,7 @@
73
73
  "devDependencies": {
74
74
  "@firmnav/eslint-github-actions-formatter": "^1.0.1",
75
75
  "@jamesacarr/eslint-formatter-github-actions": "^0.2.0",
76
- "@react-native-community/cli-types": "^13.6.6",
76
+ "@react-native-community/cli-types": "^14.0.0-alpha.4",
77
77
  "@react-native/eslint-config": "^0.74.81",
78
78
  "@release-it/conventional-changelog": "^8.0.1",
79
79
  "@testing-library/react-native": "^12.4.3",
@@ -85,8 +85,8 @@
85
85
  "eslint-plugin-prettier": "^5.0.1",
86
86
  "jest": "^29.7.0",
87
87
  "prettier": "^3.0.3",
88
- "react": "18.3.1",
89
- "react-native": "0.74.0",
88
+ "react": "^18.3.1",
89
+ "react-native": "^0.74.0",
90
90
  "react-native-builder-bob": "^0.23.2",
91
91
  "react-test-renderer": "18.3.1",
92
92
  "release-it": "^17.2.1",
@@ -94,7 +94,7 @@
94
94
  },
95
95
  "resolutions": {
96
96
  "@types/react": "^18.2.44",
97
- "@react-native-community/cli": "^14.0.0-alpha.2"
97
+ "@react-native-community/cli": "^14.0.0-alpha.4"
98
98
  },
99
99
  "peerDependencies": {
100
100
  "react": "*",
@@ -1,9 +1,16 @@
1
1
  import { NativeModules, Platform, TurboModule } from 'react-native';
2
2
 
3
+ declare global {
4
+ // A react-native internal from TurboModuleRegistry.js
5
+ var __turboModuleProxy: unknown | undefined;
6
+ }
7
+
3
8
  interface ModuleHolder<T> {
4
9
  module: T | null;
5
10
  }
6
11
 
12
+ const BULLET_POINT = '\n* ';
13
+
7
14
  /**
8
15
  * Lazily get a TurboModule by wrapping it in a Proxy.
9
16
  */
@@ -22,16 +29,44 @@ export function getLazyTurboModule<T extends TurboModule>(
22
29
 
23
30
  if (target.module == null) {
24
31
  // TurboModule not found, something went wrong!
25
- let message =
26
- 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
27
- message +=
28
- '\n* Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)';
29
- if (Platform.OS === 'ios' || Platform.OS === 'macos') {
30
- message +=
31
- '\n* Make sure you ran `pod install` in the ios/ directory.';
32
+ if (global.__turboModuleProxy == null) {
33
+ // TurboModules are not available/new arch is not enabled.
34
+ // react-native-mmkv 3.x.x requires new arch (react-native >0.74)
35
+ // react-native-mmkv 2.x.x works on old arch (react-native <0.74)
36
+ throw new Error(
37
+ 'Failed to create a new MMKV instance: react-native-mmkv 3.x.x requires TurboModules, but the new architecture is not enabled!' +
38
+ BULLET_POINT +
39
+ 'Downgrade to react-native-mmkv 2.x.x if you want to stay on the old architecture.' +
40
+ BULLET_POINT +
41
+ 'Enable the new architecture in your app to use react-native-mmkv 3.x.x. (See https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md)'
42
+ );
32
43
  }
33
- if (Platform.OS === 'android') {
34
- message += '\n* Make sure gradle is synced.';
44
+
45
+ const message =
46
+ 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
47
+ const suggestions: string[] = [];
48
+ suggestions.push(
49
+ 'Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)'
50
+ );
51
+ suggestions.push(
52
+ 'Make sure you enabled the new architecture (TurboModules) and CodeGen properly generated the react-native-mmkv specs. See https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md'
53
+ );
54
+ suggestions.push(
55
+ 'Make sure you are using react-native 0.74.0 or higher, because react-native-mmkv is a C++ TurboModule.'
56
+ );
57
+ suggestions.push('Make sure you rebuilt the app.');
58
+ switch (Platform.OS) {
59
+ case 'ios':
60
+ case 'macos':
61
+ suggestions.push(
62
+ 'Make sure you ran `pod install` in the ios/ directory.'
63
+ );
64
+ break;
65
+ case 'android':
66
+ suggestions.push('Make sure gradle is synced.');
67
+ break;
68
+ default:
69
+ throw new Error(`MMKV is not supported on ${Platform.OS}!`);
35
70
  }
36
71
  // check if Expo
37
72
  const ExpoConstants =
@@ -45,12 +80,13 @@ export function getLazyTurboModule<T extends TurboModule>(
45
80
  );
46
81
  } else {
47
82
  // We're running Expo bare / standalone
48
- message += '\n* Make sure you ran `expo prebuild`.';
83
+ suggestions.push('Make sure you ran `expo prebuild`.');
49
84
  }
50
85
  }
51
86
 
52
- message += '\n* Make sure you rebuilt the app.';
53
- throw new Error(message);
87
+ const error =
88
+ message + BULLET_POINT + suggestions.join(BULLET_POINT);
89
+ throw new Error(error);
54
90
  }
55
91
  }
56
92
 
package/src/MMKV.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AppState } from 'react-native';
2
2
  import { createMMKV } from './createMMKV';
3
3
  import { createMockMMKV } from './createMMKV.mock';
4
- import { isJest } from './PlatformChecker';
4
+ import { isTest } from './PlatformChecker';
5
5
  import { Configuration } from './NativeMmkv';
6
6
  import { Listener, MMKVInterface, NativeMMKV } from './Types';
7
7
  export { Configuration, Mode } from './NativeMmkv';
@@ -22,7 +22,7 @@ export class MMKV implements MMKVInterface {
22
22
  */
23
23
  constructor(configuration: Configuration = { id: 'mmkv.default' }) {
24
24
  this.id = configuration.id;
25
- this.nativeInstance = isJest()
25
+ this.nativeInstance = isTest()
26
26
  ? createMockMMKV()
27
27
  : createMMKV(configuration);
28
28
  this.functionCache = {};
@@ -1,7 +1,9 @@
1
- export function isJest(): boolean {
1
+ export function isTest(): boolean {
2
2
  if (global.process == null) {
3
3
  // In a WebBrowser/Electron the `process` variable does not exist
4
4
  return false;
5
5
  }
6
- return process.env.JEST_WORKER_ID != null;
6
+ return (
7
+ process.env.JEST_WORKER_ID != null || process.env.VITEST_WORKER_ID != null
8
+ );
7
9
  }
package/src/index.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export * from './MMKV';
2
2
  export * from './hooks';
3
+
4
+ export { Mode, Configuration } from './NativeMmkv';