UNPKG

@distributed-functions/core

Version:
31 lines (30 loc) 1.46 kB
export type Empty = Record<string, never>; export type CallRequest<Name extends string, Params extends Record<any, any>, Meta extends Record<any, any>> = { id: string; name: Name; params: Params; meta: Meta; }; export type DefaultCallResponseResultFailure<Data extends Record<any, any> | undefined = undefined> = { code: string; message: string; data?: Data; }; export type CallResponse<Result extends Record<any, any> | DefaultCallResponseResultFailure, Meta extends Record<any, any>> = { id: string; result: Result; meta: Meta; }; export type Call<Name extends string, Meta extends Record<any, any>, Request extends CallRequest<Name, any, Meta>, Response extends CallResponse<any, Meta>> = { name: Name; request: (...args: any[]) => Request; response: (...args: any[]) => Response; }; export declare const Call: <Name extends string, Meta extends Record<any, any>, Request extends CallRequest<Name, any, Meta>, Response extends CallResponse<any, Meta>>(name: Name) => { name: Name; request: (request: Omit<Request, "name" | "id">) => Request; response: (idOrRequest: string | Request, response: Omit<Response, "id">) => Response; }; export type RequestFromCall<C extends Call<any, any, any, any>> = ReturnType<C['request']>; export type ResponseFromCall<C extends Call<any, any, any, any>> = ReturnType<C['response']>; export type CallsRecord = Record<string, Call<string, any, any, any>>;