UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

63 lines 2.4 kB
import type { Patch } from "./patch"; import type { QueryResult } from "./query-result"; import type { RpcMethod } from "./rpc-request"; type Arrayable<TResult> = TResult | TResult[]; type TypeMap = Record<"Uuid" | "Thing", object>; type NormalRecord<TTypeMap extends TypeMap> = { id: string | TTypeMap["Thing"]; [p: string]: unknown; }; type RelationRecord<TTypeMap extends TypeMap> = { id: string | TTypeMap["Thing"]; in: string | TTypeMap["Thing"]; out: string | TTypeMap["Thing"]; [p: string]: unknown; }; export type RpcResultMapping<TTypeMap extends TypeMap = TypeMap> = { ping: void; use: void; info: NormalRecord<TTypeMap> | null | undefined; signup: string; signin: string; authenticate: void; invalidate: void; let: void; unset: void; live: string | TTypeMap["Uuid"]; kill: void; query: QueryResult[]; select: Arrayable<NormalRecord<TTypeMap>>; create: Arrayable<NormalRecord<TTypeMap>>; insert: NormalRecord<TTypeMap>[]; insert_relation: RelationRecord<TTypeMap>[]; update: Arrayable<NormalRecord<TTypeMap>>; upsert: Arrayable<NormalRecord<TTypeMap>>; merge: Arrayable<NormalRecord<TTypeMap>>; patch: Arrayable<NormalRecord<TTypeMap>> | Arrayable<Patch>[]; delete: Arrayable<NormalRecord<TTypeMap>>; version: string; run: unknown; graphql: string; relate: Arrayable<RelationRecord<TTypeMap>>; }; export type RpcResult<TMethod extends RpcMethod = RpcMethod> = RpcResultMapping[TMethod]; export type BidirectionalRpcResponseOk<TResult = unknown> = { id: `${RpcMethod}_${number}`; result: TResult; error?: never; }; export type BidirectionalRpcResponseErr = { id: `${RpcMethod}_${number}`; result?: never; error: { code: number; message: string; }; }; export type BidirectionalRpcResponse<TResult = unknown> = BidirectionalRpcResponseOk<TResult> | BidirectionalRpcResponseErr; export type IdLessRpcResponseOk<TResult = unknown> = Omit<BidirectionalRpcResponseOk<TResult>, "id">; export type IdLessRpcResponseErr = Omit<BidirectionalRpcResponseErr, "id">; export type IdLessRpcResponse<TResult = unknown> = IdLessRpcResponseOk<TResult> | IdLessRpcResponseErr; export type RpcResponse<TResult = unknown> = BidirectionalRpcResponse<TResult> | IdLessRpcResponse<TResult>; export {}; //# sourceMappingURL=rpc-response.d.ts.map