@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
24 lines • 1.17 kB
TypeScript
import type { RpcParams, RpcResultMapping } from "@tai-kun/surrealdb/types";
import type { UnionToIntersection, ValueOf } from "type-fest";
import { type InlineRpcMethod, type InlineRpcOptions } from "./rpc";
export type CreateInlineRpcOptions = Omit<InlineRpcOptions, "signal"> & {
readonly timeout?: number | undefined;
};
interface RpcWithRequiredParams<TMethod extends InlineRpcMethod> {
<TResult extends RpcResultMapping[TMethod]>(method: TMethod, options: InlineRpcOptions & {
readonly params: RpcParams<TMethod>;
}): Promise<TResult>;
}
interface RpcWithOptionalParams<TMethod extends InlineRpcMethod> {
<TResult extends RpcResultMapping[TMethod]>(method: TMethod, options?: (InlineRpcOptions & {
readonly params?: RpcParams<TMethod>;
}) | undefined): Promise<TResult>;
}
/**
* @experimental
*/
export default function createRpc(endpoint: string | URL, options?: CreateInlineRpcOptions | undefined): UnionToIntersection<ValueOf<{
[TMethod in InlineRpcMethod]: undefined extends RpcParams<TMethod> ? RpcWithOptionalParams<TMethod> : RpcWithRequiredParams<TMethod>;
}>>;
export {};
//# sourceMappingURL=create-rpc.d.ts.map