@luolapeikko/result-option
    Preparing search index...

    Type Alias WrapAsyncFnReturn<Fn, ErrType>

    WrapAsyncFnReturn: Fn extends {
        (...args: A1): R1;
        (...args: A2): R2;
        (...args: A3): R3;
        (...args: A4): R4;
        (...args: A5): R5;
    }
        ? {
            (...args: A1): Promise<IResult<UnwrapResult<Awaited<R1>>, ErrType>>;
            (...args: A2): Promise<IResult<UnwrapResult<Awaited<R2>>, ErrType>>;
            (...args: A3): Promise<IResult<UnwrapResult<Awaited<R3>>, ErrType>>;
            (...args: A4): Promise<IResult<UnwrapResult<Awaited<R4>>, ErrType>>;
            (...args: A5): Promise<IResult<UnwrapResult<Awaited<R5>>, ErrType>>;
        }
        : Fn extends {
            (...args: A1): R1;
            (...args: A2): R2;
            (...args: A3): R3;
            (...args: A4): R4;
        }
            ? {
                (...args: A1): Promise<IResult<UnwrapResult<Awaited<R1>>, ErrType>>;
                (...args: A2): Promise<IResult<UnwrapResult<Awaited<R2>>, ErrType>>;
                (...args: A3): Promise<IResult<UnwrapResult<Awaited<R3>>, ErrType>>;
                (...args: A4): Promise<IResult<UnwrapResult<Awaited<R4>>, ErrType>>;
            }
            : Fn extends { (...args: A1): R1; (...args: A2): R2; (...args: A3): R3 }
                ? {
                    (...args: A1): Promise<IResult<UnwrapResult<Awaited<R1>>, ErrType>>;
                    (...args: A2): Promise<IResult<UnwrapResult<Awaited<R2>>, ErrType>>;
                    (...args: A3): Promise<IResult<UnwrapResult<Awaited<R3>>, ErrType>>;
                }
                : Fn extends { (...args: A1): R1; (...args: A2): R2 }
                    ? {
                        (...args: A1): Promise<IResult<UnwrapResult<Awaited<R1>>, ErrType>>;
                        (...args: A2): Promise<IResult<UnwrapResult<Awaited<R2>>, ErrType>>;
                    }
                    : Fn extends (...args: infer A) => infer R
                        ? (
                            ...args: A,
                        ) => Promise<IResult<UnwrapResult<Awaited<R>>, ErrType>>
                        : never

    Preserve function overloads when wrapping with Result for async functions

    Type Parameters

    • Fn
    • ErrType

    v2.1.0