2025-07-22 15:16:47 +08:00
|
|
|
import Storage, { LoadParams } from 'react-native-storage';
|
2025-07-14 17:27:00 +08:00
|
|
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
|
|
|
|
|
|
|
|
export const storageApp = new Storage({
|
|
|
|
|
size: 1000,
|
|
|
|
|
storageBackend: AsyncStorage,
|
2025-07-22 15:16:47 +08:00
|
|
|
defaultExpires: 1000 * 3600 * 24 * 60,
|
2025-07-14 17:27:00 +08:00
|
|
|
enableCache: true,
|
|
|
|
|
});
|
2025-07-22 15:16:47 +08:00
|
|
|
/**
|
|
|
|
|
* 缓存一个键值对
|
|
|
|
|
* @param key
|
|
|
|
|
* @param value
|
|
|
|
|
*/
|
|
|
|
|
export const saveItem = (key: string, value: any) =>
|
|
|
|
|
storageApp.save({ key, data: value });
|
|
|
|
|
/**
|
|
|
|
|
* 获取一个键值对
|
|
|
|
|
* @param key
|
|
|
|
|
*/
|
|
|
|
|
export const getItem = (key: string) =>
|
|
|
|
|
storageApp.load({ key, autoSync: true, syncInBackground: true });
|
|
|
|
|
/**
|
|
|
|
|
* 删除一个键值对
|
|
|
|
|
* @param key
|
|
|
|
|
*/
|
|
|
|
|
export const removeItem = (key: string) => storageApp.remove({ key });
|
|
|
|
|
/**
|
|
|
|
|
* 获取批量键值对
|
|
|
|
|
* @param params
|
|
|
|
|
*/
|
|
|
|
|
export const getAllItems = (params: LoadParams[]) =>
|
|
|
|
|
storageApp.getBatchData(params);
|
|
|
|
|
|
|
|
|
|
export const saveAllItems = (
|
|
|
|
|
params: {
|
|
|
|
|
key: string;
|
|
|
|
|
id?: string;
|
|
|
|
|
data: any;
|
|
|
|
|
expires?: number | null;
|
|
|
|
|
}[],
|
|
|
|
|
) => Promise.all([params.map(item => storageApp.save(item))]);
|
|
|
|
|
export const removeAllItems = (params: string[]) =>
|
|
|
|
|
Promise.all([params.map(item => storageApp.remove({ key: item }))]);
|