@effect-ts/system
Version:
Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.
194 lines • 10.6 kB
TypeScript
import type * as Cause from "../Cause/core.js";
import type { Tuple } from "../Collections/Immutable/Tuple/index.js";
import type * as Exit from "../Exit/exit.js";
import type { FiberContext } from "../Fiber/context.js";
import type * as Fiber from "../Fiber/core.js";
import type { FiberID } from "../Fiber/id.js";
import type { Platform } from "../Fiber/index.js";
import type { Trace } from "../Fiber/tracing.js";
import type { Runtime } from "../FiberRef/fiberRef.js";
import type * as O from "../Option/index.js";
import type { Scope } from "../Scope/index.js";
import type { Supervisor } from "../Supervisor/index.js";
import type { XPureBase } from "../XPure/core.js";
import type { Effect } from "./effect.js";
import { Base } from "./effect.js";
export declare type Instruction = IFlatMap<any, any, any, any, any, any> | ISucceed<any> | IEffectPartial<any, any> | IEffectTotal<any> | IEffectAsync<any, any, any> | IFold<any, any, any, any, any, any, any, any, any> | IFork<any, any, any> | IInterruptStatus<any, any, any> | ICheckInterrupt<any, any, any> | ICheckTracingStatus<any, any, any> | IFail<any> | IDescriptor<any, any, any> | IYield | ITrace | IRead<any, any, any, any> | IProvide<any, any, any> | ISuspend<any, any, any> | ISuspendPartial<any, any, any, any> | IFiberRefNew<any> | IFiberRefModify<any, any> | IRaceWith<any, any, any, any, any, any, any, any, any, any, any, any> | ISupervise<any, any, any> | IGetForkScope<any, any, any> | IOverrideForkScope<any, any, any> | ITracingStatus<any, any, any> | IPlatform<any, any, any> | ITracer<any, any, any> | XPureBase<unknown, unknown, unknown, any, any, any>;
export declare class IFail<E> extends Base<unknown, E, never> {
readonly fill: (_: () => Trace) => Cause.Cause<E>;
readonly trace?: string | undefined;
readonly _tag = "Fail";
constructor(fill: (_: () => Trace) => Cause.Cause<E>, trace?: string | undefined);
}
export declare class IFlatMap<R, E, A, R1, E1, A1> extends Base<R & R1, E | E1, A1> {
readonly val: Effect<R, E, A>;
readonly f: (a: A) => Effect<R1, E1, A1>;
readonly trace?: string | undefined;
readonly _tag = "FlatMap";
constructor(val: Effect<R, E, A>, f: (a: A) => Effect<R1, E1, A1>, trace?: string | undefined);
}
export declare class ISucceed<A> extends Base<unknown, never, A> {
readonly val: A;
readonly trace?: string | undefined;
readonly _tag = "Succeed";
constructor(val: A, trace?: string | undefined);
}
export declare class ITrace extends Base<unknown, never, Trace> {
readonly _tag = "Trace";
constructor();
}
export declare class ITracingStatus<R, E, A> extends Base<R, E, A> {
readonly effect: Effect<R, E, A>;
readonly flag: boolean;
readonly _tag = "TracingStatus";
constructor(effect: Effect<R, E, A>, flag: boolean);
}
export declare class ICheckTracingStatus<R, E, A> extends Base<R, E, A> {
readonly f: (tracingStatus: boolean) => Effect<R, E, A>;
readonly _tag = "CheckTracingStatus";
constructor(f: (tracingStatus: boolean) => Effect<R, E, A>);
}
export declare class IEffectPartial<E, A> extends Base<unknown, E, A> {
readonly effect: () => A;
readonly onThrow: (u: unknown) => E;
readonly trace?: string | undefined;
readonly _tag = "EffectPartial";
constructor(effect: () => A, onThrow: (u: unknown) => E, trace?: string | undefined);
}
export declare class IEffectTotal<A> extends Base<unknown, never, A> {
readonly effect: () => A;
readonly trace?: string | undefined;
readonly _tag = "EffectTotal";
constructor(effect: () => A, trace?: string | undefined);
}
export declare class IEffectAsync<R, E, A> extends Base<R, E, A> {
readonly register: (cb: (_: Effect<R, E, A>) => void) => O.Option<Effect<R, E, A>>;
readonly blockingOn: readonly FiberID[];
readonly trace?: string | undefined;
readonly _tag = "EffectAsync";
constructor(register: (cb: (_: Effect<R, E, A>) => void) => O.Option<Effect<R, E, A>>, blockingOn: readonly FiberID[], trace?: string | undefined);
}
export declare class IFold<R, E, A, R2, E2, A2, R3, E3, A3> extends Base<R & R2 & R3, E2 | E3, A2 | A3> {
readonly value: Effect<R, E, A>;
readonly failure: (cause: Cause.Cause<E>) => Effect<R2, E2, A2>;
readonly apply: (a: A) => Effect<R3, E3, A3>;
readonly trace?: string | undefined;
readonly _tag = "Fold";
constructor(value: Effect<R, E, A>, failure: (cause: Cause.Cause<E>) => Effect<R2, E2, A2>, apply: (a: A) => Effect<R3, E3, A3>, trace?: string | undefined);
}
export declare type FailureReporter = (e: Cause.Cause<unknown>) => void;
export declare class IFork<R, E, A> extends Base<R, never, FiberContext<E, A>> {
readonly value: Effect<R, E, A>;
readonly scope: O.Option<Scope<Exit.Exit<any, any>>>;
readonly reportFailure: O.Option<FailureReporter>;
readonly trace?: string | undefined;
readonly _tag = "Fork";
constructor(value: Effect<R, E, A>, scope: O.Option<Scope<Exit.Exit<any, any>>>, reportFailure: O.Option<FailureReporter>, trace?: string | undefined);
}
export declare class IInterruptStatus<R, E, A> extends Base<R, E, A> {
readonly effect: Effect<R, E, A>;
readonly flag: Fiber.InterruptStatus;
readonly trace?: string | undefined;
readonly _tag = "InterruptStatus";
constructor(effect: Effect<R, E, A>, flag: Fiber.InterruptStatus, trace?: string | undefined);
}
export declare class ICheckInterrupt<R, E, A> extends Base<R, E, A> {
readonly f: (_: Fiber.InterruptStatus) => Effect<R, E, A>;
readonly trace?: string | undefined;
readonly _tag = "CheckInterrupt";
constructor(f: (_: Fiber.InterruptStatus) => Effect<R, E, A>, trace?: string | undefined);
}
export declare class IDescriptor<R, E, A> extends Base<R, E, A> {
readonly f: (_: Fiber.Descriptor) => Effect<R, E, A>;
readonly trace?: string | undefined;
readonly _tag = "Descriptor";
constructor(f: (_: Fiber.Descriptor) => Effect<R, E, A>, trace?: string | undefined);
}
export declare class IYield extends Base<unknown, never, void> {
readonly _tag = "Yield";
constructor();
}
export declare class IRead<R0, R, E, A> extends Base<R & R0, E, A> {
readonly f: (_: R0) => Effect<R, E, A>;
readonly trace?: string | undefined;
readonly _tag = "Read";
constructor(f: (_: R0) => Effect<R, E, A>, trace?: string | undefined);
}
export declare class IPlatform<R, E, A> extends Base<R, E, A> {
readonly f: (_: Platform<unknown>) => Effect<R, E, A>;
readonly trace?: string | undefined;
readonly _tag = "Platform";
constructor(f: (_: Platform<unknown>) => Effect<R, E, A>, trace?: string | undefined);
}
export declare class ITracer<R, E, A> extends Base<R, E, A> {
readonly f: (tracer: (trace?: string) => void) => Effect<R, E, A>;
readonly trace?: string | undefined;
readonly _tag = "Tracer";
constructor(f: (tracer: (trace?: string) => void) => Effect<R, E, A>, trace?: string | undefined);
}
export declare class IProvide<R, E, A> extends Base<unknown, E, A> {
readonly r: R;
readonly next: Effect<R, E, A>;
readonly trace?: string | undefined;
readonly _tag = "Provide";
constructor(r: R, next: Effect<R, E, A>, trace?: string | undefined);
}
export declare class ISuspend<R, E, A> extends Base<R, E, A> {
readonly factory: (platform: Platform<unknown>, id: FiberID) => Effect<R, E, A>;
readonly trace?: string | undefined;
readonly _tag = "Suspend";
constructor(factory: (platform: Platform<unknown>, id: FiberID) => Effect<R, E, A>, trace?: string | undefined);
}
export declare class ISuspendPartial<R, E, A, E2> extends Base<R, E | E2, A> {
readonly factory: (platform: Platform<unknown>, id: FiberID) => Effect<R, E, A>;
readonly onThrow: (u: unknown) => E2;
readonly trace?: string | undefined;
readonly _tag = "SuspendPartial";
constructor(factory: (platform: Platform<unknown>, id: FiberID) => Effect<R, E, A>, onThrow: (u: unknown) => E2, trace?: string | undefined);
}
export declare class IFiberRefNew<A> extends Base<unknown, never, Runtime<A>> {
readonly initial: A;
readonly onFork: (a: A) => A;
readonly onJoin: (a: A, a2: A) => A;
readonly _tag = "FiberRefNew";
constructor(initial: A, onFork: (a: A) => A, onJoin: (a: A, a2: A) => A);
}
export declare class IFiberRefModify<A, B> extends Base<unknown, never, B> {
readonly fiberRef: Runtime<A>;
readonly f: (a: A) => Tuple<[B, A]>;
readonly trace?: string | undefined;
readonly _tag = "FiberRefModify";
constructor(fiberRef: Runtime<A>, f: (a: A) => Tuple<[B, A]>, trace?: string | undefined);
}
export declare class IRaceWith<R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3> extends Base<R & R1 & R2 & R3, E2 | E3, A2 | A3> {
readonly left: Effect<R, E, A>;
readonly right: Effect<R1, E1, A1>;
readonly leftWins: (exit: Exit.Exit<E, A>, fiber: Fiber.Fiber<E1, A1>) => Effect<R2, E2, A2>;
readonly rightWins: (exit: Exit.Exit<E1, A1>, fiber: Fiber.Fiber<E, A>) => Effect<R3, E3, A3>;
readonly scope: O.Option<Scope<Exit.Exit<any, any>>>;
readonly trace?: string | undefined;
readonly _tag = "RaceWith";
constructor(left: Effect<R, E, A>, right: Effect<R1, E1, A1>, leftWins: (exit: Exit.Exit<E, A>, fiber: Fiber.Fiber<E1, A1>) => Effect<R2, E2, A2>, rightWins: (exit: Exit.Exit<E1, A1>, fiber: Fiber.Fiber<E, A>) => Effect<R3, E3, A3>, scope: O.Option<Scope<Exit.Exit<any, any>>>, trace?: string | undefined);
}
export declare class ISupervise<R, E, A> extends Base<R, E, A> {
readonly effect: Effect<R, E, A>;
readonly supervisor: Supervisor<any>;
readonly trace?: string | undefined;
readonly _tag = "Supervise";
constructor(effect: Effect<R, E, A>, supervisor: Supervisor<any>, trace?: string | undefined);
}
export declare class IGetForkScope<R, E, A> extends Base<R, E, A> {
readonly f: (_: Scope<Exit.Exit<any, any>>) => Effect<R, E, A>;
readonly trace?: string | undefined;
readonly _tag = "GetForkScope";
constructor(f: (_: Scope<Exit.Exit<any, any>>) => Effect<R, E, A>, trace?: string | undefined);
}
export declare class IOverrideForkScope<R, E, A> extends Base<R, E, A> {
readonly effect: Effect<R, E, A>;
readonly forkScope: O.Option<Scope<Exit.Exit<any, any>>>;
readonly trace?: string | undefined;
readonly _tag = "OverrideForkScope";
constructor(effect: Effect<R, E, A>, forkScope: O.Option<Scope<Exit.Exit<any, any>>>, trace?: string | undefined);
}
export * from "./effect.js";
//# sourceMappingURL=primitives.d.ts.map