import { DB } from "../src/db.ts"; import { loadFile, writeFile } from "./vfs.js"; import { compile, instantiateBrowser } from "../build/sqlite.js"; export { SqliteError } from "../src/error.ts"; export { Status } from "../src/constants.ts"; const hasCompiled = compile(); /** * Opens a database with the given name. If `file` is * not provided or `:memory:`, an in-memory database * is returned which will not persist after the database * is closed. */ export async function open(file?: string): Promise { if (file != null && file !== ":memory:") await loadFile(file); await hasCompiled; await instantiateBrowser(); return new DB(file); } /** * Overwrite a given file with arbitrary data. This can be used * to import a database which can later be opened. */ export async function write(file: string, data: Uint8Array): Promise { await writeFile(file, data); } /** * Read the data currently stored for a given file. This can be used * to export a database which has been created or modified. */ export async function read(file: string): Promise { const buffer = await loadFile(file); return buffer?.toUint8Array()?.slice(); }