mmkv.ts 900 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { MMKV } from 'react-native-mmkv';
  2. const storageMMKV = new MMKV();
  3. const get = (key: string, type: StoreType) => {
  4. switch (type) {
  5. case StoreType.STRING:
  6. return storageMMKV.getString(key);
  7. case StoreType.BOOLEAN:
  8. return storageMMKV.getBoolean(key);
  9. case StoreType.NUMBER:
  10. return storageMMKV.getNumber(key);
  11. }
  12. };
  13. const set = (key: string, value: string | boolean | number) => {
  14. storageMMKV.set(key, value);
  15. };
  16. const remove = (key: string) => {
  17. storageMMKV.delete(key);
  18. };
  19. export const storage = { get, set, remove };
  20. export enum StoreType {
  21. STRING = 'string',
  22. NUMBER = 'number',
  23. BOOLEAN = 'boolean'
  24. }
  25. export function loadData<T>(nameKey: string, key: string): T | null {
  26. const namespacedKey = `${nameKey}:${key}`;
  27. const jsonData = storage.get(namespacedKey, StoreType.STRING) as string;
  28. return jsonData ? JSON.parse(jsonData) : null;
  29. }