@fncts/io 0.0.10 → 0.0.13
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 -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/_src/IO/api.ts
CHANGED
|
@@ -110,7 +110,7 @@ export function apFirst_<R, E, A, R1, E1, B>(
|
|
|
110
110
|
self: IO<R, E, A>,
|
|
111
111
|
fb: IO<R1, E1, B>,
|
|
112
112
|
__tsplusTrace?: string,
|
|
113
|
-
): IO<R1
|
|
113
|
+
): IO<R1 | R, E1 | E, A> {
|
|
114
114
|
return self.flatMap((a) => fb.map(() => a));
|
|
115
115
|
}
|
|
116
116
|
|
|
@@ -124,7 +124,7 @@ export function apSecond_<R, E, A, R1, E1, B>(
|
|
|
124
124
|
self: IO<R, E, A>,
|
|
125
125
|
fb: IO<R1, E1, B>,
|
|
126
126
|
__tsplusTrace?: string,
|
|
127
|
-
): IO<R1
|
|
127
|
+
): IO<R1 | R, E1 | E, B> {
|
|
128
128
|
return self.flatMap(() => fb);
|
|
129
129
|
}
|
|
130
130
|
|
|
@@ -189,7 +189,7 @@ export function bitap_<R, E, A, R1, E1, R2, E2>(
|
|
|
189
189
|
onFailure: (e: E) => IO<R1, E1, any>,
|
|
190
190
|
onSuccess: (a: A) => IO<R2, E2, any>,
|
|
191
191
|
__tsplusTrace?: string,
|
|
192
|
-
): IO<R
|
|
192
|
+
): IO<R | R1 | R2, E | E1 | E2, A> {
|
|
193
193
|
return self.matchCauseIO(
|
|
194
194
|
(cause) =>
|
|
195
195
|
cause.failureOrCause.match(
|
|
@@ -211,7 +211,7 @@ export function catch_<N extends keyof E, K extends E[N] & string, R, E, A, R1,
|
|
|
211
211
|
k: K,
|
|
212
212
|
f: (e: Extract<E, { [n in N]: K }>) => IO<R1, E1, A1>,
|
|
213
213
|
__tsplusTrace?: string,
|
|
214
|
-
): IO<R
|
|
214
|
+
): IO<R | R1, Exclude<E, { [n in N]: K }> | E1, A | A1> {
|
|
215
215
|
return ma.catchAll((e) => {
|
|
216
216
|
if (tag in e && e[tag] === k) {
|
|
217
217
|
return f(e as any);
|
|
@@ -229,7 +229,7 @@ export function catchAll_<R, E, A, R1, E1, A1>(
|
|
|
229
229
|
ma: IO<R, E, A>,
|
|
230
230
|
f: (e: E) => IO<R1, E1, A1>,
|
|
231
231
|
__tsplusTrace?: string,
|
|
232
|
-
): IO<R
|
|
232
|
+
): IO<R | R1, E1, A | A1> {
|
|
233
233
|
return ma.matchIO(f, IO.succeedNow);
|
|
234
234
|
}
|
|
235
235
|
|
|
@@ -256,7 +256,7 @@ export function catchJust_<R, E, A, R1, E1, A1>(
|
|
|
256
256
|
ma: IO<R, E, A>,
|
|
257
257
|
f: (e: E) => Maybe<IO<R1, E1, A1>>,
|
|
258
258
|
__tsplusTrace?: string,
|
|
259
|
-
): IO<R
|
|
259
|
+
): IO<R | R1, E | E1, A | A1> {
|
|
260
260
|
return ma.matchCauseIO(
|
|
261
261
|
(cause) => cause.failureOrCause.match((e) => f(e).getOrElse(IO.failCauseNow(cause)), IO.failCauseNow),
|
|
262
262
|
IO.succeedNow,
|
|
@@ -271,7 +271,7 @@ export function catchJust_<R, E, A, R1, E1, A1>(
|
|
|
271
271
|
export function catchJustCause_<R, E, A, R1, E1, A1>(
|
|
272
272
|
ma: IO<R, E, A>,
|
|
273
273
|
f: (_: Cause<E>) => Maybe<IO<R1, E1, A1>>,
|
|
274
|
-
): IO<R
|
|
274
|
+
): IO<R | R1, E | E1, A | A1> {
|
|
275
275
|
return ma.matchCauseIO((cause) => f(cause).getOrElse(IO.failCauseNow(cause)), IO.succeedNow);
|
|
276
276
|
}
|
|
277
277
|
|
|
@@ -289,7 +289,7 @@ export function catchJustDefect_<R, E, A, R1, E1, A1>(
|
|
|
289
289
|
ma: IO<R, E, A>,
|
|
290
290
|
f: (_: unknown) => Maybe<IO<R1, E1, A1>>,
|
|
291
291
|
__tsplusTrace?: string,
|
|
292
|
-
): IO<R
|
|
292
|
+
): IO<R | R1, E | E1, A | A1> {
|
|
293
293
|
return ma.unrefineWith(f, IO.failNow).catchAll(identity);
|
|
294
294
|
}
|
|
295
295
|
|
|
@@ -303,7 +303,7 @@ export function catchTag_<K extends E["_tag"] & string, R, E extends { _tag: str
|
|
|
303
303
|
k: K,
|
|
304
304
|
f: (e: Extract<E, { _tag: K }>) => IO<R1, E1, A1>,
|
|
305
305
|
__tsplusTrace?: string,
|
|
306
|
-
): IO<R
|
|
306
|
+
): IO<R | R1, Exclude<E, { _tag: K }> | E1, A | A1> {
|
|
307
307
|
return ma.catch("_tag", k, f);
|
|
308
308
|
}
|
|
309
309
|
|
|
@@ -332,14 +332,14 @@ export function flatMap_<R, E, A, R1, E1, B>(
|
|
|
332
332
|
ma: IO<R, E, A>,
|
|
333
333
|
f: (a: A) => IO<R1, E1, B>,
|
|
334
334
|
__tsplusTrace?: string,
|
|
335
|
-
): IO<R
|
|
335
|
+
): IO<R | R1, E | E1, B> {
|
|
336
336
|
return new Chain(ma, f, __tsplusTrace);
|
|
337
337
|
}
|
|
338
338
|
|
|
339
339
|
/**
|
|
340
340
|
* @tsplus fluent fncts.io.IO flatMapError
|
|
341
341
|
*/
|
|
342
|
-
export function flatMapError_<R, R1, E, E1, A>(ma: IO<R, E, A>, f: (e: E) => IO<R1, never, E1>): IO<R
|
|
342
|
+
export function flatMapError_<R, R1, E, E1, A>(ma: IO<R, E, A>, f: (e: E) => IO<R1, never, E1>): IO<R | R1, E1, A> {
|
|
343
343
|
return ma.swapWith((effect) => effect.flatMap(f));
|
|
344
344
|
}
|
|
345
345
|
|
|
@@ -376,14 +376,14 @@ export function collectIO_<R, E, A, R1, E1, A1, E2>(
|
|
|
376
376
|
f: Lazy<E2>,
|
|
377
377
|
pf: (a: A) => Maybe<IO<R1, E1, A1>>,
|
|
378
378
|
__tsplusTrace?: string,
|
|
379
|
-
): IO<R
|
|
379
|
+
): IO<R | R1, E | E1 | E2, A1> {
|
|
380
380
|
return ma.flatMap((a) => pf(a).getOrElse(IO.fail(f)));
|
|
381
381
|
}
|
|
382
382
|
|
|
383
383
|
/**
|
|
384
384
|
* @tsplus static fncts.io.IOOps condIO
|
|
385
385
|
*/
|
|
386
|
-
export function condIO_<R, R1, E, A>(b: boolean, onTrue: URIO<R, A>, onFalse: URIO<R1, E>): IO<R
|
|
386
|
+
export function condIO_<R, R1, E, A>(b: boolean, onTrue: URIO<R, A>, onFalse: URIO<R1, E>): IO<R | R1, E, A> {
|
|
387
387
|
return b ? onTrue : onFalse.flatMap(IO.failNow);
|
|
388
388
|
}
|
|
389
389
|
|
|
@@ -518,7 +518,7 @@ export function ensuring_<R, E, A, R1>(
|
|
|
518
518
|
self: IO<R, E, A>,
|
|
519
519
|
finalizer: IO<R1, never, any>,
|
|
520
520
|
__tsplusTrace?: string,
|
|
521
|
-
): IO<R
|
|
521
|
+
): IO<R | R1, E, A> {
|
|
522
522
|
return new Ensuring(self, finalizer, __tsplusTrace);
|
|
523
523
|
}
|
|
524
524
|
|
|
@@ -580,7 +580,7 @@ export function failCause<E = never, A = never>(cause: Lazy<Cause<E>>, __tsplusT
|
|
|
580
580
|
*
|
|
581
581
|
* @tsplus static fncts.io.IOOps fiberId
|
|
582
582
|
*/
|
|
583
|
-
export const fiberId: IO<
|
|
583
|
+
export const fiberId: IO<never, never, FiberId> = IO.descriptorWith((d) => IO.succeedNow(d.id));
|
|
584
584
|
|
|
585
585
|
/**
|
|
586
586
|
* Filters the collection using the specified effectual predicate.
|
|
@@ -659,19 +659,19 @@ export function filterOrElse_<R, E, A, B extends A, R1, E1, A1>(
|
|
|
659
659
|
refinement: Refinement<A, B>,
|
|
660
660
|
or: (a: Exclude<A, B>) => IO<R1, E1, A1>,
|
|
661
661
|
__tsplusTrace?: string,
|
|
662
|
-
): IO<R
|
|
662
|
+
): IO<R | R1, E | E1, B | A1>;
|
|
663
663
|
export function filterOrElse_<R, E, A, R1, E1, A1>(
|
|
664
664
|
fa: IO<R, E, A>,
|
|
665
665
|
predicate: Predicate<A>,
|
|
666
666
|
or: (a: A) => IO<R1, E1, A1>,
|
|
667
667
|
__tsplusTrace?: string,
|
|
668
|
-
): IO<R
|
|
668
|
+
): IO<R | R1, E | E1, A | A1>;
|
|
669
669
|
export function filterOrElse_<R, E, A, R1, E1, A1>(
|
|
670
670
|
fa: IO<R, E, A>,
|
|
671
671
|
predicate: Predicate<A>,
|
|
672
672
|
or: unknown,
|
|
673
673
|
__tsplusTrace?: string,
|
|
674
|
-
): IO<R
|
|
674
|
+
): IO<R | R1, E | E1, A | A1> {
|
|
675
675
|
return flatMap_(
|
|
676
676
|
fa,
|
|
677
677
|
(a): IO<R1, E1, A | A1> => (predicate(a) ? IO.succeedNow(a) : IO.defer((or as (a: A) => IO<R1, E1, A1>)(a))),
|
|
@@ -740,7 +740,7 @@ export function filterOrHalt_<R, E, A>(
|
|
|
740
740
|
/**
|
|
741
741
|
* @tsplus getter fncts.io.IO flatten
|
|
742
742
|
*/
|
|
743
|
-
export function flatten<R, E, R1, E1, A>(self: IO<R, E, IO<R1, E1, A>>): IO<R
|
|
743
|
+
export function flatten<R, E, R1, E1, A>(self: IO<R, E, IO<R1, E1, A>>): IO<R | R1, E | E1, A> {
|
|
744
744
|
return self.flatMap(identity);
|
|
745
745
|
}
|
|
746
746
|
|
|
@@ -910,7 +910,7 @@ export function fork<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): URIO<R,
|
|
|
910
910
|
*
|
|
911
911
|
* @tsplus static fncts.io.IOOps fromEither
|
|
912
912
|
*/
|
|
913
|
-
export function fromEither<E, A>(either: Lazy<Either<E, A>>, __tsplusTrace?: string): IO<
|
|
913
|
+
export function fromEither<E, A>(either: Lazy<Either<E, A>>, __tsplusTrace?: string): IO<never, E, A> {
|
|
914
914
|
return IO.succeed(either).flatMap((ea) => ea.match(IO.failNow, IO.succeedNow));
|
|
915
915
|
}
|
|
916
916
|
|
|
@@ -919,7 +919,7 @@ export function fromEither<E, A>(either: Lazy<Either<E, A>>, __tsplusTrace?: str
|
|
|
919
919
|
*
|
|
920
920
|
* @tsplus static fncts.io.IOOps fromEitherNow
|
|
921
921
|
*/
|
|
922
|
-
export function fromEitherNow<E, A>(either: Either<E, A>, __tsplusTrace?: string): IO<
|
|
922
|
+
export function fromEitherNow<E, A>(either: Either<E, A>, __tsplusTrace?: string): IO<never, E, A> {
|
|
923
923
|
return either.match(IO.failNow, IO.succeedNow);
|
|
924
924
|
}
|
|
925
925
|
|
|
@@ -928,7 +928,7 @@ export function fromEitherNow<E, A>(either: Either<E, A>, __tsplusTrace?: string
|
|
|
928
928
|
*
|
|
929
929
|
* @tsplus static fncts.io.IOOps fromEval
|
|
930
930
|
*/
|
|
931
|
-
export function fromEval<A>(computation: Eval<A>, __tsplusTrace?: string): IO<
|
|
931
|
+
export function fromEval<A>(computation: Eval<A>, __tsplusTrace?: string): IO<never, never, A> {
|
|
932
932
|
return IO.succeed(computation.run);
|
|
933
933
|
}
|
|
934
934
|
|
|
@@ -1037,7 +1037,7 @@ export function getOrElse_<R, E, A, B>(ma: IO<R, E, Maybe<A>>, orElse: Lazy<B>):
|
|
|
1037
1037
|
export function getOrElseIO_<R, E, A, R1, E1, B>(
|
|
1038
1038
|
ma: IO<R, E, Maybe<A>>,
|
|
1039
1039
|
orElse: Lazy<IO<R1, E1, B>>,
|
|
1040
|
-
): IO<R
|
|
1040
|
+
): IO<R | R1, E | E1, A | B> {
|
|
1041
1041
|
return (ma as IO<R, E, Maybe<A | B>>).flatMap((mab) => mab.map(IO.succeedNow).getOrElse(orElse));
|
|
1042
1042
|
}
|
|
1043
1043
|
|
|
@@ -1088,7 +1088,7 @@ export function ifIO_<R, E, R1, E1, B, R2, E2, C>(
|
|
|
1088
1088
|
self: IO<R, E, boolean>,
|
|
1089
1089
|
onFalse: Lazy<IO<R1, E1, B>>,
|
|
1090
1090
|
onTrue: Lazy<IO<R2, E2, C>>,
|
|
1091
|
-
): IO<R
|
|
1091
|
+
): IO<R | R1 | R2, E | E1 | E2, B | C> {
|
|
1092
1092
|
return self.flatMap((b) => (b ? onTrue() : onFalse()));
|
|
1093
1093
|
}
|
|
1094
1094
|
|
|
@@ -1100,7 +1100,7 @@ export function if_<R, E, A, R1, E1, A1>(
|
|
|
1100
1100
|
onTrue: Lazy<IO<R, E, A>>,
|
|
1101
1101
|
onFalse: Lazy<IO<R1, E1, A1>>,
|
|
1102
1102
|
__tsplusTrace?: string,
|
|
1103
|
-
): IO<R
|
|
1103
|
+
): IO<R | R1, E | E1, A | A1> {
|
|
1104
1104
|
return IO.succeedNow(b).ifIO(onTrue, onFalse);
|
|
1105
1105
|
}
|
|
1106
1106
|
|
|
@@ -1314,7 +1314,7 @@ export function matchCauseIO_<R, E, A, R1, E1, A1, R2, E2, A2>(
|
|
|
1314
1314
|
onFailure: (cause: Cause<E>) => IO<R1, E1, A1>,
|
|
1315
1315
|
onSuccess: (a: A) => IO<R2, E2, A2>,
|
|
1316
1316
|
__tsplusTrace?: string,
|
|
1317
|
-
): IO<R
|
|
1317
|
+
): IO<R | R1 | R2, E1 | E2, A1 | A2> {
|
|
1318
1318
|
return new Match(self, onFailure, onSuccess, __tsplusTrace);
|
|
1319
1319
|
}
|
|
1320
1320
|
|
|
@@ -1326,7 +1326,7 @@ export function matchIO_<R, R1, R2, E, E1, E2, A, A1, A2>(
|
|
|
1326
1326
|
onFailure: (e: E) => IO<R1, E1, A1>,
|
|
1327
1327
|
onSuccess: (a: A) => IO<R2, E2, A2>,
|
|
1328
1328
|
__tsplusTrace?: string,
|
|
1329
|
-
): IO<R
|
|
1329
|
+
): IO<R | R1 | R2, E1 | E2, A1 | A2> {
|
|
1330
1330
|
return self.matchCauseIO((cause) => cause.failureOrCause.match(onFailure, IO.failCauseNow), onSuccess);
|
|
1331
1331
|
}
|
|
1332
1332
|
|
|
@@ -1359,7 +1359,7 @@ export function matchTraceIO_<R, E, A, R1, E1, A1, R2, E2, A2>(
|
|
|
1359
1359
|
onFailure: (e: E, trace: Trace) => IO<R1, E1, A1>,
|
|
1360
1360
|
onSuccess: (a: A) => IO<R2, E2, A2>,
|
|
1361
1361
|
__tsplusTrace?: string,
|
|
1362
|
-
): IO<R
|
|
1362
|
+
): IO<R | R1 | R2, E1 | E2, A1 | A2> {
|
|
1363
1363
|
return ma.matchCauseIO(
|
|
1364
1364
|
(cause) => cause.failureTraceOrCause.match(([e, trace]) => onFailure(e, trace), IO.failCauseNow),
|
|
1365
1365
|
onSuccess,
|
|
@@ -1401,7 +1401,7 @@ export function mergeAll_<R, E, A, B>(
|
|
|
1401
1401
|
* @tsplus static fncts.io.IOOps never
|
|
1402
1402
|
*/
|
|
1403
1403
|
export const never: UIO<never> = defer(() =>
|
|
1404
|
-
asyncInterrupt<
|
|
1404
|
+
asyncInterrupt<never, never, never>(() => {
|
|
1405
1405
|
const interval = setInterval(() => {
|
|
1406
1406
|
//
|
|
1407
1407
|
}, 60000);
|
|
@@ -1437,7 +1437,7 @@ export function or_<R, E, R1, E1>(
|
|
|
1437
1437
|
ma: IO<R, E, boolean>,
|
|
1438
1438
|
mb: IO<R1, E1, boolean>,
|
|
1439
1439
|
__tsplusTrace?: string,
|
|
1440
|
-
): IO<R
|
|
1440
|
+
): IO<R | R1, E | E1, boolean> {
|
|
1441
1441
|
return ma.flatMap((b) => (b ? IO.succeedNow(true) : mb));
|
|
1442
1442
|
}
|
|
1443
1443
|
|
|
@@ -1448,7 +1448,7 @@ export function orElse_<R, E, A, R1, E1, A1>(
|
|
|
1448
1448
|
ma: IO<R, E, A>,
|
|
1449
1449
|
that: Lazy<IO<R1, E1, A1>>,
|
|
1450
1450
|
__tsplusTrace?: string,
|
|
1451
|
-
): IO<R
|
|
1451
|
+
): IO<R | R1, E1, A | A1> {
|
|
1452
1452
|
return tryOrElse_(ma, that, IO.succeedNow);
|
|
1453
1453
|
}
|
|
1454
1454
|
|
|
@@ -1459,7 +1459,7 @@ export function orElseEither_<R, E, A, R1, E1, A1>(
|
|
|
1459
1459
|
self: IO<R, E, A>,
|
|
1460
1460
|
that: Lazy<IO<R1, E1, A1>>,
|
|
1461
1461
|
__tsplusTrace?: string,
|
|
1462
|
-
): IO<R
|
|
1462
|
+
): IO<R | R1, E1, Either<A, A1>> {
|
|
1463
1463
|
return self.tryOrElse(that().map(Either.right), (a) => IO.succeedNow(Either.left(a)));
|
|
1464
1464
|
}
|
|
1465
1465
|
|
|
@@ -1477,7 +1477,7 @@ export function orElseMaybe_<R, E, A, R1, E1, A1>(
|
|
|
1477
1477
|
ma: IO<R, Maybe<E>, A>,
|
|
1478
1478
|
that: Lazy<IO<R1, Maybe<E1>, A1>>,
|
|
1479
1479
|
__tsplusTrace?: string,
|
|
1480
|
-
): IO<R
|
|
1480
|
+
): IO<R | R1, Maybe<E | E1>, A | A1> {
|
|
1481
1481
|
return ma.catchAll((me) => me.match(that, (e) => IO.fail(Just(e))));
|
|
1482
1482
|
}
|
|
1483
1483
|
|
|
@@ -1591,7 +1591,7 @@ export function rejectIO_<R, E, A, R1, E1>(
|
|
|
1591
1591
|
fa: IO<R, E, A>,
|
|
1592
1592
|
pf: (a: A) => Maybe<IO<R1, E1, E1>>,
|
|
1593
1593
|
__tsplusTrace?: string,
|
|
1594
|
-
): IO<R
|
|
1594
|
+
): IO<R | R1, E | E1, A> {
|
|
1595
1595
|
return fa.flatMap((a) =>
|
|
1596
1596
|
pf(a).match(
|
|
1597
1597
|
() => IO.succeedNow(a),
|
|
@@ -1627,7 +1627,7 @@ export function repeatUntilIO_<R, E, A, R1, E1>(
|
|
|
1627
1627
|
ma: IO<R, E, A>,
|
|
1628
1628
|
f: (a: A) => IO<R1, E1, boolean>,
|
|
1629
1629
|
__tsplusTrace?: string,
|
|
1630
|
-
): IO<R
|
|
1630
|
+
): IO<R | R1, E | E1, A> {
|
|
1631
1631
|
return ma.flatMap((a) => f(a).flatMap((b) => (b ? IO.succeed(a) : ma.repeatUntilIO(f))));
|
|
1632
1632
|
}
|
|
1633
1633
|
|
|
@@ -1649,7 +1649,7 @@ export function repeatWhileIO_<R, E, A, R1, E1>(
|
|
|
1649
1649
|
ma: IO<R, E, A>,
|
|
1650
1650
|
f: (a: A) => IO<R1, E1, boolean>,
|
|
1651
1651
|
__tsplusTrace?: string,
|
|
1652
|
-
): IO<R
|
|
1652
|
+
): IO<R | R1, E | E1, A> {
|
|
1653
1653
|
return ma.flatMap((a) => f(a).flatMap((b) => (b ? ma.repeatWhileIO(f) : IO.succeed(a))));
|
|
1654
1654
|
}
|
|
1655
1655
|
|
|
@@ -1707,7 +1707,7 @@ export function retryUntilIO_<R, E, A, R1, E1>(
|
|
|
1707
1707
|
fa: IO<R, E, A>,
|
|
1708
1708
|
f: (e: E) => IO<R1, E1, boolean>,
|
|
1709
1709
|
__tsplusTrace?: string,
|
|
1710
|
-
): IO<R
|
|
1710
|
+
): IO<R | R1, E | E1, A> {
|
|
1711
1711
|
return fa.catchAll((e) => f(e).flatMap((b) => (b ? IO.failNow(e) : fa.retryUntilIO(f))));
|
|
1712
1712
|
}
|
|
1713
1713
|
|
|
@@ -1729,7 +1729,7 @@ export function retryWhileIO_<R, E, A, R1, E1>(
|
|
|
1729
1729
|
fa: IO<R, E, A>,
|
|
1730
1730
|
f: (e: E) => IO<R1, E1, boolean>,
|
|
1731
1731
|
__tsplusTrace?: string,
|
|
1732
|
-
): IO<R
|
|
1732
|
+
): IO<R | R1, E | E1, A> {
|
|
1733
1733
|
return fa.catchAll((e) => f(e).flatMap((b) => (b ? fa.retryWhileIO(f) : IO.fail(e))));
|
|
1734
1734
|
}
|
|
1735
1735
|
|
|
@@ -1787,7 +1787,7 @@ export function sequenceIterableDiscard<R, E, A>(as: Iterable<IO<R, E, A>>, __ts
|
|
|
1787
1787
|
*
|
|
1788
1788
|
* @tsplus static fncts.io.IOOps succeedNow
|
|
1789
1789
|
*/
|
|
1790
|
-
export function succeedNow<A>(value: A, __tsplusTrace?: string): IO<
|
|
1790
|
+
export function succeedNow<A>(value: A, __tsplusTrace?: string): IO<never, never, A> {
|
|
1791
1791
|
return new SucceedNow(value, __tsplusTrace);
|
|
1792
1792
|
}
|
|
1793
1793
|
|
|
@@ -1826,7 +1826,7 @@ export function summarized_<R, E, A, R1, E1, B, C>(
|
|
|
1826
1826
|
summary: IO<R1, E1, B>,
|
|
1827
1827
|
f: (start: B, end: B) => C,
|
|
1828
1828
|
__tsplusTrace?: string,
|
|
1829
|
-
): IO<R
|
|
1829
|
+
): IO<R | R1, E | E1, readonly [C, A]> {
|
|
1830
1830
|
return gen(function* (_) {
|
|
1831
1831
|
const start = yield* _(summary);
|
|
1832
1832
|
const value = yield* _(ma);
|
|
@@ -1898,7 +1898,7 @@ export function tap_<R, E, A, R1, E1, B>(
|
|
|
1898
1898
|
self: IO<R, E, A>,
|
|
1899
1899
|
f: (a: A) => IO<R1, E1, B>,
|
|
1900
1900
|
__tsplusTrace?: string,
|
|
1901
|
-
): IO<R1
|
|
1901
|
+
): IO<R1 | R, E1 | E, A> {
|
|
1902
1902
|
return self.flatMap((a) => f(a).map(() => a));
|
|
1903
1903
|
}
|
|
1904
1904
|
|
|
@@ -1912,7 +1912,7 @@ export function tapCause_<R2, A2, R, E, E2>(
|
|
|
1912
1912
|
ma: IO<R2, E2, A2>,
|
|
1913
1913
|
f: (e: Cause<E2>) => IO<R, E, any>,
|
|
1914
1914
|
__tsplusTrace?: string,
|
|
1915
|
-
): IO<R2
|
|
1915
|
+
): IO<R2 | R, E | E2, A2> {
|
|
1916
1916
|
return ma.matchCauseIO((c) => f(c).flatMap(() => IO.failCauseNow(c)), IO.succeedNow);
|
|
1917
1917
|
}
|
|
1918
1918
|
|
|
@@ -1942,7 +1942,7 @@ export function tapErrorCause_<R, E, A, R1, E1>(
|
|
|
1942
1942
|
self: IO<R, E, A>,
|
|
1943
1943
|
f: (e: Cause<E>) => IO<R1, E1, any>,
|
|
1944
1944
|
__tsplusTrace?: string,
|
|
1945
|
-
): IO<R
|
|
1945
|
+
): IO<R | R1, E | E1, A> {
|
|
1946
1946
|
return self.matchCauseIO((cause) => f(cause).apSecond(IO.failCauseNow(cause)), IO.succeedNow);
|
|
1947
1947
|
}
|
|
1948
1948
|
|
|
@@ -1954,7 +1954,7 @@ export function tryOrElse_<R, E, A, R1, E1, A1, R2, E2, A2>(
|
|
|
1954
1954
|
that: Lazy<IO<R1, E1, A1>>,
|
|
1955
1955
|
onSuccess: (a: A) => IO<R2, E2, A2>,
|
|
1956
1956
|
__tsplusTrace?: string,
|
|
1957
|
-
): IO<R
|
|
1957
|
+
): IO<R | R1 | R2, E1 | E2, A1 | A2> {
|
|
1958
1958
|
return ma.matchCauseIO((cause) => cause.keepDefects.match(that, IO.failCauseNow), onSuccess);
|
|
1959
1959
|
}
|
|
1960
1960
|
|
|
@@ -2031,7 +2031,7 @@ export function when_<R, E, A>(ma: IO<R, E, A>, b: Lazy<boolean>, __tsplusTrace?
|
|
|
2031
2031
|
*
|
|
2032
2032
|
* @tsplus fluent fncts.io.IO whenIO
|
|
2033
2033
|
*/
|
|
2034
|
-
export function whenIO_<R, E, A, R1, E1>(ma: IO<R, E, A>, mb: IO<R1, E1, boolean>): IO<R1
|
|
2034
|
+
export function whenIO_<R, E, A, R1, E1>(ma: IO<R, E, A>, mb: IO<R1, E1, boolean>): IO<R1 | R, E | E1, void> {
|
|
2035
2035
|
return mb.flatMap((b) => (b ? ma.asUnit : IO.unit));
|
|
2036
2036
|
}
|
|
2037
2037
|
|
|
@@ -2047,7 +2047,7 @@ export const yieldNow: UIO<void> = new Yield();
|
|
|
2047
2047
|
/**
|
|
2048
2048
|
* @tsplus fluent fncts.io.IO zip
|
|
2049
2049
|
*/
|
|
2050
|
-
export function zip_<R, E, A, R1, E1, B>(self: IO<R, E, A>, that: IO<R1, E1, B>): IO<R
|
|
2050
|
+
export function zip_<R, E, A, R1, E1, B>(self: IO<R, E, A>, that: IO<R1, E1, B>): IO<R | R1, E | E1, readonly [A, B]> {
|
|
2051
2051
|
return self.zipWith(that, tuple);
|
|
2052
2052
|
}
|
|
2053
2053
|
|
|
@@ -2058,12 +2058,12 @@ export function zipWith_<R, E, A, R1, E1, B, C>(
|
|
|
2058
2058
|
self: IO<R, E, A>,
|
|
2059
2059
|
that: IO<R1, E1, B>,
|
|
2060
2060
|
f: (a: A, b: B) => C,
|
|
2061
|
-
): IO<R
|
|
2061
|
+
): IO<R | R1, E | E1, C> {
|
|
2062
2062
|
return self.flatMap((a) => that.map((b) => f(a, b)));
|
|
2063
2063
|
}
|
|
2064
2064
|
|
|
2065
2065
|
export class GenIO<R, E, A> {
|
|
2066
|
-
readonly _R!: (
|
|
2066
|
+
readonly _R!: () => R;
|
|
2067
2067
|
readonly _E!: () => E;
|
|
2068
2068
|
readonly _A!: () => A;
|
|
2069
2069
|
|
package/_src/IO/definition.ts
CHANGED
|
@@ -4,7 +4,14 @@ import type { FiberContext } from "@fncts/io/Fiber/FiberContext";
|
|
|
4
4
|
export const IOTypeId = Symbol.for("fncts.io.IO");
|
|
5
5
|
export type IOTypeId = typeof IOTypeId;
|
|
6
6
|
|
|
7
|
-
export interface IOF extends
|
|
7
|
+
export interface IOF extends HKT {
|
|
8
|
+
type: IO<this["R"], this["E"], this["A"]>;
|
|
9
|
+
variance: {
|
|
10
|
+
R: "-";
|
|
11
|
+
E: "+";
|
|
12
|
+
A: "+";
|
|
13
|
+
};
|
|
14
|
+
}
|
|
8
15
|
|
|
9
16
|
/**
|
|
10
17
|
* @tsplus type fncts.io.IO
|
|
@@ -12,11 +19,9 @@ export interface IOF extends IO<any, any, any> {}
|
|
|
12
19
|
*/
|
|
13
20
|
export abstract class IO<R, E, A> {
|
|
14
21
|
readonly _typeId: IOTypeId = IOTypeId;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
readonly [HKT.A]!: () => A;
|
|
19
|
-
readonly [HKT.T]!: IO<HKT._R<this>, HKT._E<this>, HKT._A<this>>;
|
|
22
|
+
declare _R: () => R;
|
|
23
|
+
declare _E: () => E;
|
|
24
|
+
declare _A: () => A;
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
/**
|
|
@@ -42,11 +47,11 @@ export function unifyIO<X extends IO<any, any, any>>(
|
|
|
42
47
|
return self;
|
|
43
48
|
}
|
|
44
49
|
|
|
45
|
-
export type UIO<A> = IO<
|
|
50
|
+
export type UIO<A> = IO<never, never, A>;
|
|
46
51
|
|
|
47
52
|
export type URIO<R, A> = IO<R, never, A>;
|
|
48
53
|
|
|
49
|
-
export type FIO<E, A> = IO<
|
|
54
|
+
export type FIO<E, A> = IO<never, E, A>;
|
|
50
55
|
|
|
51
56
|
export const enum IOTag {
|
|
52
57
|
SucceedNow = "SucceedNow",
|
|
@@ -86,7 +91,7 @@ export function isIO(u: unknown): u is IO<any, any, any> {
|
|
|
86
91
|
/**
|
|
87
92
|
* @internal
|
|
88
93
|
*/
|
|
89
|
-
export class Chain<R, R1, E, E1, A, A1> extends IO<R
|
|
94
|
+
export class Chain<R, R1, E, E1, A, A1> extends IO<R | R1, E | E1, A1> {
|
|
90
95
|
readonly _tag = IOTag.Chain;
|
|
91
96
|
constructor(readonly io: IO<R, E, A>, readonly f: (a: A) => IO<R1, E1, A1>, readonly trace?: string) {
|
|
92
97
|
super();
|
|
@@ -96,7 +101,7 @@ export class Chain<R, R1, E, E1, A, A1> extends IO<R & R1, E | E1, A1> {
|
|
|
96
101
|
/**
|
|
97
102
|
* @internal
|
|
98
103
|
*/
|
|
99
|
-
export class SucceedNow<A> extends IO<
|
|
104
|
+
export class SucceedNow<A> extends IO<never, never, A> {
|
|
100
105
|
readonly _tag = IOTag.SucceedNow;
|
|
101
106
|
constructor(readonly value: A, readonly trace?: string) {
|
|
102
107
|
super();
|
|
@@ -106,21 +111,21 @@ export class SucceedNow<A> extends IO<unknown, never, A> {
|
|
|
106
111
|
/**
|
|
107
112
|
* @internal
|
|
108
113
|
*/
|
|
109
|
-
export class Succeed<A> extends IO<
|
|
114
|
+
export class Succeed<A> extends IO<never, never, A> {
|
|
110
115
|
readonly _tag = IOTag.Succeed;
|
|
111
116
|
constructor(readonly effect: () => A, readonly trace?: string) {
|
|
112
117
|
super();
|
|
113
118
|
}
|
|
114
119
|
}
|
|
115
120
|
|
|
116
|
-
export class SucceedWith<A> extends IO<
|
|
121
|
+
export class SucceedWith<A> extends IO<never, never, A> {
|
|
117
122
|
readonly _tag = IOTag.SucceedWith;
|
|
118
123
|
constructor(readonly effect: (runtimeConfig: RuntimeConfig, fiberId: FiberId) => A, readonly trace?: string) {
|
|
119
124
|
super();
|
|
120
125
|
}
|
|
121
126
|
}
|
|
122
127
|
|
|
123
|
-
export class Trace extends IO<
|
|
128
|
+
export class Trace extends IO<never, never, Trace_> {
|
|
124
129
|
readonly _tag = IOTag.Trace;
|
|
125
130
|
constructor(readonly trace?: string) {
|
|
126
131
|
super();
|
|
@@ -130,7 +135,7 @@ export class Trace extends IO<unknown, never, Trace_> {
|
|
|
130
135
|
/**
|
|
131
136
|
* @internal
|
|
132
137
|
*/
|
|
133
|
-
export class Async<R, E, A, R1> extends IO<R
|
|
138
|
+
export class Async<R, E, A, R1> extends IO<R | R1, E, A> {
|
|
134
139
|
readonly _tag = IOTag.Async;
|
|
135
140
|
constructor(
|
|
136
141
|
readonly register: (f: (_: IO<R, E, A>) => void) => Either<Canceler<R1>, IO<R, E, A>>,
|
|
@@ -144,7 +149,7 @@ export class Async<R, E, A, R1> extends IO<R & R1, E, A> {
|
|
|
144
149
|
/**
|
|
145
150
|
* @internal
|
|
146
151
|
*/
|
|
147
|
-
export class Match<R, E, A, R1, E1, B, R2, E2, C> extends IO<R
|
|
152
|
+
export class Match<R, E, A, R1, E1, B, R2, E2, C> extends IO<R | R1 | R2, E1 | E2, B | C> {
|
|
148
153
|
readonly _tag = IOTag.Match;
|
|
149
154
|
|
|
150
155
|
constructor(
|
|
@@ -173,7 +178,7 @@ export class Fork<R, E, A> extends IO<R, never, FiberContext<E, A>> {
|
|
|
173
178
|
/**
|
|
174
179
|
* @internal
|
|
175
180
|
*/
|
|
176
|
-
export class Fail<E> extends IO<
|
|
181
|
+
export class Fail<E> extends IO<never, E, never> {
|
|
177
182
|
readonly _tag = IOTag.Fail;
|
|
178
183
|
|
|
179
184
|
constructor(readonly cause: Lazy<Cause<E>>, readonly trace?: string) {
|
|
@@ -184,7 +189,7 @@ export class Fail<E> extends IO<unknown, E, never> {
|
|
|
184
189
|
/**
|
|
185
190
|
* @internal
|
|
186
191
|
*/
|
|
187
|
-
export class Yield extends IO<
|
|
192
|
+
export class Yield extends IO<never, never, void> {
|
|
188
193
|
readonly _tag = IOTag.Yield;
|
|
189
194
|
|
|
190
195
|
constructor(readonly trace?: string) {
|
|
@@ -217,7 +222,7 @@ export class DeferWith<R, E, A> extends IO<R, E, A> {
|
|
|
217
222
|
/**
|
|
218
223
|
* @internal
|
|
219
224
|
*/
|
|
220
|
-
export class Race<R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3> extends IO<R
|
|
225
|
+
export class Race<R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3> extends IO<R | R1 | R2 | R3, E2 | E3, A2 | A3> {
|
|
221
226
|
readonly _tag = "Race";
|
|
222
227
|
|
|
223
228
|
constructor(
|
|
@@ -278,7 +283,7 @@ export class Supervise<R, E, A> extends IO<R, E, A> {
|
|
|
278
283
|
/**
|
|
279
284
|
* @internal
|
|
280
285
|
*/
|
|
281
|
-
export class FiberRefModify<A, B> extends IO<
|
|
286
|
+
export class FiberRefModify<A, B> extends IO<never, never, B> {
|
|
282
287
|
readonly _tag = IOTag.FiberRefModify;
|
|
283
288
|
|
|
284
289
|
constructor(readonly fiberRef: FiberRef<unknown>, readonly f: (a: A) => readonly [B, A], readonly trace?: string) {
|
|
@@ -298,7 +303,7 @@ export class FiberRefLocally<V, R, E, A> extends IO<R, E, A> {
|
|
|
298
303
|
}
|
|
299
304
|
}
|
|
300
305
|
|
|
301
|
-
export class FiberRefDelete extends IO<
|
|
306
|
+
export class FiberRefDelete extends IO<never, never, void> {
|
|
302
307
|
readonly _tag = IOTag.FiberRefDelete;
|
|
303
308
|
constructor(readonly fiberRef: FiberRef<unknown>, readonly trace?: string) {
|
|
304
309
|
super();
|
|
@@ -312,7 +317,7 @@ export class FiberRefWith<A, P, R, E, B> extends IO<R, E, B> {
|
|
|
312
317
|
}
|
|
313
318
|
}
|
|
314
319
|
|
|
315
|
-
export class FiberRefModifyAll<A> extends IO<
|
|
320
|
+
export class FiberRefModifyAll<A> extends IO<never, never, A> {
|
|
316
321
|
readonly _tag = IOTag.FiberRefModifyAll;
|
|
317
322
|
constructor(
|
|
318
323
|
readonly f: (fiberId: FiberId.Runtime, fiberRefs: FiberRefs) => readonly [A, FiberRefs],
|
|
@@ -352,14 +357,14 @@ export class GetRuntimeConfig<R, E, A> extends IO<R, E, A> {
|
|
|
352
357
|
}
|
|
353
358
|
}
|
|
354
359
|
|
|
355
|
-
export class Ensuring<R, E, A, R1> extends IO<R
|
|
360
|
+
export class Ensuring<R, E, A, R1> extends IO<R | R1, E, A> {
|
|
356
361
|
readonly _tag = IOTag.Ensuring;
|
|
357
362
|
constructor(readonly io: IO<R, E, A>, readonly finalizer: IO<R1, never, any>, readonly trace?: string) {
|
|
358
363
|
super();
|
|
359
364
|
}
|
|
360
365
|
}
|
|
361
366
|
|
|
362
|
-
export class Logged extends IO<
|
|
367
|
+
export class Logged extends IO<never, never, void> {
|
|
363
368
|
readonly _tag = IOTag.Logged;
|
|
364
369
|
constructor(
|
|
365
370
|
readonly message: () => string,
|
|
@@ -373,7 +378,7 @@ export class Logged extends IO<unknown, never, void> {
|
|
|
373
378
|
}
|
|
374
379
|
}
|
|
375
380
|
|
|
376
|
-
export class SetRuntimeConfig extends IO<
|
|
381
|
+
export class SetRuntimeConfig extends IO<never, never, void> {
|
|
377
382
|
readonly _tag = IOTag.SetRuntimeConfig;
|
|
378
383
|
constructor(readonly runtimeConfig: RuntimeConfig, readonly trace?: string) {
|
|
379
384
|
super();
|