import { Database, DatabaseConfiguration } from "@hocuspocus/extension-database"; import BetterSqlite3 from "better-sqlite3"; //#region packages/extension-sqlite/src/SQLite.d.ts declare const schema = "CREATE TABLE IF NOT EXISTS \"documents\" (\n \"name\" varchar(255) NOT NULL,\n \"data\" blob NOT NULL,\n UNIQUE(name)\n)"; declare const selectQuery = "\n SELECT data FROM \"documents\" WHERE name = $name ORDER BY rowid DESC\n"; declare const upsertQuery = "\n INSERT INTO \"documents\" (\"name\", \"data\") VALUES ($name, $data)\n ON CONFLICT(name) DO UPDATE SET data = $data\n"; interface SQLiteConfiguration extends DatabaseConfiguration { /** * Valid values are filenames, ":memory:" for an anonymous in-memory database and an empty * string for an anonymous disk-based database. Anonymous databases are not persisted and * when closing the database handle, their contents are lost. * * https://github.com/WiseLibs/better-sqlite3/blob/master/docs/api.md#new-daboratabasepath-options */ database: string; /** * The database schema to create. */ schema: string; } declare class SQLite extends Database { db?: BetterSqlite3.Database; configuration: SQLiteConfiguration; constructor(configuration?: Partial); onConfigure(): Promise; onListen(): Promise; } //#endregion export { SQLite, SQLiteConfiguration, schema, selectQuery, upsertQuery };