Skip to content

Commit

Permalink
fix: Fix mode enum being a number instead of a string in codegen (#754
Browse files Browse the repository at this point in the history
)

* feat: Update MMKV core to V2

* feat: Add `isReadOnly` prop and config

* chore: Lockfiles

* feat: Upgrade deps

* feat: Upgrade deps in package

* fix: Fix missing template argument for `MMKVConfig`

* fix: Add `isReadOnly` to props

* feat: Throw JS Error about readonly

* fix: Format

* docs: Add `readOnly` to config docs

* fix: Fix `mode` enum being a number instead of a string in codegen
  • Loading branch information
mrousavy authored Oct 22, 2024
1 parent 4f96988 commit bf4512b
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion package/src/createMMKV.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Platform } from 'react-native';
import { getMMKVTurboModule, type Configuration } from './NativeMmkv';
import { getMMKVTurboModule, Mode, type Configuration } from './NativeMmkv';
import type { NativeMMKV } from './Types';
import { getMMKVPlatformContextTurboModule } from './NativeMmkvPlatformContext';

Expand All @@ -23,6 +23,13 @@ export const createMMKV = (config: Configuration): NativeMMKV => {
}
}

if (typeof config.mode === 'number') {
// Code-gen expects enums to be strings. In TS, they might be numbers tho.
// This sucks, so we need a workaround.
// @ts-expect-error the native side actually expects a string.
config.mode = Mode[config.mode];
}

const instance = module.createMMKV(config);
if (__DEV__) {
if (typeof instance !== 'object' || instance == null) {
Expand Down

0 comments on commit bf4512b

Please sign in to comment.