/** * Memorio Basic Example * * This example shows the fundamental features of Memorio: * - State management * - Store (localStorage) * - Session storage * - Platform detection * * Run: npx ts-node examples/basic.ts */ import 'memorio' // ============================================ // PLATFORM DETECTION // ============================================ console.debug('=== Platform Detection ===') console.debug('Memorio version:', memorio.version) // Check platform if (memorio.isBrowser()) { console.debug('Platform: Browser') } else if (memorio.isNode()) { console.debug('Platform: Node.js') } else if (memorio.isDeno()) { console.debug('Platform: Deno') } else if (memorio.isEdge()) { console.debug('Platform: Edge Worker') } // Get capabilities const caps = memorio.getCapabilities() console.debug('Capabilities:', { platform: caps.platform, hasLocalStorage: caps.hasLocalStorage, hasSessionStorage: caps.hasSessionStorage, hasIndexedDB: caps.hasIndexedDB }) // ============================================ // STATE - In-memory reactive state // ============================================ console.debug('\n=== State Management ===') // Set some state values state.name = 'Mario' state.age = 30 state.isActive = true state.profile = { email: 'mario@example.com', avatar: 'https://example.com/mario.png' } // Get state values console.debug('Name:', state.name) console.debug('Age:', state.age) console.debug('Profile:', state.profile) // List all states console.debug('All states:', state.list) // ============================================ // STORE - Persistent localStorage // ============================================ console.debug('\n=== Store (Persistent Storage) ===') // Check persistence console.debug('Is persistent:', store.isPersistent) // true in browser, false in Node.js/Deno // Save to localStorage store.set('username', 'mario') store.set('preferences', { theme: 'dark', language: 'en' }) store.set('lastLogin', Date.now()) // Read from localStorage console.debug('Username:', store.get('username')) console.debug('Preferences:', store.get('preferences')) // Get storage size console.debug('Storage size:', store.size(), 'bytes') // ============================================ // SESSION - Temporary session storage // ============================================ console.debug('\n=== Session (Temporary Storage) ===') // Check persistence console.debug('Is persistent:', session.isPersistent) // true in browser, false in Node.js/Deno // Save session data (cleared when tab closes) session.set('token', 'abc123xyz') session.set('userId', 42) // Read session data console.debug('Token:', session.get('token')) console.debug('User ID:', session.get('userId')) // ============================================ // CLEANUP // ============================================ // Clear specific items store.remove('username') session.remove('token') // Clear all store.removeAll() session.removeAll() console.debug('\nExample complete!')