Skip to content
Logo

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();