@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
|
@@ -3,7 +3,7 @@ import { deepStrictEqual } from 'assert'
|
|
|
3
3
|
import { NonNegativeInteger } from 'hkt-ts/number'
|
|
4
4
|
|
|
5
5
|
import { collectAll } from './_internal.test.js'
|
|
6
|
-
import { scheduled } from './scheduled.js'
|
|
6
|
+
import { at, scheduled } from './scheduled.js'
|
|
7
7
|
|
|
8
8
|
import * as Fx from '@/Fx/index.js'
|
|
9
9
|
import * as Schedule from '@/Schedule/index.js'
|
|
@@ -31,4 +31,12 @@ testSuite(import.meta.url, () => {
|
|
|
31
31
|
)
|
|
32
32
|
})
|
|
33
33
|
})
|
|
34
|
+
|
|
35
|
+
describe(at.name, () => {
|
|
36
|
+
it('runs Fx at a given time', async () => {
|
|
37
|
+
const value = Math.random()
|
|
38
|
+
|
|
39
|
+
deepStrictEqual(await collectAll(at(Delay(5))(value)), [value])
|
|
40
|
+
})
|
|
41
|
+
})
|
|
34
42
|
})
|
package/src/Stream/scheduled.ts
CHANGED
|
@@ -1,21 +1,55 @@
|
|
|
1
|
+
import { pipe } from 'hkt-ts'
|
|
2
|
+
import { NonNegativeInteger } from 'hkt-ts/number'
|
|
3
|
+
|
|
1
4
|
import { Stream } from './Stream.js'
|
|
2
5
|
|
|
3
6
|
import { Env } from '@/Env/Env.js'
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
+
import { FiberContext } from '@/FiberContext/FiberContext.js'
|
|
8
|
+
import * as Fx from '@/Fx/index.js'
|
|
9
|
+
import * as Schedule from '@/Schedule/Schedule.js'
|
|
10
|
+
import { Scheduler } from '@/Scheduler/Scheduler.js'
|
|
11
|
+
import { Sink } from '@/Sink/Sink.js'
|
|
12
|
+
import { Delay } from '@/Time/index.js'
|
|
13
|
+
import { FiberId } from '@/index.js'
|
|
7
14
|
|
|
8
|
-
export function scheduled(schedule: Schedule) {
|
|
15
|
+
export function scheduled(schedule: Schedule.Schedule, __trace?: string) {
|
|
9
16
|
return <R, E, A>(fx: Fx.Fx<R, E, A>): Stream<R, E, A> =>
|
|
10
|
-
Stream((sink, scheduler, context) =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
Stream(<E2>(sink: Sink<E, A, E2>, scheduler: Scheduler, context: FiberContext<FiberId.Live>) =>
|
|
18
|
+
pipe(
|
|
19
|
+
Fx.asksEnv(
|
|
20
|
+
(env: Env<R>) =>
|
|
21
|
+
scheduler.schedule(
|
|
22
|
+
Fx.matchCause(sink.error, sink.event, __trace)(fx),
|
|
23
|
+
env,
|
|
24
|
+
schedule,
|
|
25
|
+
context,
|
|
26
|
+
() => sink.end,
|
|
27
|
+
),
|
|
28
|
+
__trace,
|
|
18
29
|
),
|
|
19
30
|
),
|
|
20
31
|
)
|
|
21
32
|
}
|
|
33
|
+
|
|
34
|
+
export function at(delay: Delay, __trace?: string) {
|
|
35
|
+
return <A>(value: A): Stream<never, never, A> =>
|
|
36
|
+
scheduled(Schedule.delayed(delay), __trace)(Fx.now(value))
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function repeated(period: Delay, __trace?: string) {
|
|
40
|
+
return <A>(value: A): Stream<never, never, A> =>
|
|
41
|
+
scheduled(Schedule.periodic(period), __trace)(Fx.now(value))
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const exponential = (delay: Delay, __trace?: string) =>
|
|
45
|
+
scheduled(Schedule.exponential(delay), __trace)
|
|
46
|
+
|
|
47
|
+
export const forever = scheduled(Schedule.forever, 'Scheduled.forever')
|
|
48
|
+
|
|
49
|
+
export const recurring = (amount: NonNegativeInteger, __trace?: string) =>
|
|
50
|
+
scheduled(Schedule.recurring(amount), __trace)
|
|
51
|
+
|
|
52
|
+
export const retries = (amount: NonNegativeInteger, __trace?: string) =>
|
|
53
|
+
scheduled(Schedule.retries(amount), __trace)
|
|
54
|
+
|
|
55
|
+
export const spaced = (delay: Delay, __trace?: string) => scheduled(Schedule.spaced(delay), __trace)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { pipe } from 'hkt-ts'
|
|
2
|
+
|
|
3
|
+
import { Stream } from './Stream.js'
|
|
4
|
+
|
|
5
|
+
import { FiberContext } from '@/FiberContext/FiberContext.js'
|
|
6
|
+
import { FiberId } from '@/FiberId/FiberId.js'
|
|
7
|
+
import { FiberRef } from '@/FiberRef/FiberRef.js'
|
|
8
|
+
import * as FiberRefs from '@/FiberRefs/FiberRefs.js'
|
|
9
|
+
import { flatMap, fromLazy } from '@/Fx/Fx.js'
|
|
10
|
+
import { Scheduler } from '@/Scheduler/Scheduler.js'
|
|
11
|
+
import { Sink } from '@/Sink/Sink.js'
|
|
12
|
+
|
|
13
|
+
export function setFiberRefLocally<R, E, A>(fiberRef: FiberRef<R, E, A>, value: () => A) {
|
|
14
|
+
return <R2, E2, A2>(fx: Stream<R2, E2, A2>) => new SetFiberRefLocallyStream(fx, fiberRef, value)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class SetFiberRefLocallyStream<R, E, A, R2, E2, A2> implements Stream<R2, E2, A2> {
|
|
18
|
+
constructor(
|
|
19
|
+
readonly stream: Stream<R2, E2, A2>,
|
|
20
|
+
readonly fiberRef: FiberRef<R, E, A>,
|
|
21
|
+
readonly value: () => A,
|
|
22
|
+
) {}
|
|
23
|
+
|
|
24
|
+
fork<E3>(sink: Sink<E2, A2, E3>, scheduler: Scheduler, context: FiberContext<FiberId.Live>) {
|
|
25
|
+
return pipe(
|
|
26
|
+
fromLazy(() => FiberRefs.setFiberRefLocally(this.fiberRef, this.value())(context.fiberRefs)),
|
|
27
|
+
flatMap(() =>
|
|
28
|
+
this.stream.fork(
|
|
29
|
+
{
|
|
30
|
+
...sink,
|
|
31
|
+
end: pipe(
|
|
32
|
+
sink.end,
|
|
33
|
+
flatMap(() =>
|
|
34
|
+
fromLazy(() => FiberRefs.popLocalFiberRef(this.fiberRef)(context.fiberRefs)),
|
|
35
|
+
),
|
|
36
|
+
),
|
|
37
|
+
},
|
|
38
|
+
scheduler,
|
|
39
|
+
context,
|
|
40
|
+
),
|
|
41
|
+
),
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { deepStrictEqual } from 'assert'
|
|
2
|
+
|
|
3
|
+
import { pipe } from 'hkt-ts'
|
|
4
|
+
|
|
5
|
+
import { collectAll } from './_internal.test.js'
|
|
6
|
+
import { now } from './fromFx.js'
|
|
7
|
+
import { merge } from './merge.js'
|
|
8
|
+
import { at } from './scheduled.js'
|
|
9
|
+
import { switchMap } from './switchMap.js'
|
|
10
|
+
|
|
11
|
+
import { Delay } from '@/Time/index.js'
|
|
12
|
+
import { testSuite } from '@/_internal/suite.js'
|
|
13
|
+
|
|
14
|
+
testSuite(import.meta.url, () => {
|
|
15
|
+
describe(switchMap.name, () => {
|
|
16
|
+
const value = Math.random()
|
|
17
|
+
const stream = pipe(
|
|
18
|
+
now(value),
|
|
19
|
+
switchMap((a) => now(a + 1)),
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
it('is collectable', async () => {
|
|
23
|
+
const events = await collectAll(stream)
|
|
24
|
+
deepStrictEqual(events, [value + 1])
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
it('is collectable with multiple subscribers', async () => {
|
|
28
|
+
const events = await Promise.all([collectAll(stream), collectAll(stream)])
|
|
29
|
+
deepStrictEqual(events, [[value + 1], [value + 1]])
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
it('cancels the previous stream', async () => {
|
|
33
|
+
const stream = pipe(
|
|
34
|
+
at(Delay(0))(1),
|
|
35
|
+
merge(at(Delay(50))(5)),
|
|
36
|
+
switchMap((a) => pipe(now(a), merge(at(Delay(100))(a + 1)))),
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
const events = await collectAll(stream)
|
|
40
|
+
deepStrictEqual(events, [1, 5, 6])
|
|
41
|
+
})
|
|
42
|
+
})
|
|
43
|
+
})
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { flow, pipe } from 'hkt-ts'
|
|
2
|
+
import { isRight } from 'hkt-ts/Either'
|
|
3
|
+
import { isJust } from 'hkt-ts/Maybe'
|
|
4
|
+
|
|
5
|
+
import { Stream } from './Stream.js'
|
|
6
|
+
import { MapStream } from './map.js'
|
|
7
|
+
|
|
8
|
+
import { Cause } from '@/Cause/index.js'
|
|
9
|
+
import { Disposable, Settable, settable } from '@/Disposable/Disposable.js'
|
|
10
|
+
import { Env } from '@/Env/Env.js'
|
|
11
|
+
import { Fiber } from '@/Fiber/Fiber.js'
|
|
12
|
+
import { FiberContext } from '@/FiberContext/FiberContext.js'
|
|
13
|
+
import { Live } from '@/FiberId/FiberId.js'
|
|
14
|
+
import * as FiberRefs from '@/FiberRefs/index.js'
|
|
15
|
+
import * as Fx from '@/Fx/index.js'
|
|
16
|
+
import { access, lazy, unit } from '@/Fx/index.js'
|
|
17
|
+
import { Scheduler } from '@/Scheduler/Scheduler.js'
|
|
18
|
+
import { Lock } from '@/Semaphore/Semaphore.js'
|
|
19
|
+
import * as Sink from '@/Sink/Sink.js'
|
|
20
|
+
import { None, and } from '@/Supervisor/Supervisor.js'
|
|
21
|
+
|
|
22
|
+
export function switchMap<A, R2, E2, B>(
|
|
23
|
+
f: (a: A) => Stream<R2, E2, B>,
|
|
24
|
+
__trace?: string,
|
|
25
|
+
): <R, E>(stream: Stream<R, E, A>) => Stream<R | R2, E | E2, B> {
|
|
26
|
+
return (stream) => SwitchMapStream.make(stream, f, __trace)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function switchLatest<R, E, R2, E2, A>(
|
|
30
|
+
stream: Stream<R, E, Stream<R2, E2, A>>,
|
|
31
|
+
__trace?: string,
|
|
32
|
+
): Stream<R | R2, E | E2, A> {
|
|
33
|
+
return switchMap((a: Stream<R2, E2, A>) => a, __trace)(stream)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export class SwitchMapStream<R, E, A, R2, E2, B> implements Stream<R | R2, E | E2, B> {
|
|
37
|
+
constructor(
|
|
38
|
+
readonly stream: Stream<R, E, A>,
|
|
39
|
+
readonly f: (a: A) => Stream<R2, E2, B>,
|
|
40
|
+
readonly __trace?: string,
|
|
41
|
+
) {}
|
|
42
|
+
|
|
43
|
+
fork<E3>(sink: Sink.Sink<E | E2, B, E3>, scheduler: Scheduler, context: FiberContext<Live>) {
|
|
44
|
+
const { stream, f } = this
|
|
45
|
+
|
|
46
|
+
return access((env: Env<R | R2>) =>
|
|
47
|
+
stream.fork(
|
|
48
|
+
new SwitchMapSink(sink, scheduler, context, f, env, this.__trace),
|
|
49
|
+
scheduler,
|
|
50
|
+
context,
|
|
51
|
+
),
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static make<R, E, A, R2, E2, B>(
|
|
56
|
+
stream: Stream<R, E, A>,
|
|
57
|
+
f: (a: A) => Stream<R2, E2, B>,
|
|
58
|
+
__trace?: string,
|
|
59
|
+
): Stream<R | R2, E | E2, B> {
|
|
60
|
+
if (stream instanceof MapStream) {
|
|
61
|
+
return SwitchMapStream.make(stream.stream, flow(stream.f, f), __trace)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return new SwitchMapStream(stream, f, __trace)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
class SwitchMapSink<R, E, A, R2, E2, B, E3> implements Sink.Sink<E | E2, A, E3> {
|
|
69
|
+
protected _ended = false
|
|
70
|
+
protected _fibers: Array<Fiber<E3, any>> = []
|
|
71
|
+
protected _lock = new Lock()
|
|
72
|
+
|
|
73
|
+
protected _supervisor = None.extend({
|
|
74
|
+
onEnd: () => (fiber, exit) => {
|
|
75
|
+
const parentContext = fiber.context.parent
|
|
76
|
+
|
|
77
|
+
// Merge FiberRefs upon successful completion
|
|
78
|
+
if (isRight(exit) && isJust(parentContext)) {
|
|
79
|
+
FiberRefs.join(parentContext.value.fiberRefs, fiber.context.fiberRefs)
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
constructor(
|
|
85
|
+
readonly sink: Sink.Sink<E | E2, B, E3>,
|
|
86
|
+
readonly scheduler: Scheduler,
|
|
87
|
+
readonly context: FiberContext<Live>,
|
|
88
|
+
readonly f: (a: A) => Stream<R2, E2, B>,
|
|
89
|
+
readonly env: Env<R | R2>,
|
|
90
|
+
readonly __trace?: string,
|
|
91
|
+
) {}
|
|
92
|
+
|
|
93
|
+
event = (a: A): Fx.IO<E3, unknown> =>
|
|
94
|
+
Fx.lazy(() => {
|
|
95
|
+
const forked = this.context.fork({
|
|
96
|
+
supervisor: and(this._supervisor)(this.context.supervisor),
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
const cleanup: Fx.Of<unknown> = Fx.zipAll(this._fibers.map((f) => f.interruptAs(forked.id)))
|
|
100
|
+
const disposable = settable()
|
|
101
|
+
const sink = this.innerSink(disposable)
|
|
102
|
+
|
|
103
|
+
return pipe(
|
|
104
|
+
cleanup, // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
105
|
+
Fx.flatMap(() => this.f(a).fork(Sink.addTrace(sink, this.__trace), this.scheduler, forked)),
|
|
106
|
+
Fx.tapLazy((fiber) => {
|
|
107
|
+
this._fibers.push(fiber)
|
|
108
|
+
|
|
109
|
+
disposable.add(
|
|
110
|
+
Disposable(() => {
|
|
111
|
+
this._fibers.splice(this._fibers.indexOf(fiber), 1)
|
|
112
|
+
}),
|
|
113
|
+
)
|
|
114
|
+
}),
|
|
115
|
+
Fx.flatMap((fiber) =>
|
|
116
|
+
pipe(
|
|
117
|
+
fiber,
|
|
118
|
+
Fx.join,
|
|
119
|
+
Fx.tapLazy(() => disposable.dispose()),
|
|
120
|
+
),
|
|
121
|
+
),
|
|
122
|
+
(x) => x,
|
|
123
|
+
Fx.provide(this.env),
|
|
124
|
+
)
|
|
125
|
+
})
|
|
126
|
+
|
|
127
|
+
error = (cause: Cause<E | E2>) => {
|
|
128
|
+
return lazy(() => {
|
|
129
|
+
this._ended = true
|
|
130
|
+
|
|
131
|
+
return this.sink.error(cause)
|
|
132
|
+
})
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
end = lazy(() => {
|
|
136
|
+
this._ended = true
|
|
137
|
+
|
|
138
|
+
return this.endIfCompleted()
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
protected endIfCompleted() {
|
|
142
|
+
if (this._ended && this._fibers.length === 0) {
|
|
143
|
+
return this.sink.end
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return unit
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
protected innerSink(disposable: Settable): Sink.Sink<E | E2, B, E3> {
|
|
150
|
+
return {
|
|
151
|
+
event: this.sink.event,
|
|
152
|
+
error: this.error,
|
|
153
|
+
end: lazy(() => {
|
|
154
|
+
disposable.dispose()
|
|
155
|
+
return this.endIfCompleted()
|
|
156
|
+
}),
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
package/src/Stream/tap.ts
CHANGED
|
@@ -3,10 +3,10 @@ import { pipe } from 'hkt-ts/function'
|
|
|
3
3
|
import { Stream } from './Stream.js'
|
|
4
4
|
import { flatMapFx } from './flatMapFx.js'
|
|
5
5
|
|
|
6
|
-
import { Fx, map } from '@/Fx/Fx.js'
|
|
6
|
+
import { Fx, fromLazy, map } from '@/Fx/Fx.js'
|
|
7
7
|
|
|
8
8
|
export const tap =
|
|
9
|
-
<A, R2, E2, B>(f: (a: A) => Fx<R2, E2, B
|
|
9
|
+
<A, R2, E2, B>(f: (a: A) => Fx<R2, E2, B>, __trace?: string) =>
|
|
10
10
|
<R, E>(stream: Stream<R, E, A>): Stream<R | R2, E | E2, A> =>
|
|
11
11
|
pipe(
|
|
12
12
|
stream,
|
|
@@ -16,6 +16,9 @@ export const tap =
|
|
|
16
16
|
f(a),
|
|
17
17
|
map(() => a),
|
|
18
18
|
),
|
|
19
|
-
|
|
19
|
+
__trace,
|
|
20
20
|
),
|
|
21
21
|
)
|
|
22
|
+
|
|
23
|
+
export const tapLazy = <A, B>(f: (a: A) => B, __trace?: string) =>
|
|
24
|
+
tap((a: A) => fromLazy(() => f(a)), __trace)
|
package/src/Timeline/index.ts
CHANGED
package/cjs/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/cjs/Effect/Effect.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.YieldEffect = exports.YieldNow = exports.EnsuringEffect = exports.OrElseEffect = exports.FlatMapEffect = exports.MapEffect = exports.LazyEffect = exports.FromCause = exports.FromLazy = exports.Now = exports.instr = exports.Instr = exports.EffectBrand = void 0;
|
|
4
|
-
// TODO: Track yields as a Tuple?
|
|
5
|
-
// TODO: Track Return HKTs?
|
|
6
|
-
class EffectBrand {
|
|
7
|
-
__EFFECT__;
|
|
8
|
-
}
|
|
9
|
-
exports.EffectBrand = EffectBrand;
|
|
10
|
-
class Instr extends EffectBrand {
|
|
11
|
-
input;
|
|
12
|
-
__trace;
|
|
13
|
-
static tag;
|
|
14
|
-
constructor(input, __trace) {
|
|
15
|
-
super();
|
|
16
|
-
this.input = input;
|
|
17
|
-
this.__trace = __trace;
|
|
18
|
-
}
|
|
19
|
-
*[Symbol.iterator]() {
|
|
20
|
-
return yield this;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.Instr = Instr;
|
|
24
|
-
const instr = (tag) => class Instruction extends Instr {
|
|
25
|
-
static tag = tag;
|
|
26
|
-
tag = tag;
|
|
27
|
-
};
|
|
28
|
-
exports.instr = instr;
|
|
29
|
-
class Now extends (0, exports.instr)('Now') {
|
|
30
|
-
}
|
|
31
|
-
exports.Now = Now;
|
|
32
|
-
class FromLazy extends (0, exports.instr)('FromLazy') {
|
|
33
|
-
}
|
|
34
|
-
exports.FromLazy = FromLazy;
|
|
35
|
-
class FromCause extends (0, exports.instr)('FromCause') {
|
|
36
|
-
}
|
|
37
|
-
exports.FromCause = FromCause;
|
|
38
|
-
class LazyEffect extends (0, exports.instr)('LazyEffect') {
|
|
39
|
-
}
|
|
40
|
-
exports.LazyEffect = LazyEffect;
|
|
41
|
-
class MapEffect extends (0, exports.instr)('MapEffect') {
|
|
42
|
-
}
|
|
43
|
-
exports.MapEffect = MapEffect;
|
|
44
|
-
class FlatMapEffect extends (0, exports.instr)('FlatMapEffect') {
|
|
45
|
-
}
|
|
46
|
-
exports.FlatMapEffect = FlatMapEffect;
|
|
47
|
-
class OrElseEffect extends (0, exports.instr)('OrElseEffect') {
|
|
48
|
-
}
|
|
49
|
-
exports.OrElseEffect = OrElseEffect;
|
|
50
|
-
class EnsuringEffect extends (0, exports.instr)('Ensuring') {
|
|
51
|
-
}
|
|
52
|
-
exports.EnsuringEffect = EnsuringEffect;
|
|
53
|
-
class YieldNow extends (0, exports.instr)('YieldNow') {
|
|
54
|
-
}
|
|
55
|
-
exports.YieldNow = YieldNow;
|
|
56
|
-
class YieldEffect extends (0, exports.instr)('YieldEffect') {
|
|
57
|
-
}
|
|
58
|
-
exports.YieldEffect = YieldEffect;
|
|
59
|
-
// TODO: ProvideHandler + Handler
|
|
60
|
-
// TODO: GetHandlers - Use HKT to track return values?
|
|
61
|
-
// TODO: StackMap + References
|
|
62
|
-
// TODO: Interrupts
|
|
63
|
-
// TODO: Tracing
|
|
64
|
-
// TODO: Supervision
|
|
65
|
-
// TODO: Multiple Resumes
|
|
66
|
-
//# sourceMappingURL=Effect.js.map
|
package/cjs/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,MAAsB,WAAW;IACtB,UAAU,CAIlB;CACF;AAND,kCAMC;AAED,MAAsB,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;AAXD,sBAWC;AAEM,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;AAJU,QAAA,KAAK,SAIf;AAuBH,MAAa,GAAO,SAAQ,IAAA,aAAK,EAAC,KAAK,CAAqB;CAAG;AAA/D,kBAA+D;AAE/D,MAAa,QAAY,SAAQ,IAAA,aAAK,EAAC,UAAU,CAA6B;CAAG;AAAjF,4BAAiF;AAEjF,MAAa,SAAa,SAAQ,IAAA,aAAK,EAAC,WAAW,CAA8B;CAAG;AAApF,8BAAoF;AAEpF,MAAa,UAAoB,SAAQ,IAAA,aAAK,EAAC,YAAY,CAAmC;CAAG;AAAjG,gCAAiG;AAEjG,MAAa,SAAsB,SAAQ,IAAA,aAAK,EAAC,WAAW,CAK3D;CAAG;AALJ,8BAKI;AAEJ,MAAa,aAAkC,SAAQ,IAAA,aAAK,EAAC,eAAe,CAK3E;CAAG;AALJ,sCAKI;AAEJ,MAAa,YAAiC,SAAQ,IAAA,aAAK,EAAC,cAAc,CAKzE;CAAG;AALJ,oCAKI;AAEJ,MAAa,cAAmC,SAAQ,IAAA,aAAK,EAAC,UAAU,CAKvE;CAAG;AALJ,wCAKI;AAEJ,MAAa,QAAS,SAAQ,IAAA,aAAK,EAAC,UAAU,CAA4B;CAAG;AAA7E,4BAA6E;AAE7E,MAAa,WAAe,SAAQ,IAAA,aAAK,EAAC,aAAa,CAKtD;CAAG;AALJ,kCAKI;AAEJ,iCAAiC;AACjC,sDAAsD;AACtD,8BAA8B;AAC9B,mBAAmB;AACnB,gBAAgB;AAChB,oBAAoB;AACpB,yBAAyB"}
|