UNPKG

@hocuspocus/common

Version:

shared code for multiple Hocuspocus packages

31 lines (30 loc) 997 B
import type { Extension, onChangePayload, onLoadDocumentPayload, storePayload, fetchPayload } from "@hocuspocus/server"; export interface DatabaseConfiguration { /** * Pass a Promise to retrieve updates from your database. The Promise should resolve to * an array of items with Y.js-compatible binary data. */ fetch: (data: fetchPayload) => Promise<Uint8Array | null>; /** * Pass a function to store updates in your database. */ store: (data: storePayload) => Promise<void>; } export declare class Database implements Extension { /** * Default configuration */ configuration: DatabaseConfiguration; /** * Constructor */ constructor(configuration: Partial<DatabaseConfiguration>); /** * Get stored data from the database. */ onLoadDocument(data: onLoadDocumentPayload): Promise<any>; /** * Store new updates in the database. */ onStoreDocument(data: onChangePayload): Promise<void>; }