UNPKG

react-native-debug-toolkit

Version:

A simple yet powerful debugging toolkit for React Native with a convenient floating UI for development

80 lines (73 loc) 2 kB
import { MMKV } from 'react-native-mmkv'; // Create MMKV instance for storing debug logs const storage = new MMKV({ id: 'debug-toolkit-storage', encryptionKey: 'debug-toolkit-encryption-key' }); // Storage keys for different features const STORAGE_KEYS = { CONSOLE_LOGS: 'console_logs', NETWORK_LOGS: 'network_logs', PERFORMANCE_DATA: 'performance_data', ZUSTAND_LOGS: 'zustand_logs', NAVIGATION_LOGS: 'navigation_logs', }; /** * Utility class for storing and retrieving logs using MMKV */ export class StorageUtils { /** * Save data to MMKV storage * @param {string} key - Storage key * @param {any} data - Data to store */ static saveData(key, data) { try { const jsonString = JSON.stringify(data); storage.set(key, jsonString); } catch (error) { console.error(`Error saving data for key ${key}:`, error); } } /** * Retrieve data from MMKV storage * @param {string} key - Storage key * @param {any} defaultValue - Default value if data doesn't exist * @returns {any} - Retrieved data or default value */ static getData(key, defaultValue = null) { try { const jsonString = storage.getString(key); if (!jsonString) return defaultValue; return JSON.parse(jsonString); } catch (error) { console.error(`Error retrieving data for key ${key}:`, error); return defaultValue; } } /** * Delete data from MMKV storage * @param {string} key - Storage key */ static deleteData(key) { try { storage.delete(key); } catch (error) { console.error(`Error deleting data for key ${key}:`, error); } } /** * Clear all debug toolkit data from storage */ static clearAllData() { try { Object.values(STORAGE_KEYS).forEach(key => { storage.delete(key); }); } catch (error) { console.error('Error clearing all data:', error); } } } // Export storage keys for use in features export { STORAGE_KEYS };