UNPKG

lightdbv2

Version:

Lightweight key-value database for Node.js using append-only JSONL format.

109 lines (76 loc) โ€ข 2.56 kB
# ๐Ÿ’ก LightDBv2 ๐Ÿ“ **LightDBv2** adalah database ringan berbasis JSONL (JSON Lines) untuk Node.js, cocok untuk aplikasi kecil, prototipe, dan skenario embedded storage yang tidak memerlukan database kompleks. --- ## โœจ Fitur Utama - ๐Ÿ” *Append-only JSONL Store* โ€” semua perubahan disimpan sebagai baris baru. - โšก *In-memory index* โ€” akses data cepat tanpa membaca seluruh file. - ๐Ÿ“ฆ *API sederhana* โ€” hanya butuh `set()`, `get()`, `delete()`, `exists()`, `list()` dan `compact()`. - ๐Ÿงน *Auto compaction on exit* โ€” file dibersihkan otomatis saat aplikasi keluar. - ๐Ÿ›  Cocok untuk bot, CLI tools, dan aplikasi ringan lainnya. --- ## ๐Ÿš€ Instalasi ```bash npm install lightdbv2 ``` ## ๐Ÿ›  Inisialisasi ```bash const LightDB = require('lightdbv2'); (async () => { const db = new LightDB('storage.jsonl', { debug: true }); await db.init(); })(); ``` --- # ๐Ÿ“š Fungsi & Contoh ## โœ… exists(key) โ€“ cek key apakah ada ```bash const ada = db.exists('user1'); // return boolean ``` --- ## ๐Ÿ“ฆ set(key, value) โ€“ simpan / update data ```bash await db.set('user1', { name: 'Rezvy', age: 22 }); ``` --- ## ๐Ÿ” get(key) โ€“ ambil data ```bash const data = await db.get('user1'); // { key:'user1', name:'Rezvy', age:22 } ``` --- ## ๐Ÿ—‘ delete(key) โ€“ tandai sebagai terhapus ```bash await db.delete('user2'); ``` --- ## ๐Ÿ“‹ list() โ€“ ambil semua data aktif ```bash const semua = await db.list(); // [{...}, {...}] ``` --- ## ๐Ÿงน compact() โ€“ bersihkan file ```bash await db.compact(); ``` --- ## ๐Ÿงช Contoh Lengkap ```bash const LightDB = require('lightdbv2'); (async () => { const db = new LightDB('storage.jsonl', { debug: true }); await db.init(); await db.set('user1', { name: 'Rezvy', age: 22 }); await db.set('user2', { name: 'Bot', age: 1 }); console.log('user1 ada?', db.exists('user1')); // true console.log('user3 ada?', db.exists('user3')); // false console.log('Data user1:', await db.get('user1')); await db.set('user1', { name: 'Rezvy', age: 23 }); console.log('Semua data aktif:', await db.list()); await db.delete('user2'); console.log('user2 ada setelah delete?', db.exists('user2')); // false await db.compact(); console.log('Setelah compact:', await db.list()); await db.set('user3', { name: 'Baru', age: 99 }); console.log('Setelah tambah user3:', await db.list()); })(); ``` ---