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

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 (58) hide show
  1. package/cpp/MmkvHostObject.cpp +34 -46
  2. package/lib/commonjs/MMKV.js +0 -13
  3. package/lib/commonjs/MMKV.js.map +1 -1
  4. package/lib/commonjs/ModuleNotFoundError.js +75 -0
  5. package/lib/commonjs/ModuleNotFoundError.js.map +1 -0
  6. package/lib/commonjs/NativeMmkv.js +21 -14
  7. package/lib/commonjs/NativeMmkv.js.map +1 -1
  8. package/lib/commonjs/NativeMmkvPlatformContext.js +14 -5
  9. package/lib/commonjs/NativeMmkvPlatformContext.js.map +1 -1
  10. package/lib/commonjs/createMMKV.js +2 -1
  11. package/lib/commonjs/createMMKV.js.map +1 -1
  12. package/lib/commonjs/hooks.js.map +1 -1
  13. package/lib/commonjs/index.js +0 -19
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/module/MMKV.js +0 -1
  16. package/lib/module/MMKV.js.map +1 -1
  17. package/lib/module/ModuleNotFoundError.js +68 -0
  18. package/lib/module/ModuleNotFoundError.js.map +1 -0
  19. package/lib/module/NativeMmkv.js +20 -14
  20. package/lib/module/NativeMmkv.js.map +1 -1
  21. package/lib/module/NativeMmkvPlatformContext.js +13 -4
  22. package/lib/module/NativeMmkvPlatformContext.js.map +1 -1
  23. package/lib/module/createMMKV.js +3 -2
  24. package/lib/module/createMMKV.js.map +1 -1
  25. package/lib/module/hooks.js.map +1 -1
  26. package/lib/module/index.js +0 -1
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/typescript/src/MMKV.d.ts +3 -3
  29. package/lib/typescript/src/MMKV.d.ts.map +1 -1
  30. package/lib/typescript/src/ModuleNotFoundError.d.ts +7 -0
  31. package/lib/typescript/src/ModuleNotFoundError.d.ts.map +1 -0
  32. package/lib/typescript/src/NativeMmkv.d.ts +3 -3
  33. package/lib/typescript/src/NativeMmkv.d.ts.map +1 -1
  34. package/lib/typescript/src/NativeMmkvPlatformContext.d.ts +2 -2
  35. package/lib/typescript/src/NativeMmkvPlatformContext.d.ts.map +1 -1
  36. package/lib/typescript/src/createMMKV.d.ts.map +1 -1
  37. package/lib/typescript/src/hooks.d.ts +2 -1
  38. package/lib/typescript/src/hooks.d.ts.map +1 -1
  39. package/lib/typescript/src/index.d.ts +1 -1
  40. package/lib/typescript/src/index.d.ts.map +1 -1
  41. package/package.json +3 -21
  42. package/react-native.config.js +1 -1
  43. package/src/MMKV.ts +3 -3
  44. package/src/ModuleNotFoundError.ts +95 -0
  45. package/src/NativeMmkv.ts +21 -17
  46. package/src/NativeMmkvPlatformContext.ts +16 -5
  47. package/src/createMMKV.ts +4 -2
  48. package/src/hooks.ts +2 -1
  49. package/src/index.ts +1 -1
  50. package/LICENSE +0 -20
  51. package/README.md +0 -282
  52. package/lib/commonjs/LazyTurboModule.js +0 -66
  53. package/lib/commonjs/LazyTurboModule.js.map +0 -1
  54. package/lib/module/LazyTurboModule.js +0 -60
  55. package/lib/module/LazyTurboModule.js.map +0 -1
  56. package/lib/typescript/src/LazyTurboModule.d.ts +0 -9
  57. package/lib/typescript/src/LazyTurboModule.d.ts.map +0 -1
  58. package/src/LazyTurboModule.ts +0 -98
@@ -0,0 +1,68 @@
1
+ import { NativeModules, Platform } from 'react-native';
2
+ const BULLET_POINT = '\n* ';
3
+ function messageWithSuggestions(message, suggestions) {
4
+ return message + BULLET_POINT + suggestions.join(BULLET_POINT);
5
+ }
6
+ function getFrameworkType() {
7
+ // check if Expo
8
+ const ExpoConstants = NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants;
9
+ if (ExpoConstants != null) {
10
+ if (ExpoConstants.appOwnership === 'expo') {
11
+ // We're running Expo Go
12
+ return 'expo-go';
13
+ } else {
14
+ // We're running Expo bare / standalone
15
+ return 'expo';
16
+ }
17
+ }
18
+ return 'react-native';
19
+ }
20
+ export class ModuleNotFoundError extends Error {
21
+ constructor(cause) {
22
+ // TurboModule not found, something went wrong!
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
+ const message = 'Failed to create a new MMKV instance: react-native-mmkv 3.x.x requires TurboModules, but the new architecture is not enabled!';
28
+ const suggestions = [];
29
+ suggestions.push('Downgrade to react-native-mmkv 2.x.x if you want to stay on the old architecture.');
30
+ suggestions.push('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)');
31
+ const error = messageWithSuggestions(message, suggestions);
32
+ super(error, {
33
+ cause: cause
34
+ });
35
+ return;
36
+ }
37
+ const framework = getFrameworkType();
38
+ if (framework === 'expo-go') {
39
+ super('react-native-mmkv is not supported in Expo Go! Use EAS (`expo prebuild`) or eject to a bare workflow instead.');
40
+ return;
41
+ }
42
+ const message = 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
43
+ const suggestions = [];
44
+ suggestions.push('Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)');
45
+ 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');
46
+ suggestions.push('Make sure you are using react-native 0.74.0 or higher, because react-native-mmkv is a C++ TurboModule.');
47
+ suggestions.push('Make sure you rebuilt the app.');
48
+ if (framework === 'expo') {
49
+ suggestions.push('Make sure you ran `expo prebuild`.');
50
+ }
51
+ switch (Platform.OS) {
52
+ case 'ios':
53
+ case 'macos':
54
+ suggestions.push('Make sure you ran `pod install` in the ios/ directory.');
55
+ break;
56
+ case 'android':
57
+ suggestions.push('Make sure gradle is synced.');
58
+ break;
59
+ default:
60
+ throw new Error(`MMKV is not supported on ${Platform.OS}!`);
61
+ }
62
+ const error = messageWithSuggestions(message, suggestions);
63
+ super(error, {
64
+ cause: cause
65
+ });
66
+ }
67
+ }
68
+ //# sourceMappingURL=ModuleNotFoundError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","Platform","BULLET_POINT","messageWithSuggestions","message","suggestions","join","getFrameworkType","ExpoConstants","NativeUnimoduleProxy","modulesConstants","ExponentConstants","appOwnership","ModuleNotFoundError","Error","constructor","cause","global","__turboModuleProxy","push","error","framework","OS"],"sourceRoot":"../../src","sources":["ModuleNotFoundError.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAOtD,MAAMC,YAAY,GAAG,MAAM;AAE3B,SAASC,sBAAsBA,CAC7BC,OAAe,EACfC,WAAqB,EACb;EACR,OAAOD,OAAO,GAAGF,YAAY,GAAGG,WAAW,CAACC,IAAI,CAACJ,YAAY,CAAC;AAChE;AAEA,SAASK,gBAAgBA,CAAA,EAAwC;EAC/D;EACA,MAAMC,aAAa,GACjBR,aAAa,CAACS,oBAAoB,EAAEC,gBAAgB,EAAEC,iBAAiB;EACzE,IAAIH,aAAa,IAAI,IAAI,EAAE;IACzB,IAAIA,aAAa,CAACI,YAAY,KAAK,MAAM,EAAE;MACzC;MACA,OAAO,SAAS;IAClB,CAAC,MAAM;MACL;MACA,OAAO,MAAM;IACf;EACF;EACA,OAAO,cAAc;AACvB;AAEA,OAAO,MAAMC,mBAAmB,SAASC,KAAK,CAAC;EAC7CC,WAAWA,CAACC,KAAe,EAAE;IAC3B;IACA,IAAIC,MAAM,CAACC,kBAAkB,IAAI,IAAI,EAAE;MACrC;MACA;MACA;MACA,MAAMd,OAAO,GACX,+HAA+H;MACjI,MAAMC,WAAqB,GAAG,EAAE;MAChCA,WAAW,CAACc,IAAI,CACd,mFACF,CAAC;MACDd,WAAW,CAACc,IAAI,CACd,sKACF,CAAC;MACD,MAAMC,KAAK,GAAGjB,sBAAsB,CAACC,OAAO,EAAEC,WAAW,CAAC;MAC1D,KAAK,CAACe,KAAK,EAAE;QAAEJ,KAAK,EAAEA;MAAM,CAAC,CAAC;MAC9B;IACF;IAEA,MAAMK,SAAS,GAAGd,gBAAgB,CAAC,CAAC;IACpC,IAAIc,SAAS,KAAK,SAAS,EAAE;MAC3B,KAAK,CACH,+GACF,CAAC;MACD;IACF;IAEA,MAAMjB,OAAO,GACX,kFAAkF;IACpF,MAAMC,WAAqB,GAAG,EAAE;IAChCA,WAAW,CAACc,IAAI,CACd,+FACF,CAAC;IACDd,WAAW,CAACc,IAAI,CACd,kNACF,CAAC;IACDd,WAAW,CAACc,IAAI,CACd,wGACF,CAAC;IACDd,WAAW,CAACc,IAAI,CAAC,gCAAgC,CAAC;IAClD,IAAIE,SAAS,KAAK,MAAM,EAAE;MACxBhB,WAAW,CAACc,IAAI,CAAC,oCAAoC,CAAC;IACxD;IACA,QAAQlB,QAAQ,CAACqB,EAAE;MACjB,KAAK,KAAK;MACV,KAAK,OAAO;QACVjB,WAAW,CAACc,IAAI,CACd,wDACF,CAAC;QACD;MACF,KAAK,SAAS;QACZd,WAAW,CAACc,IAAI,CAAC,6BAA6B,CAAC;QAC/C;MACF;QACE,MAAM,IAAIL,KAAK,CAAE,4BAA2Bb,QAAQ,CAACqB,EAAG,GAAE,CAAC;IAC/D;IAEA,MAAMF,KAAK,GAAGjB,sBAAsB,CAACC,OAAO,EAAEC,WAAW,CAAC;IAC1D,KAAK,CAACe,KAAK,EAAE;MAAEJ,KAAK,EAAEA;IAAM,CAAC,CAAC;EAChC;AACF","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { TurboModuleRegistry } from 'react-native';
2
- import { getLazyTurboModule } from './LazyTurboModule';
3
- import { PlatformContext } from './NativeMmkvPlatformContext';
2
+ import { ModuleNotFoundError } from './ModuleNotFoundError';
3
+ import { getMMKVPlatformContextTurboModule } from './NativeMmkvPlatformContext';
4
4
 
5
5
  /**
6
6
  * Configures the mode of the MMKV instance.
@@ -15,18 +15,24 @@ export let Mode = /*#__PURE__*/function (Mode) {
15
15
  * Used for configuration of a single MMKV instance.
16
16
  */
17
17
 
18
- let basePath = null;
19
- function getNativeModule() {
20
- if (basePath == null) {
21
- // use default base path from the Platform (iOS/Android)
22
- basePath = PlatformContext.getBaseDirectory();
23
- }
24
- const module = TurboModuleRegistry.get('MmkvCxx');
25
- if (module != null) {
26
- // initialize MMKV
27
- module.initialize(basePath);
18
+ let module;
19
+ export function getMMKVTurboModule() {
20
+ try {
21
+ if (module == null) {
22
+ // 1. Load MMKV TurboModule
23
+ module = TurboModuleRegistry.getEnforcing('MmkvCxx');
24
+
25
+ // 2. Get the PlatformContext TurboModule as well
26
+ const platformContext = getMMKVPlatformContextTurboModule();
27
+
28
+ // 3. Initialize it with the documents directory from platform-specific context
29
+ const basePath = platformContext.getBaseDirectory();
30
+ module.initialize(basePath);
31
+ }
32
+ return module;
33
+ } catch (cause) {
34
+ // TurboModule could not be found!
35
+ throw new ModuleNotFoundError(cause);
28
36
  }
29
- return module;
30
37
  }
31
- export const MMKVTurboModule = getLazyTurboModule(getNativeModule);
32
38
  //# sourceMappingURL=NativeMmkv.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getLazyTurboModule","PlatformContext","Mode","basePath","getNativeModule","getBaseDirectory","module","get","initialize","MMKVTurboModule"],"sourceRoot":"../../src","sources":["NativeMmkv.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAElD,SAASC,kBAAkB,QAAQ,mBAAmB;AACtD,SAASC,eAAe,QAAQ,6BAA6B;;AAE7D;AACA;AACA;AACA,WAAYC,IAAI,0BAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;;AAWhB;AACA;AACA;;AAiEA,IAAIC,QAAuB,GAAG,IAAI;AAElC,SAASC,eAAeA,CAAA,EAAgB;EACtC,IAAID,QAAQ,IAAI,IAAI,EAAE;IACpB;IACAA,QAAQ,GAAGF,eAAe,CAACI,gBAAgB,CAAC,CAAC;EAC/C;EAEA,MAAMC,MAAM,GAAGP,mBAAmB,CAACQ,GAAG,CAAO,SAAS,CAAC;EAEvD,IAAID,MAAM,IAAI,IAAI,EAAE;IAClB;IACAA,MAAM,CAACE,UAAU,CAACL,QAAQ,CAAC;EAC7B;EAEA,OAAOG,MAAM;AACf;AACA,OAAO,MAAMG,eAAe,GAAGT,kBAAkB,CAACI,eAAe,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","ModuleNotFoundError","getMMKVPlatformContextTurboModule","Mode","module","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,WAAYC,IAAI,0BAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAJA,IAAI,CAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;;AAWhB;AACA;AACA;;AAiEA,IAAIC,MAAmB;AAEvB,OAAO,SAASC,kBAAkBA,CAAA,EAAS;EACzC,IAAI;IACF,IAAID,MAAM,IAAI,IAAI,EAAE;MAClB;MACAA,MAAM,GAAGJ,mBAAmB,CAACM,YAAY,CAAO,SAAS,CAAC;;MAE1D;MACA,MAAMC,eAAe,GAAGL,iCAAiC,CAAC,CAAC;;MAE3D;MACA,MAAMM,QAAQ,GAAGD,eAAe,CAACE,gBAAgB,CAAC,CAAC;MACnDL,MAAM,CAACM,UAAU,CAACF,QAAQ,CAAC;IAC7B;IAEA,OAAOJ,MAAM;EACf,CAAC,CAAC,OAAOO,KAAK,EAAE;IACd;IACA,MAAM,IAAIV,mBAAmB,CAACU,KAAK,CAAC;EACtC;AACF","ignoreList":[]}
@@ -1,7 +1,16 @@
1
1
  import { TurboModuleRegistry } from 'react-native';
2
- import { getLazyTurboModule } from './LazyTurboModule';
3
- function getModule() {
4
- return TurboModuleRegistry.get('MmkvPlatformContext');
2
+ import { ModuleNotFoundError } from './ModuleNotFoundError';
3
+ let module;
4
+ export function getMMKVPlatformContextTurboModule() {
5
+ try {
6
+ if (module == null) {
7
+ // 1. Get the TurboModule
8
+ module = TurboModuleRegistry.getEnforcing('MmkvPlatformContext');
9
+ }
10
+ return module;
11
+ } catch (e) {
12
+ // TurboModule could not be found!
13
+ throw new ModuleNotFoundError(e);
14
+ }
5
15
  }
6
- export const PlatformContext = getLazyTurboModule(getModule);
7
16
  //# sourceMappingURL=NativeMmkvPlatformContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getLazyTurboModule","getModule","get","PlatformContext"],"sourceRoot":"../../src","sources":["NativeMmkvPlatformContext.ts"],"mappings":"AAAA,SAAsBA,mBAAmB,QAAQ,cAAc;AAC/D,SAASC,kBAAkB,QAAQ,mBAAmB;AAStD,SAASC,SAASA,CAAA,EAAgB;EAChC,OAAOF,mBAAmB,CAACG,GAAG,CAAO,qBAAqB,CAAC;AAC7D;AACA,OAAO,MAAMC,eAAe,GAAGH,kBAAkB,CAACC,SAAS,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","ModuleNotFoundError","module","getMMKVPlatformContextTurboModule","getEnforcing","e"],"sourceRoot":"../../src","sources":["NativeMmkvPlatformContext.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAClD,SAASC,mBAAmB,QAAQ,uBAAuB;AAS3D,IAAIC,MAAmB;AAEvB,OAAO,SAASC,iCAAiCA,CAAA,EAAS;EACxD,IAAI;IACF,IAAID,MAAM,IAAI,IAAI,EAAE;MAClB;MACAA,MAAM,GAAGF,mBAAmB,CAACI,YAAY,CAAO,qBAAqB,CAAC;IACxE;IACA,OAAOF,MAAM;EACf,CAAC,CAAC,OAAOG,CAAC,EAAE;IACV;IACA,MAAM,IAAIJ,mBAAmB,CAACI,CAAC,CAAC;EAClC;AACF","ignoreList":[]}
@@ -1,6 +1,7 @@
1
- import { MMKVTurboModule } from './NativeMmkv';
1
+ import { getMMKVTurboModule } from './NativeMmkv';
2
2
  export const createMMKV = config => {
3
- const instance = MMKVTurboModule.createMMKV(config);
3
+ const module = getMMKVTurboModule();
4
+ const instance = module.createMMKV(config);
4
5
  if (__DEV__) {
5
6
  if (typeof instance !== 'object' || instance == null) {
6
7
  throw new Error('Failed to create MMKV instance - an unknown object was returned by createMMKV(..)!');
@@ -1 +1 @@
1
- {"version":3,"names":["MMKVTurboModule","createMMKV","config","instance","__DEV__","Error"],"sourceRoot":"../../src","sources":["createMMKV.ts"],"mappings":"AACA,SAASA,eAAe,QAAQ,cAAc;AAG9C,OAAO,MAAMC,UAAU,GAAIC,MAAqB,IAAiB;EAC/D,MAAMC,QAAQ,GAAGH,eAAe,CAACC,UAAU,CAACC,MAAM,CAAC;EACnD,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","ignoreList":[]}
1
+ {"version":3,"names":["getMMKVTurboModule","createMMKV","config","module","instance","__DEV__","Error"],"sourceRoot":"../../src","sources":["createMMKV.ts"],"mappings":"AACA,SAASA,kBAAkB,QAAQ,cAAc;AAGjD,OAAO,MAAMC,UAAU,GAAIC,MAAqB,IAAiB;EAC/D,MAAMC,MAAM,GAAGH,kBAAkB,CAAC,CAAC;EAEnC,MAAMI,QAAQ,GAAGD,MAAM,CAACF,UAAU,CAACC,MAAM,CAAC;EAC1C,IAAIG,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":["useRef","useState","useMemo","useCallback","useEffect","MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","mode","defaultInstance","getDefaultInstance","useMMKV","configuration","instance","lastConfiguration","current","createMMKVHook","getter","key","mmkv","bump","setBump","value","set","v","newValue","delete","ArrayBuffer","Error","listener","addOnValueChangedListener","changedKey","b","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","undefined","JSON","parse","setValue","Function","currentJson","currentValue","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRef","useState","useMemo","useCallback","useEffect","MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","mode","defaultInstance","getDefaultInstance","useMMKV","configuration","instance","lastConfiguration","current","createMMKVHook","getter","key","mmkv","bump","setBump","value","set","v","newValue","delete","ArrayBuffer","Error","listener","addOnValueChangedListener","changedKey","b","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","undefined","JSON","parse","setValue","Function","currentJson","currentValue","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
1
  export * from './MMKV';
2
2
  export * from './hooks';
3
- export { Mode, Configuration } from './NativeMmkv';
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,cAAc,QAAQ;AACtB,cAAc,SAAS","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { Configuration } from './NativeMmkv';
2
- import { Listener, MMKVInterface } from './Types';
3
- export { Configuration, Mode } from './NativeMmkv';
1
+ import type { Configuration } from './NativeMmkv';
2
+ import type { Listener, MMKVInterface } from './Types';
3
+ export type { Configuration } from './NativeMmkv';
4
4
  /**
5
5
  * A single MMKV instance.
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MMKV.d.ts","sourceRoot":"","sources":["../../../src/MMKV.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAc,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAAa,IAAK,YAAW,aAAa;IACxC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,EAAE,CAAS;IAEnB;;;OAGG;gBACS,aAAa,GAAE,aAAsC;IAajE,OAAO,KAAK,uBAAuB,GAKlC;IAED,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe;IAUvB,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,IAAI;IAMtE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI5C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI/C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI9B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMzB,UAAU,IAAI,MAAM,EAAE;IAItB,QAAQ,IAAI,IAAI;IAQhB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAItC,IAAI,IAAI,IAAI;IAKZ,QAAQ,IAAI,MAAM;IAGlB,MAAM,IAAI,MAAM;IAMhB,yBAAyB,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,QAAQ;CAY3E"}
1
+ {"version":3,"file":"MMKV.d.ts","sourceRoot":"","sources":["../../../src/MMKV.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAc,MAAM,SAAS,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD;;GAEG;AACH,qBAAa,IAAK,YAAW,aAAa;IACxC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,EAAE,CAAS;IAEnB;;;OAGG;gBACS,aAAa,GAAE,aAAsC;IAajE,OAAO,KAAK,uBAAuB,GAKlC;IAED,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe;IAUvB,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,IAAI;IAMtE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI5C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI/C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI9B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMzB,UAAU,IAAI,MAAM,EAAE;IAItB,QAAQ,IAAI,IAAI;IAQhB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAItC,IAAI,IAAI,IAAI;IAKZ,QAAQ,IAAI,MAAM;IAGlB,MAAM,IAAI,MAAM;IAMhB,yBAAyB,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,QAAQ;CAY3E"}
@@ -0,0 +1,7 @@
1
+ declare global {
2
+ var __turboModuleProxy: unknown | undefined;
3
+ }
4
+ export declare class ModuleNotFoundError extends Error {
5
+ constructor(cause?: unknown);
6
+ }
7
+ //# sourceMappingURL=ModuleNotFoundError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleNotFoundError.d.ts","sourceRoot":"","sources":["../../../src/ModuleNotFoundError.ts"],"names":[],"mappings":"AAEA,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,kBAAkB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AA2BD,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,KAAK,CAAC,EAAE,OAAO;CA6D5B"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react-native/types/modules/Codegen" />
2
- import { TurboModule } from 'react-native';
3
- import { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
2
+ import type { TurboModule } from 'react-native';
3
+ import type { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
4
4
  /**
5
5
  * Configures the mode of the MMKV instance.
6
6
  */
@@ -79,5 +79,5 @@ export interface Spec extends TurboModule {
79
79
  */
80
80
  createMMKV(configuration: Configuration): UnsafeObject;
81
81
  }
82
- export declare const MMKVTurboModule: Spec;
82
+ export declare function getMMKVTurboModule(): Spec;
83
83
  //# sourceMappingURL=NativeMmkv.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NativeMmkv.d.ts","sourceRoot":"","sources":["../../../src/NativeMmkv.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAIzE;;GAEG;AACH,oBAAY,IAAI;IACd;;OAEG;IACH,cAAc,IAAA;IACd;;OAEG;IACH,aAAa,IAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;OAUG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC;;;OAGG;IACH,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY,CAAC;CACxD;AAmBD,eAAO,MAAM,eAAe,MAAsC,CAAC"}
1
+ {"version":3,"file":"NativeMmkv.d.ts","sourceRoot":"","sources":["../../../src/NativeMmkv.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAI9E;;GAEG;AACH,oBAAY,IAAI;IACd;;OAEG;IACH,cAAc,IAAA;IACd;;OAEG;IACH,aAAa,IAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;OAUG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC;;;OAGG;IACH,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY,CAAC;CACxD;AAID,wBAAgB,kBAAkB,IAAI,IAAI,CAmBzC"}
@@ -1,9 +1,9 @@
1
- import { TurboModule } from 'react-native';
1
+ import type { TurboModule } from 'react-native';
2
2
  export interface Spec extends TurboModule {
3
3
  /**
4
4
  * Gets the base directory of the documents storage
5
5
  */
6
6
  getBaseDirectory(): string;
7
7
  }
8
- export declare const PlatformContext: Spec;
8
+ export declare function getMMKVPlatformContextTurboModule(): Spec;
9
9
  //# sourceMappingURL=NativeMmkvPlatformContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NativeMmkvPlatformContext.d.ts","sourceRoot":"","sources":["../../../src/NativeMmkvPlatformContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,cAAc,CAAC;AAGhE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;OAEG;IACH,gBAAgB,IAAI,MAAM,CAAC;CAC5B;AAKD,eAAO,MAAM,eAAe,MAAgC,CAAC"}
1
+ {"version":3,"file":"NativeMmkvPlatformContext.d.ts","sourceRoot":"","sources":["../../../src/NativeMmkvPlatformContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC;;OAEG;IACH,gBAAgB,IAAI,MAAM,CAAC;CAC5B;AAID,wBAAgB,iCAAiC,IAAI,IAAI,CAWxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"createMMKV.d.ts","sourceRoot":"","sources":["../../../src/createMMKV.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,UAAU,WAAY,aAAa,KAAG,UAUlD,CAAC"}
1
+ {"version":3,"file":"createMMKV.d.ts","sourceRoot":"","sources":["../../../src/createMMKV.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,UAAU,WAAY,aAAa,KAAG,UAYlD,CAAC"}
@@ -1,4 +1,5 @@
1
- import { MMKV, Configuration } from './MMKV';
1
+ import type { Configuration } from './MMKV';
2
+ import { MMKV } from './MMKV';
2
3
  /**
3
4
  * Use the default, shared MMKV instance.
4
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAwB7C;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAAC;AAChC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;AAiF5D;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAnEjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CAmEpD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAjFjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CAiFpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QA9FlB,MAAM,aACA,IAAI,sIAC8B,IAAI,CA8FpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QA3GjB,MAAM,aACA,IAAI,sJAC8B,IAAI,CA2GpD,CAAC;AACF;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,IAAI,GACd;IACD,KAAK,EAAE,CAAC,GAAG,SAAS;IACpB,QAAQ,EAAE,CACR,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,SAAS,CAAC,KACjE,IAAI;CACV,CA4BA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC3C,QAAQ,CAAC,EAAE,IAAI,GACd,IAAI,CAYN"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAwB9B;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAAC;AAChC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;AAiF5D;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAnEjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CAmEpD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAjFjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CAiFpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QA9FlB,MAAM,aACA,IAAI,sIAC8B,IAAI,CA8FpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QA3GjB,MAAM,aACA,IAAI,sJAC8B,IAAI,CA2GpD,CAAC;AACF;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,IAAI,GACd;IACD,KAAK,EAAE,CAAC,GAAG,SAAS;IACpB,QAAQ,EAAE,CACR,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,SAAS,CAAC,KACjE,IAAI;CACV,CA4BA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC3C,QAAQ,CAAC,EAAE,IAAI,GACd,IAAI,CAYN"}
@@ -1,4 +1,4 @@
1
1
  export * from './MMKV';
2
2
  export * from './hooks';
3
- export { Mode, Configuration } from './NativeMmkv';
3
+ export type { Mode, Configuration } from './NativeMmkv';
4
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;AAExB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,YAAY,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.3",
3
+ "version": "3.0.0-beta.5",
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",
@@ -148,28 +148,10 @@
148
148
  }
149
149
  }
150
150
  },
151
- "eslintConfig": {
152
- "root": true,
153
- "extends": [
154
- "@react-native",
155
- "prettier"
156
- ],
157
- "rules": {
158
- "prettier/prettier": [
159
- "error",
160
- {
161
- "quoteProps": "consistent",
162
- "singleQuote": true,
163
- "tabWidth": 2,
164
- "trailingComma": "es5",
165
- "useTabs": false
166
- }
167
- ]
168
- }
169
- },
170
151
  "eslintIgnore": [
171
152
  "node_modules/",
172
- "lib/"
153
+ "lib/",
154
+ "MMKV"
173
155
  ],
174
156
  "prettier": {
175
157
  "quoteProps": "consistent",
@@ -12,7 +12,7 @@ module.exports = {
12
12
  */
13
13
  android: {
14
14
  cxxModuleCMakeListsModuleName: 'react-native-mmkv',
15
- cxxModuleCMakeListsPath: `${__dirname}/android/CMakeLists.txt`,
15
+ cxxModuleCMakeListsPath: 'CMakeLists.txt',
16
16
  cxxModuleHeaderName: 'NativeMmkvModule',
17
17
  },
18
18
  },
package/src/MMKV.ts CHANGED
@@ -2,9 +2,9 @@ import { AppState } from 'react-native';
2
2
  import { createMMKV } from './createMMKV';
3
3
  import { createMockMMKV } from './createMMKV.mock';
4
4
  import { isTest } from './PlatformChecker';
5
- import { Configuration } from './NativeMmkv';
6
- import { Listener, MMKVInterface, NativeMMKV } from './Types';
7
- export { Configuration, Mode } from './NativeMmkv';
5
+ import type { Configuration } from './NativeMmkv';
6
+ import type { Listener, MMKVInterface, NativeMMKV } from './Types';
7
+ export type { Configuration } from './NativeMmkv';
8
8
 
9
9
  const onValueChangedListeners = new Map<string, ((key: string) => void)[]>();
10
10
 
@@ -0,0 +1,95 @@
1
+ import { NativeModules, Platform } from 'react-native';
2
+
3
+ declare global {
4
+ // A react-native internal from TurboModuleRegistry.js
5
+ var __turboModuleProxy: unknown | undefined;
6
+ }
7
+
8
+ const BULLET_POINT = '\n* ';
9
+
10
+ function messageWithSuggestions(
11
+ message: string,
12
+ suggestions: string[]
13
+ ): string {
14
+ return message + BULLET_POINT + suggestions.join(BULLET_POINT);
15
+ }
16
+
17
+ function getFrameworkType(): 'react-native' | 'expo' | 'expo-go' {
18
+ // check if Expo
19
+ const ExpoConstants =
20
+ NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants;
21
+ if (ExpoConstants != null) {
22
+ if (ExpoConstants.appOwnership === 'expo') {
23
+ // We're running Expo Go
24
+ return 'expo-go';
25
+ } else {
26
+ // We're running Expo bare / standalone
27
+ return 'expo';
28
+ }
29
+ }
30
+ return 'react-native';
31
+ }
32
+
33
+ export class ModuleNotFoundError extends Error {
34
+ constructor(cause?: unknown) {
35
+ // TurboModule not found, something went wrong!
36
+ if (global.__turboModuleProxy == null) {
37
+ // TurboModules are not available/new arch is not enabled.
38
+ // react-native-mmkv 3.x.x requires new arch (react-native >0.74)
39
+ // react-native-mmkv 2.x.x works on old arch (react-native <0.74)
40
+ const message =
41
+ 'Failed to create a new MMKV instance: react-native-mmkv 3.x.x requires TurboModules, but the new architecture is not enabled!';
42
+ const suggestions: string[] = [];
43
+ suggestions.push(
44
+ 'Downgrade to react-native-mmkv 2.x.x if you want to stay on the old architecture.'
45
+ );
46
+ suggestions.push(
47
+ '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)'
48
+ );
49
+ const error = messageWithSuggestions(message, suggestions);
50
+ super(error, { cause: cause });
51
+ return;
52
+ }
53
+
54
+ const framework = getFrameworkType();
55
+ if (framework === 'expo-go') {
56
+ super(
57
+ 'react-native-mmkv is not supported in Expo Go! Use EAS (`expo prebuild`) or eject to a bare workflow instead.'
58
+ );
59
+ return;
60
+ }
61
+
62
+ const message =
63
+ 'Failed to create a new MMKV instance: The native MMKV Module could not be found.';
64
+ const suggestions: string[] = [];
65
+ suggestions.push(
66
+ 'Make sure react-native-mmkv is correctly autolinked (run `npx react-native config` to verify)'
67
+ );
68
+ suggestions.push(
69
+ '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'
70
+ );
71
+ suggestions.push(
72
+ 'Make sure you are using react-native 0.74.0 or higher, because react-native-mmkv is a C++ TurboModule.'
73
+ );
74
+ suggestions.push('Make sure you rebuilt the app.');
75
+ if (framework === 'expo') {
76
+ suggestions.push('Make sure you ran `expo prebuild`.');
77
+ }
78
+ switch (Platform.OS) {
79
+ case 'ios':
80
+ case 'macos':
81
+ suggestions.push(
82
+ 'Make sure you ran `pod install` in the ios/ directory.'
83
+ );
84
+ break;
85
+ case 'android':
86
+ suggestions.push('Make sure gradle is synced.');
87
+ break;
88
+ default:
89
+ throw new Error(`MMKV is not supported on ${Platform.OS}!`);
90
+ }
91
+
92
+ const error = messageWithSuggestions(message, suggestions);
93
+ super(error, { cause: cause });
94
+ }
95
+ }
package/src/NativeMmkv.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { TurboModule } from 'react-native';
1
+ import type { TurboModule } from 'react-native';
2
2
  import { TurboModuleRegistry } from 'react-native';
3
- import { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
4
- import { getLazyTurboModule } from './LazyTurboModule';
5
- import { PlatformContext } from './NativeMmkvPlatformContext';
3
+ import type { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
4
+ import { ModuleNotFoundError } from './ModuleNotFoundError';
5
+ import { getMMKVPlatformContextTurboModule } from './NativeMmkvPlatformContext';
6
6
 
7
7
  /**
8
8
  * Configures the mode of the MMKV instance.
@@ -85,21 +85,25 @@ export interface Spec extends TurboModule {
85
85
  createMMKV(configuration: Configuration): UnsafeObject;
86
86
  }
87
87
 
88
- let basePath: string | null = null;
88
+ let module: Spec | null;
89
89
 
90
- function getNativeModule(): Spec | null {
91
- if (basePath == null) {
92
- // use default base path from the Platform (iOS/Android)
93
- basePath = PlatformContext.getBaseDirectory();
94
- }
90
+ export function getMMKVTurboModule(): Spec {
91
+ try {
92
+ if (module == null) {
93
+ // 1. Load MMKV TurboModule
94
+ module = TurboModuleRegistry.getEnforcing<Spec>('MmkvCxx');
95
95
 
96
- const module = TurboModuleRegistry.get<Spec>('MmkvCxx');
96
+ // 2. Get the PlatformContext TurboModule as well
97
+ const platformContext = getMMKVPlatformContextTurboModule();
97
98
 
98
- if (module != null) {
99
- // initialize MMKV
100
- module.initialize(basePath);
101
- }
99
+ // 3. Initialize it with the documents directory from platform-specific context
100
+ const basePath = platformContext.getBaseDirectory();
101
+ module.initialize(basePath);
102
+ }
102
103
 
103
- return module;
104
+ return module;
105
+ } catch (cause) {
106
+ // TurboModule could not be found!
107
+ throw new ModuleNotFoundError(cause);
108
+ }
104
109
  }
105
- export const MMKVTurboModule = getLazyTurboModule(getNativeModule);
@@ -1,5 +1,6 @@
1
- import { TurboModule, TurboModuleRegistry } from 'react-native';
2
- import { getLazyTurboModule } from './LazyTurboModule';
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+ import { ModuleNotFoundError } from './ModuleNotFoundError';
3
4
 
4
5
  export interface Spec extends TurboModule {
5
6
  /**
@@ -8,7 +9,17 @@ export interface Spec extends TurboModule {
8
9
  getBaseDirectory(): string;
9
10
  }
10
11
 
11
- function getModule(): Spec | null {
12
- return TurboModuleRegistry.get<Spec>('MmkvPlatformContext');
12
+ let module: Spec | null;
13
+
14
+ export function getMMKVPlatformContextTurboModule(): Spec {
15
+ try {
16
+ if (module == null) {
17
+ // 1. Get the TurboModule
18
+ module = TurboModuleRegistry.getEnforcing<Spec>('MmkvPlatformContext');
19
+ }
20
+ return module;
21
+ } catch (e) {
22
+ // TurboModule could not be found!
23
+ throw new ModuleNotFoundError(e);
24
+ }
13
25
  }
14
- export const PlatformContext = getLazyTurboModule(getModule);
package/src/createMMKV.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import type { Configuration } from './MMKV';
2
- import { MMKVTurboModule } from './NativeMmkv';
2
+ import { getMMKVTurboModule } from './NativeMmkv';
3
3
  import type { NativeMMKV } from './Types';
4
4
 
5
5
  export const createMMKV = (config: Configuration): NativeMMKV => {
6
- const instance = MMKVTurboModule.createMMKV(config);
6
+ const module = getMMKVTurboModule();
7
+
8
+ const instance = module.createMMKV(config);
7
9
  if (__DEV__) {
8
10
  if (typeof instance !== 'object' || instance == null) {
9
11
  throw new Error(
package/src/hooks.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { useRef, useState, useMemo, useCallback, useEffect } from 'react';
2
- import { MMKV, Configuration } from './MMKV';
2
+ import type { Configuration } from './MMKV';
3
+ import { MMKV } from './MMKV';
3
4
 
4
5
  function isConfigurationEqual(
5
6
  left?: Configuration,
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './MMKV';
2
2
  export * from './hooks';
3
3
 
4
- export { Mode, Configuration } from './NativeMmkv';
4
+ export type { Mode, Configuration } from './NativeMmkv';
package/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 Marc Rousavy
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is
9
- furnished to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
- SOFTWARE.