stratadb / StrataDB
Type Alias: StrataDB
type StrataDB = object;Defined in: src/database-types.ts:210
Main StrataDB interface for database operations.
Remarks
StrataDB provides a MongoDB-like API backed by SQLite. It manages collections, transactions, and database lifecycle. Implements Symbol.dispose for automatic cleanup.
Example
// Create database
const db = new StrataDB({ database: 'myapp.db' });
// Get or create a collection
const users = db.collection('users', userSchema);
// Insert documents
await users.insertOne({ name: 'Alice', email: 'alice@example.com' });
// Query documents
const adults = await users.find({ age: { $gte: 18 } });
// Close database when done
db.close();Properties
sqliteDb
readonly sqliteDb: SQLiteDatabase;Defined in: src/database-types.ts:215
Direct access to the underlying SQLite database. Use for advanced operations not covered by StrataDB API.
Methods
[dispose]()
dispose: void;Defined in: src/database-types.ts:306
Disposes the database (closes connection). Enables using db = new StrataDB(...) syntax.
Returns
void
close()
close(): void;Defined in: src/database-types.ts:300
Closes the database connection.
Returns
void
collection()
Call Signature
collection<T>(
name,
schema,
options?): Collection<T>;Defined in: src/database-types.ts:241
Gets or creates a collection with a pre-built schema.
Type Parameters
T
T extends Document
Parameters
name
string
Collection name (table name in SQLite)
schema
Schema definition for type safety and validation
options?
CollectionOptions
Optional collection-specific configuration
Returns
Collection<T>
Collection instance for the specified type
Example
// Default cache behavior (inherits from database)
const users = db.collection('users', userSchema);
// Override cache setting for this collection
const logs = db.collection('logs', logSchema, { enableCache: false });Call Signature
collection<T>(name): CollectionBuilder<T>;Defined in: src/database-types.ts:261
Creates a collection builder for fluent schema definition.
Type Parameters
T
T extends Document
Parameters
name
string
Collection name (table name in SQLite)
Returns
CollectionBuilder for defining schema inline
Example
const users = db.collection<User>('users')
.field('name', { type: 'TEXT', indexed: true })
.field('email', { type: 'TEXT', indexed: true, unique: true })
.build();execute()
execute<R>(fn): Promise<R>;Defined in: src/database-types.ts:295
Executes a function within a transaction.
Type Parameters
R
R
Parameters
fn
(tx) => R | Promise<R>
Function to execute within transaction
Returns
Promise<R>
Result of the function
Remarks
Automatically commits on success, rolls back on error.
Example
await db.execute(async (tx) => {
const users = tx.collection('users', userSchema);
await users.insertOne({ name: 'Alice' });
await users.insertOne({ name: 'Bob' });
});generateId()
generateId(): string;Defined in: src/database-types.ts:222
Generates a new unique ID using the configured ID generator.
Returns
string
A new unique identifier string
transaction()
transaction(): Transaction;Defined in: src/database-types.ts:275
Creates a new transaction for atomic operations.
Returns
Transaction instance
Example
using tx = db.transaction();
// operations...
tx.commit();