Skip to content

Type Alias: ExpectMultipleResponses<T>

ts
type ExpectMultipleResponses<T> = {
  [K in keyof T]: T[K] extends (args: infer Params) => infer Result
    ? Params extends [Error]
      ? (err: Error) => Result
      : Params extends [Error, ...infer Rest]
        ? (
            err: Error,
            args: InferFirstAndPreserveLabel<MultiplyArray<Rest>>,
          ) => Result
        : Params extends []
          ? () => Result
          : (args: InferFirstAndPreserveLabel<MultiplyArray<Params>>) => Result
    : T[K];
};

Utility type to decorate the acknowledgement callbacks multiple values on the first non error element while removing any elements after

Type Parameters

Type Parameter
T extends any[]