xref: /MusicFree/src/utils/storage.ts (revision 6704747af84cebd842b258efac7143542722fac5)
1import { errorLog } from '@/utils/log';
2import AsyncStorage from '@react-native-async-storage/async-storage';
3
4export async function setStorage(key: string, value: any) {
5  try {
6    await AsyncStorage.setItem(key, JSON.stringify(value, null, ''));
7  } catch(e: any) {
8    errorLog('存储失败', e?.message)
9  }
10}
11
12export async function getStorage(key: string) {
13  try {
14    const result = await AsyncStorage.getItem(key);
15    if (result) {
16      return JSON.parse(result);
17    }
18  } catch {}
19  return null;
20}
21
22export async function getMultiStorage(keys: string[]) {
23  if (keys.length === 0) {
24    return [];
25  }
26  const result = await AsyncStorage.multiGet(keys);
27
28  return result.map(_ => {
29    try {
30      if (_[1]) {
31        return JSON.parse(_[1]);
32      }
33      return null;
34    } catch {
35      return null;
36    }
37  });
38}
39
40export async function removeStorage(key: string) {
41  return AsyncStorage.removeItem(key);
42}
43