UNPKG

@distributed-functions/core

Version:
19 lines (18 loc) 2.04 kB
import { DefaultCallResponseResultFailure, CallRequest, CallResponse } from './call'; export type CustomEitherCallResponseResultSuccess<Success extends Record<any, any>> = { $case: 'success'; success: Success; }; export type CustomEitherCallResponseResultFailure<Failure extends DefaultCallResponseResultFailure = DefaultCallResponseResultFailure> = { $case: 'failure'; failure: Failure; }; export type CustomEitherCallResponseResult<Success extends Record<any, any>, Failure extends DefaultCallResponseResultFailure = DefaultCallResponseResultFailure> = CustomEitherCallResponseResultSuccess<Success> | CustomEitherCallResponseResultFailure<Failure>; export type CustomEitherCall<Name extends string, Meta extends Record<any, any>, RequestParams extends Record<any, any>, Success extends Record<any, any>, Failure extends DefaultCallResponseResultFailure = DefaultCallResponseResultFailure> = { name: Name; request: (params: RequestParams, meta?: Partial<Meta>) => CallRequest<Name, RequestParams, Meta>; response: (requestOrId: string | CallRequest<Name, RequestParams, Meta>, result: CustomEitherCallResponseResult<Success, Failure>, meta?: Partial<Meta>) => CallResponse<CustomEitherCallResponseResult<Success, Failure>, Meta>; success: (requestOrId: string | CallRequest<Name, RequestParams, Meta>, success: Success, meta?: Partial<Meta>) => CallResponse<CustomEitherCallResponseResultSuccess<Success>, Meta>; failure: (requestOrId: string | CallRequest<Name, RequestParams, Meta>, failure: Failure, meta?: Partial<Meta>) => CallResponse<CustomEitherCallResponseResultFailure<Failure>, Meta>; }; export declare const CustomEitherCall: <Name extends string, Meta extends Record<any, any>, Params extends Record<any, any>, Success extends Record<any, any>, Failure extends DefaultCallResponseResultFailure<undefined> = DefaultCallResponseResultFailure<undefined>>(name: Name, metaConstructor: (meta?: Partial<Meta> | undefined) => Meta) => CustomEitherCall<Name, Meta, Params, Success, Failure>;