@typed/fx 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintcache +1 -1
- package/cjs/Cause/Cause.d.ts +10 -0
- package/cjs/Cause/Cause.d.ts.map +1 -1
- package/cjs/Cause/Cause.js +37 -2
- package/cjs/Cause/Cause.js.map +1 -1
- package/cjs/Cause/Renderer.js +1 -1
- package/cjs/Cause/Renderer.js.map +1 -1
- package/cjs/Env/Env.js +1 -1
- package/cjs/Env/Env.js.map +1 -1
- package/cjs/Fiber/fromScope.d.ts +5 -0
- package/cjs/Fiber/fromScope.d.ts.map +1 -0
- package/cjs/Fiber/fromScope.js +17 -0
- package/cjs/Fiber/fromScope.js.map +1 -0
- package/cjs/FiberContext/FiberContext.js +1 -1
- package/cjs/FiberContext/FiberContext.js.map +1 -1
- package/cjs/FiberRef/builtins.d.ts.map +1 -1
- package/cjs/FiberRef/builtins.js +6 -6
- package/cjs/FiberRef/builtins.js.map +1 -1
- package/cjs/FiberRuntime/FiberRuntime.d.ts.map +1 -1
- package/cjs/FiberRuntime/FiberRuntime.js +22 -13
- package/cjs/FiberRuntime/FiberRuntime.js.map +1 -1
- package/cjs/Fx/Fx.d.ts +3 -2
- package/cjs/Fx/Fx.d.ts.map +1 -1
- package/cjs/Fx/Fx.js +24 -22
- package/cjs/Fx/Fx.js.map +1 -1
- package/cjs/Fx/join.d.ts +1 -1
- package/cjs/Fx/join.d.ts.map +1 -1
- package/cjs/Fx/join.js +1 -1
- package/cjs/Fx/join.js.map +1 -1
- package/cjs/Schedule/ScheduleState.d.ts +3 -0
- package/cjs/Schedule/ScheduleState.d.ts.map +1 -1
- package/cjs/Schedule/ScheduleState.js +3 -0
- package/cjs/Schedule/ScheduleState.js.map +1 -1
- package/cjs/Scheduler/RootScheduler.d.ts.map +1 -1
- package/cjs/Scheduler/RootScheduler.js +4 -5
- package/cjs/Scheduler/RootScheduler.js.map +1 -1
- package/cjs/Scheduler/Scheduler.d.ts +2 -2
- package/cjs/Scheduler/Scheduler.d.ts.map +1 -1
- package/cjs/Scheduler/Scheduler.js.map +1 -1
- package/cjs/Scheduler/callbackScheduler.d.ts.map +1 -1
- package/cjs/Scheduler/callbackScheduler.js +1 -0
- package/cjs/Scheduler/callbackScheduler.js.map +1 -1
- package/cjs/Scheduler/runSchedule.d.ts +1 -1
- package/cjs/Scheduler/runSchedule.d.ts.map +1 -1
- package/cjs/Scheduler/runSchedule.js +3 -2
- package/cjs/Scheduler/runSchedule.js.map +1 -1
- package/cjs/Scope/LocalScope.d.ts.map +1 -1
- package/cjs/Scope/LocalScope.js +8 -8
- package/cjs/Scope/LocalScope.js.map +1 -1
- package/cjs/Semaphore/Semaphore.d.ts +9 -9
- package/cjs/Semaphore/Semaphore.d.ts.map +1 -1
- package/cjs/Semaphore/Semaphore.js +34 -15
- package/cjs/Semaphore/Semaphore.js.map +1 -1
- package/cjs/Sink/Sink.d.ts +1 -0
- package/cjs/Sink/Sink.d.ts.map +1 -1
- package/cjs/Sink/Sink.js +11 -1
- package/cjs/Sink/Sink.js.map +1 -1
- package/cjs/Stream/Stream.d.ts +5 -10
- package/cjs/Stream/Stream.d.ts.map +1 -1
- package/cjs/Stream/Stream.js.map +1 -1
- package/cjs/Stream/acquirePermit.d.ts +15 -0
- package/cjs/Stream/acquirePermit.d.ts.map +1 -0
- package/cjs/Stream/acquirePermit.js +43 -0
- package/cjs/Stream/acquirePermit.js.map +1 -0
- package/cjs/Stream/bimap.d.ts +5 -4
- package/cjs/Stream/bimap.d.ts.map +1 -1
- package/cjs/Stream/bimap.js +11 -9
- package/cjs/Stream/bimap.js.map +1 -1
- package/cjs/Stream/continueWith.d.ts +4 -3
- package/cjs/Stream/continueWith.d.ts.map +1 -1
- package/cjs/Stream/continueWith.js +9 -6
- package/cjs/Stream/continueWith.js.map +1 -1
- package/cjs/Stream/drain.d.ts +2 -2
- package/cjs/Stream/drain.d.ts.map +1 -1
- package/cjs/Stream/drain.js +5 -5
- package/cjs/Stream/drain.js.map +1 -1
- package/cjs/Stream/empty.d.ts.map +1 -1
- package/cjs/Stream/empty.js +1 -2
- package/cjs/Stream/empty.js.map +1 -1
- package/cjs/Stream/flatMap.d.ts +7 -5
- package/cjs/Stream/flatMap.d.ts.map +1 -1
- package/cjs/Stream/flatMap.js +43 -17
- package/cjs/Stream/flatMap.js.map +1 -1
- package/cjs/Stream/flatMapConcurrently.d.ts +5 -0
- package/cjs/Stream/flatMapConcurrently.d.ts.map +1 -0
- package/cjs/Stream/flatMapConcurrently.js +20 -0
- package/cjs/Stream/flatMapConcurrently.js.map +1 -0
- package/cjs/Stream/flatMapFx.d.ts +5 -1
- package/cjs/Stream/flatMapFx.d.ts.map +1 -1
- package/cjs/Stream/flatMapFx.js +18 -3
- package/cjs/Stream/flatMapFx.js.map +1 -1
- package/cjs/Stream/fromCallback.d.ts +4 -3
- package/cjs/Stream/fromCallback.d.ts.map +1 -1
- package/cjs/Stream/fromCallback.js +26 -26
- package/cjs/Stream/fromCallback.js.map +1 -1
- package/cjs/Stream/fromFx.d.ts +14 -8
- package/cjs/Stream/fromFx.d.ts.map +1 -1
- package/cjs/Stream/fromFx.js +24 -15
- package/cjs/Stream/fromFx.js.map +1 -1
- package/cjs/Stream/hold.d.ts +27 -0
- package/cjs/Stream/hold.d.ts.map +1 -0
- package/cjs/Stream/hold.js +94 -0
- package/cjs/Stream/hold.js.map +1 -0
- package/cjs/Stream/index.d.ts +8 -0
- package/cjs/Stream/index.d.ts.map +1 -1
- package/cjs/Stream/index.js +8 -0
- package/cjs/Stream/index.js.map +1 -1
- package/cjs/Stream/lazy.d.ts +3 -0
- package/cjs/Stream/lazy.d.ts.map +1 -0
- package/cjs/Stream/lazy.js +9 -0
- package/cjs/Stream/lazy.js.map +1 -0
- package/cjs/Stream/map.d.ts +4 -3
- package/cjs/Stream/map.d.ts.map +1 -1
- package/cjs/Stream/map.js +11 -8
- package/cjs/Stream/map.js.map +1 -1
- package/cjs/Stream/merge.d.ts +18 -0
- package/cjs/Stream/merge.d.ts.map +1 -0
- package/cjs/Stream/merge.js +84 -0
- package/cjs/Stream/merge.js.map +1 -0
- package/cjs/Stream/multicast.d.ts +27 -0
- package/cjs/Stream/multicast.d.ts.map +1 -0
- package/cjs/Stream/multicast.js +83 -0
- package/cjs/Stream/multicast.js.map +1 -0
- package/cjs/Stream/orElse.d.ts +17 -0
- package/cjs/Stream/orElse.d.ts.map +1 -0
- package/cjs/Stream/orElse.js +118 -0
- package/cjs/Stream/orElse.js.map +1 -0
- package/cjs/Stream/periodic.d.ts +1 -1
- package/cjs/Stream/periodic.d.ts.map +1 -1
- package/cjs/Stream/periodic.js +1 -1
- package/cjs/Stream/periodic.js.map +1 -1
- package/cjs/Stream/scan.d.ts +17 -0
- package/cjs/Stream/scan.d.ts.map +1 -0
- package/cjs/Stream/scan.js +32 -0
- package/cjs/Stream/scan.js.map +1 -0
- package/cjs/Stream/scheduled.d.ts +12 -3
- package/cjs/Stream/scheduled.d.ts.map +1 -1
- package/cjs/Stream/scheduled.js +23 -5
- package/cjs/Stream/scheduled.js.map +1 -1
- package/cjs/Stream/setFiberRefLocally.d.ts +15 -0
- package/cjs/Stream/setFiberRefLocally.d.ts.map +1 -0
- package/cjs/Stream/setFiberRefLocally.js +51 -0
- package/cjs/Stream/setFiberRefLocally.js.map +1 -0
- package/cjs/Stream/switchMap.d.ts +18 -0
- package/cjs/Stream/switchMap.d.ts.map +1 -0
- package/cjs/Stream/switchMap.js +136 -0
- package/cjs/Stream/switchMap.js.map +1 -0
- package/cjs/Stream/tap.d.ts +2 -1
- package/cjs/Stream/tap.d.ts.map +1 -1
- package/cjs/Stream/tap.js +4 -2
- package/cjs/Stream/tap.js.map +1 -1
- package/cjs/Timeline/index.js.map +1 -1
- package/esm/Cause/Cause.d.ts +10 -0
- package/esm/Cause/Cause.d.ts.map +1 -1
- package/esm/Cause/Cause.js +27 -0
- package/esm/Cause/Cause.js.map +1 -1
- package/esm/Cause/Renderer.js +1 -1
- package/esm/Cause/Renderer.js.map +1 -1
- package/esm/Env/Env.js +1 -1
- package/esm/Env/Env.js.map +1 -1
- package/esm/Fiber/fromScope.d.ts +5 -0
- package/esm/Fiber/fromScope.d.ts.map +1 -0
- package/esm/Fiber/fromScope.js +13 -0
- package/esm/Fiber/fromScope.js.map +1 -0
- package/esm/FiberContext/FiberContext.js +1 -1
- package/esm/FiberContext/FiberContext.js.map +1 -1
- package/esm/FiberRef/builtins.d.ts.map +1 -1
- package/esm/FiberRef/builtins.js +6 -6
- package/esm/FiberRef/builtins.js.map +1 -1
- package/esm/FiberRuntime/FiberRuntime.d.ts.map +1 -1
- package/esm/FiberRuntime/FiberRuntime.js +22 -13
- package/esm/FiberRuntime/FiberRuntime.js.map +1 -1
- package/esm/Fx/Fx.d.ts +3 -2
- package/esm/Fx/Fx.d.ts.map +1 -1
- package/esm/Fx/Fx.js +21 -20
- package/esm/Fx/Fx.js.map +1 -1
- package/esm/Fx/join.d.ts +1 -1
- package/esm/Fx/join.d.ts.map +1 -1
- package/esm/Fx/join.js +1 -1
- package/esm/Fx/join.js.map +1 -1
- package/esm/Schedule/ScheduleState.d.ts +3 -0
- package/esm/Schedule/ScheduleState.d.ts.map +1 -1
- package/esm/Schedule/ScheduleState.js +3 -0
- package/esm/Schedule/ScheduleState.js.map +1 -1
- package/esm/Scheduler/RootScheduler.d.ts.map +1 -1
- package/esm/Scheduler/RootScheduler.js +4 -5
- package/esm/Scheduler/RootScheduler.js.map +1 -1
- package/esm/Scheduler/Scheduler.d.ts +2 -2
- package/esm/Scheduler/Scheduler.d.ts.map +1 -1
- package/esm/Scheduler/Scheduler.js.map +1 -1
- package/esm/Scheduler/callbackScheduler.d.ts.map +1 -1
- package/esm/Scheduler/callbackScheduler.js +1 -0
- package/esm/Scheduler/callbackScheduler.js.map +1 -1
- package/esm/Scheduler/runSchedule.d.ts +1 -1
- package/esm/Scheduler/runSchedule.d.ts.map +1 -1
- package/esm/Scheduler/runSchedule.js +4 -3
- package/esm/Scheduler/runSchedule.js.map +1 -1
- package/esm/Scope/LocalScope.d.ts.map +1 -1
- package/esm/Scope/LocalScope.js +8 -8
- package/esm/Scope/LocalScope.js.map +1 -1
- package/esm/Semaphore/Semaphore.d.ts +9 -9
- package/esm/Semaphore/Semaphore.d.ts.map +1 -1
- package/esm/Semaphore/Semaphore.js +11 -15
- package/esm/Semaphore/Semaphore.js.map +1 -1
- package/esm/Sink/Sink.d.ts +1 -0
- package/esm/Sink/Sink.d.ts.map +1 -1
- package/esm/Sink/Sink.js +10 -1
- package/esm/Sink/Sink.js.map +1 -1
- package/esm/Stream/Stream.d.ts +5 -10
- package/esm/Stream/Stream.d.ts.map +1 -1
- package/esm/Stream/Stream.js.map +1 -1
- package/esm/Stream/acquirePermit.d.ts +15 -0
- package/esm/Stream/acquirePermit.d.ts.map +1 -0
- package/esm/Stream/acquirePermit.js +15 -0
- package/esm/Stream/acquirePermit.js.map +1 -0
- package/esm/Stream/bimap.d.ts +5 -4
- package/esm/Stream/bimap.d.ts.map +1 -1
- package/esm/Stream/bimap.js +11 -9
- package/esm/Stream/bimap.js.map +1 -1
- package/esm/Stream/continueWith.d.ts +4 -3
- package/esm/Stream/continueWith.d.ts.map +1 -1
- package/esm/Stream/continueWith.js +9 -6
- package/esm/Stream/continueWith.js.map +1 -1
- package/esm/Stream/drain.d.ts +2 -2
- package/esm/Stream/drain.d.ts.map +1 -1
- package/esm/Stream/drain.js +6 -6
- package/esm/Stream/drain.js.map +1 -1
- package/esm/Stream/empty.d.ts.map +1 -1
- package/esm/Stream/empty.js +1 -2
- package/esm/Stream/empty.js.map +1 -1
- package/esm/Stream/flatMap.d.ts +7 -5
- package/esm/Stream/flatMap.d.ts.map +1 -1
- package/esm/Stream/flatMap.js +43 -18
- package/esm/Stream/flatMap.js.map +1 -1
- package/esm/Stream/flatMapConcurrently.d.ts +5 -0
- package/esm/Stream/flatMapConcurrently.d.ts.map +1 -0
- package/esm/Stream/flatMapConcurrently.js +15 -0
- package/esm/Stream/flatMapConcurrently.js.map +1 -0
- package/esm/Stream/flatMapFx.d.ts +5 -1
- package/esm/Stream/flatMapFx.d.ts.map +1 -1
- package/esm/Stream/flatMapFx.js +16 -4
- package/esm/Stream/flatMapFx.js.map +1 -1
- package/esm/Stream/fromCallback.d.ts +4 -3
- package/esm/Stream/fromCallback.d.ts.map +1 -1
- package/esm/Stream/fromCallback.js +26 -26
- package/esm/Stream/fromCallback.js.map +1 -1
- package/esm/Stream/fromFx.d.ts +14 -8
- package/esm/Stream/fromFx.d.ts.map +1 -1
- package/esm/Stream/fromFx.js +13 -13
- package/esm/Stream/fromFx.js.map +1 -1
- package/esm/Stream/hold.d.ts +27 -0
- package/esm/Stream/hold.d.ts.map +1 -0
- package/esm/Stream/hold.js +66 -0
- package/esm/Stream/hold.js.map +1 -0
- package/esm/Stream/index.d.ts +8 -0
- package/esm/Stream/index.d.ts.map +1 -1
- package/esm/Stream/index.js +8 -0
- package/esm/Stream/index.js.map +1 -1
- package/esm/Stream/lazy.d.ts +3 -0
- package/esm/Stream/lazy.d.ts.map +1 -0
- package/esm/Stream/lazy.js +5 -0
- package/esm/Stream/lazy.js.map +1 -0
- package/esm/Stream/map.d.ts +4 -3
- package/esm/Stream/map.d.ts.map +1 -1
- package/esm/Stream/map.js +11 -8
- package/esm/Stream/map.js.map +1 -1
- package/esm/Stream/merge.d.ts +18 -0
- package/esm/Stream/merge.d.ts.map +1 -0
- package/esm/Stream/merge.js +55 -0
- package/esm/Stream/merge.js.map +1 -0
- package/esm/Stream/multicast.d.ts +27 -0
- package/esm/Stream/multicast.d.ts.map +1 -0
- package/esm/Stream/multicast.js +55 -0
- package/esm/Stream/multicast.js.map +1 -0
- package/esm/Stream/orElse.d.ts +17 -0
- package/esm/Stream/orElse.d.ts.map +1 -0
- package/esm/Stream/orElse.js +90 -0
- package/esm/Stream/orElse.js.map +1 -0
- package/esm/Stream/periodic.d.ts +1 -1
- package/esm/Stream/periodic.d.ts.map +1 -1
- package/esm/Stream/periodic.js +1 -1
- package/esm/Stream/periodic.js.map +1 -1
- package/esm/Stream/scan.d.ts +17 -0
- package/esm/Stream/scan.d.ts.map +1 -0
- package/esm/Stream/scan.js +27 -0
- package/esm/Stream/scan.js.map +1 -0
- package/esm/Stream/scheduled.d.ts +12 -3
- package/esm/Stream/scheduled.d.ts.map +1 -1
- package/esm/Stream/scheduled.js +16 -4
- package/esm/Stream/scheduled.js.map +1 -1
- package/esm/Stream/setFiberRefLocally.d.ts +15 -0
- package/esm/Stream/setFiberRefLocally.d.ts.map +1 -0
- package/esm/Stream/setFiberRefLocally.js +23 -0
- package/esm/Stream/setFiberRefLocally.js.map +1 -0
- package/esm/Stream/switchMap.d.ts +18 -0
- package/esm/Stream/switchMap.d.ts.map +1 -0
- package/esm/Stream/switchMap.js +107 -0
- package/esm/Stream/switchMap.js.map +1 -0
- package/esm/Stream/tap.d.ts +2 -1
- package/esm/Stream/tap.d.ts.map +1 -1
- package/esm/Stream/tap.js +3 -2
- package/esm/Stream/tap.js.map +1 -1
- package/esm/Timeline/index.js.map +1 -1
- package/package.json +111 -21
- package/readme.md +1 -1
- package/src/Cause/Cause.ts +63 -0
- package/src/Cause/Renderer.ts +1 -1
- package/src/Env/Env.ts +1 -1
- package/src/Fiber/fromScope.ts +19 -0
- package/src/FiberContext/FiberContext.ts +1 -1
- package/src/FiberRef/builtins.ts +19 -10
- package/src/FiberRuntime/FiberRuntime.ts +32 -25
- package/src/Fx/Fx.test.ts +2 -2
- package/src/Fx/Fx.ts +10 -9
- package/src/Fx/join.ts +4 -4
- package/src/Schedule/ScheduleState.ts +3 -0
- package/src/Scheduler/RootScheduler.ts +7 -9
- package/src/Scheduler/Scheduler.ts +5 -6
- package/src/Scheduler/callbackScheduler.ts +1 -0
- package/src/Scheduler/runSchedule.ts +5 -2
- package/src/Scope/LocalScope.ts +8 -6
- package/src/Semaphore/Semaphore.ts +12 -19
- package/src/Sink/Sink.ts +11 -1
- package/src/Stream/Stream.ts +9 -11
- package/src/Stream/acquirePermit.ts +32 -0
- package/src/Stream/bimap.ts +16 -9
- package/src/Stream/continueWith.ts +11 -7
- package/src/Stream/drain.ts +8 -7
- package/src/Stream/empty.ts +1 -2
- package/src/Stream/flatMap.test.ts +8 -21
- package/src/Stream/flatMap.ts +58 -23
- package/src/Stream/flatMapConcurrently.test.ts +77 -0
- package/src/Stream/flatMapConcurrently.ts +30 -0
- package/src/Stream/flatMapFx.ts +37 -4
- package/src/Stream/fromCallback.test.ts +3 -16
- package/src/Stream/fromCallback.ts +48 -29
- package/src/Stream/fromFx.test.ts +3 -24
- package/src/Stream/fromFx.ts +47 -30
- package/src/Stream/hold.test.ts +52 -0
- package/src/Stream/hold.ts +117 -0
- package/src/Stream/index.ts +8 -0
- package/src/Stream/lazy.ts +5 -0
- package/src/Stream/logging.test.ts +8 -3
- package/src/Stream/map.ts +25 -11
- package/src/Stream/merge.test.ts +31 -0
- package/src/Stream/merge.ts +76 -0
- package/src/Stream/multicast.test.ts +32 -0
- package/src/Stream/multicast.ts +114 -0
- package/src/Stream/orElse.ts +123 -0
- package/src/Stream/periodic.ts +2 -2
- package/src/Stream/scan.test.ts +28 -0
- package/src/Stream/scan.ts +46 -0
- package/src/Stream/scheduled.test.ts +9 -1
- package/src/Stream/scheduled.ts +46 -12
- package/src/Stream/setFiberRefLocally.ts +44 -0
- package/src/Stream/switchMap.test.ts +43 -0
- package/src/Stream/switchMap.ts +159 -0
- package/src/Stream/tap.ts +6 -3
- package/src/Timeline/index.ts +1 -0
- package/cjs/Effect/Effect.d.ts +0 -199
- package/cjs/Effect/Effect.d.ts.map +0 -1
- package/cjs/Effect/Effect.js +0 -66
- package/cjs/Effect/Effect.js.map +0 -1
- package/esm/Effect/Effect.d.ts +0 -199
- package/esm/Effect/Effect.d.ts.map +0 -1
- package/esm/Effect/Effect.js +0 -50
- package/esm/Effect/Effect.js.map +0 -1
- package/src/Effect/Effect.ts +0 -109
package/esm/Effect/Effect.d.ts
DELETED
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import * as F from 'hkt-ts/function';
|
|
2
|
-
import * as C from "../Cause/index.js";
|
|
3
|
-
import { Cause } from "../Cause/index.js";
|
|
4
|
-
import { Exit } from "../Exit/Exit.js";
|
|
5
|
-
export declare abstract class EffectBrand<R, E, A> {
|
|
6
|
-
readonly __EFFECT__: {
|
|
7
|
-
readonly _R: () => R;
|
|
8
|
-
readonly _E: () => E;
|
|
9
|
-
readonly _A: () => A;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export declare abstract class Instr<out I, out R, out E, out A> extends EffectBrand<R, E, A> {
|
|
13
|
-
readonly input: I;
|
|
14
|
-
readonly __trace?: string | undefined;
|
|
15
|
-
static tag: string;
|
|
16
|
-
abstract readonly tag: string;
|
|
17
|
-
constructor(input: I, __trace?: string | undefined);
|
|
18
|
-
[Symbol.iterator](): Generator<this, A, any>;
|
|
19
|
-
}
|
|
20
|
-
export declare const instr: <Tag extends string>(tag: Tag) => {
|
|
21
|
-
new <I, R, E, A>(input: I, __trace?: string): {
|
|
22
|
-
readonly tag: Tag;
|
|
23
|
-
readonly input: I;
|
|
24
|
-
readonly __trace?: string;
|
|
25
|
-
[Symbol.iterator](): Generator<any, A, any>;
|
|
26
|
-
readonly __EFFECT__: {
|
|
27
|
-
readonly _R: () => R;
|
|
28
|
-
readonly _E: () => E;
|
|
29
|
-
readonly _A: () => A;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
tag: Tag;
|
|
33
|
-
};
|
|
34
|
-
export declare type YieldOf<T> = T extends EffectBrand<infer _R, infer _E, infer _A> ? _R : never;
|
|
35
|
-
export declare type ErrorsOf<T> = T extends EffectBrand<infer _R, infer _E, infer _A> ? _E : never;
|
|
36
|
-
export declare type OutputOf<T> = T extends EffectBrand<infer _R, infer _E, infer _A> ? _A : never;
|
|
37
|
-
export declare type Effect<R, E, A> = Now<A> | FromLazy<A> | FromCause<E> | LazyEffect<R, E, A> | MapEffect<R, E, any, A> | FlatMapEffect<R, E, any, R, E, A> | OrElseEffect<R, any, A, R, E, A> | EnsuringEffect<R, any, any, R, E, A> | YieldNow | YieldEffect<R>;
|
|
38
|
-
declare const Now_base: {
|
|
39
|
-
new <I, R, E, A_1>(input: I, __trace?: string | undefined): {
|
|
40
|
-
readonly tag: "Now";
|
|
41
|
-
readonly input: I;
|
|
42
|
-
readonly __trace?: string | undefined;
|
|
43
|
-
[Symbol.iterator](): Generator<any, A_1, any>;
|
|
44
|
-
readonly __EFFECT__: {
|
|
45
|
-
readonly _R: () => R;
|
|
46
|
-
readonly _E: () => E;
|
|
47
|
-
readonly _A: () => A_1;
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
tag: "Now";
|
|
51
|
-
};
|
|
52
|
-
export declare class Now<A> extends Now_base<A, never, never, A> {
|
|
53
|
-
}
|
|
54
|
-
declare const FromLazy_base: {
|
|
55
|
-
new <I, R, E, A_1>(input: I, __trace?: string | undefined): {
|
|
56
|
-
readonly tag: "FromLazy";
|
|
57
|
-
readonly input: I;
|
|
58
|
-
readonly __trace?: string | undefined;
|
|
59
|
-
[Symbol.iterator](): Generator<any, A_1, any>;
|
|
60
|
-
readonly __EFFECT__: {
|
|
61
|
-
readonly _R: () => R;
|
|
62
|
-
readonly _E: () => E;
|
|
63
|
-
readonly _A: () => A_1;
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
tag: "FromLazy";
|
|
67
|
-
};
|
|
68
|
-
export declare class FromLazy<A> extends FromLazy_base<F.Lazy<A>, never, never, A> {
|
|
69
|
-
}
|
|
70
|
-
declare const FromCause_base: {
|
|
71
|
-
new <I, R, E_1, A>(input: I, __trace?: string | undefined): {
|
|
72
|
-
readonly tag: "FromCause";
|
|
73
|
-
readonly input: I;
|
|
74
|
-
readonly __trace?: string | undefined;
|
|
75
|
-
[Symbol.iterator](): Generator<any, A, any>;
|
|
76
|
-
readonly __EFFECT__: {
|
|
77
|
-
readonly _R: () => R;
|
|
78
|
-
readonly _E: () => E_1;
|
|
79
|
-
readonly _A: () => A;
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
tag: "FromCause";
|
|
83
|
-
};
|
|
84
|
-
export declare class FromCause<E> extends FromCause_base<C.Cause<E>, never, E, never> {
|
|
85
|
-
}
|
|
86
|
-
declare const LazyEffect_base: {
|
|
87
|
-
new <I, R_1, E_1, A_1>(input: I, __trace?: string | undefined): {
|
|
88
|
-
readonly tag: "LazyEffect";
|
|
89
|
-
readonly input: I;
|
|
90
|
-
readonly __trace?: string | undefined;
|
|
91
|
-
[Symbol.iterator](): Generator<any, A_1, any>;
|
|
92
|
-
readonly __EFFECT__: {
|
|
93
|
-
readonly _R: () => R_1;
|
|
94
|
-
readonly _E: () => E_1;
|
|
95
|
-
readonly _A: () => A_1;
|
|
96
|
-
};
|
|
97
|
-
};
|
|
98
|
-
tag: "LazyEffect";
|
|
99
|
-
};
|
|
100
|
-
export declare class LazyEffect<R, E, A> extends LazyEffect_base<F.Lazy<Effect<R, E, A>>, R, E, A> {
|
|
101
|
-
}
|
|
102
|
-
declare const MapEffect_base: {
|
|
103
|
-
new <I, R_1, E_1, A_1>(input: I, __trace?: string | undefined): {
|
|
104
|
-
readonly tag: "MapEffect";
|
|
105
|
-
readonly input: I;
|
|
106
|
-
readonly __trace?: string | undefined;
|
|
107
|
-
[Symbol.iterator](): Generator<any, A_1, any>;
|
|
108
|
-
readonly __EFFECT__: {
|
|
109
|
-
readonly _R: () => R_1;
|
|
110
|
-
readonly _E: () => E_1;
|
|
111
|
-
readonly _A: () => A_1;
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
tag: "MapEffect";
|
|
115
|
-
};
|
|
116
|
-
export declare class MapEffect<R, E, A, B> extends MapEffect_base<readonly [Effect<R, E, A>, (a: A) => B], R, E, B> {
|
|
117
|
-
}
|
|
118
|
-
declare const FlatMapEffect_base: {
|
|
119
|
-
new <I, R_1, E_1, A_1>(input: I, __trace?: string | undefined): {
|
|
120
|
-
readonly tag: "FlatMapEffect";
|
|
121
|
-
readonly input: I;
|
|
122
|
-
readonly __trace?: string | undefined;
|
|
123
|
-
[Symbol.iterator](): Generator<any, A_1, any>;
|
|
124
|
-
readonly __EFFECT__: {
|
|
125
|
-
readonly _R: () => R_1;
|
|
126
|
-
readonly _E: () => E_1;
|
|
127
|
-
readonly _A: () => A_1;
|
|
128
|
-
};
|
|
129
|
-
};
|
|
130
|
-
tag: "FlatMapEffect";
|
|
131
|
-
};
|
|
132
|
-
export declare class FlatMapEffect<R, E, A, R2, E2, B> extends FlatMapEffect_base<readonly [Effect<R, E, A>, (a: A) => Effect<R2, E2, B>], R | R2, E | E2, B> {
|
|
133
|
-
}
|
|
134
|
-
declare const OrElseEffect_base: {
|
|
135
|
-
new <I, R_1, E_1, A_1>(input: I, __trace?: string | undefined): {
|
|
136
|
-
readonly tag: "OrElseEffect";
|
|
137
|
-
readonly input: I;
|
|
138
|
-
readonly __trace?: string | undefined;
|
|
139
|
-
[Symbol.iterator](): Generator<any, A_1, any>;
|
|
140
|
-
readonly __EFFECT__: {
|
|
141
|
-
readonly _R: () => R_1;
|
|
142
|
-
readonly _E: () => E_1;
|
|
143
|
-
readonly _A: () => A_1;
|
|
144
|
-
};
|
|
145
|
-
};
|
|
146
|
-
tag: "OrElseEffect";
|
|
147
|
-
};
|
|
148
|
-
export declare class OrElseEffect<R, E, A, R2, E2, B> extends OrElseEffect_base<readonly [Effect<R, E, A>, (cause: Cause<E>) => Effect<R2, E2, B>], R | R2, E2, A | B> {
|
|
149
|
-
}
|
|
150
|
-
declare const EnsuringEffect_base: {
|
|
151
|
-
new <I, R_1, E_1, A_1>(input: I, __trace?: string | undefined): {
|
|
152
|
-
readonly tag: "Ensuring";
|
|
153
|
-
readonly input: I;
|
|
154
|
-
readonly __trace?: string | undefined;
|
|
155
|
-
[Symbol.iterator](): Generator<any, A_1, any>;
|
|
156
|
-
readonly __EFFECT__: {
|
|
157
|
-
readonly _R: () => R_1;
|
|
158
|
-
readonly _E: () => E_1;
|
|
159
|
-
readonly _A: () => A_1;
|
|
160
|
-
};
|
|
161
|
-
};
|
|
162
|
-
tag: "Ensuring";
|
|
163
|
-
};
|
|
164
|
-
export declare class EnsuringEffect<R, E, A, R2, E2, B> extends EnsuringEffect_base<readonly [Effect<R, E, A>, (cause: Exit<E, A>) => Effect<R2, E2, B>], R | R2, E2, B> {
|
|
165
|
-
}
|
|
166
|
-
declare const YieldNow_base: {
|
|
167
|
-
new <I, R, E, A>(input: I, __trace?: string | undefined): {
|
|
168
|
-
readonly tag: "YieldNow";
|
|
169
|
-
readonly input: I;
|
|
170
|
-
readonly __trace?: string | undefined;
|
|
171
|
-
[Symbol.iterator](): Generator<any, A, any>;
|
|
172
|
-
readonly __EFFECT__: {
|
|
173
|
-
readonly _R: () => R;
|
|
174
|
-
readonly _E: () => E;
|
|
175
|
-
readonly _A: () => A;
|
|
176
|
-
};
|
|
177
|
-
};
|
|
178
|
-
tag: "YieldNow";
|
|
179
|
-
};
|
|
180
|
-
export declare class YieldNow extends YieldNow_base<never, never, never, void> {
|
|
181
|
-
}
|
|
182
|
-
declare const YieldEffect_base: {
|
|
183
|
-
new <I, R_1, E, A>(input: I, __trace?: string | undefined): {
|
|
184
|
-
readonly tag: "YieldEffect";
|
|
185
|
-
readonly input: I;
|
|
186
|
-
readonly __trace?: string | undefined;
|
|
187
|
-
[Symbol.iterator](): Generator<any, A, any>;
|
|
188
|
-
readonly __EFFECT__: {
|
|
189
|
-
readonly _R: () => R_1;
|
|
190
|
-
readonly _E: () => E;
|
|
191
|
-
readonly _A: () => A;
|
|
192
|
-
};
|
|
193
|
-
};
|
|
194
|
-
tag: "YieldEffect";
|
|
195
|
-
};
|
|
196
|
-
export declare class YieldEffect<R> extends YieldEffect_base<R, R | YieldOf<R>, ErrorsOf<R>, OutputOf<R>> {
|
|
197
|
-
}
|
|
198
|
-
export {};
|
|
199
|
-
//# sourceMappingURL=Effect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../../src/Effect/Effect.ts"],"names":[],"mappings":"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"}
|
package/esm/Effect/Effect.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// TODO: Track yields as a Tuple?
|
|
2
|
-
// TODO: Track Return HKTs?
|
|
3
|
-
export class EffectBrand {
|
|
4
|
-
__EFFECT__;
|
|
5
|
-
}
|
|
6
|
-
export class Instr extends EffectBrand {
|
|
7
|
-
input;
|
|
8
|
-
__trace;
|
|
9
|
-
static tag;
|
|
10
|
-
constructor(input, __trace) {
|
|
11
|
-
super();
|
|
12
|
-
this.input = input;
|
|
13
|
-
this.__trace = __trace;
|
|
14
|
-
}
|
|
15
|
-
*[Symbol.iterator]() {
|
|
16
|
-
return yield this;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export const instr = (tag) => class Instruction extends Instr {
|
|
20
|
-
static tag = tag;
|
|
21
|
-
tag = tag;
|
|
22
|
-
};
|
|
23
|
-
export class Now extends instr('Now') {
|
|
24
|
-
}
|
|
25
|
-
export class FromLazy extends instr('FromLazy') {
|
|
26
|
-
}
|
|
27
|
-
export class FromCause extends instr('FromCause') {
|
|
28
|
-
}
|
|
29
|
-
export class LazyEffect extends instr('LazyEffect') {
|
|
30
|
-
}
|
|
31
|
-
export class MapEffect extends instr('MapEffect') {
|
|
32
|
-
}
|
|
33
|
-
export class FlatMapEffect extends instr('FlatMapEffect') {
|
|
34
|
-
}
|
|
35
|
-
export class OrElseEffect extends instr('OrElseEffect') {
|
|
36
|
-
}
|
|
37
|
-
export class EnsuringEffect extends instr('Ensuring') {
|
|
38
|
-
}
|
|
39
|
-
export class YieldNow extends instr('YieldNow') {
|
|
40
|
-
}
|
|
41
|
-
export class YieldEffect extends instr('YieldEffect') {
|
|
42
|
-
}
|
|
43
|
-
// TODO: ProvideHandler + Handler
|
|
44
|
-
// TODO: GetHandlers - Use HKT to track return values?
|
|
45
|
-
// TODO: StackMap + References
|
|
46
|
-
// TODO: Interrupts
|
|
47
|
-
// TODO: Tracing
|
|
48
|
-
// TODO: Supervision
|
|
49
|
-
// TODO: Multiple Resumes
|
|
50
|
-
//# sourceMappingURL=Effect.js.map
|
package/esm/Effect/Effect.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/Effect/Effect.ts"],"names":[],"mappings":"AAMA,iCAAiC;AACjC,2BAA2B;AAE3B,MAAM,OAAgB,WAAW;IACtB,UAAU,CAIlB;CACF;AAED,MAAM,OAAgB,KAAkC,SAAQ,WAAoB;IAI7D;IAAmB;IAHxC,MAAM,CAAC,GAAG,CAAQ;IAGlB,YAAqB,KAAQ,EAAW,OAAgB;QACtD,KAAK,EAAE,CAAA;QADY,UAAK,GAAL,KAAK,CAAG;QAAW,YAAO,GAAP,OAAO,CAAS;IAExD,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,OAAO,MAAM,IAAI,CAAA;IACnB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAAqB,GAAQ,EAAE,EAAE,CACpD,MAAM,WAAwB,SAAQ,KAAiB;IACrD,MAAM,CAAC,GAAG,GAAQ,GAAG,CAAA;IACZ,GAAG,GAAQ,GAAG,CAAA;CACxB,CAAA;AAuBH,MAAM,OAAO,GAAO,SAAQ,KAAK,CAAC,KAAK,CAAqB;CAAG;AAE/D,MAAM,OAAO,QAAY,SAAQ,KAAK,CAAC,UAAU,CAA6B;CAAG;AAEjF,MAAM,OAAO,SAAa,SAAQ,KAAK,CAAC,WAAW,CAA8B;CAAG;AAEpF,MAAM,OAAO,UAAoB,SAAQ,KAAK,CAAC,YAAY,CAAmC;CAAG;AAEjG,MAAM,OAAO,SAAsB,SAAQ,KAAK,CAAC,WAAW,CAK3D;CAAG;AAEJ,MAAM,OAAO,aAAkC,SAAQ,KAAK,CAAC,eAAe,CAK3E;CAAG;AAEJ,MAAM,OAAO,YAAiC,SAAQ,KAAK,CAAC,cAAc,CAKzE;CAAG;AAEJ,MAAM,OAAO,cAAmC,SAAQ,KAAK,CAAC,UAAU,CAKvE;CAAG;AAEJ,MAAM,OAAO,QAAS,SAAQ,KAAK,CAAC,UAAU,CAA4B;CAAG;AAE7E,MAAM,OAAO,WAAe,SAAQ,KAAK,CAAC,aAAa,CAKtD;CAAG;AAEJ,iCAAiC;AACjC,sDAAsD;AACtD,8BAA8B;AAC9B,mBAAmB;AACnB,gBAAgB;AAChB,oBAAoB;AACpB,yBAAyB"}
|
package/src/Effect/Effect.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import * as F from 'hkt-ts/function'
|
|
2
|
-
|
|
3
|
-
import * as C from '@/Cause/index.js'
|
|
4
|
-
import { Cause } from '@/Cause/index.js'
|
|
5
|
-
import { Exit } from '@/Exit/Exit.js'
|
|
6
|
-
|
|
7
|
-
// TODO: Track yields as a Tuple?
|
|
8
|
-
// TODO: Track Return HKTs?
|
|
9
|
-
|
|
10
|
-
export abstract class EffectBrand<R, E, A> {
|
|
11
|
-
readonly __EFFECT__!: {
|
|
12
|
-
readonly _R: () => R
|
|
13
|
-
readonly _E: () => E
|
|
14
|
-
readonly _A: () => A
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export abstract class Instr<out I, out R, out E, out A> extends EffectBrand<R, E, A> {
|
|
19
|
-
static tag: string
|
|
20
|
-
abstract readonly tag: string
|
|
21
|
-
|
|
22
|
-
constructor(readonly input: I, readonly __trace?: string) {
|
|
23
|
-
super()
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
*[Symbol.iterator](): Generator<this, A, any> {
|
|
27
|
-
return yield this
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export const instr = <Tag extends string>(tag: Tag) =>
|
|
32
|
-
class Instruction<I, R, E, A> extends Instr<I, R, E, A> {
|
|
33
|
-
static tag: Tag = tag
|
|
34
|
-
readonly tag: Tag = tag
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
38
|
-
export type YieldOf<T> = T extends EffectBrand<infer _R, infer _E, infer _A> ? _R : never
|
|
39
|
-
export type ErrorsOf<T> = T extends EffectBrand<infer _R, infer _E, infer _A> ? _E : never
|
|
40
|
-
export type OutputOf<T> = T extends EffectBrand<infer _R, infer _E, infer _A> ? _A : never
|
|
41
|
-
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
42
|
-
|
|
43
|
-
export type Effect<R, E, A> =
|
|
44
|
-
// Constructors
|
|
45
|
-
| Now<A>
|
|
46
|
-
| FromLazy<A>
|
|
47
|
-
| FromCause<E>
|
|
48
|
-
| LazyEffect<R, E, A>
|
|
49
|
-
// Control Flow
|
|
50
|
-
| MapEffect<R, E, any, A>
|
|
51
|
-
| FlatMapEffect<R, E, any, R, E, A>
|
|
52
|
-
| OrElseEffect<R, any, A, R, E, A>
|
|
53
|
-
| EnsuringEffect<R, any, any, R, E, A>
|
|
54
|
-
| YieldNow
|
|
55
|
-
// Efeccts
|
|
56
|
-
| YieldEffect<R>
|
|
57
|
-
|
|
58
|
-
export class Now<A> extends instr('Now')<A, never, never, A> {}
|
|
59
|
-
|
|
60
|
-
export class FromLazy<A> extends instr('FromLazy')<F.Lazy<A>, never, never, A> {}
|
|
61
|
-
|
|
62
|
-
export class FromCause<E> extends instr('FromCause')<C.Cause<E>, never, E, never> {}
|
|
63
|
-
|
|
64
|
-
export class LazyEffect<R, E, A> extends instr('LazyEffect')<F.Lazy<Effect<R, E, A>>, R, E, A> {}
|
|
65
|
-
|
|
66
|
-
export class MapEffect<R, E, A, B> extends instr('MapEffect')<
|
|
67
|
-
readonly [Effect<R, E, A>, (a: A) => B],
|
|
68
|
-
R,
|
|
69
|
-
E,
|
|
70
|
-
B
|
|
71
|
-
> {}
|
|
72
|
-
|
|
73
|
-
export class FlatMapEffect<R, E, A, R2, E2, B> extends instr('FlatMapEffect')<
|
|
74
|
-
readonly [Effect<R, E, A>, (a: A) => Effect<R2, E2, B>],
|
|
75
|
-
R | R2,
|
|
76
|
-
E | E2,
|
|
77
|
-
B
|
|
78
|
-
> {}
|
|
79
|
-
|
|
80
|
-
export class OrElseEffect<R, E, A, R2, E2, B> extends instr('OrElseEffect')<
|
|
81
|
-
readonly [Effect<R, E, A>, (cause: Cause<E>) => Effect<R2, E2, B>],
|
|
82
|
-
R | R2,
|
|
83
|
-
E2,
|
|
84
|
-
A | B
|
|
85
|
-
> {}
|
|
86
|
-
|
|
87
|
-
export class EnsuringEffect<R, E, A, R2, E2, B> extends instr('Ensuring')<
|
|
88
|
-
readonly [Effect<R, E, A>, (cause: Exit<E, A>) => Effect<R2, E2, B>],
|
|
89
|
-
R | R2,
|
|
90
|
-
E2,
|
|
91
|
-
B
|
|
92
|
-
> {}
|
|
93
|
-
|
|
94
|
-
export class YieldNow extends instr('YieldNow')<never, never, never, void> {}
|
|
95
|
-
|
|
96
|
-
export class YieldEffect<R> extends instr('YieldEffect')<
|
|
97
|
-
R,
|
|
98
|
-
R | YieldOf<R>,
|
|
99
|
-
ErrorsOf<R>,
|
|
100
|
-
OutputOf<R>
|
|
101
|
-
> {}
|
|
102
|
-
|
|
103
|
-
// TODO: ProvideHandler + Handler
|
|
104
|
-
// TODO: GetHandlers - Use HKT to track return values?
|
|
105
|
-
// TODO: StackMap + References
|
|
106
|
-
// TODO: Interrupts
|
|
107
|
-
// TODO: Tracing
|
|
108
|
-
// TODO: Supervision
|
|
109
|
-
// TODO: Multiple Resumes
|