import { env } from "cloudflare:workers"; import { scopedDb, type ScopedDb, type ScopedSqlHost } from "./types"; export { stmt, type ScopedDb, type ScopedStatement, type ScopedValue } from "./types"; /** * The repository's own database, inside its RepoState object. Same API as `~/server/db` (first / all / run / * batch); tables are listed in scripts/gen-scoped-schema.ts. Directory tables (accounts, users, repos) are not * here: look names up in D1 separately and join in code. */ export function repoDb(repoId: string): ScopedDb { return scopedDb(repoId, () => env.REPO_STATE.get(env.REPO_STATE.idFromName(repoId)) as unknown as ScopedSqlHost); } /** The account's own database, inside its AccountState object (sessions, notifications, billing, ...). */ export function accountDb(accountId: string): ScopedDb { return scopedDb( accountId, () => env.ACCOUNT_STATE.get(env.ACCOUNT_STATE.idFromName(accountId)) as unknown as ScopedSqlHost, ); }