UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

73 lines (65 loc) 1.78 kB
import type { Patch } from "./patch"; export type LiveAction = "CREATE" | "UPDATE" | "DELETE"; export namespace LiveResult { export type Data< TResult extends { [p: string]: unknown } = { [p: string]: unknown }, > = { id: string | object; action: LiveAction; record: string | object; result: TResult; }; export type Diff< TResult extends { [p: string]: unknown } = { [p: string]: unknown }, TPatch extends Patch[] = Patch[], > = { id: string | object; action: "CREATE" | "UPDATE"; record: string | object; result: TPatch; } | { id: string | object; action: "DELETE"; record: string | object; result: TResult; }; } export type LiveResult< TResult extends { [p: string]: unknown } = { [p: string]: unknown }, TPatch extends Patch[] = Patch[], > = | LiveResult.Data<TResult> | LiveResult.Diff<TResult, TPatch>; export namespace LivePayload { export type Data< TResult extends { [p: string]: unknown } = { [p: string]: unknown }, // internals _TThing = string | object, > = { action: LiveAction; record: string | _TThing; result: TResult; }; export type Diff< TResult extends { [p: string]: unknown } = { [p: string]: unknown }, TPatch extends Patch[] = Patch[], // internals _TThing = string | object, > = { action: "CREATE" | "UPDATE"; record: string | _TThing; result: TPatch; } | { action: "DELETE"; record: string | _TThing; result: TResult; }; } export type LivePayload< TResult extends { [p: string]: unknown } = { [p: string]: unknown }, TPatch extends Patch[] = Patch[], // internals _TThing = string | object, > = | LivePayload.Data<TResult, _TThing> | LivePayload.Diff<TResult, TPatch, _TThing>;