import type { SqlExecutor } from "../core/storage.ts"; export function createD1Executor(db: D1Database): SqlExecutor { return { async run(sql, ...params) { const result = await db .prepare(sql) .bind(...params) .run(); return { changes: result.meta.changes ?? 0 }; }, async first(sql: string, ...params: unknown[]) { const row = await db .prepare(sql) .bind(...params) .first(); return row ?? null; }, async all(sql: string, ...params: unknown[]) { const result = await db .prepare(sql) .bind(...params) .all(); return result.results ?? []; }, }; }