import type { AsyncStorage } from "@react-native-async-storage/async-storage"; class AsyncStorageMemoryImpl implements AsyncStorage { private store = new Map(); getItem = async (key: string): Promise => { return this.store.get(key) ?? null; }; setItem = async (key: string, value: string): Promise => { this.store.set(key, value); }; removeItem = async (key: string): Promise => { this.store.delete(key); }; getMany = async (keys: string[]): Promise> => { return keys.reduce>((result, key) => { result[key] = this.store.get(key) ?? null; return result; }, {}); }; setMany = async (entries: Record): Promise => { for (const [key, value] of Object.entries(entries)) { this.store.set(key, value); } }; removeMany = async (keys: string[]): Promise => { for (const key of keys) { this.store.delete(key); } }; getAllKeys = async (): Promise => { return Array.from(this.store.keys()); }; clear = async (): Promise => { this.store.clear(); }; } const inMemoryDbRegistry = new Map(); export function createAsyncStorage(databaseName: string): AsyncStorage { if (!inMemoryDbRegistry.has(databaseName)) { inMemoryDbRegistry.set(databaseName, new AsyncStorageMemoryImpl()); } return inMemoryDbRegistry.get(databaseName)!; } export function clearAllMockStorages(): void { inMemoryDbRegistry.clear(); } export default createAsyncStorage("legacy");