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