@fncts/io 0.0.31 → 0.0.33
Sign up to get free protection for your applications and to get access to all the features.
- package/Channel/api/runScoped.d.ts +1 -0
- package/Channel/api.d.ts +1 -0
- package/Channel/internal/ChannelExecutor.d.ts +2 -2
- package/Fiber/FiberMessage.d.ts +5 -5
- package/Fiber/FiberRuntime.d.ts +3 -3
- package/IO/api/provideSomeLayer.d.ts +1 -2
- package/IO/api/zipConcurrent.d.ts +2 -1
- package/IO/api.d.ts +2 -1
- package/IO/definition.d.ts +34 -24
- package/IO/runtime.d.ts +10 -18
- package/STM/definition.d.ts +1 -1
- package/Stream/api.d.ts +113 -5
- package/_cjs/Channel/api/mapOutConcurrentIO.cjs +1 -1
- package/_cjs/Channel/api/mapOutConcurrentIO.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAllWith.cjs +3 -3
- package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
- package/_cjs/Channel/api/mergeWith.cjs +4 -4
- package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
- package/_cjs/Channel/api/runScoped.cjs +19 -3
- package/_cjs/Channel/api/runScoped.cjs.map +1 -1
- package/_cjs/Channel/api/toPull.cjs +3 -3
- package/_cjs/Channel/api/toPull.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +8 -7
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Channel/internal/ChannelExecutor.cjs +71 -62
- package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +3 -3
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
- package/_cjs/Clock/live.cjs +1 -1
- package/_cjs/Clock/live.cjs.map +1 -1
- package/_cjs/Fiber/FiberMessage.cjs +12 -11
- package/_cjs/Fiber/FiberMessage.cjs.map +1 -1
- package/_cjs/Fiber/FiberRuntime.cjs +102 -70
- package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
- package/_cjs/Fiber/api/collectAll.cjs +1 -1
- package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
- package/_cjs/Fiber/api/mapIO.cjs +1 -1
- package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
- package/_cjs/Fiber/api/zipWith.cjs +1 -1
- package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
- package/_cjs/Fiber/constructors.cjs +5 -5
- package/_cjs/Fiber/constructors.cjs.map +1 -1
- package/_cjs/FiberRef/unsafe.cjs +3 -2
- package/_cjs/FiberRef/unsafe.cjs.map +1 -1
- package/_cjs/FiberScope/definition.cjs +2 -2
- package/_cjs/FiberScope/definition.cjs.map +1 -1
- package/_cjs/Future/api.cjs +4 -4
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/Hub/api.cjs.map +1 -1
- package/_cjs/Hub/internal.cjs +1 -1
- package/_cjs/Hub/internal.cjs.map +1 -1
- package/_cjs/IO/api/asyncIO.cjs +1 -1
- package/_cjs/IO/api/asyncIO.cjs.map +1 -1
- package/_cjs/IO/api/asyncInterrupt.cjs +2 -2
- package/_cjs/IO/api/asyncInterrupt.cjs.map +1 -1
- package/_cjs/IO/api/concurrency.cjs +3 -3
- package/_cjs/IO/api/concurrency.cjs.map +1 -1
- package/_cjs/IO/api/daemonChildren.cjs +1 -1
- package/_cjs/IO/api/daemonChildren.cjs.map +1 -1
- package/_cjs/IO/api/fork.cjs +2 -1
- package/_cjs/IO/api/fork.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +2 -2
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
- package/_cjs/IO/api/raceWith.cjs +9 -12
- package/_cjs/IO/api/raceWith.cjs.map +1 -1
- package/_cjs/IO/api/repeat.cjs +2 -2
- package/_cjs/IO/api/repeat.cjs.map +1 -1
- package/_cjs/IO/api/stateful.cjs +3 -3
- package/_cjs/IO/api/stateful.cjs.map +1 -1
- package/_cjs/IO/api/timeout.cjs +1 -1
- package/_cjs/IO/api/timeout.cjs.map +1 -1
- package/_cjs/IO/api/transplant.cjs +1 -1
- package/_cjs/IO/api/transplant.cjs.map +1 -1
- package/_cjs/IO/api/withChildren.cjs +5 -4
- package/_cjs/IO/api/withChildren.cjs.map +1 -1
- package/_cjs/IO/api/withEarlyRelease.cjs +1 -1
- package/_cjs/IO/api/withEarlyRelease.cjs.map +1 -1
- package/_cjs/IO/api/zipConcurrent.cjs +23 -23
- package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
- package/_cjs/IO/api.cjs +33 -32
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs +17 -31
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO/runtime.cjs +47 -40
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/Logger/api.cjs +3 -2
- package/_cjs/Logger/api.cjs.map +1 -1
- package/_cjs/MVar/api.cjs +11 -11
- package/_cjs/MVar/api.cjs.map +1 -1
- package/_cjs/Push/api.cjs +3 -3
- package/_cjs/Push/api.cjs.map +1 -1
- package/_cjs/Push/internal.cjs +1 -1
- package/_cjs/Push/internal.cjs.map +1 -1
- package/_cjs/Queue/api/filterInputIO.cjs +2 -2
- package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
- package/_cjs/Queue/api/filterOutputIO.cjs.map +1 -1
- package/_cjs/Ref/Derived.cjs +4 -4
- package/_cjs/Ref/Derived.cjs.map +1 -1
- package/_cjs/Ref/DerivedAll.cjs +5 -5
- package/_cjs/Ref/DerivedAll.cjs.map +1 -1
- package/_cjs/Ref/Synchronized/api.cjs +3 -3
- package/_cjs/Ref/Synchronized/api.cjs.map +1 -1
- package/_cjs/Ref/api/collect.cjs +1 -1
- package/_cjs/Ref/api/collect.cjs.map +1 -1
- package/_cjs/Ref/api/dimap.cjs +3 -3
- package/_cjs/Ref/api/dimap.cjs.map +1 -1
- package/_cjs/Ref/api/filter.cjs +2 -2
- package/_cjs/Ref/api/filter.cjs.map +1 -1
- package/_cjs/Ref/api.cjs +2 -3
- package/_cjs/Ref/api.cjs.map +1 -1
- package/_cjs/RefSubject/Atomic.cjs +6 -6
- package/_cjs/RefSubject/Atomic.cjs.map +1 -1
- package/_cjs/STM/api.cjs +5 -5
- package/_cjs/STM/api.cjs.map +1 -1
- package/_cjs/STM/definition.cjs +1 -1
- package/_cjs/STM/definition.cjs.map +1 -1
- package/_cjs/STM/internal/CommitState.cjs +5 -4
- package/_cjs/STM/internal/CommitState.cjs.map +1 -1
- package/_cjs/STM/internal/Journal.cjs +8 -8
- package/_cjs/STM/internal/Journal.cjs.map +1 -1
- package/_cjs/Schedule/api/driver.cjs +3 -3
- package/_cjs/Schedule/api/driver.cjs.map +1 -1
- package/_cjs/Schedule/api.cjs +8 -8
- package/_cjs/Schedule/api.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +1 -1
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api.cjs +3 -3
- package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +1 -1
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/Semaphore.cjs +2 -2
- package/_cjs/Semaphore.cjs.map +1 -1
- package/_cjs/Sink/api.cjs +6 -6
- package/_cjs/Sink/api.cjs.map +1 -1
- package/_cjs/Stream/api/zipAllWith.cjs +8 -8
- package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
- package/_cjs/Stream/api/zipWithChunks.cjs +6 -6
- package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +415 -133
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/Stream/internal/Handoff.cjs +2 -2
- package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
- package/_cjs/Stream/internal/Pull.cjs +2 -2
- package/_cjs/Stream/internal/Pull.cjs.map +1 -1
- package/_cjs/Stream/internal/Take.cjs +6 -6
- package/_cjs/Stream/internal/Take.cjs.map +1 -1
- package/_cjs/Stream/internal/util.cjs +3 -2
- package/_cjs/Stream/internal/util.cjs.map +1 -1
- package/_cjs/TFuture/api.cjs +3 -3
- package/_cjs/TFuture/api.cjs.map +1 -1
- package/_cjs/TFuture/constructors.cjs +1 -1
- package/_cjs/TFuture/constructors.cjs.map +1 -1
- package/_cjs/TRef/definition.cjs +9 -9
- package/_cjs/TRef/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/findIO.cjs +3 -3
- package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
- package/_cjs/data/Exit/foreachIO.cjs +1 -1
- package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
- package/_mjs/Cached/definition.mjs.map +1 -1
- package/_mjs/Channel/api/mapOutConcurrentIO.mjs +1 -1
- package/_mjs/Channel/api/mapOutConcurrentIO.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAllWith.mjs +3 -3
- package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
- package/_mjs/Channel/api/mergeWith.mjs +4 -4
- package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
- package/_mjs/Channel/api/runScoped.mjs +19 -3
- package/_mjs/Channel/api/runScoped.mjs.map +1 -1
- package/_mjs/Channel/api/toPull.mjs +3 -3
- package/_mjs/Channel/api/toPull.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +8 -7
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Channel/internal/ChannelExecutor.mjs +71 -62
- package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +3 -3
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
- package/_mjs/Clock/live.mjs +1 -1
- package/_mjs/Clock/live.mjs.map +1 -1
- package/_mjs/Fiber/FiberMessage.mjs +5 -5
- package/_mjs/Fiber/FiberMessage.mjs.map +1 -1
- package/_mjs/Fiber/FiberRuntime.mjs +102 -70
- package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
- package/_mjs/Fiber/api/collectAll.mjs +1 -1
- package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
- package/_mjs/Fiber/api/mapIO.mjs +1 -1
- package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
- package/_mjs/Fiber/api/zipWith.mjs +1 -1
- package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
- package/_mjs/Fiber/constructors.mjs +5 -5
- package/_mjs/Fiber/constructors.mjs.map +1 -1
- package/_mjs/FiberRef/unsafe.mjs +3 -2
- package/_mjs/FiberRef/unsafe.mjs.map +1 -1
- package/_mjs/FiberScope/definition.mjs +2 -2
- package/_mjs/FiberScope/definition.mjs.map +1 -1
- package/_mjs/Future/api.mjs +4 -4
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/Hub/api.mjs.map +1 -1
- package/_mjs/Hub/internal.mjs +1 -1
- package/_mjs/Hub/internal.mjs.map +1 -1
- package/_mjs/IO/api/asyncIO.mjs +1 -1
- package/_mjs/IO/api/asyncIO.mjs.map +1 -1
- package/_mjs/IO/api/asyncInterrupt.mjs +2 -2
- package/_mjs/IO/api/asyncInterrupt.mjs.map +1 -1
- package/_mjs/IO/api/concurrency.mjs +3 -3
- package/_mjs/IO/api/concurrency.mjs.map +1 -1
- package/_mjs/IO/api/daemonChildren.mjs +1 -1
- package/_mjs/IO/api/daemonChildren.mjs.map +1 -1
- package/_mjs/IO/api/fork.mjs +2 -1
- package/_mjs/IO/api/fork.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +2 -2
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
- package/_mjs/IO/api/raceWith.mjs +9 -12
- package/_mjs/IO/api/raceWith.mjs.map +1 -1
- package/_mjs/IO/api/repeat.mjs +2 -2
- package/_mjs/IO/api/repeat.mjs.map +1 -1
- package/_mjs/IO/api/stateful.mjs +3 -3
- package/_mjs/IO/api/stateful.mjs.map +1 -1
- package/_mjs/IO/api/timeout.mjs +1 -1
- package/_mjs/IO/api/timeout.mjs.map +1 -1
- package/_mjs/IO/api/transplant.mjs +1 -1
- package/_mjs/IO/api/transplant.mjs.map +1 -1
- package/_mjs/IO/api/withChildren.mjs +5 -4
- package/_mjs/IO/api/withChildren.mjs.map +1 -1
- package/_mjs/IO/api/withEarlyRelease.mjs +1 -1
- package/_mjs/IO/api/withEarlyRelease.mjs.map +1 -1
- package/_mjs/IO/api/zipConcurrent.mjs +23 -23
- package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
- package/_mjs/IO/api.mjs +32 -30
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs +16 -27
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO/runtime.mjs +43 -34
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/Logger/api.mjs +3 -2
- package/_mjs/Logger/api.mjs.map +1 -1
- package/_mjs/MVar/api.mjs +11 -11
- package/_mjs/MVar/api.mjs.map +1 -1
- package/_mjs/Push/api.mjs +3 -3
- package/_mjs/Push/api.mjs.map +1 -1
- package/_mjs/Push/internal.mjs +1 -1
- package/_mjs/Push/internal.mjs.map +1 -1
- package/_mjs/Queue/api/filterInputIO.mjs +2 -2
- package/_mjs/Queue/api/filterInputIO.mjs.map +1 -1
- package/_mjs/Queue/api/filterOutputIO.mjs.map +1 -1
- package/_mjs/Ref/Derived.mjs +4 -4
- package/_mjs/Ref/Derived.mjs.map +1 -1
- package/_mjs/Ref/DerivedAll.mjs +5 -5
- package/_mjs/Ref/DerivedAll.mjs.map +1 -1
- package/_mjs/Ref/Synchronized/api.mjs +3 -3
- package/_mjs/Ref/Synchronized/api.mjs.map +1 -1
- package/_mjs/Ref/api/collect.mjs +1 -1
- package/_mjs/Ref/api/collect.mjs.map +1 -1
- package/_mjs/Ref/api/dimap.mjs +3 -3
- package/_mjs/Ref/api/dimap.mjs.map +1 -1
- package/_mjs/Ref/api/filter.mjs +2 -2
- package/_mjs/Ref/api/filter.mjs.map +1 -1
- package/_mjs/Ref/api.mjs +2 -1
- package/_mjs/Ref/api.mjs.map +1 -1
- package/_mjs/RefSubject/Atomic.mjs +6 -6
- package/_mjs/RefSubject/Atomic.mjs.map +1 -1
- package/_mjs/STM/api.mjs +5 -5
- package/_mjs/STM/api.mjs.map +1 -1
- package/_mjs/STM/definition.mjs +1 -1
- package/_mjs/STM/definition.mjs.map +1 -1
- package/_mjs/STM/internal/CommitState.mjs +5 -4
- package/_mjs/STM/internal/CommitState.mjs.map +1 -1
- package/_mjs/STM/internal/Journal.mjs +8 -8
- package/_mjs/STM/internal/Journal.mjs.map +1 -1
- package/_mjs/Schedule/api/driver.mjs +3 -3
- package/_mjs/Schedule/api/driver.mjs.map +1 -1
- package/_mjs/Schedule/api.mjs +8 -8
- package/_mjs/Schedule/api.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +1 -1
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api.mjs +3 -3
- package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +1 -1
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/Semaphore.mjs +2 -2
- package/_mjs/Semaphore.mjs.map +1 -1
- package/_mjs/Sink/api.mjs +6 -6
- package/_mjs/Sink/api.mjs.map +1 -1
- package/_mjs/Stream/api/zipAllWith.mjs +8 -8
- package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
- package/_mjs/Stream/api/zipWithChunks.mjs +6 -6
- package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +321 -60
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/Stream/internal/Handoff.mjs +2 -2
- package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
- package/_mjs/Stream/internal/Pull.mjs +2 -2
- package/_mjs/Stream/internal/Pull.mjs.map +1 -1
- package/_mjs/Stream/internal/Take.mjs +6 -6
- package/_mjs/Stream/internal/Take.mjs.map +1 -1
- package/_mjs/Stream/internal/util.mjs +3 -2
- package/_mjs/Stream/internal/util.mjs.map +1 -1
- package/_mjs/TFuture/api.mjs +3 -3
- package/_mjs/TFuture/api.mjs.map +1 -1
- package/_mjs/TFuture/constructors.mjs +1 -1
- package/_mjs/TFuture/constructors.mjs.map +1 -1
- package/_mjs/TRef/definition.mjs +9 -9
- package/_mjs/TRef/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/findIO.mjs +3 -3
- package/_mjs/collection/immutable/Conc/findIO.mjs.map +1 -1
- package/_mjs/data/Exit/foreachIO.mjs +1 -1
- package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
- package/_src/Cached/definition.ts +1 -1
- package/_src/Channel/api/runScoped.ts +30 -5
- package/_src/Channel/api/toPull.ts +1 -1
- package/_src/Channel/api.ts +1 -0
- package/_src/Channel/internal/ChannelExecutor.ts +24 -20
- package/_src/Fiber/FiberMessage.ts +5 -5
- package/_src/Fiber/FiberRuntime.ts +40 -17
- package/_src/FiberRefs/api.ts +1 -1
- package/_src/Hub/api.ts +1 -1
- package/_src/IO/api/asyncIO.ts +1 -1
- package/_src/IO/api/provideSomeLayer.ts +1 -3
- package/_src/IO/api/raceWith.ts +1 -3
- package/_src/IO/api/stateful.ts +1 -1
- package/_src/IO/api/zipConcurrent.ts +26 -30
- package/_src/IO/api.ts +4 -3
- package/_src/IO/definition.ts +35 -28
- package/_src/IO/runtime.ts +39 -38
- package/_src/Queue/api/filterInputIO.ts +1 -1
- package/_src/Queue/api/filterOutputIO.ts +1 -1
- package/_src/RefSubject/Atomic.ts +4 -4
- package/_src/STM/definition.ts +1 -1
- package/_src/State/definition.ts +1 -1
- package/_src/Stream/api.ts +315 -14
- package/_src/Subject/Atomic.ts +1 -1
- package/_src/global.ts +0 -4
- package/_src/index.ts +2 -2
- package/global.d.ts +0 -4
- package/index.d.ts +2 -2
- package/package.json +3 -3
- package/RuntimeConfig.d.ts +0 -11
- package/_cjs/RuntimeConfig.cjs +0 -12
- package/_cjs/RuntimeConfig.cjs.map +0 -1
- package/_mjs/RuntimeConfig.mjs +0 -3
- package/_mjs/RuntimeConfig.mjs.map +0 -1
- package/_src/RuntimeConfig.ts +0 -6
package/_mjs/Stream/api.mjs
CHANGED
@@ -51,18 +51,21 @@ import * as tsplus_module_49 from "@fncts/io/Fiber/api/poll";
|
|
51
51
|
import * as tsplus_module_50 from "@fncts/io/IO/api/environment";
|
52
52
|
import * as tsplus_module_51 from "@fncts/io/collection/immutable/Conc/findIO";
|
53
53
|
import * as tsplus_module_52 from "@fncts/base/data/Exit/definition";
|
54
|
-
import * as tsplus_module_53 from "@fncts/
|
55
|
-
import * as tsplus_module_54 from "@fncts/io/
|
56
|
-
import * as tsplus_module_55 from "@fncts/io/
|
57
|
-
import * as tsplus_module_56 from "@fncts/io/Channel/api/
|
58
|
-
import * as tsplus_module_57 from "@fncts/io/Channel/api/
|
59
|
-
import * as tsplus_module_58 from "@fncts/io/Channel/
|
60
|
-
import * as tsplus_module_59 from "@fncts/io/Channel/
|
61
|
-
import * as tsplus_module_60 from "@fncts/io/
|
62
|
-
import * as tsplus_module_61 from "@fncts/io/Layer/
|
63
|
-
import * as tsplus_module_62 from "@fncts/io/
|
64
|
-
import * as tsplus_module_63 from "@fncts/
|
65
|
-
import * as tsplus_module_64 from "@fncts/
|
54
|
+
import * as tsplus_module_53 from "@fncts/base/collection/immutable/Conc/definition";
|
55
|
+
import * as tsplus_module_54 from "@fncts/io/Stream/internal/Pull";
|
56
|
+
import * as tsplus_module_55 from "@fncts/io/Queue/api/takeBetween";
|
57
|
+
import * as tsplus_module_56 from "@fncts/io/Channel/api/interruptWhen";
|
58
|
+
import * as tsplus_module_57 from "@fncts/io/Channel/api/mapOutConcurrentIO";
|
59
|
+
import * as tsplus_module_58 from "@fncts/io/Channel/api/mergeMap";
|
60
|
+
import * as tsplus_module_59 from "@fncts/io/Channel/internal/MergeDecision";
|
61
|
+
import * as tsplus_module_60 from "@fncts/io/Channel/api/mergeWith";
|
62
|
+
import * as tsplus_module_61 from "@fncts/io/Layer/MemoMap";
|
63
|
+
import * as tsplus_module_62 from "@fncts/io/Layer/api";
|
64
|
+
import * as tsplus_module_63 from "@fncts/io/Channel/api/runDrain";
|
65
|
+
import * as tsplus_module_64 from "@fncts/base/data/Maybe/definition";
|
66
|
+
import * as tsplus_module_65 from "@fncts/base/data/exceptions";
|
67
|
+
import * as tsplus_module_66 from "@fncts/io/IO/api/interrupt";
|
68
|
+
import * as tsplus_module_67 from "@fncts/io/Channel/api/toPull";
|
66
69
|
export const aggregateAsyncWithin = aggregateAsyncWithin_1;
|
67
70
|
export const aggregateAsyncWithinEither = aggregateAsyncWithinEither_1;
|
68
71
|
export const zipRight = zipRight_1;
|
@@ -76,11 +79,14 @@ export const flatMap = flatMap_1;
|
|
76
79
|
export const chunks = chunks_1;
|
77
80
|
export const concat = concat_1;
|
78
81
|
export const crossWith = crossWith_1;
|
82
|
+
export const defer = defer_1;
|
79
83
|
export const distributedWithDynamic = distributedWithDynamic_1;
|
84
|
+
export const drain = drain_1;
|
80
85
|
export const drop = drop_1;
|
81
86
|
export const dropWhile = dropWhile_1;
|
82
87
|
export const ensuring = ensuring_1;
|
83
88
|
export const environment = environment_1;
|
89
|
+
export const execute = execute_1;
|
84
90
|
export const failNow = failNow_1;
|
85
91
|
export const failCauseNow = failCauseNow_1;
|
86
92
|
export const filterMap = filterMap_1;
|
@@ -106,24 +112,28 @@ export const mapChunks = mapChunks_1;
|
|
106
112
|
export const mapConcatChunk = mapConcatChunk_1;
|
107
113
|
export const mapError = mapError_1;
|
108
114
|
export const mapIO = mapIO_1;
|
115
|
+
export const merge = merge_1;
|
109
116
|
export const mergeMap = mergeMap_1;
|
110
117
|
export const mergeEither = mergeEither_1;
|
111
118
|
export const mergeWith = mergeWith_1;
|
112
119
|
export const orElse = orElse_1;
|
113
120
|
export const pipeThrough = pipeThrough_1;
|
121
|
+
export const pipeThroughChannelOrFail = pipeThroughChannelOrFail_1;
|
114
122
|
export const provideEnvironment = provideEnvironment_1;
|
115
123
|
export const provideLayer = provideLayer_1;
|
116
124
|
export const repeatIOMaybe = repeatIOMaybe_1;
|
117
125
|
export const repeatIOChunkMaybe = repeatIOChunkMaybe_1;
|
118
126
|
export const run = run_1;
|
119
127
|
export const runForeachScoped = runForeachScoped_1;
|
120
|
-
export const runIntoElementsScoped_ = runIntoElementsScoped_1;
|
121
128
|
export const runIntoQueueScoped = runIntoQueueScoped_1;
|
129
|
+
export const runIntoQueueElementsScoped = runIntoQueueElementsScoped_1;
|
122
130
|
export const runIntoHubScoped = runIntoHubScoped_1;
|
123
131
|
export const runScoped = runScoped_1;
|
124
132
|
export const scanIO = scanIO_1;
|
125
133
|
export const scanReduceIO = scanReduceIO_1;
|
126
134
|
export const succeedNow = succeedNow_1;
|
135
|
+
export const tap = tap_1;
|
136
|
+
export const tapError = tapError_1;
|
127
137
|
export const throttleEnforceIO = throttleEnforceIO_1;
|
128
138
|
export const toHub = toHub_1;
|
129
139
|
export const toPull = toPull_1;
|
@@ -135,7 +145,7 @@ export const unfoldIO = unfoldIO_1;
|
|
135
145
|
export const unfoldChunk = unfoldChunk_1;
|
136
146
|
export const unwrap = unwrap_1;
|
137
147
|
export const unwrapScoped = unwrapScoped_1;
|
138
|
-
import {
|
148
|
+
import { identity, tuple } from "@fncts/base/data/function";
|
139
149
|
import { DEFAULT_CHUNK_SIZE, Stream } from "./definition.mjs";
|
140
150
|
import { Handoff } from "./internal/Handoff.mjs";
|
141
151
|
import { ScheduleEnd, UpstreamEnd } from "./internal/SinkEndReason.mjs";
|
@@ -173,7 +183,7 @@ export function aggregateAsync(sink, __tsplusTrace) {
|
|
173
183
|
*/
|
174
184
|
function aggregateAsyncWithin_1(sink, schedule, __tsplusTrace) {
|
175
185
|
return stream => {
|
176
|
-
return filterMap_1(cb => tsplus_module_4.match(() => tsplus_module_3.nothing(), tsplus_module_3.just)(cb), __tsplusTrace)(aggregateAsyncWithinEither_1(sink, schedule, __tsplusTrace)(stream));
|
186
|
+
return filterMap_1(cb => tsplus_module_4.match(() => tsplus_module_3.nothing(__tsplusTrace), tsplus_module_3.just)(cb), __tsplusTrace)(aggregateAsyncWithinEither_1(sink, schedule, __tsplusTrace)(stream));
|
177
187
|
};
|
178
188
|
}
|
179
189
|
/**
|
@@ -226,15 +236,15 @@ function aggregateAsyncWithinEither_1(sink, schedule, __tsplusTrace) {
|
|
226
236
|
function handleSide(leftovers, b, c, __tsplusTrace) {
|
227
237
|
return tsplus_module_10.unwrap(() => tsplus_module_1.zipRight(tsplus_module_1.map(reason => tsplus_module_21.matchSinkEndReason({
|
228
238
|
ScheduleEnd: () => tsplus_module_10.unwrapScoped(() => tsplus_module_1.flatMap(consumed_ => tsplus_module_1.flatMap(sinkFiber => tsplus_module_1.map(scheduleFiber => {
|
229
|
-
const toWrite = tsplus_module_20.match(() => tsplus_module_19.make(tsplus_module_18.right(b)), c => tsplus_module_19.make(tsplus_module_18.right(b), tsplus_module_18.left(c)))(c);
|
239
|
+
const toWrite = tsplus_module_20.match(() => tsplus_module_19.make(tsplus_module_18.right(b, __tsplusTrace)), c => tsplus_module_19.make(tsplus_module_18.right(b, __tsplusTrace), tsplus_module_18.left(c, __tsplusTrace)))(c);
|
230
240
|
return consumed_ ? tsplus_module_11.zipRight(scheduledAggregator(sinkFiber, scheduleFiber))(tsplus_module_10.write(() => toWrite)) : scheduledAggregator(sinkFiber, scheduleFiber);
|
231
|
-
}, __tsplusTrace)(tsplus_module_17.forkScoped(timeout(tsplus_module_3.just(b), __tsplusTrace), __tsplusTrace)), __tsplusTrace)(forkSink), __tsplusTrace)(tsplus_module_14.get(consumed, __tsplusTrace))),
|
232
|
-
UpstreamEnd: () => tsplus_module_10.unwrap(() => tsplus_module_1.map(p => p ? tsplus_module_10.write(() => tsplus_module_19.make(tsplus_module_18.right(b))) : tsplus_module_10.unit, __tsplusTrace)(tsplus_module_14.get(consumed, __tsplusTrace)))
|
241
|
+
}, __tsplusTrace)(tsplus_module_17.forkScoped(timeout(tsplus_module_3.just(b, __tsplusTrace), __tsplusTrace), __tsplusTrace)), __tsplusTrace)(forkSink), __tsplusTrace)(tsplus_module_14.get(consumed, __tsplusTrace))),
|
242
|
+
UpstreamEnd: () => tsplus_module_10.unwrap(() => tsplus_module_1.map(p => p ? tsplus_module_10.write(() => tsplus_module_19.make(tsplus_module_18.right(b, __tsplusTrace))) : tsplus_module_10.unit, __tsplusTrace)(tsplus_module_14.get(consumed, __tsplusTrace)))
|
233
243
|
})(reason), __tsplusTrace)(tsplus_module_14.get(sinkEndReason, __tsplusTrace)), __tsplusTrace)(tsplus_module_13.set(tsplus_module_12.flatten(leftovers), __tsplusTrace)(sinkLeftovers)));
|
234
244
|
}
|
235
|
-
return tsplus_module_10.unwrap(() => tsplus_module_26.raceWith(() => tsplus_module_22.join(scheduleFiber, __tsplusTrace), (sinkExit, scheduleFiber) => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(), __tsplusTrace), __tsplusTrace)(tsplus_module_1.fromExit(() => sinkExit, __tsplusTrace)), __tsplusTrace)(tsplus_module_23.interrupt(scheduleFiber)), (scheduleExit, sinkFiber) => tsplus_module_1.matchCauseIO(cause => tsplus_module_4.match(() => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.end(new ScheduleEnd()))(handoff), __tsplusTrace)), cause => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.halt(cause))(handoff), __tsplusTrace)))(tsplus_module_25.failureOrCause(cause)), c => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.just(c), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.end(new ScheduleEnd()))(handoff), __tsplusTrace)), __tsplusTrace)(tsplus_module_1.fromExit(() => scheduleExit, __tsplusTrace)), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)));
|
245
|
+
return tsplus_module_10.unwrap(() => tsplus_module_26.raceWith(() => tsplus_module_22.join(scheduleFiber, __tsplusTrace), (sinkExit, scheduleFiber) => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_1.fromExit(() => sinkExit, __tsplusTrace)), __tsplusTrace)(tsplus_module_23.interrupt(scheduleFiber)), (scheduleExit, sinkFiber) => tsplus_module_1.matchCauseIO(cause => tsplus_module_4.match(() => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.end(new ScheduleEnd()))(handoff), __tsplusTrace)), cause => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.halt(cause))(handoff), __tsplusTrace)))(tsplus_module_25.failureOrCause(cause)), c => tsplus_module_1.zipRight(tsplus_module_1.map(([leftovers, b]) => handleSide(leftovers, b, tsplus_module_3.just(c, __tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_5.offer(tsplus_module_5.end(new ScheduleEnd()))(handoff), __tsplusTrace)), __tsplusTrace)(tsplus_module_1.fromExit(() => scheduleExit, __tsplusTrace)), __tsplusTrace)(tsplus_module_22.join(sinkFiber, __tsplusTrace)));
|
236
246
|
};
|
237
|
-
return unwrapScoped_1(tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(sinkFiber => tsplus_module_1.map(scheduleFiber => new Stream(scheduledAggregator(sinkFiber, scheduleFiber)), __tsplusTrace)(tsplus_module_17.forkScoped(timeout(tsplus_module_3.nothing(), __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_17.forkScoped(tsplus_module_16.runScoped(tsplus_module_10.doneCollect(tsplus_module_10.pipeToOrFail(sink.channel)(handoffConsumer))), __tsplusTrace)), __tsplusTrace)(tsplus_module_17.forkScoped(tsplus_module_16.runScoped(tsplus_module_10.pipeTo(handoffProducer)(stream.channel)), __tsplusTrace)), __tsplusTrace);
|
247
|
+
return unwrapScoped_1(tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(sinkFiber => tsplus_module_1.map(scheduleFiber => new Stream(scheduledAggregator(sinkFiber, scheduleFiber)), __tsplusTrace)(tsplus_module_17.forkScoped(timeout(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_17.forkScoped(tsplus_module_16.runScoped(tsplus_module_10.doneCollect(tsplus_module_10.pipeToOrFail(sink.channel)(handoffConsumer))), __tsplusTrace)), __tsplusTrace)(tsplus_module_17.forkScoped(tsplus_module_16.runScoped(tsplus_module_10.pipeTo(handoffProducer)(stream.channel)), __tsplusTrace)), __tsplusTrace);
|
238
248
|
}, __tsplusTrace)(fromIO_1(deps, __tsplusTrace));
|
239
249
|
};
|
240
250
|
}
|
@@ -281,7 +291,11 @@ function asyncInterrupt_1(register, outputBuffer = 16, __tsplusTrace) {
|
|
281
291
|
return ensuring_1(canceler, __tsplusTrace)(new Stream(loop));
|
282
292
|
}, stream => unwrap_1(tsplus_module_1.as(() => stream, __tsplusTrace)(tsplus_module_28.shutdown(output, __tsplusTrace)), __tsplusTrace))(eitherStream), __tsplusTrace)(tsplus_module_1.succeed(() => register((k, cb) => {
|
283
293
|
const effect = tsplus_module_1.flatMap(a => tsplus_module_28.offer(a, __tsplusTrace)(output), __tsplusTrace)(tsplus_module_27.fromPull(k));
|
284
|
-
|
294
|
+
const fiber = runtime.makeFiber(effect, __tsplusTrace);
|
295
|
+
if (cb) {
|
296
|
+
fiber.addObserver(cb);
|
297
|
+
}
|
298
|
+
fiber.start(effect);
|
285
299
|
}), __tsplusTrace)), __tsplusTrace)(tsplus_module_29.runtime(__tsplusTrace)), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_30.makeBounded(outputBuffer, __tsplusTrace), queue => tsplus_module_28.shutdown(queue, __tsplusTrace), __tsplusTrace)), __tsplusTrace);
|
286
300
|
}
|
287
301
|
/**
|
@@ -293,7 +307,7 @@ function asyncInterrupt_1(register, outputBuffer = 16, __tsplusTrace) {
|
|
293
307
|
* @tsplus static fncts.io.StreamOps asyncMaybe
|
294
308
|
*/
|
295
309
|
function asyncMaybe_1(register, outputBuffer = 16, __tsplusTrace) {
|
296
|
-
return asyncInterrupt_1(k => tsplus_module_20.match(() => tsplus_module_18.left(tsplus_module_1.unit), tsplus_module_18.right)(register(k)), outputBuffer, __tsplusTrace);
|
310
|
+
return asyncInterrupt_1(k => tsplus_module_20.match(() => tsplus_module_18.left(tsplus_module_1.unit, __tsplusTrace), tsplus_module_18.right)(register(k)), outputBuffer, __tsplusTrace);
|
297
311
|
}
|
298
312
|
/**
|
299
313
|
* @tsplus static fncts.io.StreamOps async
|
@@ -301,7 +315,7 @@ function asyncMaybe_1(register, outputBuffer = 16, __tsplusTrace) {
|
|
301
315
|
export function async(register, outputBuffer = 16, __tsplusTrace) {
|
302
316
|
return asyncMaybe_1(cb => {
|
303
317
|
register(cb);
|
304
|
-
return tsplus_module_3.nothing();
|
318
|
+
return tsplus_module_3.nothing(__tsplusTrace);
|
305
319
|
}, outputBuffer, __tsplusTrace);
|
306
320
|
}
|
307
321
|
/**
|
@@ -311,7 +325,14 @@ export function asyncIO(register, outputBuffer = 16, __tsplusTrace) {
|
|
311
325
|
return new Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.flatMap(output => tsplus_module_1.flatMap(runtime => tsplus_module_1.map(() => {
|
312
326
|
const loop = tsplus_module_10.unwrap(() => tsplus_module_1.matchCauseIO(cause => tsplus_module_1.as(() => tsplus_module_4.match(maybeError => tsplus_module_20.match(() => tsplus_module_11.endNow(undefined), tsplus_module_10.failNow)(maybeError), tsplus_module_11.failCauseNow)(tsplus_module_25.failureOrCause(cause)), __tsplusTrace)(tsplus_module_28.shutdown(output, __tsplusTrace)), as => tsplus_module_1.succeed(() => tsplus_module_11.zipRight(loop)(tsplus_module_10.writeNow(as)), __tsplusTrace), __tsplusTrace)(tsplus_module_1.flatMap(take => tsplus_module_27.done(take), __tsplusTrace)(tsplus_module_28.take(output, __tsplusTrace))));
|
313
327
|
return loop;
|
314
|
-
}, __tsplusTrace)(register((k, cb) =>
|
328
|
+
}, __tsplusTrace)(register((k, cb) => {
|
329
|
+
const io = tsplus_module_1.flatMap(a => tsplus_module_28.offer(a, __tsplusTrace)(output), __tsplusTrace)(tsplus_module_27.fromPull(k));
|
330
|
+
const fiber = runtime.makeFiber(io, __tsplusTrace);
|
331
|
+
if (cb) {
|
332
|
+
fiber.addObserver(cb);
|
333
|
+
}
|
334
|
+
fiber.start(io);
|
335
|
+
})), __tsplusTrace)(tsplus_module_29.runtime(__tsplusTrace)), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_30.makeBounded(outputBuffer, __tsplusTrace), _ => tsplus_module_28.shutdown(_, __tsplusTrace), __tsplusTrace))));
|
315
336
|
}
|
316
337
|
/**
|
317
338
|
* Returns a stream whose failure and success channels have been mapped by
|
@@ -517,7 +538,7 @@ export function chunksWith(f, __tsplusTrace) {
|
|
517
538
|
}
|
518
539
|
function changesWithWriter(f, last, __tsplusTrace) {
|
519
540
|
return tsplus_module_10.readWithCause(chunk => {
|
520
|
-
const [newLast, newChunk] = tsplus_module_12.foldLeft([last, tsplus_module_7.empty()], ([maybeLast, os], o1) => tsplus_module_20.match(() => [tsplus_module_3.just(o1), tsplus_module_12.append(o1)(os)], o => f(o, o1) ? [tsplus_module_3.just(o1), os] : [tsplus_module_3.just(o1), tsplus_module_12.append(o1)(os)])(maybeLast))(chunk);
|
541
|
+
const [newLast, newChunk] = tsplus_module_12.foldLeft([last, tsplus_module_7.empty()], ([maybeLast, os], o1) => tsplus_module_20.match(() => [tsplus_module_3.just(o1, __tsplusTrace), tsplus_module_12.append(o1)(os)], o => f(o, o1) ? [tsplus_module_3.just(o1, __tsplusTrace), os] : [tsplus_module_3.just(o1, __tsplusTrace), tsplus_module_12.append(o1)(os)])(maybeLast))(chunk);
|
521
542
|
return tsplus_module_11.zipRight(changesWithWriter(f, newLast, __tsplusTrace))(tsplus_module_10.writeNow(newChunk));
|
522
543
|
}, tsplus_module_11.failCauseNow, () => tsplus_module_10.unit);
|
523
544
|
}
|
@@ -530,7 +551,7 @@ function changesWithWriter(f, last, __tsplusTrace) {
|
|
530
551
|
*/
|
531
552
|
export function changesWith(f, __tsplusTrace) {
|
532
553
|
return stream => {
|
533
|
-
return new Stream(tsplus_module_10.pipeTo(changesWithWriter(f, tsplus_module_3.nothing(), __tsplusTrace))(stream.channel));
|
554
|
+
return new Stream(tsplus_module_10.pipeTo(changesWithWriter(f, tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace))(stream.channel));
|
534
555
|
};
|
535
556
|
}
|
536
557
|
/**
|
@@ -566,7 +587,7 @@ function collectWhileIOLoop(iterator, pf, __tsplusTrace) {
|
|
566
587
|
}
|
567
588
|
}
|
568
589
|
function combineProducer(handoff, latch, __tsplusTrace) {
|
569
|
-
return tsplus_module_11.zipRight(tsplus_module_10.readWithCause(value => tsplus_module_11.zipRight(combineProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.succeed(value))(handoff))), cause => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.failCause(tsplus_module_25.map(tsplus_module_3.just)(cause)))(handoff)), () => tsplus_module_11.zipRight(combineProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.fail(tsplus_module_3.nothing()))(handoff)))))(tsplus_module_10.fromIO(() => tsplus_module_5.take(latch)));
|
590
|
+
return tsplus_module_11.zipRight(tsplus_module_10.readWithCause(value => tsplus_module_11.zipRight(combineProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.succeed(value, __tsplusTrace))(handoff))), cause => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.failCause(tsplus_module_25.map(tsplus_module_3.just)(cause), __tsplusTrace))(handoff)), () => tsplus_module_11.zipRight(combineProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_41.fail(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace))(handoff)))))(tsplus_module_10.fromIO(() => tsplus_module_5.take(latch)));
|
570
591
|
}
|
571
592
|
/**
|
572
593
|
* Combines the elements from this stream and the specified stream by repeatedly applying the
|
@@ -588,7 +609,7 @@ export function combine(that, s, f, __tsplusTrace) {
|
|
588
609
|
};
|
589
610
|
}
|
590
611
|
function combineChunksProducer(handoff, latch, __tsplusTrace) {
|
591
|
-
return tsplus_module_11.zipRight(tsplus_module_10.readWithCause(chunk => tsplus_module_11.zipRight(combineChunksProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.chunk(chunk))(handoff))), cause => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.failCause(cause))(handoff)), () =>
|
612
|
+
return tsplus_module_11.zipRight(tsplus_module_10.readWithCause(chunk => tsplus_module_11.zipRight(combineChunksProducer(handoff, latch, __tsplusTrace))(tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.chunk(chunk))(handoff))), cause => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.failCause(cause))(handoff)), () => tsplus_module_10.fromIO(() => tsplus_module_5.offer(tsplus_module_27.end)(handoff))))(tsplus_module_10.fromIO(() => tsplus_module_5.take(latch)));
|
592
613
|
}
|
593
614
|
/**
|
594
615
|
* Combines the chunks from this stream and the specified stream by repeatedly applying the
|
@@ -701,6 +722,12 @@ export function debounce(duration, __tsplusTrace) {
|
|
701
722
|
}, __tsplusTrace)(tsplus_module_5.make()), __tsplusTrace), __tsplusTrace);
|
702
723
|
};
|
703
724
|
}
|
725
|
+
/**
|
726
|
+
* @tsplus static fncts.io.StreamOps defer
|
727
|
+
*/
|
728
|
+
function defer_1(self) {
|
729
|
+
return new Stream(tsplus_module_10.defer(() => self().channel));
|
730
|
+
}
|
704
731
|
function defaultIfEmptyWriter(fb, __tsplusTrace) {
|
705
732
|
return tsplus_module_10.readWith(i => tsplus_module_12.isEmpty(i) ? defaultIfEmptyWriter(fb, __tsplusTrace) : tsplus_module_11.zipRight(tsplus_module_10.id())(tsplus_module_10.writeNow(i)), tsplus_module_10.failNow, () => fb.channel);
|
706
733
|
}
|
@@ -743,17 +770,17 @@ function distributedWithDynamic_1(maximumLag, decide, done = () => tsplus_module
|
|
743
770
|
return self => {
|
744
771
|
const offer = queuesRef => a => tsplus_module_1.flatMap(shouldProcess => tsplus_module_1.flatMap(queues => tsplus_module_1.flatMap(ids => tsplus_module_12.isNonEmpty(ids) ? tsplus_module_15.update(map => tsplus_module_45.removeMany(ids)(map), __tsplusTrace)(queuesRef) : tsplus_module_1.unit, __tsplusTrace)(tsplus_module_1.foldLeft(queues, tsplus_module_7.empty(), (b, [id, queue]) => {
|
745
772
|
if (shouldProcess(id)) {
|
746
|
-
return tsplus_module_1.matchCauseIO(c => tsplus_module_25.interrupted(c) ? tsplus_module_1.succeedNow(tsplus_module_12.append(id)(b), __tsplusTrace) : tsplus_module_1.failCauseNow(c, __tsplusTrace), () => tsplus_module_1.succeedNow(b, __tsplusTrace), __tsplusTrace)(tsplus_module_28.offer(tsplus_module_41.succeed(a), __tsplusTrace)(queue));
|
773
|
+
return tsplus_module_1.matchCauseIO(c => tsplus_module_25.interrupted(c) ? tsplus_module_1.succeedNow(tsplus_module_12.append(id)(b), __tsplusTrace) : tsplus_module_1.failCauseNow(c, __tsplusTrace), () => tsplus_module_1.succeedNow(b, __tsplusTrace), __tsplusTrace)(tsplus_module_28.offer(tsplus_module_41.succeed(a, __tsplusTrace), __tsplusTrace)(queue));
|
747
774
|
} else {
|
748
775
|
return tsplus_module_1.succeedNow(b, __tsplusTrace);
|
749
776
|
}
|
750
777
|
}, __tsplusTrace)), __tsplusTrace)(tsplus_module_14.get(queuesRef, __tsplusTrace)), __tsplusTrace)(decide(a));
|
751
778
|
return tsplus_module_1.flatMap(queuesRef => tsplus_module_1.map(add => add, __tsplusTrace)(tsplus_module_1.flatMap(queuesLock => tsplus_module_1.flatMap(newQueue => {
|
752
|
-
const finalize = endTake => queuesLock.withPermit(tsplus_module_1.asUnit(tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(queues => tsplus_module_1.flatMap(() => tsplus_module_1.map(() => void 0, __tsplusTrace)(done(endTake)), __tsplusTrace)(tsplus_module_1.foreach(queues, queue => tsplus_module_1.catchJustCause(c => tsplus_module_25.interrupted(c) ? tsplus_module_3.just(tsplus_module_1.unit) : tsplus_module_3.nothing(), __tsplusTrace)(tsplus_module_28.offer(endTake, __tsplusTrace)(queue)), __tsplusTrace)), __tsplusTrace)(tsplus_module_1.map(map => tsplus_module_45.values(map), __tsplusTrace)(tsplus_module_14.get(queuesRef, __tsplusTrace))), __tsplusTrace)(tsplus_module_13.set(tsplus_module_1.flatMap(queue => tsplus_module_1.flatMap(() => {
|
779
|
+
const finalize = endTake => queuesLock.withPermit(tsplus_module_1.asUnit(tsplus_module_1.flatMap(() => tsplus_module_1.flatMap(queues => tsplus_module_1.flatMap(() => tsplus_module_1.map(() => void 0, __tsplusTrace)(done(endTake)), __tsplusTrace)(tsplus_module_1.foreach(queues, queue => tsplus_module_1.catchJustCause(c => tsplus_module_25.interrupted(c) ? tsplus_module_3.just(tsplus_module_1.unit, __tsplusTrace) : tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace)(tsplus_module_28.offer(endTake, __tsplusTrace)(queue)), __tsplusTrace)), __tsplusTrace)(tsplus_module_1.map(map => tsplus_module_45.values(map), __tsplusTrace)(tsplus_module_14.get(queuesRef, __tsplusTrace))), __tsplusTrace)(tsplus_module_13.set(tsplus_module_1.flatMap(queue => tsplus_module_1.flatMap(() => {
|
753
780
|
const id = Symbol();
|
754
781
|
return tsplus_module_1.map(() => tuple(id, queue), __tsplusTrace)(tsplus_module_15.update(map => tsplus_module_45.set(id, queue)(map), __tsplusTrace)(queuesRef));
|
755
782
|
}, __tsplusTrace)(tsplus_module_28.offer(endTake, __tsplusTrace)(queue)), __tsplusTrace)(tsplus_module_30.makeBounded(1, __tsplusTrace)), __tsplusTrace)(newQueue)), __tsplusTrace));
|
756
|
-
return tsplus_module_1.map(() => queuesLock.withPermit(tsplus_module_1.flatten(tsplus_module_14.get(newQueue, __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_33.fork(tsplus_module_1.matchCauseIO(cause => finalize(tsplus_module_41.failCause(tsplus_module_25.map(tsplus_module_3.just)(cause))), () => finalize(tsplus_module_41.fail(tsplus_module_3.nothing())), __tsplusTrace)(runForeachScoped_1(offer(queuesRef), __tsplusTrace)(self)), __tsplusTrace));
|
783
|
+
return tsplus_module_1.map(() => queuesLock.withPermit(tsplus_module_1.flatten(tsplus_module_14.get(newQueue, __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_33.fork(tsplus_module_1.matchCauseIO(cause => finalize(tsplus_module_41.failCause(tsplus_module_25.map(tsplus_module_3.just)(cause), __tsplusTrace)), () => finalize(tsplus_module_41.fail(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace)), __tsplusTrace)(runForeachScoped_1(offer(queuesRef), __tsplusTrace)(self)), __tsplusTrace));
|
757
784
|
}, __tsplusTrace)(tsplus_module_6.make(() => tsplus_module_1.flatMap(queue => tsplus_module_1.flatMap(id => tsplus_module_1.map(() => tuple(id, queue), __tsplusTrace)(tsplus_module_15.update(map => tsplus_module_45.set(id, queue)(map), __tsplusTrace)(queuesRef)), __tsplusTrace)(tsplus_module_1.succeed(() => Symbol(), __tsplusTrace)), __tsplusTrace)(tsplus_module_30.makeBounded(maximumLag, __tsplusTrace)), __tsplusTrace)), __tsplusTrace)(tsplus_module_46.makeSemaphore(1, __tsplusTrace))), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_6.make(() => tsplus_module_45.empty(), __tsplusTrace), ref => tsplus_module_1.flatMap(qs => tsplus_module_1.foreach(tsplus_module_45.values(qs), q => tsplus_module_28.shutdown(q, __tsplusTrace), __tsplusTrace), __tsplusTrace)(tsplus_module_14.get(ref, __tsplusTrace)), __tsplusTrace));
|
758
785
|
};
|
759
786
|
}
|
@@ -763,7 +790,7 @@ function distributedWithDynamic_1(maximumLag, decide, done = () => tsplus_module
|
|
763
790
|
*
|
764
791
|
* @tsplus getter fncts.io.Stream drain
|
765
792
|
*/
|
766
|
-
|
793
|
+
function drain_1(fa, __tsplusTrace) {
|
767
794
|
return new Stream(tsplus_module_10.drain(fa.channel));
|
768
795
|
}
|
769
796
|
function dropLoop(r, __tsplusTrace) {
|
@@ -816,12 +843,12 @@ export function dropUntil(p, __tsplusTrace) {
|
|
816
843
|
* @tsplus getter fncts.io.Stream either
|
817
844
|
*/
|
818
845
|
export function either(stream, __tsplusTrace) {
|
819
|
-
return catchAll_1(e => succeedNow_1(tsplus_module_18.left(e), __tsplusTrace), __tsplusTrace)(map_1(tsplus_module_18.right, __tsplusTrace)(stream));
|
846
|
+
return catchAll_1(e => succeedNow_1(tsplus_module_18.left(e, __tsplusTrace), __tsplusTrace), __tsplusTrace)(map_1(tsplus_module_18.right, __tsplusTrace)(stream));
|
820
847
|
}
|
821
848
|
/**
|
822
849
|
* @tsplus static fncts.io.StreamOps empty
|
823
850
|
*/
|
824
|
-
const empty_1 = /*#__PURE__*/fromChunkNow_1( /*#__PURE__*/tsplus_module_7.empty(), fileName_1 + ":
|
851
|
+
const empty_1 = /*#__PURE__*/fromChunkNow_1( /*#__PURE__*/tsplus_module_7.empty(), fileName_1 + ":1234:70");
|
825
852
|
export const empty = empty_1;
|
826
853
|
function endWhenWriter(fiber, __tsplusTrace) {
|
827
854
|
return tsplus_module_10.unwrap(() => tsplus_module_1.map(maybeExit => tsplus_module_20.match(() => tsplus_module_10.readWith(inp => tsplus_module_11.zipRight(endWhenWriter(fiber, __tsplusTrace))(tsplus_module_10.writeNow(inp)), tsplus_module_10.failNow, () => tsplus_module_10.unit), exit => tsplus_module_36.match(tsplus_module_11.failCauseNow, () => tsplus_module_10.unit)(exit))(maybeExit), __tsplusTrace)(tsplus_module_49.poll(fiber, __tsplusTrace)));
|
@@ -880,6 +907,14 @@ export function environmentWithIO(f, __tsplusTrace) {
|
|
880
907
|
export function environmentWithStream(f, __tsplusTrace) {
|
881
908
|
return flatMap_1(f, __tsplusTrace)(environment_1(__tsplusTrace));
|
882
909
|
}
|
910
|
+
/**
|
911
|
+
* Creates a stream that executes the specified effect but emits no elements.
|
912
|
+
*
|
913
|
+
* @tsplus static fncts.io.StreamOps execute
|
914
|
+
*/
|
915
|
+
function execute_1(io, __tsplusTrace) {
|
916
|
+
return drain_1(fromIO_1(io, __tsplusTrace), __tsplusTrace);
|
917
|
+
}
|
883
918
|
/**
|
884
919
|
* Halt a stream with the specified error
|
885
920
|
*
|
@@ -999,7 +1034,7 @@ function flattenExitOption_1(stream, __tsplusTrace) {
|
|
999
1034
|
const processChunk = (chunk, cont) => {
|
1000
1035
|
const [toEmit, rest] = tsplus_module_12.splitWhere(_ => !tsplus_module_52.isSuccess(_))(chunk);
|
1001
1036
|
const next = tsplus_module_20.match(() => cont, exit => tsplus_module_36.match(cause => tsplus_module_20.match(() => tsplus_module_11.endNow(undefined), tsplus_module_11.failCauseNow)(tsplus_module_25.flipCauseOption(cause)), () => tsplus_module_11.endNow(undefined))(exit))(tsplus_module_12.head(rest));
|
1002
|
-
return tsplus_module_11.zipRight(next)(tsplus_module_10.writeNow(tsplus_module_12.filterMap(exit => tsplus_module_36.match(() => tsplus_module_3.nothing(), tsplus_module_3.just)(exit))(toEmit)));
|
1037
|
+
return tsplus_module_11.zipRight(next)(tsplus_module_10.writeNow(tsplus_module_12.filterMap(exit => tsplus_module_36.match(() => tsplus_module_3.nothing(__tsplusTrace), tsplus_module_3.just)(exit))(toEmit)));
|
1003
1038
|
};
|
1004
1039
|
const process = tsplus_module_10.readWithCause(chunk => processChunk(chunk, process), tsplus_module_11.failCauseNow, _ => tsplus_module_11.endNow(undefined));
|
1005
1040
|
return new Stream(tsplus_module_10.pipeTo(process)(stream.channel));
|
@@ -1053,6 +1088,59 @@ function fromChunk_1(c, __tsplusTrace) {
|
|
1053
1088
|
function scoped_1(stream, __tsplusTrace) {
|
1054
1089
|
return new Stream(tsplus_module_10.scoped(() => tsplus_module_1.map(tsplus_module_19.single, __tsplusTrace)(stream())));
|
1055
1090
|
}
|
1091
|
+
/**
|
1092
|
+
* Emits a sliding window of n elements.
|
1093
|
+
*
|
1094
|
+
* @tsplus pipeable fncts.io.Stream sliding
|
1095
|
+
*/
|
1096
|
+
export function sliding(chunkSize, stepSize, __tsplusTrace) {
|
1097
|
+
return self => {
|
1098
|
+
return defer_1(() => {
|
1099
|
+
function slidingChunk(chunk, input) {
|
1100
|
+
const updatedChunk = tsplus_module_12.concat(input)(chunk);
|
1101
|
+
const length = updatedChunk.length;
|
1102
|
+
if (length >= chunkSize) {
|
1103
|
+
const array = new Array((length - chunkSize) / stepSize + 1);
|
1104
|
+
let arrayIndex = 0;
|
1105
|
+
let chunkIndex = 0;
|
1106
|
+
while (chunkIndex + chunkSize <= length) {
|
1107
|
+
array[arrayIndex] = tsplus_module_12.slice(chunkIndex, chunkIndex + chunkSize)(updatedChunk);
|
1108
|
+
arrayIndex += 1;
|
1109
|
+
chunkIndex += stepSize;
|
1110
|
+
}
|
1111
|
+
return [tsplus_module_12.drop(chunkIndex)(updatedChunk), tsplus_module_53.fromArray(array)];
|
1112
|
+
} else {
|
1113
|
+
return [updatedChunk, tsplus_module_7.empty()];
|
1114
|
+
}
|
1115
|
+
}
|
1116
|
+
function sliding(chunk, written) {
|
1117
|
+
return tsplus_module_10.readWithCause(input => {
|
1118
|
+
const [updatedChunk, out] = slidingChunk(chunk, input);
|
1119
|
+
if (tsplus_module_12.isEmpty(out)) {
|
1120
|
+
return sliding(updatedChunk, written);
|
1121
|
+
} else {
|
1122
|
+
return tsplus_module_11.zipRight(sliding(updatedChunk, true))(tsplus_module_10.writeNow(out));
|
1123
|
+
}
|
1124
|
+
}, err => {
|
1125
|
+
const index = written && chunkSize > stepSize ? chunkSize - stepSize : 0;
|
1126
|
+
if (index >= chunk.length) {
|
1127
|
+
return tsplus_module_11.failCauseNow(err);
|
1128
|
+
} else {
|
1129
|
+
return tsplus_module_11.zipRight(tsplus_module_11.failCauseNow(err))(tsplus_module_10.writeNow(tsplus_module_19.single(chunk)));
|
1130
|
+
}
|
1131
|
+
}, done => {
|
1132
|
+
const index = written && chunkSize > stepSize ? chunkSize - stepSize : 0;
|
1133
|
+
if (index >= chunk.length) {
|
1134
|
+
return tsplus_module_11.succeedNow(done);
|
1135
|
+
} else {
|
1136
|
+
return tsplus_module_11.zipRight(tsplus_module_11.succeedNow(done))(tsplus_module_10.writeNow(tsplus_module_19.single(chunk)));
|
1137
|
+
}
|
1138
|
+
});
|
1139
|
+
}
|
1140
|
+
return new Stream(tsplus_module_10.pipeTo(sliding(tsplus_module_7.empty(), false))(self.channel));
|
1141
|
+
});
|
1142
|
+
};
|
1143
|
+
}
|
1056
1144
|
/**
|
1057
1145
|
* Creates a stream from an effect producing a value of type `A`
|
1058
1146
|
*
|
@@ -1113,7 +1201,7 @@ export function fromIterableSingle(iterable, __tsplusTrace) {
|
|
1113
1201
|
return flatMap_1(iterator => repeatIOMaybe_1(tsplus_module_1.defer(() => {
|
1114
1202
|
const value = iterator.next();
|
1115
1203
|
if (value.done) {
|
1116
|
-
return tsplus_module_1.failNow(tsplus_module_3.nothing(), __tsplusTrace);
|
1204
|
+
return tsplus_module_1.failNow(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace);
|
1117
1205
|
} else {
|
1118
1206
|
return tsplus_module_1.succeedNow(value.value, __tsplusTrace);
|
1119
1207
|
}
|
@@ -1133,11 +1221,11 @@ function fromPull_1(scopedPull, __tsplusTrace) {
|
|
1133
1221
|
function fromQueue_1(queue, maxChunkSize = DEFAULT_CHUNK_SIZE, __tsplusTrace) {
|
1134
1222
|
return repeatIOChunkMaybe_1(tsplus_module_1.catchAllCause(c => tsplus_module_1.flatMap(down => {
|
1135
1223
|
if (down && tsplus_module_25.interrupted(c)) {
|
1136
|
-
return
|
1224
|
+
return tsplus_module_54.end;
|
1137
1225
|
} else {
|
1138
|
-
return
|
1226
|
+
return tsplus_module_54.failCause(c);
|
1139
1227
|
}
|
1140
|
-
}, __tsplusTrace)(tsplus_module_28.isShutdown(queue, __tsplusTrace)), __tsplusTrace)(tsplus_module_1.map(tsplus_module_19.from, __tsplusTrace)(
|
1228
|
+
}, __tsplusTrace)(tsplus_module_28.isShutdown(queue, __tsplusTrace)), __tsplusTrace)(tsplus_module_1.map(tsplus_module_19.from, __tsplusTrace)(tsplus_module_55.takeBetween(1, maxChunkSize, __tsplusTrace)(queue))), __tsplusTrace);
|
1141
1229
|
}
|
1142
1230
|
/**
|
1143
1231
|
* @tsplus static fncts.io.StreamOps fromQueueWithShutdown
|
@@ -1279,7 +1367,7 @@ export function intersperse(stream, middle, __tsplusTrace) {
|
|
1279
1367
|
*/
|
1280
1368
|
export function interruptWhen(io, __tsplusTrace) {
|
1281
1369
|
return stream => {
|
1282
|
-
return new Stream(
|
1370
|
+
return new Stream(tsplus_module_56.interruptWhen(io)(stream.channel));
|
1283
1371
|
};
|
1284
1372
|
}
|
1285
1373
|
/**
|
@@ -1287,7 +1375,7 @@ export function interruptWhen(io, __tsplusTrace) {
|
|
1287
1375
|
*/
|
1288
1376
|
export function interruptWhenFuture(future, __tsplusTrace) {
|
1289
1377
|
return fa => {
|
1290
|
-
return new Stream(
|
1378
|
+
return new Stream(tsplus_module_56.interruptWhenFuture(future)(fa.channel));
|
1291
1379
|
};
|
1292
1380
|
}
|
1293
1381
|
/**
|
@@ -1448,11 +1536,87 @@ function mapIOLoop(iterator, f, __tsplusTrace) {
|
|
1448
1536
|
*
|
1449
1537
|
* @note This combinator destroys the chunking structure. It's recommended to use chunkN afterwards.
|
1450
1538
|
*
|
1451
|
-
* @tsplus pipeable fncts.io.Stream
|
1539
|
+
* @tsplus pipeable fncts.io.Stream mapIOConcurrently
|
1452
1540
|
*/
|
1453
|
-
export function
|
1541
|
+
export function mapIOConcurrently(n, f, __tsplusTrace) {
|
1454
1542
|
return stream => {
|
1455
|
-
return new Stream(tsplus_module_10.mapOut(tsplus_module_19.single)(
|
1543
|
+
return new Stream(tsplus_module_10.mapOut(tsplus_module_19.single)(tsplus_module_57.mapOutConcurrentIO(n, f)(tsplus_module_10.concatMap(tsplus_module_10.writeChunk)(stream.channel))));
|
1544
|
+
};
|
1545
|
+
}
|
1546
|
+
/**
|
1547
|
+
* @tsplus pipeable fncts.io.Stream mapIOConcurrentlyUnordered
|
1548
|
+
*/
|
1549
|
+
export function mapIOConcurrentlyUnordered(n, f) {
|
1550
|
+
return self => {
|
1551
|
+
return pipeThroughChannelOrFail_1(tsplus_module_58.mergeMap(inp => fromIO_1(f(inp), fileName_1 + ":2290:41").channel, n, 16)(tsplus_module_10.concatMap(chunk => tsplus_module_10.writeChunk(chunk))(tsplus_module_10.id())))(self);
|
1552
|
+
};
|
1553
|
+
}
|
1554
|
+
/**
|
1555
|
+
* Merges this stream and the specified stream together.
|
1556
|
+
*
|
1557
|
+
* New produced stream will terminate when both specified stream terminate if
|
1558
|
+
* no termination strategy is specified.
|
1559
|
+
*
|
1560
|
+
* @tsplus pipeable fncts.io.Stream merge
|
1561
|
+
*/
|
1562
|
+
function merge_1(that, strategy = "Both", __tsplusTrace) {
|
1563
|
+
return self => {
|
1564
|
+
return mergeWith_1(that, identity, identity, strategy, __tsplusTrace)(self);
|
1565
|
+
};
|
1566
|
+
}
|
1567
|
+
/**
|
1568
|
+
* Merges this stream and the specified stream together. New produced stream
|
1569
|
+
* will terminate when either stream terminates.
|
1570
|
+
*
|
1571
|
+
* @tsplus pipeable fncts.io.Stream mergeHaltEither
|
1572
|
+
*/
|
1573
|
+
export function mergeHaltEither(that, __tsplusTrace) {
|
1574
|
+
return self => {
|
1575
|
+
return merge_1(that, "Either", __tsplusTrace)(self);
|
1576
|
+
};
|
1577
|
+
}
|
1578
|
+
/**
|
1579
|
+
* Merges this stream and the specified stream together. New produced stream
|
1580
|
+
* will terminate when this stream terminates.
|
1581
|
+
*
|
1582
|
+
* @tsplus pipeable fncts.io.Stream mergeHaltLeft
|
1583
|
+
*/
|
1584
|
+
export function mergeHaltLeft(that, __tsplusTrace) {
|
1585
|
+
return self => {
|
1586
|
+
return merge_1(that, "Left", __tsplusTrace)(self);
|
1587
|
+
};
|
1588
|
+
}
|
1589
|
+
/**
|
1590
|
+
* Merges this stream and the specified stream together. New produced stream
|
1591
|
+
* will terminate when the specified stream terminates.
|
1592
|
+
*
|
1593
|
+
* @tsplus pipeable fncts.io.Stream mergeHaltRight
|
1594
|
+
*/
|
1595
|
+
export function mergeHaltRight(that, __tsplusTrace) {
|
1596
|
+
return self => {
|
1597
|
+
return merge_1(that, "Right", __tsplusTrace)(self);
|
1598
|
+
};
|
1599
|
+
}
|
1600
|
+
/**
|
1601
|
+
* Merges this stream and the specified stream together, discarding the values
|
1602
|
+
* from the right stream.
|
1603
|
+
*
|
1604
|
+
* @tsplus pipeable fncts.io.Stream mergeLeft
|
1605
|
+
*/
|
1606
|
+
export function mergeLeft(that, __tsplusTrace) {
|
1607
|
+
return self => {
|
1608
|
+
return merge_1(drain_1(that, __tsplusTrace))(self);
|
1609
|
+
};
|
1610
|
+
}
|
1611
|
+
/**
|
1612
|
+
* Merges this stream and the specified stream together, discarding the values
|
1613
|
+
* from the left stream.
|
1614
|
+
*
|
1615
|
+
* @tsplus pipeable fncts.io.Stream mergeRight
|
1616
|
+
*/
|
1617
|
+
export function mergeRight(that, __tsplusTrace) {
|
1618
|
+
return self => {
|
1619
|
+
return merge_1(that)(drain_1(self, __tsplusTrace));
|
1456
1620
|
};
|
1457
1621
|
}
|
1458
1622
|
/**
|
@@ -1465,7 +1629,7 @@ export function mapIOC(n, f, __tsplusTrace) {
|
|
1465
1629
|
*/
|
1466
1630
|
function mergeMap_1(f, n, bufferSize = 16, __tsplusTrace) {
|
1467
1631
|
return ma => {
|
1468
|
-
return new Stream(
|
1632
|
+
return new Stream(tsplus_module_58.mergeMap(a => f(a).channel, n, bufferSize)(tsplus_module_10.concatMap(tsplus_module_10.writeChunk)(ma.channel)));
|
1469
1633
|
};
|
1470
1634
|
}
|
1471
1635
|
/**
|
@@ -1488,15 +1652,15 @@ function mergeEither_1(fb, __tsplusTrace) {
|
|
1488
1652
|
return mergeWith_1(fb, tsplus_module_18.left, tsplus_module_18.right)(fa);
|
1489
1653
|
};
|
1490
1654
|
}
|
1491
|
-
|
1492
|
-
return exit => terminate || !tsplus_module_52.isSuccess(exit) ?
|
1655
|
+
function mergeWithHandler(terminate, __tsplusTrace) {
|
1656
|
+
return exit => terminate || !tsplus_module_52.isSuccess(exit) ? tsplus_module_59.done(tsplus_module_1.fromExitNow(exit, __tsplusTrace)) : tsplus_module_59.wait(tsplus_module_1.fromExitNow);
|
1493
1657
|
}
|
1494
1658
|
/**
|
1495
1659
|
* @tsplus pipeable fncts.io.Stream mergeWith
|
1496
1660
|
*/
|
1497
1661
|
function mergeWith_1(sb, l, r, strategy = "Both", __tsplusTrace) {
|
1498
1662
|
return sa => {
|
1499
|
-
return new Stream(
|
1663
|
+
return new Stream(tsplus_module_60.mergeWith(map_1(r, __tsplusTrace)(sb).channel, mergeWithHandler(strategy === "Either" || strategy === "Left", __tsplusTrace), mergeWithHandler(strategy === "Either" || strategy === "Right", __tsplusTrace))(map_1(l, __tsplusTrace)(sa).channel));
|
1500
1664
|
};
|
1501
1665
|
}
|
1502
1666
|
/**
|
@@ -1553,7 +1717,7 @@ export function orElseFail(e, __tsplusTrace) {
|
|
1553
1717
|
* See also Stream#catchAll.
|
1554
1718
|
*/
|
1555
1719
|
export function orElseOptional(stream, that, __tsplusTrace) {
|
1556
|
-
return catchAll_1(maybeError => tsplus_module_20.match(() => that(), e => failNow_1(tsplus_module_3.just(e), __tsplusTrace))(maybeError), __tsplusTrace)(stream);
|
1720
|
+
return catchAll_1(maybeError => tsplus_module_20.match(() => that(), e => failNow_1(tsplus_module_3.just(e, __tsplusTrace), __tsplusTrace))(maybeError), __tsplusTrace)(stream);
|
1557
1721
|
}
|
1558
1722
|
/**
|
1559
1723
|
* Succeeds with the specified value if this one fails with a typed error.
|
@@ -1573,6 +1737,14 @@ function pipeThrough_1(sa, __tsplusTrace) {
|
|
1573
1737
|
return new Stream(tsplus_module_10.pipeToOrFail(sa.channel)(ma.channel));
|
1574
1738
|
};
|
1575
1739
|
}
|
1740
|
+
/**
|
1741
|
+
* @tsplus pipeable fncts.io.Stream pipeThroughChannelOrFail
|
1742
|
+
*/
|
1743
|
+
function pipeThroughChannelOrFail_1(channel) {
|
1744
|
+
return self => {
|
1745
|
+
return new Stream(tsplus_module_10.pipeToOrFail(channel)(self.channel));
|
1746
|
+
};
|
1747
|
+
}
|
1576
1748
|
/**
|
1577
1749
|
* Provides the stream with its required environment, which eliminates
|
1578
1750
|
* its dependency on `R`.
|
@@ -1589,7 +1761,7 @@ function provideEnvironment_1(r, __tsplusTrace) {
|
|
1589
1761
|
*/
|
1590
1762
|
function provideLayer_1(layer, __tsplusTrace) {
|
1591
1763
|
return self => {
|
1592
|
-
return new Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(r => tsplus_module_10.provideEnvironment(() => r)(self.channel), __tsplusTrace)(
|
1764
|
+
return new Stream(tsplus_module_10.unwrapScoped(() => tsplus_module_1.map(r => tsplus_module_10.provideEnvironment(() => r)(self.channel), __tsplusTrace)(tsplus_module_61.build(layer, __tsplusTrace))));
|
1593
1765
|
};
|
1594
1766
|
}
|
1595
1767
|
/**
|
@@ -1598,7 +1770,7 @@ function provideLayer_1(layer, __tsplusTrace) {
|
|
1598
1770
|
export function provideSomeLayer(layer, __tsplusTrace) {
|
1599
1771
|
return self => {
|
1600
1772
|
// @ts-expect-error
|
1601
|
-
return provideLayer_1(
|
1773
|
+
return provideLayer_1(tsplus_module_62.and(layer, __tsplusTrace)(tsplus_module_62.environment(__tsplusTrace)), __tsplusTrace)(self);
|
1602
1774
|
};
|
1603
1775
|
}
|
1604
1776
|
class Rechunker {
|
@@ -1703,7 +1875,7 @@ export function repeatIOChunk(fa, __tsplusTrace) {
|
|
1703
1875
|
* @tsplus static fncts.io.StreamOps repeatIOChunkMaybe
|
1704
1876
|
*/
|
1705
1877
|
function repeatIOChunkMaybe_1(fa, __tsplusTrace) {
|
1706
|
-
return unfoldChunkIO_1(undefined, _ => tsplus_module_1.catchAll(maybeError => tsplus_module_20.match(() => tsplus_module_1.succeedNow(tsplus_module_3.nothing(), __tsplusTrace), tsplus_module_1.failNow)(maybeError), __tsplusTrace)(tsplus_module_1.map(chunk => tsplus_module_3.just(tuple(chunk, undefined)), __tsplusTrace)(fa)), __tsplusTrace);
|
1878
|
+
return unfoldChunkIO_1(undefined, _ => tsplus_module_1.catchAll(maybeError => tsplus_module_20.match(() => tsplus_module_1.succeedNow(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), tsplus_module_1.failNow)(maybeError), __tsplusTrace)(tsplus_module_1.map(chunk => tsplus_module_3.just(tuple(chunk, undefined), __tsplusTrace), __tsplusTrace)(fa)), __tsplusTrace);
|
1707
1879
|
}
|
1708
1880
|
/**
|
1709
1881
|
* Runs the sink on the stream to produce either the sink's result or an error.
|
@@ -1712,7 +1884,7 @@ function repeatIOChunkMaybe_1(fa, __tsplusTrace) {
|
|
1712
1884
|
*/
|
1713
1885
|
function run_1(sink, __tsplusTrace) {
|
1714
1886
|
return stream => {
|
1715
|
-
return
|
1887
|
+
return tsplus_module_63.runDrain(tsplus_module_10.pipeToOrFail(sink.channel)(stream.channel));
|
1716
1888
|
};
|
1717
1889
|
}
|
1718
1890
|
/**
|
@@ -1745,9 +1917,9 @@ function runForeachScoped_1(f, __tsplusTrace) {
|
|
1745
1917
|
*
|
1746
1918
|
* @tsplus pipeable fncts.io.Stream runIntoElementsScoped
|
1747
1919
|
*/
|
1748
|
-
function
|
1920
|
+
export function runIntoElementsScoped_(queue, __tsplusTrace) {
|
1749
1921
|
return stream => {
|
1750
|
-
const writer = tsplus_module_10.readWith(inp => tsplus_module_11.zipRight(writer)(tsplus_module_12.foldLeft(tsplus_module_10.unit, (channel, a) => tsplus_module_11.zipRight(tsplus_module_10.writeNow(tsplus_module_41.succeed(a)))(channel))(inp)), err => tsplus_module_10.writeNow(tsplus_module_41.fail(tsplus_module_3.just(err))), () => tsplus_module_10.writeNow(tsplus_module_41.fail(tsplus_module_3.nothing())));
|
1922
|
+
const writer = tsplus_module_10.readWith(inp => tsplus_module_11.zipRight(writer)(tsplus_module_12.foldLeft(tsplus_module_10.unit, (channel, a) => tsplus_module_11.zipRight(tsplus_module_10.writeNow(tsplus_module_41.succeed(a, __tsplusTrace)))(channel))(inp)), err => tsplus_module_10.writeNow(tsplus_module_41.fail(tsplus_module_3.just(err, __tsplusTrace), __tsplusTrace)), () => tsplus_module_10.writeNow(tsplus_module_41.fail(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace)));
|
1751
1923
|
return tsplus_module_1.asUnit(tsplus_module_16.runScoped(tsplus_module_10.drain(tsplus_module_10.mapOutIO(exit => tsplus_module_28.offer(exit, __tsplusTrace)(queue))(tsplus_module_10.pipeTo(writer)(stream.channel)))), __tsplusTrace);
|
1752
1924
|
};
|
1753
1925
|
}
|
@@ -1763,6 +1935,21 @@ function runIntoQueueScoped_1(queue, __tsplusTrace) {
|
|
1763
1935
|
return tsplus_module_1.asUnit(tsplus_module_16.runScoped(tsplus_module_10.drain(tsplus_module_10.mapOutIO(take => tsplus_module_28.offer(take, __tsplusTrace)(queue))(tsplus_module_10.pipeTo(writer)(stream.channel)))), __tsplusTrace);
|
1764
1936
|
};
|
1765
1937
|
}
|
1938
|
+
/**
|
1939
|
+
* Like runIntoQueue, but provides the result as a scoped IO
|
1940
|
+
* to allow for scope composition.
|
1941
|
+
*
|
1942
|
+
* @tsplus pipeable fncts.io.Stream runIntoQueueElementsScoped
|
1943
|
+
*/
|
1944
|
+
function runIntoQueueElementsScoped_1(queue) {
|
1945
|
+
return self => {
|
1946
|
+
return tsplus_module_1.defer(() => {
|
1947
|
+
const queue0 = queue();
|
1948
|
+
const writer = tsplus_module_10.readWithCause(inp => tsplus_module_11.zipRight(writer)(tsplus_module_10.fromIO(() => tsplus_module_28.offerAll(tsplus_module_12.map(a => tsplus_module_41.succeed(a, fileName_1 + ":2799:85"))(inp), fileName_1 + ":2799:57")(queue0))), cause => tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_41.failCause(tsplus_module_25.map(e => tsplus_module_3.just(e, fileName_1 + ":2800:84"))(cause), fileName_1 + ":2800:62"), fileName_1 + ":2800:47")(queue0)), () => tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_41.fail(tsplus_module_3.nothing(fileName_1 + ":2801:60"), fileName_1 + ":2801:52"), fileName_1 + ":2801:42")(queue0)));
|
1949
|
+
return tsplus_module_1.asUnit(tsplus_module_16.runScoped(tsplus_module_10.drain(tsplus_module_10.pipeTo(writer)(self.channel))), fileName_1 + ":2804:55");
|
1950
|
+
}, fileName_1 + ":2796:20");
|
1951
|
+
};
|
1952
|
+
}
|
1766
1953
|
/**
|
1767
1954
|
* Like `Stream#runIntoHub`, but provides the result as a `Managed` to allow for scope
|
1768
1955
|
* composition.
|
@@ -1825,7 +2012,34 @@ export function scanReduce(f, __tsplusTrace) {
|
|
1825
2012
|
*/
|
1826
2013
|
function scanReduceIO_1(f, __tsplusTrace) {
|
1827
2014
|
return fa => {
|
1828
|
-
return mapAccumIO_1(tsplus_module_3.nothing(), (s, a) => tsplus_module_20.match(() => tsplus_module_1.succeedNow([a, tsplus_module_3.just(a)], __tsplusTrace), b => tsplus_module_1.map(b => [b, tsplus_module_3.just(b)], __tsplusTrace)(f(b, a)))(s), __tsplusTrace)(fa);
|
2015
|
+
return mapAccumIO_1(tsplus_module_3.nothing(__tsplusTrace), (s, a) => tsplus_module_20.match(() => tsplus_module_1.succeedNow([a, tsplus_module_3.just(a, __tsplusTrace)], __tsplusTrace), b => tsplus_module_1.map(b => [b, tsplus_module_3.just(b, __tsplusTrace)], __tsplusTrace)(f(b, a)))(s), __tsplusTrace)(fa);
|
2016
|
+
};
|
2017
|
+
}
|
2018
|
+
/**
|
2019
|
+
* @tsplus pipeable fncts.io.Stream split
|
2020
|
+
*/
|
2021
|
+
export function split(predicate, __tsplusTrace) {
|
2022
|
+
return self => {
|
2023
|
+
function split(leftovers, input) {
|
2024
|
+
const [chunk, remaining] = tsplus_module_12.splitWhere(predicate)(tsplus_module_12.concat(input)(leftovers));
|
2025
|
+
if (tsplus_module_12.isEmpty(chunk) || tsplus_module_12.isEmpty(remaining)) {
|
2026
|
+
return loop(tsplus_module_12.concat(tsplus_module_12.drop(1)(remaining))(chunk));
|
2027
|
+
} else {
|
2028
|
+
return tsplus_module_11.zipRight(split(tsplus_module_7.empty(), tsplus_module_12.drop(1)(remaining)))(tsplus_module_10.writeNow(tsplus_module_19.single(chunk)));
|
2029
|
+
}
|
2030
|
+
}
|
2031
|
+
function loop(leftovers) {
|
2032
|
+
return tsplus_module_10.readWith(input => split(leftovers, input), tsplus_module_10.failNow, _ => {
|
2033
|
+
if (tsplus_module_12.isEmpty(leftovers)) {
|
2034
|
+
return tsplus_module_10.unit;
|
2035
|
+
} else if (tsplus_module_64.isNothing(tsplus_module_12.find(predicate)(leftovers))) {
|
2036
|
+
return tsplus_module_11.zipRight(tsplus_module_10.unit)(tsplus_module_10.writeNow(tsplus_module_19.single(leftovers)));
|
2037
|
+
} else {
|
2038
|
+
return tsplus_module_11.zipRight(tsplus_module_10.unit)(split(tsplus_module_7.empty(), leftovers));
|
2039
|
+
}
|
2040
|
+
});
|
2041
|
+
}
|
2042
|
+
return new Stream(tsplus_module_10.pipeTo(loop(tsplus_module_7.empty()))(self.channel));
|
1829
2043
|
};
|
1830
2044
|
}
|
1831
2045
|
/**
|
@@ -1866,7 +2080,7 @@ export function take(n, __tsplusTrace) {
|
|
1866
2080
|
return empty_1;
|
1867
2081
|
}
|
1868
2082
|
if (!Number.isInteger(n)) {
|
1869
|
-
return halt_1(() => new
|
2083
|
+
return halt_1(() => new tsplus_module_65.IllegalArgumentError(`${n} should be an integer`, "Stream.take"), __tsplusTrace);
|
1870
2084
|
}
|
1871
2085
|
return new Stream(tsplus_module_10.pipeTo(takeLoop(n, __tsplusTrace))(stream.channel));
|
1872
2086
|
};
|
@@ -1912,11 +2126,58 @@ export function takeUntil(p, __tsplusTrace) {
|
|
1912
2126
|
/**
|
1913
2127
|
* @tsplus pipeable fncts.io.Stream tap
|
1914
2128
|
*/
|
1915
|
-
|
2129
|
+
function tap_1(f, __tsplusTrace) {
|
1916
2130
|
return ma => {
|
1917
2131
|
return mapIO_1(a => tsplus_module_1.as(() => a, __tsplusTrace)(f(a)), __tsplusTrace)(ma);
|
1918
2132
|
};
|
1919
2133
|
}
|
2134
|
+
/**
|
2135
|
+
* Returns a stream that effectfully "peeks" at the failure and adds an effect
|
2136
|
+
* to consumption of every element of the stream
|
2137
|
+
*
|
2138
|
+
* @tsplus pipeable fncts.io.Stream tapBoth
|
2139
|
+
*/
|
2140
|
+
export function tapBoth(f, g, __tsplusTrace) {
|
2141
|
+
return self => {
|
2142
|
+
return tap_1(g, __tsplusTrace)(tapError_1(f, __tsplusTrace)(self));
|
2143
|
+
};
|
2144
|
+
}
|
2145
|
+
/**
|
2146
|
+
* Returns a stream that effectfully "peeks" at the failure of the stream.
|
2147
|
+
*
|
2148
|
+
* @tsplus pipeable fncts.io.Stream tapError
|
2149
|
+
*/
|
2150
|
+
function tapError_1(f, __tsplusTrace) {
|
2151
|
+
return self => {
|
2152
|
+
return catchAll_1(e => fromIO_1(f(e), __tsplusTrace), __tsplusTrace)(self);
|
2153
|
+
};
|
2154
|
+
}
|
2155
|
+
/**
|
2156
|
+
* Returns a stream that effectfully "peeks" at the cause of failure of the
|
2157
|
+
* stream.
|
2158
|
+
*
|
2159
|
+
* @tsplus pipeable fncts.io.Stream tapErrorCause
|
2160
|
+
*/
|
2161
|
+
export function tapErrorCause(f, __tsplusTrace) {
|
2162
|
+
return self => {
|
2163
|
+
return catchAllCause_1(e => fromIO_1(tsplus_module_1.zipRight(tsplus_module_1.refailCause(e, __tsplusTrace), __tsplusTrace)(f(e)), __tsplusTrace), __tsplusTrace)(self);
|
2164
|
+
};
|
2165
|
+
}
|
2166
|
+
/**
|
2167
|
+
* Sends all elements emitted by this stream to the specified sink in addition
|
2168
|
+
* to emitting them.
|
2169
|
+
*
|
2170
|
+
* @tsplus pipeable fncts.io.Stream tapSink
|
2171
|
+
*/
|
2172
|
+
export function tapSink(sink, __tsplusTrace) {
|
2173
|
+
return self => {
|
2174
|
+
return flatMap_1(([queue, future]) => {
|
2175
|
+
const right = flattenTake_1(fromQueue_1(queue, 1, __tsplusTrace), __tsplusTrace);
|
2176
|
+
const loop = tsplus_module_10.readWithCause(chunk => tsplus_module_11.zipRight(loop)(tsplus_module_11.zipRight(tsplus_module_10.writeNow(chunk))(tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_27.chunk(chunk), __tsplusTrace)(queue)))), cause => tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_27.failCause(cause), __tsplusTrace)(queue)), () => tsplus_module_10.fromIO(() => tsplus_module_28.offer(tsplus_module_27.end, __tsplusTrace)(queue)));
|
2177
|
+
return merge_1(execute_1(tsplus_module_66.ensuring(tsplus_module_37.succeed_(undefined, __tsplusTrace)(future), __tsplusTrace)(run_1(sink, __tsplusTrace)(right)), __tsplusTrace), "Both", __tsplusTrace)(new Stream(tsplus_module_10.ensuring(tsplus_module_1.zipRight(tsplus_module_37.wait(future, __tsplusTrace), __tsplusTrace)(tsplus_module_24.forkDaemon(tsplus_module_28.offer(tsplus_module_27.end, __tsplusTrace)(queue), __tsplusTrace)))(tsplus_module_10.pipeTo(loop)(self.channel))));
|
2178
|
+
}, __tsplusTrace)(fromIO_1(tsplus_module_1.zip(tsplus_module_38.make(__tsplusTrace), __tsplusTrace)(tsplus_module_30.makeBounded(1, __tsplusTrace)), __tsplusTrace));
|
2179
|
+
};
|
2180
|
+
}
|
1920
2181
|
/**
|
1921
2182
|
* Throttles the chunks of this stream according to the given bandwidth parameters using the token bucket
|
1922
2183
|
* algorithm. Allows for burst in the processing of elements by allowing the token bucket to accumulate
|
@@ -1972,7 +2233,7 @@ function toHub_1(capacity, __tsplusTrace) {
|
|
1972
2233
|
* @tsplus getter fncts.io.Stream toPull
|
1973
2234
|
*/
|
1974
2235
|
function toPull_1(stream, __tsplusTrace) {
|
1975
|
-
return tsplus_module_1.map(io => tsplus_module_1.flatMap(r => tsplus_module_4.match(() => tsplus_module_1.failNow(tsplus_module_3.nothing(), __tsplusTrace), tsplus_module_1.succeedNow)(r), __tsplusTrace)(tsplus_module_1.mapError(tsplus_module_3.just, __tsplusTrace)(io)), __tsplusTrace)(
|
2236
|
+
return tsplus_module_1.map(io => tsplus_module_1.flatMap(r => tsplus_module_4.match(() => tsplus_module_1.failNow(tsplus_module_3.nothing(__tsplusTrace), __tsplusTrace), tsplus_module_1.succeedNow)(r), __tsplusTrace)(tsplus_module_1.mapError(tsplus_module_3.just, __tsplusTrace)(io)), __tsplusTrace)(tsplus_module_67.toPull(stream.channel));
|
1976
2237
|
}
|
1977
2238
|
/**
|
1978
2239
|
* Converts the stream to a managed queue of chunks. After the managed queue is used,
|
@@ -1998,7 +2259,7 @@ export function toQueueDropping(capacity = 2, __tsplusTrace) {
|
|
1998
2259
|
*/
|
1999
2260
|
function toQueueOfElements_1(capacity = 2, __tsplusTrace) {
|
2000
2261
|
return stream => {
|
2001
|
-
return tsplus_module_1.flatMap(queue => tsplus_module_1.map(() => queue, __tsplusTrace)(
|
2262
|
+
return tsplus_module_1.flatMap(queue => tsplus_module_1.map(() => queue, __tsplusTrace)(tsplus_module_17.forkScoped(runIntoQueueElementsScoped_1(() => queue)(stream), __tsplusTrace)), __tsplusTrace)(tsplus_module_31.acquireRelease(() => tsplus_module_30.makeBounded(capacity, __tsplusTrace), _ => tsplus_module_28.shutdown(_, __tsplusTrace), __tsplusTrace));
|
2002
2263
|
};
|
2003
2264
|
}
|
2004
2265
|
/**
|