@fncts/io 0.0.10 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- package/Cached/api.d.ts +2 -3
- package/Channel/api/interruptWhen.d.ts +1 -1
- package/Channel/api/mapOutIOC.d.ts +1 -1
- package/Channel/api/mergeAll.d.ts +1 -1
- package/Channel/api/mergeAllUnboundedWith.d.ts +1 -1
- package/Channel/api/mergeAllWith.d.ts +1 -1
- package/Channel/api/mergeMap.d.ts +1 -1
- package/Channel/api/mergeWith.d.ts +1 -1
- package/Channel/api/runScoped.d.ts +1 -2
- package/Channel/api/toPull.d.ts +1 -2
- package/Channel/api/zipC.d.ts +3 -3
- package/Channel/api.d.ts +48 -49
- package/Channel/core-api.d.ts +10 -10
- package/Channel/definition.d.ts +12 -12
- package/Channel/internal/MergeDecision.d.ts +1 -1
- package/Channel/internal/SingleProducerAsyncInput.d.ts +1 -1
- package/Clock/api.d.ts +1 -1
- package/Fiber/FiberContext.d.ts +3 -3
- package/Fiber/api/awaitAll.d.ts +1 -1
- package/Fiber/api/evalOnIO.d.ts +1 -1
- package/Fiber/api/joinAll.d.ts +1 -1
- package/Fiber/definition.d.ts +1 -1
- package/FiberRef/api/locallyScoped.d.ts +1 -2
- package/FiberRef/api/locallyScopedWith.d.ts +1 -2
- package/FiberRef/constructors.d.ts +1 -2
- package/FiberRef/unsafe.d.ts +6 -0
- package/Future/api.d.ts +1 -1
- package/Future/constructors.d.ts +1 -1
- package/Hub/api.d.ts +6 -7
- package/Hub/definition.d.ts +6 -7
- package/Hub/internal.d.ts +0 -1
- package/IO/api/acquireRelease.d.ts +1 -2
- package/IO/api/acquireReleaseExit.d.ts +1 -2
- package/IO/api/acquireReleaseInterruptible.d.ts +1 -2
- package/IO/api/acquireReleaseInterruptibleExit.d.ts +1 -2
- package/IO/api/addFinalizer.d.ts +1 -2
- package/IO/api/addFinalizerExit.d.ts +1 -2
- package/IO/api/bracket.d.ts +1 -1
- package/IO/api/bracketExit.d.ts +1 -1
- package/IO/api/clockWith.d.ts +1 -1
- package/IO/api/concurrentFinalizers.d.ts +1 -2
- package/IO/api/consoleWith.d.ts +1 -1
- package/IO/api/core-scope.d.ts +1 -1
- package/IO/api/ensuringChildren.d.ts +1 -1
- package/IO/api/environment.d.ts +8 -10
- package/IO/api/forkScoped.d.ts +1 -2
- package/IO/api/interrupt.d.ts +3 -3
- package/IO/api/onExit.d.ts +1 -1
- package/IO/api/onTermination.d.ts +1 -1
- package/IO/api/provideSomeLayer.d.ts +1 -1
- package/IO/api/race.d.ts +1 -1
- package/IO/api/raceFirst.d.ts +1 -1
- package/IO/api/randomWith.d.ts +1 -1
- package/IO/api/repeat.d.ts +3 -3
- package/IO/api/retry.d.ts +3 -3
- package/IO/api/schedule.d.ts +2 -2
- package/IO/api/scope.d.ts +1 -2
- package/IO/api/scopeWith.d.ts +1 -2
- package/IO/api/scoped.d.ts +2 -3
- package/IO/api/sequenceT.d.ts +3 -3
- package/IO/api/stateful.d.ts +1 -2
- package/IO/api/withEarlyRelease.d.ts +1 -2
- package/IO/api/withFinalizer.d.ts +1 -2
- package/IO/api/withFinalizerExit.d.ts +1 -2
- package/IO/api/zipC.d.ts +2 -2
- package/IO/api.d.ts +50 -50
- package/IO/definition.d.ts +28 -24
- package/IO/runtime.d.ts +23 -10
- package/IOEnv/definition.d.ts +2 -3
- package/IOEnv/live.d.ts +1 -1
- package/IOSpec.d.ts +1 -2
- package/Layer/MemoMap.d.ts +2 -3
- package/Layer/api.d.ts +30 -32
- package/Layer/definition.d.ts +7 -8
- package/Queue/api/dimapIO.d.ts +3 -3
- package/Queue/api/filterInputIO.d.ts +4 -4
- package/Queue/api/filterOutputIO.d.ts +6 -6
- package/Queue/api/zipWithIO.d.ts +9 -9
- package/Queue/definition.d.ts +7 -7
- package/Queue/internal.d.ts +1 -1
- package/Random/api.d.ts +4 -4
- package/Random/live.d.ts +1 -1
- package/Ref/Atomic/Atomic.d.ts +3 -3
- package/Ref/Derived.d.ts +3 -3
- package/Ref/DerivedAll.d.ts +3 -3
- package/Ref/Synchronized/api.d.ts +15 -15
- package/Ref/Synchronized/definition.d.ts +2 -2
- package/Ref/api/get.d.ts +1 -1
- package/Ref/api/modify.d.ts +9 -9
- package/Ref/api/set.d.ts +1 -1
- package/Ref/definition.d.ts +13 -13
- package/STM/api/core-api.d.ts +4 -4
- package/STM/api/core-constructors.d.ts +7 -7
- package/STM/api.d.ts +27 -39
- package/STM/definition.d.ts +9 -8
- package/STM/driver.d.ts +1 -1
- package/STM/internal/Journal.d.ts +4 -3
- package/Schedule/Decision.d.ts +10 -4
- package/Schedule/Driver.d.ts +3 -3
- package/Schedule/api.d.ts +55 -43
- package/Schedule/definition.d.ts +1 -1
- package/Scope/Finalizer/definition.d.ts +2 -2
- package/Scope/ReleaseMap/api.d.ts +1 -1
- package/Scope/ReleaseMap/definition.d.ts +1 -1
- package/Scope/api.d.ts +3 -4
- package/ScopedRef/api.d.ts +1 -2
- package/ScopedRef/definition.d.ts +1 -2
- package/Sink/api.d.ts +255 -75
- package/State/api.d.ts +1 -2
- package/Stream/api/zipAllWith.d.ts +1 -1
- package/Stream/api/zipWith.d.ts +1 -1
- package/Stream/api/zipWithChunks.d.ts +1 -1
- package/Stream/api.d.ts +91 -93
- package/Stream/definition.d.ts +3 -3
- package/Stream/internal/Take.d.ts +1 -1
- package/Supervisor/constructors.d.ts +2 -2
- package/TFuture/api.d.ts +1 -1
- package/TFuture/definition.d.ts +1 -1
- package/TReentrantLock/api.d.ts +2 -3
- package/TRef/api.d.ts +11 -11
- package/TRef/constructors.d.ts +2 -2
- package/TSemaphore/api.d.ts +2 -2
- package/TSemaphore/definition.d.ts +1 -1
- package/_cjs/Cached/api.cjs.map +1 -1
- package/_cjs/Channel/api/mapOutIOC.cjs +1 -1
- package/_cjs/Channel/api/mapOutIOC.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.cjs.map +1 -1
- package/_cjs/Channel/definition.cjs.map +1 -1
- package/_cjs/Clock/live.cjs.map +1 -1
- package/_cjs/Fiber/FiberContext.cjs +5 -7
- package/_cjs/Fiber/FiberContext.cjs.map +1 -1
- package/_cjs/FiberRef/unsafe.cjs +9 -1
- package/_cjs/FiberRef/unsafe.cjs.map +1 -1
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/Hub/api.cjs +1 -1
- package/_cjs/Hub/api.cjs.map +1 -1
- package/_cjs/Hub/internal.cjs +4 -12
- package/_cjs/Hub/internal.cjs.map +1 -1
- package/_cjs/IO/api/addFinalizerExit.cjs +4 -8
- package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
- package/_cjs/IO/api/ensuringChildren.cjs +1 -1
- package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
- package/_cjs/IO/api/environment.cjs +2 -3
- package/_cjs/IO/api/environment.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +1 -1
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/memoize.cjs +4 -8
- package/_cjs/IO/api/memoize.cjs.map +1 -1
- package/_cjs/IO/api/provideSomeLayer.cjs +1 -2
- package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
- package/_cjs/IO/api/scope.cjs +1 -1
- package/_cjs/IO/api/scope.cjs.map +1 -1
- package/_cjs/IO/api/scoped.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.cjs +1 -1
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs +5 -8
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO/runtime.cjs +69 -21
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/Layer/MemoMap.cjs +22 -38
- package/_cjs/Layer/MemoMap.cjs.map +1 -1
- package/_cjs/Layer/api.cjs +6 -4
- package/_cjs/Layer/api.cjs.map +1 -1
- package/_cjs/Layer/definition.cjs.map +1 -1
- package/_cjs/Queue/internal.cjs +2 -2
- package/_cjs/Queue/internal.cjs.map +1 -1
- package/_cjs/Queue/strategy.cjs +1 -5
- package/_cjs/Queue/strategy.cjs.map +1 -1
- package/_cjs/Ref/Atomic/Atomic.cjs.map +1 -1
- package/_cjs/Ref/Derived.cjs.map +1 -1
- package/_cjs/Ref/DerivedAll.cjs.map +1 -1
- package/_cjs/Ref/Synchronized/constructors.cjs +7 -11
- package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
- package/_cjs/STM/api/core-constructors.cjs.map +1 -1
- package/_cjs/STM/api.cjs +59 -78
- package/_cjs/STM/api.cjs.map +1 -1
- package/_cjs/STM/definition.cjs.map +1 -1
- package/_cjs/STM/driver.cjs +7 -5
- package/_cjs/STM/driver.cjs.map +1 -1
- package/_cjs/STM/internal/Journal.cjs +20 -22
- package/_cjs/STM/internal/Journal.cjs.map +1 -1
- package/_cjs/Schedule/Decision.cjs +17 -0
- package/_cjs/Schedule/Decision.cjs.map +1 -1
- package/_cjs/Schedule/api/driver.cjs +22 -21
- package/_cjs/Schedule/api/driver.cjs.map +1 -1
- package/_cjs/Schedule/api.cjs +91 -66
- package/_cjs/Schedule/api.cjs.map +1 -1
- package/_cjs/Scope/Finalizer/definition.cjs +4 -6
- package/_cjs/Scope/Finalizer/definition.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/definition.cjs +2 -4
- package/_cjs/Scope/ReleaseMap/definition.cjs.map +1 -1
- package/_cjs/Scope/api.cjs +2 -12
- package/_cjs/Scope/api.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +14 -22
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/Sink/api.cjs +424 -131
- package/_cjs/Sink/api.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +94 -94
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/Supervisor/constructors.cjs +14 -8
- package/_cjs/Supervisor/constructors.cjs.map +1 -1
- package/_cjs/TFuture/definition.cjs +2 -4
- package/_cjs/TFuture/definition.cjs.map +1 -1
- package/_cjs/TSemaphore/api.cjs +7 -7
- package/_cjs/TSemaphore/api.cjs.map +1 -1
- package/_cjs/TSemaphore/definition.cjs +2 -4
- package/_cjs/TSemaphore/definition.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +38 -0
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -0
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +38 -0
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -0
- package/_cjs/internal/Scheduler.cjs +64 -14
- package/_cjs/internal/Scheduler.cjs.map +1 -1
- package/_mjs/Cached/api.mjs.map +1 -1
- package/_mjs/Channel/api/mapOutIOC.mjs +1 -1
- package/_mjs/Channel/api/mapOutIOC.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.mjs.map +1 -1
- package/_mjs/Channel/definition.mjs.map +1 -1
- package/_mjs/Clock/live.mjs.map +1 -1
- package/_mjs/Fiber/FiberContext.mjs +5 -6
- package/_mjs/Fiber/FiberContext.mjs.map +1 -1
- package/_mjs/FiberRef/unsafe.mjs +6 -0
- package/_mjs/FiberRef/unsafe.mjs.map +1 -1
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/Hub/api.mjs +1 -1
- package/_mjs/Hub/api.mjs.map +1 -1
- package/_mjs/Hub/internal.mjs +4 -12
- package/_mjs/Hub/internal.mjs.map +1 -1
- package/_mjs/IO/api/addFinalizerExit.mjs +4 -8
- package/_mjs/IO/api/addFinalizerExit.mjs.map +1 -1
- package/_mjs/IO/api/ensuringChildren.mjs +1 -1
- package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
- package/_mjs/IO/api/environment.mjs +2 -3
- package/_mjs/IO/api/environment.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +1 -1
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/memoize.mjs +4 -8
- package/_mjs/IO/api/memoize.mjs.map +1 -1
- package/_mjs/IO/api/provideSomeLayer.mjs +1 -2
- package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
- package/_mjs/IO/api/scope.mjs +1 -1
- package/_mjs/IO/api/scope.mjs.map +1 -1
- package/_mjs/IO/api/scoped.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.mjs +1 -1
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs +3 -5
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO/runtime.mjs +61 -18
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/Layer/MemoMap.mjs +22 -38
- package/_mjs/Layer/MemoMap.mjs.map +1 -1
- package/_mjs/Layer/api.mjs +5 -4
- package/_mjs/Layer/api.mjs.map +1 -1
- package/_mjs/Layer/definition.mjs.map +1 -1
- package/_mjs/Queue/internal.mjs +2 -2
- package/_mjs/Queue/internal.mjs.map +1 -1
- package/_mjs/Queue/strategy.mjs +1 -5
- package/_mjs/Queue/strategy.mjs.map +1 -1
- package/_mjs/Ref/Atomic/Atomic.mjs.map +1 -1
- package/_mjs/Ref/Derived.mjs.map +1 -1
- package/_mjs/Ref/DerivedAll.mjs.map +1 -1
- package/_mjs/Ref/Synchronized/constructors.mjs +7 -11
- package/_mjs/Ref/Synchronized/constructors.mjs.map +1 -1
- package/_mjs/STM/api/core-constructors.mjs.map +1 -1
- package/_mjs/STM/api.mjs +52 -72
- package/_mjs/STM/api.mjs.map +1 -1
- package/_mjs/STM/definition.mjs.map +1 -1
- package/_mjs/STM/driver.mjs +6 -5
- package/_mjs/STM/driver.mjs.map +1 -1
- package/_mjs/STM/internal/Journal.mjs +20 -21
- package/_mjs/STM/internal/Journal.mjs.map +1 -1
- package/_mjs/Schedule/Decision.mjs +9 -0
- package/_mjs/Schedule/Decision.mjs.map +1 -1
- package/_mjs/Schedule/api/driver.mjs +20 -20
- package/_mjs/Schedule/api/driver.mjs.map +1 -1
- package/_mjs/Schedule/api.mjs +84 -63
- package/_mjs/Schedule/api.mjs.map +1 -1
- package/_mjs/Scope/Finalizer/definition.mjs +4 -5
- package/_mjs/Scope/Finalizer/definition.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/definition.mjs +2 -3
- package/_mjs/Scope/ReleaseMap/definition.mjs.map +1 -1
- package/_mjs/Scope/api.mjs +2 -12
- package/_mjs/Scope/api.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +14 -22
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/Sink/api.mjs +414 -129
- package/_mjs/Sink/api.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +94 -94
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/Supervisor/constructors.mjs +9 -6
- package/_mjs/Supervisor/constructors.mjs.map +1 -1
- package/_mjs/TFuture/definition.mjs +2 -3
- package/_mjs/TFuture/definition.mjs.map +1 -1
- package/_mjs/TSemaphore/api.mjs +4 -4
- package/_mjs/TSemaphore/api.mjs.map +1 -1
- package/_mjs/TSemaphore/definition.mjs +2 -3
- package/_mjs/TSemaphore/definition.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +26 -0
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -0
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +26 -0
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -0
- package/_mjs/internal/Scheduler.mjs +62 -15
- package/_mjs/internal/Scheduler.mjs.map +1 -1
- package/_src/Cached/api.ts +3 -3
- package/_src/Channel/api/interruptWhen.ts +1 -1
- package/_src/Channel/api/mapOutIOC.ts +2 -2
- package/_src/Channel/api/mergeAll.ts +1 -1
- package/_src/Channel/api/mergeAllUnboundedWith.ts +1 -1
- package/_src/Channel/api/mergeAllWith.ts +3 -3
- package/_src/Channel/api/mergeMap.ts +1 -1
- package/_src/Channel/api/mergeWith.ts +9 -9
- package/_src/Channel/api/runScoped.ts +1 -1
- package/_src/Channel/api/toPull.ts +1 -1
- package/_src/Channel/api/zipC.ts +3 -3
- package/_src/Channel/api.ts +69 -69
- package/_src/Channel/core-api.ts +11 -11
- package/_src/Channel/definition.ts +12 -12
- package/_src/Channel/internal/MergeDecision.ts +1 -1
- package/_src/Clock/live.ts +1 -1
- package/_src/Fiber/FiberContext.ts +10 -8
- package/_src/Fiber/api/awaitAll.ts +1 -1
- package/_src/Fiber/api/evalOnIO.ts +1 -1
- package/_src/Fiber/api/joinAll.ts +1 -1
- package/_src/Fiber/definition.ts +1 -1
- package/_src/FiberRef/api/locallyScoped.ts +1 -1
- package/_src/FiberRef/api/locallyScopedWith.ts +1 -1
- package/_src/FiberRef/constructors.ts +2 -2
- package/_src/FiberRef/unsafe.ts +7 -0
- package/_src/Future/api.ts +3 -3
- package/_src/Future/constructors.ts +1 -1
- package/_src/Hub/api.ts +11 -11
- package/_src/Hub/definition.ts +6 -6
- package/_src/Hub/internal.ts +15 -15
- package/_src/IO/api/acquireRelease.ts +1 -1
- package/_src/IO/api/acquireReleaseExit.ts +1 -1
- package/_src/IO/api/acquireReleaseInterruptible.ts +1 -1
- package/_src/IO/api/acquireReleaseInterruptibleExit.ts +1 -1
- package/_src/IO/api/addFinalizer.ts +1 -1
- package/_src/IO/api/addFinalizerExit.ts +5 -7
- package/_src/IO/api/bracket.ts +1 -1
- package/_src/IO/api/bracketExit.ts +1 -1
- package/_src/IO/api/concurrentFinalizers.ts +1 -1
- package/_src/IO/api/core-scope.ts +1 -1
- package/_src/IO/api/ensuringChildren.ts +2 -2
- package/_src/IO/api/environment.ts +9 -11
- package/_src/IO/api/forkScoped.ts +1 -1
- package/_src/IO/api/interrupt.ts +3 -3
- package/_src/IO/api/memoize.ts +3 -3
- package/_src/IO/api/onExit.ts +1 -1
- package/_src/IO/api/onTermination.ts +1 -1
- package/_src/IO/api/provideSomeLayer.ts +1 -2
- package/_src/IO/api/race.ts +1 -1
- package/_src/IO/api/raceFirst.ts +1 -1
- package/_src/IO/api/repeat.ts +4 -4
- package/_src/IO/api/retry.ts +4 -4
- package/_src/IO/api/schedule.ts +3 -3
- package/_src/IO/api/scope.ts +1 -1
- package/_src/IO/api/scopeWith.ts +1 -1
- package/_src/IO/api/scoped.ts +2 -2
- package/_src/IO/api/sequenceT.ts +1 -1
- package/_src/IO/api/stateful.ts +1 -1
- package/_src/IO/api/withChildren.ts +1 -1
- package/_src/IO/api/withEarlyRelease.ts +1 -1
- package/_src/IO/api/withFinalizer.ts +1 -1
- package/_src/IO/api/withFinalizerExit.ts +1 -1
- package/_src/IO/api/zipC.ts +2 -2
- package/_src/IO/api.ts +48 -48
- package/_src/IO/definition.ts +29 -24
- package/_src/IO/runtime.ts +66 -12
- package/_src/IOEnv/definition.ts +1 -1
- package/_src/Layer/MemoMap.ts +19 -19
- package/_src/Layer/api.ts +38 -38
- package/_src/Layer/definition.ts +5 -5
- package/_src/Queue/api/dimapIO.ts +10 -10
- package/_src/Queue/api/filterInputIO.ts +4 -4
- package/_src/Queue/api/filterOutputIO.ts +6 -6
- package/_src/Queue/api/zipWithIO.ts +10 -10
- package/_src/Queue/definition.ts +7 -7
- package/_src/Queue/internal.ts +7 -7
- package/_src/Queue/strategy.ts +4 -4
- package/_src/Random/api.ts +1 -1
- package/_src/Ref/Atomic/Atomic.ts +3 -3
- package/_src/Ref/Derived.ts +3 -3
- package/_src/Ref/DerivedAll.ts +3 -3
- package/_src/Ref/Synchronized/api.ts +15 -15
- package/_src/Ref/Synchronized/constructors.ts +4 -4
- package/_src/Ref/Synchronized/definition.ts +2 -2
- package/_src/Ref/api/get.ts +2 -2
- package/_src/Ref/api/modify.ts +9 -9
- package/_src/Ref/api/set.ts +1 -1
- package/_src/Ref/definition.ts +13 -13
- package/_src/STM/api/core-api.ts +6 -6
- package/_src/STM/api/core-constructors.ts +7 -7
- package/_src/STM/api.ts +58 -89
- package/_src/STM/definition.ts +6 -6
- package/_src/STM/driver.ts +3 -3
- package/_src/STM/internal/Journal.ts +25 -16
- package/_src/Schedule/Decision.ts +10 -3
- package/_src/Schedule/Driver.ts +2 -2
- package/_src/Schedule/api/driver.ts +6 -6
- package/_src/Schedule/api.ts +97 -77
- package/_src/Schedule/definition.ts +1 -1
- package/_src/Scope/Finalizer/definition.ts +2 -2
- package/_src/Scope/ReleaseMap/api.ts +1 -1
- package/_src/Scope/ReleaseMap/definition.ts +1 -1
- package/_src/Scope/api.ts +11 -11
- package/_src/ScopedRef/api.ts +12 -17
- package/_src/ScopedRef/definition.ts +1 -1
- package/_src/Sink/api.ts +441 -86
- package/_src/State/api.ts +1 -1
- package/_src/Stream/api/zipAllWith.ts +2 -2
- package/_src/Stream/api/zipWith.ts +1 -1
- package/_src/Stream/api/zipWithChunks.ts +2 -2
- package/_src/Stream/api.ts +150 -149
- package/_src/Stream/definition.ts +3 -3
- package/_src/Stream/internal/Take.ts +1 -1
- package/_src/Supervisor/constructors.ts +7 -3
- package/_src/TFuture/api.ts +1 -1
- package/_src/TFuture/definition.ts +1 -1
- package/_src/TReentrantLock/api.ts +2 -2
- package/_src/TRef/api.ts +11 -11
- package/_src/TRef/constructors.ts +2 -2
- package/_src/TSemaphore/api.ts +2 -2
- package/_src/TSemaphore/definition.ts +1 -1
- package/_src/collection/immutable/Conc/dropUntilIO.ts +24 -0
- package/_src/collection/immutable/Conc/dropWhileIO.ts +26 -0
- package/_src/internal/Scheduler.ts +59 -15
- package/collection/immutable/Conc/dropUntilIO.d.ts +7 -0
- package/collection/immutable/Conc/dropWhileIO.d.ts +7 -0
- package/internal/Scheduler.d.ts +18 -1
- package/package.json +3 -3
package/_mjs/Sink/api.mjs
CHANGED
@@ -9,27 +9,29 @@ import * as tsplus_module_7 from "@fncts/io/Ref/api/get";
|
|
9
9
|
import * as tsplus_module_8 from "@fncts/io/Ref/constructors";
|
10
10
|
import * as tsplus_module_9 from "@fncts/io/IO/api";
|
11
11
|
import * as tsplus_module_10 from "@fncts/io/collection/immutable/Conc/mapIO";
|
12
|
-
import * as tsplus_module_11 from "@fncts/io/
|
13
|
-
import * as tsplus_module_12 from "@fncts/
|
14
|
-
import * as tsplus_module_13 from "@fncts/io/
|
15
|
-
import * as tsplus_module_14 from "@fncts/base/data/
|
16
|
-
import * as tsplus_module_15 from "@fncts/
|
17
|
-
import * as tsplus_module_16 from "@fncts/
|
18
|
-
import * as tsplus_module_17 from "@fncts/
|
19
|
-
import * as tsplus_module_18 from "@fncts/
|
20
|
-
import * as tsplus_module_19 from "@fncts/
|
21
|
-
import * as tsplus_module_20 from "@fncts/base/data/
|
22
|
-
import * as tsplus_module_21 from "@fncts/base/
|
23
|
-
import * as tsplus_module_22 from "@fncts/base/
|
24
|
-
import * as tsplus_module_23 from "@fncts/base/
|
25
|
-
import * as tsplus_module_24 from "@fncts/base/
|
26
|
-
import * as tsplus_module_25 from "@fncts/
|
27
|
-
import * as tsplus_module_26 from "@fncts/
|
28
|
-
import * as tsplus_module_27 from "@fncts/io/
|
29
|
-
import * as tsplus_module_28 from "@fncts/
|
30
|
-
import * as tsplus_module_29 from "@fncts/io/
|
31
|
-
import * as tsplus_module_30 from "@fncts/base/
|
32
|
-
import * as tsplus_module_31 from "@fncts/
|
12
|
+
import * as tsplus_module_11 from "@fncts/io/collection/immutable/Conc/dropUntilIO";
|
13
|
+
import * as tsplus_module_12 from "@fncts/io/collection/immutable/Conc/dropWhileIO";
|
14
|
+
import * as tsplus_module_13 from "@fncts/io/IO/api/environment";
|
15
|
+
import * as tsplus_module_14 from "@fncts/base/data/function/api";
|
16
|
+
import * as tsplus_module_15 from "@fncts/io/collection/immutable/Conc/filterIO";
|
17
|
+
import * as tsplus_module_16 from "@fncts/base/data/Maybe/constructors";
|
18
|
+
import * as tsplus_module_17 from "@fncts/base/data/Either/destructors";
|
19
|
+
import * as tsplus_module_18 from "@fncts/io/Queue/api/operations";
|
20
|
+
import * as tsplus_module_19 from "@fncts/io/IO/api/acquireRelease";
|
21
|
+
import * as tsplus_module_20 from "@fncts/base/data/Cause/api";
|
22
|
+
import * as tsplus_module_21 from "@fncts/base/data/Maybe/definition";
|
23
|
+
import * as tsplus_module_22 from "@fncts/base/data/Maybe/destructors";
|
24
|
+
import * as tsplus_module_23 from "@fncts/base/collection/immutable/Conc";
|
25
|
+
import * as tsplus_module_24 from "@fncts/base/collection/immutable/Conc/constructors";
|
26
|
+
import * as tsplus_module_25 from "@fncts/base/data/Either/api";
|
27
|
+
import * as tsplus_module_26 from "@fncts/base/data/Either/constructors";
|
28
|
+
import * as tsplus_module_27 from "@fncts/io/Channel/internal/MergeDecision";
|
29
|
+
import * as tsplus_module_28 from "@fncts/io/Channel/api/mergeWith";
|
30
|
+
import * as tsplus_module_29 from "@fncts/io/Hub/api";
|
31
|
+
import * as tsplus_module_30 from "@fncts/base/collection/Iterable/api";
|
32
|
+
import * as tsplus_module_31 from "@fncts/io/Clock/api";
|
33
|
+
import * as tsplus_module_32 from "@fncts/base/data/Duration/api";
|
34
|
+
import * as tsplus_module_33 from "@fncts/base/data/Exit/api";
|
33
35
|
export const collectAllWhileWith = collectAllWhileWith_1;
|
34
36
|
export const contramap = contramap_1;
|
35
37
|
export const contramapChunks = contramapChunks_1;
|
@@ -67,41 +69,53 @@ export const zipWith = zipWith_1;
|
|
67
69
|
export const zipWithC = zipWithC_1;
|
68
70
|
import { AtomicReference } from "@fncts/base/internal/AtomicReference";
|
69
71
|
/**
|
72
|
+
* Like {@link zip}, but keeps only the result from this sink
|
73
|
+
*
|
70
74
|
* @tsplus fluent fncts.io.Sink apFirst
|
71
75
|
*/
|
72
76
|
|
73
77
|
export function apFirst(self, that) {
|
74
|
-
return zipWith_1(() => self, that, (z, _) => z);
|
78
|
+
return zipWith_1(() => self, that, (z, _) => z, fileName_1 + ":14:22");
|
75
79
|
}
|
76
80
|
/**
|
81
|
+
* Like {@link zipC}, but keeps only the result from this sink
|
82
|
+
*
|
77
83
|
* @tsplus fluent fncts.io.Sink apFirstC
|
78
84
|
*/
|
79
85
|
|
80
86
|
export function apFirstC(self, that) {
|
81
|
-
return zipWithC_1(() => self, that, (z, _) => z);
|
87
|
+
return zipWithC_1(() => self, that, (z, _) => z, fileName_1 + ":26:23");
|
82
88
|
}
|
83
89
|
/**
|
90
|
+
* Like {@link zip}, but keeps only the result from the `that` sink
|
91
|
+
*
|
84
92
|
* @tsplus fluent fncts.io.Sink apSecond
|
85
93
|
*/
|
86
94
|
|
87
|
-
export function apSecond(self, that) {
|
88
|
-
return zipWith_1(() => self, that, (_, z1) => z1);
|
95
|
+
export function apSecond(self, that, __tsplusTrace) {
|
96
|
+
return zipWith_1(() => self, that, (_, z1) => z1, __tsplusTrace);
|
89
97
|
}
|
90
98
|
/**
|
99
|
+
* Like {@link zipC}, but keeps only the result from the `that` sink
|
100
|
+
*
|
91
101
|
* @tsplus fluent fncts.io.Sink apSecondC
|
92
102
|
*/
|
93
103
|
|
94
|
-
export function apSecondC(self, that) {
|
95
|
-
return zipWithC_1(() => self, that, (_, z1) => z1);
|
104
|
+
export function apSecondC(self, that, __tsplusTrace) {
|
105
|
+
return zipWithC_1(() => self, that, (_, z1) => z1, __tsplusTrace);
|
96
106
|
}
|
97
107
|
/**
|
108
|
+
* Replaces this sink's result with the provided value.
|
109
|
+
*
|
98
110
|
* @tsplus fluent fncts.io.Sink as
|
99
111
|
*/
|
100
112
|
|
101
|
-
export function as(self, z) {
|
102
|
-
return map_1(self, () => z(),
|
113
|
+
export function as(self, z, __tsplusTrace) {
|
114
|
+
return map_1(self, () => z(), __tsplusTrace);
|
103
115
|
}
|
104
116
|
/**
|
117
|
+
* Repeatedly runs the sink and accumulates its results into a chunk
|
118
|
+
*
|
105
119
|
* @tsplus fluent fncts.io.Sink collectAll
|
106
120
|
*/
|
107
121
|
|
@@ -109,6 +123,10 @@ export function collectAll(self, __tsplusTrace) {
|
|
109
123
|
return collectAllWhileWith_1(self, () => tsplus_module_1.empty(), () => true, (s, z) => tsplus_module_2.append_(s, z), __tsplusTrace);
|
110
124
|
}
|
111
125
|
/**
|
126
|
+
* Repeatedly runs the sink for as long as its results satisfy the predicate
|
127
|
+
* `p`. The sink's results will be accumulated using the stepping function
|
128
|
+
* `f`.
|
129
|
+
*
|
112
130
|
* @tsplus fluent fncts.io.Sink collectAllWhileWith
|
113
131
|
*/
|
114
132
|
|
@@ -133,6 +151,9 @@ function collectAllWhileWith_1(self, z, p, f, __tsplusTrace) {
|
|
133
151
|
}));
|
134
152
|
}
|
135
153
|
/**
|
154
|
+
* Collects the leftovers from the stream when the sink succeeds and returns
|
155
|
+
* them as part of the sink's result
|
156
|
+
*
|
136
157
|
* @tsplus getter fncts.io.Sink collectLeftover
|
137
158
|
*/
|
138
159
|
|
@@ -141,72 +162,96 @@ export function collectLeftover(self, __tsplusTrace) {
|
|
141
162
|
return new tsplus_module_3.Sink(tsplus_module_5.map_(tsplus_module_4.collectElements(self.channel), ([chunks, z]) => [z, tsplus_module_2.flatten(chunks)]));
|
142
163
|
}
|
143
164
|
/**
|
165
|
+
* Transforms this sink's input elements.
|
166
|
+
*
|
144
167
|
* @tsplus fluent fncts.io.Sink contramap
|
145
168
|
*/
|
146
169
|
|
147
|
-
function contramap_1(self, f) {
|
148
|
-
return contramapChunks_1(self, chunk => tsplus_module_2.map_(chunk, f));
|
170
|
+
function contramap_1(self, f, __tsplusTrace) {
|
171
|
+
return contramapChunks_1(self, chunk => tsplus_module_2.map_(chunk, f), __tsplusTrace);
|
149
172
|
}
|
150
173
|
/**
|
174
|
+
* Transforms this sink's input chunks. `f` must preserve chunking-invariance
|
175
|
+
*
|
151
176
|
* @tsplus fluent fncts.io.Sink contramapChunks
|
152
177
|
*/
|
153
178
|
|
154
179
|
|
155
|
-
function contramapChunks_1(self, f) {
|
180
|
+
function contramapChunks_1(self, f, __tsplusTrace) {
|
156
181
|
const loop = tsplus_module_4.readWith(chunk => tsplus_module_5.apSecond_(tsplus_module_4.writeNow(f(chunk)), loop), tsplus_module_4.failNow, tsplus_module_5.succeedNow);
|
157
182
|
return new tsplus_module_3.Sink(tsplus_module_4.pipeTo_(loop, self.channel));
|
158
183
|
}
|
159
184
|
/**
|
185
|
+
* Effectfully transforms this sink's input chunks. `f` must preserve
|
186
|
+
* chunking-invariance
|
187
|
+
*
|
160
188
|
* @tsplus fluent fncts.io.Sink contramapChunksIO
|
161
189
|
*/
|
162
190
|
|
163
191
|
|
164
|
-
function contramapChunksIO_1(self, f) {
|
192
|
+
function contramapChunksIO_1(self, f, __tsplusTrace) {
|
165
193
|
const loop = tsplus_module_4.readWith(chunk => tsplus_module_5.apSecond_(tsplus_module_5.flatMap_(tsplus_module_4.fromIO(() => f(chunk)), tsplus_module_4.writeNow), loop), tsplus_module_4.failNow, tsplus_module_5.succeedNow);
|
166
194
|
return new tsplus_module_3.Sink(tsplus_module_4.pipeToOrFail_(loop, self.channel));
|
167
195
|
}
|
168
196
|
/**
|
197
|
+
* Effectfully transforms this sink's input elements.
|
198
|
+
*
|
169
199
|
* @tsplus fluent fncts.io.Sink contramapIO
|
170
200
|
*/
|
171
201
|
|
172
202
|
|
173
|
-
function contramapIO_1(self, f) {
|
174
|
-
return contramapChunksIO_1(self, chunk => tsplus_module_10.mapIO_(chunk, f));
|
203
|
+
function contramapIO_1(self, f, __tsplusTrace) {
|
204
|
+
return contramapChunksIO_1(self, chunk => tsplus_module_10.mapIO_(chunk, f), __tsplusTrace);
|
175
205
|
}
|
176
206
|
/**
|
207
|
+
* Transforms both inputs and result of this sink using the provided
|
208
|
+
* functions.
|
209
|
+
*
|
177
210
|
* @tsplus fluent fncts.io.Sink dimap
|
178
211
|
*/
|
179
212
|
|
180
213
|
|
181
|
-
export function dimap(self, f, g) {
|
182
|
-
return map_1(contramap_1(self, f), g,
|
214
|
+
export function dimap(self, f, g, __tsplusTrace) {
|
215
|
+
return map_1(contramap_1(self, f, __tsplusTrace), g, __tsplusTrace);
|
183
216
|
}
|
184
217
|
/**
|
218
|
+
* Transforms both input chunks and result of this sink using the provided
|
219
|
+
* functions.
|
220
|
+
*
|
185
221
|
* @tsplus fluent fncts.io.Sink dimapChunks
|
186
222
|
*/
|
187
223
|
|
188
|
-
export function dimapChunks(self, f, g) {
|
189
|
-
return map_1(contramapChunks_1(self, f), g,
|
224
|
+
export function dimapChunks(self, f, g, __tsplusTrace) {
|
225
|
+
return map_1(contramapChunks_1(self, f, __tsplusTrace), g, __tsplusTrace);
|
190
226
|
}
|
191
227
|
/**
|
228
|
+
* Effectfully transforms both input chunks and result of this sink using the
|
229
|
+
* provided functions. `f` and `g` must preserve chunking-invariance
|
230
|
+
*
|
192
231
|
* @tsplus fluent fncts.io.Sink dimapChunksIO
|
193
232
|
*/
|
194
233
|
|
195
|
-
export function dimapChunksIO(self, f, g) {
|
196
|
-
return mapIO_1(contramapChunksIO_1(self, f), g,
|
234
|
+
export function dimapChunksIO(self, f, g, __tsplusTrace) {
|
235
|
+
return mapIO_1(contramapChunksIO_1(self, f, __tsplusTrace), g, __tsplusTrace);
|
197
236
|
}
|
198
237
|
/**
|
238
|
+
* Effectfully transforms both inputs and result of this sink using the
|
239
|
+
* provided functions.
|
240
|
+
*
|
199
241
|
* @tsplus fluent fncts.io.Sink dimapIO
|
200
242
|
*/
|
201
243
|
|
202
|
-
export function dimapIO(self, f, g) {
|
203
|
-
return mapIO_1(contramapIO_1(self, f), g,
|
244
|
+
export function dimapIO(self, f, g, __tsplusTrace) {
|
245
|
+
return mapIO_1(contramapIO_1(self, f, __tsplusTrace), g, __tsplusTrace);
|
204
246
|
}
|
205
247
|
/**
|
248
|
+
* Returns a lazily constructed sink that may require effects for its
|
249
|
+
* creation.
|
250
|
+
*
|
206
251
|
* @tsplus static fncts.io.SinkOps defer
|
207
252
|
*/
|
208
253
|
|
209
|
-
function defer_1(sink) {
|
254
|
+
function defer_1(sink, __tsplusTrace) {
|
210
255
|
return new tsplus_module_3.Sink(tsplus_module_4.defer(() => sink().channel));
|
211
256
|
}
|
212
257
|
|
@@ -219,10 +264,41 @@ const drainLoop = /*#__PURE__*/tsplus_module_4.readWithCause(() => drainLoop, ts
|
|
219
264
|
|
220
265
|
export const drain = /*#__PURE__*/new tsplus_module_3.Sink(drainLoop);
|
221
266
|
/**
|
267
|
+
* Drops incoming elements until the predicate `p` is satisfied.
|
268
|
+
*
|
269
|
+
* @tsplus static fncts.io.SinkOps dropUntil
|
270
|
+
*/
|
271
|
+
|
272
|
+
export function makeDropUntil(p, __tsplusTrace) {
|
273
|
+
const loop = tsplus_module_4.readWith(inp => {
|
274
|
+
const leftover = tsplus_module_2.dropUntil(inp, p);
|
275
|
+
const more = tsplus_module_2.isEmpty(leftover);
|
276
|
+
|
277
|
+
if (more) {
|
278
|
+
return loop;
|
279
|
+
} else {
|
280
|
+
return tsplus_module_5.apSecond_(tsplus_module_4.writeNow(leftover), tsplus_module_4.id());
|
281
|
+
}
|
282
|
+
}, tsplus_module_4.failNow, () => tsplus_module_4.unit);
|
283
|
+
return new tsplus_module_3.Sink(loop);
|
284
|
+
}
|
285
|
+
/**
|
286
|
+
* Drops incoming elements until the effectful predicate `p` is satisfied.
|
287
|
+
*
|
288
|
+
* @tsplus static fncts.io.SinkOps dropUntilIO
|
289
|
+
*/
|
290
|
+
|
291
|
+
export function makeDropUntilIO(p, __tsplusTrace) {
|
292
|
+
const loop = tsplus_module_4.readWith(inp => tsplus_module_4.unwrap(() => tsplus_module_9.map_(tsplus_module_11.dropUntilIO(inp, p, __tsplusTrace), leftover => tsplus_module_2.isEmpty(leftover) ? loop : tsplus_module_5.apSecond_(tsplus_module_4.writeNow(leftover), tsplus_module_4.id()), __tsplusTrace)), tsplus_module_4.failNow, () => tsplus_module_4.unit);
|
293
|
+
return new tsplus_module_3.Sink(loop);
|
294
|
+
}
|
295
|
+
/**
|
296
|
+
* Drops incoming elements as long as the predicate `p` is satisfied.
|
297
|
+
*
|
222
298
|
* @tsplus static fncts.io.SinkOps dropWhile
|
223
299
|
*/
|
224
300
|
|
225
|
-
export function
|
301
|
+
export function makeDropWhile(predicate, __tsplusTrace) {
|
226
302
|
const loop = tsplus_module_4.readWith(inp => {
|
227
303
|
const leftover = tsplus_module_2.dropWhile_(inp, predicate);
|
228
304
|
const more = tsplus_module_2.isEmpty(leftover);
|
@@ -236,41 +312,64 @@ export function dropWhile(predicate) {
|
|
236
312
|
return new tsplus_module_3.Sink(loop);
|
237
313
|
}
|
238
314
|
/**
|
315
|
+
* Drops incoming elements as long as the effectful predicate `p` is
|
316
|
+
* satisfied.
|
317
|
+
*
|
318
|
+
* @tsplus static fncts.io.SinkOps dropWhileIO
|
319
|
+
*/
|
320
|
+
|
321
|
+
export function dropWhileIO(p, __tsplusTrace) {
|
322
|
+
const loop = tsplus_module_4.readWith(inp => tsplus_module_4.unwrap(() => tsplus_module_9.map_(tsplus_module_12.dropWhileIO(inp, p, __tsplusTrace), leftover => tsplus_module_2.isEmpty(leftover) ? loop : tsplus_module_5.apSecond_(tsplus_module_4.writeNow(leftover), tsplus_module_4.id()), __tsplusTrace)), tsplus_module_4.failNow, () => tsplus_module_4.unit);
|
323
|
+
return new tsplus_module_3.Sink(loop);
|
324
|
+
}
|
325
|
+
/**
|
326
|
+
* Accesses the whole environment of the sink.
|
327
|
+
*
|
239
328
|
* @tsplus static fncts.io.SinkOps environment
|
240
329
|
*/
|
241
330
|
|
242
331
|
export function environment(__tsplusTrace) {
|
243
|
-
return fromIO_1(() =>
|
332
|
+
return fromIO_1(() => tsplus_module_13.environment(__tsplusTrace), __tsplusTrace);
|
244
333
|
}
|
245
334
|
/**
|
335
|
+
* Accesses the environment of the sink.
|
336
|
+
*
|
246
337
|
* @tsplus static fncts.io.SinkOps environmentWith
|
247
338
|
*/
|
248
339
|
|
249
340
|
export function environmentWith(f, __tsplusTrace) {
|
250
|
-
return fromIO_1(() =>
|
341
|
+
return fromIO_1(() => tsplus_module_13.environmentWith(f, __tsplusTrace), __tsplusTrace);
|
251
342
|
}
|
252
343
|
/**
|
344
|
+
* Accesses the environment of the sink in the context of an effect.
|
345
|
+
*
|
253
346
|
* @tsplus static fncts.io.SinkOps environmentWithIO
|
254
347
|
*/
|
255
348
|
|
256
349
|
export function environmentWithIO(f, __tsplusTrace) {
|
257
|
-
return fromIO_1(() =>
|
350
|
+
return fromIO_1(() => tsplus_module_13.environmentWithIO(f, __tsplusTrace), __tsplusTrace);
|
258
351
|
}
|
259
352
|
/**
|
353
|
+
* Accesses the environment of the sink in the context of a sink.
|
354
|
+
*
|
260
355
|
* @tsplus static fncts.io.SinkOps environmentWithSink
|
261
356
|
*/
|
262
357
|
|
263
358
|
export function environmentWithSink(f, __tsplusTrace) {
|
264
|
-
return new tsplus_module_3.Sink(tsplus_module_4.unwrap(() =>
|
359
|
+
return new tsplus_module_3.Sink(tsplus_module_4.unwrap(() => tsplus_module_13.environmentWith(tsplus_module_14.compose_(f, s => s.channel), __tsplusTrace)));
|
265
360
|
}
|
266
361
|
/**
|
362
|
+
* A sink that always fails with the specified error.
|
363
|
+
*
|
267
364
|
* @tsplus static fncts.io.SinkOps fail
|
268
365
|
*/
|
269
366
|
|
270
|
-
export function fail(e) {
|
367
|
+
export function fail(e, __tsplusTrace) {
|
271
368
|
return new tsplus_module_3.Sink(tsplus_module_4.fail(e));
|
272
369
|
}
|
273
370
|
/**
|
371
|
+
* Creates a sink halting with a specified cause.
|
372
|
+
*
|
274
373
|
* @tsplus static fncts.io.SinkOps failCause
|
275
374
|
*/
|
276
375
|
|
@@ -278,6 +377,8 @@ function failCause_1(cause, __tsplusTrace) {
|
|
278
377
|
return new tsplus_module_3.Sink(tsplus_module_5.failCause(cause));
|
279
378
|
}
|
280
379
|
/**
|
380
|
+
* Creates a sink halting with a specified cause.
|
381
|
+
*
|
281
382
|
* @tsplus static fncts.io.SinkOps failCauseNow
|
282
383
|
*/
|
283
384
|
|
@@ -286,6 +387,8 @@ function failCauseNow_1(cause, __tsplusTrace) {
|
|
286
387
|
return new tsplus_module_3.Sink(tsplus_module_5.failCauseNow(cause));
|
287
388
|
}
|
288
389
|
/**
|
390
|
+
* A sink that always fails with the specified error.
|
391
|
+
*
|
289
392
|
* @tsplus static fncts.io.SinkOps failNow
|
290
393
|
*/
|
291
394
|
|
@@ -294,21 +397,27 @@ function failNow_1(e, __tsplusTrace) {
|
|
294
397
|
return new tsplus_module_3.Sink(tsplus_module_4.failNow(e));
|
295
398
|
}
|
296
399
|
/**
|
400
|
+
* Filters the sink's input with the given predicate
|
401
|
+
*
|
297
402
|
* @tsplus static fncts.io.SinkOps filterInput
|
298
403
|
*/
|
299
404
|
|
300
405
|
|
301
406
|
export function filterInput(self, p, __tsplusTrace) {
|
302
|
-
return contramapChunks_1(self, chunk => tsplus_module_2.filter_(chunk, p));
|
407
|
+
return contramapChunks_1(self, chunk => tsplus_module_2.filter_(chunk, p), __tsplusTrace);
|
303
408
|
}
|
304
409
|
/**
|
410
|
+
* Filters the sink's input with the given IO predicate
|
411
|
+
*
|
305
412
|
* @tsplus static fncts.io.SinkOps filterInputIO
|
306
413
|
*/
|
307
414
|
|
308
415
|
export function filterInputIO(self, p, __tsplusTrace) {
|
309
|
-
return contramapChunksIO_1(self, chunk =>
|
416
|
+
return contramapChunksIO_1(self, chunk => tsplus_module_15.filterIO(chunk, p), __tsplusTrace);
|
310
417
|
}
|
311
418
|
/**
|
419
|
+
* Creates a sink that produces values until one verifies the predicate `f`.
|
420
|
+
*
|
312
421
|
* @tsplus fluent fncts.io.Sink findIO
|
313
422
|
*/
|
314
423
|
|
@@ -316,12 +425,18 @@ export function findIO(self, f, __tsplusTrace) {
|
|
316
425
|
return new tsplus_module_3.Sink(tsplus_module_5.flatMap_(tsplus_module_4.fromIO(() => tsplus_module_9.zip_(tsplus_module_8.make(() => tsplus_module_1.empty()), tsplus_module_8.make(() => false))), ([leftoversRef, upstreamDoneRef]) => {
|
317
426
|
const upstreamMarker = tsplus_module_4.readWith(inp => tsplus_module_5.apSecond_(tsplus_module_4.writeNow(inp), upstreamMarker), tsplus_module_4.failNow, x => tsplus_module_4.as_(tsplus_module_4.fromIO(() => tsplus_module_6.set_(upstreamDoneRef, true)), () => x));
|
318
427
|
const loop = tsplus_module_4.matchChannel_(tsplus_module_4.collectElements(self.channel), tsplus_module_4.failNow, ([leftovers, doneValue]) => tsplus_module_5.flatMap_(tsplus_module_4.fromIO(() => f(doneValue)), satisfied => tsplus_module_5.apSecond_(tsplus_module_4.fromIO(() => tsplus_module_6.set_(leftoversRef, tsplus_module_2.flatten(leftovers))), tsplus_module_5.flatMap_(tsplus_module_4.fromIO(() => tsplus_module_7.get(upstreamDoneRef)), upstreamDone => {
|
319
|
-
if (satisfied) return tsplus_module_4.as_(tsplus_module_4.writeNow(tsplus_module_2.flatten(leftovers)), () =>
|
428
|
+
if (satisfied) return tsplus_module_4.as_(tsplus_module_4.writeNow(tsplus_module_2.flatten(leftovers)), () => tsplus_module_16.just(doneValue));else if (upstreamDone) return tsplus_module_4.as_(tsplus_module_4.writeNow(tsplus_module_2.flatten(leftovers)), () => tsplus_module_16.nothing());else return loop;
|
320
429
|
}))));
|
321
430
|
return tsplus_module_4.pipeTo_(tsplus_module_4.pipeTo_(upstreamMarker, tsplus_module_4.bufferChunk(leftoversRef)), loop);
|
322
431
|
}));
|
323
432
|
}
|
324
433
|
/**
|
434
|
+
* Runs this sink until it yields a result, then uses that result to create
|
435
|
+
* another sink from the provided function which will continue to run until it
|
436
|
+
* yields a result.
|
437
|
+
*
|
438
|
+
* This function essentially runs sinks in sequence.
|
439
|
+
*
|
325
440
|
* @tsplus fluent fncts.io.Sink flatMap
|
326
441
|
*/
|
327
442
|
|
@@ -329,6 +444,8 @@ function flatMap_1(self, f, __tsplusTrace) {
|
|
329
444
|
return matchSink_1(self, failNow_1, f, __tsplusTrace);
|
330
445
|
}
|
331
446
|
/**
|
447
|
+
* Creates a sink from a {@link Channel}
|
448
|
+
*
|
332
449
|
* @tsplus static fncts.io.SinkOps fromChannel
|
333
450
|
* @tsplus static fncts.io.SinkOps __call
|
334
451
|
*/
|
@@ -338,6 +455,8 @@ export function fromChannel(channel) {
|
|
338
455
|
return new tsplus_module_3.Sink(channel);
|
339
456
|
}
|
340
457
|
/**
|
458
|
+
* Creates a sink from a chunk processing function.
|
459
|
+
*
|
341
460
|
* @tsplus static fncts.io.SinkOps fromPush
|
342
461
|
*/
|
343
462
|
|
@@ -346,69 +465,89 @@ export function fromPush(push, __tsplusTrace) {
|
|
346
465
|
}
|
347
466
|
|
348
467
|
function fromPushPull(push) {
|
349
|
-
return tsplus_module_4.readWith(inp => tsplus_module_4.matchChannel_(tsplus_module_4.fromIO(() => push(
|
468
|
+
return tsplus_module_4.readWith(inp => tsplus_module_4.matchChannel_(tsplus_module_4.fromIO(() => push(tsplus_module_16.just(inp))), ([r, leftovers]) => tsplus_module_17.match_(r, e => tsplus_module_5.apSecond_(tsplus_module_4.writeNow(leftovers), tsplus_module_4.failNow(e)), z => tsplus_module_5.apSecond_(tsplus_module_4.writeNow(leftovers), tsplus_module_5.succeedNow(z))), () => fromPushPull(push)), tsplus_module_4.failNow, () => tsplus_module_4.matchChannel_(tsplus_module_4.fromIO(() => push(tsplus_module_16.nothing())), ([r, leftovers]) => tsplus_module_17.match_(r, e => tsplus_module_5.apSecond_(tsplus_module_4.writeNow(leftovers), tsplus_module_4.failNow(e)), z => tsplus_module_5.apSecond_(tsplus_module_4.writeNow(leftovers), tsplus_module_5.succeedNow(z))), () => tsplus_module_4.fromIO(() => tsplus_module_9.halt(() => new Error("empty sink"), fileName_1 + ":591:37"))));
|
350
469
|
}
|
351
470
|
/**
|
471
|
+
* Create a sink which enqueues each element into the specified queue.
|
472
|
+
*
|
352
473
|
* @tsplus static fncts.io.SinkOps fromQueue
|
353
474
|
*/
|
354
475
|
|
355
476
|
|
356
|
-
function fromQueue_1(queue) {
|
357
|
-
return unwrap_1(() => tsplus_module_9.map_(tsplus_module_9.succeed(queue,
|
477
|
+
function fromQueue_1(queue, __tsplusTrace) {
|
478
|
+
return unwrap_1(() => tsplus_module_9.map_(tsplus_module_9.succeed(queue, __tsplusTrace), queue => makeForeachChunk_1(inp => tsplus_module_18.offerAll_(queue, inp), __tsplusTrace), __tsplusTrace));
|
358
479
|
}
|
359
480
|
/**
|
481
|
+
* Create a sink which enqueues each element into the specified queue. The
|
482
|
+
* queue will be shutdown once the stream is closed.
|
483
|
+
*
|
360
484
|
* @tsplus static fncts.io.SinkOps fromQueueWithShutdown
|
361
485
|
*/
|
362
486
|
|
363
487
|
|
364
|
-
function fromQueueWithShutdown_1(queue) {
|
365
|
-
return unwrapScoped_1(() => tsplus_module_9.map_(
|
488
|
+
function fromQueueWithShutdown_1(queue, __tsplusTrace) {
|
489
|
+
return unwrapScoped_1(() => tsplus_module_9.map_(tsplus_module_19.acquireRelease(() => tsplus_module_9.succeed(queue, __tsplusTrace), queue => tsplus_module_18.shutdown(queue)), queue => fromQueue_1(() => queue, __tsplusTrace), __tsplusTrace), __tsplusTrace);
|
366
490
|
}
|
367
491
|
/**
|
492
|
+
* Create a sink which publishes each element to the specified hub.
|
493
|
+
*
|
368
494
|
* @tsplus static fncts.io.SinkOps fromHub
|
369
495
|
*/
|
370
496
|
|
371
497
|
|
372
|
-
export function fromHub(hub) {
|
373
|
-
return fromQueue_1(hub);
|
498
|
+
export function fromHub(hub, __tsplusTrace) {
|
499
|
+
return fromQueue_1(hub, __tsplusTrace);
|
374
500
|
}
|
375
501
|
/**
|
502
|
+
* Create a sink which publishes each element to the specified hub. The hub
|
503
|
+
* will be shutdown once the stream is closed.
|
504
|
+
*
|
376
505
|
* @tsplus static fncts.io.SinkOps fromHubWithShutdown
|
377
506
|
*/
|
378
507
|
|
379
|
-
export function fromHubWithShutdown(hub) {
|
380
|
-
return fromQueueWithShutdown_1(hub);
|
508
|
+
export function fromHubWithShutdown(hub, __tsplusTrace) {
|
509
|
+
return fromQueueWithShutdown_1(hub, __tsplusTrace);
|
381
510
|
}
|
382
511
|
/**
|
512
|
+
* Creates a single-value sink produced from an effect
|
513
|
+
*
|
383
514
|
* @tsplus static fncts.io.SinkOps fromIO
|
384
515
|
*/
|
385
516
|
|
386
|
-
function fromIO_1(b) {
|
517
|
+
function fromIO_1(b, __tsplusTrace) {
|
387
518
|
return new tsplus_module_3.Sink(tsplus_module_4.fromIO(b));
|
388
519
|
}
|
389
520
|
/**
|
521
|
+
* Creates a sink halting with the specified unchecked value.
|
522
|
+
*
|
390
523
|
* @tsplus static fncts.io.SinkOps halt
|
391
524
|
*/
|
392
525
|
|
393
526
|
|
394
527
|
export function halt(defect, __tsplusTrace) {
|
395
|
-
return failCause_1(() =>
|
528
|
+
return failCause_1(() => tsplus_module_20.halt(defect()), __tsplusTrace);
|
396
529
|
}
|
397
530
|
/**
|
531
|
+
* Creates a sink halting with the specified unchecked value.
|
532
|
+
*
|
398
533
|
* @tsplus static fncts.io.SinkOps haltNow
|
399
534
|
*/
|
400
535
|
|
401
536
|
export function haltNow(defect, __tsplusTrace) {
|
402
|
-
return failCauseNow_1(
|
537
|
+
return failCauseNow_1(tsplus_module_20.halt(defect), __tsplusTrace);
|
403
538
|
}
|
404
539
|
/**
|
540
|
+
* Creates a sink containing the first value.
|
541
|
+
*
|
405
542
|
* @tsplus static fncts.io.SinkOps head
|
406
543
|
*/
|
407
544
|
|
408
545
|
export function head(__tsplusTrace) {
|
409
|
-
return makeFold_1(() =>
|
546
|
+
return makeFold_1(() => tsplus_module_16.nothing(), elem => tsplus_module_21.isNothing(elem), (s, inp) => tsplus_module_22.match_(s, () => tsplus_module_16.just(inp), () => s), __tsplusTrace);
|
410
547
|
}
|
411
548
|
/**
|
549
|
+
* Drains the remaining elements from the stream after the sink finishes
|
550
|
+
*
|
412
551
|
* @tsplus getter fncts.io.Sink ignoreLeftover
|
413
552
|
*/
|
414
553
|
|
@@ -416,14 +555,19 @@ function ignoreLeftover_1(self, __tsplusTrace) {
|
|
416
555
|
return new tsplus_module_3.Sink(tsplus_module_4.drain(self.channel));
|
417
556
|
}
|
418
557
|
/**
|
558
|
+
* Creates a sink containing the last value.
|
559
|
+
*
|
419
560
|
* @tsplus static fncts.io.SinkOps last
|
420
561
|
*/
|
421
562
|
|
422
563
|
|
423
564
|
export function last(__tsplusTrace) {
|
424
|
-
return makeFoldLeft_1(() =>
|
565
|
+
return makeFoldLeft_1(() => tsplus_module_16.nothing(), (_, inp) => tsplus_module_16.just(inp));
|
425
566
|
}
|
426
567
|
/**
|
568
|
+
* Creates a sink that does not consume any input but provides the given chunk
|
569
|
+
* as its leftovers
|
570
|
+
*
|
427
571
|
* @tsplus static fncts.io.SinkOps leftover
|
428
572
|
*/
|
429
573
|
|
@@ -431,11 +575,13 @@ export function leftover(c, __tsplusTrace) {
|
|
431
575
|
return new tsplus_module_3.Sink(tsplus_module_4.write(c));
|
432
576
|
}
|
433
577
|
/**
|
578
|
+
* Logs the specified message at the current log level.
|
579
|
+
*
|
434
580
|
* @tsplus static fncts.io.SinkOps log
|
435
581
|
*/
|
436
582
|
|
437
583
|
export function log(message, __tsplusTrace) {
|
438
|
-
return fromIO_1(() => tsplus_module_9.log(message, __tsplusTrace));
|
584
|
+
return fromIO_1(() => tsplus_module_9.log(message, __tsplusTrace), __tsplusTrace);
|
439
585
|
}
|
440
586
|
/**
|
441
587
|
* A sink that collects all of its inputs into a chunk.
|
@@ -450,9 +596,16 @@ export function makeCollectAll() {
|
|
450
596
|
function collectLoop(state) {
|
451
597
|
return tsplus_module_4.readWithCause(inp => collectLoop(tsplus_module_2.concat_(state, inp)), tsplus_module_5.failCauseNow, () => tsplus_module_5.endNow(state));
|
452
598
|
}
|
599
|
+
/**
|
600
|
+
* A sink that collects first `n` elements into a chunk. Note that the chunk
|
601
|
+
* is preallocated and must fit in memory.
|
602
|
+
*
|
603
|
+
* @tsplus static fncts.io.SinkOps collectAllN
|
604
|
+
*/
|
605
|
+
|
453
606
|
|
454
607
|
export function makeCollectAllN(n) {
|
455
|
-
return flatMap_1(fromIO_1(() => tsplus_module_9.succeed(() => new
|
608
|
+
return flatMap_1(fromIO_1(() => tsplus_module_9.succeed(() => new tsplus_module_23.ConcBuilder(), fileName_1 + ":755:32"), fileName_1 + ":755:21"), builder => map_1(makeFoldUntil_1(() => builder, n, (builder, inp) => builder.append(inp), fileName_1 + ":756:19"), builder => builder.result(), fileName_1 + ":756:95"), fileName_1 + ":755:64");
|
456
609
|
}
|
457
610
|
/**
|
458
611
|
* A sink that executes the provided effectful function for every element fed to it.
|
@@ -464,6 +617,9 @@ export function makeForeach(f, __tsplusTrace) {
|
|
464
617
|
return makeForeachWhile_1(inp => tsplus_module_9.as_(f(inp), () => true), __tsplusTrace);
|
465
618
|
}
|
466
619
|
/**
|
620
|
+
* A sink that executes the provided effectful function for every chunk fed to
|
621
|
+
* it.
|
622
|
+
*
|
467
623
|
* @tsplus static fncts.io.SinkOps foreachChunk
|
468
624
|
*/
|
469
625
|
|
@@ -492,6 +648,9 @@ function foreachWhileLoop(f, chunk, idx, len, cont) {
|
|
492
648
|
return tsplus_module_4.catchAll_(tsplus_module_5.flatMap_(tsplus_module_4.fromIO(() => f(tsplus_module_2.unsafeGet_(chunk, idx))), b => b ? foreachWhileLoop(f, chunk, idx + 1, len, cont) : tsplus_module_4.writeNow(tsplus_module_2.drop_(chunk, idx))), e => tsplus_module_5.apSecond_(tsplus_module_4.writeNow(tsplus_module_2.drop_(chunk, idx)), tsplus_module_4.failNow(e)));
|
493
649
|
}
|
494
650
|
/**
|
651
|
+
* A sink that executes the provided effectful function for every chunk fed to
|
652
|
+
* it until `f` evaluates to `false`.
|
653
|
+
*
|
495
654
|
* @tsplus static fncts.io.SinkOps foreachChunkWhile
|
496
655
|
*/
|
497
656
|
|
@@ -501,11 +660,14 @@ export function makeForeachChunkWhile(f, __tsplusTrace) {
|
|
501
660
|
return new tsplus_module_3.Sink(reader);
|
502
661
|
}
|
503
662
|
/**
|
663
|
+
* A sink that folds its inputs with the provided function, termination
|
664
|
+
* predicate and initial state.
|
665
|
+
*
|
504
666
|
* @tsplus static fncts.io.SinkOps fold
|
505
667
|
*/
|
506
668
|
|
507
669
|
function makeFold_1(z, contFn, f, __tsplusTrace) {
|
508
|
-
return defer_1(() => new tsplus_module_3.Sink(foldReader(z(), contFn, f)));
|
670
|
+
return defer_1(() => new tsplus_module_3.Sink(foldReader(z(), contFn, f)), __tsplusTrace);
|
509
671
|
}
|
510
672
|
/**
|
511
673
|
* @tsplus tailRec
|
@@ -569,6 +731,11 @@ function foldReader(s, contFn, f) {
|
|
569
731
|
}
|
570
732
|
}
|
571
733
|
/**
|
734
|
+
* Creates a sink that folds elements of type `In` into a structure of type
|
735
|
+
* `S` until `max` elements have been folded.
|
736
|
+
*
|
737
|
+
* Like {@link foldWeighted}, but with a constant cost function of 1.
|
738
|
+
*
|
572
739
|
* @tsplus static fncts.io.SinkOps foldUntil
|
573
740
|
*/
|
574
741
|
|
@@ -577,12 +744,17 @@ function makeFoldUntil_1(z, max, f, __tsplusTrace) {
|
|
577
744
|
return unwrap_1(() => tsplus_module_9.map_(tsplus_module_9.succeed(max, __tsplusTrace), max => map_1(makeFold_1(() => [z(), 0], ([_, n]) => n < max, ([o, count], i) => [f(o, i), count + 1], __tsplusTrace), ([s]) => s, __tsplusTrace), __tsplusTrace));
|
578
745
|
}
|
579
746
|
/**
|
747
|
+
* A sink that folds its input chunks with the provided function, termination
|
748
|
+
* predicate and initial state. `contFn` condition is checked only for the
|
749
|
+
* initial value and at the end of processing of each chunk. `f` and `contFn`
|
750
|
+
* must preserve chunking-invariance.
|
751
|
+
*
|
580
752
|
* @tsplus static fncts.io.SinkOps foldChunks
|
581
753
|
*/
|
582
754
|
|
583
755
|
|
584
|
-
function makeFoldChunks_1(z, contFn, f) {
|
585
|
-
return defer_1(() => new tsplus_module_3.Sink(foldChunksReader(z(), contFn, f)));
|
756
|
+
function makeFoldChunks_1(z, contFn, f, __tsplusTrace) {
|
757
|
+
return defer_1(() => new tsplus_module_3.Sink(foldChunksReader(z(), contFn, f)), __tsplusTrace);
|
586
758
|
}
|
587
759
|
|
588
760
|
function foldChunksReader(s, contFn, f) {
|
@@ -596,12 +768,17 @@ function foldChunksReader(s, contFn, f) {
|
|
596
768
|
}
|
597
769
|
}
|
598
770
|
/**
|
771
|
+
* A sink that effectfully folds its input chunks with the provided function,
|
772
|
+
* termination predicate and initial state. `contFn` condition is checked only
|
773
|
+
* for the initial value and at the end of processing of each chunk. `f` and
|
774
|
+
* `contFn` must preserve chunking-invariance.
|
775
|
+
*
|
599
776
|
* @tsplus static fncts.io.SinkOps foldChunksIO
|
600
777
|
*/
|
601
778
|
|
602
779
|
|
603
|
-
function makeFoldChunksIO_1(z, contFn, f) {
|
604
|
-
return defer_1(() => new tsplus_module_3.Sink(foldChunksIOReader(z(), contFn, f)));
|
780
|
+
function makeFoldChunksIO_1(z, contFn, f, __tsplusTrace) {
|
781
|
+
return defer_1(() => new tsplus_module_3.Sink(foldChunksIOReader(z(), contFn, f)), __tsplusTrace);
|
605
782
|
}
|
606
783
|
|
607
784
|
function foldChunksIOReader(s, contFn, f) {
|
@@ -612,54 +789,68 @@ function foldChunksIOReader(s, contFn, f) {
|
|
612
789
|
}
|
613
790
|
}
|
614
791
|
/**
|
792
|
+
* A sink that folds its inputs with the provided function and initial state.
|
793
|
+
*
|
615
794
|
* @tsplus static fncts.io.SinkOps foldLeft
|
616
795
|
*/
|
617
796
|
|
618
797
|
|
619
798
|
function makeFoldLeft_1(z, f) {
|
620
|
-
return ignoreLeftover_1(makeFold_1(z, () => true, f, fileName_1 + ":
|
799
|
+
return ignoreLeftover_1(makeFold_1(z, () => true, f, fileName_1 + ":1006:19"), fileName_1 + ":1006:37");
|
621
800
|
}
|
622
801
|
/**
|
802
|
+
* A sink that folds its input chunks with the provided function and initial
|
803
|
+
* state. `f` must preserve chunking-invariance.
|
804
|
+
*
|
623
805
|
* @tsplus static fncts.io.SinkOps foldLeftChunks
|
624
806
|
*/
|
625
807
|
|
626
808
|
|
627
809
|
export function makeFoldLeftChunks(z, f) {
|
628
|
-
return ignoreLeftover_1(makeFoldChunks_1(z, () => true, f), fileName_1 + ":
|
810
|
+
return ignoreLeftover_1(makeFoldChunks_1(z, () => true, f, fileName_1 + ":1016:25"), fileName_1 + ":1016:43");
|
629
811
|
}
|
630
812
|
/**
|
813
|
+
* A sink that effectfully folds its input chunks with the provided function
|
814
|
+
* and initial state. `f` must preserve chunking-invariance.
|
815
|
+
*
|
631
816
|
* @tsplus static fncts.io.SinkOps foldLeftChunksIO
|
632
817
|
*/
|
633
818
|
|
634
|
-
export function makeFoldLeftChunksIO(z, f) {
|
635
|
-
return makeFoldChunksIO_1(z, () => true, f);
|
819
|
+
export function makeFoldLeftChunksIO(z, f, __tsplusTrace) {
|
820
|
+
return makeFoldChunksIO_1(z, () => true, f, __tsplusTrace);
|
636
821
|
}
|
637
822
|
/**
|
823
|
+
* A sink that effectfully folds its inputs with the provided function and
|
824
|
+
* initial state.
|
825
|
+
*
|
638
826
|
* @tsplus static fncts.io.SinkOps foldLeftIO
|
639
827
|
*/
|
640
828
|
|
641
|
-
export function makeFoldLeftIO(z, f) {
|
829
|
+
export function makeFoldLeftIO(z, f, __tsplusTrace) {
|
642
830
|
return makeFoldIO_1(z, () => true, f);
|
643
831
|
}
|
644
832
|
/**
|
833
|
+
* A sink that effectfully folds its inputs with the provided function,
|
834
|
+
* termination predicate and initial state.
|
835
|
+
*
|
645
836
|
* @tsplus static fncts.io.SinkOps foldIO
|
646
837
|
*/
|
647
838
|
|
648
839
|
function makeFoldIO_1(z, contFn, f) {
|
649
|
-
return defer_1(() => new tsplus_module_3.Sink(foldIOReader(z(), contFn, f)));
|
840
|
+
return defer_1(() => new tsplus_module_3.Sink(foldIOReader(z(), contFn, f)), fileName_1 + ":1058:20");
|
650
841
|
}
|
651
842
|
|
652
843
|
function foldChunkSplitIO(s, contFn, f, chunk, idx, len) {
|
653
844
|
if (idx === len) {
|
654
|
-
return tsplus_module_9.succeedNow([s,
|
845
|
+
return tsplus_module_9.succeedNow([s, tsplus_module_16.nothing()], fileName_1 + ":1070:25");
|
655
846
|
} else {
|
656
847
|
return tsplus_module_9.flatMap_(f(s, tsplus_module_2.unsafeGet_(chunk, idx)), s1 => {
|
657
848
|
if (contFn(s1)) {
|
658
849
|
return foldChunkSplitIO(s1, contFn, f, chunk, idx + 1, len);
|
659
850
|
} else {
|
660
|
-
return tsplus_module_9.succeedNow([s1,
|
851
|
+
return tsplus_module_9.succeedNow([s1, tsplus_module_16.just(tsplus_module_2.drop_(chunk, idx + 1))], fileName_1 + ":1076:29");
|
661
852
|
}
|
662
|
-
}, fileName_1 + ":
|
853
|
+
}, fileName_1 + ":1072:36");
|
663
854
|
}
|
664
855
|
}
|
665
856
|
|
@@ -667,22 +858,43 @@ function foldIOReader(s, contFn, f) {
|
|
667
858
|
if (!contFn(s)) {
|
668
859
|
return tsplus_module_5.succeedNow(s);
|
669
860
|
} else {
|
670
|
-
return tsplus_module_4.readWith(inp => tsplus_module_5.flatMap_(tsplus_module_4.fromIO(() => foldChunkSplitIO(s, contFn, f, inp, 0, inp.length)), ([nextS, leftovers]) =>
|
861
|
+
return tsplus_module_4.readWith(inp => tsplus_module_5.flatMap_(tsplus_module_4.fromIO(() => foldChunkSplitIO(s, contFn, f, inp, 0, inp.length)), ([nextS, leftovers]) => tsplus_module_22.match_(leftovers, () => foldIOReader(nextS, contFn, f), l => tsplus_module_4.as_(tsplus_module_4.writeNow(l), () => nextS))), err => tsplus_module_4.failNow(err), _ => tsplus_module_5.succeedNow(_));
|
671
862
|
}
|
672
863
|
}
|
673
864
|
/**
|
865
|
+
* Creates a sink that effectfully folds elements of type `In` into a
|
866
|
+
* structure of type `S` until `max` elements have been folded.
|
867
|
+
*
|
868
|
+
* Like {@link makeFoldWeightedIO}, but with a constant cost function of 1.
|
869
|
+
*
|
674
870
|
* @tsplus static fncts.io.SinkOps foldUntilIO
|
675
871
|
*/
|
676
872
|
|
677
873
|
|
678
|
-
export function makeFoldUntilIO(z, max, f) {
|
679
|
-
return map_1(makeFoldIO_1(() => [z(), 0], ([_, n]) => n < max(), ([o, count], i) => tsplus_module_9.map_(f(o, i), s => [s, count + 1],
|
874
|
+
export function makeFoldUntilIO(z, max, f, __tsplusTrace) {
|
875
|
+
return map_1(makeFoldIO_1(() => [z(), 0], ([_, n]) => n < max(), ([o, count], i) => tsplus_module_9.map_(f(o, i), s => [s, count + 1], __tsplusTrace)), ([s]) => s, __tsplusTrace);
|
680
876
|
}
|
681
877
|
/**
|
878
|
+
* Creates a sink that folds elements of type `In` into a structure of type
|
879
|
+
* `S`, until `max` worth of elements (determined by the `costFn`) have been
|
880
|
+
* folded.
|
881
|
+
*
|
882
|
+
* The `decompose` function will be used for decomposing elements that cause
|
883
|
+
* an `S` aggregate to cross `max` into smaller elements.
|
884
|
+
*
|
885
|
+
*
|
886
|
+
* Be vigilant with this function, it has to generate "simpler" values or the
|
887
|
+
* fold may never end. A value is considered indivisible if `decompose` yields
|
888
|
+
* the empty chunk or a single-valued chunk. In these cases, there is no other
|
889
|
+
* choice than to yield a value that will cross the threshold.
|
890
|
+
*
|
891
|
+
* The {@link makeFoldWeightedDecomposeIO} allows the decompose function to return a
|
892
|
+
* `IO` value, and consequently it allows the sink to fail.
|
893
|
+
*
|
682
894
|
* @tsplus static fncts.io.SinkOps foldWeightedDecompose
|
683
895
|
*/
|
684
896
|
|
685
|
-
function makeFoldWeightedDecompose_1(z, costFn, max, decompose, f) {
|
897
|
+
function makeFoldWeightedDecompose_1(z, costFn, max, decompose, f, __tsplusTrace) {
|
686
898
|
return defer_1(() => {
|
687
899
|
/**
|
688
900
|
* @tsplus tailRec
|
@@ -725,35 +937,46 @@ function makeFoldWeightedDecompose_1(z, costFn, max, decompose, f) {
|
|
725
937
|
}
|
726
938
|
|
727
939
|
return new tsplus_module_3.Sink(go(z(), 0, false, max()));
|
728
|
-
});
|
940
|
+
}, __tsplusTrace);
|
729
941
|
}
|
730
942
|
/**
|
943
|
+
* Creates a sink that effectfully folds elements of type `In` into a
|
944
|
+
* structure of type `S`, until `max` worth of elements (determined by the
|
945
|
+
* `costFn`) have been folded.
|
946
|
+
*
|
947
|
+
* The `decompose` function will be used for decomposing elements that cause
|
948
|
+
* an `S` aggregate to cross `max` into smaller elements. Be vigilant with
|
949
|
+
* this function, it has to generate "simpler" values or the fold may never
|
950
|
+
* end. A value is considered indivisible if `decompose` yields the empty
|
951
|
+
* chunk or a single-valued chunk. In these cases, there is no other choice
|
952
|
+
* than to yield a value that will cross the threshold.
|
953
|
+
*
|
731
954
|
* @tsplus static fncts.io.SinkOps foldWeightedDecomposeIO
|
732
955
|
*/
|
733
956
|
|
734
957
|
|
735
|
-
function makeFoldWeightedDecomposeIO_1(z, costFn, max, decompose, f) {
|
958
|
+
function makeFoldWeightedDecomposeIO_1(z, costFn, max, decompose, f, __tsplusTrace) {
|
736
959
|
return defer_1(() => {
|
737
960
|
function fold(inp, s, max, dirty, cost, idx) {
|
738
961
|
if (idx === inp.length) {
|
739
|
-
return tsplus_module_9.succeedNow([s, cost, dirty, tsplus_module_1.empty()],
|
962
|
+
return tsplus_module_9.succeedNow([s, cost, dirty, tsplus_module_1.empty()], __tsplusTrace);
|
740
963
|
} else {
|
741
964
|
const elem = tsplus_module_2.unsafeGet_(inp, idx);
|
742
|
-
return tsplus_module_9.flatMap_(tsplus_module_9.map_(costFn(s, elem), _ => cost + _,
|
965
|
+
return tsplus_module_9.flatMap_(tsplus_module_9.map_(costFn(s, elem), _ => cost + _, __tsplusTrace), total => {
|
743
966
|
if (total <= max) {
|
744
|
-
return tsplus_module_9.flatMap_(f(s, elem), s => fold(inp, s, max, true, total, idx + 1),
|
967
|
+
return tsplus_module_9.flatMap_(f(s, elem), s => fold(inp, s, max, true, total, idx + 1), __tsplusTrace);
|
745
968
|
} else {
|
746
969
|
return tsplus_module_9.flatMap_(decompose(elem), decomposed => {
|
747
970
|
if (decomposed.length <= 1 && !dirty) {
|
748
|
-
return tsplus_module_9.map_(f(s, elem), s => [s, total, true, tsplus_module_2.drop_(inp, idx + 1)],
|
971
|
+
return tsplus_module_9.map_(f(s, elem), s => [s, total, true, tsplus_module_2.drop_(inp, idx + 1)], __tsplusTrace);
|
749
972
|
} else if (decomposed.length <= 1 && dirty) {
|
750
|
-
return tsplus_module_9.succeedNow([s, cost, dirty, tsplus_module_2.drop_(inp, idx)],
|
973
|
+
return tsplus_module_9.succeedNow([s, cost, dirty, tsplus_module_2.drop_(inp, idx)], __tsplusTrace);
|
751
974
|
} else {
|
752
975
|
return fold(tsplus_module_2.concat_(decomposed, tsplus_module_2.drop_(inp, idx + 1)), s, max, dirty, cost, 0);
|
753
976
|
}
|
754
|
-
},
|
977
|
+
}, __tsplusTrace);
|
755
978
|
}
|
756
|
-
},
|
979
|
+
}, __tsplusTrace);
|
757
980
|
}
|
758
981
|
}
|
759
982
|
|
@@ -770,22 +993,40 @@ function makeFoldWeightedDecomposeIO_1(z, costFn, max, decompose, f) {
|
|
770
993
|
}
|
771
994
|
|
772
995
|
return new tsplus_module_3.Sink(go(z(), 0, false, max()));
|
773
|
-
});
|
996
|
+
}, __tsplusTrace);
|
774
997
|
}
|
775
998
|
/**
|
999
|
+
* Creates a sink that folds elements of type `In` into a structure of type
|
1000
|
+
* `S`, until `max` worth of elements (determined by the `costFn`) have been
|
1001
|
+
* folded.
|
1002
|
+
*
|
1003
|
+
* @note
|
1004
|
+
* Elements that have an individual cost larger than `max` will force the
|
1005
|
+
* sink to cross the `max` cost. See {@link makeFoldWeightedDecompose} for a variant
|
1006
|
+
* that can handle these cases.
|
1007
|
+
*
|
776
1008
|
* @tsplus static fncts.io.SinkOps foldWeighted
|
777
1009
|
*/
|
778
1010
|
|
779
1011
|
|
780
|
-
export function makeFoldWeighted(z, costFn, max, f) {
|
781
|
-
return makeFoldWeightedDecompose_1(z, costFn, max,
|
1012
|
+
export function makeFoldWeighted(z, costFn, max, f, __tsplusTrace) {
|
1013
|
+
return makeFoldWeightedDecompose_1(z, costFn, max, tsplus_module_24.single, f, __tsplusTrace);
|
782
1014
|
}
|
783
1015
|
/**
|
1016
|
+
* Creates a sink that effectfully folds elements of type `In` into a
|
1017
|
+
* structure of type `S`, until `max` worth of elements (determined by the
|
1018
|
+
* `costFn`) have been folded.
|
1019
|
+
*
|
1020
|
+
* @note
|
1021
|
+
* Elements that have an individual cost larger than `max` will force the
|
1022
|
+
* sink to cross the `max` cost. See {@link makeFoldWeightedDecomposeIO} for a
|
1023
|
+
* variant that can handle these cases.
|
1024
|
+
*
|
784
1025
|
* @tsplus static fncts.io.SinkOps foldWeightedIO
|
785
1026
|
*/
|
786
1027
|
|
787
|
-
export function makeFoldWeightedIO(z, costFn, max, f) {
|
788
|
-
return makeFoldWeightedDecomposeIO_1(z, costFn, max, inp => tsplus_module_9.succeedNow(
|
1028
|
+
export function makeFoldWeightedIO(z, costFn, max, f, __tsplusTrace) {
|
1029
|
+
return makeFoldWeightedDecomposeIO_1(z, costFn, max, inp => tsplus_module_9.succeedNow(tsplus_module_24.single(inp), __tsplusTrace), f, __tsplusTrace);
|
789
1030
|
}
|
790
1031
|
/**
|
791
1032
|
* Transforms this sink's result.
|
@@ -836,14 +1077,19 @@ function matchSink_1(self, onFailure, onSuccess, __tsplusTrace) {
|
|
836
1077
|
})));
|
837
1078
|
}
|
838
1079
|
/**
|
1080
|
+
* Switch to another sink in case of failure
|
1081
|
+
*
|
839
1082
|
* @tsplus fluent fncts.io.Sink orElse
|
840
1083
|
*/
|
841
1084
|
|
842
1085
|
|
843
1086
|
export function orElse(self, that, __tsplusTrace) {
|
844
|
-
return defer_1(() => new tsplus_module_3.Sink(tsplus_module_4.orElse_(self.channel, that().channel)));
|
1087
|
+
return defer_1(() => new tsplus_module_3.Sink(tsplus_module_4.orElse_(self.channel, that().channel)), __tsplusTrace);
|
845
1088
|
}
|
846
1089
|
/**
|
1090
|
+
* Provides the sink with its required environment, which eliminates its
|
1091
|
+
* dependency on `R`.
|
1092
|
+
*
|
847
1093
|
* @tsplus fluent fncts.io.Sink provideEnvironment
|
848
1094
|
*/
|
849
1095
|
|
@@ -851,20 +1097,29 @@ export function provideEnvironment(self, r, __tsplusTrace) {
|
|
851
1097
|
return new tsplus_module_3.Sink(tsplus_module_4.provideEnvironment_(self.channel, r));
|
852
1098
|
}
|
853
1099
|
/**
|
1100
|
+
* Runs both sinks in parallel on the input, returning the result or the
|
1101
|
+
* error from the one that finishes first.
|
1102
|
+
*
|
854
1103
|
* @tsplus fluent fncts.io.Sink race
|
855
1104
|
*/
|
856
1105
|
|
857
|
-
export function race(self, that) {
|
858
|
-
return map_1(raceBoth_1(self, that), result =>
|
1106
|
+
export function race(self, that, __tsplusTrace) {
|
1107
|
+
return map_1(raceBoth_1(self, that), result => tsplus_module_25.merge(result), __tsplusTrace);
|
859
1108
|
}
|
860
1109
|
/**
|
1110
|
+
* Runs both sinks in parallel on the input, returning the result or the error
|
1111
|
+
* from the one that finishes first.
|
1112
|
+
*
|
861
1113
|
* @tsplus fluent fncts.io.Sink raceBoth
|
862
1114
|
*/
|
863
1115
|
|
864
|
-
function raceBoth_1(self, that, capacity = () => 16) {
|
865
|
-
return raceWith_1(self, that, selfDone =>
|
1116
|
+
function raceBoth_1(self, that, capacity = () => 16, __tsplusTrace) {
|
1117
|
+
return raceWith_1(self, that, selfDone => tsplus_module_27.done(tsplus_module_9.map_(tsplus_module_9.fromExitNow(selfDone, __tsplusTrace), tsplus_module_26.left, __tsplusTrace)), thatDone => tsplus_module_27.done(tsplus_module_9.map_(tsplus_module_9.fromExitNow(thatDone, __tsplusTrace), tsplus_module_26.right, __tsplusTrace)), capacity, __tsplusTrace);
|
866
1118
|
}
|
867
1119
|
/**
|
1120
|
+
* Runs both sinks in parallel on the input, using the specified merge
|
1121
|
+
* function as soon as one result or the other has been computed.
|
1122
|
+
*
|
868
1123
|
* @tsplus fluent fncts.io.Sink raceWith
|
869
1124
|
*/
|
870
1125
|
|
@@ -873,16 +1128,18 @@ function raceWith_1(self, that, leftDone, rightDone, capacity = () => 16, __tspl
|
|
873
1128
|
const scoped = tsplus_module_9.defer(() => {
|
874
1129
|
const that0 = that();
|
875
1130
|
const capacity0 = capacity();
|
876
|
-
return tsplus_module_9.flatMap_(
|
1131
|
+
return tsplus_module_9.flatMap_(tsplus_module_29.makeBounded(capacity()), hub => tsplus_module_9.flatMap_(tsplus_module_4.fromHubScoped(() => hub), c1 => tsplus_module_9.map_(tsplus_module_4.fromHubScoped(() => hub), c2 => {
|
877
1132
|
const reader = tsplus_module_4.toHub(() => hub);
|
878
|
-
const writer =
|
879
|
-
const channel =
|
1133
|
+
const writer = tsplus_module_28.mergeWith_(tsplus_module_4.pipeTo_(c1, self.channel), tsplus_module_4.pipeTo_(c2, that0.channel), leftDone, rightDone);
|
1134
|
+
const channel = tsplus_module_28.mergeWith_(reader, writer, () => tsplus_module_27.wait(tsplus_module_9.fromExitNow), done => tsplus_module_27.done(tsplus_module_9.fromExitNow(done, __tsplusTrace)));
|
880
1135
|
return new tsplus_module_3.Sink(channel);
|
881
1136
|
}, __tsplusTrace), __tsplusTrace), __tsplusTrace);
|
882
1137
|
}, __tsplusTrace);
|
883
|
-
return unwrapScoped_1(() => scoped);
|
1138
|
+
return unwrapScoped_1(() => scoped, __tsplusTrace);
|
884
1139
|
}
|
885
1140
|
/**
|
1141
|
+
* Accesses the specified service in the environment of the effect.
|
1142
|
+
*
|
886
1143
|
* @tsplus static fncts.io.SinkOps service
|
887
1144
|
*/
|
888
1145
|
|
@@ -891,18 +1148,23 @@ export function service(
|
|
891
1148
|
/** @tsplus auto */
|
892
1149
|
tag) {
|
893
1150
|
const tag_1 = tag;
|
894
|
-
return serviceWith_1(
|
1151
|
+
return serviceWith_1(tsplus_module_14.identity, tag_1);
|
895
1152
|
}
|
896
1153
|
/**
|
1154
|
+
* Accesses the specified service in the environment of the sink.
|
1155
|
+
*
|
897
1156
|
* @tsplus static fncts.io.SinkOps serviceWith
|
898
1157
|
*/
|
899
1158
|
|
900
1159
|
function serviceWith_1(f,
|
901
1160
|
/** @tsplus auto */
|
902
1161
|
tag) {
|
903
|
-
return fromIO_1(() =>
|
1162
|
+
return fromIO_1(() => tsplus_module_13.serviceWith(f, tag), fileName_1 + ":1523:21");
|
904
1163
|
}
|
905
1164
|
/**
|
1165
|
+
* Accesses the specified service in the environment of the sink in the
|
1166
|
+
* context of an effect.
|
1167
|
+
*
|
906
1168
|
* @tsplus static fncts.io.SinkOps serviceWithIO
|
907
1169
|
*/
|
908
1170
|
|
@@ -910,22 +1172,29 @@ tag) {
|
|
910
1172
|
export function serviceWithIO(f,
|
911
1173
|
/** @tsplus auto */
|
912
1174
|
tag) {
|
913
|
-
return fromIO_1(() =>
|
1175
|
+
return fromIO_1(() => tsplus_module_13.serviceWithIO(f, tag, fileName_1 + ":1536:38"), fileName_1 + ":1536:21");
|
914
1176
|
}
|
915
1177
|
/**
|
1178
|
+
* Accesses the specified service in the environment of the sink in the
|
1179
|
+
* context of a sink.
|
1180
|
+
*
|
916
1181
|
* @tsplus static fncts.io.SinkOps serviceWithSink
|
917
1182
|
*/
|
918
1183
|
|
919
1184
|
export function serviceWithSink(f,
|
920
1185
|
/** @tsplus auto */
|
921
1186
|
tag) {
|
922
|
-
return new tsplus_module_3.Sink(tsplus_module_4.unwrap(() =>
|
1187
|
+
return new tsplus_module_3.Sink(tsplus_module_4.unwrap(() => tsplus_module_13.serviceWith(tsplus_module_14.compose_(f, s => s.channel), tag)));
|
923
1188
|
}
|
924
1189
|
/**
|
1190
|
+
* Splits the sink on the specified predicate, returning a new sink that
|
1191
|
+
* consumes elements until an element after the first satisfies the specified
|
1192
|
+
* predicate.
|
1193
|
+
*
|
925
1194
|
* @tsplus fluent fncts.io.Sink splitWhere
|
926
1195
|
*/
|
927
1196
|
|
928
|
-
export function splitWhere(self, p) {
|
1197
|
+
export function splitWhere(self, p, __tsplusTrace) {
|
929
1198
|
return new tsplus_module_3.Sink(tsplus_module_5.flatMap_(tsplus_module_4.fromIO(() => tsplus_module_8.make(() => tsplus_module_1.empty())), ref => tsplus_module_5.flatMap_(tsplus_module_4.collectElements(tsplus_module_4.pipeToOrFail_(splitter(p, false, ref), self.channel)), ([leftovers, z]) => tsplus_module_5.flatMap_(tsplus_module_4.fromIO(() => tsplus_module_7.get(ref)), leftover => tsplus_module_5.apSecond_(tsplus_module_4.writeNow(tsplus_module_2.concat_(leftover, tsplus_module_2.flatten(leftovers))), tsplus_module_5.succeedNow(z))))));
|
930
1199
|
}
|
931
1200
|
|
@@ -934,7 +1203,7 @@ function splitter(p, written, leftovers) {
|
|
934
1203
|
if (tsplus_module_2.isEmpty(inp)) {
|
935
1204
|
return splitter(p, written, leftovers);
|
936
1205
|
} else if (written) {
|
937
|
-
const index =
|
1206
|
+
const index = tsplus_module_30.findIndex(inp, p);
|
938
1207
|
|
939
1208
|
if (index === -1) {
|
940
1209
|
return tsplus_module_5.apSecond_(tsplus_module_4.writeNow(inp), splitter(p, true, leftovers));
|
@@ -943,7 +1212,7 @@ function splitter(p, written, leftovers) {
|
|
943
1212
|
return tsplus_module_5.apSecond_(tsplus_module_4.writeNow(left), tsplus_module_4.fromIO(() => tsplus_module_6.set_(leftovers, right)));
|
944
1213
|
}
|
945
1214
|
} else {
|
946
|
-
const index =
|
1215
|
+
const index = tsplus_module_30.findIndex(inp, p);
|
947
1216
|
|
948
1217
|
if (index === -1) {
|
949
1218
|
return tsplus_module_5.apSecond_(tsplus_module_4.writeNow(inp), splitter(p, true, leftovers));
|
@@ -955,6 +1224,8 @@ function splitter(p, written, leftovers) {
|
|
955
1224
|
}, tsplus_module_5.failCauseNow, tsplus_module_5.succeedNow);
|
956
1225
|
}
|
957
1226
|
/**
|
1227
|
+
* A sink that immediately ends with the specified value.
|
1228
|
+
*
|
958
1229
|
* @tsplus static fncts.io.SinkOps succeed
|
959
1230
|
*/
|
960
1231
|
|
@@ -963,6 +1234,8 @@ export function succeed(z, __tsplusTrace) {
|
|
963
1234
|
return new tsplus_module_3.Sink(tsplus_module_5.succeed(z));
|
964
1235
|
}
|
965
1236
|
/**
|
1237
|
+
* A sink that immediately ends with the specified value.
|
1238
|
+
*
|
966
1239
|
* @tsplus static fncts.io.SinkOps succeedNow
|
967
1240
|
*/
|
968
1241
|
|
@@ -970,6 +1243,9 @@ export function succeedNow(z, __tsplusTrace) {
|
|
970
1243
|
return new tsplus_module_3.Sink(tsplus_module_5.succeedNow(z));
|
971
1244
|
}
|
972
1245
|
/**
|
1246
|
+
* Summarize a sink by running an effect when the sink starts and again when
|
1247
|
+
* it completes
|
1248
|
+
*
|
973
1249
|
* @tsplus fluent fncts.io.Sink summarized
|
974
1250
|
*/
|
975
1251
|
|
@@ -982,14 +1258,16 @@ function summarized_1(self, summary, f, __tsplusTrace) {
|
|
982
1258
|
|
983
1259
|
|
984
1260
|
export function timed(self, __tsplusTrace) {
|
985
|
-
return summarized_1(self, () =>
|
1261
|
+
return summarized_1(self, () => tsplus_module_31.currentTime, (start, end) => tsplus_module_32.fromInterval(start, end), __tsplusTrace);
|
986
1262
|
}
|
987
1263
|
/**
|
1264
|
+
* Creates a sink produced from an effect.
|
1265
|
+
*
|
988
1266
|
* @tsplus static fncts.io.SinkOps unwrap
|
989
1267
|
*/
|
990
1268
|
|
991
1269
|
function unwrap_1(io) {
|
992
|
-
return new tsplus_module_3.Sink(tsplus_module_4.unwrap(() => tsplus_module_9.map_(io(), sink => sink.channel, fileName_1 + ":
|
1270
|
+
return new tsplus_module_3.Sink(tsplus_module_4.unwrap(() => tsplus_module_9.map_(io(), sink => sink.channel, fileName_1 + ":1675:42")));
|
993
1271
|
}
|
994
1272
|
/**
|
995
1273
|
* Creates a sink produced from a scoped effect.
|
@@ -998,23 +1276,30 @@ function unwrap_1(io) {
|
|
998
1276
|
*/
|
999
1277
|
|
1000
1278
|
|
1001
|
-
function unwrapScoped_1(scoped) {
|
1002
|
-
return new tsplus_module_3.Sink(tsplus_module_4.unwrapScoped(() => tsplus_module_9.map_(scoped(), sink => sink.channel,
|
1279
|
+
function unwrapScoped_1(scoped, __tsplusTrace) {
|
1280
|
+
return new tsplus_module_3.Sink(tsplus_module_4.unwrapScoped(() => tsplus_module_9.map_(scoped(), sink => sink.channel, __tsplusTrace)));
|
1003
1281
|
}
|
1004
1282
|
/**
|
1283
|
+
* Feeds inputs to this sink until it yields a result, then switches over to
|
1284
|
+
* the provided sink until it yields a result, finally combining the two
|
1285
|
+
* results into a tuple.
|
1286
|
+
*
|
1005
1287
|
* @tsplus fluent fncts.io.Sink zip
|
1006
1288
|
*/
|
1007
1289
|
|
1008
1290
|
|
1009
|
-
export function zip(self, that) {
|
1010
|
-
return zipWith_1(() => self, that,
|
1291
|
+
export function zip(self, that, __tsplusTrace) {
|
1292
|
+
return zipWith_1(() => self, that, tsplus_module_14.tuple, __tsplusTrace);
|
1011
1293
|
}
|
1012
1294
|
/**
|
1295
|
+
* Runs both sinks in parallel on the input and combines the results in a
|
1296
|
+
* tuple.
|
1297
|
+
*
|
1013
1298
|
* @tsplus fluent fncts.io.Sink zipC
|
1014
1299
|
*/
|
1015
1300
|
|
1016
|
-
export function zipC(self, that) {
|
1017
|
-
return zipWithC_1(() => self, that,
|
1301
|
+
export function zipC(self, that, __tsplusTrace) {
|
1302
|
+
return zipWithC_1(() => self, that, tsplus_module_14.tuple, __tsplusTrace);
|
1018
1303
|
}
|
1019
1304
|
/**
|
1020
1305
|
* Feeds inputs to this sink until it yields a result, then switches over to
|
@@ -1024,8 +1309,8 @@ export function zipC(self, that) {
|
|
1024
1309
|
* @tsplus fluent fncts.io.Sink zipWith
|
1025
1310
|
*/
|
1026
1311
|
|
1027
|
-
function zipWith_1(self, that, f) {
|
1028
|
-
return defer_1(() => flatMap_1(self(), z => map_1(that(), z1 => f(z, z1),
|
1312
|
+
function zipWith_1(self, that, f, __tsplusTrace) {
|
1313
|
+
return defer_1(() => flatMap_1(self(), z => map_1(that(), z1 => f(z, z1), __tsplusTrace), __tsplusTrace), __tsplusTrace);
|
1029
1314
|
}
|
1030
1315
|
/**
|
1031
1316
|
* Runs both sinks in parallel on the input and combines the results using the
|
@@ -1035,7 +1320,7 @@ function zipWith_1(self, that, f) {
|
|
1035
1320
|
*/
|
1036
1321
|
|
1037
1322
|
|
1038
|
-
function zipWithC_1(self, that, f) {
|
1039
|
-
return defer_1(() => raceWith_1(self(), () => that(), exit =>
|
1323
|
+
function zipWithC_1(self, that, f, __tsplusTrace) {
|
1324
|
+
return defer_1(() => raceWith_1(self(), () => that(), exit => tsplus_module_33.match_(exit, err => tsplus_module_27.done(tsplus_module_9.failCauseNow(err, __tsplusTrace)), lz => tsplus_module_27.wait(exit => tsplus_module_33.match_(exit, cause => tsplus_module_9.failCauseNow(cause, __tsplusTrace), rz => tsplus_module_9.succeedNow(f(lz, rz), __tsplusTrace)))), exit => tsplus_module_33.match_(exit, err => tsplus_module_27.done(tsplus_module_9.failCauseNow(err, __tsplusTrace)), rz => tsplus_module_27.wait(exit => tsplus_module_33.match_(exit, cause => tsplus_module_9.failCauseNow(cause, __tsplusTrace), lz => tsplus_module_9.succeedNow(f(lz, rz), __tsplusTrace))))), __tsplusTrace);
|
1040
1325
|
}
|
1041
1326
|
//# sourceMappingURL=api.mjs.map
|