faunadb
Version:
FaunaDB Javascript driver for Node.JS and Browsers
48 lines (45 loc) • 910 B
TypeScript
export interface Subscription<TEventHandlerMap> {
on: <T extends keyof TEventHandlerMap>(
type: T,
callback: TEventHandlerMap[T]
) => this
start: () => this
close: () => void
}
type Handler<TEventType extends string, TEventData> = (
data: TEventData,
event: {
type: TEventType
event: TEventData
txn?: number
}
) => void
export type SubscriptionEventHandlers = {
start: Handler<'start', number>
error: Handler<'error', unknown>
version: Handler<
'version',
{
action: 'create' | 'update' | 'delete'
document?: object
diff?: object
prev?: object
}
>
set: Handler<
'set',
{
action: 'add' | 'remove'
document?: object
index?: object
}
>
history_rewrite: Handler<
'history_rewrite',
{
action: 'history_rewrite'
document: object
}
>
snapshot: Handler<'snapshot', object>
}