xref: /MusicFree/src/utils/getOrCreateMMKV.ts (revision 43eb30bf16ea88ab8e3cdff98faf307c8c8f93d3)
1*43eb30bfS猫头猫import pathConst from '@/constants/pathConst';
2*43eb30bfS猫头猫import {MMKV} from 'react-native-mmkv';
3*43eb30bfS猫头猫
4*43eb30bfS猫头猫const _mmkvCache: Record<string, MMKV> = {};
5*43eb30bfS猫头猫
6*43eb30bfS猫头猫// @ts-ignore;
7*43eb30bfS猫头猫global.mmkv = _mmkvCache;
8*43eb30bfS猫头猫
9*43eb30bfS猫头猫// Internal Method
10*43eb30bfS猫头猫const getOrCreateMMKV = (dbName: string, cachePath = false) => {
11*43eb30bfS猫头猫    if (_mmkvCache[dbName]) {
12*43eb30bfS猫头猫        return _mmkvCache[dbName];
13*43eb30bfS猫头猫    }
14*43eb30bfS猫头猫
15*43eb30bfS猫头猫    const newStore = new MMKV({
16*43eb30bfS猫头猫        id: dbName,
17*43eb30bfS猫头猫        path: cachePath ? pathConst.mmkvCachePath : pathConst.mmkvPath,
18*43eb30bfS猫头猫    });
19*43eb30bfS猫头猫
20*43eb30bfS猫头猫    _mmkvCache[dbName] = newStore;
21*43eb30bfS猫头猫    return newStore;
22*43eb30bfS猫头猫};
23*43eb30bfS猫头猫
24*43eb30bfS猫头猫export default getOrCreateMMKV;
25