Overview & Getting Started
Locality IDB is a SQL-like query builder for IndexedDB with a chainable, type-safe API.
📦 Installation
Install locality-idb using your favorite package manager:
🚀 Quick Start
Here is a quick look at how you can define a schema, initialize the database, and run basic CRUD operations:
import { Locality, defineSchema, column } from 'locality-idb';
// Define your schema
const mySchema = defineSchema({
users: {
id: column.int().pk().auto(),
name: column.text(),
email: column.text().unique(),
createdAt: column.timestamp(),
},
posts: {
id: column.int().pk().auto(),
userId: column.int().index(),
title: column.varchar(255),
content: column.text(),
createdAt: column.timestamp(),
},
});
// Initialize database
const idb = new Locality({
dbName: 'my-app-db',
schema: mySchema,
version: 1,
});
// Insert data
const user = await idb.insert('users').values({ name: 'Alice', email: 'alice@example.com' }).run();
// Query data
const users = await idb.from('users').findAll();
const alice = await idb.from('users').where((user) => user.email === 'alice@example.com').findFirst();
// Update data
await idb.update('users').set({ name: 'Alice in Wonderland' }).where('id', 1).run();
// Delete data
await idb.delete('users').where('id', 1).run();