/** * @since 1.0.0 */ import type * as Effect from "effect/Effect"; interface Callback { (err: E, a?: A): void; } type ArgsWithCallback, E, A> = [...args: Args, cb: Callback]; type WithoutNull = unknown extends A ? void : Exclude; /** * Converts a callback-based function to a function that returns an `Effect`. * * @since 1.0.0 */ export type Effectify = T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; (...args: ArgsWithCallback): infer _R7; (...args: ArgsWithCallback): infer _R8; (...args: ArgsWithCallback): infer _R9; (...args: ArgsWithCallback): infer _R10; } ? { (...args: Args1): Effect.Effect, E>; (...args: Args2): Effect.Effect, E>; (...args: Args3): Effect.Effect, E>; (...args: Args4): Effect.Effect, E>; (...args: Args5): Effect.Effect, E>; (...args: Args6): Effect.Effect, E>; (...args: Args7): Effect.Effect, E>; (...args: Args8): Effect.Effect, E>; (...args: Args9): Effect.Effect, E>; (...args: Args10): Effect.Effect, E>; } : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; (...args: ArgsWithCallback): infer _R7; (...args: ArgsWithCallback): infer _R8; (...args: ArgsWithCallback): infer _R9; } ? { (...args: Args1): Effect.Effect, E>; (...args: Args2): Effect.Effect, E>; (...args: Args3): Effect.Effect, E>; (...args: Args4): Effect.Effect, E>; (...args: Args5): Effect.Effect, E>; (...args: Args6): Effect.Effect, E>; (...args: Args7): Effect.Effect, E>; (...args: Args8): Effect.Effect, E>; (...args: Args9): Effect.Effect, E>; } : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; (...args: ArgsWithCallback): infer _R7; (...args: ArgsWithCallback): infer _R8; } ? { (...args: Args1): Effect.Effect, E>; (...args: Args2): Effect.Effect, E>; (...args: Args3): Effect.Effect, E>; (...args: Args4): Effect.Effect, E>; (...args: Args5): Effect.Effect, E>; (...args: Args6): Effect.Effect, E>; (...args: Args7): Effect.Effect, E>; (...args: Args8): Effect.Effect, E>; } : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; (...args: ArgsWithCallback): infer _R7; } ? { (...args: Args1): Effect.Effect, E>; (...args: Args2): Effect.Effect, E>; (...args: Args3): Effect.Effect, E>; (...args: Args4): Effect.Effect, E>; (...args: Args5): Effect.Effect, E>; (...args: Args6): Effect.Effect, E>; (...args: Args7): Effect.Effect, E>; } : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; } ? { (...args: Args1): Effect.Effect, E>; (...args: Args2): Effect.Effect, E>; (...args: Args3): Effect.Effect, E>; (...args: Args4): Effect.Effect, E>; (...args: Args5): Effect.Effect, E>; (...args: Args6): Effect.Effect, E>; } : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; } ? { (...args: Args1): Effect.Effect, E>; (...args: Args2): Effect.Effect, E>; (...args: Args3): Effect.Effect, E>; (...args: Args4): Effect.Effect, E>; (...args: Args5): Effect.Effect, E>; } : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; } ? { (...args: Args1): Effect.Effect, E>; (...args: Args2): Effect.Effect, E>; (...args: Args3): Effect.Effect, E>; (...args: Args4): Effect.Effect, E>; } : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; } ? { (...args: Args1): Effect.Effect, E>; (...args: Args2): Effect.Effect, E>; (...args: Args3): Effect.Effect, E>; } : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; } ? { (...args: Args1): Effect.Effect, E>; (...args: Args2): Effect.Effect, E>; } : T extends { (...args: ArgsWithCallback): infer _R1; } ? { (...args: Args1): Effect.Effect, E>; } : never; /** * @category util * @since 1.0.0 */ export type EffectifyError = T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; (...args: ArgsWithCallback): infer _R7; (...args: ArgsWithCallback): infer _R8; (...args: ArgsWithCallback): infer _R9; (...args: ArgsWithCallback): infer _R10; } ? NonNullable : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; (...args: ArgsWithCallback): infer _R7; (...args: ArgsWithCallback): infer _R8; (...args: ArgsWithCallback): infer _R9; } ? NonNullable : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; (...args: ArgsWithCallback): infer _R7; (...args: ArgsWithCallback): infer _R8; } ? NonNullable : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; (...args: ArgsWithCallback): infer _R7; } ? NonNullable : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; (...args: ArgsWithCallback): infer _R6; } ? NonNullable : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; (...args: ArgsWithCallback): infer _R5; } ? NonNullable : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; (...args: ArgsWithCallback): infer _R4; } ? NonNullable : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; (...args: ArgsWithCallback): infer _R3; } ? NonNullable : T extends { (...args: ArgsWithCallback): infer _R1; (...args: ArgsWithCallback): infer _R2; } ? NonNullable : T extends { (...args: ArgsWithCallback): infer _R1; } ? NonNullable : never; /** * @since 1.0.0 */ export declare const effectify: { /** * @since 1.0.0 */ ) => any>(fn: F): Effectify>; /** * @since 1.0.0 */ ) => any, E>(fn: F, onError: (error: EffectifyError, args: Parameters) => E): Effectify; /** * @since 1.0.0 */ ) => any, E, E2>(fn: F, onError: (error: EffectifyError, args: Parameters) => E, onSyncError: (error: unknown, args: Parameters) => E2): Effectify; }; export {}; //# sourceMappingURL=Effectify.d.ts.map