@hocuspocus/common
Version:
shared code for multiple Hocuspocus packages
28 lines (27 loc) • 1.39 kB
TypeScript
import type { DatabaseConfiguration } from '@hocuspocus/extension-database';
import { Database } from '@hocuspocus/extension-database';
import sqlite3 from 'sqlite3';
export declare const schema = "CREATE TABLE IF NOT EXISTS \"documents\" (\n \"name\" varchar(255) NOT NULL,\n \"data\" blob NOT NULL,\n UNIQUE(name)\n)";
export declare const selectQuery = "\n SELECT data FROM \"documents\" WHERE name = $name ORDER BY rowid DESC\n";
export declare const upsertQuery = "\n INSERT INTO \"documents\" (\"name\", \"data\") VALUES ($name, $data)\n ON CONFLICT(name) DO UPDATE SET data = $data\n";
export 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/mapbox/node-sqlite3/wiki/API#new-sqlite3databasefilename-mode-callback
*/
database: string;
/**
* The database schema to create.
*/
schema: string;
}
export declare class SQLite extends Database {
db?: sqlite3.Database;
configuration: SQLiteConfiguration;
constructor(configuration?: Partial<SQLiteConfiguration>);
onConfigure(): Promise<void>;
onListen(): Promise<void>;
}