A simple and strongly typed library to manage data in local or session storage (e.g., localStorage or sessionStorage) with a SQL-inspired interface.
Supports direct CRUD operations or the QueryBuilder for chainable queries.
import { StoreSQL } from "./store-sql.js";
const store = new StoreSQL<StoresCollection>('app::', 'local');
store.create('users', [
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 25 },
{ name: 'Carol', age: 30 }
]);
store.select('users', ['name']);
store.insert('users', [{ name: 'John Doe', age: 40 }]);
store.update('users', [{ name: 'John Doe', age: 39 }]);import { QueryBuilder } from "./query-builder.js";
const qb = new QueryBuilder<StoresCollection>(store);
qb.from('users')
.where({ age: 30 })
.select(['name'])
.exec();
qb.from('users')
.where({ name: 'Bob' })
.update({ age: 26 });
qb.from('users')
.where({ name: 'Carol' })
.delete();
qb.from('users')
.save({ name: 'Dave', age: 40 }); βββββββββββββββ
β StoreSQL β
ββββββββ¬βββββββ
β CRUD Operations
βΌ
βββββββββββββββ
β QueryBuilderβ
ββββββββ¬βββββββ
β Chainable Queries
βΌ
βββββββββββββββββββ
β LocalStore β
β (localStorage) β
βββββββββββββββββββ