Effectify
Other
Signature
declare const effectify: {
<F extends (...args: Array<any>) => any>(fn: F): Effectify<F, EffectifyError<F>>;
<F extends (...args: Array<any>) => any, E>(
fn: F,
onError: (error: EffectifyError<F>, args: Parameters<F>) => E,
): Effectify<F, E>;
<F extends (...args: Array<any>) => any, E, E2>(
fn: F,
onError: (error: EffectifyError<F>, args: Parameters<F>) => E,
onSyncError: (error: unknown, args: Parameters<F>) => E2,
): Effectify<F, E | E2>;
};Signature
type Effectify<T, E> = T extends {
(...args: [...args: Array<Args1>, cb: Callback<_E1, A1>]): _R1;
(...args: [...args: Array<Args2>, cb: Callback<_E2, A2>]): _R2;
(...args: [...args: Array<Args3>, cb: Callback<_E3, A3>]): _R3;
(...args: [...args: Array<Args4>, cb: Callback<_E4, A4>]): _R4;
(...args: [...args: Array<Args5>, cb: Callback<_E5, A5>]): _R5;
(...args: [...args: Array<Args6>, cb: Callback<_E6, A6>]): _R6;
(...args: [...args: Array<Args7>, cb: Callback<_E7, A7>]): _R7;
(...args: [...args: Array<Args8>, cb: Callback<_E8, A8>]): _R8;
(...args: [...args: Array<Args9>, cb: Callback<_E9, A9>]): _R9;
(...args: [...args: Array<Args10>, cb: Callback<_E10, A10>]): _R10;
} ? {
(...args: Args1): Effect<WithoutNull<A1>, E>;
(...args: Args2): Effect<WithoutNull<A2>, E>;
(...args: Args3): Effect<WithoutNull<A3>, E>;
(...args: Args4): Effect<WithoutNull<A4>, E>;
(...args: Args5): Effect<WithoutNull<A5>, E>;
(...args: Args6): Effect<WithoutNull<A6>, E>;
(...args: Args7): Effect<WithoutNull<A7>, E>;
(...args: Args8): Effect<WithoutNull<A8>, E>;
(...args: Args9): Effect<WithoutNull<A9>, E>;
(...args: Args10): Effect<WithoutNull<A10>, E>;
} : T extends {
(...args: [...args: Array<Args1>, cb: Callback<_E1, A1>]): _R1;
(...args: [...args: Array<Args2>, cb: Callback<_E2, A2>]): _R2;
(...args: [...args: Array<Args3>, cb: Callback<_E3, A3>]): _R3;
(...args: [...args: Array<Args4>, cb: Callback<_E4, A4>]): _R4;
(...args: [...args: Array<Args5>, cb: Callback<_E5, A5>]): _R5;
(...args: [...args: Array<Args6>, cb: Callback<_E6, A6>]): _R6;
(...args: [...args: Array<Args7>, cb: Callback<_E7, A7>]): _R7;
(...args: [...args: Array<Args8>, cb: Callback<_E8, A8>]): _R8;
(...args: [...args: Array<Args9>, cb: Callback<_E9, A9>]): _R9;
} ? {
(...args: Args1): Effect<WithoutNull<A1>, E>;
(...args: Args2): Effect<WithoutNull<A2>, E>;
(...args: Args3): Effect<WithoutNull<A3>, E>;
(...args: Args4): Effect<WithoutNull<A4>, E>;
(...args: Args5): Effect<WithoutNull<A5>, E>;
(...args: Args6): Effect<WithoutNull<A6>, E>;
(...args: Args7): Effect<WithoutNull<A7>, E>;
(...args: Args8): Effect<WithoutNull<A8>, E>;
(...args: Args9): Effect<WithoutNull<A9>, E>;
} : T extends {
(...args: [...args: Array<Args1>, cb: Callback<_E1, A1>]): _R1;
(...args: [...args: Array<Args2>, cb: Callback<_E2, A2>]): _R2;
(...args: [...args: Array<Args3>, cb: Callback<_E3, A3>]): _R3;
(...args: [...args: Array<Args4>, cb: Callback<_E4, A4>]): _R4;
(...args: [...args: Array<Args5>, cb: Callback<_E5, A5>]): _R5;
(...args: [...args: Array<Args6>, cb: Callback<_E6, A6>]): _R6;
(...args: [...args: Array<Args7>, cb: Callback<_E7, A7>]): _R7;
(...args: [...args: Array<Args8>, cb: Callback<_E8, A8>]): _R8;
} ? {
(...args: Args1): Effect<WithoutNull<A1>, E>;
(...args: Args2): Effect<WithoutNull<A2>, E>;
(...args: Args3): Effect<WithoutNull<A3>, E>;
(...args: Args4): Effect<WithoutNull<A4>, E>;
(...args: Args5): Effect<WithoutNull<A5>, E>;
(...args: Args6): Effect<WithoutNull<A6>, E>;
(...args: Args7): Effect<WithoutNull<A7>, E>;
(...args: Args8): Effect<WithoutNull<A8>, E>;
} : T extends {
(...args: [...args: Array<Args1>, cb: Callback<_E1, A1>]): _R1;
(...args: [...args: Array<Args2>, cb: Callback<_E2, A2>]): _R2;
(...args: [...args: Array<Args3>, cb: Callback<_E3, A3>]): _R3;
(...args: [...args: Array<Args4>, cb: Callback<_E4, A4>]): _R4;
(...args: [...args: Array<Args5>, cb: Callback<_E5, A5>]): _R5;
(...args: [...args: Array<Args6>, cb: Callback<_E6, A6>]): _R6;
(...args: [...args: Array<Args7>, cb: Callback<_E7, A7>]): _R7;
} ? {
(...args: Args1): Effect<WithoutNull<A1>, E>;
(...args: Args2): Effect<WithoutNull<A2>, E>;
(...args: Args3): Effect<WithoutNull<A3>, E>;
(...args: Args4): Effect<WithoutNull<A4>, E>;
(...args: Args5): Effect<WithoutNull<A5>, E>;
(...args: Args6): Effect<WithoutNull<A6>, E>;
(...args: Args7): Effect<WithoutNull<A7>, E>;
} : T extends {
(...args: [...args: Array<Args1>, cb: Callback<_E1, A1>]): _R1;
(...args: [...args: Array<Args2>, cb: Callback<_E2, A2>]): _R2;
(...args: [...args: Array<Args3>, cb: Callback<_E3, A3>]): _R3;
(...args: [...args: Array<Args4>, cb: Callback<_E4, A4>]): _R4;
(...args: [...args: Array<Args5>, cb: Callback<_E5, A5>]): _R5;
(...args: [...args: Array<Args6>, cb: Callback<_E6, A6>]): _R6;
} ? {
(...args: Args1): Effect<WithoutNull<A1>, E>;
(...args: Args2): Effect<WithoutNull<A2>, E>;
(...args: Args3): Effect<WithoutNull<A3>, E>;
(...args: Args4): Effect<WithoutNull<A4>, E>;
(...args: Args5): Effect<WithoutNull<A5>, E>;
(...args: Args6): Effect<WithoutNull<A6>, E>;
} : T extends {
(...args: [...args: Array<Args1>, cb: Callback<_E1, A1>]): _R1;
(...args: [...args: Array<Args2>, cb: Callback<_E2, A2>]): _R2;
(...args: [...args: Array<Args3>, cb: Callback<_E3, A3>]): _R3;
(...args: [...args: Array<Args4>, cb: Callback<_E4, A4>]): _R4;
(...args: [...args: Array<Args5>, cb: Callback<_E5, A5>]): _R5;
} ? {
(...args: Args1): Effect<WithoutNull<A1>, E>;
(...args: Args2): Effect<WithoutNull<A2>, E>;
(...args: Args3): Effect<WithoutNull<A3>, E>;
(...args: Args4): Effect<WithoutNull<A4>, E>;
(...args: Args5): Effect<WithoutNull<A5>, E>;
} : T extends {
(...args: [...args: Array<Args1>, cb: Callback<_E1, A1>]): _R1;
(...args: [...args: Array<Args2>, cb: Callback<_E2, A2>]): _R2;
(...args: [...args: Array<Args3>, cb: Callback<_E3, A3>]): _R3;
(...args: [...args: Array<Args4>, cb: Callback<_E4, A4>]): _R4;
} ? {
(...args: Args1): Effect<WithoutNull<A1>, E>;
(...args: Args2): Effect<WithoutNull<A2>, E>;
(...args: Args3): Effect<WithoutNull<A3>, E>;
(...args: Args4): Effect<WithoutNull<A4>, E>;
} : T extends {
(...args: [...args: Array<Args1>, cb: Callback<..., ...>]): _R1;
(...args: [...args: Array<Args2>, cb: Callback<..., ...>]): _R2;
(...args: [...args: Array<Args3>, cb: Callback<..., ...>]): _R3;
} ? {
(...args: Args1): Effect<WithoutNull<...>, E>;
(...args: Args2): Effect<WithoutNull<...>, E>;
(...args: Args3): Effect<WithoutNull<...>, E>;
} : T extends {
(...args: [...args: Array<...>, cb: ...]): _R1;
(...args: [...args: Array<...>, cb: ...]): _R2;
} ? {
(...args: Args1): Effect<..., ...>;
(...args: Args2): Effect<..., ...>;
} : T extends (...args: ...) => ... ? (...args: ...) => ... : neverUtil
EffectifyError type
Added in v1.0.0
Source
Signature
type EffectifyError<T> = T extends {
(...args: [...args: Array<_Args1>, cb: Callback<E1, _A1>]): _R1;
(...args: [...args: Array<_Args2>, cb: Callback<E2, _A2>]): _R2;
(...args: [...args: Array<_Args3>, cb: Callback<E3, _A3>]): _R3;
(...args: [...args: Array<_Args4>, cb: Callback<E4, _A4>]): _R4;
(...args: [...args: Array<_Args5>, cb: Callback<E5, _A5>]): _R5;
(...args: [...args: Array<_Args6>, cb: Callback<E6, _A6>]): _R6;
(...args: [...args: Array<_Args7>, cb: Callback<E7, _A7>]): _R7;
(...args: [...args: Array<_Args8>, cb: Callback<E8, _A8>]): _R8;
(...args: [...args: Array<_Args9>, cb: Callback<E9, _A9>]): _R9;
(...args: [...args: Array<_Args10>, cb: Callback<E10, _A10>]): _R10;
} ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10> : T extends {
(...args: [...args: Array<_Args1>, cb: Callback<E1, _A1>]): _R1;
(...args: [...args: Array<_Args2>, cb: Callback<E2, _A2>]): _R2;
(...args: [...args: Array<_Args3>, cb: Callback<E3, _A3>]): _R3;
(...args: [...args: Array<_Args4>, cb: Callback<E4, _A4>]): _R4;
(...args: [...args: Array<_Args5>, cb: Callback<E5, _A5>]): _R5;
(...args: [...args: Array<_Args6>, cb: Callback<E6, _A6>]): _R6;
(...args: [...args: Array<_Args7>, cb: Callback<E7, _A7>]): _R7;
(...args: [...args: Array<_Args8>, cb: Callback<E8, _A8>]): _R8;
(...args: [...args: Array<_Args9>, cb: Callback<E9, _A9>]): _R9;
} ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9> : T extends {
(...args: [...args: Array<_Args1>, cb: Callback<E1, _A1>]): _R1;
(...args: [...args: Array<_Args2>, cb: Callback<E2, _A2>]): _R2;
(...args: [...args: Array<_Args3>, cb: Callback<E3, _A3>]): _R3;
(...args: [...args: Array<_Args4>, cb: Callback<E4, _A4>]): _R4;
(...args: [...args: Array<_Args5>, cb: Callback<E5, _A5>]): _R5;
(...args: [...args: Array<_Args6>, cb: Callback<E6, _A6>]): _R6;
(...args: [...args: Array<_Args7>, cb: Callback<E7, _A7>]): _R7;
(...args: [...args: Array<_Args8>, cb: Callback<E8, _A8>]): _R8;
} ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8> : T extends {
(...args: [...args: Array<_Args1>, cb: Callback<E1, _A1>]): _R1;
(...args: [...args: Array<_Args2>, cb: Callback<E2, _A2>]): _R2;
(...args: [...args: Array<_Args3>, cb: Callback<E3, _A3>]): _R3;
(...args: [...args: Array<_Args4>, cb: Callback<E4, _A4>]): _R4;
(...args: [...args: Array<_Args5>, cb: Callback<E5, _A5>]): _R5;
(...args: [...args: Array<_Args6>, cb: Callback<E6, _A6>]): _R6;
(...args: [...args: Array<_Args7>, cb: Callback<E7, _A7>]): _R7;
} ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7> : T extends {
(...args: [...args: Array<_Args1>, cb: Callback<E1, _A1>]): _R1;
(...args: [...args: Array<_Args2>, cb: Callback<E2, _A2>]): _R2;
(...args: [...args: Array<_Args3>, cb: Callback<E3, _A3>]): _R3;
(...args: [...args: Array<_Args4>, cb: Callback<E4, _A4>]): _R4;
(...args: [...args: Array<_Args5>, cb: Callback<E5, _A5>]): _R5;
(...args: [...args: Array<_Args6>, cb: Callback<E6, _A6>]): _R6;
} ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6> : T extends {
(...args: [...args: Array<_Args1>, cb: Callback<E1, _A1>]): _R1;
(...args: [...args: Array<_Args2>, cb: Callback<E2, _A2>]): _R2;
(...args: [...args: Array<_Args3>, cb: Callback<E3, _A3>]): _R3;
(...args: [...args: Array<_Args4>, cb: Callback<E4, _A4>]): _R4;
(...args: [...args: Array<_Args5>, cb: Callback<E5, _A5>]): _R5;
} ? NonNullable<E1 | E2 | E3 | E4 | E5> : T extends {
(...args: [...args: Array<_Args1>, cb: Callback<E1, _A1>]): _R1;
(...args: [...args: Array<_Args2>, cb: Callback<E2, _A2>]): _R2;
(...args: [...args: Array<_Args3>, cb: Callback<E3, _A3>]): _R3;
(...args: [...args: Array<_Args4>, cb: Callback<E4, _A4>]): _R4;
} ? NonNullable<E1 | E2 | E3 | E4> : T extends {
(...args: [...args: Array<_Args1>, cb: Callback<..., ...>]): _R1;
(...args: [...args: Array<_Args2>, cb: Callback<..., ...>]): _R2;
(...args: [...args: Array<_Args3>, cb: Callback<..., ...>]): _R3;
} ? NonNullable<E1 | E2 | E3> : T extends {
(...args: [...args: Array<...>, cb: ...]): _R1;
(...args: [...args: Array<...>, cb: ...]): _R2;
} ? NonNullable<... | ...> : T extends (...args: ...) => ... ? NonNullable<...> : never
Converts a callback-based function to a function that returns an
Effect.