Package not found. Please check the package name and try again.
@fncts/io 0.0.20 → 0.0.21
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/Cached/api.d.ts +2 -2
- package/Channel/ChildExecutorDecision/api.d.ts +2 -2
- package/Channel/UpstreamPullRequest/api.d.ts +2 -2
- package/Channel/api/interruptWhen.d.ts +5 -5
- package/Channel/api/mapOutIOC.d.ts +3 -3
- package/Channel/api/mergeAll.d.ts +2 -2
- package/Channel/api/mergeAllUnboundedWith.d.ts +2 -2
- package/Channel/api/mergeAllWith.d.ts +2 -2
- package/Channel/api/mergeMap.d.ts +2 -2
- package/Channel/api/mergeWith.d.ts +2 -2
- package/Channel/api/zipC.d.ts +6 -6
- package/Channel/api.d.ts +64 -64
- package/Channel/core-api.d.ts +11 -11
- package/Channel/definition.d.ts +35 -21
- package/Fiber/api/evalOn.d.ts +3 -3
- package/Fiber/api/evalOnIO.d.ts +3 -3
- package/Fiber/api/interruptAs.d.ts +3 -3
- package/Fiber/api/interruptAsFork.d.ts +3 -3
- package/Fiber/api/mapFiber.d.ts +2 -2
- package/Fiber/api/mapIO.d.ts +5 -5
- package/Fiber/api/zipWith.d.ts +2 -2
- package/Fiber.d.ts +1 -0
- package/FiberRef/api/locallyScoped.d.ts +2 -2
- package/FiberRef/api/locallyScopedWith.d.ts +2 -2
- package/FiberRef/api.d.ts +18 -18
- package/FiberRefs/api.d.ts +2 -2
- package/FiberRefs/join.d.ts +3 -3
- package/Future/api.d.ts +21 -21
- package/Hub/constructors.d.ts +49 -0
- package/Hub/definition.d.ts +37 -81
- package/Hub/internal.d.ts +4 -11
- package/Hub.d.ts +1 -1
- package/IO/api/acquireRelease.d.ts +1 -1
- package/IO/api/acquireReleaseExit.d.ts +1 -1
- package/IO/api/bracket.d.ts +1 -1
- package/IO/api/bracketExit.d.ts +1 -1
- package/IO/api/concurrency.d.ts +2 -2
- package/IO/api/core-scope.d.ts +5 -5
- package/IO/api/ensuringChildren.d.ts +3 -3
- package/IO/api/environment.d.ts +11 -15
- package/IO/api/foreachC.d.ts +2 -2
- package/IO/api/foreachExec.d.ts +1 -1
- package/IO/api/forkIn.d.ts +3 -3
- package/IO/api/fulfill.d.ts +3 -3
- package/IO/api/interrupt.d.ts +6 -6
- package/IO/api/onExit.d.ts +3 -3
- package/IO/api/onTermination.d.ts +4 -4
- package/IO/api/provideLayer.d.ts +3 -3
- package/IO/api/provideSomeLayer.d.ts +3 -7
- package/IO/api/race.d.ts +2 -2
- package/IO/api/raceFirst.d.ts +2 -2
- package/IO/api/repeat.d.ts +3 -3
- package/IO/api/retry.d.ts +7 -7
- package/IO/api/schedule.d.ts +5 -5
- package/IO/api/scoped.d.ts +2 -2
- package/IO/api/supervised.d.ts +3 -3
- package/IO/api/timeout.d.ts +5 -5
- package/IO/api/withFinalizer.d.ts +3 -3
- package/IO/api/withFinalizerExit.d.ts +3 -3
- package/IO/api/withRuntimeConfig.d.ts +3 -3
- package/IO/api/zipC.d.ts +4 -4
- package/IO/api.d.ts +179 -176
- package/IO/definition.d.ts +15 -9
- package/Layer/MemoMap.d.ts +4 -4
- package/Layer/api.d.ts +28 -28
- package/LogLevel.d.ts +12 -12
- package/LogSpan.d.ts +2 -2
- package/Logger/api.d.ts +5 -5
- package/Queue/constructors.d.ts +2 -1
- package/Queue/definition.d.ts +91 -82
- package/Queue/internal.d.ts +7 -9
- package/Queue.d.ts +0 -2
- package/Ref/Atomic.d.ts +15 -2
- package/Ref/Synchronized.d.ts +72 -0
- package/Ref/constructors.d.ts +7 -0
- package/Ref/definition.d.ts +60 -58
- package/Ref.d.ts +1 -6
- package/STM/api/core-api.d.ts +10 -10
- package/STM/api.d.ts +61 -61
- package/STM/internal/Journal.d.ts +4 -4
- package/Schedule/Decision.d.ts +2 -2
- package/Schedule/api.d.ts +94 -94
- package/Scope/ReleaseMap/api/releaseAll.d.ts +2 -2
- package/Scope/ReleaseMap/api.d.ts +10 -10
- package/Scope/api.d.ts +8 -8
- package/Sink/api.d.ts +68 -68
- package/State/api.d.ts +4 -4
- package/State/internal.d.ts +1 -1
- package/Stream/api/zipAllWith.d.ts +2 -2
- package/Stream/api/zipWith.d.ts +2 -2
- package/Stream/api/zipWithChunks.d.ts +2 -2
- package/Stream/api.d.ts +216 -205
- package/Stream/internal/DebounceState.d.ts +3 -3
- package/Stream/internal/Handoff.d.ts +5 -5
- package/Stream/internal/Pull.d.ts +2 -2
- package/Stream/internal/SinkEndReason.d.ts +3 -3
- package/Stream/internal/Take.d.ts +8 -8
- package/SubscriptionRef.d.ts +29 -0
- package/Supervisor/api.d.ts +4 -4
- package/SupervisorPatch.d.ts +4 -4
- package/TFuture/api.d.ts +7 -7
- package/TReentrantLock/api.d.ts +4 -4
- package/TRef/api.d.ts +24 -24
- package/TSemaphore/api.d.ts +4 -4
- package/TSemaphore/constructors.d.ts +6 -0
- package/_cjs/Cached/api.cjs +9 -9
- package/_cjs/Cached/api.cjs.map +1 -1
- package/_cjs/Channel/ChildExecutorDecision/api.cjs +19 -17
- package/_cjs/Channel/ChildExecutorDecision/api.cjs.map +1 -1
- package/_cjs/Channel/UpstreamPullRequest/api.cjs +16 -14
- package/_cjs/Channel/UpstreamPullRequest/api.cjs.map +1 -1
- package/_cjs/Channel/api/interruptWhen.cjs +14 -10
- package/_cjs/Channel/api/interruptWhen.cjs.map +1 -1
- package/_cjs/Channel/api/mapOutIOC.cjs +25 -25
- package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAll.cjs +6 -4
- package/_cjs/Channel/api/mergeAll.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAllUnboundedWith.cjs +6 -4
- package/_cjs/Channel/api/mergeAllUnboundedWith.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAllWith.cjs +48 -52
- package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
- package/_cjs/Channel/api/mergeMap.cjs +6 -4
- package/_cjs/Channel/api/mergeMap.cjs.map +1 -1
- package/_cjs/Channel/api/mergeWith.cjs +48 -46
- package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
- package/_cjs/Channel/api/run.cjs +1 -1
- package/_cjs/Channel/api/run.cjs.map +1 -1
- package/_cjs/Channel/api/runScoped.cjs +2 -2
- 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/zipC.cjs +20 -14
- package/_cjs/Channel/api/zipC.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +264 -218
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Channel/core-api.cjs +34 -24
- package/_cjs/Channel/core-api.cjs.map +1 -1
- package/_cjs/Channel/definition.cjs +1 -1
- package/_cjs/Channel/definition.cjs.map +1 -1
- package/_cjs/Channel/internal/ChannelExecutor.cjs +83 -83
- package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +22 -24
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
- package/_cjs/Differ/api.cjs +5 -5
- package/_cjs/Differ/api.cjs.map +1 -1
- package/_cjs/Fiber/FiberContext.cjs +48 -48
- package/_cjs/Fiber/FiberContext.cjs.map +1 -1
- package/_cjs/Fiber/api/awaitAll.cjs +1 -1
- package/_cjs/Fiber/api/awaitAll.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/evalOn.cjs +12 -10
- package/_cjs/Fiber/api/evalOn.cjs.map +1 -1
- package/_cjs/Fiber/api/evalOnIO.cjs +6 -4
- package/_cjs/Fiber/api/evalOnIO.cjs.map +1 -1
- package/_cjs/Fiber/api/fromIO.cjs +1 -1
- package/_cjs/Fiber/api/fromIO.cjs.map +1 -1
- package/_cjs/Fiber/api/interrupt.cjs +1 -1
- package/_cjs/Fiber/api/interrupt.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptAll.cjs +2 -2
- package/_cjs/Fiber/api/interruptAll.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptAs.cjs +6 -4
- package/_cjs/Fiber/api/interruptAs.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptAsFork.cjs +6 -4
- package/_cjs/Fiber/api/interruptAsFork.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptFork.cjs +1 -1
- package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
- package/_cjs/Fiber/api/join.cjs +1 -1
- package/_cjs/Fiber/api/join.cjs.map +1 -1
- package/_cjs/Fiber/api/joinAll.cjs +1 -1
- package/_cjs/Fiber/api/joinAll.cjs.map +1 -1
- package/_cjs/Fiber/api/mapFiber.cjs +6 -4
- package/_cjs/Fiber/api/mapFiber.cjs.map +1 -1
- package/_cjs/Fiber/api/mapIO.cjs +14 -10
- package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
- package/_cjs/Fiber/api/zipWith.cjs +6 -4
- package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
- package/_cjs/Fiber/definition.cjs.map +1 -1
- package/_cjs/Fiber.cjs +13 -0
- package/_cjs/Fiber.cjs.map +1 -1
- package/_cjs/FiberRef/api/locallyScoped.cjs +6 -4
- package/_cjs/FiberRef/api/locallyScoped.cjs.map +1 -1
- package/_cjs/FiberRef/api/locallyScopedWith.cjs +5 -3
- package/_cjs/FiberRef/api/locallyScopedWith.cjs.map +1 -1
- package/_cjs/FiberRef/api.cjs +64 -47
- package/_cjs/FiberRef/api.cjs.map +1 -1
- package/_cjs/FiberRef/constructors.cjs +1 -1
- package/_cjs/FiberRef/constructors.cjs.map +1 -1
- package/_cjs/FiberRef.cjs.map +1 -1
- package/_cjs/FiberRefs/api.cjs +15 -13
- package/_cjs/FiberRefs/api.cjs.map +1 -1
- package/_cjs/FiberRefs/join.cjs +37 -35
- package/_cjs/FiberRefs/join.cjs.map +1 -1
- package/_cjs/FiberState/definition.cjs.map +1 -1
- package/_cjs/Future/api.cjs +97 -79
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/Future/constructors.cjs +1 -1
- package/_cjs/Future/constructors.cjs.map +1 -1
- package/_cjs/Hub/constructors.cjs +93 -0
- package/_cjs/Hub/constructors.cjs.map +1 -0
- package/_cjs/Hub/definition.cjs +104 -13
- package/_cjs/Hub/definition.cjs.map +1 -1
- package/_cjs/Hub/internal.cjs +104 -129
- package/_cjs/Hub/internal.cjs.map +1 -1
- package/_cjs/Hub.cjs +4 -4
- package/_cjs/IO/api/acquireReleaseExit.cjs +1 -1
- package/_cjs/IO/api/acquireReleaseExit.cjs.map +1 -1
- package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs +1 -1
- package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs.map +1 -1
- package/_cjs/IO/api/addFinalizerExit.cjs +1 -1
- package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
- package/_cjs/IO/api/asyncIO.cjs +4 -4
- package/_cjs/IO/api/asyncIO.cjs.map +1 -1
- package/_cjs/IO/api/bracket.cjs +3 -3
- package/_cjs/IO/api/bracket.cjs.map +1 -1
- package/_cjs/IO/api/bracketExit.cjs +3 -3
- package/_cjs/IO/api/bracketExit.cjs.map +1 -1
- package/_cjs/IO/api/clockWith.cjs +2 -2
- package/_cjs/IO/api/clockWith.cjs.map +1 -1
- package/_cjs/IO/api/concurrency.cjs +9 -7
- package/_cjs/IO/api/concurrency.cjs.map +1 -1
- package/_cjs/IO/api/concurrentFinalizers.cjs +1 -1
- package/_cjs/IO/api/concurrentFinalizers.cjs.map +1 -1
- package/_cjs/IO/api/consoleWith.cjs +2 -2
- package/_cjs/IO/api/consoleWith.cjs.map +1 -1
- package/_cjs/IO/api/core-scope.cjs +45 -41
- package/_cjs/IO/api/core-scope.cjs.map +1 -1
- package/_cjs/IO/api/ensuringChildren.cjs +5 -3
- package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
- package/_cjs/IO/api/environment.cjs +35 -35
- package/_cjs/IO/api/environment.cjs.map +1 -1
- package/_cjs/IO/api/foreachC.cjs +19 -23
- package/_cjs/IO/api/foreachC.cjs.map +1 -1
- package/_cjs/IO/api/foreachExec.cjs +3 -3
- package/_cjs/IO/api/foreachExec.cjs.map +1 -1
- package/_cjs/IO/api/forkAll.cjs +1 -1
- package/_cjs/IO/api/forkAll.cjs.map +1 -1
- package/_cjs/IO/api/forkIn.cjs +8 -6
- package/_cjs/IO/api/forkIn.cjs.map +1 -1
- package/_cjs/IO/api/forkScoped.cjs +1 -1
- package/_cjs/IO/api/forkScoped.cjs.map +1 -1
- package/_cjs/IO/api/fulfill.cjs +8 -6
- package/_cjs/IO/api/fulfill.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +36 -30
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/memoize.cjs +1 -1
- package/_cjs/IO/api/memoize.cjs.map +1 -1
- package/_cjs/IO/api/onExit.cjs +6 -4
- package/_cjs/IO/api/onExit.cjs.map +1 -1
- package/_cjs/IO/api/onTermination.cjs +5 -3
- package/_cjs/IO/api/onTermination.cjs.map +1 -1
- package/_cjs/IO/api/once.cjs +3 -5
- package/_cjs/IO/api/once.cjs.map +1 -1
- package/_cjs/IO/api/provideLayer.cjs +6 -4
- package/_cjs/IO/api/provideLayer.cjs.map +1 -1
- package/_cjs/IO/api/provideSomeLayer.cjs +5 -15
- package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
- package/_cjs/IO/api/race.cjs +6 -4
- package/_cjs/IO/api/race.cjs.map +1 -1
- package/_cjs/IO/api/raceFirst.cjs +6 -4
- package/_cjs/IO/api/raceFirst.cjs.map +1 -1
- package/_cjs/IO/api/randomWith.cjs +1 -1
- package/_cjs/IO/api/randomWith.cjs.map +1 -1
- package/_cjs/IO/api/repeat.cjs +12 -12
- package/_cjs/IO/api/repeat.cjs.map +1 -1
- package/_cjs/IO/api/retry.cjs +14 -14
- package/_cjs/IO/api/retry.cjs.map +1 -1
- package/_cjs/IO/api/schedule.cjs +15 -11
- package/_cjs/IO/api/schedule.cjs.map +1 -1
- package/_cjs/IO/api/scoped.cjs +6 -6
- package/_cjs/IO/api/scoped.cjs.map +1 -1
- package/_cjs/IO/api/sequenceT.cjs +1 -1
- package/_cjs/IO/api/sequenceT.cjs.map +1 -1
- package/_cjs/IO/api/stateful.cjs.map +1 -1
- package/_cjs/IO/api/supervised.cjs +6 -4
- package/_cjs/IO/api/supervised.cjs.map +1 -1
- package/_cjs/IO/api/timeout.cjs +10 -6
- package/_cjs/IO/api/timeout.cjs.map +1 -1
- package/_cjs/IO/api/withChildren.cjs +1 -1
- 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/withFinalizer.cjs +6 -4
- package/_cjs/IO/api/withFinalizer.cjs.map +1 -1
- package/_cjs/IO/api/withFinalizerExit.cjs +6 -4
- package/_cjs/IO/api/withFinalizerExit.cjs.map +1 -1
- package/_cjs/IO/api/withRuntimeConfig.cjs +6 -4
- package/_cjs/IO/api/withRuntimeConfig.cjs.map +1 -1
- package/_cjs/IO/api/zipC.cjs +21 -17
- package/_cjs/IO/api/zipC.cjs.map +1 -1
- package/_cjs/IO/api.cjs +634 -509
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO/runtime.cjs +7 -7
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/IO.cjs.map +1 -1
- package/_cjs/IOEnv/definition.cjs +1 -1
- package/_cjs/IOEnv/definition.cjs.map +1 -1
- package/_cjs/IOEnv/live.cjs +1 -1
- package/_cjs/IOEnv/live.cjs.map +1 -1
- package/_cjs/Layer/MemoMap.cjs +86 -92
- package/_cjs/Layer/MemoMap.cjs.map +1 -1
- package/_cjs/Layer/api.cjs +110 -81
- package/_cjs/Layer/api.cjs.map +1 -1
- package/_cjs/Layer/definition.cjs.map +1 -1
- package/_cjs/LogLevel.cjs +24 -16
- package/_cjs/LogLevel.cjs.map +1 -1
- package/_cjs/LogSpan.cjs +18 -16
- package/_cjs/LogSpan.cjs.map +1 -1
- package/_cjs/Logger/api.cjs +18 -14
- package/_cjs/Logger/api.cjs.map +1 -1
- package/_cjs/Logger/constructors.cjs +1 -1
- package/_cjs/Logger/constructors.cjs.map +1 -1
- package/_cjs/Queue/constructors.cjs +19 -5
- package/_cjs/Queue/constructors.cjs.map +1 -1
- package/_cjs/Queue/definition.cjs +191 -16
- package/_cjs/Queue/definition.cjs.map +1 -1
- package/_cjs/Queue/internal.cjs +27 -181
- package/_cjs/Queue/internal.cjs.map +1 -1
- package/_cjs/Queue/strategy.cjs +19 -19
- package/_cjs/Queue/strategy.cjs.map +1 -1
- package/_cjs/Queue.cjs +0 -26
- package/_cjs/Queue.cjs.map +1 -1
- package/_cjs/Random/live.cjs +2 -2
- package/_cjs/Random/live.cjs.map +1 -1
- package/_cjs/Ref/Atomic.cjs +47 -24
- package/_cjs/Ref/Atomic.cjs.map +1 -1
- package/_cjs/Ref/Synchronized.cjs +140 -0
- package/_cjs/Ref/Synchronized.cjs.map +1 -0
- package/_cjs/Ref/constructors.cjs +21 -2
- package/_cjs/Ref/constructors.cjs.map +1 -1
- package/_cjs/Ref/definition.cjs +105 -10
- package/_cjs/Ref/definition.cjs.map +1 -1
- package/_cjs/Ref.cjs +4 -69
- package/_cjs/Ref.cjs.map +1 -1
- package/_cjs/Reloadable/constructors.cjs +10 -10
- package/_cjs/Reloadable/constructors.cjs.map +1 -1
- package/_cjs/RuntimeConfig.cjs +2 -2
- package/_cjs/RuntimeConfig.cjs.map +1 -1
- package/_cjs/STM/api/core-api.cjs +36 -26
- package/_cjs/STM/api/core-api.cjs.map +1 -1
- package/_cjs/STM/api.cjs +217 -163
- package/_cjs/STM/api.cjs.map +1 -1
- package/_cjs/STM/driver.cjs +3 -3
- package/_cjs/STM/driver.cjs.map +1 -1
- package/_cjs/STM/internal/Entry.cjs.map +1 -1
- package/_cjs/STM/internal/Journal.cjs +33 -29
- package/_cjs/STM/internal/Journal.cjs.map +1 -1
- package/_cjs/STM.cjs.map +1 -1
- package/_cjs/Schedule/Decision.cjs +16 -14
- package/_cjs/Schedule/Decision.cjs.map +1 -1
- package/_cjs/Schedule/api/driver.cjs +16 -20
- package/_cjs/Schedule/api/driver.cjs.map +1 -1
- package/_cjs/Schedule/api.cjs +381 -290
- package/_cjs/Schedule/api.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +14 -14
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api.cjs +68 -61
- package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
- package/_cjs/Scope/api.cjs +34 -27
- package/_cjs/Scope/api.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +9 -13
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/ScopedRef/definition.cjs +1 -1
- package/_cjs/ScopedRef/definition.cjs.map +1 -1
- package/_cjs/Sink/api.cjs +307 -249
- package/_cjs/Sink/api.cjs.map +1 -1
- package/_cjs/State/api.cjs +18 -14
- package/_cjs/State/api.cjs.map +1 -1
- package/_cjs/Stream/api/zipAllWith.cjs +15 -13
- package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
- package/_cjs/Stream/api/zipWith.cjs +6 -4
- package/_cjs/Stream/api/zipWith.cjs.map +1 -1
- package/_cjs/Stream/api/zipWithChunks.cjs +13 -11
- package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +992 -788
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/Stream/definition.cjs.map +1 -1
- package/_cjs/Stream/internal/DebounceState.cjs +21 -19
- package/_cjs/Stream/internal/DebounceState.cjs.map +1 -1
- package/_cjs/Stream/internal/Handoff.cjs +35 -33
- package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
- package/_cjs/Stream/internal/Pull.cjs +9 -11
- package/_cjs/Stream/internal/Pull.cjs.map +1 -1
- package/_cjs/Stream/internal/SinkEndReason.cjs +16 -14
- package/_cjs/Stream/internal/SinkEndReason.cjs.map +1 -1
- package/_cjs/Stream/internal/Take.cjs +32 -24
- package/_cjs/Stream/internal/Take.cjs.map +1 -1
- package/_cjs/Stream/internal/util.cjs +3 -3
- package/_cjs/Stream/internal/util.cjs.map +1 -1
- package/_cjs/SubscriptionRef.cjs +68 -0
- package/_cjs/SubscriptionRef.cjs.map +1 -0
- package/_cjs/Supervisor/api.cjs +24 -20
- package/_cjs/Supervisor/api.cjs.map +1 -1
- package/_cjs/Supervisor/constructors.cjs +2 -2
- package/_cjs/Supervisor/constructors.cjs.map +1 -1
- package/_cjs/Supervisor/definition.cjs +1 -1
- package/_cjs/Supervisor/definition.cjs.map +1 -1
- package/_cjs/SupervisorPatch.cjs +15 -11
- package/_cjs/SupervisorPatch.cjs.map +1 -1
- package/_cjs/TExit/definition.cjs.map +1 -1
- package/_cjs/TFuture/api.cjs +21 -15
- 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/TFuture/definition.cjs.map +1 -1
- package/_cjs/TReentrantLock/api.cjs +32 -28
- package/_cjs/TReentrantLock/api.cjs.map +1 -1
- package/_cjs/TReentrantLock/definition.cjs +4 -4
- package/_cjs/TReentrantLock/definition.cjs.map +1 -1
- package/_cjs/TRef/api.cjs +233 -209
- package/_cjs/TRef/api.cjs.map +1 -1
- package/_cjs/TRef/definition.cjs +4 -4
- package/_cjs/TRef/definition.cjs.map +1 -1
- package/_cjs/TSemaphore/api.cjs +27 -23
- package/_cjs/TSemaphore/api.cjs.map +1 -1
- package/_cjs/TSemaphore/constructors.cjs +18 -3
- package/_cjs/TSemaphore/constructors.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +21 -19
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +21 -19
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/filterIO.cjs +16 -14
- package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/findIO.cjs +19 -17
- package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/mapIO.cjs +11 -9
- package/_cjs/collection/immutable/Conc/mapIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/takeWhileIO.cjs +31 -29
- package/_cjs/collection/immutable/Conc/takeWhileIO.cjs.map +1 -1
- package/_cjs/data/Exit/foreachIO.cjs +6 -4
- package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
- package/_cjs/internal/Hub.cjs +13 -11
- package/_cjs/internal/Hub.cjs.map +1 -1
- package/_cjs/internal/IsFatal.cjs +18 -16
- package/_cjs/internal/IsFatal.cjs.map +1 -1
- package/_cjs/internal/MutableQueue.cjs +11 -9
- package/_cjs/internal/MutableQueue.cjs.map +1 -1
- package/_cjs/internal/StackTraceBuilder.cjs.map +1 -1
- package/_mjs/Cached/api.mjs +6 -6
- package/_mjs/Cached/api.mjs.map +1 -1
- package/_mjs/Channel/ChildExecutorDecision/api.mjs +18 -16
- package/_mjs/Channel/ChildExecutorDecision/api.mjs.map +1 -1
- package/_mjs/Channel/UpstreamPullRequest/api.mjs +14 -12
- package/_mjs/Channel/UpstreamPullRequest/api.mjs.map +1 -1
- package/_mjs/Channel/api/interruptWhen.mjs +11 -7
- package/_mjs/Channel/api/interruptWhen.mjs.map +1 -1
- package/_mjs/Channel/api/mapOutIOC.mjs +24 -23
- package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAll.mjs +5 -3
- package/_mjs/Channel/api/mergeAll.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAllUnboundedWith.mjs +5 -3
- package/_mjs/Channel/api/mergeAllUnboundedWith.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAllWith.mjs +45 -46
- package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
- package/_mjs/Channel/api/mergeMap.mjs +5 -3
- package/_mjs/Channel/api/mergeMap.mjs.map +1 -1
- package/_mjs/Channel/api/mergeWith.mjs +46 -44
- package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
- package/_mjs/Channel/api/run.mjs +1 -1
- package/_mjs/Channel/api/run.mjs.map +1 -1
- package/_mjs/Channel/api/runScoped.mjs +2 -2
- 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/zipC.mjs +16 -10
- package/_mjs/Channel/api/zipC.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +224 -173
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Channel/core-api.mjs +28 -18
- package/_mjs/Channel/core-api.mjs.map +1 -1
- package/_mjs/Channel/definition.mjs +1 -1
- package/_mjs/Channel/definition.mjs.map +1 -1
- package/_mjs/Channel/internal/ChannelExecutor.mjs +83 -83
- package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +22 -23
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
- package/_mjs/Differ/api.mjs +5 -5
- package/_mjs/Differ/api.mjs.map +1 -1
- package/_mjs/Fiber/FiberContext.mjs +48 -48
- package/_mjs/Fiber/FiberContext.mjs.map +1 -1
- package/_mjs/Fiber/api/awaitAll.mjs +1 -1
- package/_mjs/Fiber/api/awaitAll.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/evalOn.mjs +11 -9
- package/_mjs/Fiber/api/evalOn.mjs.map +1 -1
- package/_mjs/Fiber/api/evalOnIO.mjs +5 -3
- package/_mjs/Fiber/api/evalOnIO.mjs.map +1 -1
- package/_mjs/Fiber/api/fromIO.mjs +1 -1
- package/_mjs/Fiber/api/fromIO.mjs.map +1 -1
- package/_mjs/Fiber/api/interrupt.mjs +1 -1
- package/_mjs/Fiber/api/interrupt.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptAll.mjs +2 -2
- package/_mjs/Fiber/api/interruptAll.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptAs.mjs +6 -4
- package/_mjs/Fiber/api/interruptAs.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptAsFork.mjs +6 -4
- package/_mjs/Fiber/api/interruptAsFork.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptFork.mjs +1 -1
- package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
- package/_mjs/Fiber/api/join.mjs +1 -1
- package/_mjs/Fiber/api/join.mjs.map +1 -1
- package/_mjs/Fiber/api/joinAll.mjs +1 -1
- package/_mjs/Fiber/api/joinAll.mjs.map +1 -1
- package/_mjs/Fiber/api/mapFiber.mjs +5 -3
- package/_mjs/Fiber/api/mapFiber.mjs.map +1 -1
- package/_mjs/Fiber/api/mapIO.mjs +11 -7
- package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
- package/_mjs/Fiber/api/zipWith.mjs +5 -3
- package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
- package/_mjs/Fiber/definition.mjs.map +1 -1
- package/_mjs/Fiber.mjs +1 -0
- package/_mjs/Fiber.mjs.map +1 -1
- package/_mjs/FiberRef/api/locallyScoped.mjs +5 -3
- package/_mjs/FiberRef/api/locallyScoped.mjs.map +1 -1
- package/_mjs/FiberRef/api/locallyScopedWith.mjs +5 -3
- package/_mjs/FiberRef/api/locallyScopedWith.mjs.map +1 -1
- package/_mjs/FiberRef/api.mjs +52 -36
- package/_mjs/FiberRef/api.mjs.map +1 -1
- package/_mjs/FiberRef/constructors.mjs +1 -1
- package/_mjs/FiberRef/constructors.mjs.map +1 -1
- package/_mjs/FiberRef.mjs.map +1 -1
- package/_mjs/FiberRefs/api.mjs +14 -12
- package/_mjs/FiberRefs/api.mjs.map +1 -1
- package/_mjs/FiberRefs/join.mjs +35 -33
- package/_mjs/FiberRefs/join.mjs.map +1 -1
- package/_mjs/FiberState/definition.mjs.map +1 -1
- package/_mjs/Future/api.mjs +84 -66
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/Future/constructors.mjs +1 -1
- package/_mjs/Future/constructors.mjs.map +1 -1
- package/_mjs/Hub/constructors.mjs +66 -0
- package/_mjs/Hub/constructors.mjs.map +1 -0
- package/_mjs/Hub/definition.mjs +88 -9
- package/_mjs/Hub/definition.mjs.map +1 -1
- package/_mjs/Hub/internal.mjs +105 -122
- package/_mjs/Hub/internal.mjs.map +1 -1
- package/_mjs/Hub.mjs +1 -1
- package/_mjs/Hub.mjs.map +1 -1
- package/_mjs/IO/api/acquireReleaseExit.mjs +1 -1
- package/_mjs/IO/api/acquireReleaseExit.mjs.map +1 -1
- package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs +1 -1
- package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs.map +1 -1
- package/_mjs/IO/api/addFinalizerExit.mjs +1 -1
- package/_mjs/IO/api/addFinalizerExit.mjs.map +1 -1
- package/_mjs/IO/api/asyncIO.mjs +4 -4
- package/_mjs/IO/api/asyncIO.mjs.map +1 -1
- package/_mjs/IO/api/bracket.mjs +2 -2
- package/_mjs/IO/api/bracket.mjs.map +1 -1
- package/_mjs/IO/api/bracketExit.mjs +2 -2
- package/_mjs/IO/api/bracketExit.mjs.map +1 -1
- package/_mjs/IO/api/clockWith.mjs +2 -2
- package/_mjs/IO/api/clockWith.mjs.map +1 -1
- package/_mjs/IO/api/concurrency.mjs +8 -6
- package/_mjs/IO/api/concurrency.mjs.map +1 -1
- package/_mjs/IO/api/concurrentFinalizers.mjs +1 -1
- package/_mjs/IO/api/concurrentFinalizers.mjs.map +1 -1
- package/_mjs/IO/api/consoleWith.mjs +2 -2
- package/_mjs/IO/api/consoleWith.mjs.map +1 -1
- package/_mjs/IO/api/core-scope.mjs +40 -36
- package/_mjs/IO/api/core-scope.mjs.map +1 -1
- package/_mjs/IO/api/ensuringChildren.mjs +5 -3
- package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
- package/_mjs/IO/api/environment.mjs +29 -27
- package/_mjs/IO/api/environment.mjs.map +1 -1
- package/_mjs/IO/api/foreachC.mjs +17 -19
- package/_mjs/IO/api/foreachC.mjs.map +1 -1
- package/_mjs/IO/api/foreachExec.mjs +2 -2
- package/_mjs/IO/api/foreachExec.mjs.map +1 -1
- package/_mjs/IO/api/forkAll.mjs +1 -1
- package/_mjs/IO/api/forkAll.mjs.map +1 -1
- package/_mjs/IO/api/forkIn.mjs +7 -5
- package/_mjs/IO/api/forkIn.mjs.map +1 -1
- package/_mjs/IO/api/forkScoped.mjs +1 -1
- package/_mjs/IO/api/forkScoped.mjs.map +1 -1
- package/_mjs/IO/api/fulfill.mjs +7 -5
- package/_mjs/IO/api/fulfill.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +34 -28
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/memoize.mjs +1 -1
- package/_mjs/IO/api/memoize.mjs.map +1 -1
- package/_mjs/IO/api/onExit.mjs +5 -3
- package/_mjs/IO/api/onExit.mjs.map +1 -1
- package/_mjs/IO/api/onTermination.mjs +5 -3
- package/_mjs/IO/api/onTermination.mjs.map +1 -1
- package/_mjs/IO/api/once.mjs +3 -4
- package/_mjs/IO/api/once.mjs.map +1 -1
- package/_mjs/IO/api/provideLayer.mjs +5 -3
- package/_mjs/IO/api/provideLayer.mjs.map +1 -1
- package/_mjs/IO/api/provideSomeLayer.mjs +5 -11
- package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
- package/_mjs/IO/api/race.mjs +5 -3
- package/_mjs/IO/api/race.mjs.map +1 -1
- package/_mjs/IO/api/raceFirst.mjs +5 -3
- package/_mjs/IO/api/raceFirst.mjs.map +1 -1
- package/_mjs/IO/api/randomWith.mjs +1 -1
- package/_mjs/IO/api/randomWith.mjs.map +1 -1
- package/_mjs/IO/api/repeat.mjs +8 -8
- package/_mjs/IO/api/repeat.mjs.map +1 -1
- package/_mjs/IO/api/retry.mjs +12 -12
- package/_mjs/IO/api/retry.mjs.map +1 -1
- package/_mjs/IO/api/schedule.mjs +15 -11
- package/_mjs/IO/api/schedule.mjs.map +1 -1
- package/_mjs/IO/api/scoped.mjs +3 -3
- package/_mjs/IO/api/scoped.mjs.map +1 -1
- package/_mjs/IO/api/sequenceT.mjs +1 -1
- package/_mjs/IO/api/sequenceT.mjs.map +1 -1
- package/_mjs/IO/api/stateful.mjs.map +1 -1
- package/_mjs/IO/api/supervised.mjs +5 -3
- package/_mjs/IO/api/supervised.mjs.map +1 -1
- package/_mjs/IO/api/timeout.mjs +10 -6
- package/_mjs/IO/api/timeout.mjs.map +1 -1
- package/_mjs/IO/api/withChildren.mjs +1 -1
- 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/withFinalizer.mjs +5 -3
- package/_mjs/IO/api/withFinalizer.mjs.map +1 -1
- package/_mjs/IO/api/withFinalizerExit.mjs +5 -3
- package/_mjs/IO/api/withFinalizerExit.mjs.map +1 -1
- package/_mjs/IO/api/withRuntimeConfig.mjs +5 -3
- package/_mjs/IO/api/withRuntimeConfig.mjs.map +1 -1
- package/_mjs/IO/api/zipC.mjs +18 -14
- package/_mjs/IO/api/zipC.mjs.map +1 -1
- package/_mjs/IO/api.mjs +511 -387
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO/runtime.mjs +7 -7
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/IO.mjs.map +1 -1
- package/_mjs/IOEnv/definition.mjs +1 -1
- package/_mjs/IOEnv/definition.mjs.map +1 -1
- package/_mjs/IOEnv/live.mjs +1 -1
- package/_mjs/IOEnv/live.mjs.map +1 -1
- package/_mjs/Layer/MemoMap.mjs +86 -87
- package/_mjs/Layer/MemoMap.mjs.map +1 -1
- package/_mjs/Layer/api.mjs +91 -63
- package/_mjs/Layer/api.mjs.map +1 -1
- package/_mjs/Layer/definition.mjs.map +1 -1
- package/_mjs/LogLevel.mjs +24 -16
- package/_mjs/LogLevel.mjs.map +1 -1
- package/_mjs/LogSpan.mjs +16 -14
- package/_mjs/LogSpan.mjs.map +1 -1
- package/_mjs/Logger/api.mjs +16 -12
- package/_mjs/Logger/api.mjs.map +1 -1
- package/_mjs/Logger/constructors.mjs +1 -1
- package/_mjs/Logger/constructors.mjs.map +1 -1
- package/_mjs/Queue/constructors.mjs +16 -5
- package/_mjs/Queue/constructors.mjs.map +1 -1
- package/_mjs/Queue/definition.mjs +174 -12
- package/_mjs/Queue/definition.mjs.map +1 -1
- package/_mjs/Queue/internal.mjs +21 -170
- package/_mjs/Queue/internal.mjs.map +1 -1
- package/_mjs/Queue/strategy.mjs +20 -23
- package/_mjs/Queue/strategy.mjs.map +1 -1
- package/_mjs/Queue.mjs +1 -3
- package/_mjs/Queue.mjs.map +1 -1
- package/_mjs/Random/live.mjs +2 -2
- package/_mjs/Random/live.mjs.map +1 -1
- package/_mjs/Ref/Atomic.mjs +39 -3
- package/_mjs/Ref/Atomic.mjs.map +1 -1
- package/_mjs/Ref/Synchronized.mjs +123 -0
- package/_mjs/Ref/Synchronized.mjs.map +1 -0
- package/_mjs/Ref/constructors.mjs +15 -1
- package/_mjs/Ref/constructors.mjs.map +1 -1
- package/_mjs/Ref/definition.mjs +96 -4
- package/_mjs/Ref/definition.mjs.map +1 -1
- package/_mjs/Ref.mjs +1 -8
- package/_mjs/Ref.mjs.map +1 -1
- package/_mjs/Reloadable/constructors.mjs +10 -10
- package/_mjs/Reloadable/constructors.mjs.map +1 -1
- package/_mjs/RuntimeConfig.mjs +2 -2
- package/_mjs/RuntimeConfig.mjs.map +1 -1
- package/_mjs/STM/api/core-api.mjs +29 -19
- package/_mjs/STM/api/core-api.mjs.map +1 -1
- package/_mjs/STM/api.mjs +180 -127
- package/_mjs/STM/api.mjs.map +1 -1
- package/_mjs/STM/driver.mjs +3 -3
- package/_mjs/STM/driver.mjs.map +1 -1
- package/_mjs/STM/internal/Entry.mjs.map +1 -1
- package/_mjs/STM/internal/Journal.mjs +33 -29
- package/_mjs/STM/internal/Journal.mjs.map +1 -1
- package/_mjs/STM.mjs.map +1 -1
- package/_mjs/Schedule/Decision.mjs +14 -12
- package/_mjs/Schedule/Decision.mjs.map +1 -1
- package/_mjs/Schedule/api/driver.mjs +15 -17
- package/_mjs/Schedule/api/driver.mjs.map +1 -1
- package/_mjs/Schedule/api.mjs +326 -234
- package/_mjs/Schedule/api.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +12 -11
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api.mjs +60 -51
- package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
- package/_mjs/Scope/api.mjs +28 -22
- package/_mjs/Scope/api.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +9 -11
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/ScopedRef/definition.mjs +1 -1
- package/_mjs/ScopedRef/definition.mjs.map +1 -1
- package/_mjs/Sink/api.mjs +301 -240
- package/_mjs/Sink/api.mjs.map +1 -1
- package/_mjs/State/api.mjs +16 -12
- package/_mjs/State/api.mjs.map +1 -1
- package/_mjs/Stream/api/zipAllWith.mjs +14 -12
- package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
- package/_mjs/Stream/api/zipWith.mjs +5 -3
- package/_mjs/Stream/api/zipWith.mjs.map +1 -1
- package/_mjs/Stream/api/zipWithChunks.mjs +12 -10
- package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +856 -653
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/Stream/definition.mjs.map +1 -1
- package/_mjs/Stream/internal/DebounceState.mjs +18 -16
- package/_mjs/Stream/internal/DebounceState.mjs.map +1 -1
- package/_mjs/Stream/internal/Handoff.mjs +35 -32
- package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
- package/_mjs/Stream/internal/Pull.mjs +9 -10
- package/_mjs/Stream/internal/Pull.mjs.map +1 -1
- package/_mjs/Stream/internal/SinkEndReason.mjs +14 -12
- package/_mjs/Stream/internal/SinkEndReason.mjs.map +1 -1
- package/_mjs/Stream/internal/Take.mjs +28 -20
- package/_mjs/Stream/internal/Take.mjs.map +1 -1
- package/_mjs/Stream/internal/util.mjs +3 -3
- package/_mjs/Stream/internal/util.mjs.map +1 -1
- package/_mjs/SubscriptionRef.mjs +45 -0
- package/_mjs/SubscriptionRef.mjs.map +1 -0
- package/_mjs/Supervisor/api.mjs +22 -18
- package/_mjs/Supervisor/api.mjs.map +1 -1
- package/_mjs/Supervisor/constructors.mjs +2 -2
- package/_mjs/Supervisor/constructors.mjs.map +1 -1
- package/_mjs/Supervisor/definition.mjs +1 -1
- package/_mjs/Supervisor/definition.mjs.map +1 -1
- package/_mjs/SupervisorPatch.mjs +15 -11
- package/_mjs/SupervisorPatch.mjs.map +1 -1
- package/_mjs/TExit/definition.mjs.map +1 -1
- package/_mjs/TFuture/api.mjs +17 -11
- 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/TFuture/definition.mjs.map +1 -1
- package/_mjs/TReentrantLock/api.mjs +32 -28
- package/_mjs/TReentrantLock/api.mjs.map +1 -1
- package/_mjs/TReentrantLock/definition.mjs +4 -4
- package/_mjs/TReentrantLock/definition.mjs.map +1 -1
- package/_mjs/TRef/api.mjs +218 -194
- package/_mjs/TRef/api.mjs.map +1 -1
- package/_mjs/TRef/definition.mjs +4 -4
- package/_mjs/TRef/definition.mjs.map +1 -1
- package/_mjs/TSemaphore/api.mjs +23 -19
- package/_mjs/TSemaphore/api.mjs.map +1 -1
- package/_mjs/TSemaphore/constructors.mjs +12 -2
- package/_mjs/TSemaphore/constructors.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +19 -17
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +19 -17
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/filterIO.mjs +14 -12
- package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/findIO.mjs +17 -15
- package/_mjs/collection/immutable/Conc/findIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/mapIO.mjs +10 -8
- package/_mjs/collection/immutable/Conc/mapIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/takeWhileIO.mjs +28 -26
- package/_mjs/collection/immutable/Conc/takeWhileIO.mjs.map +1 -1
- package/_mjs/data/Exit/foreachIO.mjs +5 -3
- package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
- package/_mjs/internal/Hub.mjs +13 -11
- package/_mjs/internal/Hub.mjs.map +1 -1
- package/_mjs/internal/IsFatal.mjs +18 -16
- package/_mjs/internal/IsFatal.mjs.map +1 -1
- package/_mjs/internal/MutableQueue.mjs +10 -8
- package/_mjs/internal/MutableQueue.mjs.map +1 -1
- package/_mjs/internal/StackTraceBuilder.mjs.map +1 -1
- package/_src/Cached/api.ts +2 -2
- package/_src/Channel/ChildExecutorDecision/api.ts +14 -17
- package/_src/Channel/UpstreamPullRequest/api.ts +11 -13
- package/_src/Channel/api/interruptWhen.ts +18 -17
- package/_src/Channel/api/mapOutIOC.ts +58 -58
- package/_src/Channel/api/mergeAll.ts +15 -16
- package/_src/Channel/api/mergeAllUnboundedWith.ts +15 -27
- package/_src/Channel/api/mergeAllWith.ts +114 -126
- package/_src/Channel/api/mergeMap.ts +8 -18
- package/_src/Channel/api/mergeWith.ts +154 -158
- package/_src/Channel/api/toPull.ts +1 -1
- package/_src/Channel/api/zipC.ts +52 -88
- package/_src/Channel/api.ts +345 -405
- package/_src/Channel/core-api.ts +75 -122
- package/_src/Channel/definition.ts +49 -7
- package/_src/Channel/internal/ChannelExecutor.ts +1 -5
- package/_src/Channel/internal/SingleProducerAsyncInput.ts +1 -3
- package/_src/Fiber/FiberContext.ts +13 -33
- package/_src/Fiber/api/collectAll.ts +1 -2
- package/_src/Fiber/api/evalOn.ts +11 -14
- package/_src/Fiber/api/evalOnIO.ts +10 -13
- package/_src/Fiber/api/interruptAll.ts +1 -2
- package/_src/Fiber/api/interruptAs.ts +6 -4
- package/_src/Fiber/api/interruptAsFork.ts +6 -4
- package/_src/Fiber/api/interruptFork.ts +1 -1
- package/_src/Fiber/api/mapFiber.ts +5 -7
- package/_src/Fiber/api/mapIO.ts +21 -21
- package/_src/Fiber/api/zipWith.ts +14 -17
- package/_src/Fiber/definition.ts +1 -15
- package/_src/Fiber.ts +1 -1
- package/_src/FiberRef/api/locallyScoped.ts +8 -6
- package/_src/FiberRef/api/locallyScopedWith.ts +5 -7
- package/_src/FiberRef/api.ts +50 -39
- package/_src/FiberRef.ts +0 -1
- package/_src/FiberRefs/api.ts +14 -12
- package/_src/FiberRefs/join.ts +37 -46
- package/_src/FiberState/definition.ts +1 -2
- package/_src/Future/api.ts +67 -53
- package/_src/Hub/constructors.ts +80 -0
- package/_src/Hub/definition.ts +95 -89
- package/_src/Hub/internal.ts +115 -165
- package/_src/Hub.ts +1 -1
- package/_src/IO/api/acquireRelease.ts +1 -1
- package/_src/IO/api/acquireReleaseExit.ts +1 -1
- package/_src/IO/api/bracket.ts +1 -1
- package/_src/IO/api/bracketExit.ts +1 -1
- package/_src/IO/api/clockWith.ts +0 -1
- package/_src/IO/api/concurrency.ts +5 -7
- package/_src/IO/api/consoleWith.ts +0 -2
- package/_src/IO/api/core-scope.ts +36 -33
- package/_src/IO/api/ensuringChildren.ts +8 -7
- package/_src/IO/api/environment.ts +24 -42
- package/_src/IO/api/foreachC.ts +24 -12
- package/_src/IO/api/foreachExec.ts +1 -1
- package/_src/IO/api/forkIn.ts +7 -9
- package/_src/IO/api/fulfill.ts +5 -3
- package/_src/IO/api/interrupt.ts +37 -40
- package/_src/IO/api/onExit.ts +8 -10
- package/_src/IO/api/onTermination.ts +12 -14
- package/_src/IO/api/provideLayer.ts +8 -10
- package/_src/IO/api/provideSomeLayer.ts +5 -14
- package/_src/IO/api/race.ts +19 -21
- package/_src/IO/api/raceFirst.ts +5 -7
- package/_src/IO/api/repeat.ts +3 -5
- package/_src/IO/api/retry.ts +19 -21
- package/_src/IO/api/schedule.ts +20 -21
- package/_src/IO/api/scoped.ts +2 -2
- package/_src/IO/api/sequenceT.ts +7 -1
- package/_src/IO/api/stateful.ts +0 -2
- package/_src/IO/api/supervised.ts +5 -7
- package/_src/IO/api/timeout.ts +10 -16
- package/_src/IO/api/withFinalizer.ts +5 -7
- package/_src/IO/api/withFinalizerExit.ts +6 -5
- package/_src/IO/api/withRuntimeConfig.ts +12 -14
- package/_src/IO/api/zipC.ts +57 -62
- package/_src/IO/api.ts +512 -539
- package/_src/IO/definition.ts +21 -9
- package/_src/IO/runtime.ts +0 -12
- package/_src/IO.ts +0 -1
- package/_src/Layer/MemoMap.ts +61 -63
- package/_src/Layer/api.ts +95 -104
- package/_src/Layer/definition.ts +0 -1
- package/_src/LogLevel.ts +24 -16
- package/_src/LogSpan.ts +16 -16
- package/_src/Logger/api.ts +18 -17
- package/_src/Logger/constructors.ts +9 -15
- package/_src/Queue/constructors.ts +22 -6
- package/_src/Queue/definition.ts +230 -81
- package/_src/Queue/internal.ts +9 -180
- package/_src/Queue/strategy.ts +9 -23
- package/_src/Queue.ts +1 -3
- package/_src/Ref/Atomic.ts +37 -4
- package/_src/Ref/Synchronized.ts +107 -0
- package/_src/Ref/constructors.ts +15 -0
- package/_src/Ref/definition.ts +86 -85
- package/_src/Ref.ts +1 -9
- package/_src/Reloadable/constructors.ts +2 -2
- package/_src/RuntimeConfig.ts +0 -2
- package/_src/STM/api/core-api.ts +32 -35
- package/_src/STM/api.ts +210 -200
- package/_src/STM/internal/Entry.ts +0 -10
- package/_src/STM/internal/Journal.ts +23 -26
- package/_src/STM.ts +0 -1
- package/_src/Schedule/Decision.ts +10 -8
- package/_src/Schedule/api/driver.ts +0 -4
- package/_src/Schedule/api.ts +419 -444
- package/_src/Schedule/definition.ts +0 -1
- package/_src/Scope/ReleaseMap/api/releaseAll.ts +23 -26
- package/_src/Scope/ReleaseMap/api.ts +77 -74
- package/_src/Scope/api.ts +16 -18
- package/_src/ScopedRef/api.ts +0 -3
- package/_src/ScopedRef/definition.ts +1 -2
- package/_src/Sink/api.ts +326 -357
- package/_src/State/api.ts +12 -8
- package/_src/State/internal.ts +1 -1
- package/_src/Stream/api/zipAllWith.ts +6 -5
- package/_src/Stream/api/zipWith.ts +5 -8
- package/_src/Stream/api/zipWithChunks.ts +6 -5
- package/_src/Stream/api.ts +1049 -1176
- package/_src/Stream/definition.ts +0 -2
- package/_src/Stream/internal/DebounceState.ts +16 -17
- package/_src/Stream/internal/Handoff.ts +31 -35
- package/_src/Stream/internal/Pull.ts +1 -2
- package/_src/Stream/internal/SinkEndReason.ts +13 -14
- package/_src/Stream/internal/Take.ts +21 -21
- package/_src/Stream/internal/util.ts +0 -2
- package/_src/SubscriptionRef.ts +44 -0
- package/_src/Supervisor/api.ts +18 -14
- package/_src/Supervisor/definition.ts +0 -1
- package/_src/SupervisorPatch.ts +10 -6
- package/_src/TExit/definition.ts +0 -8
- package/_src/TFuture/api.ts +23 -17
- package/_src/TFuture/definition.ts +0 -1
- package/_src/TReentrantLock/api.ts +14 -10
- package/_src/TReentrantLock/definition.ts +0 -7
- package/_src/TRef/api.ts +207 -209
- package/_src/TRef/definition.ts +0 -12
- package/_src/TSemaphore/api.ts +19 -18
- package/_src/TSemaphore/constructors.ts +7 -0
- package/_src/collection/immutable/Conc/dropUntilIO.ts +19 -21
- package/_src/collection/immutable/Conc/dropWhileIO.ts +21 -23
- package/_src/collection/immutable/Conc/filterIO.ts +15 -17
- package/_src/collection/immutable/Conc/findIO.ts +17 -19
- package/_src/collection/immutable/Conc/mapIO.ts +12 -10
- package/_src/collection/immutable/Conc/takeWhileIO.ts +27 -29
- package/_src/data/Exit/foreachIO.ts +8 -10
- package/_src/global.ts +7 -3
- package/_src/index.ts +3 -0
- package/_src/internal/Hub.ts +17 -27
- package/_src/internal/IsFatal.ts +14 -12
- package/_src/internal/MutableQueue.ts +8 -8
- package/_src/internal/StackTraceBuilder.ts +1 -2
- package/collection/immutable/Conc/dropUntilIO.d.ts +3 -3
- package/collection/immutable/Conc/dropWhileIO.d.ts +3 -3
- package/collection/immutable/Conc/filterIO.d.ts +3 -3
- package/collection/immutable/Conc/findIO.d.ts +2 -2
- package/collection/immutable/Conc/mapIO.d.ts +3 -3
- package/collection/immutable/Conc/takeWhileIO.d.ts +3 -3
- package/data/Exit/foreachIO.d.ts +3 -3
- package/global.d.ts +7 -3
- package/index.d.ts +3 -0
- package/internal/Hub.d.ts +2 -2
- package/internal/IsFatal.d.ts +3 -3
- package/internal/MutableQueue.d.ts +3 -3
- package/package.json +3 -3
- package/Hub/api.d.ts +0 -190
- package/Queue/api/dimapIO.d.ts +0 -41
- package/Queue/api/filterInputIO.d.ts +0 -33
- package/Queue/api/filterOutputIO.d.ts +0 -31
- package/Queue/api/operations.d.ts +0 -82
- package/Queue/api/poll.d.ts +0 -9
- package/Queue/api/takeBetween.d.ts +0 -11
- package/Queue/api/zipWithIO.d.ts +0 -44
- package/Queue/api.d.ts +0 -7
- package/Ref/Atomic/Atomic.d.ts +0 -18
- package/Ref/Atomic/api.d.ts +0 -53
- package/Ref/Derived.d.ts +0 -14
- package/Ref/DerivedAll.d.ts +0 -14
- package/Ref/Synchronized/api.d.ts +0 -100
- package/Ref/Synchronized/constructors.d.ts +0 -8
- package/Ref/Synchronized/definition.d.ts +0 -42
- package/Ref/api/collect.d.ts +0 -11
- package/Ref/api/dimap.d.ts +0 -56
- package/Ref/api/filter.d.ts +0 -20
- package/Ref/api/get.d.ts +0 -9
- package/Ref/api/match.d.ts +0 -13
- package/Ref/api/matchAll.d.ts +0 -11
- package/Ref/api/modify.d.ts +0 -79
- package/Ref/api/set.d.ts +0 -10
- package/Ref/api.d.ts +0 -23
- package/_cjs/Hub/api.cjs +0 -456
- package/_cjs/Hub/api.cjs.map +0 -1
- package/_cjs/Queue/api/dimapIO.cjs +0 -120
- package/_cjs/Queue/api/dimapIO.cjs.map +0 -1
- package/_cjs/Queue/api/filterInputIO.cjs +0 -84
- package/_cjs/Queue/api/filterInputIO.cjs.map +0 -1
- package/_cjs/Queue/api/filterOutputIO.cjs +0 -89
- package/_cjs/Queue/api/filterOutputIO.cjs.map +0 -1
- package/_cjs/Queue/api/operations.cjs +0 -147
- package/_cjs/Queue/api/operations.cjs.map +0 -1
- package/_cjs/Queue/api/poll.cjs +0 -27
- package/_cjs/Queue/api/poll.cjs.map +0 -1
- package/_cjs/Queue/api/takeBetween.cjs +0 -57
- package/_cjs/Queue/api/takeBetween.cjs.map +0 -1
- package/_cjs/Queue/api/zipWithIO.cjs +0 -97
- package/_cjs/Queue/api/zipWithIO.cjs.map +0 -1
- package/_cjs/Queue/api.cjs +0 -97
- package/_cjs/Queue/api.cjs.map +0 -1
- package/_cjs/Ref/Atomic/Atomic.cjs +0 -64
- package/_cjs/Ref/Atomic/Atomic.cjs.map +0 -1
- package/_cjs/Ref/Atomic/api.cjs +0 -156
- package/_cjs/Ref/Atomic/api.cjs.map +0 -1
- package/_cjs/Ref/Derived.cjs +0 -55
- package/_cjs/Ref/Derived.cjs.map +0 -1
- package/_cjs/Ref/DerivedAll.cjs +0 -55
- package/_cjs/Ref/DerivedAll.cjs.map +0 -1
- package/_cjs/Ref/Synchronized/api.cjs +0 -196
- package/_cjs/Ref/Synchronized/api.cjs.map +0 -1
- package/_cjs/Ref/Synchronized/constructors.cjs +0 -32
- package/_cjs/Ref/Synchronized/constructors.cjs.map +0 -1
- package/_cjs/Ref/Synchronized/definition.cjs +0 -88
- package/_cjs/Ref/Synchronized/definition.cjs.map +0 -1
- package/_cjs/Ref/api/collect.cjs +0 -31
- package/_cjs/Ref/api/collect.cjs.map +0 -1
- package/_cjs/Ref/api/dimap.cjs +0 -110
- package/_cjs/Ref/api/dimap.cjs.map +0 -1
- package/_cjs/Ref/api/filter.cjs +0 -45
- package/_cjs/Ref/api/filter.cjs.map +0 -1
- package/_cjs/Ref/api/get.cjs +0 -20
- package/_cjs/Ref/api/get.cjs.map +0 -1
- package/_cjs/Ref/api/match.cjs +0 -26
- package/_cjs/Ref/api/match.cjs.map +0 -1
- package/_cjs/Ref/api/matchAll.cjs +0 -24
- package/_cjs/Ref/api/matchAll.cjs.map +0 -1
- package/_cjs/Ref/api/modify.cjs +0 -239
- package/_cjs/Ref/api/modify.cjs.map +0 -1
- package/_cjs/Ref/api/set.cjs +0 -21
- package/_cjs/Ref/api/set.cjs.map +0 -1
- package/_cjs/Ref/api.cjs +0 -158
- package/_cjs/Ref/api.cjs.map +0 -1
- package/_mjs/Hub/api.mjs +0 -384
- package/_mjs/Hub/api.mjs.map +0 -1
- package/_mjs/Queue/api/dimapIO.mjs +0 -97
- package/_mjs/Queue/api/dimapIO.mjs.map +0 -1
- package/_mjs/Queue/api/filterInputIO.mjs +0 -63
- package/_mjs/Queue/api/filterInputIO.mjs.map +0 -1
- package/_mjs/Queue/api/filterOutputIO.mjs +0 -68
- package/_mjs/Queue/api/filterOutputIO.mjs.map +0 -1
- package/_mjs/Queue/api/operations.mjs +0 -122
- package/_mjs/Queue/api/operations.mjs.map +0 -1
- package/_mjs/Queue/api/poll.mjs +0 -14
- package/_mjs/Queue/api/poll.mjs.map +0 -1
- package/_mjs/Queue/api/takeBetween.mjs +0 -43
- package/_mjs/Queue/api/takeBetween.mjs.map +0 -1
- package/_mjs/Queue/api/zipWithIO.mjs +0 -74
- package/_mjs/Queue/api/zipWithIO.mjs.map +0 -1
- package/_mjs/Queue/api.mjs +0 -9
- package/_mjs/Queue/api.mjs.map +0 -1
- package/_mjs/Ref/Atomic/Atomic.mjs +0 -47
- package/_mjs/Ref/Atomic/Atomic.mjs.map +0 -1
- package/_mjs/Ref/Atomic/api.mjs +0 -127
- package/_mjs/Ref/Atomic/api.mjs.map +0 -1
- package/_mjs/Ref/Derived.mjs +0 -35
- package/_mjs/Ref/Derived.mjs.map +0 -1
- package/_mjs/Ref/DerivedAll.mjs +0 -35
- package/_mjs/Ref/DerivedAll.mjs.map +0 -1
- package/_mjs/Ref/Synchronized/api.mjs +0 -154
- package/_mjs/Ref/Synchronized/api.mjs.map +0 -1
- package/_mjs/Ref/Synchronized/constructors.mjs +0 -15
- package/_mjs/Ref/Synchronized/constructors.mjs.map +0 -1
- package/_mjs/Ref/Synchronized/definition.mjs +0 -66
- package/_mjs/Ref/Synchronized/definition.mjs.map +0 -1
- package/_mjs/Ref/api/collect.mjs +0 -17
- package/_mjs/Ref/api/collect.mjs.map +0 -1
- package/_mjs/Ref/api/dimap.mjs +0 -84
- package/_mjs/Ref/api/dimap.mjs.map +0 -1
- package/_mjs/Ref/api/filter.mjs +0 -29
- package/_mjs/Ref/api/filter.mjs.map +0 -1
- package/_mjs/Ref/api/get.mjs +0 -13
- package/_mjs/Ref/api/get.mjs.map +0 -1
- package/_mjs/Ref/api/match.mjs +0 -18
- package/_mjs/Ref/api/match.mjs.map +0 -1
- package/_mjs/Ref/api/matchAll.mjs +0 -16
- package/_mjs/Ref/api/matchAll.mjs.map +0 -1
- package/_mjs/Ref/api/modify.mjs +0 -204
- package/_mjs/Ref/api/modify.mjs.map +0 -1
- package/_mjs/Ref/api/set.mjs +0 -14
- package/_mjs/Ref/api/set.mjs.map +0 -1
- package/_mjs/Ref/api.mjs +0 -34
- package/_mjs/Ref/api.mjs.map +0 -1
- package/_src/Hub/api.ts +0 -461
- package/_src/Queue/api/dimapIO.ts +0 -130
- package/_src/Queue/api/filterInputIO.ts +0 -75
- package/_src/Queue/api/filterOutputIO.ts +0 -76
- package/_src/Queue/api/operations.ts +0 -139
- package/_src/Queue/api/poll.ts +0 -14
- package/_src/Queue/api/takeBetween.ts +0 -45
- package/_src/Queue/api/zipWithIO.ts +0 -99
- package/_src/Queue/api.ts +0 -9
- package/_src/Ref/Atomic/Atomic.ts +0 -56
- package/_src/Ref/Atomic/api.ts +0 -124
- package/_src/Ref/Derived.ts +0 -71
- package/_src/Ref/DerivedAll.ts +0 -75
- package/_src/Ref/Synchronized/api.ts +0 -249
- package/_src/Ref/Synchronized/constructors.ts +0 -12
- package/_src/Ref/Synchronized/definition.ts +0 -126
- package/_src/Ref/api/collect.ts +0 -19
- package/_src/Ref/api/dimap.ts +0 -115
- package/_src/Ref/api/filter.ts +0 -35
- package/_src/Ref/api/get.ts +0 -17
- package/_src/Ref/api/match.ts +0 -24
- package/_src/Ref/api/matchAll.ts +0 -23
- package/_src/Ref/api/modify.ts +0 -237
- package/_src/Ref/api/set.ts +0 -19
- package/_src/Ref/api.ts +0 -39
package/_src/Sink/api.ts
CHANGED
|
@@ -5,82 +5,83 @@ import { MergeDecision } from "../Channel/internal/MergeDecision.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Like {@link zip}, but keeps only the result from this sink
|
|
7
7
|
*
|
|
8
|
-
* @tsplus
|
|
8
|
+
* @tsplus pipeable fncts.io.Sink apFirst
|
|
9
9
|
*/
|
|
10
|
-
export function apFirst<
|
|
11
|
-
self: Sink<R, E, In, L, Z>,
|
|
10
|
+
export function apFirst<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(
|
|
12
11
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
13
12
|
__tsplusTrace?: string,
|
|
14
|
-
)
|
|
15
|
-
return
|
|
13
|
+
) {
|
|
14
|
+
return <R, E, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In & In1, L | L1, Z> => {
|
|
15
|
+
return self.zipWith(that, (z, _) => z);
|
|
16
|
+
};
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Like {@link zipC}, but keeps only the result from this sink
|
|
20
21
|
*
|
|
21
|
-
* @tsplus
|
|
22
|
+
* @tsplus pipeable fncts.io.Sink apFirstC
|
|
22
23
|
*/
|
|
23
|
-
export function apFirstC<
|
|
24
|
-
self: Sink<R, E, In, L, Z>,
|
|
24
|
+
export function apFirstC<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(
|
|
25
25
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
26
26
|
__tsplusTrace?: string,
|
|
27
|
-
)
|
|
28
|
-
return
|
|
27
|
+
) {
|
|
28
|
+
return <R, E, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In & In1, L | L1, Z> => {
|
|
29
|
+
return self.zipWithC(that, (z, _) => z);
|
|
30
|
+
};
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
34
|
* Like {@link zip}, but keeps only the result from the `that` sink
|
|
33
35
|
*
|
|
34
|
-
* @tsplus
|
|
36
|
+
* @tsplus pipeable fncts.io.Sink apSecond
|
|
35
37
|
*/
|
|
36
|
-
export function apSecond<
|
|
37
|
-
self: Sink<R, E, In, L, Z>,
|
|
38
|
+
export function apSecond<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(
|
|
38
39
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
39
40
|
__tsplusTrace?: string,
|
|
40
|
-
)
|
|
41
|
-
return
|
|
41
|
+
) {
|
|
42
|
+
return <R, E, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In & In1, L | L1, Z1> => {
|
|
43
|
+
return self.zipWith(that, (_, z1) => z1);
|
|
44
|
+
};
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
/**
|
|
45
48
|
* Like {@link zipC}, but keeps only the result from the `that` sink
|
|
46
49
|
*
|
|
47
|
-
* @tsplus
|
|
50
|
+
* @tsplus pipeable fncts.io.Sink apSecondC
|
|
48
51
|
*/
|
|
49
|
-
export function apSecondC<
|
|
50
|
-
self: Sink<R, E, In, L, Z>,
|
|
52
|
+
export function apSecondC<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(
|
|
51
53
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
52
54
|
__tsplusTrace?: string,
|
|
53
|
-
)
|
|
54
|
-
return
|
|
55
|
+
) {
|
|
56
|
+
return <R, E, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In & In1, L | L1, Z1> => {
|
|
57
|
+
return self.zipWithC(that, (_, z1) => z1);
|
|
58
|
+
};
|
|
55
59
|
}
|
|
56
60
|
|
|
57
61
|
/**
|
|
58
62
|
* Replaces this sink's result with the provided value.
|
|
59
63
|
*
|
|
60
|
-
* @tsplus
|
|
64
|
+
* @tsplus pipeable fncts.io.Sink as
|
|
61
65
|
*/
|
|
62
|
-
export function as<
|
|
63
|
-
self: Sink<R, E, In, L, Z
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
): Sink<R, E, In, L, Z1> {
|
|
67
|
-
return self.map(() => z());
|
|
66
|
+
export function as<Z1>(z: Lazy<Z1>, __tsplusTrace?: string) {
|
|
67
|
+
return <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R, E, In, L, Z1> => {
|
|
68
|
+
return self.map(() => z());
|
|
69
|
+
};
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
/**
|
|
71
73
|
* Repeatedly runs the sink and accumulates its results into a chunk
|
|
72
74
|
*
|
|
73
|
-
* @tsplus
|
|
75
|
+
* @tsplus pipeable fncts.io.Sink collectAll
|
|
74
76
|
*/
|
|
75
|
-
export function collectAll
|
|
76
|
-
self: Sink<R, E, In, L, Z
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
);
|
|
77
|
+
export function collectAll(__tsplusTrace?: string) {
|
|
78
|
+
return <R, E, In extends L, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R, E, In, L, Conc<Z>> => {
|
|
79
|
+
return self.collectAllWhileWith(
|
|
80
|
+
Conc.empty<Z>(),
|
|
81
|
+
() => true,
|
|
82
|
+
(s, z) => s.append(z),
|
|
83
|
+
);
|
|
84
|
+
};
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
/**
|
|
@@ -88,43 +89,39 @@ export function collectAll<R, E, In extends L, L, Z>(
|
|
|
88
89
|
* `p`. The sink's results will be accumulated using the stepping function
|
|
89
90
|
* `f`.
|
|
90
91
|
*
|
|
91
|
-
* @tsplus
|
|
92
|
-
*/
|
|
93
|
-
export function collectAllWhileWith<
|
|
94
|
-
self: Sink<R, E, In, L, Z
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
)
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
);
|
|
119
|
-
} else {
|
|
120
|
-
return Channel.writeNow(leftovers.flatten).as(currentResult);
|
|
92
|
+
* @tsplus pipeable fncts.io.Sink collectAllWhileWith
|
|
93
|
+
*/
|
|
94
|
+
export function collectAllWhileWith<Z, S>(z: Lazy<S>, p: Predicate<Z>, f: (s: S, z: Z) => S, __tsplusTrace?: string) {
|
|
95
|
+
return <R, E, In extends L, L>(self: Sink<R, E, In, L, Z>): Sink<R, E, In, L, S> => {
|
|
96
|
+
return new Sink(
|
|
97
|
+
Channel.fromIO(Ref.make<Conc<In>>(Conc.empty()).zip(Ref.make(false))).flatMap(
|
|
98
|
+
([leftoversRef, upstreamDoneRef]) => {
|
|
99
|
+
const upstreamMarker: Channel<never, never, Conc<In>, unknown, never, Conc<In>, unknown> = Channel.readWith(
|
|
100
|
+
(inp) => Channel.writeNow(inp) > upstreamMarker,
|
|
101
|
+
Channel.failNow,
|
|
102
|
+
(x) => Channel.fromIO(upstreamDoneRef.set(true)).as(x),
|
|
103
|
+
);
|
|
104
|
+
function loop(currentResult: S, __tsplusTrace?: string): Channel<R, never, Conc<In>, unknown, E, Conc<L>, S> {
|
|
105
|
+
return self.channel.collectElements.matchChannel(Channel.failNow, ([leftovers, doneValue]) => {
|
|
106
|
+
if (p(doneValue)) {
|
|
107
|
+
return (
|
|
108
|
+
Channel.fromIO(leftoversRef.set(leftovers.flatten as Conc<In>)) >
|
|
109
|
+
Channel.fromIO(upstreamDoneRef.get).flatMap((upstreamDone) => {
|
|
110
|
+
const accumulatedResult = f(currentResult, doneValue);
|
|
111
|
+
if (upstreamDone) return Channel.writeNow(leftovers.flatten).as(accumulatedResult);
|
|
112
|
+
else return loop(accumulatedResult);
|
|
113
|
+
})
|
|
114
|
+
);
|
|
115
|
+
} else {
|
|
116
|
+
return Channel.writeNow(leftovers.flatten).as(currentResult);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
121
119
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
);
|
|
120
|
+
return upstreamMarker.pipeTo(Channel.bufferChunk(leftoversRef)).pipeTo(loop(z()));
|
|
121
|
+
},
|
|
122
|
+
),
|
|
123
|
+
);
|
|
124
|
+
};
|
|
128
125
|
}
|
|
129
126
|
|
|
130
127
|
/**
|
|
@@ -143,124 +140,119 @@ export function collectLeftover<R, E, In, L, Z>(
|
|
|
143
140
|
/**
|
|
144
141
|
* Transforms this sink's input elements.
|
|
145
142
|
*
|
|
146
|
-
* @tsplus
|
|
143
|
+
* @tsplus pipeable fncts.io.Sink contramap
|
|
147
144
|
*/
|
|
148
|
-
export function contramap<
|
|
149
|
-
self: Sink<R, E, In, L, Z
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
): Sink<R, E, In1, L, Z> {
|
|
153
|
-
return self.contramapChunks((chunk) => chunk.map(f));
|
|
145
|
+
export function contramap<In, In1>(f: (inp: In1) => In, __tsplusTrace?: string) {
|
|
146
|
+
return <R, E, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R, E, In1, L, Z> => {
|
|
147
|
+
return self.contramapChunks((chunk) => chunk.map(f));
|
|
148
|
+
};
|
|
154
149
|
}
|
|
155
150
|
|
|
156
151
|
/**
|
|
157
152
|
* Transforms this sink's input chunks. `f` must preserve chunking-invariance
|
|
158
153
|
*
|
|
159
|
-
* @tsplus
|
|
154
|
+
* @tsplus pipeable fncts.io.Sink contramapChunks
|
|
160
155
|
*/
|
|
161
|
-
export function contramapChunks<
|
|
162
|
-
self: Sink<R, E, In, L, Z
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
);
|
|
171
|
-
return new Sink(loop >>> self.channel);
|
|
156
|
+
export function contramapChunks<In, In1>(f: (chunk: Conc<In1>) => Conc<In>, __tsplusTrace?: string) {
|
|
157
|
+
return <R, E, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R, E, In1, L, Z> => {
|
|
158
|
+
const loop: Channel<R, never, Conc<In1>, unknown, never, Conc<In>, unknown> = Channel.readWith(
|
|
159
|
+
(chunk) => Channel.writeNow(f(chunk)) > loop,
|
|
160
|
+
Channel.failNow,
|
|
161
|
+
Channel.succeedNow,
|
|
162
|
+
);
|
|
163
|
+
return new Sink(loop >>> self.channel);
|
|
164
|
+
};
|
|
172
165
|
}
|
|
173
166
|
|
|
174
167
|
/**
|
|
175
168
|
* Effectfully transforms this sink's input chunks. `f` must preserve
|
|
176
169
|
* chunking-invariance
|
|
177
170
|
*
|
|
178
|
-
* @tsplus
|
|
171
|
+
* @tsplus pipeable fncts.io.Sink contramapChunksIO
|
|
179
172
|
*/
|
|
180
|
-
export function contramapChunksIO<
|
|
181
|
-
self: Sink<R, E, In, L, Z>,
|
|
173
|
+
export function contramapChunksIO<In, R1, E1, In1>(
|
|
182
174
|
f: (chunk: Conc<In1>) => IO<R1, E1, Conc<In>>,
|
|
183
175
|
__tsplusTrace?: string,
|
|
184
|
-
)
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
176
|
+
) {
|
|
177
|
+
return <R, E, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In1, L, Z> => {
|
|
178
|
+
const loop: Channel<R | R1, never, Conc<In1>, unknown, E | E1, Conc<In>, unknown> = Channel.readWith(
|
|
179
|
+
(chunk) => Channel.fromIO(f(chunk)).flatMap(Channel.writeNow) > loop,
|
|
180
|
+
Channel.failNow,
|
|
181
|
+
Channel.succeedNow,
|
|
182
|
+
);
|
|
183
|
+
return new Sink(loop.pipeToOrFail(self.channel));
|
|
184
|
+
};
|
|
191
185
|
}
|
|
192
186
|
|
|
193
187
|
/**
|
|
194
188
|
* Effectfully transforms this sink's input elements.
|
|
195
189
|
*
|
|
196
|
-
* @tsplus
|
|
190
|
+
* @tsplus pipeable fncts.io.Sink contramapIO
|
|
197
191
|
*/
|
|
198
|
-
export function contramapIO<
|
|
199
|
-
self: Sink<R, E, In, L, Z
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
): Sink<R | R1, E | E1, In1, L, Z> {
|
|
203
|
-
return self.contramapChunksIO((chunk) => chunk.mapIO(f));
|
|
192
|
+
export function contramapIO<In, R1, E1, In1>(f: (inp: In1) => IO<R1, E1, In>, __tsplusTrace?: string) {
|
|
193
|
+
return <R, E, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In1, L, Z> => {
|
|
194
|
+
return self.contramapChunksIO((chunk) => chunk.mapIO(f));
|
|
195
|
+
};
|
|
204
196
|
}
|
|
205
197
|
|
|
206
198
|
/**
|
|
207
199
|
* Transforms both inputs and result of this sink using the provided
|
|
208
200
|
* functions.
|
|
209
201
|
*
|
|
210
|
-
* @tsplus
|
|
202
|
+
* @tsplus pipeable fncts.io.Sink dimap
|
|
211
203
|
*/
|
|
212
|
-
export function dimap<
|
|
213
|
-
self: Sink<R, E, In, L, Z
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
__tsplusTrace?: string,
|
|
217
|
-
): Sink<R, E, In1, L, Z1> {
|
|
218
|
-
return self.contramap(f).map(g);
|
|
204
|
+
export function dimap<In, Z, In1, Z1>(f: (inp: In1) => In, g: (z: Z) => Z1, __tsplusTrace?: string) {
|
|
205
|
+
return <R, E, L>(self: Sink<R, E, In, L, Z>): Sink<R, E, In1, L, Z1> => {
|
|
206
|
+
return self.contramap(f).map(g);
|
|
207
|
+
};
|
|
219
208
|
}
|
|
220
209
|
|
|
221
210
|
/**
|
|
222
211
|
* Transforms both input chunks and result of this sink using the provided
|
|
223
212
|
* functions.
|
|
224
213
|
*
|
|
225
|
-
* @tsplus
|
|
214
|
+
* @tsplus pipeable fncts.io.Sink dimapChunks
|
|
226
215
|
*/
|
|
227
|
-
export function dimapChunks<
|
|
228
|
-
self: Sink<R, E, In, L, Z>,
|
|
216
|
+
export function dimapChunks<In, Z, In1, Z1>(
|
|
229
217
|
f: (chunk: Conc<In1>) => Conc<In>,
|
|
230
218
|
g: (z: Z) => Z1,
|
|
231
219
|
__tsplusTrace?: string,
|
|
232
|
-
)
|
|
233
|
-
return self
|
|
220
|
+
) {
|
|
221
|
+
return <R, E, L>(self: Sink<R, E, In, L, Z>): Sink<R, E, In1, L, Z1> => {
|
|
222
|
+
return self.contramapChunks(f).map(g);
|
|
223
|
+
};
|
|
234
224
|
}
|
|
235
225
|
|
|
236
226
|
/**
|
|
237
227
|
* Effectfully transforms both input chunks and result of this sink using the
|
|
238
228
|
* provided functions. `f` and `g` must preserve chunking-invariance
|
|
239
229
|
*
|
|
240
|
-
* @tsplus
|
|
230
|
+
* @tsplus pipeable fncts.io.Sink dimapChunksIO
|
|
241
231
|
*/
|
|
242
|
-
export function dimapChunksIO<
|
|
243
|
-
self: Sink<R, E, In, L, Z>,
|
|
232
|
+
export function dimapChunksIO<In, Z, R1, E1, In1, R2, E2, Z1>(
|
|
244
233
|
f: (chunk: Conc<In1>) => IO<R1, E1, Conc<In>>,
|
|
245
234
|
g: (z: Z) => IO<R2, E2, Z1>,
|
|
246
235
|
__tsplusTrace?: string,
|
|
247
|
-
)
|
|
248
|
-
return self
|
|
236
|
+
) {
|
|
237
|
+
return <R, E, L>(self: Sink<R, E, In, L, Z>): Sink<R | R1 | R2, E | E1 | E2, In1, L, Z1> => {
|
|
238
|
+
return self.contramapChunksIO(f).mapIO(g);
|
|
239
|
+
};
|
|
249
240
|
}
|
|
250
241
|
|
|
251
242
|
/**
|
|
252
243
|
* Effectfully transforms both inputs and result of this sink using the
|
|
253
244
|
* provided functions.
|
|
254
245
|
*
|
|
255
|
-
* @tsplus
|
|
246
|
+
* @tsplus pipeable fncts.io.Sink dimapIO
|
|
256
247
|
*/
|
|
257
|
-
export function dimapIO<
|
|
258
|
-
self: Sink<R, E, In, L, Z>,
|
|
248
|
+
export function dimapIO<In, Z, R1, E1, In1, R2, E2, Z1>(
|
|
259
249
|
f: (inp: In1) => IO<R1, E1, In>,
|
|
260
250
|
g: (z: Z) => IO<R2, E2, Z1>,
|
|
261
251
|
__tsplusTrace?: string,
|
|
262
|
-
)
|
|
263
|
-
return self
|
|
252
|
+
) {
|
|
253
|
+
return <R, E, L>(self: Sink<R, E, In, L, Z>): Sink<R | R1 | R2, E | E1 | E2, In1, L, Z1> => {
|
|
254
|
+
return self.contramapIO(f).mapIO(g);
|
|
255
|
+
};
|
|
264
256
|
}
|
|
265
257
|
|
|
266
258
|
/**
|
|
@@ -488,44 +480,40 @@ export function filterInputIO<R, E, In, L, Z, R1, E1>(
|
|
|
488
480
|
/**
|
|
489
481
|
* Creates a sink that produces values until one verifies the predicate `f`.
|
|
490
482
|
*
|
|
491
|
-
* @tsplus
|
|
492
|
-
*/
|
|
493
|
-
export function findIO<
|
|
494
|
-
self: Sink<R, E, In, L, Z
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
Channel
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
return (upstreamMarker >>> Channel.bufferChunk(leftoversRef)) >>> loop;
|
|
527
|
-
}),
|
|
528
|
-
);
|
|
483
|
+
* @tsplus pipeable fncts.io.Sink findIO
|
|
484
|
+
*/
|
|
485
|
+
export function findIO<Z, R1, E1>(f: (z: Z) => IO<R1, E1, boolean>, __tsplusTrace?: string) {
|
|
486
|
+
return <R, E, In extends L, L>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In, L, Maybe<Z>> => {
|
|
487
|
+
return new Sink(
|
|
488
|
+
Channel.fromIO(Ref.make(Conc.empty<In>()).zip(Ref.make(false))).flatMap(([leftoversRef, upstreamDoneRef]) => {
|
|
489
|
+
const upstreamMarker: Channel<never, never, Conc<In>, unknown, never, Conc<In>, unknown> = Channel.readWith(
|
|
490
|
+
(inp) => Channel.writeNow(inp) > upstreamMarker,
|
|
491
|
+
Channel.failNow,
|
|
492
|
+
(x) => Channel.fromIO(upstreamDoneRef.set(true)).as(x),
|
|
493
|
+
);
|
|
494
|
+
const loop: Channel<
|
|
495
|
+
R | R1,
|
|
496
|
+
never,
|
|
497
|
+
Conc<In>,
|
|
498
|
+
unknown,
|
|
499
|
+
E | E1,
|
|
500
|
+
Conc<L>,
|
|
501
|
+
Maybe<Z>
|
|
502
|
+
> = self.channel.collectElements.matchChannel(Channel.failNow, ([leftovers, doneValue]) =>
|
|
503
|
+
Channel.fromIO(f(doneValue)).flatMap(
|
|
504
|
+
(satisfied) =>
|
|
505
|
+
Channel.fromIO(leftoversRef.set(leftovers.flatten as Conc<In>)) >
|
|
506
|
+
Channel.fromIO(upstreamDoneRef.get).flatMap((upstreamDone) => {
|
|
507
|
+
if (satisfied) return Channel.writeNow(leftovers.flatten).as(Just(doneValue));
|
|
508
|
+
else if (upstreamDone) return Channel.writeNow(leftovers.flatten).as(Nothing());
|
|
509
|
+
else return loop;
|
|
510
|
+
}),
|
|
511
|
+
),
|
|
512
|
+
);
|
|
513
|
+
return (upstreamMarker >>> Channel.bufferChunk(leftoversRef)) >>> loop;
|
|
514
|
+
}),
|
|
515
|
+
);
|
|
516
|
+
};
|
|
529
517
|
}
|
|
530
518
|
|
|
531
519
|
/**
|
|
@@ -535,14 +523,15 @@ export function findIO<R, E, In extends L, L, Z, R1, E1>(
|
|
|
535
523
|
*
|
|
536
524
|
* This function essentially runs sinks in sequence.
|
|
537
525
|
*
|
|
538
|
-
* @tsplus
|
|
526
|
+
* @tsplus pipeable fncts.io.Sink flatMap
|
|
539
527
|
*/
|
|
540
|
-
export function flatMap<
|
|
541
|
-
self: Sink<R, E, In, L, Z>,
|
|
528
|
+
export function flatMap<In, Z, R1, E1, In1 extends In, L1, Z1>(
|
|
542
529
|
f: (z: Z) => Sink<R1, E1, In1, L1, Z1>,
|
|
543
530
|
__tsplusTrace?: string,
|
|
544
|
-
)
|
|
545
|
-
return self
|
|
531
|
+
) {
|
|
532
|
+
return <R, E, L>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In1, L | L1, Z1> => {
|
|
533
|
+
return self.matchSink(Sink.failNow, f);
|
|
534
|
+
};
|
|
546
535
|
}
|
|
547
536
|
|
|
548
537
|
/**
|
|
@@ -602,10 +591,7 @@ function fromPushPull<R, E, In, L, Z>(
|
|
|
602
591
|
*
|
|
603
592
|
* @tsplus static fncts.io.SinkOps fromQueue
|
|
604
593
|
*/
|
|
605
|
-
export function fromQueue<In>(
|
|
606
|
-
queue: Lazy<Queue.Enqueue<In>>,
|
|
607
|
-
__tsplusTrace?: string,
|
|
608
|
-
): Sink<never, never, In, never, void> {
|
|
594
|
+
export function fromQueue<In>(queue: Lazy<Enqueue<In>>, __tsplusTrace?: string): Sink<never, never, In, never, void> {
|
|
609
595
|
return Sink.unwrap(IO.succeed(queue).map((queue) => Sink.foreachChunk((inp: Conc<In>) => queue.offerAll(inp))));
|
|
610
596
|
}
|
|
611
597
|
|
|
@@ -616,7 +602,7 @@ export function fromQueue<In>(
|
|
|
616
602
|
* @tsplus static fncts.io.SinkOps fromQueueWithShutdown
|
|
617
603
|
*/
|
|
618
604
|
export function fromQueueWithShutdown<In>(
|
|
619
|
-
queue: Lazy<
|
|
605
|
+
queue: Lazy<Enqueue<In>>,
|
|
620
606
|
__tsplusTrace?: string,
|
|
621
607
|
): Sink<never, never, In, never, void> {
|
|
622
608
|
return Sink.unwrapScoped(
|
|
@@ -793,7 +779,6 @@ export function makeForeachChunk<R, E, In>(
|
|
|
793
779
|
Channel.failCauseNow,
|
|
794
780
|
() => Channel.unit,
|
|
795
781
|
);
|
|
796
|
-
|
|
797
782
|
return new Sink(process);
|
|
798
783
|
}
|
|
799
784
|
|
|
@@ -846,7 +831,6 @@ export function makeForeachChunkWhile<R, E, In>(
|
|
|
846
831
|
Channel.failNow,
|
|
847
832
|
() => Channel.unit,
|
|
848
833
|
);
|
|
849
|
-
|
|
850
834
|
return new Sink(reader);
|
|
851
835
|
}
|
|
852
836
|
|
|
@@ -1190,12 +1174,10 @@ export function makeFoldWeightedDecompose<In, S>(
|
|
|
1190
1174
|
} else {
|
|
1191
1175
|
const elem = inp[idx];
|
|
1192
1176
|
const total = cost + costFn(s, elem);
|
|
1193
|
-
|
|
1194
1177
|
if (total <= max) {
|
|
1195
1178
|
return fold(inp, f(s, elem), max, true, total, idx + 1);
|
|
1196
1179
|
} else {
|
|
1197
1180
|
const decomposed = decompose(elem);
|
|
1198
|
-
|
|
1199
1181
|
if (decomposed.length <= 1 && !dirty) {
|
|
1200
1182
|
return [f(s, elem), total, true, inp.drop(idx + 1)];
|
|
1201
1183
|
} else if (decomposed.length <= 1 && dirty) {
|
|
@@ -1216,7 +1198,6 @@ export function makeFoldWeightedDecompose<In, S>(
|
|
|
1216
1198
|
return Channel.readWith(
|
|
1217
1199
|
(inp: Conc<In>) => {
|
|
1218
1200
|
const [nextS, nextCost, nextDirty, leftovers] = fold(inp, s, max, dirty, cost, 0);
|
|
1219
|
-
|
|
1220
1201
|
if (leftovers.isNonEmpty) {
|
|
1221
1202
|
return Channel.writeNow(leftovers) > Channel.succeedNow(nextS);
|
|
1222
1203
|
} else if (cost > max) {
|
|
@@ -1229,7 +1210,6 @@ export function makeFoldWeightedDecompose<In, S>(
|
|
|
1229
1210
|
(_: any) => Channel.succeedNow(s),
|
|
1230
1211
|
);
|
|
1231
1212
|
}
|
|
1232
|
-
|
|
1233
1213
|
return new Sink(go(z(), 0, false, max()));
|
|
1234
1214
|
});
|
|
1235
1215
|
}
|
|
@@ -1311,7 +1291,6 @@ export function makeFoldWeightedDecomposeIO<R, E, In, S, R1, E1, R2, E2>(
|
|
|
1311
1291
|
(_: any) => Channel.succeedNow(s),
|
|
1312
1292
|
);
|
|
1313
1293
|
}
|
|
1314
|
-
|
|
1315
1294
|
return new Sink(go(z(), 0, false, max()));
|
|
1316
1295
|
});
|
|
1317
1296
|
}
|
|
@@ -1363,40 +1342,34 @@ export function makeFoldWeightedIO<R, E, In, S, R1, E1>(
|
|
|
1363
1342
|
/**
|
|
1364
1343
|
* Transforms this sink's result.
|
|
1365
1344
|
*
|
|
1366
|
-
* @tsplus
|
|
1345
|
+
* @tsplus pipeable fncts.io.Sink map
|
|
1367
1346
|
*/
|
|
1368
|
-
export function
|
|
1369
|
-
self: Sink<R, E, In, L, Z
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
): Sink<R, E, In, L, Z1> {
|
|
1373
|
-
return new Sink(self.channel.map(f));
|
|
1347
|
+
export function map<Z, Z1>(f: (z: Z) => Z1, __tsplusTrace?: string) {
|
|
1348
|
+
return <R, E, In, L>(self: Sink<R, E, In, L, Z>): Sink<R, E, In, L, Z1> => {
|
|
1349
|
+
return new Sink(self.channel.map(f));
|
|
1350
|
+
};
|
|
1374
1351
|
}
|
|
1375
1352
|
|
|
1376
1353
|
/**
|
|
1377
1354
|
* Transforms the errors emitted by this sink using `f`.
|
|
1378
1355
|
*
|
|
1379
|
-
* @tsplus
|
|
1356
|
+
* @tsplus pipeable fncts.io.Sink mapError
|
|
1380
1357
|
*/
|
|
1381
|
-
export function
|
|
1382
|
-
self: Sink<R, E, In, L, Z
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
): Sink<R, E1, In, L, Z> {
|
|
1386
|
-
return new Sink(self.channel.mapError(f));
|
|
1358
|
+
export function mapError<E, E1>(f: (e: E) => E1, __tsplusTrace?: string) {
|
|
1359
|
+
return <R, In, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R, E1, In, L, Z> => {
|
|
1360
|
+
return new Sink(self.channel.mapError(f));
|
|
1361
|
+
};
|
|
1387
1362
|
}
|
|
1388
1363
|
|
|
1389
1364
|
/**
|
|
1390
1365
|
* Effectfully transforms this sink's result.
|
|
1391
1366
|
*
|
|
1392
|
-
* @tsplus
|
|
1367
|
+
* @tsplus pipeable fncts.io.Sink mapIO
|
|
1393
1368
|
*/
|
|
1394
|
-
export function
|
|
1395
|
-
self: Sink<R, E, In, L, Z
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
): Sink<R | R1, E | E1, In, L, Z1> {
|
|
1399
|
-
return new Sink(self.channel.mapIO(f));
|
|
1369
|
+
export function mapIO<Z, R1, E1, Z1>(f: (z: Z) => IO<R1, E1, Z1>, __tsplusTrace?: string) {
|
|
1370
|
+
return <R, E, In, L>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In, L, Z1> => {
|
|
1371
|
+
return new Sink(self.channel.mapIO(f));
|
|
1372
|
+
};
|
|
1400
1373
|
}
|
|
1401
1374
|
|
|
1402
1375
|
/**
|
|
@@ -1406,127 +1379,124 @@ export function mapIO_<R, E, In, L, Z, R1, E1, Z1>(
|
|
|
1406
1379
|
*
|
|
1407
1380
|
* This function essentially runs sinks in sequence.
|
|
1408
1381
|
*
|
|
1409
|
-
* @tsplus
|
|
1382
|
+
* @tsplus pipeable fncts.io.Sink matchSink
|
|
1410
1383
|
*/
|
|
1411
|
-
export function
|
|
1412
|
-
self: Sink<R, E, In, L, Z>,
|
|
1384
|
+
export function matchSink<E, In, Z, R1, E1, In1 extends In, L1, Z1, R2, E2, In2 extends In, L2, Z2>(
|
|
1413
1385
|
onFailure: (e: E) => Sink<R1, E1, In1, L1, Z1>,
|
|
1414
1386
|
onSuccess: (z: Z) => Sink<R2, E2, In2, L2, Z2>,
|
|
1415
1387
|
__tsplusTrace?: string,
|
|
1416
|
-
)
|
|
1417
|
-
return
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
Channel.
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
(
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1388
|
+
) {
|
|
1389
|
+
return <R, L>(self: Sink<R, E, In, L, Z>): Sink<R | R1 | R2, E1 | E2, In1 & In2, L | L1 | L2, Z1 | Z2> => {
|
|
1390
|
+
return new Sink<R | R1 | R2, E1 | E2, In1 & In2, L | L1 | L2, Z1 | Z2>(
|
|
1391
|
+
self.channel.doneCollect.matchChannel(
|
|
1392
|
+
(e) => onFailure(e).channel,
|
|
1393
|
+
([leftovers, z]) =>
|
|
1394
|
+
Channel.defer(() => {
|
|
1395
|
+
const leftoversRef = new AtomicReference(leftovers.filter((c) => c.isNonEmpty));
|
|
1396
|
+
const refReader = Channel.succeed(leftoversRef.getAndSet(Conc.empty())).flatMap((chunk) =>
|
|
1397
|
+
Channel.writeChunk(chunk as unknown as Conc<Conc<In1 & In2>>),
|
|
1398
|
+
);
|
|
1399
|
+
const passthrough = Channel.id<never, Conc<In1 & In2>, unknown>();
|
|
1400
|
+
const continuationSink = (refReader > passthrough).pipeTo(onSuccess(z).channel);
|
|
1401
|
+
return continuationSink.doneCollect.flatMap(
|
|
1402
|
+
([newLeftovers, z1]) =>
|
|
1403
|
+
Channel.succeed(leftoversRef.get).flatMap(Channel.writeChunk) > Channel.writeChunk(newLeftovers).as(z1),
|
|
1404
|
+
);
|
|
1405
|
+
}),
|
|
1406
|
+
),
|
|
1407
|
+
);
|
|
1408
|
+
};
|
|
1435
1409
|
}
|
|
1436
1410
|
|
|
1437
1411
|
/**
|
|
1438
1412
|
* Switch to another sink in case of failure
|
|
1439
1413
|
*
|
|
1440
|
-
* @tsplus
|
|
1414
|
+
* @tsplus pipeable fncts.io.Sink orElse
|
|
1441
1415
|
*/
|
|
1442
|
-
export function orElse<
|
|
1443
|
-
self: Sink<R, E, In, L, Z
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
): Sink<R | R1, E | E1, In & In1, L | L1, Z | Z1> {
|
|
1447
|
-
return Sink.defer(new Sink<R | R1, E | E1, In & In1, L | L1, Z | Z1>(self.channel.orElse(that().channel)));
|
|
1416
|
+
export function orElse<R1, E1, In1, L1, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string) {
|
|
1417
|
+
return <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In & In1, L | L1, Z | Z1> => {
|
|
1418
|
+
return Sink.defer(new Sink<R | R1, E | E1, In & In1, L | L1, Z | Z1>(self.channel.orElse(that().channel)));
|
|
1419
|
+
};
|
|
1448
1420
|
}
|
|
1449
1421
|
|
|
1450
1422
|
/**
|
|
1451
1423
|
* Provides the sink with its required environment, which eliminates its
|
|
1452
1424
|
* dependency on `R`.
|
|
1453
1425
|
*
|
|
1454
|
-
* @tsplus
|
|
1426
|
+
* @tsplus pipeable fncts.io.Sink provideEnvironment
|
|
1455
1427
|
*/
|
|
1456
|
-
export function provideEnvironment<R
|
|
1457
|
-
self: Sink<R, E, In, L, Z
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
): Sink<never, E, In, L, Z> {
|
|
1461
|
-
return new Sink(self.channel.provideEnvironment(r));
|
|
1428
|
+
export function provideEnvironment<R>(r: Lazy<Environment<R>>, __tsplusTrace?: string) {
|
|
1429
|
+
return <E, In, L, Z>(self: Sink<R, E, In, L, Z>): Sink<never, E, In, L, Z> => {
|
|
1430
|
+
return new Sink(self.channel.provideEnvironment(r));
|
|
1431
|
+
};
|
|
1462
1432
|
}
|
|
1463
1433
|
|
|
1464
1434
|
/**
|
|
1465
1435
|
* Runs both sinks in parallel on the input, returning the result or the
|
|
1466
1436
|
* error from the one that finishes first.
|
|
1467
1437
|
*
|
|
1468
|
-
* @tsplus
|
|
1438
|
+
* @tsplus pipeable fncts.io.Sink race
|
|
1469
1439
|
*/
|
|
1470
|
-
export function race<
|
|
1471
|
-
self: Sink<R, E, In, L, Z
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
): Sink<R | R1, E | E1, In & In1, L | L1, Z | Z1> {
|
|
1475
|
-
return self.raceBoth(that).map((result) => result.value);
|
|
1440
|
+
export function race<R1, E1, In1, L1, Z1>(that: Lazy<Sink<R1, E1, In1, L1, Z1>>, __tsplusTrace?: string) {
|
|
1441
|
+
return <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In & In1, L | L1, Z | Z1> => {
|
|
1442
|
+
return self.raceBoth(that).map((result) => result.value);
|
|
1443
|
+
};
|
|
1476
1444
|
}
|
|
1477
1445
|
|
|
1478
1446
|
/**
|
|
1479
1447
|
* Runs both sinks in parallel on the input, returning the result or the error
|
|
1480
1448
|
* from the one that finishes first.
|
|
1481
1449
|
*
|
|
1482
|
-
* @tsplus
|
|
1450
|
+
* @tsplus pipeable fncts.io.Sink raceBoth
|
|
1483
1451
|
*/
|
|
1484
|
-
export function raceBoth<
|
|
1485
|
-
self: Sink<R, E, In, L, Z>,
|
|
1452
|
+
export function raceBoth<R1, E1, In1, L1, Z1>(
|
|
1486
1453
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
1487
1454
|
capacity: Lazy<number> = () => 16,
|
|
1488
1455
|
__tsplusTrace?: string,
|
|
1489
|
-
)
|
|
1490
|
-
return self
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1456
|
+
) {
|
|
1457
|
+
return <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In & In1, L | L1, Either<Z, Z1>> => {
|
|
1458
|
+
return self.raceWith(
|
|
1459
|
+
that,
|
|
1460
|
+
(selfDone) => MergeDecision.Done(IO.fromExitNow(selfDone).map(Either.left)),
|
|
1461
|
+
(thatDone) => MergeDecision.Done(IO.fromExitNow(thatDone).map(Either.right)),
|
|
1462
|
+
capacity,
|
|
1463
|
+
);
|
|
1464
|
+
};
|
|
1496
1465
|
}
|
|
1497
1466
|
|
|
1498
1467
|
/**
|
|
1499
1468
|
* Runs both sinks in parallel on the input, using the specified merge
|
|
1500
1469
|
* function as soon as one result or the other has been computed.
|
|
1501
1470
|
*
|
|
1502
|
-
* @tsplus
|
|
1471
|
+
* @tsplus pipeable fncts.io.Sink raceWith
|
|
1503
1472
|
*/
|
|
1504
|
-
export function raceWith<R, E,
|
|
1505
|
-
self: Sink<R, E, In, L, Z>,
|
|
1473
|
+
export function raceWith<R, E, Z, R1, E1, In1, L1, Z1, E2, Z2, E3, Z3>(
|
|
1506
1474
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
1507
1475
|
leftDone: (exit: Exit<E, Z>) => MergeDecision<R1, E1, Z1, E2, Z2>,
|
|
1508
1476
|
rightDone: (exit: Exit<E1, Z1>) => MergeDecision<R, E, Z, E3, Z3>,
|
|
1509
1477
|
capacity: Lazy<number> = () => 16,
|
|
1510
1478
|
__tsplusTrace?: string,
|
|
1511
|
-
)
|
|
1512
|
-
|
|
1513
|
-
const
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1479
|
+
) {
|
|
1480
|
+
return <In, L, R2, R3>(self: Sink<R, E, In, L, Z>): Sink<R | R1 | R2 | R3, E2 | E3, In & In1, L | L1, Z2 | Z3> => {
|
|
1481
|
+
const scoped = IO.defer(() => {
|
|
1482
|
+
const that0 = that();
|
|
1483
|
+
const capacity0 = capacity();
|
|
1484
|
+
return Do((_) => {
|
|
1485
|
+
const hub = _(Hub.makeBounded<Either<Exit<never, any>, Conc<In & In1>>>(capacity()));
|
|
1486
|
+
const c1 = _(Channel.fromHubScoped(hub));
|
|
1487
|
+
const c2 = _(Channel.fromHubScoped(hub));
|
|
1488
|
+
const reader = Channel.toHub(hub);
|
|
1489
|
+
const writer = c1.pipeTo(self.channel).mergeWith(c2.pipeTo(that0.channel), leftDone, rightDone);
|
|
1490
|
+
const channel = reader.mergeWith(
|
|
1491
|
+
writer,
|
|
1492
|
+
() => MergeDecision.Await(IO.fromExitNow),
|
|
1493
|
+
(done) => MergeDecision.Done(IO.fromExitNow(done)),
|
|
1494
|
+
);
|
|
1495
|
+
return new Sink<R | R1 | R2 | R3, E2 | E3, In & In1, L | L1, Z2 | Z3>(channel);
|
|
1496
|
+
});
|
|
1527
1497
|
});
|
|
1528
|
-
|
|
1529
|
-
|
|
1498
|
+
return Sink.unwrapScoped(scoped);
|
|
1499
|
+
};
|
|
1530
1500
|
}
|
|
1531
1501
|
|
|
1532
1502
|
/**
|
|
@@ -1588,24 +1558,22 @@ export function serviceWithSink<S, R, E, In, L, Z>(
|
|
|
1588
1558
|
* consumes elements until an element after the first satisfies the specified
|
|
1589
1559
|
* predicate.
|
|
1590
1560
|
*
|
|
1591
|
-
* @tsplus
|
|
1592
|
-
*/
|
|
1593
|
-
export function splitWhere<
|
|
1594
|
-
self: Sink<R, E, In, L, Z
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
Channel.fromIO(ref.get).flatMap(
|
|
1604
|
-
(leftover) => Channel.writeNow(leftover.concat(leftovers.flatten)) > Channel.succeedNow(z),
|
|
1561
|
+
* @tsplus pipeable fncts.io.Sink splitWhere
|
|
1562
|
+
*/
|
|
1563
|
+
export function splitWhere<In>(p: Predicate<In>, __tsplusTrace?: string) {
|
|
1564
|
+
return <R, E, L extends In, Z>(self: Sink<R, E, In, L, Z>): Sink<R, E, In, In, Z> => {
|
|
1565
|
+
return new Sink(
|
|
1566
|
+
Channel.fromIO(Ref.make<Conc<In>>(Conc.empty())).flatMap((ref) =>
|
|
1567
|
+
splitter<R, E, In>(p, false, ref)
|
|
1568
|
+
.pipeToOrFail(self.channel)
|
|
1569
|
+
.collectElements.flatMap(([leftovers, z]) =>
|
|
1570
|
+
Channel.fromIO(ref.get).flatMap(
|
|
1571
|
+
(leftover) => Channel.writeNow(leftover.concat(leftovers.flatten)) > Channel.succeedNow(z),
|
|
1572
|
+
),
|
|
1605
1573
|
),
|
|
1606
|
-
|
|
1607
|
-
)
|
|
1608
|
-
|
|
1574
|
+
),
|
|
1575
|
+
);
|
|
1576
|
+
};
|
|
1609
1577
|
}
|
|
1610
1578
|
|
|
1611
1579
|
function splitter<R, E, In>(
|
|
@@ -1663,23 +1631,20 @@ export function succeedNow<Z>(z: Z, __tsplusTrace?: string): Sink<never, never,
|
|
|
1663
1631
|
* Summarize a sink by running an effect when the sink starts and again when
|
|
1664
1632
|
* it completes
|
|
1665
1633
|
*
|
|
1666
|
-
* @tsplus
|
|
1634
|
+
* @tsplus pipeable fncts.io.Sink summarized
|
|
1667
1635
|
*/
|
|
1668
|
-
export function summarized<
|
|
1669
|
-
self: Sink<R, E, In, L, Z
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
)
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
IO.succeed(summary).map((summary) =>
|
|
1677
|
-
Channel.fromIO(summary).flatMap((start) =>
|
|
1678
|
-
self.channel.flatMap((done) => Channel.fromIO(summary).map((end) => Function.tuple(done, f(start, end)))),
|
|
1636
|
+
export function summarized<R1, E1, B, C>(summary: Lazy<IO<R1, E1, B>>, f: (b1: B, b2: B) => C, __tsplusTrace?: string) {
|
|
1637
|
+
return <R, E, In, L, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In, L, readonly [Z, C]> => {
|
|
1638
|
+
return new Sink(
|
|
1639
|
+
Channel.unwrap(
|
|
1640
|
+
IO.succeed(summary).map((summary) =>
|
|
1641
|
+
Channel.fromIO(summary).flatMap((start) =>
|
|
1642
|
+
self.channel.flatMap((done) => Channel.fromIO(summary).map((end) => Function.tuple(done, f(start, end)))),
|
|
1643
|
+
),
|
|
1679
1644
|
),
|
|
1680
1645
|
),
|
|
1681
|
-
)
|
|
1682
|
-
|
|
1646
|
+
);
|
|
1647
|
+
};
|
|
1683
1648
|
}
|
|
1684
1649
|
|
|
1685
1650
|
/**
|
|
@@ -1721,28 +1686,30 @@ export function unwrapScoped<R, E, R1, E1, In, L, Z>(
|
|
|
1721
1686
|
* the provided sink until it yields a result, finally combining the two
|
|
1722
1687
|
* results into a tuple.
|
|
1723
1688
|
*
|
|
1724
|
-
* @tsplus
|
|
1689
|
+
* @tsplus pipeable fncts.io.Sink zip
|
|
1725
1690
|
*/
|
|
1726
|
-
export function zip<
|
|
1727
|
-
self: Sink<R, E, In, L, Z>,
|
|
1691
|
+
export function zip<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(
|
|
1728
1692
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
1729
1693
|
__tsplusTrace?: string,
|
|
1730
|
-
)
|
|
1731
|
-
return self
|
|
1694
|
+
) {
|
|
1695
|
+
return <R, E, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In & In1, L | L1, readonly [Z, Z1]> => {
|
|
1696
|
+
return self.zipWith(that, Function.tuple);
|
|
1697
|
+
};
|
|
1732
1698
|
}
|
|
1733
1699
|
|
|
1734
1700
|
/**
|
|
1735
1701
|
* Runs both sinks in parallel on the input and combines the results in a
|
|
1736
1702
|
* tuple.
|
|
1737
1703
|
*
|
|
1738
|
-
* @tsplus
|
|
1704
|
+
* @tsplus pipeable fncts.io.Sink zipC
|
|
1739
1705
|
*/
|
|
1740
|
-
export function zipC<
|
|
1741
|
-
self: Sink<R, E, In, L, Z>,
|
|
1706
|
+
export function zipC<In, L, R1, E1, In1 extends In, L1 extends L, Z1>(
|
|
1742
1707
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
1743
1708
|
__tsplusTrace?: string,
|
|
1744
|
-
)
|
|
1745
|
-
return self
|
|
1709
|
+
) {
|
|
1710
|
+
return <R, E, Z>(self: Sink<R, E, In, L, Z>): Sink<R | R1, E | E1, In & In1, L | L1, readonly [Z, Z1]> => {
|
|
1711
|
+
return self.zipWithC(that, Function.tuple);
|
|
1712
|
+
};
|
|
1746
1713
|
}
|
|
1747
1714
|
|
|
1748
1715
|
/**
|
|
@@ -1750,54 +1717,56 @@ export function zipC<R, E, In, L, Z, R1, E1, In1 extends In, L1 extends L, Z1>(
|
|
|
1750
1717
|
* the provided sink until it yields a result, finally combining the two
|
|
1751
1718
|
* results with `f`.
|
|
1752
1719
|
*
|
|
1753
|
-
* @tsplus
|
|
1720
|
+
* @tsplus pipeable fncts.io.Sink zipWith
|
|
1754
1721
|
*/
|
|
1755
|
-
export function zipWith<
|
|
1756
|
-
self: Lazy<Sink<R, E, In, L, Z>>,
|
|
1722
|
+
export function zipWith<In, L, Z, R1, E1, In1 extends In, L1 extends L, Z1, Z2>(
|
|
1757
1723
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
1758
1724
|
f: (z: Z, z1: Z1) => Z2,
|
|
1759
1725
|
__tsplusTrace?: string,
|
|
1760
|
-
)
|
|
1761
|
-
return
|
|
1726
|
+
) {
|
|
1727
|
+
return <R, E>(self: Lazy<Sink<R, E, In, L, Z>>): Sink<R | R1, E | E1, In & In1, L | L1, Z2> => {
|
|
1728
|
+
return Sink.defer(self().flatMap((z) => that().map((z1) => f(z, z1))));
|
|
1729
|
+
};
|
|
1762
1730
|
}
|
|
1763
1731
|
|
|
1764
1732
|
/**
|
|
1765
1733
|
* Runs both sinks in parallel on the input and combines the results using the
|
|
1766
1734
|
* provided function.
|
|
1767
1735
|
*
|
|
1768
|
-
* @tsplus
|
|
1736
|
+
* @tsplus pipeable fncts.io.Sink zipWithC
|
|
1769
1737
|
*/
|
|
1770
|
-
export function zipWithC<
|
|
1771
|
-
self: Lazy<Sink<R, E, In, L, Z>>,
|
|
1738
|
+
export function zipWithC<Z, R1, E1, In1, L1, Z1, Z2>(
|
|
1772
1739
|
that: Lazy<Sink<R1, E1, In1, L1, Z1>>,
|
|
1773
1740
|
f: (z: Z, z1: Z1) => Z2,
|
|
1774
1741
|
__tsplusTrace?: string,
|
|
1775
|
-
)
|
|
1776
|
-
return Sink
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
exit
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1742
|
+
) {
|
|
1743
|
+
return <R, E, In, L>(self: Lazy<Sink<R, E, In, L, Z>>): Sink<R | R1, E | E1, In & In1, L | L1, Z2> => {
|
|
1744
|
+
return Sink.defer(
|
|
1745
|
+
self().raceWith(
|
|
1746
|
+
that(),
|
|
1747
|
+
(exit) =>
|
|
1748
|
+
exit.match(
|
|
1749
|
+
(err) => MergeDecision.Done(IO.failCauseNow(err)),
|
|
1750
|
+
(lz) =>
|
|
1751
|
+
MergeDecision.Await((exit) =>
|
|
1752
|
+
exit.match(
|
|
1753
|
+
(cause) => IO.failCauseNow(cause),
|
|
1754
|
+
(rz) => IO.succeedNow(f(lz, rz)),
|
|
1755
|
+
),
|
|
1787
1756
|
),
|
|
1788
|
-
|
|
1789
|
-
)
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1757
|
+
),
|
|
1758
|
+
(exit) =>
|
|
1759
|
+
exit.match(
|
|
1760
|
+
(err) => MergeDecision.Done(IO.failCauseNow(err)),
|
|
1761
|
+
(rz) =>
|
|
1762
|
+
MergeDecision.Await((exit) =>
|
|
1763
|
+
exit.match(
|
|
1764
|
+
(cause) => IO.failCauseNow(cause),
|
|
1765
|
+
(lz) => IO.succeedNow(f(lz, rz)),
|
|
1766
|
+
),
|
|
1798
1767
|
),
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
)
|
|
1802
|
-
|
|
1768
|
+
),
|
|
1769
|
+
),
|
|
1770
|
+
);
|
|
1771
|
+
};
|
|
1803
1772
|
}
|