/** * Memorio IDB Example * * This example shows how to use IndexedDB for large data storage. * IDB is perfect for caching, offline data, and large datasets. * * Run: npx ts-node examples/idb.ts */ import 'memorio' // ============================================ // CHECK SUPPORT // ============================================ if (!idb.db.support()) { console.debug('IndexedDB not supported') process.exit(0) } // ============================================ // CREATE DATABASE // ============================================ // Create a new database idb.db.create('myApp') // Create tables (stores) idb.table.create('myApp', 'users') idb.table.create('myApp', 'products') // ============================================ // ADD DATA // ============================================ // Add user records idb.data.set('myApp', 'users', { id: 1, name: 'Mario', email: 'mario@example.com', role: 'admin' }) idb.data.set('myApp', 'users', { id: 2, name: 'Luigi', email: 'luigi@example.com', role: 'user' }) // Add product records idb.data.set('myApp', 'products', { id: 1, name: 'Super Mushroom', price: 99, inStock: true }) idb.data.set('myApp', 'products', { id: 2, name: 'Fire Flower', price: 199, inStock: true }) // ============================================ // READ DATA // ============================================ const user1 = idb.data.get('myApp', 'users', 1) console.debug('User 1:', user1) const product1 = idb.data.get('myApp', 'products', 1) console.debug('Product 1:', product1) // ============================================ // DATABASE INFO // ============================================ // List all databases const databases = idb.db.list() console.debug('Databases:', databases) // Check if database exists const exists = idb.db.exist('myApp') console.debug('myApp exists:', exists) // Get database version const version = idb.db.version('myApp') console.debug('myApp version:', version) // Get database size const size = idb.db.size('myApp') console.debug('myApp size:', size, 'bytes') // ============================================ // DELETE DATA // ============================================ // Delete a record idb.data.delete('myApp', 'users', 1) // Delete entire table // idb.table.delete('myApp', 'users'); // Delete entire database // idb.db.delete('myApp'); console.debug('IDB example complete!')