@fncts/io 0.0.20 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cached/api.d.ts +2 -2
- package/Channel/ChildExecutorDecision/api.d.ts +2 -2
- package/Channel/UpstreamPullRequest/api.d.ts +2 -2
- package/Channel/api/interruptWhen.d.ts +5 -5
- package/Channel/api/mapOutIOC.d.ts +3 -3
- package/Channel/api/mergeAll.d.ts +2 -2
- package/Channel/api/mergeAllUnboundedWith.d.ts +2 -2
- package/Channel/api/mergeAllWith.d.ts +2 -2
- package/Channel/api/mergeMap.d.ts +2 -2
- package/Channel/api/mergeWith.d.ts +2 -2
- package/Channel/api/zipC.d.ts +6 -6
- package/Channel/api.d.ts +64 -64
- package/Channel/core-api.d.ts +11 -11
- package/Channel/definition.d.ts +35 -21
- package/Fiber/api/evalOn.d.ts +3 -3
- package/Fiber/api/evalOnIO.d.ts +3 -3
- package/Fiber/api/interruptAs.d.ts +3 -3
- package/Fiber/api/interruptAsFork.d.ts +3 -3
- package/Fiber/api/mapFiber.d.ts +2 -2
- package/Fiber/api/mapIO.d.ts +5 -5
- package/Fiber/api/zipWith.d.ts +2 -2
- package/Fiber.d.ts +1 -0
- package/FiberRef/api/locallyScoped.d.ts +2 -2
- package/FiberRef/api/locallyScopedWith.d.ts +2 -2
- package/FiberRef/api.d.ts +18 -18
- package/FiberRefs/api.d.ts +2 -2
- package/FiberRefs/join.d.ts +3 -3
- package/Future/api.d.ts +21 -21
- package/Hub/constructors.d.ts +49 -0
- package/Hub/definition.d.ts +37 -81
- package/Hub/internal.d.ts +4 -11
- package/Hub.d.ts +1 -1
- package/IO/api/acquireRelease.d.ts +1 -1
- package/IO/api/acquireReleaseExit.d.ts +1 -1
- package/IO/api/bracket.d.ts +1 -1
- package/IO/api/bracketExit.d.ts +1 -1
- package/IO/api/concurrency.d.ts +2 -2
- package/IO/api/core-scope.d.ts +5 -5
- package/IO/api/ensuringChildren.d.ts +3 -3
- package/IO/api/environment.d.ts +11 -15
- package/IO/api/foreachC.d.ts +2 -2
- package/IO/api/foreachExec.d.ts +1 -1
- package/IO/api/forkIn.d.ts +3 -3
- package/IO/api/fulfill.d.ts +3 -3
- package/IO/api/interrupt.d.ts +6 -6
- package/IO/api/onExit.d.ts +3 -3
- package/IO/api/onTermination.d.ts +4 -4
- package/IO/api/provideLayer.d.ts +3 -3
- package/IO/api/provideSomeLayer.d.ts +3 -7
- package/IO/api/race.d.ts +2 -2
- package/IO/api/raceFirst.d.ts +2 -2
- package/IO/api/repeat.d.ts +3 -3
- package/IO/api/retry.d.ts +7 -7
- package/IO/api/schedule.d.ts +5 -5
- package/IO/api/scoped.d.ts +2 -2
- package/IO/api/supervised.d.ts +3 -3
- package/IO/api/timeout.d.ts +5 -5
- package/IO/api/withFinalizer.d.ts +3 -3
- package/IO/api/withFinalizerExit.d.ts +3 -3
- package/IO/api/withRuntimeConfig.d.ts +3 -3
- package/IO/api/zipC.d.ts +4 -4
- package/IO/api.d.ts +179 -176
- package/IO/definition.d.ts +15 -9
- package/Layer/MemoMap.d.ts +4 -4
- package/Layer/api.d.ts +28 -28
- package/LogLevel.d.ts +12 -12
- package/LogSpan.d.ts +2 -2
- package/Logger/api.d.ts +5 -5
- package/Queue/constructors.d.ts +2 -1
- package/Queue/definition.d.ts +91 -82
- package/Queue/internal.d.ts +7 -9
- package/Queue.d.ts +0 -2
- package/Ref/Atomic.d.ts +15 -2
- package/Ref/Synchronized.d.ts +72 -0
- package/Ref/constructors.d.ts +7 -0
- package/Ref/definition.d.ts +60 -58
- package/Ref.d.ts +1 -6
- package/STM/api/core-api.d.ts +10 -10
- package/STM/api.d.ts +61 -61
- package/STM/internal/Journal.d.ts +4 -4
- package/Schedule/Decision.d.ts +2 -2
- package/Schedule/api.d.ts +94 -94
- package/Scope/ReleaseMap/api/releaseAll.d.ts +2 -2
- package/Scope/ReleaseMap/api.d.ts +10 -10
- package/Scope/api.d.ts +8 -8
- package/Sink/api.d.ts +68 -68
- package/State/api.d.ts +4 -4
- package/State/internal.d.ts +1 -1
- package/Stream/api/zipAllWith.d.ts +2 -2
- package/Stream/api/zipWith.d.ts +2 -2
- package/Stream/api/zipWithChunks.d.ts +2 -2
- package/Stream/api.d.ts +216 -205
- package/Stream/internal/DebounceState.d.ts +3 -3
- package/Stream/internal/Handoff.d.ts +5 -5
- package/Stream/internal/Pull.d.ts +2 -2
- package/Stream/internal/SinkEndReason.d.ts +3 -3
- package/Stream/internal/Take.d.ts +8 -8
- package/SubscriptionRef.d.ts +29 -0
- package/Supervisor/api.d.ts +4 -4
- package/SupervisorPatch.d.ts +4 -4
- package/TFuture/api.d.ts +7 -7
- package/TReentrantLock/api.d.ts +4 -4
- package/TRef/api.d.ts +24 -24
- package/TSemaphore/api.d.ts +4 -4
- package/TSemaphore/constructors.d.ts +6 -0
- package/_cjs/Cached/api.cjs +9 -9
- package/_cjs/Cached/api.cjs.map +1 -1
- package/_cjs/Channel/ChildExecutorDecision/api.cjs +19 -17
- package/_cjs/Channel/ChildExecutorDecision/api.cjs.map +1 -1
- package/_cjs/Channel/UpstreamPullRequest/api.cjs +16 -14
- package/_cjs/Channel/UpstreamPullRequest/api.cjs.map +1 -1
- package/_cjs/Channel/api/interruptWhen.cjs +14 -10
- package/_cjs/Channel/api/interruptWhen.cjs.map +1 -1
- package/_cjs/Channel/api/mapOutIOC.cjs +25 -25
- package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAll.cjs +6 -4
- package/_cjs/Channel/api/mergeAll.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAllUnboundedWith.cjs +6 -4
- package/_cjs/Channel/api/mergeAllUnboundedWith.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAllWith.cjs +48 -52
- package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
- package/_cjs/Channel/api/mergeMap.cjs +6 -4
- package/_cjs/Channel/api/mergeMap.cjs.map +1 -1
- package/_cjs/Channel/api/mergeWith.cjs +48 -46
- package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
- package/_cjs/Channel/api/run.cjs +1 -1
- package/_cjs/Channel/api/run.cjs.map +1 -1
- package/_cjs/Channel/api/runScoped.cjs +2 -2
- package/_cjs/Channel/api/runScoped.cjs.map +1 -1
- package/_cjs/Channel/api/toPull.cjs +3 -3
- package/_cjs/Channel/api/toPull.cjs.map +1 -1
- package/_cjs/Channel/api/zipC.cjs +20 -14
- package/_cjs/Channel/api/zipC.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +264 -218
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Channel/core-api.cjs +34 -24
- package/_cjs/Channel/core-api.cjs.map +1 -1
- package/_cjs/Channel/definition.cjs +1 -1
- package/_cjs/Channel/definition.cjs.map +1 -1
- package/_cjs/Channel/internal/ChannelExecutor.cjs +83 -83
- package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +22 -24
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
- package/_cjs/Differ/api.cjs +5 -5
- package/_cjs/Differ/api.cjs.map +1 -1
- package/_cjs/Fiber/FiberContext.cjs +48 -48
- package/_cjs/Fiber/FiberContext.cjs.map +1 -1
- package/_cjs/Fiber/api/awaitAll.cjs +1 -1
- package/_cjs/Fiber/api/awaitAll.cjs.map +1 -1
- package/_cjs/Fiber/api/collectAll.cjs +1 -1
- package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
- package/_cjs/Fiber/api/evalOn.cjs +12 -10
- package/_cjs/Fiber/api/evalOn.cjs.map +1 -1
- package/_cjs/Fiber/api/evalOnIO.cjs +6 -4
- package/_cjs/Fiber/api/evalOnIO.cjs.map +1 -1
- package/_cjs/Fiber/api/fromIO.cjs +1 -1
- package/_cjs/Fiber/api/fromIO.cjs.map +1 -1
- package/_cjs/Fiber/api/interrupt.cjs +1 -1
- package/_cjs/Fiber/api/interrupt.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptAll.cjs +2 -2
- package/_cjs/Fiber/api/interruptAll.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptAs.cjs +6 -4
- package/_cjs/Fiber/api/interruptAs.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptAsFork.cjs +6 -4
- package/_cjs/Fiber/api/interruptAsFork.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptFork.cjs +1 -1
- package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
- package/_cjs/Fiber/api/join.cjs +1 -1
- package/_cjs/Fiber/api/join.cjs.map +1 -1
- package/_cjs/Fiber/api/joinAll.cjs +1 -1
- package/_cjs/Fiber/api/joinAll.cjs.map +1 -1
- package/_cjs/Fiber/api/mapFiber.cjs +6 -4
- package/_cjs/Fiber/api/mapFiber.cjs.map +1 -1
- package/_cjs/Fiber/api/mapIO.cjs +14 -10
- package/_cjs/Fiber/api/mapIO.cjs.map +1 -1
- package/_cjs/Fiber/api/zipWith.cjs +6 -4
- package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
- package/_cjs/Fiber/definition.cjs.map +1 -1
- package/_cjs/Fiber.cjs +13 -0
- package/_cjs/Fiber.cjs.map +1 -1
- package/_cjs/FiberRef/api/locallyScoped.cjs +6 -4
- package/_cjs/FiberRef/api/locallyScoped.cjs.map +1 -1
- package/_cjs/FiberRef/api/locallyScopedWith.cjs +5 -3
- package/_cjs/FiberRef/api/locallyScopedWith.cjs.map +1 -1
- package/_cjs/FiberRef/api.cjs +64 -47
- package/_cjs/FiberRef/api.cjs.map +1 -1
- package/_cjs/FiberRef/constructors.cjs +1 -1
- package/_cjs/FiberRef/constructors.cjs.map +1 -1
- package/_cjs/FiberRef.cjs.map +1 -1
- package/_cjs/FiberRefs/api.cjs +15 -13
- package/_cjs/FiberRefs/api.cjs.map +1 -1
- package/_cjs/FiberRefs/join.cjs +37 -35
- package/_cjs/FiberRefs/join.cjs.map +1 -1
- package/_cjs/FiberState/definition.cjs.map +1 -1
- package/_cjs/Future/api.cjs +97 -79
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/Future/constructors.cjs +1 -1
- package/_cjs/Future/constructors.cjs.map +1 -1
- package/_cjs/Hub/constructors.cjs +93 -0
- package/_cjs/Hub/constructors.cjs.map +1 -0
- package/_cjs/Hub/definition.cjs +104 -13
- package/_cjs/Hub/definition.cjs.map +1 -1
- package/_cjs/Hub/internal.cjs +104 -129
- package/_cjs/Hub/internal.cjs.map +1 -1
- package/_cjs/Hub.cjs +4 -4
- package/_cjs/IO/api/acquireReleaseExit.cjs +1 -1
- package/_cjs/IO/api/acquireReleaseExit.cjs.map +1 -1
- package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs +1 -1
- package/_cjs/IO/api/acquireReleaseInterruptibleExit.cjs.map +1 -1
- package/_cjs/IO/api/addFinalizerExit.cjs +1 -1
- package/_cjs/IO/api/addFinalizerExit.cjs.map +1 -1
- package/_cjs/IO/api/asyncIO.cjs +4 -4
- package/_cjs/IO/api/asyncIO.cjs.map +1 -1
- package/_cjs/IO/api/bracket.cjs +3 -3
- package/_cjs/IO/api/bracket.cjs.map +1 -1
- package/_cjs/IO/api/bracketExit.cjs +3 -3
- package/_cjs/IO/api/bracketExit.cjs.map +1 -1
- package/_cjs/IO/api/clockWith.cjs +2 -2
- package/_cjs/IO/api/clockWith.cjs.map +1 -1
- package/_cjs/IO/api/concurrency.cjs +9 -7
- package/_cjs/IO/api/concurrency.cjs.map +1 -1
- package/_cjs/IO/api/concurrentFinalizers.cjs +1 -1
- package/_cjs/IO/api/concurrentFinalizers.cjs.map +1 -1
- package/_cjs/IO/api/consoleWith.cjs +2 -2
- package/_cjs/IO/api/consoleWith.cjs.map +1 -1
- package/_cjs/IO/api/core-scope.cjs +45 -41
- package/_cjs/IO/api/core-scope.cjs.map +1 -1
- package/_cjs/IO/api/ensuringChildren.cjs +5 -3
- package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
- package/_cjs/IO/api/environment.cjs +35 -35
- package/_cjs/IO/api/environment.cjs.map +1 -1
- package/_cjs/IO/api/foreachC.cjs +19 -23
- package/_cjs/IO/api/foreachC.cjs.map +1 -1
- package/_cjs/IO/api/foreachExec.cjs +3 -3
- package/_cjs/IO/api/foreachExec.cjs.map +1 -1
- package/_cjs/IO/api/forkAll.cjs +1 -1
- package/_cjs/IO/api/forkAll.cjs.map +1 -1
- package/_cjs/IO/api/forkIn.cjs +8 -6
- package/_cjs/IO/api/forkIn.cjs.map +1 -1
- package/_cjs/IO/api/forkScoped.cjs +1 -1
- package/_cjs/IO/api/forkScoped.cjs.map +1 -1
- package/_cjs/IO/api/fulfill.cjs +8 -6
- package/_cjs/IO/api/fulfill.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +36 -30
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/memoize.cjs +1 -1
- package/_cjs/IO/api/memoize.cjs.map +1 -1
- package/_cjs/IO/api/onExit.cjs +6 -4
- package/_cjs/IO/api/onExit.cjs.map +1 -1
- package/_cjs/IO/api/onTermination.cjs +5 -3
- package/_cjs/IO/api/onTermination.cjs.map +1 -1
- package/_cjs/IO/api/once.cjs +3 -5
- package/_cjs/IO/api/once.cjs.map +1 -1
- package/_cjs/IO/api/provideLayer.cjs +6 -4
- package/_cjs/IO/api/provideLayer.cjs.map +1 -1
- package/_cjs/IO/api/provideSomeLayer.cjs +5 -15
- package/_cjs/IO/api/provideSomeLayer.cjs.map +1 -1
- package/_cjs/IO/api/race.cjs +6 -4
- package/_cjs/IO/api/race.cjs.map +1 -1
- package/_cjs/IO/api/raceFirst.cjs +6 -4
- package/_cjs/IO/api/raceFirst.cjs.map +1 -1
- package/_cjs/IO/api/randomWith.cjs +1 -1
- package/_cjs/IO/api/randomWith.cjs.map +1 -1
- package/_cjs/IO/api/repeat.cjs +12 -12
- package/_cjs/IO/api/repeat.cjs.map +1 -1
- package/_cjs/IO/api/retry.cjs +14 -14
- package/_cjs/IO/api/retry.cjs.map +1 -1
- package/_cjs/IO/api/schedule.cjs +15 -11
- package/_cjs/IO/api/schedule.cjs.map +1 -1
- package/_cjs/IO/api/scoped.cjs +6 -6
- package/_cjs/IO/api/scoped.cjs.map +1 -1
- package/_cjs/IO/api/sequenceT.cjs +1 -1
- package/_cjs/IO/api/sequenceT.cjs.map +1 -1
- package/_cjs/IO/api/stateful.cjs.map +1 -1
- package/_cjs/IO/api/supervised.cjs +6 -4
- package/_cjs/IO/api/supervised.cjs.map +1 -1
- package/_cjs/IO/api/timeout.cjs +10 -6
- package/_cjs/IO/api/timeout.cjs.map +1 -1
- package/_cjs/IO/api/withChildren.cjs +1 -1
- package/_cjs/IO/api/withChildren.cjs.map +1 -1
- package/_cjs/IO/api/withEarlyRelease.cjs +1 -1
- package/_cjs/IO/api/withEarlyRelease.cjs.map +1 -1
- package/_cjs/IO/api/withFinalizer.cjs +6 -4
- package/_cjs/IO/api/withFinalizer.cjs.map +1 -1
- package/_cjs/IO/api/withFinalizerExit.cjs +6 -4
- package/_cjs/IO/api/withFinalizerExit.cjs.map +1 -1
- package/_cjs/IO/api/withRuntimeConfig.cjs +6 -4
- package/_cjs/IO/api/withRuntimeConfig.cjs.map +1 -1
- package/_cjs/IO/api/zipC.cjs +21 -17
- package/_cjs/IO/api/zipC.cjs.map +1 -1
- package/_cjs/IO/api.cjs +634 -509
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO/runtime.cjs +7 -7
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/IO.cjs.map +1 -1
- package/_cjs/IOEnv/definition.cjs +1 -1
- package/_cjs/IOEnv/definition.cjs.map +1 -1
- package/_cjs/IOEnv/live.cjs +1 -1
- package/_cjs/IOEnv/live.cjs.map +1 -1
- package/_cjs/Layer/MemoMap.cjs +86 -92
- package/_cjs/Layer/MemoMap.cjs.map +1 -1
- package/_cjs/Layer/api.cjs +110 -81
- package/_cjs/Layer/api.cjs.map +1 -1
- package/_cjs/Layer/definition.cjs.map +1 -1
- package/_cjs/LogLevel.cjs +24 -16
- package/_cjs/LogLevel.cjs.map +1 -1
- package/_cjs/LogSpan.cjs +18 -16
- package/_cjs/LogSpan.cjs.map +1 -1
- package/_cjs/Logger/api.cjs +18 -14
- package/_cjs/Logger/api.cjs.map +1 -1
- package/_cjs/Logger/constructors.cjs +1 -1
- package/_cjs/Logger/constructors.cjs.map +1 -1
- package/_cjs/Queue/constructors.cjs +19 -5
- package/_cjs/Queue/constructors.cjs.map +1 -1
- package/_cjs/Queue/definition.cjs +191 -16
- package/_cjs/Queue/definition.cjs.map +1 -1
- package/_cjs/Queue/internal.cjs +27 -181
- package/_cjs/Queue/internal.cjs.map +1 -1
- package/_cjs/Queue/strategy.cjs +19 -19
- package/_cjs/Queue/strategy.cjs.map +1 -1
- package/_cjs/Queue.cjs +0 -26
- package/_cjs/Queue.cjs.map +1 -1
- package/_cjs/Random/live.cjs +2 -2
- package/_cjs/Random/live.cjs.map +1 -1
- package/_cjs/Ref/Atomic.cjs +47 -24
- package/_cjs/Ref/Atomic.cjs.map +1 -1
- package/_cjs/Ref/Synchronized.cjs +140 -0
- package/_cjs/Ref/Synchronized.cjs.map +1 -0
- package/_cjs/Ref/constructors.cjs +21 -2
- package/_cjs/Ref/constructors.cjs.map +1 -1
- package/_cjs/Ref/definition.cjs +105 -10
- package/_cjs/Ref/definition.cjs.map +1 -1
- package/_cjs/Ref.cjs +4 -69
- package/_cjs/Ref.cjs.map +1 -1
- package/_cjs/Reloadable/constructors.cjs +10 -10
- package/_cjs/Reloadable/constructors.cjs.map +1 -1
- package/_cjs/RuntimeConfig.cjs +2 -2
- package/_cjs/RuntimeConfig.cjs.map +1 -1
- package/_cjs/STM/api/core-api.cjs +36 -26
- package/_cjs/STM/api/core-api.cjs.map +1 -1
- package/_cjs/STM/api.cjs +217 -163
- package/_cjs/STM/api.cjs.map +1 -1
- package/_cjs/STM/driver.cjs +3 -3
- package/_cjs/STM/driver.cjs.map +1 -1
- package/_cjs/STM/internal/Entry.cjs.map +1 -1
- package/_cjs/STM/internal/Journal.cjs +33 -29
- package/_cjs/STM/internal/Journal.cjs.map +1 -1
- package/_cjs/STM.cjs.map +1 -1
- package/_cjs/Schedule/Decision.cjs +16 -14
- package/_cjs/Schedule/Decision.cjs.map +1 -1
- package/_cjs/Schedule/api/driver.cjs +16 -20
- package/_cjs/Schedule/api/driver.cjs.map +1 -1
- package/_cjs/Schedule/api.cjs +381 -290
- package/_cjs/Schedule/api.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +14 -14
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api.cjs +68 -61
- package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
- package/_cjs/Scope/api.cjs +34 -27
- package/_cjs/Scope/api.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +9 -13
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/ScopedRef/definition.cjs +1 -1
- package/_cjs/ScopedRef/definition.cjs.map +1 -1
- package/_cjs/Sink/api.cjs +307 -249
- package/_cjs/Sink/api.cjs.map +1 -1
- package/_cjs/State/api.cjs +18 -14
- package/_cjs/State/api.cjs.map +1 -1
- package/_cjs/Stream/api/zipAllWith.cjs +15 -13
- package/_cjs/Stream/api/zipAllWith.cjs.map +1 -1
- package/_cjs/Stream/api/zipWith.cjs +6 -4
- package/_cjs/Stream/api/zipWith.cjs.map +1 -1
- package/_cjs/Stream/api/zipWithChunks.cjs +13 -11
- package/_cjs/Stream/api/zipWithChunks.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +992 -788
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/Stream/definition.cjs.map +1 -1
- package/_cjs/Stream/internal/DebounceState.cjs +21 -19
- package/_cjs/Stream/internal/DebounceState.cjs.map +1 -1
- package/_cjs/Stream/internal/Handoff.cjs +35 -33
- package/_cjs/Stream/internal/Handoff.cjs.map +1 -1
- package/_cjs/Stream/internal/Pull.cjs +9 -11
- package/_cjs/Stream/internal/Pull.cjs.map +1 -1
- package/_cjs/Stream/internal/SinkEndReason.cjs +16 -14
- package/_cjs/Stream/internal/SinkEndReason.cjs.map +1 -1
- package/_cjs/Stream/internal/Take.cjs +32 -24
- package/_cjs/Stream/internal/Take.cjs.map +1 -1
- package/_cjs/Stream/internal/util.cjs +3 -3
- package/_cjs/Stream/internal/util.cjs.map +1 -1
- package/_cjs/SubscriptionRef.cjs +68 -0
- package/_cjs/SubscriptionRef.cjs.map +1 -0
- package/_cjs/Supervisor/api.cjs +24 -20
- package/_cjs/Supervisor/api.cjs.map +1 -1
- package/_cjs/Supervisor/constructors.cjs +2 -2
- package/_cjs/Supervisor/constructors.cjs.map +1 -1
- package/_cjs/Supervisor/definition.cjs +1 -1
- package/_cjs/Supervisor/definition.cjs.map +1 -1
- package/_cjs/SupervisorPatch.cjs +15 -11
- package/_cjs/SupervisorPatch.cjs.map +1 -1
- package/_cjs/TExit/definition.cjs.map +1 -1
- package/_cjs/TFuture/api.cjs +21 -15
- package/_cjs/TFuture/api.cjs.map +1 -1
- package/_cjs/TFuture/constructors.cjs +1 -1
- package/_cjs/TFuture/constructors.cjs.map +1 -1
- package/_cjs/TFuture/definition.cjs.map +1 -1
- package/_cjs/TReentrantLock/api.cjs +32 -28
- package/_cjs/TReentrantLock/api.cjs.map +1 -1
- package/_cjs/TReentrantLock/definition.cjs +4 -4
- package/_cjs/TReentrantLock/definition.cjs.map +1 -1
- package/_cjs/TRef/api.cjs +233 -209
- package/_cjs/TRef/api.cjs.map +1 -1
- package/_cjs/TRef/definition.cjs +4 -4
- package/_cjs/TRef/definition.cjs.map +1 -1
- package/_cjs/TSemaphore/api.cjs +27 -23
- package/_cjs/TSemaphore/api.cjs.map +1 -1
- package/_cjs/TSemaphore/constructors.cjs +18 -3
- package/_cjs/TSemaphore/constructors.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +21 -19
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +21 -19
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/filterIO.cjs +16 -14
- package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/findIO.cjs +19 -17
- package/_cjs/collection/immutable/Conc/findIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/mapIO.cjs +11 -9
- package/_cjs/collection/immutable/Conc/mapIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/takeWhileIO.cjs +31 -29
- package/_cjs/collection/immutable/Conc/takeWhileIO.cjs.map +1 -1
- package/_cjs/data/Exit/foreachIO.cjs +6 -4
- package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
- package/_cjs/internal/Hub.cjs +13 -11
- package/_cjs/internal/Hub.cjs.map +1 -1
- package/_cjs/internal/IsFatal.cjs +18 -16
- package/_cjs/internal/IsFatal.cjs.map +1 -1
- package/_cjs/internal/MutableQueue.cjs +11 -9
- package/_cjs/internal/MutableQueue.cjs.map +1 -1
- package/_cjs/internal/StackTraceBuilder.cjs.map +1 -1
- package/_mjs/Cached/api.mjs +6 -6
- package/_mjs/Cached/api.mjs.map +1 -1
- package/_mjs/Channel/ChildExecutorDecision/api.mjs +18 -16
- package/_mjs/Channel/ChildExecutorDecision/api.mjs.map +1 -1
- package/_mjs/Channel/UpstreamPullRequest/api.mjs +14 -12
- package/_mjs/Channel/UpstreamPullRequest/api.mjs.map +1 -1
- package/_mjs/Channel/api/interruptWhen.mjs +11 -7
- package/_mjs/Channel/api/interruptWhen.mjs.map +1 -1
- package/_mjs/Channel/api/mapOutIOC.mjs +24 -23
- package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAll.mjs +5 -3
- package/_mjs/Channel/api/mergeAll.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAllUnboundedWith.mjs +5 -3
- package/_mjs/Channel/api/mergeAllUnboundedWith.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAllWith.mjs +45 -46
- package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
- package/_mjs/Channel/api/mergeMap.mjs +5 -3
- package/_mjs/Channel/api/mergeMap.mjs.map +1 -1
- package/_mjs/Channel/api/mergeWith.mjs +46 -44
- package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
- package/_mjs/Channel/api/run.mjs +1 -1
- package/_mjs/Channel/api/run.mjs.map +1 -1
- package/_mjs/Channel/api/runScoped.mjs +2 -2
- package/_mjs/Channel/api/runScoped.mjs.map +1 -1
- package/_mjs/Channel/api/toPull.mjs +3 -3
- package/_mjs/Channel/api/toPull.mjs.map +1 -1
- package/_mjs/Channel/api/zipC.mjs +16 -10
- package/_mjs/Channel/api/zipC.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +224 -173
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Channel/core-api.mjs +28 -18
- package/_mjs/Channel/core-api.mjs.map +1 -1
- package/_mjs/Channel/definition.mjs +1 -1
- package/_mjs/Channel/definition.mjs.map +1 -1
- package/_mjs/Channel/internal/ChannelExecutor.mjs +83 -83
- package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +22 -23
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
- package/_mjs/Differ/api.mjs +5 -5
- package/_mjs/Differ/api.mjs.map +1 -1
- package/_mjs/Fiber/FiberContext.mjs +48 -48
- package/_mjs/Fiber/FiberContext.mjs.map +1 -1
- package/_mjs/Fiber/api/awaitAll.mjs +1 -1
- package/_mjs/Fiber/api/awaitAll.mjs.map +1 -1
- package/_mjs/Fiber/api/collectAll.mjs +1 -1
- package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
- package/_mjs/Fiber/api/evalOn.mjs +11 -9
- package/_mjs/Fiber/api/evalOn.mjs.map +1 -1
- package/_mjs/Fiber/api/evalOnIO.mjs +5 -3
- package/_mjs/Fiber/api/evalOnIO.mjs.map +1 -1
- package/_mjs/Fiber/api/fromIO.mjs +1 -1
- package/_mjs/Fiber/api/fromIO.mjs.map +1 -1
- package/_mjs/Fiber/api/interrupt.mjs +1 -1
- package/_mjs/Fiber/api/interrupt.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptAll.mjs +2 -2
- package/_mjs/Fiber/api/interruptAll.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptAs.mjs +6 -4
- package/_mjs/Fiber/api/interruptAs.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptAsFork.mjs +6 -4
- package/_mjs/Fiber/api/interruptAsFork.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptFork.mjs +1 -1
- package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
- package/_mjs/Fiber/api/join.mjs +1 -1
- package/_mjs/Fiber/api/join.mjs.map +1 -1
- package/_mjs/Fiber/api/joinAll.mjs +1 -1
- package/_mjs/Fiber/api/joinAll.mjs.map +1 -1
- package/_mjs/Fiber/api/mapFiber.mjs +5 -3
- package/_mjs/Fiber/api/mapFiber.mjs.map +1 -1
- package/_mjs/Fiber/api/mapIO.mjs +11 -7
- package/_mjs/Fiber/api/mapIO.mjs.map +1 -1
- package/_mjs/Fiber/api/zipWith.mjs +5 -3
- package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
- package/_mjs/Fiber/definition.mjs.map +1 -1
- package/_mjs/Fiber.mjs +1 -0
- package/_mjs/Fiber.mjs.map +1 -1
- package/_mjs/FiberRef/api/locallyScoped.mjs +5 -3
- package/_mjs/FiberRef/api/locallyScoped.mjs.map +1 -1
- package/_mjs/FiberRef/api/locallyScopedWith.mjs +5 -3
- package/_mjs/FiberRef/api/locallyScopedWith.mjs.map +1 -1
- package/_mjs/FiberRef/api.mjs +52 -36
- package/_mjs/FiberRef/api.mjs.map +1 -1
- package/_mjs/FiberRef/constructors.mjs +1 -1
- package/_mjs/FiberRef/constructors.mjs.map +1 -1
- package/_mjs/FiberRef.mjs.map +1 -1
- package/_mjs/FiberRefs/api.mjs +14 -12
- package/_mjs/FiberRefs/api.mjs.map +1 -1
- package/_mjs/FiberRefs/join.mjs +35 -33
- package/_mjs/FiberRefs/join.mjs.map +1 -1
- package/_mjs/FiberState/definition.mjs.map +1 -1
- package/_mjs/Future/api.mjs +84 -66
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/Future/constructors.mjs +1 -1
- package/_mjs/Future/constructors.mjs.map +1 -1
- package/_mjs/Hub/constructors.mjs +66 -0
- package/_mjs/Hub/constructors.mjs.map +1 -0
- package/_mjs/Hub/definition.mjs +88 -9
- package/_mjs/Hub/definition.mjs.map +1 -1
- package/_mjs/Hub/internal.mjs +105 -122
- package/_mjs/Hub/internal.mjs.map +1 -1
- package/_mjs/Hub.mjs +1 -1
- package/_mjs/Hub.mjs.map +1 -1
- package/_mjs/IO/api/acquireReleaseExit.mjs +1 -1
- package/_mjs/IO/api/acquireReleaseExit.mjs.map +1 -1
- package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs +1 -1
- package/_mjs/IO/api/acquireReleaseInterruptibleExit.mjs.map +1 -1
- package/_mjs/IO/api/addFinalizerExit.mjs +1 -1
- package/_mjs/IO/api/addFinalizerExit.mjs.map +1 -1
- package/_mjs/IO/api/asyncIO.mjs +4 -4
- package/_mjs/IO/api/asyncIO.mjs.map +1 -1
- package/_mjs/IO/api/bracket.mjs +2 -2
- package/_mjs/IO/api/bracket.mjs.map +1 -1
- package/_mjs/IO/api/bracketExit.mjs +2 -2
- package/_mjs/IO/api/bracketExit.mjs.map +1 -1
- package/_mjs/IO/api/clockWith.mjs +2 -2
- package/_mjs/IO/api/clockWith.mjs.map +1 -1
- package/_mjs/IO/api/concurrency.mjs +8 -6
- package/_mjs/IO/api/concurrency.mjs.map +1 -1
- package/_mjs/IO/api/concurrentFinalizers.mjs +1 -1
- package/_mjs/IO/api/concurrentFinalizers.mjs.map +1 -1
- package/_mjs/IO/api/consoleWith.mjs +2 -2
- package/_mjs/IO/api/consoleWith.mjs.map +1 -1
- package/_mjs/IO/api/core-scope.mjs +40 -36
- package/_mjs/IO/api/core-scope.mjs.map +1 -1
- package/_mjs/IO/api/ensuringChildren.mjs +5 -3
- package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
- package/_mjs/IO/api/environment.mjs +29 -27
- package/_mjs/IO/api/environment.mjs.map +1 -1
- package/_mjs/IO/api/foreachC.mjs +17 -19
- package/_mjs/IO/api/foreachC.mjs.map +1 -1
- package/_mjs/IO/api/foreachExec.mjs +2 -2
- package/_mjs/IO/api/foreachExec.mjs.map +1 -1
- package/_mjs/IO/api/forkAll.mjs +1 -1
- package/_mjs/IO/api/forkAll.mjs.map +1 -1
- package/_mjs/IO/api/forkIn.mjs +7 -5
- package/_mjs/IO/api/forkIn.mjs.map +1 -1
- package/_mjs/IO/api/forkScoped.mjs +1 -1
- package/_mjs/IO/api/forkScoped.mjs.map +1 -1
- package/_mjs/IO/api/fulfill.mjs +7 -5
- package/_mjs/IO/api/fulfill.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +34 -28
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/memoize.mjs +1 -1
- package/_mjs/IO/api/memoize.mjs.map +1 -1
- package/_mjs/IO/api/onExit.mjs +5 -3
- package/_mjs/IO/api/onExit.mjs.map +1 -1
- package/_mjs/IO/api/onTermination.mjs +5 -3
- package/_mjs/IO/api/onTermination.mjs.map +1 -1
- package/_mjs/IO/api/once.mjs +3 -4
- package/_mjs/IO/api/once.mjs.map +1 -1
- package/_mjs/IO/api/provideLayer.mjs +5 -3
- package/_mjs/IO/api/provideLayer.mjs.map +1 -1
- package/_mjs/IO/api/provideSomeLayer.mjs +5 -11
- package/_mjs/IO/api/provideSomeLayer.mjs.map +1 -1
- package/_mjs/IO/api/race.mjs +5 -3
- package/_mjs/IO/api/race.mjs.map +1 -1
- package/_mjs/IO/api/raceFirst.mjs +5 -3
- package/_mjs/IO/api/raceFirst.mjs.map +1 -1
- package/_mjs/IO/api/randomWith.mjs +1 -1
- package/_mjs/IO/api/randomWith.mjs.map +1 -1
- package/_mjs/IO/api/repeat.mjs +8 -8
- package/_mjs/IO/api/repeat.mjs.map +1 -1
- package/_mjs/IO/api/retry.mjs +12 -12
- package/_mjs/IO/api/retry.mjs.map +1 -1
- package/_mjs/IO/api/schedule.mjs +15 -11
- package/_mjs/IO/api/schedule.mjs.map +1 -1
- package/_mjs/IO/api/scoped.mjs +3 -3
- package/_mjs/IO/api/scoped.mjs.map +1 -1
- package/_mjs/IO/api/sequenceT.mjs +1 -1
- package/_mjs/IO/api/sequenceT.mjs.map +1 -1
- package/_mjs/IO/api/stateful.mjs.map +1 -1
- package/_mjs/IO/api/supervised.mjs +5 -3
- package/_mjs/IO/api/supervised.mjs.map +1 -1
- package/_mjs/IO/api/timeout.mjs +10 -6
- package/_mjs/IO/api/timeout.mjs.map +1 -1
- package/_mjs/IO/api/withChildren.mjs +1 -1
- package/_mjs/IO/api/withChildren.mjs.map +1 -1
- package/_mjs/IO/api/withEarlyRelease.mjs +1 -1
- package/_mjs/IO/api/withEarlyRelease.mjs.map +1 -1
- package/_mjs/IO/api/withFinalizer.mjs +5 -3
- package/_mjs/IO/api/withFinalizer.mjs.map +1 -1
- package/_mjs/IO/api/withFinalizerExit.mjs +5 -3
- package/_mjs/IO/api/withFinalizerExit.mjs.map +1 -1
- package/_mjs/IO/api/withRuntimeConfig.mjs +5 -3
- package/_mjs/IO/api/withRuntimeConfig.mjs.map +1 -1
- package/_mjs/IO/api/zipC.mjs +18 -14
- package/_mjs/IO/api/zipC.mjs.map +1 -1
- package/_mjs/IO/api.mjs +511 -387
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO/runtime.mjs +7 -7
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/IO.mjs.map +1 -1
- package/_mjs/IOEnv/definition.mjs +1 -1
- package/_mjs/IOEnv/definition.mjs.map +1 -1
- package/_mjs/IOEnv/live.mjs +1 -1
- package/_mjs/IOEnv/live.mjs.map +1 -1
- package/_mjs/Layer/MemoMap.mjs +86 -87
- package/_mjs/Layer/MemoMap.mjs.map +1 -1
- package/_mjs/Layer/api.mjs +91 -63
- package/_mjs/Layer/api.mjs.map +1 -1
- package/_mjs/Layer/definition.mjs.map +1 -1
- package/_mjs/LogLevel.mjs +24 -16
- package/_mjs/LogLevel.mjs.map +1 -1
- package/_mjs/LogSpan.mjs +16 -14
- package/_mjs/LogSpan.mjs.map +1 -1
- package/_mjs/Logger/api.mjs +16 -12
- package/_mjs/Logger/api.mjs.map +1 -1
- package/_mjs/Logger/constructors.mjs +1 -1
- package/_mjs/Logger/constructors.mjs.map +1 -1
- package/_mjs/Queue/constructors.mjs +16 -5
- package/_mjs/Queue/constructors.mjs.map +1 -1
- package/_mjs/Queue/definition.mjs +174 -12
- package/_mjs/Queue/definition.mjs.map +1 -1
- package/_mjs/Queue/internal.mjs +21 -170
- package/_mjs/Queue/internal.mjs.map +1 -1
- package/_mjs/Queue/strategy.mjs +20 -23
- package/_mjs/Queue/strategy.mjs.map +1 -1
- package/_mjs/Queue.mjs +1 -3
- package/_mjs/Queue.mjs.map +1 -1
- package/_mjs/Random/live.mjs +2 -2
- package/_mjs/Random/live.mjs.map +1 -1
- package/_mjs/Ref/Atomic.mjs +39 -3
- package/_mjs/Ref/Atomic.mjs.map +1 -1
- package/_mjs/Ref/Synchronized.mjs +123 -0
- package/_mjs/Ref/Synchronized.mjs.map +1 -0
- package/_mjs/Ref/constructors.mjs +15 -1
- package/_mjs/Ref/constructors.mjs.map +1 -1
- package/_mjs/Ref/definition.mjs +96 -4
- package/_mjs/Ref/definition.mjs.map +1 -1
- package/_mjs/Ref.mjs +1 -8
- package/_mjs/Ref.mjs.map +1 -1
- package/_mjs/Reloadable/constructors.mjs +10 -10
- package/_mjs/Reloadable/constructors.mjs.map +1 -1
- package/_mjs/RuntimeConfig.mjs +2 -2
- package/_mjs/RuntimeConfig.mjs.map +1 -1
- package/_mjs/STM/api/core-api.mjs +29 -19
- package/_mjs/STM/api/core-api.mjs.map +1 -1
- package/_mjs/STM/api.mjs +180 -127
- package/_mjs/STM/api.mjs.map +1 -1
- package/_mjs/STM/driver.mjs +3 -3
- package/_mjs/STM/driver.mjs.map +1 -1
- package/_mjs/STM/internal/Entry.mjs.map +1 -1
- package/_mjs/STM/internal/Journal.mjs +33 -29
- package/_mjs/STM/internal/Journal.mjs.map +1 -1
- package/_mjs/STM.mjs.map +1 -1
- package/_mjs/Schedule/Decision.mjs +14 -12
- package/_mjs/Schedule/Decision.mjs.map +1 -1
- package/_mjs/Schedule/api/driver.mjs +15 -17
- package/_mjs/Schedule/api/driver.mjs.map +1 -1
- package/_mjs/Schedule/api.mjs +326 -234
- package/_mjs/Schedule/api.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +12 -11
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api.mjs +60 -51
- package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
- package/_mjs/Scope/api.mjs +28 -22
- package/_mjs/Scope/api.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +9 -11
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/ScopedRef/definition.mjs +1 -1
- package/_mjs/ScopedRef/definition.mjs.map +1 -1
- package/_mjs/Sink/api.mjs +301 -240
- package/_mjs/Sink/api.mjs.map +1 -1
- package/_mjs/State/api.mjs +16 -12
- package/_mjs/State/api.mjs.map +1 -1
- package/_mjs/Stream/api/zipAllWith.mjs +14 -12
- package/_mjs/Stream/api/zipAllWith.mjs.map +1 -1
- package/_mjs/Stream/api/zipWith.mjs +5 -3
- package/_mjs/Stream/api/zipWith.mjs.map +1 -1
- package/_mjs/Stream/api/zipWithChunks.mjs +12 -10
- package/_mjs/Stream/api/zipWithChunks.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +856 -653
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/Stream/definition.mjs.map +1 -1
- package/_mjs/Stream/internal/DebounceState.mjs +18 -16
- package/_mjs/Stream/internal/DebounceState.mjs.map +1 -1
- package/_mjs/Stream/internal/Handoff.mjs +35 -32
- package/_mjs/Stream/internal/Handoff.mjs.map +1 -1
- package/_mjs/Stream/internal/Pull.mjs +9 -10
- package/_mjs/Stream/internal/Pull.mjs.map +1 -1
- package/_mjs/Stream/internal/SinkEndReason.mjs +14 -12
- package/_mjs/Stream/internal/SinkEndReason.mjs.map +1 -1
- package/_mjs/Stream/internal/Take.mjs +28 -20
- package/_mjs/Stream/internal/Take.mjs.map +1 -1
- package/_mjs/Stream/internal/util.mjs +3 -3
- package/_mjs/Stream/internal/util.mjs.map +1 -1
- package/_mjs/SubscriptionRef.mjs +45 -0
- package/_mjs/SubscriptionRef.mjs.map +1 -0
- package/_mjs/Supervisor/api.mjs +22 -18
- package/_mjs/Supervisor/api.mjs.map +1 -1
- package/_mjs/Supervisor/constructors.mjs +2 -2
- package/_mjs/Supervisor/constructors.mjs.map +1 -1
- package/_mjs/Supervisor/definition.mjs +1 -1
- package/_mjs/Supervisor/definition.mjs.map +1 -1
- package/_mjs/SupervisorPatch.mjs +15 -11
- package/_mjs/SupervisorPatch.mjs.map +1 -1
- package/_mjs/TExit/definition.mjs.map +1 -1
- package/_mjs/TFuture/api.mjs +17 -11
- package/_mjs/TFuture/api.mjs.map +1 -1
- package/_mjs/TFuture/constructors.mjs +1 -1
- package/_mjs/TFuture/constructors.mjs.map +1 -1
- package/_mjs/TFuture/definition.mjs.map +1 -1
- package/_mjs/TReentrantLock/api.mjs +32 -28
- package/_mjs/TReentrantLock/api.mjs.map +1 -1
- package/_mjs/TReentrantLock/definition.mjs +4 -4
- package/_mjs/TReentrantLock/definition.mjs.map +1 -1
- package/_mjs/TRef/api.mjs +218 -194
- package/_mjs/TRef/api.mjs.map +1 -1
- package/_mjs/TRef/definition.mjs +4 -4
- package/_mjs/TRef/definition.mjs.map +1 -1
- package/_mjs/TSemaphore/api.mjs +23 -19
- package/_mjs/TSemaphore/api.mjs.map +1 -1
- package/_mjs/TSemaphore/constructors.mjs +12 -2
- package/_mjs/TSemaphore/constructors.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +19 -17
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +19 -17
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/filterIO.mjs +14 -12
- package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/findIO.mjs +17 -15
- package/_mjs/collection/immutable/Conc/findIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/mapIO.mjs +10 -8
- package/_mjs/collection/immutable/Conc/mapIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/takeWhileIO.mjs +28 -26
- package/_mjs/collection/immutable/Conc/takeWhileIO.mjs.map +1 -1
- package/_mjs/data/Exit/foreachIO.mjs +5 -3
- package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
- package/_mjs/internal/Hub.mjs +13 -11
- package/_mjs/internal/Hub.mjs.map +1 -1
- package/_mjs/internal/IsFatal.mjs +18 -16
- package/_mjs/internal/IsFatal.mjs.map +1 -1
- package/_mjs/internal/MutableQueue.mjs +10 -8
- package/_mjs/internal/MutableQueue.mjs.map +1 -1
- package/_mjs/internal/StackTraceBuilder.mjs.map +1 -1
- package/_src/Cached/api.ts +2 -2
- package/_src/Channel/ChildExecutorDecision/api.ts +14 -17
- package/_src/Channel/UpstreamPullRequest/api.ts +11 -13
- package/_src/Channel/api/interruptWhen.ts +18 -17
- package/_src/Channel/api/mapOutIOC.ts +58 -58
- package/_src/Channel/api/mergeAll.ts +15 -16
- package/_src/Channel/api/mergeAllUnboundedWith.ts +15 -27
- package/_src/Channel/api/mergeAllWith.ts +114 -126
- package/_src/Channel/api/mergeMap.ts +8 -18
- package/_src/Channel/api/mergeWith.ts +154 -158
- package/_src/Channel/api/toPull.ts +1 -1
- package/_src/Channel/api/zipC.ts +52 -88
- package/_src/Channel/api.ts +345 -405
- package/_src/Channel/core-api.ts +75 -122
- package/_src/Channel/definition.ts +49 -7
- package/_src/Channel/internal/ChannelExecutor.ts +1 -5
- package/_src/Channel/internal/SingleProducerAsyncInput.ts +1 -3
- package/_src/Fiber/FiberContext.ts +13 -33
- package/_src/Fiber/api/collectAll.ts +1 -2
- package/_src/Fiber/api/evalOn.ts +11 -14
- package/_src/Fiber/api/evalOnIO.ts +10 -13
- package/_src/Fiber/api/interruptAll.ts +1 -2
- package/_src/Fiber/api/interruptAs.ts +6 -4
- package/_src/Fiber/api/interruptAsFork.ts +6 -4
- package/_src/Fiber/api/interruptFork.ts +1 -1
- package/_src/Fiber/api/mapFiber.ts +5 -7
- package/_src/Fiber/api/mapIO.ts +21 -21
- package/_src/Fiber/api/zipWith.ts +14 -17
- package/_src/Fiber/definition.ts +1 -15
- package/_src/Fiber.ts +1 -1
- package/_src/FiberRef/api/locallyScoped.ts +8 -6
- package/_src/FiberRef/api/locallyScopedWith.ts +5 -7
- package/_src/FiberRef/api.ts +50 -39
- package/_src/FiberRef.ts +0 -1
- package/_src/FiberRefs/api.ts +14 -12
- package/_src/FiberRefs/join.ts +37 -46
- package/_src/FiberState/definition.ts +1 -2
- package/_src/Future/api.ts +67 -53
- package/_src/Hub/constructors.ts +80 -0
- package/_src/Hub/definition.ts +95 -89
- package/_src/Hub/internal.ts +115 -165
- package/_src/Hub.ts +1 -1
- package/_src/IO/api/acquireRelease.ts +1 -1
- package/_src/IO/api/acquireReleaseExit.ts +1 -1
- package/_src/IO/api/bracket.ts +1 -1
- package/_src/IO/api/bracketExit.ts +1 -1
- package/_src/IO/api/clockWith.ts +0 -1
- package/_src/IO/api/concurrency.ts +5 -7
- package/_src/IO/api/consoleWith.ts +0 -2
- package/_src/IO/api/core-scope.ts +36 -33
- package/_src/IO/api/ensuringChildren.ts +8 -7
- package/_src/IO/api/environment.ts +24 -42
- package/_src/IO/api/foreachC.ts +24 -12
- package/_src/IO/api/foreachExec.ts +1 -1
- package/_src/IO/api/forkIn.ts +7 -9
- package/_src/IO/api/fulfill.ts +5 -3
- package/_src/IO/api/interrupt.ts +37 -40
- package/_src/IO/api/onExit.ts +8 -10
- package/_src/IO/api/onTermination.ts +12 -14
- package/_src/IO/api/provideLayer.ts +8 -10
- package/_src/IO/api/provideSomeLayer.ts +5 -14
- package/_src/IO/api/race.ts +19 -21
- package/_src/IO/api/raceFirst.ts +5 -7
- package/_src/IO/api/repeat.ts +3 -5
- package/_src/IO/api/retry.ts +19 -21
- package/_src/IO/api/schedule.ts +20 -21
- package/_src/IO/api/scoped.ts +2 -2
- package/_src/IO/api/sequenceT.ts +7 -1
- package/_src/IO/api/stateful.ts +0 -2
- package/_src/IO/api/supervised.ts +5 -7
- package/_src/IO/api/timeout.ts +10 -16
- package/_src/IO/api/withFinalizer.ts +5 -7
- package/_src/IO/api/withFinalizerExit.ts +6 -5
- package/_src/IO/api/withRuntimeConfig.ts +12 -14
- package/_src/IO/api/zipC.ts +57 -62
- package/_src/IO/api.ts +512 -539
- package/_src/IO/definition.ts +21 -9
- package/_src/IO/runtime.ts +0 -12
- package/_src/IO.ts +0 -1
- package/_src/Layer/MemoMap.ts +61 -63
- package/_src/Layer/api.ts +95 -104
- package/_src/Layer/definition.ts +0 -1
- package/_src/LogLevel.ts +24 -16
- package/_src/LogSpan.ts +16 -16
- package/_src/Logger/api.ts +18 -17
- package/_src/Logger/constructors.ts +9 -15
- package/_src/Queue/constructors.ts +22 -6
- package/_src/Queue/definition.ts +230 -81
- package/_src/Queue/internal.ts +9 -180
- package/_src/Queue/strategy.ts +9 -23
- package/_src/Queue.ts +1 -3
- package/_src/Ref/Atomic.ts +37 -4
- package/_src/Ref/Synchronized.ts +107 -0
- package/_src/Ref/constructors.ts +15 -0
- package/_src/Ref/definition.ts +86 -85
- package/_src/Ref.ts +1 -9
- package/_src/Reloadable/constructors.ts +2 -2
- package/_src/RuntimeConfig.ts +0 -2
- package/_src/STM/api/core-api.ts +32 -35
- package/_src/STM/api.ts +210 -200
- package/_src/STM/internal/Entry.ts +0 -10
- package/_src/STM/internal/Journal.ts +23 -26
- package/_src/STM.ts +0 -1
- package/_src/Schedule/Decision.ts +10 -8
- package/_src/Schedule/api/driver.ts +0 -4
- package/_src/Schedule/api.ts +419 -444
- package/_src/Schedule/definition.ts +0 -1
- package/_src/Scope/ReleaseMap/api/releaseAll.ts +23 -26
- package/_src/Scope/ReleaseMap/api.ts +77 -74
- package/_src/Scope/api.ts +16 -18
- package/_src/ScopedRef/api.ts +0 -3
- package/_src/ScopedRef/definition.ts +1 -2
- package/_src/Sink/api.ts +326 -357
- package/_src/State/api.ts +12 -8
- package/_src/State/internal.ts +1 -1
- package/_src/Stream/api/zipAllWith.ts +6 -5
- package/_src/Stream/api/zipWith.ts +5 -8
- package/_src/Stream/api/zipWithChunks.ts +6 -5
- package/_src/Stream/api.ts +1049 -1176
- package/_src/Stream/definition.ts +0 -2
- package/_src/Stream/internal/DebounceState.ts +16 -17
- package/_src/Stream/internal/Handoff.ts +31 -35
- package/_src/Stream/internal/Pull.ts +1 -2
- package/_src/Stream/internal/SinkEndReason.ts +13 -14
- package/_src/Stream/internal/Take.ts +21 -21
- package/_src/Stream/internal/util.ts +0 -2
- package/_src/SubscriptionRef.ts +44 -0
- package/_src/Supervisor/api.ts +18 -14
- package/_src/Supervisor/definition.ts +0 -1
- package/_src/SupervisorPatch.ts +10 -6
- package/_src/TExit/definition.ts +0 -8
- package/_src/TFuture/api.ts +23 -17
- package/_src/TFuture/definition.ts +0 -1
- package/_src/TReentrantLock/api.ts +14 -10
- package/_src/TReentrantLock/definition.ts +0 -7
- package/_src/TRef/api.ts +207 -209
- package/_src/TRef/definition.ts +0 -12
- package/_src/TSemaphore/api.ts +19 -18
- package/_src/TSemaphore/constructors.ts +7 -0
- package/_src/collection/immutable/Conc/dropUntilIO.ts +19 -21
- package/_src/collection/immutable/Conc/dropWhileIO.ts +21 -23
- package/_src/collection/immutable/Conc/filterIO.ts +15 -17
- package/_src/collection/immutable/Conc/findIO.ts +17 -19
- package/_src/collection/immutable/Conc/mapIO.ts +12 -10
- package/_src/collection/immutable/Conc/takeWhileIO.ts +27 -29
- package/_src/data/Exit/foreachIO.ts +8 -10
- package/_src/global.ts +7 -3
- package/_src/index.ts +3 -0
- package/_src/internal/Hub.ts +17 -27
- package/_src/internal/IsFatal.ts +14 -12
- package/_src/internal/MutableQueue.ts +8 -8
- package/_src/internal/StackTraceBuilder.ts +1 -2
- package/collection/immutable/Conc/dropUntilIO.d.ts +3 -3
- package/collection/immutable/Conc/dropWhileIO.d.ts +3 -3
- package/collection/immutable/Conc/filterIO.d.ts +3 -3
- package/collection/immutable/Conc/findIO.d.ts +2 -2
- package/collection/immutable/Conc/mapIO.d.ts +3 -3
- package/collection/immutable/Conc/takeWhileIO.d.ts +3 -3
- package/data/Exit/foreachIO.d.ts +3 -3
- package/global.d.ts +7 -3
- package/index.d.ts +3 -0
- package/internal/Hub.d.ts +2 -2
- package/internal/IsFatal.d.ts +3 -3
- package/internal/MutableQueue.d.ts +3 -3
- package/package.json +3 -3
- package/Hub/api.d.ts +0 -190
- package/Queue/api/dimapIO.d.ts +0 -41
- package/Queue/api/filterInputIO.d.ts +0 -33
- package/Queue/api/filterOutputIO.d.ts +0 -31
- package/Queue/api/operations.d.ts +0 -82
- package/Queue/api/poll.d.ts +0 -9
- package/Queue/api/takeBetween.d.ts +0 -11
- package/Queue/api/zipWithIO.d.ts +0 -44
- package/Queue/api.d.ts +0 -7
- package/Ref/Atomic/Atomic.d.ts +0 -18
- package/Ref/Atomic/api.d.ts +0 -53
- package/Ref/Derived.d.ts +0 -14
- package/Ref/DerivedAll.d.ts +0 -14
- package/Ref/Synchronized/api.d.ts +0 -100
- package/Ref/Synchronized/constructors.d.ts +0 -8
- package/Ref/Synchronized/definition.d.ts +0 -42
- package/Ref/api/collect.d.ts +0 -11
- package/Ref/api/dimap.d.ts +0 -56
- package/Ref/api/filter.d.ts +0 -20
- package/Ref/api/get.d.ts +0 -9
- package/Ref/api/match.d.ts +0 -13
- package/Ref/api/matchAll.d.ts +0 -11
- package/Ref/api/modify.d.ts +0 -79
- package/Ref/api/set.d.ts +0 -10
- package/Ref/api.d.ts +0 -23
- package/_cjs/Hub/api.cjs +0 -456
- package/_cjs/Hub/api.cjs.map +0 -1
- package/_cjs/Queue/api/dimapIO.cjs +0 -120
- package/_cjs/Queue/api/dimapIO.cjs.map +0 -1
- package/_cjs/Queue/api/filterInputIO.cjs +0 -84
- package/_cjs/Queue/api/filterInputIO.cjs.map +0 -1
- package/_cjs/Queue/api/filterOutputIO.cjs +0 -89
- package/_cjs/Queue/api/filterOutputIO.cjs.map +0 -1
- package/_cjs/Queue/api/operations.cjs +0 -147
- package/_cjs/Queue/api/operations.cjs.map +0 -1
- package/_cjs/Queue/api/poll.cjs +0 -27
- package/_cjs/Queue/api/poll.cjs.map +0 -1
- package/_cjs/Queue/api/takeBetween.cjs +0 -57
- package/_cjs/Queue/api/takeBetween.cjs.map +0 -1
- package/_cjs/Queue/api/zipWithIO.cjs +0 -97
- package/_cjs/Queue/api/zipWithIO.cjs.map +0 -1
- package/_cjs/Queue/api.cjs +0 -97
- package/_cjs/Queue/api.cjs.map +0 -1
- package/_cjs/Ref/Atomic/Atomic.cjs +0 -64
- package/_cjs/Ref/Atomic/Atomic.cjs.map +0 -1
- package/_cjs/Ref/Atomic/api.cjs +0 -156
- package/_cjs/Ref/Atomic/api.cjs.map +0 -1
- package/_cjs/Ref/Derived.cjs +0 -55
- package/_cjs/Ref/Derived.cjs.map +0 -1
- package/_cjs/Ref/DerivedAll.cjs +0 -55
- package/_cjs/Ref/DerivedAll.cjs.map +0 -1
- package/_cjs/Ref/Synchronized/api.cjs +0 -196
- package/_cjs/Ref/Synchronized/api.cjs.map +0 -1
- package/_cjs/Ref/Synchronized/constructors.cjs +0 -32
- package/_cjs/Ref/Synchronized/constructors.cjs.map +0 -1
- package/_cjs/Ref/Synchronized/definition.cjs +0 -88
- package/_cjs/Ref/Synchronized/definition.cjs.map +0 -1
- package/_cjs/Ref/api/collect.cjs +0 -31
- package/_cjs/Ref/api/collect.cjs.map +0 -1
- package/_cjs/Ref/api/dimap.cjs +0 -110
- package/_cjs/Ref/api/dimap.cjs.map +0 -1
- package/_cjs/Ref/api/filter.cjs +0 -45
- package/_cjs/Ref/api/filter.cjs.map +0 -1
- package/_cjs/Ref/api/get.cjs +0 -20
- package/_cjs/Ref/api/get.cjs.map +0 -1
- package/_cjs/Ref/api/match.cjs +0 -26
- package/_cjs/Ref/api/match.cjs.map +0 -1
- package/_cjs/Ref/api/matchAll.cjs +0 -24
- package/_cjs/Ref/api/matchAll.cjs.map +0 -1
- package/_cjs/Ref/api/modify.cjs +0 -239
- package/_cjs/Ref/api/modify.cjs.map +0 -1
- package/_cjs/Ref/api/set.cjs +0 -21
- package/_cjs/Ref/api/set.cjs.map +0 -1
- package/_cjs/Ref/api.cjs +0 -158
- package/_cjs/Ref/api.cjs.map +0 -1
- package/_mjs/Hub/api.mjs +0 -384
- package/_mjs/Hub/api.mjs.map +0 -1
- package/_mjs/Queue/api/dimapIO.mjs +0 -97
- package/_mjs/Queue/api/dimapIO.mjs.map +0 -1
- package/_mjs/Queue/api/filterInputIO.mjs +0 -63
- package/_mjs/Queue/api/filterInputIO.mjs.map +0 -1
- package/_mjs/Queue/api/filterOutputIO.mjs +0 -68
- package/_mjs/Queue/api/filterOutputIO.mjs.map +0 -1
- package/_mjs/Queue/api/operations.mjs +0 -122
- package/_mjs/Queue/api/operations.mjs.map +0 -1
- package/_mjs/Queue/api/poll.mjs +0 -14
- package/_mjs/Queue/api/poll.mjs.map +0 -1
- package/_mjs/Queue/api/takeBetween.mjs +0 -43
- package/_mjs/Queue/api/takeBetween.mjs.map +0 -1
- package/_mjs/Queue/api/zipWithIO.mjs +0 -74
- package/_mjs/Queue/api/zipWithIO.mjs.map +0 -1
- package/_mjs/Queue/api.mjs +0 -9
- package/_mjs/Queue/api.mjs.map +0 -1
- package/_mjs/Ref/Atomic/Atomic.mjs +0 -47
- package/_mjs/Ref/Atomic/Atomic.mjs.map +0 -1
- package/_mjs/Ref/Atomic/api.mjs +0 -127
- package/_mjs/Ref/Atomic/api.mjs.map +0 -1
- package/_mjs/Ref/Derived.mjs +0 -35
- package/_mjs/Ref/Derived.mjs.map +0 -1
- package/_mjs/Ref/DerivedAll.mjs +0 -35
- package/_mjs/Ref/DerivedAll.mjs.map +0 -1
- package/_mjs/Ref/Synchronized/api.mjs +0 -154
- package/_mjs/Ref/Synchronized/api.mjs.map +0 -1
- package/_mjs/Ref/Synchronized/constructors.mjs +0 -15
- package/_mjs/Ref/Synchronized/constructors.mjs.map +0 -1
- package/_mjs/Ref/Synchronized/definition.mjs +0 -66
- package/_mjs/Ref/Synchronized/definition.mjs.map +0 -1
- package/_mjs/Ref/api/collect.mjs +0 -17
- package/_mjs/Ref/api/collect.mjs.map +0 -1
- package/_mjs/Ref/api/dimap.mjs +0 -84
- package/_mjs/Ref/api/dimap.mjs.map +0 -1
- package/_mjs/Ref/api/filter.mjs +0 -29
- package/_mjs/Ref/api/filter.mjs.map +0 -1
- package/_mjs/Ref/api/get.mjs +0 -13
- package/_mjs/Ref/api/get.mjs.map +0 -1
- package/_mjs/Ref/api/match.mjs +0 -18
- package/_mjs/Ref/api/match.mjs.map +0 -1
- package/_mjs/Ref/api/matchAll.mjs +0 -16
- package/_mjs/Ref/api/matchAll.mjs.map +0 -1
- package/_mjs/Ref/api/modify.mjs +0 -204
- package/_mjs/Ref/api/modify.mjs.map +0 -1
- package/_mjs/Ref/api/set.mjs +0 -14
- package/_mjs/Ref/api/set.mjs.map +0 -1
- package/_mjs/Ref/api.mjs +0 -34
- package/_mjs/Ref/api.mjs.map +0 -1
- package/_src/Hub/api.ts +0 -461
- package/_src/Queue/api/dimapIO.ts +0 -130
- package/_src/Queue/api/filterInputIO.ts +0 -75
- package/_src/Queue/api/filterOutputIO.ts +0 -76
- package/_src/Queue/api/operations.ts +0 -139
- package/_src/Queue/api/poll.ts +0 -14
- package/_src/Queue/api/takeBetween.ts +0 -45
- package/_src/Queue/api/zipWithIO.ts +0 -99
- package/_src/Queue/api.ts +0 -9
- package/_src/Ref/Atomic/Atomic.ts +0 -56
- package/_src/Ref/Atomic/api.ts +0 -124
- package/_src/Ref/Derived.ts +0 -71
- package/_src/Ref/DerivedAll.ts +0 -75
- package/_src/Ref/Synchronized/api.ts +0 -249
- package/_src/Ref/Synchronized/constructors.ts +0 -12
- package/_src/Ref/Synchronized/definition.ts +0 -126
- package/_src/Ref/api/collect.ts +0 -19
- package/_src/Ref/api/dimap.ts +0 -115
- package/_src/Ref/api/filter.ts +0 -35
- package/_src/Ref/api/get.ts +0 -17
- package/_src/Ref/api/match.ts +0 -24
- package/_src/Ref/api/matchAll.ts +0 -23
- package/_src/Ref/api/modify.ts +0 -237
- package/_src/Ref/api/set.ts +0 -19
- package/_src/Ref/api.ts +0 -39
package/_src/IO/api.ts
CHANGED
|
@@ -92,43 +92,42 @@ export function asyncInterrupt<R, E, A>(
|
|
|
92
92
|
* Attempts to convert defects into a failure, throwing away all information
|
|
93
93
|
* about the cause of the failure.
|
|
94
94
|
*
|
|
95
|
-
* @tsplus
|
|
95
|
+
* @tsplus pipeable fncts.io.IO absorbWith
|
|
96
96
|
*/
|
|
97
|
-
export function
|
|
98
|
-
return ma
|
|
97
|
+
export function absorbWith<R, E, A>(f: (e: E) => unknown, __tsplusTrace?: string) {
|
|
98
|
+
return (ma: IO<R, E, A>): IO<R, unknown, A> =>
|
|
99
|
+
ma.sandbox.matchIO((cause) => IO.failNow(cause.squashWith(f)), IO.succeedNow);
|
|
99
100
|
}
|
|
100
101
|
|
|
101
102
|
/**
|
|
102
|
-
* @tsplus
|
|
103
|
-
* @tsplus operator fncts.io.IO <
|
|
103
|
+
* @tsplus pipeable fncts.io.IO apFirst
|
|
104
|
+
* @tsplus pipeable-operator fncts.io.IO <
|
|
104
105
|
*/
|
|
105
|
-
export function
|
|
106
|
-
self: IO<R, E, A
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
): IO<R1 | R, E1 | E, A> {
|
|
110
|
-
return self.flatMap((a) => fb.map(() => a));
|
|
106
|
+
export function apFirst<R1, E1, B>(fb: IO<R1, E1, B>, __tsplusTrace?: string) {
|
|
107
|
+
return <R, E, A>(self: IO<R, E, A>): IO<R1 | R, E1 | E, A> => {
|
|
108
|
+
return self.flatMap((a) => fb.map(() => a));
|
|
109
|
+
};
|
|
111
110
|
}
|
|
112
111
|
|
|
113
112
|
/**
|
|
114
113
|
* Combine two effectful actions, keeping only the result of the second
|
|
115
114
|
*
|
|
116
|
-
* @tsplus
|
|
117
|
-
* @tsplus operator fncts.io.IO >
|
|
115
|
+
* @tsplus pipeable fncts.io.IO apSecond
|
|
116
|
+
* @tsplus pipeable-operator fncts.io.IO >
|
|
118
117
|
*/
|
|
119
|
-
export function
|
|
120
|
-
self: IO<R, E, A
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
): IO<R1 | R, E1 | E, B> {
|
|
124
|
-
return self.flatMap(() => fb);
|
|
118
|
+
export function apSecond<R1, E1, B>(fb: IO<R1, E1, B>, __tsplusTrace?: string) {
|
|
119
|
+
return <R, E, A>(self: IO<R, E, A>): IO<R1 | R, E1 | E, B> => {
|
|
120
|
+
return self.flatMap(() => fb);
|
|
121
|
+
};
|
|
125
122
|
}
|
|
126
123
|
|
|
127
124
|
/**
|
|
128
|
-
* @tsplus
|
|
125
|
+
* @tsplus pipeable fncts.io.IO as
|
|
129
126
|
*/
|
|
130
|
-
export function
|
|
131
|
-
return self
|
|
127
|
+
export function as<B>(b: Lazy<B>, __tsplusTrace?: string) {
|
|
128
|
+
return <R, E, A>(self: IO<R, E, A>): IO<R, E, B> => {
|
|
129
|
+
return self.map(() => b());
|
|
130
|
+
};
|
|
132
131
|
}
|
|
133
132
|
|
|
134
133
|
/**
|
|
@@ -160,116 +159,124 @@ export function asUnit<R, E, A>(self: IO<R, E, A>, __tsplusTrace?: string): IO<R
|
|
|
160
159
|
* Returns an IO whose failure and success channels have been mapped by
|
|
161
160
|
* the specified pair of functions, `f` and `g`.
|
|
162
161
|
*
|
|
163
|
-
* @tsplus
|
|
162
|
+
* @tsplus pipeable fncts.io.IO bimap
|
|
164
163
|
*/
|
|
165
|
-
export function
|
|
166
|
-
self: IO<R, E, A
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
)
|
|
171
|
-
|
|
172
|
-
(e) => IO.failNow(f(e)),
|
|
173
|
-
(a) => IO.succeedNow(g(a)),
|
|
174
|
-
);
|
|
164
|
+
export function bimap<E, A, E1, B>(f: (e: E) => E1, g: (a: A) => B, __tsplusTrace?: string) {
|
|
165
|
+
return <R>(self: IO<R, E, A>): IO<R, E1, B> => {
|
|
166
|
+
return self.matchIO(
|
|
167
|
+
(e) => IO.failNow(f(e)),
|
|
168
|
+
(a) => IO.succeedNow(g(a)),
|
|
169
|
+
);
|
|
170
|
+
};
|
|
175
171
|
}
|
|
176
172
|
|
|
177
173
|
/**
|
|
178
174
|
* Returns an IO that effectfully "peeks" at the failure or success of
|
|
179
175
|
* this effect.
|
|
180
176
|
*
|
|
181
|
-
* @tsplus
|
|
177
|
+
* @tsplus pipeable fncts.io.IO bitap
|
|
182
178
|
*/
|
|
183
|
-
export function
|
|
184
|
-
self: IO<R, E, A>,
|
|
179
|
+
export function bitap<E, A, R1, E1, R2, E2>(
|
|
185
180
|
onFailure: (e: E) => IO<R1, E1, any>,
|
|
186
181
|
onSuccess: (a: A) => IO<R2, E2, any>,
|
|
187
182
|
__tsplusTrace?: string,
|
|
188
|
-
)
|
|
189
|
-
return self
|
|
190
|
-
(
|
|
191
|
-
cause
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
183
|
+
) {
|
|
184
|
+
return <R>(self: IO<R, E, A>): IO<R | R1 | R2, E | E1 | E2, A> => {
|
|
185
|
+
return self.matchCauseIO(
|
|
186
|
+
(cause) =>
|
|
187
|
+
cause.failureOrCause.match(
|
|
188
|
+
(e) => onFailure(e).flatMap(() => IO.failCauseNow(cause)),
|
|
189
|
+
() => IO.failCauseNow(cause),
|
|
190
|
+
),
|
|
191
|
+
(a) => onSuccess(a).apSecond(IO.succeedNow(a)),
|
|
192
|
+
);
|
|
193
|
+
};
|
|
197
194
|
}
|
|
198
195
|
|
|
199
196
|
/**
|
|
200
197
|
* Recovers from the specified error
|
|
201
198
|
*
|
|
202
|
-
* @tsplus
|
|
199
|
+
* @tsplus pipeable fncts.io.IO catch
|
|
203
200
|
*/
|
|
204
|
-
export function
|
|
205
|
-
ma: IO<R, E, A>,
|
|
201
|
+
export function catchTagWith<N extends keyof E, K extends E[N] & string, E, R1, E1, A1>(
|
|
206
202
|
tag: N,
|
|
207
203
|
k: K,
|
|
208
|
-
f: (
|
|
204
|
+
f: (
|
|
205
|
+
e: Extract<
|
|
206
|
+
E,
|
|
207
|
+
{
|
|
208
|
+
[n in N]: K;
|
|
209
|
+
}
|
|
210
|
+
>,
|
|
211
|
+
) => IO<R1, E1, A1>,
|
|
209
212
|
__tsplusTrace?: string,
|
|
210
|
-
)
|
|
211
|
-
return
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
213
|
+
) {
|
|
214
|
+
return <R, A>(
|
|
215
|
+
ma: IO<R, E, A>,
|
|
216
|
+
): IO<
|
|
217
|
+
R | R1,
|
|
218
|
+
| Exclude<
|
|
219
|
+
E,
|
|
220
|
+
{
|
|
221
|
+
[n in N]: K;
|
|
222
|
+
}
|
|
223
|
+
>
|
|
224
|
+
| E1,
|
|
225
|
+
A | A1
|
|
226
|
+
> => {
|
|
227
|
+
return ma.catchAll((e) => {
|
|
228
|
+
if (isObject(e) && tag in e && e[tag] === k) {
|
|
229
|
+
return f(e as any);
|
|
230
|
+
}
|
|
231
|
+
return IO.failNow(e as any);
|
|
232
|
+
});
|
|
233
|
+
};
|
|
217
234
|
}
|
|
218
235
|
|
|
219
236
|
/**
|
|
220
237
|
* Recovers from all errors
|
|
221
238
|
*
|
|
222
|
-
* @tsplus
|
|
239
|
+
* @tsplus pipeable fncts.io.IO catchAll
|
|
223
240
|
*/
|
|
224
|
-
export function
|
|
225
|
-
ma: IO<R, E, A
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
): IO<R | R1, E1, A | A1> {
|
|
229
|
-
return ma.matchIO(f, IO.succeedNow);
|
|
241
|
+
export function catchAll<E, R1, E1, A1>(f: (e: E) => IO<R1, E1, A1>, __tsplusTrace?: string) {
|
|
242
|
+
return <R, A>(ma: IO<R, E, A>): IO<R | R1, E1, A | A1> => {
|
|
243
|
+
return ma.matchIO(f, IO.succeedNow);
|
|
244
|
+
};
|
|
230
245
|
}
|
|
231
246
|
|
|
232
247
|
/**
|
|
233
248
|
*
|
|
234
249
|
* Recovers from all errors with provided cause.
|
|
235
250
|
*
|
|
236
|
-
* @tsplus
|
|
251
|
+
* @tsplus pipeable fncts.io.IO catchAllCause
|
|
237
252
|
*/
|
|
238
|
-
export function
|
|
239
|
-
ma: IO<R, E, A
|
|
240
|
-
f: (_: Cause<E>) => IO<R1, E1, A1>,
|
|
241
|
-
__tsplusTrace?: string,
|
|
242
|
-
) {
|
|
243
|
-
return ma.matchCauseIO(f, IO.succeedNow);
|
|
253
|
+
export function catchAllCause<R, E, A, R1, E1, A1>(f: (_: Cause<E>) => IO<R1, E1, A1>, __tsplusTrace?: string) {
|
|
254
|
+
return (ma: IO<R, E, A>): IO<R | R1, E1, A | A1> => ma.matchCauseIO(f, IO.succeedNow);
|
|
244
255
|
}
|
|
245
256
|
|
|
246
257
|
/**
|
|
247
258
|
* Recovers from some or all of the error cases.
|
|
248
259
|
*
|
|
249
|
-
* @tsplus
|
|
260
|
+
* @tsplus pipeable fncts.io.IO catchJust
|
|
250
261
|
*/
|
|
251
|
-
export function
|
|
252
|
-
ma: IO<R, E, A
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
IO.succeedNow,
|
|
259
|
-
);
|
|
262
|
+
export function catchJust<E, R1, E1, A1>(f: (e: E) => Maybe<IO<R1, E1, A1>>, __tsplusTrace?: string) {
|
|
263
|
+
return <R, A>(ma: IO<R, E, A>): IO<R | R1, E | E1, A | A1> => {
|
|
264
|
+
return ma.matchCauseIO(
|
|
265
|
+
(cause) => cause.failureOrCause.match((e) => f(e).getOrElse(IO.failCauseNow(cause)), IO.failCauseNow),
|
|
266
|
+
IO.succeedNow,
|
|
267
|
+
);
|
|
268
|
+
};
|
|
260
269
|
}
|
|
261
270
|
|
|
262
271
|
/**
|
|
263
272
|
* Recovers from some or all of the error cases with provided cause.
|
|
264
273
|
*
|
|
265
|
-
* @tsplus
|
|
274
|
+
* @tsplus pipeable fncts.io.IO catchJustCause
|
|
266
275
|
*/
|
|
267
|
-
export function
|
|
268
|
-
ma: IO<R, E, A
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
): IO<R | R1, E | E1, A | A1> {
|
|
272
|
-
return ma.matchCauseIO((cause) => f(cause).getOrElse(IO.failCauseNow(cause)), IO.succeedNow);
|
|
276
|
+
export function catchJustCause<E, R1, E1, A1>(f: (_: Cause<E>) => Maybe<IO<R1, E1, A1>>, __tsplusTrace?: string) {
|
|
277
|
+
return <R, A>(ma: IO<R, E, A>): IO<R | R1, E | E1, A | A1> => {
|
|
278
|
+
return ma.matchCauseIO((cause) => f(cause).getOrElse(IO.failCauseNow(cause)), IO.succeedNow);
|
|
279
|
+
};
|
|
273
280
|
}
|
|
274
281
|
|
|
275
282
|
/**
|
|
@@ -280,28 +287,54 @@ export function catchJustCause_<R, E, A, R1, E1, A1>(
|
|
|
280
287
|
* system, to transmit information on a defect for diagnostic or explanatory
|
|
281
288
|
* purposes.
|
|
282
289
|
*
|
|
283
|
-
* @tsplus
|
|
290
|
+
* @tsplus pipeable fncts.io.IO catchJustDefect
|
|
284
291
|
*/
|
|
285
|
-
export function
|
|
286
|
-
ma: IO<R, E, A
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
): IO<R | R1, E | E1, A | A1> {
|
|
290
|
-
return ma.unrefineWith(f, IO.failNow).catchAll((a) => a as IO<R | R1, E | E1, A | A1>);
|
|
292
|
+
export function catchJustDefect<R1, E1, A1>(f: (_: unknown) => Maybe<IO<R1, E1, A1>>, __tsplusTrace?: string) {
|
|
293
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R | R1, E | E1, A | A1> => {
|
|
294
|
+
return ma.unrefineWith(f, IO.failNow).catchAll((a) => a as IO<R | R1, E | E1, A | A1>);
|
|
295
|
+
};
|
|
291
296
|
}
|
|
292
297
|
|
|
293
298
|
/**
|
|
294
299
|
* Recovers from the specified error
|
|
295
300
|
*
|
|
296
|
-
* @tsplus
|
|
297
|
-
*/
|
|
298
|
-
export function
|
|
299
|
-
|
|
301
|
+
* @tsplus pipeable IO catchTag
|
|
302
|
+
*/
|
|
303
|
+
export function catchTag<
|
|
304
|
+
K extends E["_tag"] & string,
|
|
305
|
+
E extends {
|
|
306
|
+
_tag: string;
|
|
307
|
+
},
|
|
308
|
+
R1,
|
|
309
|
+
E1,
|
|
310
|
+
A1,
|
|
311
|
+
>(
|
|
300
312
|
k: K,
|
|
301
|
-
f: (
|
|
313
|
+
f: (
|
|
314
|
+
e: Extract<
|
|
315
|
+
E,
|
|
316
|
+
{
|
|
317
|
+
_tag: K;
|
|
318
|
+
}
|
|
319
|
+
>,
|
|
320
|
+
) => IO<R1, E1, A1>,
|
|
302
321
|
__tsplusTrace?: string,
|
|
303
|
-
)
|
|
304
|
-
return
|
|
322
|
+
) {
|
|
323
|
+
return <R, A>(
|
|
324
|
+
ma: IO<R, E, A>,
|
|
325
|
+
): IO<
|
|
326
|
+
R | R1,
|
|
327
|
+
| Exclude<
|
|
328
|
+
E,
|
|
329
|
+
{
|
|
330
|
+
_tag: K;
|
|
331
|
+
}
|
|
332
|
+
>
|
|
333
|
+
| E1,
|
|
334
|
+
A | A1
|
|
335
|
+
> => {
|
|
336
|
+
return ma.catch("_tag", k, f);
|
|
337
|
+
};
|
|
305
338
|
}
|
|
306
339
|
|
|
307
340
|
/**
|
|
@@ -310,38 +343,34 @@ export function catchTag_<K extends E["_tag"] & string, R, E extends { _tag: str
|
|
|
310
343
|
export function cause<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO<R, never, Cause<E>> {
|
|
311
344
|
return ma.matchCauseIO(IO.succeedNow, () => IO.succeedNow(Cause.empty()));
|
|
312
345
|
}
|
|
313
|
-
|
|
314
346
|
/**
|
|
315
|
-
* @tsplus
|
|
347
|
+
* @tsplus pipeable fncts.io.IO causeAsError
|
|
316
348
|
*/
|
|
317
|
-
export function causeAsError
|
|
318
|
-
return ma
|
|
349
|
+
export function causeAsError(__tsplusTrace?: string) {
|
|
350
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R, Cause<E>, A> => {
|
|
351
|
+
return ma.matchCauseIO(IO.failNow, IO.succeedNow);
|
|
352
|
+
};
|
|
319
353
|
}
|
|
320
|
-
|
|
321
354
|
/**
|
|
322
355
|
* Returns an IO that models the execution of this effect, followed by
|
|
323
356
|
* the passing of its value to the specified continuation function `f`,
|
|
324
357
|
* followed by the effect that it returns.
|
|
325
358
|
*
|
|
326
|
-
* @tsplus
|
|
359
|
+
* @tsplus pipeable fncts.io.IO flatMap
|
|
327
360
|
*/
|
|
328
|
-
export function
|
|
329
|
-
ma: IO<R, E, A
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
): IO<R | R1, E | E1, B> {
|
|
333
|
-
return new Chain(ma, f, __tsplusTrace);
|
|
361
|
+
export function flatMap<A, R1, E1, B>(f: (a: A) => IO<R1, E1, B>, __tsplusTrace?: string) {
|
|
362
|
+
return <R, E>(ma: IO<R, E, A>): IO<R | R1, E | E1, B> => {
|
|
363
|
+
return new Chain(ma, f, __tsplusTrace);
|
|
364
|
+
};
|
|
334
365
|
}
|
|
335
366
|
|
|
336
367
|
/**
|
|
337
|
-
* @tsplus
|
|
368
|
+
* @tsplus pipeable fncts.io.IO flatMapError
|
|
338
369
|
*/
|
|
339
|
-
export function
|
|
340
|
-
ma: IO<R, E, A
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
): IO<R | R1, E1, A> {
|
|
344
|
-
return ma.swapWith((effect) => effect.flatMap(f));
|
|
370
|
+
export function flatMapError<R1, E, E1>(f: (e: E) => IO<R1, never, E1>, __tsplusTrace?: string) {
|
|
371
|
+
return <R, A>(ma: IO<R, E, A>): IO<R | R1, E1, A> => {
|
|
372
|
+
return ma.swapWith((effect) => effect.flatMap(f));
|
|
373
|
+
};
|
|
345
374
|
}
|
|
346
375
|
|
|
347
376
|
/**
|
|
@@ -358,33 +387,27 @@ export function checkInterruptible<R, E, A>(
|
|
|
358
387
|
}
|
|
359
388
|
|
|
360
389
|
/**
|
|
361
|
-
* @tsplus
|
|
390
|
+
* @tsplus pipeable fncts.io.IO collect
|
|
362
391
|
*/
|
|
363
|
-
export function
|
|
364
|
-
ma: IO<R, E, A
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
__tsplusTrace?: string,
|
|
368
|
-
): IO<R, E | E1, A1> {
|
|
369
|
-
return ma.collectIO(f, (a) => pf(a).map(IO.succeedNow));
|
|
392
|
+
export function collect<A, E1, A1>(f: Lazy<E1>, pf: (a: A) => Maybe<A1>, __tsplusTrace?: string) {
|
|
393
|
+
return <R, E>(ma: IO<R, E, A>): IO<R, E | E1, A1> => {
|
|
394
|
+
return ma.collectIO(f, (a) => pf(a).map(IO.succeedNow));
|
|
395
|
+
};
|
|
370
396
|
}
|
|
371
397
|
|
|
372
398
|
/**
|
|
373
|
-
* @tsplus
|
|
399
|
+
* @tsplus pipeable fncts.io.IO collectIO
|
|
374
400
|
*/
|
|
375
|
-
export function
|
|
376
|
-
ma: IO<R, E, A
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
__tsplusTrace?: string,
|
|
380
|
-
): IO<R | R1, E | E1 | E2, A1> {
|
|
381
|
-
return ma.flatMap((a) => pf(a).getOrElse(IO.fail(f)));
|
|
401
|
+
export function collectIO<A, R1, E1, A1, E2>(f: Lazy<E2>, pf: (a: A) => Maybe<IO<R1, E1, A1>>, __tsplusTrace?: string) {
|
|
402
|
+
return <R, E>(ma: IO<R, E, A>): IO<R | R1, E | E1 | E2, A1> => {
|
|
403
|
+
return ma.flatMap((a) => pf(a).getOrElse(IO.fail(f)));
|
|
404
|
+
};
|
|
382
405
|
}
|
|
383
406
|
|
|
384
407
|
/**
|
|
385
408
|
* @tsplus static fncts.io.IOOps condIO
|
|
386
409
|
*/
|
|
387
|
-
export function
|
|
410
|
+
export function condIO<R, R1, E, A>(
|
|
388
411
|
b: boolean,
|
|
389
412
|
onTrue: URIO<R, A>,
|
|
390
413
|
onFalse: URIO<R1, E>,
|
|
@@ -524,24 +547,24 @@ export function either<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): URIO<R
|
|
|
524
547
|
}
|
|
525
548
|
|
|
526
549
|
/**
|
|
527
|
-
* @tsplus
|
|
550
|
+
* @tsplus pipeable fncts.io.IO ensuring
|
|
528
551
|
*/
|
|
529
|
-
export function
|
|
530
|
-
self: IO<R, E, A
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
return self;
|
|
537
|
-
});
|
|
552
|
+
export function ensuring<R1>(finalizer: IO<R1, never, any>, __tsplusTrace?: string) {
|
|
553
|
+
return <R, E, A>(self: IO<R, E, A>): IO<R | R1, E, A> => {
|
|
554
|
+
return IO.withFiberContext((fiber) => {
|
|
555
|
+
fiber.unsafeAddFinalizer(finalizer);
|
|
556
|
+
return self;
|
|
557
|
+
});
|
|
558
|
+
};
|
|
538
559
|
}
|
|
539
560
|
|
|
540
561
|
/**
|
|
541
|
-
* @tsplus
|
|
562
|
+
* @tsplus pipeable fncts.io.IO errorAsCause
|
|
542
563
|
*/
|
|
543
|
-
export function errorAsCause
|
|
544
|
-
return ma
|
|
564
|
+
export function errorAsCause(__tsplusTrace?: string) {
|
|
565
|
+
return <R, E, A>(ma: IO<R, Cause<E>, A>): IO<R, E, A> => {
|
|
566
|
+
return ma.matchIO(IO.failCauseNow, IO.succeedNow);
|
|
567
|
+
};
|
|
545
568
|
}
|
|
546
569
|
|
|
547
570
|
/**
|
|
@@ -552,10 +575,12 @@ export function eventually<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO
|
|
|
552
575
|
}
|
|
553
576
|
|
|
554
577
|
/**
|
|
555
|
-
* @tsplus
|
|
578
|
+
* @tsplus pipeable fncts.io.IO extend
|
|
556
579
|
*/
|
|
557
|
-
export function
|
|
558
|
-
return wa
|
|
580
|
+
export function extend<R, E, A, B>(f: (wa: IO<R, E, A>) => B, __tsplusTrace?: string) {
|
|
581
|
+
return (wa: IO<R, E, A>): IO<R, E, B> => {
|
|
582
|
+
return wa.matchIO(IO.failNow, (_) => IO.succeed(f(wa)));
|
|
583
|
+
};
|
|
559
584
|
}
|
|
560
585
|
|
|
561
586
|
/**
|
|
@@ -602,7 +627,7 @@ export const fiberId: IO<never, never, FiberId> = IO.descriptorWith((d) => IO.su
|
|
|
602
627
|
*
|
|
603
628
|
* @tsplus static fncts.io.IOOps filter
|
|
604
629
|
*/
|
|
605
|
-
export function
|
|
630
|
+
export function filter<A, R, E>(
|
|
606
631
|
as: Iterable<A>,
|
|
607
632
|
f: (a: A) => IO<R, E, boolean>,
|
|
608
633
|
__tsplusTrace?: string,
|
|
@@ -622,7 +647,7 @@ export function filter_<A, R, E>(
|
|
|
622
647
|
/**
|
|
623
648
|
* @tsplus static fncts.io.IOOps filterMap
|
|
624
649
|
*/
|
|
625
|
-
export function
|
|
650
|
+
export function filterMap<A, R, E, B>(
|
|
626
651
|
as: Iterable<A>,
|
|
627
652
|
f: (a: A) => IO<R, E, Maybe<B>>,
|
|
628
653
|
__tsplusTrace?: string,
|
|
@@ -633,7 +658,7 @@ export function filterMap_<A, R, E, B>(
|
|
|
633
658
|
/**
|
|
634
659
|
* @tsplus static fncts.io.IOOps filterMapWithIndex
|
|
635
660
|
*/
|
|
636
|
-
export function
|
|
661
|
+
export function filterMapWithIndex<A, R, E, B>(
|
|
637
662
|
as: Iterable<A>,
|
|
638
663
|
f: (i: number, a: A) => IO<R, E, Maybe<B>>,
|
|
639
664
|
__tsplusTrace?: string,
|
|
@@ -656,7 +681,7 @@ export function filterMapWithIndex_<A, R, E, B>(
|
|
|
656
681
|
*
|
|
657
682
|
* @tsplus static fncts.io.IOOps filterNot
|
|
658
683
|
*/
|
|
659
|
-
export function
|
|
684
|
+
export function filterNot<A, R, E>(
|
|
660
685
|
as: Iterable<A>,
|
|
661
686
|
f: (a: A) => IO<R, E, boolean>,
|
|
662
687
|
__tsplusTrace?: string,
|
|
@@ -667,54 +692,43 @@ export function filterNot_<A, R, E>(
|
|
|
667
692
|
/**
|
|
668
693
|
* Applies `or` if the predicate fails.
|
|
669
694
|
*
|
|
670
|
-
* @tsplus
|
|
695
|
+
* @tsplus pipeable fncts.io.IO filterOrElse
|
|
671
696
|
*/
|
|
672
|
-
export function
|
|
673
|
-
fa: IO<R, E, A>,
|
|
697
|
+
export function filterOrElse<A, B extends A, R1, E1, A1>(
|
|
674
698
|
refinement: Refinement<A, B>,
|
|
675
699
|
or: (a: Exclude<A, B>) => IO<R1, E1, A1>,
|
|
676
700
|
__tsplusTrace?: string,
|
|
677
|
-
): IO<R | R1, E | E1, B | A1>;
|
|
678
|
-
export function
|
|
679
|
-
fa: IO<R, E, A>,
|
|
701
|
+
): <R, E>(fa: IO<R, E, A>) => IO<R | R1, E | E1, B | A1>;
|
|
702
|
+
export function filterOrElse<A, R1, E1, A1>(
|
|
680
703
|
predicate: Predicate<A>,
|
|
681
704
|
or: (a: A) => IO<R1, E1, A1>,
|
|
682
705
|
__tsplusTrace?: string,
|
|
683
|
-
): IO<R | R1, E | E1, A | A1>;
|
|
684
|
-
export function
|
|
685
|
-
fa: IO<R, E, A
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
return flatMap_(
|
|
691
|
-
fa,
|
|
692
|
-
(a): IO<R1, E1, A | A1> => (predicate(a) ? IO.succeedNow(a) : IO.defer((or as (a: A) => IO<R1, E1, A1>)(a))),
|
|
693
|
-
);
|
|
706
|
+
): <R, E>(fa: IO<R, E, A>) => IO<R | R1, E | E1, A | A1>;
|
|
707
|
+
export function filterOrElse<A>(predicate: Predicate<A>, or: unknown, __tsplusTrace?: string) {
|
|
708
|
+
return <R, E, R1, E1, A1>(fa: IO<R, E, A>): IO<R | R1, E | E1, A | A1> => {
|
|
709
|
+
return fa.flatMap(
|
|
710
|
+
(a): IO<R1, E1, A | A1> => (predicate(a) ? IO.succeedNow(a) : IO.defer((or as (a: A) => IO<R1, E1, A1>)(a))),
|
|
711
|
+
);
|
|
712
|
+
};
|
|
694
713
|
}
|
|
695
714
|
|
|
696
715
|
/**
|
|
697
716
|
* Fails with `failWith` if the predicate fails.
|
|
698
717
|
*
|
|
699
|
-
* @tsplus
|
|
718
|
+
* @tsplus pipeable fncts.io.IO filterOrFail
|
|
700
719
|
*/
|
|
701
|
-
export function
|
|
702
|
-
fa: IO<R, E, A>,
|
|
720
|
+
export function filterOrFail<A, B extends A, E1>(
|
|
703
721
|
refinement: Refinement<A, B>,
|
|
704
722
|
failWith: (a: Exclude<A, B>) => E1,
|
|
705
|
-
): IO<R, E | E1, B>;
|
|
706
|
-
export function
|
|
707
|
-
fa: IO<R, E, A>,
|
|
723
|
+
): <R, E>(fa: IO<R, E, A>) => IO<R, E | E1, B>;
|
|
724
|
+
export function filterOrFail<A, E1>(
|
|
708
725
|
predicate: Predicate<A>,
|
|
709
726
|
failWith: (a: A) => E1,
|
|
710
|
-
): IO<R, E | E1, A>;
|
|
711
|
-
export function
|
|
712
|
-
fa: IO<R, E, A
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
__tsplusTrace?: string,
|
|
716
|
-
): IO<R, E | E1, A> {
|
|
717
|
-
return filterOrElse_(fa, predicate, (a) => IO.failNow((failWith as (a: A) => E1)(a)));
|
|
727
|
+
): <R, E>(fa: IO<R, E, A>) => IO<R, E | E1, A>;
|
|
728
|
+
export function filterOrFail<A>(predicate: Predicate<A>, failWith: unknown, __tsplusTrace?: string) {
|
|
729
|
+
return <R, E, E1>(fa: IO<R, E, A>): IO<R, E | E1, A> => {
|
|
730
|
+
return fa.filterOrElse(predicate, (a) => IO.failNow((failWith as (a: A) => E1)(a)));
|
|
731
|
+
};
|
|
718
732
|
}
|
|
719
733
|
|
|
720
734
|
/**
|
|
@@ -730,27 +744,22 @@ export function firstSuccess<R, E, A>(mas: NonEmptyArray<IO<R, E, A>>, __tsplusT
|
|
|
730
744
|
/**
|
|
731
745
|
* Halts with specified `unknown` if the predicate fails.
|
|
732
746
|
*
|
|
733
|
-
* @tsplus
|
|
747
|
+
* @tsplus pipeable fncts.io.IO filterOrHalt
|
|
734
748
|
*/
|
|
735
|
-
export function
|
|
736
|
-
fa: IO<R, E, A>,
|
|
749
|
+
export function filterOrHalt<A, B extends A>(
|
|
737
750
|
refinement: Refinement<A, B>,
|
|
738
751
|
haltWith: (a: Exclude<A, B>) => unknown,
|
|
739
752
|
__tsplusTrace?: string,
|
|
740
|
-
): IO<R, E, A>;
|
|
741
|
-
export function
|
|
742
|
-
fa: IO<R, E, A>,
|
|
753
|
+
): <R, E>(fa: IO<R, E, A>) => IO<R, E, A>;
|
|
754
|
+
export function filterOrHalt<A>(
|
|
743
755
|
predicate: Predicate<A>,
|
|
744
756
|
haltWith: (a: A) => unknown,
|
|
745
757
|
__tsplusTrace?: string,
|
|
746
|
-
): IO<R, E, A>;
|
|
747
|
-
export function
|
|
748
|
-
fa: IO<R, E, A
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
__tsplusTrace?: string,
|
|
752
|
-
): IO<R, E, A> {
|
|
753
|
-
return fa.filterOrElse(predicate, (a) => IO.haltNow((haltWith as (a: A) => unknown)(a)));
|
|
758
|
+
): <R, E>(fa: IO<R, E, A>) => IO<R, E, A>;
|
|
759
|
+
export function filterOrHalt<A>(predicate: Predicate<A>, haltWith: unknown, __tsplusTrace?: string) {
|
|
760
|
+
return <R, E>(fa: IO<R, E, A>): IO<R, E, A> => {
|
|
761
|
+
return fa.filterOrElse(predicate, (a) => IO.haltNow((haltWith as (a: A) => unknown)(a)));
|
|
762
|
+
};
|
|
754
763
|
}
|
|
755
764
|
|
|
756
765
|
/**
|
|
@@ -765,7 +774,7 @@ export function flatten<R, E, R1, E1, A>(self: IO<R, E, IO<R1, E1, A>>, __tsplus
|
|
|
765
774
|
*
|
|
766
775
|
* @tsplus static fncts.io.IOOps foldLeft
|
|
767
776
|
*/
|
|
768
|
-
export function
|
|
777
|
+
export function foldLeft<A, B, R, E>(
|
|
769
778
|
as: Iterable<A>,
|
|
770
779
|
b: B,
|
|
771
780
|
f: (b: B, a: A) => IO<R, E, B>,
|
|
@@ -779,7 +788,7 @@ export function foldLeft_<A, B, R, E>(
|
|
|
779
788
|
*
|
|
780
789
|
* @tsplus static fncts.io.IOOps foldMap
|
|
781
790
|
*/
|
|
782
|
-
export function
|
|
791
|
+
export function foldMap<R, E, A, M>(
|
|
783
792
|
as: Iterable<IO<R, E, A>>,
|
|
784
793
|
f: (a: A) => M,
|
|
785
794
|
/** @tsplus auto */ M: P.Monoid<M>,
|
|
@@ -802,7 +811,7 @@ function foldRightLoop<A, B, R, E>(
|
|
|
802
811
|
*
|
|
803
812
|
* @tsplus static fncts.io.IOOps foldRight
|
|
804
813
|
*/
|
|
805
|
-
export function
|
|
814
|
+
export function foldRight<A, B, R, E>(
|
|
806
815
|
as: Iterable<A>,
|
|
807
816
|
b: UIO<B>,
|
|
808
817
|
f: (a: A, b: IO<R, E, B>) => IO<R, E, B>,
|
|
@@ -830,7 +839,7 @@ function foreachWithIndexDiscardLoop<A, R, E, B>(
|
|
|
830
839
|
*
|
|
831
840
|
* @tsplus static fncts.io.IOOps foreach
|
|
832
841
|
*/
|
|
833
|
-
export function
|
|
842
|
+
export function foreach<A, R, E, B>(
|
|
834
843
|
as: Iterable<A>,
|
|
835
844
|
f: (a: A) => IO<R, E, B>,
|
|
836
845
|
__tsplusTrace?: string,
|
|
@@ -855,7 +864,7 @@ export function foreach_<A, R, E, B>(
|
|
|
855
864
|
*
|
|
856
865
|
* @tsplus static fncts.io.IOOps foreachWithIndex
|
|
857
866
|
*/
|
|
858
|
-
export function
|
|
867
|
+
export function foreachWithIndex<A, R, E, B>(
|
|
859
868
|
as: Iterable<A>,
|
|
860
869
|
f: (i: number, a: A) => IO<R, E, B>,
|
|
861
870
|
__tsplusTrace?: string,
|
|
@@ -874,7 +883,7 @@ export function foreachWithIndex_<A, R, E, B>(
|
|
|
874
883
|
/**
|
|
875
884
|
* @tsplus static fncts.io.IOOps foreachWithIndexDiscard
|
|
876
885
|
*/
|
|
877
|
-
export function
|
|
886
|
+
export function foreachWithIndexDiscard<A, R, E, B>(
|
|
878
887
|
as: Iterable<A>,
|
|
879
888
|
f: (i: number, a: A) => IO<R, E, B>,
|
|
880
889
|
__tsplusTrace?: string,
|
|
@@ -888,7 +897,7 @@ export function foreachWithIndexDiscard_<A, R, E, B>(
|
|
|
888
897
|
*
|
|
889
898
|
* @tsplus static fncts.io.IOOps foreachDiscard
|
|
890
899
|
*/
|
|
891
|
-
export function
|
|
900
|
+
export function foreachDiscard<A, R, E, B>(
|
|
892
901
|
as: Iterable<A>,
|
|
893
902
|
f: (a: A) => IO<R, E, B>,
|
|
894
903
|
__tsplusTrace?: string,
|
|
@@ -914,7 +923,7 @@ export function forever<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO<R,
|
|
|
914
923
|
* new fiber, concurrently and without "blocking" the fiber executing other
|
|
915
924
|
* IOs. Using fibers can be tricky, so instead of using this method
|
|
916
925
|
* directly, consider other higher-level methods, such as `raceWith`,
|
|
917
|
-
* `
|
|
926
|
+
* `zipC`, and so forth.
|
|
918
927
|
*
|
|
919
928
|
* The fiber returned by this method has methods interrupt the fiber and to
|
|
920
929
|
* wait for it to finish executing the IO. See `Fiber` for more
|
|
@@ -946,6 +955,7 @@ export function fromEither<E, A>(either: Lazy<Either<E, A>>, __tsplusTrace?: str
|
|
|
946
955
|
* Lifts an `Either` into an `IO`
|
|
947
956
|
*
|
|
948
957
|
* @tsplus static fncts.io.IOOps fromEitherNow
|
|
958
|
+
* @tsplus getter fncts.Either toIO
|
|
949
959
|
*/
|
|
950
960
|
export function fromEitherNow<E, A>(either: Either<E, A>, __tsplusTrace?: string): IO<never, E, A> {
|
|
951
961
|
return either.match(IO.failNow, IO.succeedNow);
|
|
@@ -955,6 +965,7 @@ export function fromEitherNow<E, A>(either: Either<E, A>, __tsplusTrace?: string
|
|
|
955
965
|
* Lifts an `Eval` into an `IO`
|
|
956
966
|
*
|
|
957
967
|
* @tsplus static fncts.io.IOOps fromEval
|
|
968
|
+
* @tsplus getter fncts.Eval toIO
|
|
958
969
|
*/
|
|
959
970
|
export function fromEval<A>(computation: Eval<A>, __tsplusTrace?: string): IO<never, never, A> {
|
|
960
971
|
return IO.succeed(computation.run);
|
|
@@ -973,6 +984,7 @@ export function fromExit<E, A>(exit: Lazy<Exit<E, A>>, __tsplusTrace?: string):
|
|
|
973
984
|
* Creates a `IO` from an exit value
|
|
974
985
|
*
|
|
975
986
|
* @tsplus static fncts.io.IOOps fromExitNow
|
|
987
|
+
* @tsplus getter fncts.Exit toIO
|
|
976
988
|
*/
|
|
977
989
|
export function fromExitNow<E, A>(exit: Exit<E, A>, __tsplusTrace?: string): FIO<E, A> {
|
|
978
990
|
return exit.match(IO.failCauseNow, IO.succeedNow);
|
|
@@ -990,6 +1002,7 @@ export function fromMaybe<A>(maybe: Lazy<Maybe<A>>, __tsplusTrace?: string): FIO
|
|
|
990
1002
|
|
|
991
1003
|
/**
|
|
992
1004
|
* @tsplus static fncts.io.IOOps fromMaybeNow
|
|
1005
|
+
* @tsplus getter fncts.Maybe toIO
|
|
993
1006
|
*/
|
|
994
1007
|
export function fromMaybeNow<A = never>(maybe: Maybe<A>, __tsplusTrace?: string): IO<unknown, Maybe<never>, A> {
|
|
995
1008
|
return maybe.match(() => IO.failNow(Nothing()), IO.succeedNow);
|
|
@@ -1051,27 +1064,23 @@ export function get<R, E, A>(ma: IO<R, E, Maybe<A>>, __tsplusTrace?: string): IO
|
|
|
1051
1064
|
/**
|
|
1052
1065
|
* Extracts the optional value, or returns the given 'orElse'.
|
|
1053
1066
|
*
|
|
1054
|
-
* @tsplus
|
|
1067
|
+
* @tsplus pipeable fncts.io.IO getOrElse
|
|
1055
1068
|
*/
|
|
1056
|
-
export function
|
|
1057
|
-
ma: IO<R, E, Maybe<A
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
): IO<R, E, A | B> {
|
|
1061
|
-
return ma.map((ma) => ma.getOrElse(orElse));
|
|
1069
|
+
export function getOrElse<B>(orElse: Lazy<B>, __tsplusTrace?: string) {
|
|
1070
|
+
return <R, E, A>(ma: IO<R, E, Maybe<A>>): IO<R, E, A | B> => {
|
|
1071
|
+
return ma.map((ma) => ma.getOrElse(orElse));
|
|
1072
|
+
};
|
|
1062
1073
|
}
|
|
1063
1074
|
|
|
1064
1075
|
/**
|
|
1065
1076
|
* Extracts the optional value, or executes the effect 'orElse'.
|
|
1066
1077
|
*
|
|
1067
|
-
* @tsplus
|
|
1078
|
+
* @tsplus pipeable fncts.io.IO getOrElseIO
|
|
1068
1079
|
*/
|
|
1069
|
-
export function
|
|
1070
|
-
ma: IO<R, E, Maybe<A
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
): IO<R | R1, E | E1, A | B> {
|
|
1074
|
-
return (ma as IO<R, E, Maybe<A | B>>).flatMap((mab) => mab.map(IO.succeedNow).getOrElse(orElse));
|
|
1080
|
+
export function getOrElseIO<R1, E1, B>(orElse: Lazy<IO<R1, E1, B>>, __tsplusTrace?: string) {
|
|
1081
|
+
return <R, E, A>(ma: IO<R, E, Maybe<A>>): IO<R | R1, E | E1, A | B> => {
|
|
1082
|
+
return (ma as IO<R, E, Maybe<A | B>>).flatMap((mab) => mab.map(IO.succeedNow).getOrElse(orElse));
|
|
1083
|
+
};
|
|
1075
1084
|
}
|
|
1076
1085
|
|
|
1077
1086
|
/**
|
|
@@ -1079,7 +1088,7 @@ export function getOrElseIO_<R, E, A, R1, E1, B>(
|
|
|
1079
1088
|
*
|
|
1080
1089
|
* @tsplus static fncts.io.IOOps getOrFailWith
|
|
1081
1090
|
*/
|
|
1082
|
-
export function
|
|
1091
|
+
export function getOrFailWith<E, A>(maybe: Maybe<A>, onNothing: Lazy<E>, __tsplusTrace?: string): FIO<E, A> {
|
|
1083
1092
|
return IO.defer(maybe.match(() => IO.fail(onNothing), IO.succeedNow));
|
|
1084
1093
|
}
|
|
1085
1094
|
|
|
@@ -1113,23 +1122,23 @@ export function halt(e: Lazy<unknown>, __tsplusTrace?: string): UIO<never> {
|
|
|
1113
1122
|
export function haltNow(e: unknown, __tsplusTrace?: string): UIO<never> {
|
|
1114
1123
|
return IO.failCauseNow(Cause.halt(e, Trace.none), __tsplusTrace);
|
|
1115
1124
|
}
|
|
1116
|
-
|
|
1117
1125
|
/**
|
|
1118
|
-
* @tsplus
|
|
1126
|
+
* @tsplus pipeable fncts.io.IO ifIO
|
|
1119
1127
|
*/
|
|
1120
|
-
export function
|
|
1121
|
-
self: IO<R, E, boolean>,
|
|
1128
|
+
export function ifIO<R1, E1, B, R2, E2, C>(
|
|
1122
1129
|
onFalse: Lazy<IO<R1, E1, B>>,
|
|
1123
1130
|
onTrue: Lazy<IO<R2, E2, C>>,
|
|
1124
1131
|
__tsplusTrace?: string,
|
|
1125
|
-
)
|
|
1126
|
-
return self
|
|
1132
|
+
) {
|
|
1133
|
+
return <R, E>(self: IO<R, E, boolean>): IO<R | R1 | R2, E | E1 | E2, B | C> => {
|
|
1134
|
+
return self.flatMap((b) => (b ? onTrue() : onFalse()));
|
|
1135
|
+
};
|
|
1127
1136
|
}
|
|
1128
1137
|
|
|
1129
1138
|
/**
|
|
1130
1139
|
* @tsplus static fncts.io.IOOps if
|
|
1131
1140
|
*/
|
|
1132
|
-
export function
|
|
1141
|
+
export function cond<R, E, A, R1, E1, A1>(
|
|
1133
1142
|
b: boolean,
|
|
1134
1143
|
onTrue: Lazy<IO<R, E, A>>,
|
|
1135
1144
|
onFalse: Lazy<IO<R1, E1, A1>>,
|
|
@@ -1171,6 +1180,7 @@ export function isSuccess<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO<
|
|
|
1171
1180
|
() => true,
|
|
1172
1181
|
);
|
|
1173
1182
|
}
|
|
1183
|
+
|
|
1174
1184
|
/**
|
|
1175
1185
|
* Iterates with the specified effectual function. The moral equivalent of:
|
|
1176
1186
|
*
|
|
@@ -1186,7 +1196,7 @@ export function isSuccess<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO<
|
|
|
1186
1196
|
*
|
|
1187
1197
|
* @tsplus static fncts.io.IOOps iterate
|
|
1188
1198
|
*/
|
|
1189
|
-
export function
|
|
1199
|
+
export function iterate<R, E, A>(
|
|
1190
1200
|
initial: A,
|
|
1191
1201
|
cont: (a: A) => boolean,
|
|
1192
1202
|
body: (a: A) => IO<R, E, A>,
|
|
@@ -1229,7 +1239,7 @@ export function log(message: Lazy<string>, __tsplusTrace?: string): UIO<void> {
|
|
|
1229
1239
|
*
|
|
1230
1240
|
* @tsplus static fncts.io.IOOps loop
|
|
1231
1241
|
*/
|
|
1232
|
-
export function
|
|
1242
|
+
export function loop<A, R, E, B>(
|
|
1233
1243
|
initial: A,
|
|
1234
1244
|
cont: (a: A) => boolean,
|
|
1235
1245
|
inc: (b: A) => A,
|
|
@@ -1258,7 +1268,7 @@ export function loop_<A, R, E, B>(
|
|
|
1258
1268
|
*
|
|
1259
1269
|
* @tsplus static fncts.io.IOOps loopUnit
|
|
1260
1270
|
*/
|
|
1261
|
-
export function
|
|
1271
|
+
export function loopUnit<A, R, E>(
|
|
1262
1272
|
initial: A,
|
|
1263
1273
|
cont: (a: A) => boolean,
|
|
1264
1274
|
inc: (a: A) => A,
|
|
@@ -1275,10 +1285,12 @@ export function loopUnit_<A, R, E>(
|
|
|
1275
1285
|
/**
|
|
1276
1286
|
* Returns an `IO` whose success is mapped by the specified function `f`.
|
|
1277
1287
|
*
|
|
1278
|
-
* @tsplus
|
|
1288
|
+
* @tsplus pipeable fncts.io.IO map
|
|
1279
1289
|
*/
|
|
1280
|
-
export function
|
|
1281
|
-
return fa
|
|
1290
|
+
export function map<A, B>(f: (a: A) => B, __tsplusTrace?: string) {
|
|
1291
|
+
return <R, E>(fa: IO<R, E, A>): IO<R, E, B> => {
|
|
1292
|
+
return fa.flatMap((a) => IO.succeedNow(f(a)));
|
|
1293
|
+
};
|
|
1282
1294
|
}
|
|
1283
1295
|
|
|
1284
1296
|
/**
|
|
@@ -1288,16 +1300,18 @@ export function map_<R, E, A, B>(fa: IO<R, E, A>, f: (a: A) => B, __tsplusTrace?
|
|
|
1288
1300
|
* function. This can be used to lift a "smaller" error into a "larger"
|
|
1289
1301
|
* error.
|
|
1290
1302
|
*
|
|
1291
|
-
* @tsplus
|
|
1303
|
+
* @tsplus pipeable fncts.io.IO mapError
|
|
1292
1304
|
*/
|
|
1293
|
-
export function
|
|
1294
|
-
return fea
|
|
1305
|
+
export function mapError<E, E1>(f: (e: E) => E1, __tsplusTrace?: string) {
|
|
1306
|
+
return <R, A>(fea: IO<R, E, A>): IO<R, E1, A> => {
|
|
1307
|
+
return fea.matchCauseIO((cause) => IO.failCauseNow(cause.map(f)), IO.succeedNow);
|
|
1308
|
+
};
|
|
1295
1309
|
}
|
|
1296
1310
|
|
|
1297
1311
|
/**
|
|
1298
1312
|
* @tsplus static fncts.io.IOOps mapTryCatch
|
|
1299
1313
|
*/
|
|
1300
|
-
export function
|
|
1314
|
+
export function mapTryCatch<R, E, A, E1, B>(
|
|
1301
1315
|
io: IO<R, E, A>,
|
|
1302
1316
|
f: (a: A) => B,
|
|
1303
1317
|
onThrow: (u: unknown) => E1,
|
|
@@ -1311,57 +1325,58 @@ export function mapTryCatch_<R, E, A, E1, B>(
|
|
|
1311
1325
|
* the specified function. This can be used to transform errors
|
|
1312
1326
|
* while preserving the original structure of Cause.
|
|
1313
1327
|
*
|
|
1314
|
-
* @tsplus
|
|
1328
|
+
* @tsplus pipeable fncts.io.IO mapErrorCause
|
|
1315
1329
|
*/
|
|
1316
|
-
export function
|
|
1317
|
-
ma: IO<R, E, A
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
): IO<R, E1, A> {
|
|
1321
|
-
return ma.matchCauseIO((cause) => IO.failCauseNow(f(cause)), IO.succeedNow);
|
|
1330
|
+
export function mapErrorCause<E, E1>(f: (cause: Cause<E>) => Cause<E1>, __tsplusTrace?: string) {
|
|
1331
|
+
return <R, A>(ma: IO<R, E, A>): IO<R, E1, A> => {
|
|
1332
|
+
return ma.matchCauseIO((cause) => IO.failCauseNow(f(cause)), IO.succeedNow);
|
|
1333
|
+
};
|
|
1322
1334
|
}
|
|
1323
1335
|
|
|
1324
1336
|
/**
|
|
1325
1337
|
* A more powerful version of `match_` that allows recovering from any kind of failure except interruptions.
|
|
1326
1338
|
*
|
|
1327
|
-
* @tsplus
|
|
1339
|
+
* @tsplus pipeable fncts.io.IO matchCause
|
|
1328
1340
|
*/
|
|
1329
|
-
export function
|
|
1330
|
-
self: IO<R, E, A>,
|
|
1341
|
+
export function matchCause<E, A, A1, A2>(
|
|
1331
1342
|
onFailure: (cause: Cause<E>) => A1,
|
|
1332
1343
|
onSuccess: (a: A) => A2,
|
|
1333
1344
|
__tsplusTrace?: string,
|
|
1334
|
-
)
|
|
1335
|
-
return self
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1345
|
+
) {
|
|
1346
|
+
return <R>(self: IO<R, E, A>): IO<R, never, A1 | A2> => {
|
|
1347
|
+
return self.matchCauseIO(
|
|
1348
|
+
(cause) => IO.succeedNow(onFailure(cause)),
|
|
1349
|
+
(a) => IO.succeedNow(onSuccess(a)),
|
|
1350
|
+
);
|
|
1351
|
+
};
|
|
1339
1352
|
}
|
|
1340
1353
|
|
|
1341
1354
|
/**
|
|
1342
1355
|
* A more powerful version of `matchIO` that allows recovering from any kind of failure except interruptions.
|
|
1343
1356
|
*
|
|
1344
|
-
* @tsplus
|
|
1357
|
+
* @tsplus pipeable fncts.io.IO matchCauseIO
|
|
1345
1358
|
*/
|
|
1346
|
-
export function
|
|
1347
|
-
self: IO<R, E, A>,
|
|
1359
|
+
export function matchCauseIO<E, A, R1, E1, A1, R2, E2, A2>(
|
|
1348
1360
|
onFailure: (cause: Cause<E>) => IO<R1, E1, A1>,
|
|
1349
1361
|
onSuccess: (a: A) => IO<R2, E2, A2>,
|
|
1350
1362
|
__tsplusTrace?: string,
|
|
1351
|
-
)
|
|
1352
|
-
return
|
|
1363
|
+
) {
|
|
1364
|
+
return <R>(self: IO<R, E, A>): IO<R | R1 | R2, E1 | E2, A1 | A2> => {
|
|
1365
|
+
return new Match(self, onFailure, onSuccess, __tsplusTrace);
|
|
1366
|
+
};
|
|
1353
1367
|
}
|
|
1354
1368
|
|
|
1355
1369
|
/**
|
|
1356
|
-
* @tsplus
|
|
1370
|
+
* @tsplus pipeable fncts.io.IO matchIO
|
|
1357
1371
|
*/
|
|
1358
|
-
export function
|
|
1359
|
-
self: IO<R, E, A>,
|
|
1372
|
+
export function matchIO<R1, R2, E, E1, E2, A, A1, A2>(
|
|
1360
1373
|
onFailure: (e: E) => IO<R1, E1, A1>,
|
|
1361
1374
|
onSuccess: (a: A) => IO<R2, E2, A2>,
|
|
1362
1375
|
__tsplusTrace?: string,
|
|
1363
|
-
)
|
|
1364
|
-
return self
|
|
1376
|
+
) {
|
|
1377
|
+
return <R>(self: IO<R, E, A>): IO<R | R1 | R2, E1 | E2, A1 | A2> => {
|
|
1378
|
+
return self.matchCauseIO((cause) => cause.failureOrCause.match(onFailure, IO.failCauseNow), onSuccess);
|
|
1379
|
+
};
|
|
1365
1380
|
}
|
|
1366
1381
|
|
|
1367
1382
|
/**
|
|
@@ -1369,35 +1384,33 @@ export function matchIO_<R, R1, R2, E, E1, E2, A, A1, A2>(
|
|
|
1369
1384
|
* does not fail, but succeeds with the value returned by the left or right
|
|
1370
1385
|
* function passed to `match_`.
|
|
1371
1386
|
*
|
|
1372
|
-
* @tsplus
|
|
1387
|
+
* @tsplus pipeable fncts.io.IO match
|
|
1373
1388
|
*/
|
|
1374
|
-
export function
|
|
1375
|
-
self: IO<R, E, A
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
)
|
|
1380
|
-
|
|
1381
|
-
(e) => IO.succeedNow(onFailure(e)),
|
|
1382
|
-
(a) => IO.succeedNow(onSuccess(a)),
|
|
1383
|
-
);
|
|
1389
|
+
export function match<E, A, B, C>(onFailure: (e: E) => B, onSuccess: (a: A) => C, __tsplusTrace?: string) {
|
|
1390
|
+
return <R>(self: IO<R, E, A>): IO<R, never, B | C> => {
|
|
1391
|
+
return self.matchIO(
|
|
1392
|
+
(e) => IO.succeedNow(onFailure(e)),
|
|
1393
|
+
(a) => IO.succeedNow(onSuccess(a)),
|
|
1394
|
+
);
|
|
1395
|
+
};
|
|
1384
1396
|
}
|
|
1385
1397
|
|
|
1386
1398
|
/**
|
|
1387
1399
|
* A version of `matchIO` that gives you the (optional) trace of the error.
|
|
1388
1400
|
*
|
|
1389
|
-
* @tsplus
|
|
1401
|
+
* @tsplus pipeable fncts.io.IO matchTraceIO
|
|
1390
1402
|
*/
|
|
1391
|
-
export function
|
|
1392
|
-
ma: IO<R, E, A>,
|
|
1403
|
+
export function matchTraceIO<E, A, R1, E1, A1, R2, E2, A2>(
|
|
1393
1404
|
onFailure: (e: E, trace: Trace) => IO<R1, E1, A1>,
|
|
1394
1405
|
onSuccess: (a: A) => IO<R2, E2, A2>,
|
|
1395
1406
|
__tsplusTrace?: string,
|
|
1396
|
-
)
|
|
1397
|
-
return ma
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1407
|
+
) {
|
|
1408
|
+
return <R>(ma: IO<R, E, A>): IO<R | R1 | R2, E1 | E2, A1 | A2> => {
|
|
1409
|
+
return ma.matchCauseIO(
|
|
1410
|
+
(cause) => cause.failureTraceOrCause.match(([e, trace]) => onFailure(e, trace), IO.failCauseNow),
|
|
1411
|
+
onSuccess,
|
|
1412
|
+
);
|
|
1413
|
+
};
|
|
1401
1414
|
}
|
|
1402
1415
|
|
|
1403
1416
|
/**
|
|
@@ -1419,7 +1432,7 @@ export function merge<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string): IO<R, n
|
|
|
1419
1432
|
*
|
|
1420
1433
|
* @tsplus static fncts.io.IOOps mergeAll
|
|
1421
1434
|
*/
|
|
1422
|
-
export function
|
|
1435
|
+
export function mergeAll<R, E, A, B>(
|
|
1423
1436
|
fas: Iterable<IO<R, E, A>>,
|
|
1424
1437
|
b: B,
|
|
1425
1438
|
f: (b: B, a: A) => B,
|
|
@@ -1465,61 +1478,58 @@ export function optional<R, E, A>(ma: IO<R, Maybe<E>, A>, __tsplusTrace?: string
|
|
|
1465
1478
|
* operator has "short circuiting" behavior so if the value returned by this
|
|
1466
1479
|
* effect is true the specified effect will not be evaluated.
|
|
1467
1480
|
*
|
|
1468
|
-
* @tsplus
|
|
1481
|
+
* @tsplus pipeable fncts.io.IO or
|
|
1482
|
+
* @tsplus pipeable-operator fncts.io.IO ||
|
|
1469
1483
|
*/
|
|
1470
|
-
export function
|
|
1471
|
-
ma: IO<R, E, boolean
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
): IO<R | R1, E | E1, boolean> {
|
|
1475
|
-
return ma.flatMap((b) => (b ? IO.succeedNow(true) : mb));
|
|
1484
|
+
export function or<R1, E1>(mb: IO<R1, E1, boolean>, __tsplusTrace?: string) {
|
|
1485
|
+
return <R, E>(ma: IO<R, E, boolean>): IO<R | R1, E | E1, boolean> => {
|
|
1486
|
+
return ma.flatMap((b) => (b ? IO.succeedNow(true) : mb));
|
|
1487
|
+
};
|
|
1476
1488
|
}
|
|
1477
1489
|
|
|
1478
1490
|
/**
|
|
1479
|
-
* @tsplus
|
|
1491
|
+
* @tsplus pipeable fncts.io.IO orElse
|
|
1480
1492
|
*/
|
|
1481
|
-
export function
|
|
1482
|
-
ma: IO<R, E, A
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
): IO<R | R1, E1, A | A1> {
|
|
1486
|
-
return tryOrElse_(ma, that, IO.succeedNow);
|
|
1493
|
+
export function orElse<R1, E1, A1>(that: Lazy<IO<R1, E1, A1>>, __tsplusTrace?: string) {
|
|
1494
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R | R1, E1, A | A1> => {
|
|
1495
|
+
return ma.tryOrElse(that, IO.succeedNow);
|
|
1496
|
+
};
|
|
1487
1497
|
}
|
|
1488
1498
|
|
|
1489
1499
|
/**
|
|
1490
|
-
* @tsplus
|
|
1500
|
+
* @tsplus pipeable fncts.io.IO orElseEither
|
|
1491
1501
|
*/
|
|
1492
|
-
export function
|
|
1493
|
-
self: IO<R, E, A
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
): IO<R | R1, E1, Either<A, A1>> {
|
|
1497
|
-
return self.tryOrElse(that().map(Either.right), (a) => IO.succeedNow(Either.left(a)));
|
|
1502
|
+
export function orElseEither<R1, E1, A1>(that: Lazy<IO<R1, E1, A1>>, __tsplusTrace?: string) {
|
|
1503
|
+
return <R, E, A>(self: IO<R, E, A>): IO<R | R1, E1, Either<A, A1>> => {
|
|
1504
|
+
return self.tryOrElse(that().map(Either.right), (a) => IO.succeedNow(Either.left(a)));
|
|
1505
|
+
};
|
|
1498
1506
|
}
|
|
1499
1507
|
|
|
1500
1508
|
/**
|
|
1501
|
-
* @tsplus
|
|
1509
|
+
* @tsplus pipeable fncts.io.IO orElseFail
|
|
1502
1510
|
*/
|
|
1503
|
-
export function
|
|
1504
|
-
return ma
|
|
1511
|
+
export function orElseFail<E1>(e: Lazy<E1>, __tsplusTrace?: string) {
|
|
1512
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R, E1, A> => {
|
|
1513
|
+
return ma.orElse(IO.fail(e));
|
|
1514
|
+
};
|
|
1505
1515
|
}
|
|
1506
1516
|
|
|
1507
1517
|
/**
|
|
1508
|
-
* @tsplus
|
|
1518
|
+
* @tsplus pipeable fncts.io.IO orElseMaybe
|
|
1509
1519
|
*/
|
|
1510
|
-
export function
|
|
1511
|
-
ma: IO<R, Maybe<E>, A>,
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
): IO<R | R1, Maybe<E | E1>, A | A1> {
|
|
1515
|
-
return ma.catchAll((me) => me.match(that, (e) => IO.fail(Just(e))));
|
|
1520
|
+
export function orElseMaybe<R1, E1, A1>(that: Lazy<IO<R1, Maybe<E1>, A1>>, __tsplusTrace?: string) {
|
|
1521
|
+
return <R, E, A>(ma: IO<R, Maybe<E>, A>): IO<R | R1, Maybe<E | E1>, A | A1> => {
|
|
1522
|
+
return ma.catchAll((me) => me.match(that, (e) => IO.fail(Just(e))));
|
|
1523
|
+
};
|
|
1516
1524
|
}
|
|
1517
1525
|
|
|
1518
1526
|
/**
|
|
1519
|
-
* @tsplus
|
|
1527
|
+
* @tsplus pipeable fncts.io.IO orElseSucceed
|
|
1520
1528
|
*/
|
|
1521
|
-
export function
|
|
1522
|
-
return ma
|
|
1529
|
+
export function orElseSucceed<A1>(a: Lazy<A1>, __tsplusTrace?: string) {
|
|
1530
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R, E, A | A1> => {
|
|
1531
|
+
return ma.orElse(IO.succeed(a));
|
|
1532
|
+
};
|
|
1523
1533
|
}
|
|
1524
1534
|
|
|
1525
1535
|
/**
|
|
@@ -1537,26 +1547,30 @@ export function orHaltKeep<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): IO
|
|
|
1537
1547
|
}
|
|
1538
1548
|
|
|
1539
1549
|
/**
|
|
1540
|
-
* @tsplus
|
|
1550
|
+
* @tsplus pipeable fncts.io.IO orHaltWith
|
|
1541
1551
|
*/
|
|
1542
|
-
export function
|
|
1543
|
-
return
|
|
1552
|
+
export function orHaltWith<E>(f: (e: E) => unknown, __tsplusTrace?: string) {
|
|
1553
|
+
return <R, A>(ma: IO<R, E, A>): IO<R, never, A> => {
|
|
1554
|
+
return ma.matchIO((e) => IO.haltNow(f(e)), IO.succeedNow);
|
|
1555
|
+
};
|
|
1544
1556
|
}
|
|
1545
1557
|
|
|
1546
1558
|
/**
|
|
1547
1559
|
* Exposes all parallel errors in a single call
|
|
1548
1560
|
*
|
|
1549
|
-
* @tsplus
|
|
1561
|
+
* @tsplus pipeable fncts.io.IO concurrentErrors
|
|
1550
1562
|
*/
|
|
1551
|
-
export function
|
|
1552
|
-
return io
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1563
|
+
export function concurrentErrors(__tsplusTrace?: string) {
|
|
1564
|
+
return <R, E, A>(io: IO<R, E, A>): IO<R, List<E>, A> => {
|
|
1565
|
+
return io.matchCauseIO((cause) => {
|
|
1566
|
+
const f = cause.failures;
|
|
1567
|
+
if (f.length === 0) {
|
|
1568
|
+
return IO.failCauseNow(cause as Cause<never>);
|
|
1569
|
+
} else {
|
|
1570
|
+
return IO.failNow(f);
|
|
1571
|
+
}
|
|
1572
|
+
}, IO.succeedNow);
|
|
1573
|
+
};
|
|
1560
1574
|
}
|
|
1561
1575
|
|
|
1562
1576
|
/**
|
|
@@ -1565,7 +1579,7 @@ export function parallelErrors<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string)
|
|
|
1565
1579
|
*
|
|
1566
1580
|
* @tsplus static fncts.io.IOOps partition
|
|
1567
1581
|
*/
|
|
1568
|
-
export function
|
|
1582
|
+
export function partition<R, E, A, B>(
|
|
1569
1583
|
as: Iterable<A>,
|
|
1570
1584
|
f: (a: A) => IO<R, E, B>,
|
|
1571
1585
|
__tsplusTrace?: string,
|
|
@@ -1576,43 +1590,36 @@ export function partition_<R, E, A, B>(
|
|
|
1576
1590
|
/**
|
|
1577
1591
|
* Keeps some of the errors, and terminates the fiber with the rest
|
|
1578
1592
|
*
|
|
1579
|
-
* @tsplus
|
|
1593
|
+
* @tsplus pipeable fncts.io.IO refineOrHalt
|
|
1580
1594
|
*/
|
|
1581
|
-
export function
|
|
1582
|
-
fa: IO<R, E, A
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
): IO<R, E1, A> {
|
|
1586
|
-
return fa.refineOrHaltWith(pf, identity);
|
|
1595
|
+
export function refineOrHalt<E, E1>(pf: (e: E) => Maybe<E1>, __tsplusTrace?: string) {
|
|
1596
|
+
return <R, A>(fa: IO<R, E, A>): IO<R, E1, A> => {
|
|
1597
|
+
return fa.refineOrHaltWith(pf, identity);
|
|
1598
|
+
};
|
|
1587
1599
|
}
|
|
1588
1600
|
|
|
1589
1601
|
/**
|
|
1590
1602
|
* Keeps some of the errors, and terminates the fiber with the rest, using
|
|
1591
1603
|
* the specified function to convert the `E` into a `Throwable`.
|
|
1592
1604
|
*
|
|
1593
|
-
* @tsplus
|
|
1605
|
+
* @tsplus pipeable fncts.io.IO refineOrHaltWith
|
|
1594
1606
|
*/
|
|
1595
|
-
export function
|
|
1596
|
-
fa: IO<R, E, A
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
__tsplusTrace?: string,
|
|
1600
|
-
): IO<R, E1, A> {
|
|
1601
|
-
return fa.catchAll((e) => pf(e).match(() => IO.haltNow(f(e)), IO.failNow));
|
|
1607
|
+
export function refineOrHaltWith<E, E1>(pf: (e: E) => Maybe<E1>, f: (e: E) => unknown, __tsplusTrace?: string) {
|
|
1608
|
+
return <R, A>(fa: IO<R, E, A>): IO<R, E1, A> => {
|
|
1609
|
+
return fa.catchAll((e) => pf(e).match(() => IO.haltNow(f(e)), IO.failNow));
|
|
1610
|
+
};
|
|
1602
1611
|
}
|
|
1603
1612
|
|
|
1604
1613
|
/**
|
|
1605
1614
|
* Fail with the returned value if the partial function `pf` matches, otherwise
|
|
1606
1615
|
* continue with the held value.
|
|
1607
1616
|
*
|
|
1608
|
-
* @tsplus
|
|
1617
|
+
* @tsplus pipeable fncts.io.IO reject
|
|
1609
1618
|
*/
|
|
1610
|
-
export function
|
|
1611
|
-
fa: IO<R, E, A
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
): IO<R, E | E1, A> {
|
|
1615
|
-
return fa.rejectIO((a) => pf(a).map(IO.failNow));
|
|
1619
|
+
export function reject<A, E1>(pf: (a: A) => Maybe<E1>, __tsplusTrace?: string) {
|
|
1620
|
+
return <R, E>(fa: IO<R, E, A>): IO<R, E | E1, A> => {
|
|
1621
|
+
return fa.rejectIO((a) => pf(a).map(IO.failNow));
|
|
1622
|
+
};
|
|
1616
1623
|
}
|
|
1617
1624
|
|
|
1618
1625
|
/**
|
|
@@ -1620,86 +1627,90 @@ export function reject_<R, E, A, E1>(
|
|
|
1620
1627
|
* translating the successful match into a failure, otherwise continue with
|
|
1621
1628
|
* the held value.
|
|
1622
1629
|
*
|
|
1623
|
-
* @tsplus
|
|
1630
|
+
* @tsplus pipeable fncts.io.IO rejectIO
|
|
1624
1631
|
*/
|
|
1625
|
-
export function
|
|
1626
|
-
fa: IO<R, E, A
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
)
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
),
|
|
1635
|
-
);
|
|
1632
|
+
export function rejectIO<A, R1, E1>(pf: (a: A) => Maybe<IO<R1, E1, E1>>, __tsplusTrace?: string) {
|
|
1633
|
+
return <R, E>(fa: IO<R, E, A>): IO<R | R1, E | E1, A> => {
|
|
1634
|
+
return fa.flatMap((a) =>
|
|
1635
|
+
pf(a).match(
|
|
1636
|
+
() => IO.succeedNow(a),
|
|
1637
|
+
(io) => io.flatMap(IO.failNow),
|
|
1638
|
+
),
|
|
1639
|
+
);
|
|
1640
|
+
};
|
|
1636
1641
|
}
|
|
1637
1642
|
|
|
1638
1643
|
/**
|
|
1639
1644
|
* Repeats this effect the specified number of times.
|
|
1640
1645
|
*
|
|
1641
|
-
* @tsplus
|
|
1646
|
+
* @tsplus pipeable fncts.io.IO repeatN
|
|
1642
1647
|
*/
|
|
1643
|
-
export function repeatN_
|
|
1644
|
-
return
|
|
1648
|
+
export function repeatN_(n: number, __tsplusTrace?: string) {
|
|
1649
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R, E, A> => {
|
|
1650
|
+
return ma.flatMap((a) => (n <= 0 ? IO.succeed(a) : ma.repeatN(n - 1)));
|
|
1651
|
+
};
|
|
1645
1652
|
}
|
|
1646
1653
|
|
|
1647
1654
|
/**
|
|
1648
1655
|
* Repeats this effect until its result satisfies the specified predicate.
|
|
1649
1656
|
*
|
|
1650
|
-
* @tsplus
|
|
1657
|
+
* @tsplus pipeable fncts.io.IO repeatUntil
|
|
1651
1658
|
*/
|
|
1652
|
-
export function
|
|
1653
|
-
return ma
|
|
1659
|
+
export function repeatUntil<A>(f: (a: A) => boolean, __tsplusTrace?: string) {
|
|
1660
|
+
return <R, E>(ma: IO<R, E, A>): IO<R, E, A> => {
|
|
1661
|
+
return ma.repeatUntilIO((a) => IO.succeedNow(f(a)));
|
|
1662
|
+
};
|
|
1654
1663
|
}
|
|
1655
1664
|
|
|
1656
1665
|
/**
|
|
1657
1666
|
* Repeats this effect until its error satisfies the specified effectful predicate.
|
|
1658
1667
|
*
|
|
1659
|
-
* @tsplus
|
|
1668
|
+
* @tsplus pipeable fncts.io.IO repeatUntilIO
|
|
1660
1669
|
*/
|
|
1661
|
-
export function
|
|
1662
|
-
ma: IO<R, E, A
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
): IO<R | R1, E | E1, A> {
|
|
1666
|
-
return ma.flatMap((a) => f(a).flatMap((b) => (b ? IO.succeed(a) : ma.repeatUntilIO(f))));
|
|
1670
|
+
export function repeatUntilIO<A, R1, E1>(f: (a: A) => IO<R1, E1, boolean>, __tsplusTrace?: string) {
|
|
1671
|
+
return <R, E>(ma: IO<R, E, A>): IO<R | R1, E | E1, A> => {
|
|
1672
|
+
return ma.flatMap((a) => f(a).flatMap((b) => (b ? IO.succeed(a) : ma.repeatUntilIO(f))));
|
|
1673
|
+
};
|
|
1667
1674
|
}
|
|
1668
1675
|
|
|
1669
1676
|
/**
|
|
1670
1677
|
* Repeats this effect while its error satisfies the specified predicate.
|
|
1671
1678
|
*
|
|
1672
|
-
* @tsplus
|
|
1679
|
+
* @tsplus pipeable fncts.io.IO repeatWhile
|
|
1673
1680
|
*/
|
|
1674
|
-
export function
|
|
1675
|
-
return ma
|
|
1681
|
+
export function repeatWhile<A>(f: (a: A) => boolean, __tsplusTrace?: string) {
|
|
1682
|
+
return <R, E>(ma: IO<R, E, A>): IO<R, E, A> => {
|
|
1683
|
+
return ma.repeatWhileIO((a) => IO.succeedNow(f(a)));
|
|
1684
|
+
};
|
|
1676
1685
|
}
|
|
1677
1686
|
|
|
1678
1687
|
/**
|
|
1679
1688
|
* Repeats this effect while its error satisfies the specified effectful predicate.
|
|
1680
1689
|
*
|
|
1681
|
-
* @tsplus
|
|
1690
|
+
* @tsplus pipeable fncts.io.IO repeatWhileIO
|
|
1682
1691
|
*/
|
|
1683
|
-
export function
|
|
1684
|
-
ma: IO<R, E, A
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
): IO<R | R1, E | E1, A> {
|
|
1688
|
-
return ma.flatMap((a) => f(a).flatMap((b) => (b ? ma.repeatWhileIO(f) : IO.succeed(a))));
|
|
1692
|
+
export function repeatWhileIO<A, R1, E1>(f: (a: A) => IO<R1, E1, boolean>, __tsplusTrace?: string) {
|
|
1693
|
+
return <R, E>(ma: IO<R, E, A>): IO<R | R1, E | E1, A> => {
|
|
1694
|
+
return ma.flatMap((a) => f(a).flatMap((b) => (b ? ma.repeatWhileIO(f) : IO.succeed(a))));
|
|
1695
|
+
};
|
|
1689
1696
|
}
|
|
1690
1697
|
|
|
1691
1698
|
/**
|
|
1692
|
-
* @tsplus
|
|
1699
|
+
* @tsplus pipeable fncts.io.IO replicate
|
|
1693
1700
|
*/
|
|
1694
|
-
export function
|
|
1695
|
-
return
|
|
1701
|
+
export function replicate(n: number, __tsplusTrace?: string) {
|
|
1702
|
+
return <R, E, A>(self: IO<R, E, A>): ImmutableArray<IO<R, E, A>> => {
|
|
1703
|
+
return ImmutableArray.range(0, n).map(() => self);
|
|
1704
|
+
};
|
|
1696
1705
|
}
|
|
1697
1706
|
|
|
1698
1707
|
/**
|
|
1699
|
-
* @tsplus
|
|
1708
|
+
* @tsplus pipeable fncts.io.IO require
|
|
1700
1709
|
*/
|
|
1701
|
-
export function
|
|
1702
|
-
return
|
|
1710
|
+
export function require<E>(error: Lazy<E>, __tsplusTrace?: string) {
|
|
1711
|
+
return <R, A>(ma: IO<R, E, Maybe<A>>): IO<R, E, A> => {
|
|
1712
|
+
return ma.flatMap((ma) => ma.match(() => IO.fail(error), IO.succeedNow));
|
|
1713
|
+
};
|
|
1703
1714
|
}
|
|
1704
1715
|
|
|
1705
1716
|
/**
|
|
@@ -1727,45 +1738,45 @@ export function resurrect<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string): IO<
|
|
|
1727
1738
|
/**
|
|
1728
1739
|
* Retries this effect until its error satisfies the specified predicate.
|
|
1729
1740
|
*
|
|
1730
|
-
* @tsplus
|
|
1741
|
+
* @tsplus pipeable fncts.io.IO retryUntil
|
|
1731
1742
|
*/
|
|
1732
|
-
export function
|
|
1733
|
-
return fa
|
|
1743
|
+
export function retryUntil<E>(f: (e: E) => boolean, __tsplusTrace?: string) {
|
|
1744
|
+
return <R, A>(fa: IO<R, E, A>): IO<R, E, A> => {
|
|
1745
|
+
return fa.retryUntilIO((e) => IO.succeedNow(f(e)));
|
|
1746
|
+
};
|
|
1734
1747
|
}
|
|
1735
1748
|
|
|
1736
1749
|
/**
|
|
1737
1750
|
* Retries this effect until its error satisfies the specified effectful predicate.
|
|
1738
1751
|
*
|
|
1739
|
-
* @tsplus
|
|
1752
|
+
* @tsplus pipeable fncts.io.IO retryUntilIO
|
|
1740
1753
|
*/
|
|
1741
|
-
export function
|
|
1742
|
-
fa: IO<R, E, A
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
): IO<R | R1, E | E1, A> {
|
|
1746
|
-
return fa.catchAll((e) => f(e).flatMap((b) => (b ? IO.failNow(e) : fa.retryUntilIO(f))));
|
|
1754
|
+
export function retryUntilIO<E, R1, E1>(f: (e: E) => IO<R1, E1, boolean>, __tsplusTrace?: string) {
|
|
1755
|
+
return <R, A>(fa: IO<R, E, A>): IO<R | R1, E | E1, A> => {
|
|
1756
|
+
return fa.catchAll((e) => f(e).flatMap((b) => (b ? IO.failNow(e) : fa.retryUntilIO(f))));
|
|
1757
|
+
};
|
|
1747
1758
|
}
|
|
1748
1759
|
|
|
1749
1760
|
/**
|
|
1750
1761
|
* Retries this effect while its error satisfies the specified predicate.
|
|
1751
1762
|
*
|
|
1752
|
-
* @tsplus
|
|
1763
|
+
* @tsplus pipeable fncts.io.IO retryWhile
|
|
1753
1764
|
*/
|
|
1754
|
-
export function
|
|
1755
|
-
return fa
|
|
1765
|
+
export function retryWhile<E>(f: (e: E) => boolean, __tsplusTrace?: string) {
|
|
1766
|
+
return <R, A>(fa: IO<R, E, A>): IO<R, E, A> => {
|
|
1767
|
+
return fa.retryWhileIO((e) => IO.succeedNow(f(e)));
|
|
1768
|
+
};
|
|
1756
1769
|
}
|
|
1757
1770
|
|
|
1758
1771
|
/**
|
|
1759
1772
|
* Retries this effect while its error satisfies the specified effectful predicate.
|
|
1760
1773
|
*
|
|
1761
|
-
* @tsplus
|
|
1774
|
+
* @tsplus pipeable fncts.io.IO retryWhileIO
|
|
1762
1775
|
*/
|
|
1763
|
-
export function
|
|
1764
|
-
fa: IO<R, E, A
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
): IO<R | R1, E | E1, A> {
|
|
1768
|
-
return fa.catchAll((e) => f(e).flatMap((b) => (b ? fa.retryWhileIO(f) : IO.fail(e))));
|
|
1776
|
+
export function retryWhileIO<E, R1, E1>(f: (e: E) => IO<R1, E1, boolean>, __tsplusTrace?: string) {
|
|
1777
|
+
return <R, A>(fa: IO<R, E, A>): IO<R | R1, E | E1, A> => {
|
|
1778
|
+
return fa.catchAll((e) => f(e).flatMap((b) => (b ? fa.retryWhileIO(f) : IO.fail(e))));
|
|
1779
|
+
};
|
|
1769
1780
|
}
|
|
1770
1781
|
|
|
1771
1782
|
/**
|
|
@@ -1785,14 +1796,12 @@ export function sandbox<R, E, A>(fa: IO<R, E, A>, __tsplusTrace?: string): IO<R,
|
|
|
1785
1796
|
}
|
|
1786
1797
|
|
|
1787
1798
|
/**
|
|
1788
|
-
* @tsplus
|
|
1799
|
+
* @tsplus pipeable fncts.io.IO sandboxWith
|
|
1789
1800
|
*/
|
|
1790
|
-
export function
|
|
1791
|
-
ma: IO<R, E, A
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
): IO<R, E1, A> {
|
|
1795
|
-
return f(ma.sandbox).unsandbox;
|
|
1801
|
+
export function sandboxWith<R, E, A, E1>(f: (_: IO<R, Cause<E>, A>) => IO<R, Cause<E1>, A>, __tsplusTrace?: string) {
|
|
1802
|
+
return (ma: IO<R, E, A>): IO<R, E1, A> => {
|
|
1803
|
+
return f(ma.sandbox).unsandbox;
|
|
1804
|
+
};
|
|
1796
1805
|
}
|
|
1797
1806
|
|
|
1798
1807
|
/**
|
|
@@ -1839,20 +1848,17 @@ export function succeed<A>(effect: Lazy<A>, __tsplusTrace?: string): UIO<A> {
|
|
|
1839
1848
|
}
|
|
1840
1849
|
|
|
1841
1850
|
/**
|
|
1842
|
-
* @tsplus
|
|
1851
|
+
* @tsplus pipeable fncts.io.IO summarized
|
|
1843
1852
|
*/
|
|
1844
|
-
export function
|
|
1845
|
-
ma: IO<R, E, A
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
const end = yield* _(summary);
|
|
1854
|
-
return tuple(f(start, end), value);
|
|
1855
|
-
});
|
|
1853
|
+
export function summarized<R1, E1, B, C>(summary: IO<R1, E1, B>, f: (start: B, end: B) => C, __tsplusTrace?: string) {
|
|
1854
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R | R1, E | E1, readonly [C, A]> => {
|
|
1855
|
+
return gen(function* (_) {
|
|
1856
|
+
const start = yield* _(summary);
|
|
1857
|
+
const value = yield* _(ma);
|
|
1858
|
+
const end = yield* _(summary);
|
|
1859
|
+
return tuple(f(start, end), value);
|
|
1860
|
+
});
|
|
1861
|
+
};
|
|
1856
1862
|
}
|
|
1857
1863
|
|
|
1858
1864
|
/**
|
|
@@ -1867,23 +1873,20 @@ export function swap<R, E, A>(pab: IO<R, E, A>, __tsplusTrace?: string): IO<R, A
|
|
|
1867
1873
|
/**
|
|
1868
1874
|
* Swaps the error/value parameters, applies the function `f` and flips the parameters back
|
|
1869
1875
|
*
|
|
1870
|
-
* @tsplus
|
|
1876
|
+
* @tsplus pipeable fncts.io.IO swapWith
|
|
1871
1877
|
*/
|
|
1872
|
-
export function
|
|
1873
|
-
fa: IO<R, E, A
|
|
1874
|
-
f: (ma: IO<R, A, E>) => IO<R1, A1, E1>,
|
|
1875
|
-
__tsplusTrace?: string,
|
|
1876
|
-
) {
|
|
1877
|
-
return f(fa.swap).swap;
|
|
1878
|
+
export function swapWith<R, E, A, R1, E1, A1>(f: (ma: IO<R, A, E>) => IO<R1, A1, E1>, __tsplusTrace?: string) {
|
|
1879
|
+
return (fa: IO<R, E, A>): IO<R1, E1, A1> => f(fa.swap).swap;
|
|
1878
1880
|
}
|
|
1879
1881
|
|
|
1880
1882
|
/**
|
|
1881
1883
|
* A more powerful variation of `timed` that allows specifying the clock.
|
|
1882
1884
|
*
|
|
1883
|
-
* @tsplus
|
|
1885
|
+
* @tsplus pipeable fncts.io.IO timedWith
|
|
1884
1886
|
*/
|
|
1885
|
-
export function
|
|
1886
|
-
return
|
|
1887
|
+
export function timedWith<R1, E1>(msTime: IO<R1, E1, number>, __tsplusTrace?: string) {
|
|
1888
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R1 | R, E1 | E, readonly [number, A]> =>
|
|
1889
|
+
ma.summarized(msTime, (start, end) => end - start);
|
|
1887
1890
|
}
|
|
1888
1891
|
|
|
1889
1892
|
/**
|
|
@@ -1916,70 +1919,66 @@ export function absolve<R, E, E1, A>(ma: IO<R, E, Either<E1, A>>, __tsplusTrace?
|
|
|
1916
1919
|
*
|
|
1917
1920
|
* Returns an IO that effectfully "peeks" at the success of this effect.
|
|
1918
1921
|
*
|
|
1919
|
-
* @tsplus
|
|
1922
|
+
* @tsplus pipeable fncts.io.IO tap
|
|
1920
1923
|
*/
|
|
1921
|
-
export function
|
|
1922
|
-
self: IO<R, E, A
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
): IO<R1 | R, E1 | E, A> {
|
|
1926
|
-
return self.flatMap((a) => f(a).map(() => a));
|
|
1924
|
+
export function tap<A, R1, E1, B>(f: (a: A) => IO<R1, E1, B>, __tsplusTrace?: string) {
|
|
1925
|
+
return <R, E>(self: IO<R, E, A>): IO<R1 | R, E1 | E, A> => {
|
|
1926
|
+
return self.flatMap((a) => f(a).map(() => a));
|
|
1927
|
+
};
|
|
1927
1928
|
}
|
|
1928
1929
|
|
|
1929
1930
|
/**
|
|
1930
1931
|
* Returns an IO that effectually "peeks" at the cause of the failure of
|
|
1931
1932
|
* this IO.
|
|
1932
1933
|
*
|
|
1933
|
-
* @tsplus
|
|
1934
|
+
* @tsplus pipeable fncts.io.IO tapCause
|
|
1934
1935
|
*/
|
|
1935
|
-
export function
|
|
1936
|
-
ma: IO<R2, E2, A2
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
): IO<R2 | R, E | E2, A2> {
|
|
1940
|
-
return ma.matchCauseIO((c) => f(c).flatMap(() => IO.failCauseNow(c)), IO.succeedNow);
|
|
1936
|
+
export function tapCause<R, E, E2>(f: (e: Cause<E2>) => IO<R, E, any>, __tsplusTrace?: string) {
|
|
1937
|
+
return <R2, A2>(ma: IO<R2, E2, A2>): IO<R2 | R, E | E2, A2> => {
|
|
1938
|
+
return ma.matchCauseIO((c) => f(c).flatMap(() => IO.failCauseNow(c)), IO.succeedNow);
|
|
1939
|
+
};
|
|
1941
1940
|
}
|
|
1942
1941
|
|
|
1943
1942
|
/**
|
|
1944
1943
|
* Returns an IO that effectfully "peeks" at the failure of this effect.
|
|
1945
1944
|
*
|
|
1946
|
-
* @tsplus
|
|
1947
|
-
*/
|
|
1948
|
-
export function
|
|
1949
|
-
return self
|
|
1950
|
-
(
|
|
1951
|
-
cause
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1945
|
+
* @tsplus pipeable fncts.io.IO tapError
|
|
1946
|
+
*/
|
|
1947
|
+
export function tapError<E, R1, E1>(f: (e: E) => IO<R1, E1, any>, __tsplusTrace?: string) {
|
|
1948
|
+
return <R, A>(self: IO<R, E, A>) =>
|
|
1949
|
+
self.matchCauseIO(
|
|
1950
|
+
(cause) =>
|
|
1951
|
+
cause.failureOrCause.match(
|
|
1952
|
+
(e) => f(e).flatMap(() => IO.failCauseNow(cause)),
|
|
1953
|
+
(_) => IO.failCauseNow(cause),
|
|
1954
|
+
),
|
|
1955
|
+
IO.succeedNow,
|
|
1956
|
+
);
|
|
1957
1957
|
}
|
|
1958
1958
|
|
|
1959
1959
|
/**
|
|
1960
1960
|
* Returns an effect that effectually "peeks" at the cause of the failure of
|
|
1961
1961
|
* this effect.
|
|
1962
1962
|
*
|
|
1963
|
-
* @tsplus
|
|
1963
|
+
* @tsplus pipeable fncts.io.IO tapErrorCause
|
|
1964
1964
|
*/
|
|
1965
|
-
export function
|
|
1966
|
-
self: IO<R, E, A
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
): IO<R | R1, E | E1, A> {
|
|
1970
|
-
return self.matchCauseIO((cause) => f(cause).apSecond(IO.failCauseNow(cause)), IO.succeedNow);
|
|
1965
|
+
export function tapErrorCause<E, R1, E1>(f: (e: Cause<E>) => IO<R1, E1, any>, __tsplusTrace?: string) {
|
|
1966
|
+
return <R, A>(self: IO<R, E, A>): IO<R | R1, E | E1, A> => {
|
|
1967
|
+
return self.matchCauseIO((cause) => f(cause).apSecond(IO.failCauseNow(cause)), IO.succeedNow);
|
|
1968
|
+
};
|
|
1971
1969
|
}
|
|
1972
1970
|
|
|
1973
1971
|
/**
|
|
1974
|
-
* @tsplus
|
|
1972
|
+
* @tsplus pipeable fncts.io.IO tryOrElse
|
|
1975
1973
|
*/
|
|
1976
|
-
export function
|
|
1977
|
-
ma: IO<R, E, A>,
|
|
1974
|
+
export function tryOrElse<A, R1, E1, A1, R2, E2, A2>(
|
|
1978
1975
|
that: Lazy<IO<R1, E1, A1>>,
|
|
1979
1976
|
onSuccess: (a: A) => IO<R2, E2, A2>,
|
|
1980
1977
|
__tsplusTrace?: string,
|
|
1981
|
-
)
|
|
1982
|
-
return ma
|
|
1978
|
+
) {
|
|
1979
|
+
return <R, E>(ma: IO<R, E, A>): IO<R | R1 | R2, E1 | E2, A1 | A2> => {
|
|
1980
|
+
return ma.matchCauseIO((cause) => cause.keepDefects.match(that, IO.failCauseNow), onSuccess);
|
|
1981
|
+
};
|
|
1983
1982
|
}
|
|
1984
1983
|
|
|
1985
1984
|
/**
|
|
@@ -2003,17 +2002,14 @@ export function unjust<R, E, A>(self: IO<R, Maybe<E>, A>, __tsplusTrace?: string
|
|
|
2003
2002
|
* Takes some fiber failures and converts them into errors, using the
|
|
2004
2003
|
* specified function to convert the `E` into an `E1 | E2`.
|
|
2005
2004
|
*
|
|
2006
|
-
* @tsplus
|
|
2005
|
+
* @tsplus pipeable fncts.io.IO unrefineWith
|
|
2007
2006
|
*/
|
|
2008
|
-
export function
|
|
2009
|
-
fa: IO<R, E, A
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
return fa.catchAllCause((cause) =>
|
|
2015
|
-
cause.find((c) => (c.isHalt() ? pf(c.value) : Nothing())).match(() => IO.failCauseNow(cause.map(f)), IO.failNow),
|
|
2016
|
-
);
|
|
2007
|
+
export function unrefineWith<E, E1, E2>(pf: (u: unknown) => Maybe<E1>, f: (e: E) => E2, __tsplusTrace?: string) {
|
|
2008
|
+
return <R, A>(fa: IO<R, E, A>): IO<R, E1 | E2, A> => {
|
|
2009
|
+
return fa.catchAllCause((cause) =>
|
|
2010
|
+
cause.find((c) => (c.isHalt() ? pf(c.value) : Nothing())).match(() => IO.failCauseNow(cause.map(f)), IO.failNow),
|
|
2011
|
+
);
|
|
2012
|
+
};
|
|
2017
2013
|
}
|
|
2018
2014
|
|
|
2019
2015
|
/**
|
|
@@ -2059,23 +2055,23 @@ export function withFiberContext<R, E, A>(
|
|
|
2059
2055
|
export const via: typeof pipe = pipe;
|
|
2060
2056
|
|
|
2061
2057
|
/**
|
|
2062
|
-
* @tsplus
|
|
2058
|
+
* @tsplus pipeable fncts.io.IO when
|
|
2063
2059
|
*/
|
|
2064
|
-
export function
|
|
2065
|
-
return ma
|
|
2060
|
+
export function when(b: Lazy<boolean>, __tsplusTrace?: string) {
|
|
2061
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R, E, void> => {
|
|
2062
|
+
return ma.whenIO(IO.succeed(b));
|
|
2063
|
+
};
|
|
2066
2064
|
}
|
|
2067
2065
|
|
|
2068
2066
|
/**
|
|
2069
2067
|
* The moral equivalent of `if (p) exp` when `p` has side-effects
|
|
2070
2068
|
*
|
|
2071
|
-
* @tsplus
|
|
2069
|
+
* @tsplus pipeable fncts.io.IO whenIO
|
|
2072
2070
|
*/
|
|
2073
|
-
export function
|
|
2074
|
-
ma: IO<R, E, A
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
): IO<R1 | R, E | E1, void> {
|
|
2078
|
-
return mb.flatMap((b) => (b ? ma.asUnit : IO.unit));
|
|
2071
|
+
export function whenIO<R1, E1>(mb: IO<R1, E1, boolean>, __tsplusTrace?: string) {
|
|
2072
|
+
return <R, E, A>(ma: IO<R, E, A>): IO<R1 | R, E | E1, void> => {
|
|
2073
|
+
return mb.flatMap((b) => (b ? ma.asUnit : IO.unit));
|
|
2074
|
+
};
|
|
2079
2075
|
}
|
|
2080
2076
|
|
|
2081
2077
|
/**
|
|
@@ -2088,26 +2084,21 @@ export function whenIO_<R, E, A, R1, E1>(
|
|
|
2088
2084
|
export const yieldNow: UIO<void> = new Yield();
|
|
2089
2085
|
|
|
2090
2086
|
/**
|
|
2091
|
-
* @tsplus
|
|
2087
|
+
* @tsplus pipeable fncts.io.IO zip
|
|
2092
2088
|
*/
|
|
2093
|
-
export function
|
|
2094
|
-
self: IO<R, E, A
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
): IO<R | R1, E | E1, readonly [A, B]> {
|
|
2098
|
-
return self.zipWith(that, tuple);
|
|
2089
|
+
export function zip<R1, E1, B>(that: IO<R1, E1, B>, __tsplusTrace?: string) {
|
|
2090
|
+
return <R, E, A>(self: IO<R, E, A>): IO<R | R1, E | E1, readonly [A, B]> => {
|
|
2091
|
+
return self.zipWith(that, tuple);
|
|
2092
|
+
};
|
|
2099
2093
|
}
|
|
2100
2094
|
|
|
2101
2095
|
/**
|
|
2102
|
-
* @tsplus
|
|
2096
|
+
* @tsplus pipeable fncts.io.IO zipWith
|
|
2103
2097
|
*/
|
|
2104
|
-
export function
|
|
2105
|
-
self: IO<R, E, A
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
__tsplusTrace?: string,
|
|
2109
|
-
): IO<R | R1, E | E1, C> {
|
|
2110
|
-
return self.flatMap((a) => that.map((b) => f(a, b)));
|
|
2098
|
+
export function zipWith<A, R1, E1, B, C>(that: IO<R1, E1, B>, f: (a: A, b: B) => C, __tsplusTrace?: string) {
|
|
2099
|
+
return <R, E>(self: IO<R, E, A>): IO<R | R1, E | E1, C> => {
|
|
2100
|
+
return self.flatMap((a) => that.map((b) => f(a, b)));
|
|
2101
|
+
};
|
|
2111
2102
|
}
|
|
2112
2103
|
|
|
2113
2104
|
export class GenIO<R, E, A> {
|
|
@@ -2126,22 +2117,6 @@ export class GenIO<R, E, A> {
|
|
|
2126
2117
|
* @internal
|
|
2127
2118
|
*/
|
|
2128
2119
|
export const __adapter = (_: any) => {
|
|
2129
|
-
// if (Either.isEither(_)) {
|
|
2130
|
-
// return IO.fromEither(_);
|
|
2131
|
-
// }
|
|
2132
|
-
// if (Maybe.isMaybe(_)) {
|
|
2133
|
-
// return __
|
|
2134
|
-
// ? _._tag === "Nothing"
|
|
2135
|
-
// ? IO.failNow(__())
|
|
2136
|
-
// : IO.succeed(_.value)
|
|
2137
|
-
// : getOrFail(_);
|
|
2138
|
-
// }
|
|
2139
|
-
// if (isTag(_)) {
|
|
2140
|
-
// return service(_);
|
|
2141
|
-
// }
|
|
2142
|
-
// if (S.isSync(_)) {
|
|
2143
|
-
// return fromSync(_);
|
|
2144
|
-
// }
|
|
2145
2120
|
return _;
|
|
2146
2121
|
};
|
|
2147
2122
|
|
|
@@ -2160,8 +2135,7 @@ export function gen<T extends GenIO<any, any, any>, A>(
|
|
|
2160
2135
|
return IO.defer(() => {
|
|
2161
2136
|
const iterator = f(adapter as any);
|
|
2162
2137
|
const state = iterator.next();
|
|
2163
|
-
|
|
2164
|
-
const run = (state: IteratorYieldResult<T> | IteratorReturnResult<A>): IO<any, any, A> => {
|
|
2138
|
+
const run = (state: IteratorYieldResult<T> | IteratorReturnResult<A>): IO<any, any, A> => {
|
|
2165
2139
|
if (state.done) {
|
|
2166
2140
|
return IO.succeed(state.value);
|
|
2167
2141
|
}
|
|
@@ -2171,7 +2145,6 @@ export function gen<T extends GenIO<any, any, any>, A>(
|
|
|
2171
2145
|
};
|
|
2172
2146
|
return state.value.effect.flatMap(f);
|
|
2173
2147
|
};
|
|
2174
|
-
|
|
2175
2148
|
return run(state);
|
|
2176
2149
|
});
|
|
2177
2150
|
}
|