default

Examples

Basic CRUD with Collection

import { Collection, createInMemory } from "@anabranch/nosql";

interface User {
  name: string
  status: "active" | "pending" | "inactive"
}

const connector = createInMemory<User, string>();
const users = await Collection.connect(connector, "users").run();

await users.put("user-1", { name: "Alice", status: "active" }).run();
const user = await users.get("user-1").run();
console.log(user?.name); // "Alice"

Query with predicate

const connector = createInMemory<User, string>();
const users = await Collection.connect(connector, "users").run();

const activeUsers = await users
  .find((u) => u.status === "active")
  .map((u) => u.name)
  .collect();

Stream with concurrent processing

const { successes, errors } = await users
  .find(() => true)
  .withConcurrency(5)
  .map(async (user) => await sendWelcomeEmail(user))
  .partition();

console.log(`${successes.length} processed, ${errors.length} failed`);

Classes

c
CollectionConnectionFailed(
collection: string,
message: string,
cause?: unknown
)

Error thrown when connecting to a collection fails.

c
CollectionDeleteFailed(
collection: string,
key: unknown,
message: string,
cause?: unknown
)

Error thrown when a document delete operation fails.

c
CollectionGetFailed(
collection: string,
key: unknown,
message: string,
cause?: unknown
)

Error thrown when a document get operation fails.

c
CollectionPutFailed(
collection: string,
key: unknown,
message: string,
cause?: unknown
)

Error thrown when a document put operation fails.

Functions

Interfaces

I
DocumentAdapter

Document adapter interface for NoSQL database operations.

I
DocumentConnector

Connector that produces connected DocumentAdapter instances.

I
InMemoryConnector

Connector interface for the in-memory document store.

Type Aliases

T
InMemoryQuery<TDoc> = (doc: TDoc) => boolean

Predicate function type for filtering documents in the in-memory store.

Variables