effect 2.2.5 → 2.3.0
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/RateLimiter/package.json +6 -0
- package/dist/cjs/Cause.js +14 -1
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/Clock.js.map +1 -1
- package/dist/cjs/Console.js.map +1 -1
- package/dist/cjs/Context.js +23 -25
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Data.js +3 -3
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Deferred.js +1 -1
- package/dist/cjs/Deferred.js.map +1 -1
- package/dist/cjs/Effect.js +9 -9
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Effectable.js.map +1 -1
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Exit.js +2 -2
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/FiberMap.js +3 -3
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/FiberRefs.js.map +1 -1
- package/dist/cjs/FiberSet.js +3 -3
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/GroupBy.js.map +1 -1
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/LogLevel.js.map +1 -1
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/Number.js +20 -1
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Pool.js.map +1 -1
- package/dist/cjs/PubSub.js.map +1 -1
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/Random.js.map +1 -1
- package/dist/cjs/RateLimiter.js +38 -0
- package/dist/cjs/RateLimiter.js.map +1 -0
- package/dist/cjs/ReadonlyRecord.js +45 -9
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/Ref.js.map +1 -1
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/cjs/Runtime.js +1 -4
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/RuntimeFlags.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/Scope.js.map +1 -1
- package/dist/cjs/ScopedRef.js.map +1 -1
- package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/Supervisor.js.map +1 -1
- package/dist/cjs/SynchronizedRef.js.map +1 -1
- package/dist/cjs/TArray.js.map +1 -1
- package/dist/cjs/TDeferred.js.map +1 -1
- package/dist/cjs/TMap.js.map +1 -1
- package/dist/cjs/TPriorityQueue.js.map +1 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TQueue.js.map +1 -1
- package/dist/cjs/TRandom.js.map +1 -1
- package/dist/cjs/TReentrantLock.js.map +1 -1
- package/dist/cjs/TRef.js.map +1 -1
- package/dist/cjs/TSemaphore.js.map +1 -1
- package/dist/cjs/TSet.js.map +1 -1
- package/dist/cjs/Take.js +6 -6
- package/dist/cjs/Take.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +10 -13
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestAnnotations.js +1 -1
- package/dist/cjs/TestAnnotations.js.map +1 -1
- package/dist/cjs/TestClock.js +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/TestConfig.js +1 -1
- package/dist/cjs/TestConfig.js.map +1 -1
- package/dist/cjs/TestContext.js.map +1 -1
- package/dist/cjs/TestLive.js +1 -1
- package/dist/cjs/TestLive.js.map +1 -1
- package/dist/cjs/TestServices.js.map +1 -1
- package/dist/cjs/TestSized.js +1 -1
- package/dist/cjs/TestSized.js.map +1 -1
- package/dist/cjs/Utils.js +0 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/mergeDecision.js +2 -6
- package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/internal/channel.js +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +2 -4
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/console.js.map +1 -1
- package/dist/cjs/internal/context.js +31 -22
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +13 -27
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core-stream.js.map +1 -1
- package/dist/cjs/internal/core.js +61 -130
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/defaultServices/console.js +1 -1
- package/dist/cjs/internal/defaultServices/console.js.map +1 -1
- package/dist/cjs/internal/defaultServices.js.map +1 -1
- package/dist/cjs/internal/deferred.js.map +1 -1
- package/dist/cjs/internal/differ/contextPatch.js +9 -9
- package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +7 -10
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +4 -4
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/fiber.js +2 -6
- package/dist/cjs/internal/fiber.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +10 -19
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer/circular.js.map +1 -1
- package/dist/cjs/internal/layer.js +3 -3
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logSpan.js +3 -5
- package/dist/cjs/internal/logSpan.js.map +1 -1
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +2 -6
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/query.js.map +1 -1
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/random.js +1 -1
- package/dist/cjs/internal/random.js.map +1 -1
- package/dist/cjs/internal/rateLimiter.js +44 -0
- package/dist/cjs/internal/rateLimiter.js.map +1 -0
- package/dist/cjs/internal/ref.js.map +1 -1
- package/dist/cjs/internal/reloadable.js +1 -9
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/runtime.js +0 -1
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/scopedCache.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/sink.js +7 -7
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tExit.js +2 -2
- package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stm/tArray.js.map +1 -1
- package/dist/cjs/internal/stm/tDeferred.js +4 -2
- package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
- package/dist/cjs/internal/stm/tMap.js.map +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tRandom.js +1 -1
- package/dist/cjs/internal/stm/tRandom.js.map +1 -1
- package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/cjs/internal/stm/tRef.js.map +1 -1
- package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
- package/dist/cjs/internal/stm/tSet.js.map +1 -1
- package/dist/cjs/internal/stream/debounceState.js.map +1 -1
- package/dist/cjs/internal/stream/handoff.js.map +1 -1
- package/dist/cjs/internal/stream/handoffSignal.js.map +1 -1
- package/dist/cjs/internal/stream/pull.js.map +1 -1
- package/dist/cjs/internal/stream.js +0 -2
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/supervisor.js.map +1 -1
- package/dist/cjs/internal/take.js +2 -2
- package/dist/cjs/internal/take.js.map +1 -1
- package/dist/cjs/internal/testing/sleep.js.map +1 -1
- package/dist/cjs/internal/tracer.js +2 -2
- package/dist/cjs/internal/tracer.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Cache.d.ts +20 -20
- package/dist/dts/Cache.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +33 -5
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +197 -194
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Clock.d.ts +7 -7
- package/dist/dts/Clock.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +1 -1
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/ConfigProvider.d.ts +6 -6
- package/dist/dts/ConfigProvider.d.ts.map +1 -1
- package/dist/dts/Console.d.ts +43 -43
- package/dist/dts/Console.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +44 -29
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +38 -57
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Deferred.d.ts +36 -36
- package/dist/dts/Deferred.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +732 -729
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Effectable.d.ts +8 -8
- package/dist/dts/Effectable.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +2 -3
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +74 -74
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/Fiber.d.ts +75 -75
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +22 -22
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +28 -28
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/FiberRefs.d.ts +1 -1
- package/dist/dts/FiberRefs.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +16 -16
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +6 -6
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/KeyedPool.d.ts +22 -22
- package/dist/dts/KeyedPool.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +126 -126
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/LogLevel.d.ts +2 -2
- package/dist/dts/LogLevel.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +14 -14
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +7 -7
- package/dist/dts/MergeState.d.ts +13 -13
- package/dist/dts/MergeState.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +32 -32
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +6 -6
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +15 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +2 -3
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Pool.d.ts +15 -16
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/PubSub.d.ts +18 -18
- package/dist/dts/PubSub.d.ts.map +1 -1
- package/dist/dts/Queue.d.ts +40 -40
- package/dist/dts/Queue.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +13 -13
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/RateLimiter.d.ts +31 -0
- package/dist/dts/RateLimiter.d.ts.map +1 -0
- package/dist/dts/ReadonlyArray.d.ts +3 -3
- package/dist/dts/ReadonlyRecord.d.ts +37 -8
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/Ref.d.ts +25 -25
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +9 -9
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +27 -28
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestBlock.d.ts +3 -3
- package/dist/dts/RequestBlock.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +16 -16
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +7 -7
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +13 -16
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/RuntimeFlags.d.ts +10 -10
- package/dist/dts/RuntimeFlags.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +303 -303
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +19 -19
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/Scope.d.ts +10 -10
- package/dist/dts/Scope.d.ts.map +1 -1
- package/dist/dts/ScopedCache.d.ts +14 -14
- package/dist/dts/ScopedCache.d.ts.map +1 -1
- package/dist/dts/ScopedRef.d.ts +5 -5
- package/dist/dts/ScopedRef.d.ts.map +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts +8 -8
- package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +214 -205
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +595 -592
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/StreamEmit.d.ts +5 -5
- package/dist/dts/StreamEmit.d.ts.map +1 -1
- package/dist/dts/Streamable.d.ts +2 -2
- package/dist/dts/Streamable.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +41 -41
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/Supervisor.d.ts +17 -17
- package/dist/dts/Supervisor.d.ts.map +1 -1
- package/dist/dts/SynchronizedRef.d.ts +41 -41
- package/dist/dts/SynchronizedRef.d.ts.map +1 -1
- package/dist/dts/TArray.d.ts +72 -72
- package/dist/dts/TArray.d.ts.map +1 -1
- package/dist/dts/TDeferred.d.ts +12 -12
- package/dist/dts/TDeferred.d.ts.map +1 -1
- package/dist/dts/TMap.d.ts +67 -67
- package/dist/dts/TMap.d.ts.map +1 -1
- package/dist/dts/TPriorityQueue.d.ts +23 -23
- package/dist/dts/TPriorityQueue.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +15 -15
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +40 -40
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TRandom.d.ts +13 -13
- package/dist/dts/TRandom.d.ts.map +1 -1
- package/dist/dts/TReentrantLock.d.ts +21 -21
- package/dist/dts/TReentrantLock.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +25 -25
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSemaphore.d.ts +15 -15
- package/dist/dts/TSemaphore.d.ts.map +1 -1
- package/dist/dts/TSet.d.ts +49 -49
- package/dist/dts/TSet.d.ts.map +1 -1
- package/dist/dts/Take.d.ts +41 -41
- package/dist/dts/Take.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts +1 -3
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestAnnotations.d.ts +3 -3
- package/dist/dts/TestAnnotations.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts +18 -18
- package/dist/dts/TestClock.d.ts.map +1 -1
- package/dist/dts/TestConfig.d.ts.map +1 -1
- package/dist/dts/TestContext.d.ts +2 -2
- package/dist/dts/TestContext.d.ts.map +1 -1
- package/dist/dts/TestLive.d.ts +1 -1
- package/dist/dts/TestLive.d.ts.map +1 -1
- package/dist/dts/TestServices.d.ts +31 -31
- package/dist/dts/TestServices.d.ts.map +1 -1
- package/dist/dts/TestSized.d.ts +2 -2
- package/dist/dts/TestSized.d.ts.map +1 -1
- package/dist/dts/Tracer.d.ts +1 -1
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/index.d.ts +12 -2
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/channel/channelExecutor.d.ts +1 -1
- package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -1
- package/dist/dts/internal/core-stream.d.ts +1 -1
- package/dist/dts/internal/core-stream.d.ts.map +1 -1
- package/dist/dts/internal/rateLimiter.d.ts +2 -0
- package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
- package/dist/dts/internal/stm/stm.d.ts +6 -6
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/Cause.js +13 -0
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Clock.js.map +1 -1
- package/dist/esm/Console.js.map +1 -1
- package/dist/esm/Context.js +22 -24
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Data.js +4 -5
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Deferred.js +1 -1
- package/dist/esm/Deferred.js.map +1 -1
- package/dist/esm/Effect.js +9 -9
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Effectable.js.map +1 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Exit.js +2 -2
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/FiberMap.js +3 -3
- package/dist/esm/FiberRef.js.map +1 -1
- package/dist/esm/FiberRefs.js.map +1 -1
- package/dist/esm/FiberSet.js +3 -3
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/GroupBy.js.map +1 -1
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/LogLevel.js.map +1 -1
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/Number.js +18 -0
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Pool.js.map +1 -1
- package/dist/esm/PubSub.js.map +1 -1
- package/dist/esm/Queue.js.map +1 -1
- package/dist/esm/Random.js.map +1 -1
- package/dist/esm/RateLimiter.js +7 -0
- package/dist/esm/RateLimiter.js.map +1 -0
- package/dist/esm/ReadonlyRecord.js +44 -8
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/Ref.js.map +1 -1
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Resource.js.map +1 -1
- package/dist/esm/Runtime.js +1 -4
- package/dist/esm/Runtime.js.map +1 -1
- package/dist/esm/RuntimeFlags.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/Scope.js.map +1 -1
- package/dist/esm/ScopedRef.js.map +1 -1
- package/dist/esm/SingleProducerAsyncInput.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/Supervisor.js.map +1 -1
- package/dist/esm/SynchronizedRef.js.map +1 -1
- package/dist/esm/TArray.js.map +1 -1
- package/dist/esm/TDeferred.js.map +1 -1
- package/dist/esm/TMap.js.map +1 -1
- package/dist/esm/TPriorityQueue.js.map +1 -1
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TQueue.js.map +1 -1
- package/dist/esm/TRandom.js.map +1 -1
- package/dist/esm/TReentrantLock.js.map +1 -1
- package/dist/esm/TRef.js.map +1 -1
- package/dist/esm/TSemaphore.js.map +1 -1
- package/dist/esm/TSet.js.map +1 -1
- package/dist/esm/Take.js +6 -6
- package/dist/esm/Take.js.map +1 -1
- package/dist/esm/TestAnnotation.js +10 -13
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/TestAnnotations.js +1 -1
- package/dist/esm/TestAnnotations.js.map +1 -1
- package/dist/esm/TestClock.js +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/TestConfig.js +1 -1
- package/dist/esm/TestConfig.js.map +1 -1
- package/dist/esm/TestContext.js.map +1 -1
- package/dist/esm/TestLive.js +1 -1
- package/dist/esm/TestLive.js.map +1 -1
- package/dist/esm/TestServices.js.map +1 -1
- package/dist/esm/TestSized.js +1 -1
- package/dist/esm/TestSized.js.map +1 -1
- package/dist/esm/Utils.js +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/index.js +12 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel/mergeDecision.js +2 -6
- package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
- package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/esm/internal/channel.js +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/clock.js +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/configProvider.js +2 -4
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/console.js.map +1 -1
- package/dist/esm/internal/context.js +28 -20
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/core-effect.js +12 -26
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core-stream.js.map +1 -1
- package/dist/esm/internal/core.js +57 -127
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/data.js.map +1 -1
- package/dist/esm/internal/defaultServices/console.js +1 -1
- package/dist/esm/internal/defaultServices/console.js.map +1 -1
- package/dist/esm/internal/defaultServices.js.map +1 -1
- package/dist/esm/internal/deferred.js.map +1 -1
- package/dist/esm/internal/differ/contextPatch.js +9 -9
- package/dist/esm/internal/differ/contextPatch.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +5 -8
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/effectable.js +4 -4
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/fiber.js +2 -6
- package/dist/esm/internal/fiber.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +10 -19
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer/circular.js.map +1 -1
- package/dist/esm/internal/layer.js +3 -3
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/logSpan.js +3 -5
- package/dist/esm/internal/logSpan.js.map +1 -1
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/pubsub.js +1 -5
- package/dist/esm/internal/pubsub.js.map +1 -1
- package/dist/esm/internal/query.js.map +1 -1
- package/dist/esm/internal/queue.js.map +1 -1
- package/dist/esm/internal/random.js +1 -1
- package/dist/esm/internal/random.js.map +1 -1
- package/dist/esm/internal/rateLimiter.js +12 -0
- package/dist/esm/internal/rateLimiter.js.map +1 -0
- package/dist/esm/internal/ref.js.map +1 -1
- package/dist/esm/internal/reloadable.js +1 -9
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/runtime.js +0 -1
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/scopedCache.js.map +1 -1
- package/dist/esm/internal/scopedRef.js.map +1 -1
- package/dist/esm/internal/sink.js +7 -7
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
- package/dist/esm/internal/stm/stm/tExit.js +2 -2
- package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
- package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -1
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stm/tArray.js.map +1 -1
- package/dist/esm/internal/stm/tDeferred.js +4 -2
- package/dist/esm/internal/stm/tDeferred.js.map +1 -1
- package/dist/esm/internal/stm/tMap.js.map +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tRandom.js +1 -1
- package/dist/esm/internal/stm/tRandom.js.map +1 -1
- package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/esm/internal/stm/tRef.js.map +1 -1
- package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
- package/dist/esm/internal/stm/tSet.js.map +1 -1
- package/dist/esm/internal/stream/debounceState.js.map +1 -1
- package/dist/esm/internal/stream/handoff.js.map +1 -1
- package/dist/esm/internal/stream/handoffSignal.js.map +1 -1
- package/dist/esm/internal/stream/pull.js.map +1 -1
- package/dist/esm/internal/stream.js +0 -2
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/subscriptionRef.js.map +1 -1
- package/dist/esm/internal/supervisor.js.map +1 -1
- package/dist/esm/internal/take.js +2 -2
- package/dist/esm/internal/take.js.map +1 -1
- package/dist/esm/internal/testing/sleep.js.map +1 -1
- package/dist/esm/internal/tracer.js +2 -2
- package/dist/esm/internal/tracer.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +9 -1
- package/src/Cache.ts +20 -20
- package/src/Cause.ts +37 -13
- package/src/Channel.ts +802 -794
- package/src/Clock.ts +7 -7
- package/src/Config.ts +1 -1
- package/src/ConfigProvider.ts +6 -6
- package/src/Console.ts +44 -48
- package/src/Context.ts +52 -30
- package/src/Data.ts +38 -61
- package/src/Deferred.ts +39 -41
- package/src/Effect.ts +1187 -1206
- package/src/Effectable.ts +8 -8
- package/src/Either.ts +2 -3
- package/src/Exit.ts +88 -105
- package/src/Fiber.ts +77 -83
- package/src/FiberMap.ts +77 -77
- package/src/FiberRef.ts +28 -28
- package/src/FiberRefs.ts +1 -1
- package/src/FiberSet.ts +61 -62
- package/src/GroupBy.ts +8 -12
- package/src/KeyedPool.ts +22 -22
- package/src/Layer.ts +187 -181
- package/src/LogLevel.ts +7 -6
- package/src/Logger.ts +18 -18
- package/src/MergeDecision.ts +7 -7
- package/src/MergeState.ts +16 -16
- package/src/Metric.ts +39 -39
- package/src/MetricPolling.ts +6 -6
- package/src/Number.ts +19 -0
- package/src/Option.ts +2 -3
- package/src/Pool.ts +15 -16
- package/src/PubSub.ts +18 -18
- package/src/Queue.ts +43 -46
- package/src/Random.ts +13 -15
- package/src/RateLimiter.ts +37 -0
- package/src/ReadonlyRecord.ts +49 -8
- package/src/Ref.ts +25 -25
- package/src/Reloadable.ts +10 -10
- package/src/Request.ts +31 -31
- package/src/RequestBlock.ts +3 -3
- package/src/RequestResolver.ts +21 -21
- package/src/Resource.ts +13 -13
- package/src/Runtime.ts +16 -19
- package/src/RuntimeFlags.ts +10 -10
- package/src/STM.ts +361 -362
- package/src/Schedule.ts +19 -19
- package/src/Scheduler.ts +2 -2
- package/src/Scope.ts +14 -15
- package/src/ScopedCache.ts +14 -14
- package/src/ScopedRef.ts +7 -7
- package/src/SingleProducerAsyncInput.ts +8 -9
- package/src/Sink.ts +357 -381
- package/src/Stream.ts +935 -1033
- package/src/StreamEmit.ts +5 -5
- package/src/Streamable.ts +2 -2
- package/src/SubscriptionRef.ts +51 -51
- package/src/Supervisor.ts +26 -26
- package/src/SynchronizedRef.ts +44 -44
- package/src/TArray.ts +74 -74
- package/src/TDeferred.ts +14 -14
- package/src/TMap.ts +72 -72
- package/src/TPriorityQueue.ts +23 -24
- package/src/TPubSub.ts +15 -15
- package/src/TQueue.ts +40 -40
- package/src/TRandom.ts +13 -13
- package/src/TReentrantLock.ts +21 -21
- package/src/TRef.ts +25 -25
- package/src/TSemaphore.ts +15 -15
- package/src/TSet.ts +49 -49
- package/src/Take.ts +51 -51
- package/src/TestAnnotation.ts +6 -17
- package/src/TestAnnotations.ts +7 -9
- package/src/TestClock.ts +39 -45
- package/src/TestConfig.ts +1 -3
- package/src/TestContext.ts +3 -3
- package/src/TestLive.ts +3 -5
- package/src/TestServices.ts +45 -47
- package/src/TestSized.ts +5 -5
- package/src/Tracer.ts +1 -1
- package/src/Utils.ts +8 -10
- package/src/index.ts +13 -2
- package/src/internal/blockedRequests.ts +2 -2
- package/src/internal/cache.ts +38 -38
- package/src/internal/channel/channelExecutor.ts +65 -73
- package/src/internal/channel/channelState.ts +11 -11
- package/src/internal/channel/continuation.ts +10 -10
- package/src/internal/channel/mergeDecision.ts +14 -16
- package/src/internal/channel/mergeState.ts +12 -12
- package/src/internal/channel/singleProducerAsyncInput.ts +15 -17
- package/src/internal/channel/subexecutor.ts +7 -7
- package/src/internal/channel.ts +901 -980
- package/src/internal/clock.ts +6 -6
- package/src/internal/concurrency.ts +9 -9
- package/src/internal/configProvider.ts +29 -36
- package/src/internal/console.ts +12 -12
- package/src/internal/context.ts +32 -23
- package/src/internal/core-effect.ts +655 -616
- package/src/internal/core-stream.ts +317 -325
- package/src/internal/core.ts +856 -790
- package/src/internal/data.ts +2 -3
- package/src/internal/dataSource.ts +14 -14
- package/src/internal/defaultServices/console.ts +3 -1
- package/src/internal/defaultServices.ts +21 -21
- package/src/internal/deferred.ts +9 -9
- package/src/internal/differ/contextPatch.ts +17 -17
- package/src/internal/effect/circular.ts +154 -159
- package/src/internal/effectable.ts +7 -7
- package/src/internal/fiber.ts +55 -59
- package/src/internal/fiberRefs.ts +1 -1
- package/src/internal/fiberRuntime.ts +426 -463
- package/src/internal/groupBy.ts +59 -62
- package/src/internal/keyedPool.ts +37 -37
- package/src/internal/layer/circular.ts +37 -37
- package/src/internal/layer.ts +235 -240
- package/src/internal/logSpan.ts +3 -5
- package/src/internal/metric/polling.ts +5 -5
- package/src/internal/metric.ts +54 -55
- package/src/internal/pool.ts +72 -72
- package/src/internal/pubsub.ts +75 -84
- package/src/internal/query.ts +25 -27
- package/src/internal/queue.ts +65 -70
- package/src/internal/random.ts +9 -9
- package/src/internal/rateLimiter.ts +30 -0
- package/src/internal/ref.ts +24 -24
- package/src/internal/reloadable.ts +11 -31
- package/src/internal/request.ts +14 -14
- package/src/internal/resource.ts +8 -8
- package/src/internal/runtime.ts +21 -22
- package/src/internal/schedule.ts +131 -134
- package/src/internal/scopedCache.ts +35 -32
- package/src/internal/scopedRef.ts +14 -14
- package/src/internal/sink.ts +507 -565
- package/src/internal/stm/core.ts +101 -102
- package/src/internal/stm/stm/stmState.ts +10 -10
- package/src/internal/stm/stm/tExit.ts +18 -18
- package/src/internal/stm/stm/tryCommit.ts +5 -5
- package/src/internal/stm/stm.ts +363 -374
- package/src/internal/stm/tArray.ts +92 -92
- package/src/internal/stm/tDeferred.ts +16 -14
- package/src/internal/stm/tMap.ts +83 -84
- package/src/internal/stm/tPriorityQueue.ts +24 -25
- package/src/internal/stm/tPubSub.ts +37 -38
- package/src/internal/stm/tQueue.ts +44 -48
- package/src/internal/stm/tRandom.ts +18 -18
- package/src/internal/stm/tReentrantLock.ts +28 -28
- package/src/internal/stm/tRef.ts +25 -25
- package/src/internal/stm/tSemaphore.ts +16 -16
- package/src/internal/stm/tSet.ts +51 -52
- package/src/internal/stream/debounceState.ts +7 -7
- package/src/internal/stream/emit.ts +4 -4
- package/src/internal/stream/handoff.ts +19 -19
- package/src/internal/stream/handoffSignal.ts +4 -4
- package/src/internal/stream/pull.ts +10 -11
- package/src/internal/stream.ts +1770 -1788
- package/src/internal/subscriptionRef.ts +17 -17
- package/src/internal/supervisor.ts +49 -56
- package/src/internal/synchronizedRef.ts +27 -27
- package/src/internal/take.ts +61 -61
- package/src/internal/testing/sleep.ts +2 -2
- package/src/internal/testing/suspendedWarningData.ts +2 -2
- package/src/internal/testing/warningData.ts +2 -2
- package/src/internal/tracer.ts +2 -6
- package/src/internal/version.ts +1 -1
package/src/internal/channel.ts
CHANGED
|
@@ -35,15 +35,15 @@ import * as ChannelStateOpCodes from "./opCodes/channelState.js"
|
|
|
35
35
|
import * as tracer from "./tracer.js"
|
|
36
36
|
|
|
37
37
|
/** @internal */
|
|
38
|
-
export const acquireUseRelease = <
|
|
39
|
-
acquire: Effect.Effect<
|
|
40
|
-
use: (a: Acquired) => Channel.Channel<
|
|
41
|
-
release: (a: Acquired, exit: Exit.Exit<
|
|
42
|
-
): Channel.Channel<
|
|
38
|
+
export const acquireUseRelease = <Acquired, OutErr, Env, OutElem1, InElem, InErr, OutDone, InDone>(
|
|
39
|
+
acquire: Effect.Effect<Acquired, OutErr, Env>,
|
|
40
|
+
use: (a: Acquired) => Channel.Channel<OutElem1, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
41
|
+
release: (a: Acquired, exit: Exit.Exit<OutDone, OutErr>) => Effect.Effect<any, never, Env>
|
|
42
|
+
): Channel.Channel<OutElem1, InElem, OutErr, InErr, OutDone, InDone, Env> =>
|
|
43
43
|
core.flatMap(
|
|
44
44
|
core.fromEffect(
|
|
45
45
|
Ref.make<
|
|
46
|
-
(exit: Exit.Exit<
|
|
46
|
+
(exit: Exit.Exit<OutDone, OutErr>) => Effect.Effect<any, never, Env>
|
|
47
47
|
>(() => Effect.unit)
|
|
48
48
|
),
|
|
49
49
|
(ref) =>
|
|
@@ -65,37 +65,37 @@ export const acquireUseRelease = <Env, InErr, InElem, InDone, OutErr, OutElem1,
|
|
|
65
65
|
export const as = dual<
|
|
66
66
|
<OutDone2>(
|
|
67
67
|
value: OutDone2
|
|
68
|
-
) => <
|
|
69
|
-
self: Channel.Channel<
|
|
70
|
-
) => Channel.Channel<
|
|
71
|
-
<
|
|
72
|
-
self: Channel.Channel<
|
|
68
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
69
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
70
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>,
|
|
71
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutDone2>(
|
|
72
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
73
73
|
value: OutDone2
|
|
74
|
-
) => Channel.Channel<
|
|
75
|
-
>(2, <
|
|
76
|
-
self: Channel.Channel<
|
|
74
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>
|
|
75
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutDone2>(
|
|
76
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
77
77
|
value: OutDone2
|
|
78
|
-
): Channel.Channel<
|
|
78
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env> => map(self, () => value))
|
|
79
79
|
|
|
80
80
|
/** @internal */
|
|
81
|
-
export const asUnit = <
|
|
82
|
-
self: Channel.Channel<
|
|
83
|
-
): Channel.Channel<
|
|
81
|
+
export const asUnit = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
82
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
83
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, void, InDone, Env> => map(self, constVoid)
|
|
84
84
|
|
|
85
85
|
/** @internal */
|
|
86
|
-
export const buffer = <
|
|
86
|
+
export const buffer = <InElem, InErr, InDone>(
|
|
87
87
|
options: {
|
|
88
88
|
readonly empty: InElem
|
|
89
89
|
readonly isEmpty: Predicate<InElem>
|
|
90
90
|
readonly ref: Ref.Ref<InElem>
|
|
91
91
|
}
|
|
92
|
-
): Channel.Channel<
|
|
93
|
-
core.suspend
|
|
92
|
+
): Channel.Channel<InElem, InElem, InErr, InErr, InDone, InDone> =>
|
|
93
|
+
core.suspend(() => {
|
|
94
94
|
const doBuffer = <InErr, InElem, InDone>(
|
|
95
95
|
empty: InElem,
|
|
96
96
|
isEmpty: Predicate<InElem>,
|
|
97
97
|
ref: Ref.Ref<InElem>
|
|
98
|
-
): Channel.Channel<
|
|
98
|
+
): Channel.Channel<InElem, InElem, InErr, InErr, InDone, InDone> =>
|
|
99
99
|
unwrap(
|
|
100
100
|
Ref.modify(ref, (inElem) =>
|
|
101
101
|
isEmpty(inElem) ?
|
|
@@ -123,10 +123,10 @@ export const buffer = <InErr, InElem, InDone>(
|
|
|
123
123
|
})
|
|
124
124
|
|
|
125
125
|
/** @internal */
|
|
126
|
-
export const bufferChunk = <
|
|
126
|
+
export const bufferChunk = <InElem, InErr, InDone>(
|
|
127
127
|
ref: Ref.Ref<Chunk.Chunk<InElem>>
|
|
128
|
-
): Channel.Channel<
|
|
129
|
-
buffer
|
|
128
|
+
): Channel.Channel<Chunk.Chunk<InElem>, Chunk.Chunk<InElem>, InErr, InErr, InDone, InDone> =>
|
|
129
|
+
buffer({
|
|
130
130
|
empty: Chunk.empty(),
|
|
131
131
|
isEmpty: Chunk.isEmpty,
|
|
132
132
|
ref
|
|
@@ -134,44 +134,44 @@ export const bufferChunk = <InErr, InElem, InDone>(
|
|
|
134
134
|
|
|
135
135
|
/** @internal */
|
|
136
136
|
export const catchAll = dual<
|
|
137
|
-
<
|
|
138
|
-
f: (error: OutErr) => Channel.Channel<
|
|
139
|
-
) => <
|
|
140
|
-
self: Channel.Channel<
|
|
137
|
+
<OutErr, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
138
|
+
f: (error: OutErr) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
|
|
139
|
+
) => <OutElem, InElem, InErr, OutDone, InDone, Env>(
|
|
140
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
141
141
|
) => Channel.Channel<
|
|
142
|
-
|
|
143
|
-
InErr & InErr1,
|
|
142
|
+
OutElem1 | OutElem,
|
|
144
143
|
InElem & InElem1,
|
|
145
|
-
InDone & InDone1,
|
|
146
144
|
OutErr1,
|
|
147
|
-
|
|
148
|
-
OutDone1 | OutDone
|
|
145
|
+
InErr & InErr1,
|
|
146
|
+
OutDone1 | OutDone,
|
|
147
|
+
InDone & InDone1,
|
|
148
|
+
Env1 | Env
|
|
149
149
|
>,
|
|
150
|
-
<
|
|
151
|
-
self: Channel.Channel<
|
|
152
|
-
f: (error: OutErr) => Channel.Channel<
|
|
150
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
151
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
152
|
+
f: (error: OutErr) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
|
|
153
153
|
) => Channel.Channel<
|
|
154
|
-
|
|
155
|
-
InErr & InErr1,
|
|
154
|
+
OutElem1 | OutElem,
|
|
156
155
|
InElem & InElem1,
|
|
157
|
-
InDone & InDone1,
|
|
158
156
|
OutErr1,
|
|
159
|
-
|
|
160
|
-
OutDone1 | OutDone
|
|
157
|
+
InErr & InErr1,
|
|
158
|
+
OutDone1 | OutDone,
|
|
159
|
+
InDone & InDone1,
|
|
160
|
+
Env1 | Env
|
|
161
161
|
>
|
|
162
162
|
>(
|
|
163
163
|
2,
|
|
164
|
-
<
|
|
165
|
-
self: Channel.Channel<
|
|
166
|
-
f: (error: OutErr) => Channel.Channel<
|
|
164
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
165
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
166
|
+
f: (error: OutErr) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
|
|
167
167
|
): Channel.Channel<
|
|
168
|
-
|
|
169
|
-
InErr & InErr1,
|
|
168
|
+
OutElem | OutElem1,
|
|
170
169
|
InElem & InElem1,
|
|
171
|
-
InDone & InDone1,
|
|
172
170
|
OutErr1,
|
|
173
|
-
|
|
174
|
-
OutDone | OutDone1
|
|
171
|
+
InErr & InErr1,
|
|
172
|
+
OutDone | OutDone1,
|
|
173
|
+
InDone & InDone1,
|
|
174
|
+
Env | Env1
|
|
175
175
|
> =>
|
|
176
176
|
core.catchAllCause(self, (cause) =>
|
|
177
177
|
Either.match(Cause.failureOrCause(cause), {
|
|
@@ -182,60 +182,60 @@ export const catchAll = dual<
|
|
|
182
182
|
|
|
183
183
|
/** @internal */
|
|
184
184
|
export const concatMap = dual<
|
|
185
|
-
<OutElem, OutElem2,
|
|
186
|
-
f: (o: OutElem) => Channel.Channel<
|
|
185
|
+
<OutElem, OutElem2, InElem2, OutErr2, InErr2, _, InDone2, Env2>(
|
|
186
|
+
f: (o: OutElem) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, _, InDone2, Env2>
|
|
187
187
|
) => <Env, InErr, InElem, InDone, OutErr, OutDone>(
|
|
188
|
-
self: Channel.Channel<
|
|
188
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
189
189
|
) => Channel.Channel<
|
|
190
|
-
|
|
191
|
-
InErr & InErr2,
|
|
190
|
+
OutElem2,
|
|
192
191
|
InElem & InElem2,
|
|
193
|
-
InDone & InDone2,
|
|
194
192
|
OutErr2 | OutErr,
|
|
195
|
-
|
|
196
|
-
unknown
|
|
193
|
+
InErr & InErr2,
|
|
194
|
+
unknown,
|
|
195
|
+
InDone & InDone2,
|
|
196
|
+
Env2 | Env
|
|
197
197
|
>,
|
|
198
198
|
<Env, InErr, InElem, InDone, OutErr, OutDone, OutElem, OutElem2, Env2, InErr2, InElem2, InDone2, OutErr2, _>(
|
|
199
|
-
self: Channel.Channel<
|
|
200
|
-
f: (o: OutElem) => Channel.Channel<
|
|
199
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
200
|
+
f: (o: OutElem) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, _, InDone2, Env2>
|
|
201
201
|
) => Channel.Channel<
|
|
202
|
-
|
|
203
|
-
InErr & InErr2,
|
|
202
|
+
OutElem2,
|
|
204
203
|
InElem & InElem2,
|
|
205
|
-
InDone & InDone2,
|
|
206
204
|
OutErr2 | OutErr,
|
|
207
|
-
|
|
208
|
-
unknown
|
|
205
|
+
InErr & InErr2,
|
|
206
|
+
unknown,
|
|
207
|
+
InDone & InDone2,
|
|
208
|
+
Env2 | Env
|
|
209
209
|
>
|
|
210
210
|
>(2, <Env, InErr, InElem, InDone, OutErr, OutDone, OutElem, OutElem2, Env2, InErr2, InElem2, InDone2, OutErr2, _>(
|
|
211
|
-
self: Channel.Channel<
|
|
212
|
-
f: (o: OutElem) => Channel.Channel<
|
|
211
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
212
|
+
f: (o: OutElem) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, _, InDone2, Env2>
|
|
213
213
|
): Channel.Channel<
|
|
214
|
-
|
|
215
|
-
InErr & InErr2,
|
|
214
|
+
OutElem2,
|
|
216
215
|
InElem & InElem2,
|
|
217
|
-
InDone & InDone2,
|
|
218
216
|
OutErr | OutErr2,
|
|
219
|
-
|
|
220
|
-
unknown
|
|
217
|
+
InErr & InErr2,
|
|
218
|
+
unknown,
|
|
219
|
+
InDone & InDone2,
|
|
220
|
+
Env | Env2
|
|
221
221
|
> => core.concatMapWith(self, f, () => void 0, () => void 0))
|
|
222
222
|
|
|
223
223
|
/** @internal */
|
|
224
224
|
export const collect = dual<
|
|
225
|
-
<
|
|
225
|
+
<OutElem, OutElem2>(
|
|
226
226
|
pf: (o: OutElem) => Option.Option<OutElem2>
|
|
227
|
-
) => (
|
|
228
|
-
self: Channel.Channel<
|
|
229
|
-
) => Channel.Channel<
|
|
230
|
-
<
|
|
231
|
-
self: Channel.Channel<
|
|
227
|
+
) => <InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
228
|
+
self: Channel.Channel<OutElem>
|
|
229
|
+
) => Channel.Channel<OutElem2, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
230
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem2>(
|
|
231
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
232
232
|
pf: (o: OutElem) => Option.Option<OutElem2>
|
|
233
|
-
) => Channel.Channel<
|
|
234
|
-
>(2, <
|
|
235
|
-
self: Channel.Channel<
|
|
233
|
+
) => Channel.Channel<OutElem2, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
234
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem2>(
|
|
235
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
236
236
|
pf: (o: OutElem) => Option.Option<OutElem2>
|
|
237
|
-
): Channel.Channel<
|
|
238
|
-
const collector: Channel.Channel<
|
|
237
|
+
): Channel.Channel<OutElem2, InElem, OutErr, InErr, OutDone, InDone, Env> => {
|
|
238
|
+
const collector: Channel.Channel<OutElem2, OutElem, OutErr, OutErr, OutDone, OutDone, Env> = core
|
|
239
239
|
.readWith({
|
|
240
240
|
onInput: (out) =>
|
|
241
241
|
Option.match(pf(out), {
|
|
@@ -249,34 +249,34 @@ export const collect = dual<
|
|
|
249
249
|
})
|
|
250
250
|
|
|
251
251
|
/** @internal */
|
|
252
|
-
export const concatOut = <
|
|
252
|
+
export const concatOut = <OutElem, InElem, OutErr, InErr, InDone, Env, OutDone>(
|
|
253
253
|
self: Channel.Channel<
|
|
254
|
-
Env
|
|
255
|
-
InErr,
|
|
254
|
+
Channel.Channel<OutElem, InElem, OutErr, InErr, unknown, InDone, Env>,
|
|
256
255
|
InElem,
|
|
257
|
-
InDone,
|
|
258
256
|
OutErr,
|
|
259
|
-
|
|
260
|
-
OutDone
|
|
257
|
+
InErr,
|
|
258
|
+
OutDone,
|
|
259
|
+
InDone,
|
|
260
|
+
Env
|
|
261
261
|
>
|
|
262
|
-
): Channel.Channel<
|
|
262
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, unknown, InDone, Env> => core.concatAll(self)
|
|
263
263
|
|
|
264
264
|
/** @internal */
|
|
265
265
|
export const mapInput = dual<
|
|
266
266
|
<InDone0, InDone>(
|
|
267
267
|
f: (a: InDone0) => InDone
|
|
268
|
-
) => <
|
|
269
|
-
self: Channel.Channel<
|
|
270
|
-
) => Channel.Channel<
|
|
271
|
-
<
|
|
272
|
-
self: Channel.Channel<
|
|
268
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
269
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
270
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone0, Env>,
|
|
271
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InDone0>(
|
|
272
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
273
273
|
f: (a: InDone0) => InDone
|
|
274
|
-
) => Channel.Channel<
|
|
275
|
-
>(2, <
|
|
276
|
-
self: Channel.Channel<
|
|
274
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone0, Env>
|
|
275
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InDone0>(
|
|
276
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
277
277
|
f: (a: InDone0) => InDone
|
|
278
|
-
): Channel.Channel<
|
|
279
|
-
const reader: Channel.Channel<
|
|
278
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone0, Env> => {
|
|
279
|
+
const reader: Channel.Channel<InElem, InElem, InErr, InErr, InDone, InDone0> = core.readWith({
|
|
280
280
|
onInput: (inElem: InElem) => core.flatMap(core.write(inElem), () => reader),
|
|
281
281
|
onFailure: core.fail,
|
|
282
282
|
onDone: (done: InDone0) => core.succeedNow(f(done))
|
|
@@ -286,20 +286,20 @@ export const mapInput = dual<
|
|
|
286
286
|
|
|
287
287
|
/** @internal */
|
|
288
288
|
export const mapInputEffect = dual<
|
|
289
|
-
<
|
|
290
|
-
f: (i: InDone0) => Effect.Effect<
|
|
291
|
-
) => <
|
|
292
|
-
self: Channel.Channel<
|
|
293
|
-
) => Channel.Channel<
|
|
294
|
-
<
|
|
295
|
-
self: Channel.Channel<
|
|
296
|
-
f: (i: InDone0) => Effect.Effect<
|
|
297
|
-
) => Channel.Channel<
|
|
298
|
-
>(2, <
|
|
299
|
-
self: Channel.Channel<
|
|
300
|
-
f: (i: InDone0) => Effect.Effect<
|
|
301
|
-
): Channel.Channel<
|
|
302
|
-
const reader: Channel.Channel<
|
|
289
|
+
<InDone0, InDone, InErr, Env1>(
|
|
290
|
+
f: (i: InDone0) => Effect.Effect<InDone, InErr, Env1>
|
|
291
|
+
) => <OutElem, InElem, OutErr, OutDone, Env>(
|
|
292
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
293
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone0, Env1 | Env>,
|
|
294
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InDone0, Env1>(
|
|
295
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
296
|
+
f: (i: InDone0) => Effect.Effect<InDone, InErr, Env1>
|
|
297
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone0, Env1 | Env>
|
|
298
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InDone0, Env1>(
|
|
299
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
300
|
+
f: (i: InDone0) => Effect.Effect<InDone, InErr, Env1>
|
|
301
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone0, Env | Env1> => {
|
|
302
|
+
const reader: Channel.Channel<InElem, InElem, InErr, InErr, InDone, InDone0, Env1> = core.readWith({
|
|
303
303
|
onInput: (inElem) => core.flatMap(core.write(inElem), () => reader),
|
|
304
304
|
onFailure: core.fail,
|
|
305
305
|
onDone: (done) => core.fromEffect(f(done))
|
|
@@ -311,18 +311,18 @@ export const mapInputEffect = dual<
|
|
|
311
311
|
export const mapInputError = dual<
|
|
312
312
|
<InErr0, InErr>(
|
|
313
313
|
f: (a: InErr0) => InErr
|
|
314
|
-
) => <
|
|
315
|
-
self: Channel.Channel<
|
|
316
|
-
) => Channel.Channel<
|
|
317
|
-
<
|
|
318
|
-
self: Channel.Channel<
|
|
314
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
315
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
316
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr0, OutDone, InDone, Env>,
|
|
317
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InErr0>(
|
|
318
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
319
319
|
f: (a: InErr0) => InErr
|
|
320
|
-
) => Channel.Channel<
|
|
321
|
-
>(2, <
|
|
322
|
-
self: Channel.Channel<
|
|
320
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr0, OutDone, InDone, Env>
|
|
321
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InErr0>(
|
|
322
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
323
323
|
f: (a: InErr0) => InErr
|
|
324
|
-
): Channel.Channel<
|
|
325
|
-
const reader: Channel.Channel<
|
|
324
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr0, OutDone, InDone, Env> => {
|
|
325
|
+
const reader: Channel.Channel<InElem, InElem, InErr, InErr0, InDone, InDone> = core.readWith({
|
|
326
326
|
onInput: (inElem: InElem) => core.flatMap(core.write(inElem), () => reader),
|
|
327
327
|
onFailure: (error) => core.fail(f(error)),
|
|
328
328
|
onDone: core.succeedNow
|
|
@@ -332,20 +332,20 @@ export const mapInputError = dual<
|
|
|
332
332
|
|
|
333
333
|
/** @internal */
|
|
334
334
|
export const mapInputErrorEffect = dual<
|
|
335
|
-
<
|
|
336
|
-
f: (error: InErr0) => Effect.Effect<
|
|
337
|
-
) => <
|
|
338
|
-
self: Channel.Channel<
|
|
339
|
-
) => Channel.Channel<
|
|
340
|
-
<
|
|
341
|
-
self: Channel.Channel<
|
|
342
|
-
f: (error: InErr0) => Effect.Effect<
|
|
343
|
-
) => Channel.Channel<
|
|
344
|
-
>(2, <
|
|
345
|
-
self: Channel.Channel<
|
|
346
|
-
f: (error: InErr0) => Effect.Effect<
|
|
347
|
-
): Channel.Channel<
|
|
348
|
-
const reader: Channel.Channel<
|
|
335
|
+
<InErr0, InDone, InErr, Env1>(
|
|
336
|
+
f: (error: InErr0) => Effect.Effect<InDone, InErr, Env1>
|
|
337
|
+
) => <OutElem, InElem, OutErr, OutDone, Env>(
|
|
338
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
339
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr0, OutDone, InDone, Env1 | Env>,
|
|
340
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InErr0, Env1>(
|
|
341
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
342
|
+
f: (error: InErr0) => Effect.Effect<InDone, InErr, Env1>
|
|
343
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr0, OutDone, InDone, Env1 | Env>
|
|
344
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InErr0, Env1>(
|
|
345
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
346
|
+
f: (error: InErr0) => Effect.Effect<InDone, InErr, Env1>
|
|
347
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr0, OutDone, InDone, Env | Env1> => {
|
|
348
|
+
const reader: Channel.Channel<InElem, InElem, InErr, InErr0, InDone, InDone, Env1> = core.readWith({
|
|
349
349
|
onInput: (inElem) => core.flatMap(core.write(inElem), () => reader),
|
|
350
350
|
onFailure: (error) => core.fromEffect(f(error)),
|
|
351
351
|
onDone: core.succeedNow
|
|
@@ -357,18 +357,18 @@ export const mapInputErrorEffect = dual<
|
|
|
357
357
|
export const mapInputIn = dual<
|
|
358
358
|
<InElem0, InElem>(
|
|
359
359
|
f: (a: InElem0) => InElem
|
|
360
|
-
) => <
|
|
361
|
-
self: Channel.Channel<
|
|
362
|
-
) => Channel.Channel<
|
|
363
|
-
<
|
|
364
|
-
self: Channel.Channel<
|
|
360
|
+
) => <OutElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
361
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
362
|
+
) => Channel.Channel<OutElem, InElem0, OutErr, InErr, OutDone, InDone, Env>,
|
|
363
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InElem0>(
|
|
364
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
365
365
|
f: (a: InElem0) => InElem
|
|
366
|
-
) => Channel.Channel<
|
|
367
|
-
>(2, <
|
|
368
|
-
self: Channel.Channel<
|
|
366
|
+
) => Channel.Channel<OutElem, InElem0, OutErr, InErr, OutDone, InDone, Env>
|
|
367
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InElem0>(
|
|
368
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
369
369
|
f: (a: InElem0) => InElem
|
|
370
|
-
): Channel.Channel<
|
|
371
|
-
const reader: Channel.Channel<
|
|
370
|
+
): Channel.Channel<OutElem, InElem0, OutErr, InErr, OutDone, InDone, Env> => {
|
|
371
|
+
const reader: Channel.Channel<InElem, InElem0, InErr, InErr, InDone, InDone> = core.readWith({
|
|
372
372
|
onInput: (inElem) => core.flatMap(core.write(f(inElem)), () => reader),
|
|
373
373
|
onFailure: core.fail,
|
|
374
374
|
onDone: core.succeedNow
|
|
@@ -378,20 +378,20 @@ export const mapInputIn = dual<
|
|
|
378
378
|
|
|
379
379
|
/** @internal */
|
|
380
380
|
export const mapInputInEffect = dual<
|
|
381
|
-
<
|
|
382
|
-
f: (a: InElem0) => Effect.Effect<
|
|
383
|
-
) => <
|
|
384
|
-
self: Channel.Channel<
|
|
385
|
-
) => Channel.Channel<
|
|
386
|
-
<
|
|
387
|
-
self: Channel.Channel<
|
|
388
|
-
f: (a: InElem0) => Effect.Effect<
|
|
389
|
-
) => Channel.Channel<
|
|
390
|
-
>(2, <
|
|
391
|
-
self: Channel.Channel<
|
|
392
|
-
f: (a: InElem0) => Effect.Effect<
|
|
393
|
-
): Channel.Channel<
|
|
394
|
-
const reader: Channel.Channel<
|
|
381
|
+
<InElem0, InElem, InErr, Env1>(
|
|
382
|
+
f: (a: InElem0) => Effect.Effect<InElem, InErr, Env1>
|
|
383
|
+
) => <OutElem, OutErr, OutDone, InDone, Env>(
|
|
384
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
385
|
+
) => Channel.Channel<OutElem, InElem0, OutErr, InErr, OutDone, InDone, Env1 | Env>,
|
|
386
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InElem0, Env1>(
|
|
387
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
388
|
+
f: (a: InElem0) => Effect.Effect<InElem, InErr, Env1>
|
|
389
|
+
) => Channel.Channel<OutElem, InElem0, OutErr, InErr, OutDone, InDone, Env1 | Env>
|
|
390
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, InElem0, Env1>(
|
|
391
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
392
|
+
f: (a: InElem0) => Effect.Effect<InElem, InErr, Env1>
|
|
393
|
+
): Channel.Channel<OutElem, InElem0, OutErr, InErr, OutDone, InDone, Env | Env1> => {
|
|
394
|
+
const reader: Channel.Channel<InElem, InElem0, InErr, InErr, InDone, InDone, Env1> = core.readWith({
|
|
395
395
|
onInput: (inElem) => core.flatMap(core.flatMap(core.fromEffect(f(inElem)), core.write), () => reader),
|
|
396
396
|
onFailure: core.fail,
|
|
397
397
|
onDone: core.succeedNow
|
|
@@ -400,17 +400,9 @@ export const mapInputInEffect = dual<
|
|
|
400
400
|
})
|
|
401
401
|
|
|
402
402
|
/** @internal */
|
|
403
|
-
export const doneCollect = <
|
|
404
|
-
self: Channel.Channel<
|
|
405
|
-
): Channel.Channel<
|
|
406
|
-
Env,
|
|
407
|
-
InErr,
|
|
408
|
-
InElem,
|
|
409
|
-
InDone,
|
|
410
|
-
OutErr,
|
|
411
|
-
never,
|
|
412
|
-
[Chunk.Chunk<OutElem>, OutDone]
|
|
413
|
-
> =>
|
|
403
|
+
export const doneCollect = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
404
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
405
|
+
): Channel.Channel<never, InElem, OutErr, InErr, [Chunk.Chunk<OutElem>, OutDone], InDone, Env> =>
|
|
414
406
|
core.suspend(() => {
|
|
415
407
|
const builder: Array<OutElem> = []
|
|
416
408
|
return pipe(
|
|
@@ -422,7 +414,7 @@ export const doneCollect = <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone
|
|
|
422
414
|
/** @internal */
|
|
423
415
|
const doneCollectReader = <Env, OutErr, OutElem, OutDone>(
|
|
424
416
|
builder: Array<OutElem>
|
|
425
|
-
): Channel.Channel<
|
|
417
|
+
): Channel.Channel<never, OutElem, OutErr, OutErr, OutDone, OutDone, Env> => {
|
|
426
418
|
return core.readWith({
|
|
427
419
|
onInput: (outElem) =>
|
|
428
420
|
core.flatMap(
|
|
@@ -437,10 +429,10 @@ const doneCollectReader = <Env, OutErr, OutElem, OutDone>(
|
|
|
437
429
|
}
|
|
438
430
|
|
|
439
431
|
/** @internal */
|
|
440
|
-
export const drain = <
|
|
441
|
-
self: Channel.Channel<
|
|
442
|
-
): Channel.Channel<
|
|
443
|
-
const drainer: Channel.Channel<
|
|
432
|
+
export const drain = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
433
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
434
|
+
): Channel.Channel<never, InElem, OutErr, InErr, OutDone, InDone, Env> => {
|
|
435
|
+
const drainer: Channel.Channel<never, OutElem, OutErr, OutErr, OutDone, OutDone, Env> = core
|
|
444
436
|
.readWithCause({
|
|
445
437
|
onInput: () => drainer,
|
|
446
438
|
onFailure: core.failCause,
|
|
@@ -450,214 +442,207 @@ export const drain = <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
|
|
450
442
|
}
|
|
451
443
|
|
|
452
444
|
/** @internal */
|
|
453
|
-
export const emitCollect = <
|
|
454
|
-
self: Channel.Channel<
|
|
455
|
-
): Channel.Channel<
|
|
445
|
+
export const emitCollect = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
446
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
447
|
+
): Channel.Channel<[Chunk.Chunk<OutElem>, OutDone], InElem, OutErr, InErr, void, InDone, Env> =>
|
|
456
448
|
core.flatMap(doneCollect(self), core.write)
|
|
457
449
|
|
|
458
450
|
/** @internal */
|
|
459
451
|
export const ensuring = dual<
|
|
460
|
-
<
|
|
461
|
-
finalizer: Effect.Effect<
|
|
462
|
-
) => <
|
|
463
|
-
self: Channel.Channel<
|
|
464
|
-
) => Channel.Channel<
|
|
465
|
-
<
|
|
466
|
-
self: Channel.Channel<
|
|
467
|
-
finalizer: Effect.Effect<
|
|
468
|
-
) => Channel.Channel<
|
|
452
|
+
<Z, Env1>(
|
|
453
|
+
finalizer: Effect.Effect<Z, never, Env1>
|
|
454
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
455
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
456
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env1 | Env>,
|
|
457
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, Z, Env1>(
|
|
458
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
459
|
+
finalizer: Effect.Effect<Z, never, Env1>
|
|
460
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env1 | Env>
|
|
469
461
|
>(2, <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, Z>(
|
|
470
|
-
self: Channel.Channel<
|
|
471
|
-
finalizer: Effect.Effect<
|
|
472
|
-
): Channel.Channel<
|
|
462
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
463
|
+
finalizer: Effect.Effect<Z, never, Env1>
|
|
464
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env | Env1> =>
|
|
473
465
|
core.ensuringWith(self, () => finalizer))
|
|
474
466
|
|
|
475
467
|
/** @internal */
|
|
476
|
-
export const context = <Env>(): Channel.Channel<
|
|
477
|
-
Env
|
|
478
|
-
unknown,
|
|
479
|
-
unknown,
|
|
480
|
-
unknown,
|
|
481
|
-
never,
|
|
482
|
-
never,
|
|
483
|
-
Context.Context<Env>
|
|
484
|
-
> => core.fromEffect(Effect.context<Env>())
|
|
468
|
+
export const context = <Env>(): Channel.Channel<never, unknown, never, unknown, Context.Context<Env>, unknown, Env> =>
|
|
469
|
+
core.fromEffect(Effect.context<Env>())
|
|
485
470
|
|
|
486
471
|
/** @internal */
|
|
487
472
|
export const contextWith = <Env, OutDone>(
|
|
488
473
|
f: (env: Context.Context<Env>) => OutDone
|
|
489
|
-
): Channel.Channel<
|
|
474
|
+
): Channel.Channel<never, unknown, never, unknown, OutDone, unknown, Env> => map(context<Env>(), f)
|
|
490
475
|
|
|
491
476
|
/** @internal */
|
|
492
477
|
export const contextWithChannel = <
|
|
493
478
|
Env,
|
|
494
|
-
|
|
495
|
-
InErr,
|
|
479
|
+
OutElem,
|
|
496
480
|
InElem,
|
|
497
|
-
InDone,
|
|
498
481
|
OutErr,
|
|
499
|
-
|
|
500
|
-
OutDone
|
|
482
|
+
InErr,
|
|
483
|
+
OutDone,
|
|
484
|
+
InDone,
|
|
485
|
+
Env1
|
|
501
486
|
>(
|
|
502
|
-
f: (env: Context.Context<Env>) => Channel.Channel<
|
|
503
|
-
): Channel.Channel<
|
|
487
|
+
f: (env: Context.Context<Env>) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env1>
|
|
488
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env | Env1> => core.flatMap(context<Env>(), f)
|
|
504
489
|
|
|
505
490
|
/** @internal */
|
|
506
|
-
export const contextWithEffect = <Env,
|
|
507
|
-
f: (env: Context.Context<Env>) => Effect.Effect<
|
|
508
|
-
): Channel.Channel<
|
|
491
|
+
export const contextWithEffect = <Env, OutDone, OutErr, Env1>(
|
|
492
|
+
f: (env: Context.Context<Env>) => Effect.Effect<OutDone, OutErr, Env1>
|
|
493
|
+
): Channel.Channel<never, unknown, OutErr, unknown, OutDone, unknown, Env | Env1> => mapEffect(context<Env>(), f)
|
|
509
494
|
|
|
510
495
|
/** @internal */
|
|
511
496
|
export const flatten = <
|
|
512
|
-
|
|
513
|
-
InErr,
|
|
497
|
+
OutElem,
|
|
514
498
|
InElem,
|
|
515
|
-
InDone,
|
|
516
499
|
OutErr,
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
InErr1,
|
|
500
|
+
InErr,
|
|
501
|
+
OutElem1,
|
|
520
502
|
InElem1,
|
|
521
|
-
InDone1,
|
|
522
503
|
OutErr1,
|
|
523
|
-
|
|
524
|
-
OutDone2
|
|
504
|
+
InErr1,
|
|
505
|
+
OutDone2,
|
|
506
|
+
InDone1,
|
|
507
|
+
Env1,
|
|
508
|
+
InDone,
|
|
509
|
+
Env
|
|
525
510
|
>(
|
|
526
511
|
self: Channel.Channel<
|
|
527
|
-
|
|
528
|
-
InErr,
|
|
512
|
+
OutElem,
|
|
529
513
|
InElem,
|
|
530
|
-
InDone,
|
|
531
514
|
OutErr,
|
|
532
|
-
|
|
533
|
-
Channel.Channel<
|
|
515
|
+
InErr,
|
|
516
|
+
Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone2, InDone1, Env1>,
|
|
517
|
+
InDone,
|
|
518
|
+
Env
|
|
534
519
|
>
|
|
535
520
|
): Channel.Channel<
|
|
536
|
-
|
|
537
|
-
InErr & InErr1,
|
|
521
|
+
OutElem | OutElem1,
|
|
538
522
|
InElem & InElem1,
|
|
539
|
-
InDone & InDone1,
|
|
540
523
|
OutErr | OutErr1,
|
|
541
|
-
|
|
542
|
-
OutDone2
|
|
524
|
+
InErr & InErr1,
|
|
525
|
+
OutDone2,
|
|
526
|
+
InDone & InDone1,
|
|
527
|
+
Env | Env1
|
|
543
528
|
> => core.flatMap(self, identity)
|
|
544
529
|
|
|
545
530
|
/** @internal */
|
|
546
531
|
export const foldChannel = dual<
|
|
547
532
|
<
|
|
548
|
-
Env1,
|
|
549
|
-
Env2,
|
|
550
|
-
InErr1,
|
|
551
|
-
InErr2,
|
|
552
|
-
InElem1,
|
|
553
|
-
InElem2,
|
|
554
|
-
InDone1,
|
|
555
|
-
InDone2,
|
|
556
533
|
OutErr,
|
|
557
|
-
OutErr1,
|
|
558
|
-
OutErr2,
|
|
559
534
|
OutElem1,
|
|
560
|
-
|
|
561
|
-
|
|
535
|
+
InElem1,
|
|
536
|
+
OutErr1,
|
|
537
|
+
InErr1,
|
|
562
538
|
OutDone1,
|
|
563
|
-
|
|
539
|
+
InDone1,
|
|
540
|
+
Env1,
|
|
541
|
+
OutDone,
|
|
542
|
+
OutElem2,
|
|
543
|
+
InElem2,
|
|
544
|
+
OutErr2,
|
|
545
|
+
InErr2,
|
|
546
|
+
OutDone2,
|
|
547
|
+
InDone2,
|
|
548
|
+
Env2
|
|
564
549
|
>(
|
|
565
550
|
options: {
|
|
566
551
|
readonly onFailure: (
|
|
567
552
|
error: OutErr
|
|
568
|
-
) => Channel.Channel<
|
|
553
|
+
) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
|
|
569
554
|
readonly onSuccess: (
|
|
570
555
|
done: OutDone
|
|
571
|
-
) => Channel.Channel<
|
|
556
|
+
) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, OutDone2, InDone2, Env2>
|
|
572
557
|
}
|
|
573
558
|
) => <Env, InErr, InElem, InDone, OutElem>(
|
|
574
|
-
self: Channel.Channel<
|
|
559
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
575
560
|
) => Channel.Channel<
|
|
576
|
-
|
|
577
|
-
InErr & InErr1 & InErr2,
|
|
561
|
+
OutElem1 | OutElem2 | OutElem,
|
|
578
562
|
InElem & InElem1 & InElem2,
|
|
579
|
-
InDone & InDone1 & InDone2,
|
|
580
563
|
OutErr1 | OutErr2,
|
|
581
|
-
|
|
582
|
-
OutDone1 | OutDone2
|
|
564
|
+
InErr & InErr1 & InErr2,
|
|
565
|
+
OutDone1 | OutDone2,
|
|
566
|
+
InDone & InDone1 & InDone2,
|
|
567
|
+
Env1 | Env2 | Env
|
|
583
568
|
>,
|
|
584
569
|
<
|
|
585
|
-
|
|
586
|
-
InErr,
|
|
570
|
+
OutElem,
|
|
587
571
|
InElem,
|
|
572
|
+
OutErr,
|
|
573
|
+
InErr,
|
|
574
|
+
OutDone,
|
|
588
575
|
InDone,
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
Env2,
|
|
592
|
-
InErr1,
|
|
593
|
-
InErr2,
|
|
576
|
+
Env,
|
|
577
|
+
OutElem1,
|
|
594
578
|
InElem1,
|
|
595
|
-
InElem2,
|
|
596
|
-
InDone1,
|
|
597
|
-
InDone2,
|
|
598
|
-
OutErr,
|
|
599
579
|
OutErr1,
|
|
600
|
-
|
|
601
|
-
OutElem1,
|
|
602
|
-
OutElem2,
|
|
603
|
-
OutDone,
|
|
580
|
+
InErr1,
|
|
604
581
|
OutDone1,
|
|
605
|
-
|
|
582
|
+
InDone1,
|
|
583
|
+
Env1,
|
|
584
|
+
OutElem2,
|
|
585
|
+
InElem2,
|
|
586
|
+
OutErr2,
|
|
587
|
+
InErr2,
|
|
588
|
+
OutDone2,
|
|
589
|
+
InDone2,
|
|
590
|
+
Env2
|
|
606
591
|
>(
|
|
607
|
-
self: Channel.Channel<
|
|
592
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
608
593
|
options: {
|
|
609
594
|
readonly onFailure: (
|
|
610
595
|
error: OutErr
|
|
611
|
-
) => Channel.Channel<
|
|
596
|
+
) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
|
|
612
597
|
readonly onSuccess: (
|
|
613
598
|
done: OutDone
|
|
614
|
-
) => Channel.Channel<
|
|
599
|
+
) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, OutDone2, InDone2, Env2>
|
|
615
600
|
}
|
|
616
601
|
) => Channel.Channel<
|
|
617
|
-
|
|
618
|
-
InErr & InErr1 & InErr2,
|
|
602
|
+
OutElem1 | OutElem2 | OutElem,
|
|
619
603
|
InElem & InElem1 & InElem2,
|
|
620
|
-
InDone & InDone1 & InDone2,
|
|
621
604
|
OutErr1 | OutErr2,
|
|
622
|
-
|
|
623
|
-
OutDone1 | OutDone2
|
|
605
|
+
InErr & InErr1 & InErr2,
|
|
606
|
+
OutDone1 | OutDone2,
|
|
607
|
+
InDone & InDone1 & InDone2,
|
|
608
|
+
Env1 | Env2 | Env
|
|
624
609
|
>
|
|
625
610
|
>(2, <
|
|
626
|
-
|
|
627
|
-
InErr,
|
|
611
|
+
OutElem,
|
|
628
612
|
InElem,
|
|
613
|
+
OutErr,
|
|
614
|
+
InErr,
|
|
615
|
+
OutDone,
|
|
629
616
|
InDone,
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
Env2,
|
|
633
|
-
InErr1,
|
|
634
|
-
InErr2,
|
|
617
|
+
Env,
|
|
618
|
+
OutElem1,
|
|
635
619
|
InElem1,
|
|
636
|
-
InElem2,
|
|
637
|
-
InDone1,
|
|
638
|
-
InDone2,
|
|
639
|
-
OutErr,
|
|
640
620
|
OutErr1,
|
|
641
|
-
|
|
642
|
-
OutElem1,
|
|
643
|
-
OutElem2,
|
|
644
|
-
OutDone,
|
|
621
|
+
InErr1,
|
|
645
622
|
OutDone1,
|
|
646
|
-
|
|
623
|
+
InDone1,
|
|
624
|
+
Env1,
|
|
625
|
+
OutElem2,
|
|
626
|
+
InElem2,
|
|
627
|
+
OutErr2,
|
|
628
|
+
InErr2,
|
|
629
|
+
OutDone2,
|
|
630
|
+
InDone2,
|
|
631
|
+
Env2
|
|
647
632
|
>(
|
|
648
|
-
self: Channel.Channel<
|
|
633
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
649
634
|
options: {
|
|
650
|
-
readonly onFailure: (error: OutErr) => Channel.Channel<
|
|
651
|
-
readonly onSuccess: (done: OutDone) => Channel.Channel<
|
|
635
|
+
readonly onFailure: (error: OutErr) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
|
|
636
|
+
readonly onSuccess: (done: OutDone) => Channel.Channel<OutElem2, InElem2, OutErr2, InErr2, OutDone2, InDone2, Env2>
|
|
652
637
|
}
|
|
653
638
|
): Channel.Channel<
|
|
654
|
-
|
|
655
|
-
InErr & InErr1 & InErr2,
|
|
639
|
+
OutElem | OutElem2 | OutElem1,
|
|
656
640
|
InElem & InElem1 & InElem2,
|
|
657
|
-
InDone & InDone1 & InDone2,
|
|
658
641
|
OutErr2 | OutErr1,
|
|
659
|
-
|
|
660
|
-
OutDone2 | OutDone1
|
|
642
|
+
InErr & InErr1 & InErr2,
|
|
643
|
+
OutDone2 | OutDone1,
|
|
644
|
+
InDone & InDone1 & InDone2,
|
|
645
|
+
Env | Env1 | Env2
|
|
661
646
|
> =>
|
|
662
647
|
core.foldCauseChannel(self, {
|
|
663
648
|
onFailure: (cause) => {
|
|
@@ -677,13 +662,13 @@ export const foldChannel = dual<
|
|
|
677
662
|
/** @internal */
|
|
678
663
|
export const fromEither = <E, A>(
|
|
679
664
|
either: Either.Either<E, A>
|
|
680
|
-
): Channel.Channel<never, unknown,
|
|
665
|
+
): Channel.Channel<never, unknown, E, unknown, A, unknown> =>
|
|
681
666
|
core.suspend(() => Either.match(either, { onLeft: core.fail, onRight: core.succeed }))
|
|
682
667
|
|
|
683
668
|
/** @internal */
|
|
684
669
|
export const fromInput = <Err, Elem, Done>(
|
|
685
670
|
input: SingleProducerAsyncInput.AsyncInputConsumer<Err, Elem, Done>
|
|
686
|
-
): Channel.Channel<
|
|
671
|
+
): Channel.Channel<Elem, unknown, Err, unknown, Done, unknown> =>
|
|
687
672
|
unwrap(
|
|
688
673
|
input.takeWith(
|
|
689
674
|
core.failCause,
|
|
@@ -693,21 +678,21 @@ export const fromInput = <Err, Elem, Done>(
|
|
|
693
678
|
)
|
|
694
679
|
|
|
695
680
|
/** @internal */
|
|
696
|
-
export const fromPubSub = <
|
|
697
|
-
pubsub: PubSub.PubSub<Either.Either<Exit.Exit<
|
|
698
|
-
): Channel.Channel<
|
|
681
|
+
export const fromPubSub = <Done, Err, Elem>(
|
|
682
|
+
pubsub: PubSub.PubSub<Either.Either<Exit.Exit<Done, Err>, Elem>>
|
|
683
|
+
): Channel.Channel<Elem, unknown, Err, unknown, Done, unknown> =>
|
|
699
684
|
unwrapScoped(Effect.map(PubSub.subscribe(pubsub), fromQueue))
|
|
700
685
|
|
|
701
686
|
/** @internal */
|
|
702
|
-
export const fromPubSubScoped = <
|
|
703
|
-
pubsub: PubSub.PubSub<Either.Either<Exit.Exit<
|
|
704
|
-
): Effect.Effect<
|
|
687
|
+
export const fromPubSubScoped = <Done, Err, Elem>(
|
|
688
|
+
pubsub: PubSub.PubSub<Either.Either<Exit.Exit<Done, Err>, Elem>>
|
|
689
|
+
): Effect.Effect<Channel.Channel<Elem, unknown, Err, unknown, Done, unknown>, never, Scope.Scope> =>
|
|
705
690
|
Effect.map(PubSub.subscribe(pubsub), fromQueue)
|
|
706
691
|
|
|
707
692
|
/** @internal */
|
|
708
693
|
export const fromOption = <A>(
|
|
709
694
|
option: Option.Option<A>
|
|
710
|
-
): Channel.Channel<never, unknown,
|
|
695
|
+
): Channel.Channel<never, unknown, Option.Option<never>, unknown, A, unknown> =>
|
|
711
696
|
core.suspend(() =>
|
|
712
697
|
Option.match(option, {
|
|
713
698
|
onNone: () => core.fail(Option.none()),
|
|
@@ -716,14 +701,14 @@ export const fromOption = <A>(
|
|
|
716
701
|
)
|
|
717
702
|
|
|
718
703
|
/** @internal */
|
|
719
|
-
export const fromQueue = <Err, Elem
|
|
720
|
-
queue: Queue.Dequeue<Either.Either<Exit.Exit<
|
|
721
|
-
): Channel.Channel<
|
|
704
|
+
export const fromQueue = <Done, Err, Elem>(
|
|
705
|
+
queue: Queue.Dequeue<Either.Either<Exit.Exit<Done, Err>, Elem>>
|
|
706
|
+
): Channel.Channel<Elem, unknown, Err, unknown, Done, unknown> => core.suspend(() => fromQueueInternal(queue))
|
|
722
707
|
|
|
723
708
|
/** @internal */
|
|
724
|
-
const fromQueueInternal = <Err, Elem
|
|
725
|
-
queue: Queue.Dequeue<Either.Either<Exit.Exit<
|
|
726
|
-
): Channel.Channel<
|
|
709
|
+
const fromQueueInternal = <Done, Err, Elem>(
|
|
710
|
+
queue: Queue.Dequeue<Either.Either<Exit.Exit<Done, Err>, Elem>>
|
|
711
|
+
): Channel.Channel<Elem, unknown, Err, unknown, Done, unknown> =>
|
|
727
712
|
pipe(
|
|
728
713
|
core.fromEffect(Queue.take(queue)),
|
|
729
714
|
core.flatMap(Either.match({
|
|
@@ -734,42 +719,34 @@ const fromQueueInternal = <Err, Elem, Done>(
|
|
|
734
719
|
onRight: (elem) =>
|
|
735
720
|
core.flatMap(
|
|
736
721
|
core.write(elem),
|
|
737
|
-
() => fromQueueInternal
|
|
722
|
+
() => fromQueueInternal(queue)
|
|
738
723
|
)
|
|
739
724
|
}))
|
|
740
725
|
)
|
|
741
726
|
|
|
742
727
|
/** @internal */
|
|
743
|
-
export const identityChannel = <
|
|
728
|
+
export const identityChannel = <Elem, Err, Done>(): Channel.Channel<Elem, Elem, Err, Err, Done, Done> =>
|
|
744
729
|
core.readWith({
|
|
745
|
-
onInput: (input: Elem) => core.flatMap(core.write(input), () => identityChannel
|
|
730
|
+
onInput: (input: Elem) => core.flatMap(core.write(input), () => identityChannel()),
|
|
746
731
|
onFailure: core.fail,
|
|
747
732
|
onDone: core.succeedNow
|
|
748
733
|
})
|
|
749
734
|
|
|
750
735
|
/** @internal */
|
|
751
736
|
export const interruptWhen = dual<
|
|
752
|
-
<
|
|
753
|
-
effect: Effect.Effect<
|
|
754
|
-
) => <
|
|
755
|
-
self: Channel.Channel<
|
|
756
|
-
) => Channel.Channel<
|
|
757
|
-
<
|
|
758
|
-
self: Channel.Channel<
|
|
759
|
-
effect: Effect.Effect<
|
|
760
|
-
) => Channel.Channel<
|
|
761
|
-
>(2, <
|
|
762
|
-
self: Channel.Channel<
|
|
763
|
-
effect: Effect.Effect<
|
|
764
|
-
): Channel.Channel<
|
|
765
|
-
Env1 | Env,
|
|
766
|
-
InErr,
|
|
767
|
-
InElem,
|
|
768
|
-
InDone,
|
|
769
|
-
OutErr | OutErr1,
|
|
770
|
-
OutElem,
|
|
771
|
-
OutDone | OutDone1
|
|
772
|
-
> =>
|
|
737
|
+
<OutDone1, OutErr1, Env1>(
|
|
738
|
+
effect: Effect.Effect<OutDone1, OutErr1, Env1>
|
|
739
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
740
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
741
|
+
) => Channel.Channel<OutElem, InElem, OutErr1 | OutErr, InErr, OutDone1 | OutDone, InDone, Env1 | Env>,
|
|
742
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutDone1, OutErr1, Env1>(
|
|
743
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
744
|
+
effect: Effect.Effect<OutDone1, OutErr1, Env1>
|
|
745
|
+
) => Channel.Channel<OutElem, InElem, OutErr1 | OutErr, InErr, OutDone1 | OutDone, InDone, Env1 | Env>
|
|
746
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutDone1, OutErr1, Env1>(
|
|
747
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
748
|
+
effect: Effect.Effect<OutDone1, OutErr1, Env1>
|
|
749
|
+
): Channel.Channel<OutElem, InElem, OutErr | OutErr1, InErr, OutDone | OutDone1, InDone, Env1 | Env> =>
|
|
773
750
|
mergeWith(self, {
|
|
774
751
|
other: core.fromEffect(effect),
|
|
775
752
|
onSelfDone: (selfDone) => mergeDecision.Done(Effect.suspend(() => selfDone)),
|
|
@@ -778,104 +755,104 @@ export const interruptWhen = dual<
|
|
|
778
755
|
|
|
779
756
|
/** @internal */
|
|
780
757
|
export const interruptWhenDeferred = dual<
|
|
781
|
-
<
|
|
782
|
-
deferred: Deferred.Deferred<
|
|
783
|
-
) => <
|
|
784
|
-
self: Channel.Channel<
|
|
785
|
-
) => Channel.Channel<
|
|
786
|
-
<
|
|
787
|
-
self: Channel.Channel<
|
|
788
|
-
deferred: Deferred.Deferred<
|
|
789
|
-
) => Channel.Channel<
|
|
758
|
+
<OutDone1, OutErr1>(
|
|
759
|
+
deferred: Deferred.Deferred<OutDone1, OutErr1>
|
|
760
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
761
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
762
|
+
) => Channel.Channel<OutElem, InElem, OutErr1 | OutErr, InErr, OutDone1 | OutDone, InDone, Env>,
|
|
763
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutDone1, OutErr1>(
|
|
764
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
765
|
+
deferred: Deferred.Deferred<OutDone1, OutErr1>
|
|
766
|
+
) => Channel.Channel<OutElem, InElem, OutErr1 | OutErr, InErr, OutDone1 | OutDone, InDone, Env>
|
|
790
767
|
>(2, <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, OutErr1, OutDone1>(
|
|
791
|
-
self: Channel.Channel<
|
|
792
|
-
deferred: Deferred.Deferred<
|
|
793
|
-
): Channel.Channel<
|
|
768
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
769
|
+
deferred: Deferred.Deferred<OutDone1, OutErr1>
|
|
770
|
+
): Channel.Channel<OutElem, InElem, OutErr | OutErr1, InErr, OutDone | OutDone1, InDone, Env> =>
|
|
794
771
|
interruptWhen(self, Deferred.await(deferred)))
|
|
795
772
|
|
|
796
773
|
/** @internal */
|
|
797
774
|
export const map = dual<
|
|
798
775
|
<OutDone, OutDone2>(
|
|
799
776
|
f: (out: OutDone) => OutDone2
|
|
800
|
-
) => <
|
|
801
|
-
self: Channel.Channel<
|
|
802
|
-
) => Channel.Channel<
|
|
803
|
-
<
|
|
804
|
-
self: Channel.Channel<
|
|
777
|
+
) => <OutElem, InElem, OutErr, InErr, InDone, Env>(
|
|
778
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
779
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>,
|
|
780
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutDone2>(
|
|
781
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
805
782
|
f: (out: OutDone) => OutDone2
|
|
806
|
-
) => Channel.Channel<
|
|
783
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env>
|
|
807
784
|
>(2, <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, OutDone2>(
|
|
808
|
-
self: Channel.Channel<
|
|
785
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
809
786
|
f: (out: OutDone) => OutDone2
|
|
810
|
-
): Channel.Channel<
|
|
787
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone2, InDone, Env> =>
|
|
811
788
|
core.flatMap(self, (a) => core.sync(() => f(a))))
|
|
812
789
|
|
|
813
790
|
/** @internal */
|
|
814
791
|
export const mapEffect = dual<
|
|
815
|
-
<
|
|
816
|
-
f: (o: OutDone) => Effect.Effect<
|
|
817
|
-
) => <
|
|
818
|
-
self: Channel.Channel<
|
|
819
|
-
) => Channel.Channel<
|
|
820
|
-
<
|
|
821
|
-
self: Channel.Channel<
|
|
822
|
-
f: (o: OutDone) => Effect.Effect<
|
|
823
|
-
) => Channel.Channel<
|
|
824
|
-
>(2, <
|
|
825
|
-
self: Channel.Channel<
|
|
826
|
-
f: (o: OutDone) => Effect.Effect<
|
|
827
|
-
): Channel.Channel<
|
|
792
|
+
<OutDone, OutDone1, OutErr1, Env1>(
|
|
793
|
+
f: (o: OutDone) => Effect.Effect<OutDone1, OutErr1, Env1>
|
|
794
|
+
) => <OutElem, InElem, OutErr, InErr, InDone, Env>(
|
|
795
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
796
|
+
) => Channel.Channel<OutElem, InElem, OutErr1 | OutErr, InErr, OutDone1, InDone, Env1 | Env>,
|
|
797
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutDone1, OutErr1, Env1>(
|
|
798
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
799
|
+
f: (o: OutDone) => Effect.Effect<OutDone1, OutErr1, Env1>
|
|
800
|
+
) => Channel.Channel<OutElem, InElem, OutErr1 | OutErr, InErr, OutDone1, InDone, Env1 | Env>
|
|
801
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutDone1, OutErr1, Env1>(
|
|
802
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
803
|
+
f: (o: OutDone) => Effect.Effect<OutDone1, OutErr1, Env1>
|
|
804
|
+
): Channel.Channel<OutElem, InElem, OutErr | OutErr1, InErr, OutDone1, InDone, Env | Env1> =>
|
|
828
805
|
core.flatMap(self, (z) => core.fromEffect(f(z))))
|
|
829
806
|
|
|
830
807
|
/** @internal */
|
|
831
808
|
export const mapError = dual<
|
|
832
809
|
<OutErr, OutErr2>(
|
|
833
810
|
f: (err: OutErr) => OutErr2
|
|
834
|
-
) => <
|
|
835
|
-
self: Channel.Channel<
|
|
836
|
-
) => Channel.Channel<
|
|
837
|
-
<
|
|
838
|
-
self: Channel.Channel<
|
|
811
|
+
) => <OutElem, InElem, InErr, OutDone, InDone, Env>(
|
|
812
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
813
|
+
) => Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone, InDone, Env>,
|
|
814
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutErr2>(
|
|
815
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
839
816
|
f: (err: OutErr) => OutErr2
|
|
840
|
-
) => Channel.Channel<
|
|
841
|
-
>(2, <
|
|
842
|
-
self: Channel.Channel<
|
|
817
|
+
) => Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone, InDone, Env>
|
|
818
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutErr2>(
|
|
819
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
843
820
|
f: (err: OutErr) => OutErr2
|
|
844
|
-
): Channel.Channel<
|
|
821
|
+
): Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone, InDone, Env> => mapErrorCause(self, Cause.map(f)))
|
|
845
822
|
|
|
846
823
|
/** @internal */
|
|
847
824
|
export const mapErrorCause = dual<
|
|
848
825
|
<OutErr, OutErr2>(
|
|
849
826
|
f: (cause: Cause.Cause<OutErr>) => Cause.Cause<OutErr2>
|
|
850
|
-
) => <
|
|
851
|
-
self: Channel.Channel<
|
|
852
|
-
) => Channel.Channel<
|
|
853
|
-
<
|
|
854
|
-
self: Channel.Channel<
|
|
827
|
+
) => <OutElem, InElem, InErr, OutDone, InDone, Env>(
|
|
828
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
829
|
+
) => Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone, InDone, Env>,
|
|
830
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutErr2>(
|
|
831
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
855
832
|
f: (cause: Cause.Cause<OutErr>) => Cause.Cause<OutErr2>
|
|
856
|
-
) => Channel.Channel<
|
|
857
|
-
>(2, <
|
|
858
|
-
self: Channel.Channel<
|
|
833
|
+
) => Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone, InDone, Env>
|
|
834
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutErr2>(
|
|
835
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
859
836
|
f: (cause: Cause.Cause<OutErr>) => Cause.Cause<OutErr2>
|
|
860
|
-
): Channel.Channel<
|
|
837
|
+
): Channel.Channel<OutElem, InElem, OutErr2, InErr, OutDone, InDone, Env> =>
|
|
861
838
|
core.catchAllCause(self, (cause) => core.failCause(f(cause))))
|
|
862
839
|
|
|
863
840
|
/** @internal */
|
|
864
841
|
export const mapOut = dual<
|
|
865
842
|
<OutElem, OutElem2>(
|
|
866
843
|
f: (o: OutElem) => OutElem2
|
|
867
|
-
) => <
|
|
868
|
-
self: Channel.Channel<
|
|
869
|
-
) => Channel.Channel<
|
|
870
|
-
<
|
|
871
|
-
self: Channel.Channel<
|
|
844
|
+
) => <InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
845
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
846
|
+
) => Channel.Channel<OutElem2, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
847
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem2>(
|
|
848
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
872
849
|
f: (o: OutElem) => OutElem2
|
|
873
|
-
) => Channel.Channel<
|
|
874
|
-
>(2, <
|
|
875
|
-
self: Channel.Channel<
|
|
850
|
+
) => Channel.Channel<OutElem2, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
851
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem2>(
|
|
852
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
876
853
|
f: (o: OutElem) => OutElem2
|
|
877
|
-
): Channel.Channel<
|
|
878
|
-
const reader: Channel.Channel<
|
|
854
|
+
): Channel.Channel<OutElem2, InElem, OutErr, InErr, OutDone, InDone, Env> => {
|
|
855
|
+
const reader: Channel.Channel<OutElem2, OutElem, OutErr, OutErr, OutDone, OutDone, Env> = core
|
|
879
856
|
.readWith({
|
|
880
857
|
onInput: (outElem) => core.flatMap(core.write(f(outElem)), () => reader),
|
|
881
858
|
onFailure: core.fail,
|
|
@@ -886,20 +863,20 @@ export const mapOut = dual<
|
|
|
886
863
|
|
|
887
864
|
/** @internal */
|
|
888
865
|
export const mapOutEffect = dual<
|
|
889
|
-
<OutElem,
|
|
890
|
-
f: (o: OutElem) => Effect.Effect<
|
|
891
|
-
) => <
|
|
892
|
-
self: Channel.Channel<
|
|
893
|
-
) => Channel.Channel<
|
|
894
|
-
<
|
|
895
|
-
self: Channel.Channel<
|
|
896
|
-
f: (o: OutElem) => Effect.Effect<
|
|
897
|
-
) => Channel.Channel<
|
|
898
|
-
>(2, <
|
|
899
|
-
self: Channel.Channel<
|
|
900
|
-
f: (o: OutElem) => Effect.Effect<
|
|
901
|
-
): Channel.Channel<
|
|
902
|
-
const reader: Channel.Channel<
|
|
866
|
+
<OutElem, OutElem1, OutErr1, Env1>(
|
|
867
|
+
f: (o: OutElem) => Effect.Effect<OutElem1, OutErr1, Env1>
|
|
868
|
+
) => <InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
869
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
870
|
+
) => Channel.Channel<OutElem1, InElem, OutErr1 | OutErr, InErr, OutDone, InDone, Env1 | Env>,
|
|
871
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, OutErr1, Env1>(
|
|
872
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
873
|
+
f: (o: OutElem) => Effect.Effect<OutElem1, OutErr1, Env1>
|
|
874
|
+
) => Channel.Channel<OutElem1, InElem, OutErr1 | OutErr, InErr, OutDone, InDone, Env1 | Env>
|
|
875
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, OutErr1, Env1>(
|
|
876
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
877
|
+
f: (o: OutElem) => Effect.Effect<OutElem1, OutErr1, Env1>
|
|
878
|
+
): Channel.Channel<OutElem1, InElem, OutErr | OutErr1, InErr, OutDone, InDone, Env | Env1> => {
|
|
879
|
+
const reader: Channel.Channel<OutElem1, OutElem, OutErr | OutErr1, OutErr, OutDone, OutDone, Env | Env1> = core
|
|
903
880
|
.readWithCause({
|
|
904
881
|
onInput: (outElem) =>
|
|
905
882
|
pipe(
|
|
@@ -915,31 +892,31 @@ export const mapOutEffect = dual<
|
|
|
915
892
|
|
|
916
893
|
/** @internal */
|
|
917
894
|
export const mapOutEffectPar = dual<
|
|
918
|
-
<OutElem,
|
|
919
|
-
f: (o: OutElem) => Effect.Effect<
|
|
895
|
+
<OutElem, OutElem1, OutErr1, Env1>(
|
|
896
|
+
f: (o: OutElem) => Effect.Effect<OutElem1, OutErr1, Env1>,
|
|
920
897
|
n: number
|
|
921
|
-
) => <
|
|
922
|
-
self: Channel.Channel<
|
|
923
|
-
) => Channel.Channel<
|
|
924
|
-
<
|
|
925
|
-
self: Channel.Channel<
|
|
926
|
-
f: (o: OutElem) => Effect.Effect<
|
|
898
|
+
) => <InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
899
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
900
|
+
) => Channel.Channel<OutElem1, InElem, OutErr1 | OutErr, InErr, OutDone, InDone, Env1 | Env>,
|
|
901
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, OutErr1, Env1>(
|
|
902
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
903
|
+
f: (o: OutElem) => Effect.Effect<OutElem1, OutErr1, Env1>,
|
|
927
904
|
n: number
|
|
928
|
-
) => Channel.Channel<
|
|
929
|
-
>(3, <
|
|
930
|
-
self: Channel.Channel<
|
|
931
|
-
f: (o: OutElem) => Effect.Effect<
|
|
905
|
+
) => Channel.Channel<OutElem1, InElem, OutErr1 | OutErr, InErr, OutDone, InDone, Env1 | Env>
|
|
906
|
+
>(3, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, OutErr1, Env1>(
|
|
907
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
908
|
+
f: (o: OutElem) => Effect.Effect<OutElem1, OutErr1, Env1>,
|
|
932
909
|
n: number
|
|
933
|
-
): Channel.Channel<
|
|
910
|
+
): Channel.Channel<OutElem1, InElem, OutErr | OutErr1, InErr, OutDone, InDone, Env | Env1> =>
|
|
934
911
|
pipe(
|
|
935
912
|
Effect.gen(function*($) {
|
|
936
913
|
const queue = yield* $(
|
|
937
914
|
Effect.acquireRelease(
|
|
938
|
-
Queue.bounded<Effect.Effect<
|
|
915
|
+
Queue.bounded<Effect.Effect<Either.Either<OutDone, OutElem1>, OutErr | OutErr1, Env1>>(n),
|
|
939
916
|
(queue) => Queue.shutdown(queue)
|
|
940
917
|
)
|
|
941
918
|
)
|
|
942
|
-
const errorSignal = yield* $(Deferred.make<
|
|
919
|
+
const errorSignal = yield* $(Deferred.make<never, OutErr1>())
|
|
943
920
|
const withPermits = n === Number.POSITIVE_INFINITY ?
|
|
944
921
|
((_: number) => identity) :
|
|
945
922
|
(yield* $(Effect.makeSemaphore(n))).withPermits
|
|
@@ -963,14 +940,14 @@ export const mapOutEffectPar = dual<
|
|
|
963
940
|
},
|
|
964
941
|
onRight: (outElem) =>
|
|
965
942
|
Effect.gen(function*($) {
|
|
966
|
-
const deferred = yield* $(Deferred.make<
|
|
967
|
-
const latch = yield* $(Deferred.make<
|
|
943
|
+
const deferred = yield* $(Deferred.make<OutElem1, OutErr1>())
|
|
944
|
+
const latch = yield* $(Deferred.make<void>())
|
|
968
945
|
yield* $(Effect.asUnit(Queue.offer(
|
|
969
946
|
queue,
|
|
970
947
|
Effect.map(Deferred.await(deferred), Either.right)
|
|
971
948
|
)))
|
|
972
949
|
yield* $(
|
|
973
|
-
Deferred.succeed
|
|
950
|
+
Deferred.succeed(latch, void 0),
|
|
974
951
|
Effect.zipRight(
|
|
975
952
|
pipe(
|
|
976
953
|
Effect.uninterruptibleMask((restore) =>
|
|
@@ -1000,15 +977,7 @@ export const mapOutEffectPar = dual<
|
|
|
1000
977
|
return queue
|
|
1001
978
|
}),
|
|
1002
979
|
Effect.map((queue) => {
|
|
1003
|
-
const consumer: Channel.Channel<
|
|
1004
|
-
Env1,
|
|
1005
|
-
unknown,
|
|
1006
|
-
unknown,
|
|
1007
|
-
unknown,
|
|
1008
|
-
OutErr | OutErr1,
|
|
1009
|
-
OutElem1,
|
|
1010
|
-
OutDone
|
|
1011
|
-
> = unwrap(
|
|
980
|
+
const consumer: Channel.Channel<OutElem1, unknown, OutErr | OutErr1, unknown, OutDone, unknown, Env1> = unwrap(
|
|
1012
981
|
Effect.matchCause(Effect.flatten(Queue.take(queue)), {
|
|
1013
982
|
onFailure: core.failCause,
|
|
1014
983
|
onSuccess: Either.match({
|
|
@@ -1031,104 +1000,104 @@ export const mergeAll = (
|
|
|
1031
1000
|
}
|
|
1032
1001
|
) => {
|
|
1033
1002
|
return <
|
|
1034
|
-
|
|
1035
|
-
Env1,
|
|
1036
|
-
InErr,
|
|
1037
|
-
InErr1,
|
|
1038
|
-
InElem,
|
|
1003
|
+
OutElem,
|
|
1039
1004
|
InElem1,
|
|
1040
|
-
|
|
1005
|
+
OutErr1,
|
|
1006
|
+
InErr1,
|
|
1041
1007
|
InDone1,
|
|
1008
|
+
Env1,
|
|
1009
|
+
InElem,
|
|
1042
1010
|
OutErr,
|
|
1043
|
-
|
|
1044
|
-
|
|
1011
|
+
InErr,
|
|
1012
|
+
InDone,
|
|
1013
|
+
Env
|
|
1045
1014
|
>(
|
|
1046
1015
|
channels: Channel.Channel<
|
|
1047
|
-
|
|
1048
|
-
InErr,
|
|
1016
|
+
Channel.Channel<OutElem, InElem1, OutErr1, InErr1, unknown, InDone1, Env1>,
|
|
1049
1017
|
InElem,
|
|
1050
|
-
InDone,
|
|
1051
1018
|
OutErr,
|
|
1052
|
-
|
|
1053
|
-
unknown
|
|
1019
|
+
InErr,
|
|
1020
|
+
unknown,
|
|
1021
|
+
InDone,
|
|
1022
|
+
Env
|
|
1054
1023
|
>
|
|
1055
1024
|
): Channel.Channel<
|
|
1056
|
-
|
|
1057
|
-
InErr & InErr1,
|
|
1025
|
+
OutElem,
|
|
1058
1026
|
InElem & InElem1,
|
|
1059
|
-
InDone & InDone1,
|
|
1060
1027
|
OutErr | OutErr1,
|
|
1061
|
-
|
|
1062
|
-
unknown
|
|
1028
|
+
InErr & InErr1,
|
|
1029
|
+
unknown,
|
|
1030
|
+
InDone & InDone1,
|
|
1031
|
+
Env | Env1
|
|
1063
1032
|
> => mergeAllWith(options)(channels, constVoid)
|
|
1064
1033
|
}
|
|
1065
1034
|
|
|
1066
1035
|
/** @internal */
|
|
1067
1036
|
export const mergeAllUnbounded = <
|
|
1068
|
-
|
|
1069
|
-
Env1,
|
|
1070
|
-
InErr,
|
|
1071
|
-
InErr1,
|
|
1072
|
-
InElem,
|
|
1037
|
+
OutElem,
|
|
1073
1038
|
InElem1,
|
|
1074
|
-
|
|
1039
|
+
OutErr1,
|
|
1040
|
+
InErr1,
|
|
1075
1041
|
InDone1,
|
|
1042
|
+
Env1,
|
|
1043
|
+
InElem,
|
|
1076
1044
|
OutErr,
|
|
1077
|
-
|
|
1078
|
-
|
|
1045
|
+
InErr,
|
|
1046
|
+
InDone,
|
|
1047
|
+
Env
|
|
1079
1048
|
>(
|
|
1080
1049
|
channels: Channel.Channel<
|
|
1081
|
-
|
|
1082
|
-
InErr,
|
|
1050
|
+
Channel.Channel<OutElem, InElem1, OutErr1, InErr1, unknown, InDone1, Env1>,
|
|
1083
1051
|
InElem,
|
|
1084
|
-
InDone,
|
|
1085
1052
|
OutErr,
|
|
1086
|
-
|
|
1087
|
-
unknown
|
|
1053
|
+
InErr,
|
|
1054
|
+
unknown,
|
|
1055
|
+
InDone,
|
|
1056
|
+
Env
|
|
1088
1057
|
>
|
|
1089
1058
|
): Channel.Channel<
|
|
1090
|
-
|
|
1091
|
-
InErr & InErr1,
|
|
1059
|
+
OutElem,
|
|
1092
1060
|
InElem & InElem1,
|
|
1093
|
-
InDone & InDone1,
|
|
1094
1061
|
OutErr | OutErr1,
|
|
1095
|
-
|
|
1096
|
-
unknown
|
|
1062
|
+
InErr & InErr1,
|
|
1063
|
+
unknown,
|
|
1064
|
+
InDone & InDone1,
|
|
1065
|
+
Env | Env1
|
|
1097
1066
|
> => mergeAllWith({ concurrency: "unbounded" })(channels, constVoid)
|
|
1098
1067
|
|
|
1099
1068
|
/** @internal */
|
|
1100
1069
|
export const mergeAllUnboundedWith = <
|
|
1101
|
-
|
|
1102
|
-
Env1,
|
|
1103
|
-
InErr,
|
|
1104
|
-
InErr1,
|
|
1105
|
-
InElem,
|
|
1070
|
+
OutElem,
|
|
1106
1071
|
InElem1,
|
|
1107
|
-
|
|
1072
|
+
OutErr1,
|
|
1073
|
+
InErr1,
|
|
1074
|
+
OutDone,
|
|
1108
1075
|
InDone1,
|
|
1076
|
+
Env1,
|
|
1077
|
+
InElem,
|
|
1109
1078
|
OutErr,
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1079
|
+
InErr,
|
|
1080
|
+
InDone,
|
|
1081
|
+
Env
|
|
1113
1082
|
>(
|
|
1114
1083
|
channels: Channel.Channel<
|
|
1115
|
-
|
|
1116
|
-
InErr,
|
|
1084
|
+
Channel.Channel<OutElem, InElem1, OutErr1, InErr1, OutDone, InDone1, Env1>,
|
|
1117
1085
|
InElem,
|
|
1118
|
-
InDone,
|
|
1119
1086
|
OutErr,
|
|
1120
|
-
|
|
1121
|
-
OutDone
|
|
1087
|
+
InErr,
|
|
1088
|
+
OutDone,
|
|
1089
|
+
InDone,
|
|
1090
|
+
Env
|
|
1122
1091
|
>,
|
|
1123
1092
|
f: (o1: OutDone, o2: OutDone) => OutDone
|
|
1124
1093
|
): Channel.Channel<
|
|
1125
|
-
|
|
1126
|
-
InErr & InErr1,
|
|
1094
|
+
OutElem,
|
|
1127
1095
|
InElem & InElem1,
|
|
1128
|
-
InDone & InDone1,
|
|
1129
1096
|
OutErr | OutErr1,
|
|
1130
|
-
|
|
1131
|
-
OutDone
|
|
1097
|
+
InErr & InErr1,
|
|
1098
|
+
OutDone,
|
|
1099
|
+
InDone & InDone1,
|
|
1100
|
+
Env | Env1
|
|
1132
1101
|
> => mergeAllWith({ concurrency: "unbounded" })(channels, f)
|
|
1133
1102
|
|
|
1134
1103
|
/** @internal */
|
|
@@ -1143,38 +1112,25 @@ export const mergeAllWith = (
|
|
|
1143
1112
|
readonly mergeStrategy?: MergeStrategy.MergeStrategy | undefined
|
|
1144
1113
|
}
|
|
1145
1114
|
) =>
|
|
1146
|
-
<
|
|
1147
|
-
Env,
|
|
1148
|
-
Env1,
|
|
1149
|
-
InErr,
|
|
1150
|
-
InErr1,
|
|
1151
|
-
InElem,
|
|
1152
|
-
InElem1,
|
|
1153
|
-
InDone,
|
|
1154
|
-
InDone1,
|
|
1155
|
-
OutErr,
|
|
1156
|
-
OutErr1,
|
|
1157
|
-
OutElem,
|
|
1158
|
-
OutDone
|
|
1159
|
-
>(
|
|
1115
|
+
<OutElem, InElem1, OutErr1, InErr1, OutDone, InDone1, Env1, InElem, OutErr, InErr, InDone, Env>(
|
|
1160
1116
|
channels: Channel.Channel<
|
|
1161
|
-
|
|
1162
|
-
InErr,
|
|
1117
|
+
Channel.Channel<OutElem, InElem1, OutErr1, InErr1, OutDone, InDone1, Env1>,
|
|
1163
1118
|
InElem,
|
|
1164
|
-
InDone,
|
|
1165
1119
|
OutErr,
|
|
1166
|
-
|
|
1167
|
-
OutDone
|
|
1120
|
+
InErr,
|
|
1121
|
+
OutDone,
|
|
1122
|
+
InDone,
|
|
1123
|
+
Env
|
|
1168
1124
|
>,
|
|
1169
1125
|
f: (o1: OutDone, o2: OutDone) => OutDone
|
|
1170
1126
|
): Channel.Channel<
|
|
1171
|
-
|
|
1172
|
-
InErr & InErr1,
|
|
1127
|
+
OutElem,
|
|
1173
1128
|
InElem & InElem1,
|
|
1174
|
-
InDone & InDone1,
|
|
1175
1129
|
OutErr | OutErr1,
|
|
1176
|
-
|
|
1177
|
-
OutDone
|
|
1130
|
+
InErr & InErr1,
|
|
1131
|
+
OutDone,
|
|
1132
|
+
InDone & InDone1,
|
|
1133
|
+
Env | Env1
|
|
1178
1134
|
> =>
|
|
1179
1135
|
pipe(
|
|
1180
1136
|
Effect.gen(function*($) {
|
|
@@ -1187,23 +1143,23 @@ export const mergeAllWith = (
|
|
|
1187
1143
|
const queueReader = fromInput(input)
|
|
1188
1144
|
const queue = yield* $(
|
|
1189
1145
|
Effect.acquireRelease(
|
|
1190
|
-
Queue.bounded<Effect.Effect<
|
|
1146
|
+
Queue.bounded<Effect.Effect<Either.Either<OutDone, OutElem>, OutErr | OutErr1, Env>>(bufferSize),
|
|
1191
1147
|
(queue) => Queue.shutdown(queue)
|
|
1192
1148
|
)
|
|
1193
1149
|
)
|
|
1194
1150
|
const cancelers = yield* $(
|
|
1195
1151
|
Effect.acquireRelease(
|
|
1196
|
-
Queue.unbounded<Deferred.Deferred<
|
|
1152
|
+
Queue.unbounded<Deferred.Deferred<void>>(),
|
|
1197
1153
|
(queue) => Queue.shutdown(queue)
|
|
1198
1154
|
)
|
|
1199
1155
|
)
|
|
1200
1156
|
const lastDone = yield* $(Ref.make<Option.Option<OutDone>>(Option.none()))
|
|
1201
|
-
const errorSignal = yield* $(Deferred.make<
|
|
1157
|
+
const errorSignal = yield* $(Deferred.make<void>())
|
|
1202
1158
|
const withPermits = (yield* $(Effect.makeSemaphore(concurrencyN)))
|
|
1203
1159
|
.withPermits
|
|
1204
1160
|
const pull = yield* $(toPull(channels))
|
|
1205
1161
|
const evaluatePull = (
|
|
1206
|
-
pull: Effect.Effect<
|
|
1162
|
+
pull: Effect.Effect<Either.Either<OutDone, OutElem>, OutErr | OutErr1, Env | Env1>
|
|
1207
1163
|
) =>
|
|
1208
1164
|
pipe(
|
|
1209
1165
|
Effect.flatMap(
|
|
@@ -1269,8 +1225,8 @@ export const mergeAllWith = (
|
|
|
1269
1225
|
_mergeStrategy.match(mergeStrategy, {
|
|
1270
1226
|
onBackPressure: () =>
|
|
1271
1227
|
Effect.gen(function*($) {
|
|
1272
|
-
const latch = yield* $(Deferred.make<
|
|
1273
|
-
const raceEffects: Effect.Effect<
|
|
1228
|
+
const latch = yield* $(Deferred.make<void>())
|
|
1229
|
+
const raceEffects: Effect.Effect<void, OutErr | OutErr1, Env | Env1> = pipe(
|
|
1274
1230
|
queueReader,
|
|
1275
1231
|
core.pipeTo(channel),
|
|
1276
1232
|
toPull,
|
|
@@ -1283,7 +1239,7 @@ export const mergeAllWith = (
|
|
|
1283
1239
|
Effect.scoped
|
|
1284
1240
|
)
|
|
1285
1241
|
yield* $(
|
|
1286
|
-
Deferred.succeed
|
|
1242
|
+
Deferred.succeed(latch, void 0),
|
|
1287
1243
|
Effect.zipRight(raceEffects),
|
|
1288
1244
|
withPermits(1),
|
|
1289
1245
|
Effect.forkScoped
|
|
@@ -1294,16 +1250,16 @@ export const mergeAllWith = (
|
|
|
1294
1250
|
}),
|
|
1295
1251
|
onBufferSliding: () =>
|
|
1296
1252
|
Effect.gen(function*($) {
|
|
1297
|
-
const canceler = yield* $(Deferred.make<
|
|
1298
|
-
const latch = yield* $(Deferred.make<
|
|
1253
|
+
const canceler = yield* $(Deferred.make<void>())
|
|
1254
|
+
const latch = yield* $(Deferred.make<void>())
|
|
1299
1255
|
const size = yield* $(Queue.size(cancelers))
|
|
1300
1256
|
yield* $(
|
|
1301
1257
|
Queue.take(cancelers),
|
|
1302
|
-
Effect.flatMap((_) => Deferred.succeed
|
|
1258
|
+
Effect.flatMap((_) => Deferred.succeed(_, void 0)),
|
|
1303
1259
|
Effect.when(() => size >= concurrencyN)
|
|
1304
1260
|
)
|
|
1305
1261
|
yield* $(Queue.offer(cancelers, canceler))
|
|
1306
|
-
const raceEffects: Effect.Effect<
|
|
1262
|
+
const raceEffects: Effect.Effect<void, OutErr | OutErr1, Env | Env1> = pipe(
|
|
1307
1263
|
queueReader,
|
|
1308
1264
|
core.pipeTo(channel),
|
|
1309
1265
|
toPull,
|
|
@@ -1317,7 +1273,7 @@ export const mergeAllWith = (
|
|
|
1317
1273
|
Effect.scoped
|
|
1318
1274
|
)
|
|
1319
1275
|
yield* $(
|
|
1320
|
-
Deferred.succeed
|
|
1276
|
+
Deferred.succeed(latch, void 0),
|
|
1321
1277
|
Effect.zipRight(raceEffects),
|
|
1322
1278
|
withPermits(1),
|
|
1323
1279
|
Effect.forkScoped
|
|
@@ -1335,15 +1291,7 @@ export const mergeAllWith = (
|
|
|
1335
1291
|
return [queue, input] as const
|
|
1336
1292
|
}),
|
|
1337
1293
|
Effect.map(([queue, input]) => {
|
|
1338
|
-
const consumer: Channel.Channel<
|
|
1339
|
-
Env | Env1,
|
|
1340
|
-
unknown,
|
|
1341
|
-
unknown,
|
|
1342
|
-
unknown,
|
|
1343
|
-
OutErr | OutErr1,
|
|
1344
|
-
OutElem,
|
|
1345
|
-
OutDone
|
|
1346
|
-
> = pipe(
|
|
1294
|
+
const consumer: Channel.Channel<OutElem, unknown, OutErr | OutErr1, unknown, OutDone, unknown, Env | Env1> = pipe(
|
|
1347
1295
|
Queue.take(queue),
|
|
1348
1296
|
Effect.flatten,
|
|
1349
1297
|
Effect.matchCause({
|
|
@@ -1362,121 +1310,121 @@ export const mergeAllWith = (
|
|
|
1362
1310
|
|
|
1363
1311
|
/** @internal */
|
|
1364
1312
|
export const mergeMap = dual<
|
|
1365
|
-
<OutElem,
|
|
1366
|
-
f: (outElem: OutElem) => Channel.Channel<
|
|
1313
|
+
<OutElem, OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1>(
|
|
1314
|
+
f: (outElem: OutElem) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1>,
|
|
1367
1315
|
options: {
|
|
1368
1316
|
readonly concurrency: number | "unbounded"
|
|
1369
1317
|
readonly bufferSize?: number | undefined
|
|
1370
1318
|
readonly mergeStrategy?: MergeStrategy.MergeStrategy | undefined
|
|
1371
1319
|
}
|
|
1372
|
-
) => <
|
|
1373
|
-
self: Channel.Channel<
|
|
1320
|
+
) => <InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
1321
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
1374
1322
|
) => Channel.Channel<
|
|
1375
|
-
|
|
1376
|
-
InErr & InErr1,
|
|
1323
|
+
OutElem1,
|
|
1377
1324
|
InElem & InElem1,
|
|
1378
|
-
InDone & InDone1,
|
|
1379
1325
|
OutErr1 | OutErr,
|
|
1380
|
-
|
|
1381
|
-
unknown
|
|
1326
|
+
InErr & InErr1,
|
|
1327
|
+
unknown,
|
|
1328
|
+
InDone & InDone1,
|
|
1329
|
+
Env1 | Env
|
|
1382
1330
|
>,
|
|
1383
|
-
<
|
|
1384
|
-
self: Channel.Channel<
|
|
1385
|
-
f: (outElem: OutElem) => Channel.Channel<
|
|
1331
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1>(
|
|
1332
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1333
|
+
f: (outElem: OutElem) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1>,
|
|
1386
1334
|
options: {
|
|
1387
1335
|
readonly concurrency: number | "unbounded"
|
|
1388
1336
|
readonly bufferSize?: number | undefined
|
|
1389
1337
|
readonly mergeStrategy?: MergeStrategy.MergeStrategy | undefined
|
|
1390
1338
|
}
|
|
1391
1339
|
) => Channel.Channel<
|
|
1392
|
-
|
|
1393
|
-
InErr & InErr1,
|
|
1340
|
+
OutElem1,
|
|
1394
1341
|
InElem & InElem1,
|
|
1395
|
-
InDone & InDone1,
|
|
1396
1342
|
OutErr1 | OutErr,
|
|
1397
|
-
|
|
1398
|
-
unknown
|
|
1343
|
+
InErr & InErr1,
|
|
1344
|
+
unknown,
|
|
1345
|
+
InDone & InDone1,
|
|
1346
|
+
Env1 | Env
|
|
1399
1347
|
>
|
|
1400
|
-
>(3, <
|
|
1401
|
-
self: Channel.Channel<
|
|
1402
|
-
f: (outElem: OutElem) => Channel.Channel<
|
|
1348
|
+
>(3, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1>(
|
|
1349
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1350
|
+
f: (outElem: OutElem) => Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1>,
|
|
1403
1351
|
options: {
|
|
1404
1352
|
readonly concurrency: number | "unbounded"
|
|
1405
1353
|
readonly bufferSize?: number | undefined
|
|
1406
1354
|
readonly mergeStrategy?: MergeStrategy.MergeStrategy | undefined
|
|
1407
1355
|
}
|
|
1408
1356
|
): Channel.Channel<
|
|
1409
|
-
|
|
1410
|
-
InErr & InErr1,
|
|
1357
|
+
OutElem1,
|
|
1411
1358
|
InElem & InElem1,
|
|
1412
|
-
InDone & InDone1,
|
|
1413
1359
|
OutErr | OutErr1,
|
|
1414
|
-
|
|
1415
|
-
unknown
|
|
1360
|
+
InErr & InErr1,
|
|
1361
|
+
unknown,
|
|
1362
|
+
InDone & InDone1,
|
|
1363
|
+
Env | Env1
|
|
1416
1364
|
> => mergeAll(options)(mapOut(self, f)))
|
|
1417
1365
|
|
|
1418
1366
|
/** @internal */
|
|
1419
1367
|
export const mergeOut = dual<
|
|
1420
1368
|
(
|
|
1421
1369
|
n: number
|
|
1422
|
-
) => <
|
|
1370
|
+
) => <OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
1423
1371
|
self: Channel.Channel<
|
|
1424
|
-
|
|
1425
|
-
InErr,
|
|
1372
|
+
Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1>,
|
|
1426
1373
|
InElem,
|
|
1427
|
-
InDone,
|
|
1428
1374
|
OutErr,
|
|
1429
|
-
|
|
1430
|
-
OutDone
|
|
1375
|
+
InErr,
|
|
1376
|
+
OutDone,
|
|
1377
|
+
InDone,
|
|
1378
|
+
Env
|
|
1431
1379
|
>
|
|
1432
1380
|
) => Channel.Channel<
|
|
1433
|
-
|
|
1434
|
-
InErr & InErr1,
|
|
1381
|
+
OutElem1,
|
|
1435
1382
|
InElem & InElem1,
|
|
1436
|
-
InDone & InDone1,
|
|
1437
1383
|
OutErr | OutErr1,
|
|
1438
|
-
|
|
1439
|
-
unknown
|
|
1384
|
+
InErr & InErr1,
|
|
1385
|
+
unknown,
|
|
1386
|
+
InDone & InDone1,
|
|
1387
|
+
Env | Env1
|
|
1440
1388
|
>,
|
|
1441
|
-
<
|
|
1389
|
+
<OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
1442
1390
|
self: Channel.Channel<
|
|
1443
|
-
|
|
1444
|
-
InErr,
|
|
1391
|
+
Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1>,
|
|
1445
1392
|
InElem,
|
|
1446
|
-
InDone,
|
|
1447
1393
|
OutErr,
|
|
1448
|
-
|
|
1449
|
-
OutDone
|
|
1394
|
+
InErr,
|
|
1395
|
+
OutDone,
|
|
1396
|
+
InDone,
|
|
1397
|
+
Env
|
|
1450
1398
|
>,
|
|
1451
1399
|
n: number
|
|
1452
1400
|
) => Channel.Channel<
|
|
1453
|
-
|
|
1454
|
-
InErr & InErr1,
|
|
1401
|
+
OutElem1,
|
|
1455
1402
|
InElem & InElem1,
|
|
1456
|
-
InDone & InDone1,
|
|
1457
1403
|
OutErr | OutErr1,
|
|
1458
|
-
|
|
1459
|
-
unknown
|
|
1404
|
+
InErr & InErr1,
|
|
1405
|
+
unknown,
|
|
1406
|
+
InDone & InDone1,
|
|
1407
|
+
Env | Env1
|
|
1460
1408
|
>
|
|
1461
|
-
>(2, <
|
|
1409
|
+
>(2, <OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
1462
1410
|
self: Channel.Channel<
|
|
1463
|
-
|
|
1464
|
-
InErr,
|
|
1411
|
+
Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, Z, InDone1, Env1>,
|
|
1465
1412
|
InElem,
|
|
1466
|
-
InDone,
|
|
1467
1413
|
OutErr,
|
|
1468
|
-
|
|
1469
|
-
OutDone
|
|
1414
|
+
InErr,
|
|
1415
|
+
OutDone,
|
|
1416
|
+
InDone,
|
|
1417
|
+
Env
|
|
1470
1418
|
>,
|
|
1471
1419
|
n: number
|
|
1472
1420
|
): Channel.Channel<
|
|
1473
|
-
|
|
1474
|
-
InErr & InErr1,
|
|
1421
|
+
OutElem1,
|
|
1475
1422
|
InElem & InElem1,
|
|
1476
|
-
InDone & InDone1,
|
|
1477
1423
|
OutErr | OutErr1,
|
|
1478
|
-
|
|
1479
|
-
unknown
|
|
1424
|
+
InErr & InErr1,
|
|
1425
|
+
unknown,
|
|
1426
|
+
InDone & InDone1,
|
|
1427
|
+
Env | Env1
|
|
1480
1428
|
> => mergeAll({ concurrency: n })(mapOut(self, identity)))
|
|
1481
1429
|
|
|
1482
1430
|
/** @internal */
|
|
@@ -1484,168 +1432,168 @@ export const mergeOutWith = dual<
|
|
|
1484
1432
|
<OutDone1>(
|
|
1485
1433
|
n: number,
|
|
1486
1434
|
f: (o1: OutDone1, o2: OutDone1) => OutDone1
|
|
1487
|
-
) => <
|
|
1435
|
+
) => <OutElem1, InElem1, OutErr1, InErr1, InDone1, Env1, InElem, OutErr, InErr, InDone, Env>(
|
|
1488
1436
|
self: Channel.Channel<
|
|
1489
|
-
|
|
1490
|
-
InErr,
|
|
1437
|
+
Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
1491
1438
|
InElem,
|
|
1492
|
-
InDone,
|
|
1493
1439
|
OutErr,
|
|
1494
|
-
|
|
1495
|
-
OutDone1
|
|
1440
|
+
InErr,
|
|
1441
|
+
OutDone1,
|
|
1442
|
+
InDone,
|
|
1443
|
+
Env
|
|
1496
1444
|
>
|
|
1497
1445
|
) => Channel.Channel<
|
|
1498
|
-
|
|
1499
|
-
InErr & InErr1,
|
|
1446
|
+
OutElem1,
|
|
1500
1447
|
InElem & InElem1,
|
|
1501
|
-
InDone & InDone1,
|
|
1502
1448
|
OutErr | OutErr1,
|
|
1503
|
-
|
|
1504
|
-
OutDone1
|
|
1449
|
+
InErr & InErr1,
|
|
1450
|
+
OutDone1,
|
|
1451
|
+
InDone & InDone1,
|
|
1452
|
+
Env | Env1
|
|
1505
1453
|
>,
|
|
1506
|
-
<
|
|
1454
|
+
<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1, InElem, OutErr, InErr, InDone, Env>(
|
|
1507
1455
|
self: Channel.Channel<
|
|
1508
|
-
|
|
1509
|
-
InErr,
|
|
1456
|
+
Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
1510
1457
|
InElem,
|
|
1511
|
-
InDone,
|
|
1512
1458
|
OutErr,
|
|
1513
|
-
|
|
1514
|
-
OutDone1
|
|
1459
|
+
InErr,
|
|
1460
|
+
OutDone1,
|
|
1461
|
+
InDone,
|
|
1462
|
+
Env
|
|
1515
1463
|
>,
|
|
1516
1464
|
n: number,
|
|
1517
1465
|
f: (o1: OutDone1, o2: OutDone1) => OutDone1
|
|
1518
1466
|
) => Channel.Channel<
|
|
1519
|
-
|
|
1520
|
-
InErr & InErr1,
|
|
1467
|
+
OutElem1,
|
|
1521
1468
|
InElem & InElem1,
|
|
1522
|
-
InDone & InDone1,
|
|
1523
1469
|
OutErr | OutErr1,
|
|
1524
|
-
|
|
1525
|
-
OutDone1
|
|
1470
|
+
InErr & InErr1,
|
|
1471
|
+
OutDone1,
|
|
1472
|
+
InDone & InDone1,
|
|
1473
|
+
Env | Env1
|
|
1526
1474
|
>
|
|
1527
|
-
>(3, <
|
|
1475
|
+
>(3, <OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1, InElem, OutErr, InErr, InDone, Env>(
|
|
1528
1476
|
self: Channel.Channel<
|
|
1529
|
-
|
|
1530
|
-
InErr,
|
|
1477
|
+
Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
1531
1478
|
InElem,
|
|
1532
|
-
InDone,
|
|
1533
1479
|
OutErr,
|
|
1534
|
-
|
|
1535
|
-
OutDone1
|
|
1480
|
+
InErr,
|
|
1481
|
+
OutDone1,
|
|
1482
|
+
InDone,
|
|
1483
|
+
Env
|
|
1536
1484
|
>,
|
|
1537
1485
|
n: number,
|
|
1538
1486
|
f: (o1: OutDone1, o2: OutDone1) => OutDone1
|
|
1539
1487
|
): Channel.Channel<
|
|
1540
|
-
|
|
1541
|
-
InErr & InErr1,
|
|
1488
|
+
OutElem1,
|
|
1542
1489
|
InElem & InElem1,
|
|
1543
|
-
InDone & InDone1,
|
|
1544
1490
|
OutErr | OutErr1,
|
|
1545
|
-
|
|
1546
|
-
OutDone1
|
|
1491
|
+
InErr & InErr1,
|
|
1492
|
+
OutDone1,
|
|
1493
|
+
InDone & InDone1,
|
|
1494
|
+
Env | Env1
|
|
1547
1495
|
> => mergeAllWith({ concurrency: n })(mapOut(self, identity), f))
|
|
1548
1496
|
|
|
1549
1497
|
/** @internal */
|
|
1550
1498
|
export const mergeWith = dual<
|
|
1551
|
-
<
|
|
1499
|
+
<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1, OutDone, OutErr, OutErr2, OutDone2, OutErr3, OutDone3>(
|
|
1552
1500
|
options: {
|
|
1553
|
-
readonly other: Channel.Channel<
|
|
1501
|
+
readonly other: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
|
|
1554
1502
|
readonly onSelfDone: (
|
|
1555
|
-
exit: Exit.Exit<
|
|
1503
|
+
exit: Exit.Exit<OutDone, OutErr>
|
|
1556
1504
|
) => MergeDecision.MergeDecision<Env1, OutErr1, OutDone1, OutErr2, OutDone2>
|
|
1557
1505
|
readonly onOtherDone: (
|
|
1558
|
-
ex: Exit.Exit<
|
|
1506
|
+
ex: Exit.Exit<OutDone1, OutErr1>
|
|
1559
1507
|
) => MergeDecision.MergeDecision<Env1, OutErr, OutDone, OutErr3, OutDone3>
|
|
1560
1508
|
}
|
|
1561
1509
|
) => <Env, InErr, InElem, InDone, OutElem>(
|
|
1562
|
-
self: Channel.Channel<
|
|
1510
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
1563
1511
|
) => Channel.Channel<
|
|
1564
|
-
|
|
1565
|
-
InErr & InErr1,
|
|
1512
|
+
OutElem1 | OutElem,
|
|
1566
1513
|
InElem & InElem1,
|
|
1567
|
-
InDone & InDone1,
|
|
1568
1514
|
OutErr2 | OutErr3,
|
|
1569
|
-
|
|
1570
|
-
OutDone2 | OutDone3
|
|
1515
|
+
InErr & InErr1,
|
|
1516
|
+
OutDone2 | OutDone3,
|
|
1517
|
+
InDone & InDone1,
|
|
1518
|
+
Env1 | Env
|
|
1571
1519
|
>,
|
|
1572
1520
|
<
|
|
1573
|
-
|
|
1574
|
-
InErr,
|
|
1521
|
+
OutElem,
|
|
1575
1522
|
InElem,
|
|
1523
|
+
OutErr,
|
|
1524
|
+
InErr,
|
|
1525
|
+
OutDone,
|
|
1576
1526
|
InDone,
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
InErr1,
|
|
1527
|
+
Env,
|
|
1528
|
+
OutElem1,
|
|
1580
1529
|
InElem1,
|
|
1581
|
-
InDone1,
|
|
1582
|
-
OutErr,
|
|
1583
1530
|
OutErr1,
|
|
1584
|
-
|
|
1585
|
-
OutErr3,
|
|
1586
|
-
OutElem1,
|
|
1587
|
-
OutDone,
|
|
1531
|
+
InErr1,
|
|
1588
1532
|
OutDone1,
|
|
1533
|
+
InDone1,
|
|
1534
|
+
Env1,
|
|
1535
|
+
OutErr2,
|
|
1589
1536
|
OutDone2,
|
|
1537
|
+
OutErr3,
|
|
1590
1538
|
OutDone3
|
|
1591
1539
|
>(
|
|
1592
|
-
self: Channel.Channel<
|
|
1540
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1593
1541
|
options: {
|
|
1594
|
-
readonly other: Channel.Channel<
|
|
1542
|
+
readonly other: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
|
|
1595
1543
|
readonly onSelfDone: (
|
|
1596
|
-
exit: Exit.Exit<
|
|
1544
|
+
exit: Exit.Exit<OutDone, OutErr>
|
|
1597
1545
|
) => MergeDecision.MergeDecision<Env1, OutErr1, OutDone1, OutErr2, OutDone2>
|
|
1598
1546
|
readonly onOtherDone: (
|
|
1599
|
-
ex: Exit.Exit<
|
|
1547
|
+
ex: Exit.Exit<OutDone1, OutErr1>
|
|
1600
1548
|
) => MergeDecision.MergeDecision<Env1, OutErr, OutDone, OutErr3, OutDone3>
|
|
1601
1549
|
}
|
|
1602
1550
|
) => Channel.Channel<
|
|
1603
|
-
|
|
1604
|
-
InErr & InErr1,
|
|
1551
|
+
OutElem1 | OutElem,
|
|
1605
1552
|
InElem & InElem1,
|
|
1606
|
-
InDone & InDone1,
|
|
1607
1553
|
OutErr2 | OutErr3,
|
|
1608
|
-
|
|
1609
|
-
OutDone2 | OutDone3
|
|
1554
|
+
InErr & InErr1,
|
|
1555
|
+
OutDone2 | OutDone3,
|
|
1556
|
+
InDone & InDone1,
|
|
1557
|
+
Env1 | Env
|
|
1610
1558
|
>
|
|
1611
1559
|
>(2, <
|
|
1612
|
-
|
|
1613
|
-
InErr,
|
|
1560
|
+
OutElem,
|
|
1614
1561
|
InElem,
|
|
1562
|
+
OutErr,
|
|
1563
|
+
InErr,
|
|
1564
|
+
OutDone,
|
|
1615
1565
|
InDone,
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
InErr1,
|
|
1566
|
+
Env,
|
|
1567
|
+
OutElem1,
|
|
1619
1568
|
InElem1,
|
|
1620
|
-
InDone1,
|
|
1621
|
-
OutErr,
|
|
1622
1569
|
OutErr1,
|
|
1623
|
-
|
|
1624
|
-
OutErr3,
|
|
1625
|
-
OutElem1,
|
|
1626
|
-
OutDone,
|
|
1570
|
+
InErr1,
|
|
1627
1571
|
OutDone1,
|
|
1572
|
+
InDone1,
|
|
1573
|
+
Env1,
|
|
1574
|
+
OutErr2,
|
|
1628
1575
|
OutDone2,
|
|
1576
|
+
OutErr3,
|
|
1629
1577
|
OutDone3
|
|
1630
1578
|
>(
|
|
1631
|
-
self: Channel.Channel<
|
|
1579
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1632
1580
|
options: {
|
|
1633
|
-
readonly other: Channel.Channel<
|
|
1581
|
+
readonly other: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>
|
|
1634
1582
|
readonly onSelfDone: (
|
|
1635
|
-
exit: Exit.Exit<
|
|
1583
|
+
exit: Exit.Exit<OutDone, OutErr>
|
|
1636
1584
|
) => MergeDecision.MergeDecision<Env1, OutErr1, OutDone1, OutErr2, OutDone2>
|
|
1637
1585
|
readonly onOtherDone: (
|
|
1638
|
-
ex: Exit.Exit<
|
|
1586
|
+
ex: Exit.Exit<OutDone1, OutErr1>
|
|
1639
1587
|
) => MergeDecision.MergeDecision<Env1, OutErr, OutDone, OutErr3, OutDone3>
|
|
1640
1588
|
}
|
|
1641
1589
|
): Channel.Channel<
|
|
1642
|
-
|
|
1643
|
-
InErr & InErr1,
|
|
1590
|
+
OutElem | OutElem1,
|
|
1644
1591
|
InElem & InElem1,
|
|
1645
|
-
InDone & InDone1,
|
|
1646
1592
|
OutErr2 | OutErr3,
|
|
1647
|
-
|
|
1648
|
-
OutDone2 | OutDone3
|
|
1593
|
+
InErr & InErr1,
|
|
1594
|
+
OutDone2 | OutDone3,
|
|
1595
|
+
InDone & InDone1,
|
|
1596
|
+
Env1 | Env
|
|
1649
1597
|
> =>
|
|
1650
1598
|
unwrapScoped(
|
|
1651
1599
|
Effect.flatMap(
|
|
@@ -1674,13 +1622,13 @@ export const mergeWith = dual<
|
|
|
1674
1622
|
>
|
|
1675
1623
|
|
|
1676
1624
|
const handleSide = <Err, Done, Err2, Done2>(
|
|
1677
|
-
exit: Exit.Exit<
|
|
1678
|
-
fiber: Fiber.Fiber<
|
|
1679
|
-
pull: Effect.Effect<
|
|
1625
|
+
exit: Exit.Exit<Either.Either<Done, OutElem | OutElem1>, Err>,
|
|
1626
|
+
fiber: Fiber.Fiber<Either.Either<Done2, OutElem | OutElem1>, Err2>,
|
|
1627
|
+
pull: Effect.Effect<Either.Either<Done, OutElem | OutElem1>, Err, Env | Env1>
|
|
1680
1628
|
) =>
|
|
1681
1629
|
(
|
|
1682
1630
|
done: (
|
|
1683
|
-
ex: Exit.Exit<
|
|
1631
|
+
ex: Exit.Exit<Done, Err>
|
|
1684
1632
|
) => MergeDecision.MergeDecision<
|
|
1685
1633
|
Env | Env1,
|
|
1686
1634
|
Err2,
|
|
@@ -1689,26 +1637,26 @@ export const mergeWith = dual<
|
|
|
1689
1637
|
OutDone2 | OutDone3
|
|
1690
1638
|
>,
|
|
1691
1639
|
both: (
|
|
1692
|
-
f1: Fiber.Fiber<
|
|
1693
|
-
f2: Fiber.Fiber<
|
|
1640
|
+
f1: Fiber.Fiber<Either.Either<Done, OutElem | OutElem1>, Err>,
|
|
1641
|
+
f2: Fiber.Fiber<Either.Either<Done2, OutElem | OutElem1>, Err2>
|
|
1694
1642
|
) => State,
|
|
1695
1643
|
single: (
|
|
1696
1644
|
f: (
|
|
1697
|
-
ex: Exit.Exit<
|
|
1698
|
-
) => Effect.Effect<
|
|
1645
|
+
ex: Exit.Exit<Done2, Err2>
|
|
1646
|
+
) => Effect.Effect<OutDone2 | OutDone3, OutErr2 | OutErr3, Env | Env1>
|
|
1699
1647
|
) => State
|
|
1700
1648
|
): Effect.Effect<
|
|
1701
|
-
Env | Env1,
|
|
1702
|
-
never,
|
|
1703
1649
|
Channel.Channel<
|
|
1704
|
-
|
|
1650
|
+
OutElem | OutElem1,
|
|
1705
1651
|
unknown,
|
|
1652
|
+
OutErr2 | OutErr3,
|
|
1706
1653
|
unknown,
|
|
1654
|
+
OutDone2 | OutDone3,
|
|
1707
1655
|
unknown,
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1656
|
+
Env | Env1
|
|
1657
|
+
>,
|
|
1658
|
+
never,
|
|
1659
|
+
Env | Env1
|
|
1712
1660
|
> => {
|
|
1713
1661
|
const onDecision = (
|
|
1714
1662
|
decision: MergeDecision.MergeDecision<
|
|
@@ -1719,16 +1667,14 @@ export const mergeWith = dual<
|
|
|
1719
1667
|
OutDone2 | OutDone3
|
|
1720
1668
|
>
|
|
1721
1669
|
): Effect.Effect<
|
|
1722
|
-
never,
|
|
1723
|
-
never,
|
|
1724
1670
|
Channel.Channel<
|
|
1725
|
-
|
|
1671
|
+
OutElem | OutElem1,
|
|
1726
1672
|
unknown,
|
|
1673
|
+
OutErr2 | OutErr3,
|
|
1727
1674
|
unknown,
|
|
1675
|
+
OutDone2 | OutDone3,
|
|
1728
1676
|
unknown,
|
|
1729
|
-
|
|
1730
|
-
OutElem | OutElem1,
|
|
1731
|
-
OutDone2 | OutDone3
|
|
1677
|
+
Env | Env1
|
|
1732
1678
|
>
|
|
1733
1679
|
> => {
|
|
1734
1680
|
const op = decision as mergeDecision.Primitive
|
|
@@ -1773,13 +1719,13 @@ export const mergeWith = dual<
|
|
|
1773
1719
|
const go = (
|
|
1774
1720
|
state: State
|
|
1775
1721
|
): Channel.Channel<
|
|
1776
|
-
|
|
1722
|
+
OutElem | OutElem1,
|
|
1777
1723
|
unknown,
|
|
1724
|
+
OutErr2 | OutErr3,
|
|
1778
1725
|
unknown,
|
|
1726
|
+
OutDone2 | OutDone3,
|
|
1779
1727
|
unknown,
|
|
1780
|
-
|
|
1781
|
-
OutElem | OutElem1,
|
|
1782
|
-
OutDone2 | OutDone3
|
|
1728
|
+
Env | Env1
|
|
1783
1729
|
> => {
|
|
1784
1730
|
switch (state._tag) {
|
|
1785
1731
|
case MergeStateOpCodes.OP_BOTH_RUNNING: {
|
|
@@ -1801,7 +1747,7 @@ export const mergeWith = dual<
|
|
|
1801
1747
|
Fiber.interrupt(lf),
|
|
1802
1748
|
handleSide(rightExit, state.left, pullR)(
|
|
1803
1749
|
options.onOtherDone as (
|
|
1804
|
-
ex: Exit.Exit<InErr1 | OutErr1
|
|
1750
|
+
ex: Exit.Exit<OutDone1, InErr1 | OutErr1>
|
|
1805
1751
|
) => MergeDecision.MergeDecision<
|
|
1806
1752
|
Env1 | Env,
|
|
1807
1753
|
OutErr,
|
|
@@ -1883,7 +1829,7 @@ export const mergeWith = dual<
|
|
|
1883
1829
|
))
|
|
1884
1830
|
|
|
1885
1831
|
/** @internal */
|
|
1886
|
-
export const never: Channel.Channel<never, unknown,
|
|
1832
|
+
export const never: Channel.Channel<never, unknown, never, unknown, never, unknown> = core.fromEffect(
|
|
1887
1833
|
Effect.never
|
|
1888
1834
|
)
|
|
1889
1835
|
|
|
@@ -1891,99 +1837,99 @@ export const never: Channel.Channel<never, unknown, unknown, unknown, never, nev
|
|
|
1891
1837
|
export const orDie = dual<
|
|
1892
1838
|
<E>(
|
|
1893
1839
|
error: LazyArg<E>
|
|
1894
|
-
) => <
|
|
1895
|
-
self: Channel.Channel<
|
|
1896
|
-
) => Channel.Channel<
|
|
1897
|
-
<
|
|
1898
|
-
self: Channel.Channel<
|
|
1840
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
1841
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
1842
|
+
) => Channel.Channel<OutElem, InElem, never, InErr, OutDone, InDone, Env>,
|
|
1843
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, E>(
|
|
1844
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1899
1845
|
error: LazyArg<E>
|
|
1900
|
-
) => Channel.Channel<
|
|
1901
|
-
>(2, <
|
|
1902
|
-
self: Channel.Channel<
|
|
1846
|
+
) => Channel.Channel<OutElem, InElem, never, InErr, OutDone, InDone, Env>
|
|
1847
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, E>(
|
|
1848
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1903
1849
|
error: LazyArg<E>
|
|
1904
|
-
): Channel.Channel<
|
|
1850
|
+
): Channel.Channel<OutElem, InElem, never, InErr, OutDone, InDone, Env> => orDieWith(self, error))
|
|
1905
1851
|
|
|
1906
1852
|
/** @internal */
|
|
1907
1853
|
export const orDieWith = dual<
|
|
1908
1854
|
<OutErr>(
|
|
1909
1855
|
f: (e: OutErr) => unknown
|
|
1910
|
-
) => <
|
|
1911
|
-
self: Channel.Channel<
|
|
1912
|
-
) => Channel.Channel<
|
|
1913
|
-
<
|
|
1914
|
-
self: Channel.Channel<
|
|
1856
|
+
) => <OutElem, InElem, InErr, OutDone, InDone, Env>(
|
|
1857
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
1858
|
+
) => Channel.Channel<OutElem, InElem, never, InErr, OutDone, InDone, Env>,
|
|
1859
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
1860
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1915
1861
|
f: (e: OutErr) => unknown
|
|
1916
|
-
) => Channel.Channel<
|
|
1917
|
-
>(2, <
|
|
1918
|
-
self: Channel.Channel<
|
|
1862
|
+
) => Channel.Channel<OutElem, InElem, never, InErr, OutDone, InDone, Env>
|
|
1863
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
1864
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1919
1865
|
f: (e: OutErr) => unknown
|
|
1920
|
-
): Channel.Channel<
|
|
1866
|
+
): Channel.Channel<OutElem, InElem, never, InErr, OutDone, InDone, Env> =>
|
|
1921
1867
|
catchAll(self, (e) => {
|
|
1922
1868
|
throw f(e)
|
|
1923
|
-
}) as Channel.Channel<
|
|
1869
|
+
}) as Channel.Channel<OutElem, InElem, never, InErr, OutDone, InDone, Env>)
|
|
1924
1870
|
|
|
1925
1871
|
/** @internal */
|
|
1926
1872
|
export const orElse = dual<
|
|
1927
|
-
<
|
|
1928
|
-
that: LazyArg<Channel.Channel<
|
|
1929
|
-
) => <
|
|
1930
|
-
self: Channel.Channel<
|
|
1873
|
+
<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
1874
|
+
that: LazyArg<Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>>
|
|
1875
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
1876
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
1931
1877
|
) => Channel.Channel<
|
|
1932
|
-
|
|
1933
|
-
InErr & InErr1,
|
|
1878
|
+
OutElem1 | OutElem,
|
|
1934
1879
|
InElem & InElem1,
|
|
1935
|
-
InDone & InDone1,
|
|
1936
1880
|
OutErr1,
|
|
1937
|
-
|
|
1938
|
-
OutDone1 | OutDone
|
|
1881
|
+
InErr & InErr1,
|
|
1882
|
+
OutDone1 | OutDone,
|
|
1883
|
+
InDone & InDone1,
|
|
1884
|
+
Env1 | Env
|
|
1939
1885
|
>,
|
|
1940
|
-
<
|
|
1941
|
-
self: Channel.Channel<
|
|
1942
|
-
that: LazyArg<Channel.Channel<
|
|
1886
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
1887
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1888
|
+
that: LazyArg<Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>>
|
|
1943
1889
|
) => Channel.Channel<
|
|
1944
|
-
|
|
1945
|
-
InErr & InErr1,
|
|
1890
|
+
OutElem1 | OutElem,
|
|
1946
1891
|
InElem & InElem1,
|
|
1947
|
-
InDone & InDone1,
|
|
1948
1892
|
OutErr1,
|
|
1949
|
-
|
|
1950
|
-
OutDone1 | OutDone
|
|
1893
|
+
InErr & InErr1,
|
|
1894
|
+
OutDone1 | OutDone,
|
|
1895
|
+
InDone & InDone1,
|
|
1896
|
+
Env1 | Env
|
|
1951
1897
|
>
|
|
1952
1898
|
>(
|
|
1953
1899
|
2,
|
|
1954
1900
|
<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>(
|
|
1955
|
-
self: Channel.Channel<
|
|
1956
|
-
that: LazyArg<Channel.Channel<
|
|
1901
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1902
|
+
that: LazyArg<Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>>
|
|
1957
1903
|
): Channel.Channel<
|
|
1958
|
-
|
|
1959
|
-
InErr & InErr1,
|
|
1904
|
+
OutElem | OutElem1,
|
|
1960
1905
|
InElem & InElem1,
|
|
1961
|
-
InDone & InDone1,
|
|
1962
1906
|
OutErr1,
|
|
1963
|
-
|
|
1964
|
-
OutDone | OutDone1
|
|
1907
|
+
InErr & InErr1,
|
|
1908
|
+
OutDone | OutDone1,
|
|
1909
|
+
InDone & InDone1,
|
|
1910
|
+
Env | Env1
|
|
1965
1911
|
> => catchAll(self, that)
|
|
1966
1912
|
)
|
|
1967
1913
|
|
|
1968
1914
|
/** @internal */
|
|
1969
1915
|
export const pipeToOrFail = dual<
|
|
1970
|
-
<
|
|
1971
|
-
that: Channel.Channel<
|
|
1972
|
-
) => <
|
|
1973
|
-
self: Channel.Channel<
|
|
1974
|
-
) => Channel.Channel<
|
|
1975
|
-
<
|
|
1976
|
-
self: Channel.Channel<
|
|
1977
|
-
that: Channel.Channel<
|
|
1978
|
-
) => Channel.Channel<
|
|
1979
|
-
>(2, <
|
|
1980
|
-
self: Channel.Channel<
|
|
1981
|
-
that: Channel.Channel<
|
|
1982
|
-
): Channel.Channel<
|
|
1916
|
+
<OutElem2, OutElem, OutErr2, OutDone2, OutDone, Env2>(
|
|
1917
|
+
that: Channel.Channel<OutElem2, OutElem, OutErr2, never, OutDone2, OutDone, Env2>
|
|
1918
|
+
) => <InElem, OutErr, InErr, InDone, Env>(
|
|
1919
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
1920
|
+
) => Channel.Channel<OutElem2, InElem, OutErr2 | OutErr, InErr, OutDone2, InDone, Env2 | Env>,
|
|
1921
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem2, OutErr2, OutDone2, Env2>(
|
|
1922
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1923
|
+
that: Channel.Channel<OutElem2, OutElem, OutErr2, never, OutDone2, OutDone, Env2>
|
|
1924
|
+
) => Channel.Channel<OutElem2, InElem, OutErr2 | OutErr, InErr, OutDone2, InDone, Env2 | Env>
|
|
1925
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem2, OutErr2, OutDone2, Env2>(
|
|
1926
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1927
|
+
that: Channel.Channel<OutElem2, OutElem, OutErr2, never, OutDone2, OutDone, Env2>
|
|
1928
|
+
): Channel.Channel<OutElem2, InElem, OutErr | OutErr2, InErr, OutDone2, InDone, Env | Env2> =>
|
|
1983
1929
|
core.suspend(() => {
|
|
1984
1930
|
let channelException: Channel.ChannelException<OutErr | OutErr2> | undefined = undefined
|
|
1985
1931
|
|
|
1986
|
-
const reader: Channel.Channel<
|
|
1932
|
+
const reader: Channel.Channel<OutElem, OutElem, never, OutErr, OutDone, OutDone, Env> = core
|
|
1987
1933
|
.readWith({
|
|
1988
1934
|
onInput: (outElem) => core.flatMap(core.write(outElem), () => reader),
|
|
1989
1935
|
onFailure: (outErr) => {
|
|
@@ -1994,13 +1940,13 @@ export const pipeToOrFail = dual<
|
|
|
1994
1940
|
})
|
|
1995
1941
|
|
|
1996
1942
|
const writer: Channel.Channel<
|
|
1997
|
-
Env2,
|
|
1998
|
-
OutErr2,
|
|
1999
1943
|
OutElem2,
|
|
2000
|
-
OutDone2,
|
|
2001
|
-
OutErr2,
|
|
2002
1944
|
OutElem2,
|
|
2003
|
-
|
|
1945
|
+
OutErr2,
|
|
1946
|
+
OutErr2,
|
|
1947
|
+
OutDone2,
|
|
1948
|
+
OutDone2,
|
|
1949
|
+
Env2
|
|
2004
1950
|
> = core.readWithCause({
|
|
2005
1951
|
onInput: (outElem) => pipe(core.write(outElem), core.flatMap(() => writer)),
|
|
2006
1952
|
onFailure: (cause) =>
|
|
@@ -2020,19 +1966,19 @@ export const provideService = dual<
|
|
|
2020
1966
|
<T extends Context.Tag<any, any>>(
|
|
2021
1967
|
tag: T,
|
|
2022
1968
|
service: Context.Tag.Service<T>
|
|
2023
|
-
) => <
|
|
2024
|
-
self: Channel.Channel<
|
|
2025
|
-
) => Channel.Channel<
|
|
2026
|
-
<
|
|
2027
|
-
self: Channel.Channel<
|
|
1969
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
1970
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
1971
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Exclude<Env, Context.Tag.Identifier<T>>>,
|
|
1972
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, T extends Context.Tag<any, any>>(
|
|
1973
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2028
1974
|
tag: T,
|
|
2029
1975
|
service: Context.Tag.Service<T>
|
|
2030
|
-
) => Channel.Channel<
|
|
2031
|
-
>(3, <
|
|
2032
|
-
self: Channel.Channel<
|
|
1976
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Exclude<Env, Context.Tag.Identifier<T>>>
|
|
1977
|
+
>(3, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, T extends Context.Tag<any, any>>(
|
|
1978
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2033
1979
|
tag: T,
|
|
2034
1980
|
service: Context.Tag.Service<T>
|
|
2035
|
-
): Channel.Channel<
|
|
1981
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Exclude<Env, Context.Tag.Identifier<T>>> => {
|
|
2036
1982
|
return core.flatMap(
|
|
2037
1983
|
context<any>(),
|
|
2038
1984
|
(context) => core.provideContext(self, Context.add(context, tag, service))
|
|
@@ -2041,97 +1987,90 @@ export const provideService = dual<
|
|
|
2041
1987
|
|
|
2042
1988
|
/** @internal */
|
|
2043
1989
|
export const provideLayer = dual<
|
|
2044
|
-
<
|
|
2045
|
-
layer: Layer.Layer<
|
|
2046
|
-
) => <
|
|
2047
|
-
self: Channel.Channel<
|
|
2048
|
-
) => Channel.Channel<
|
|
2049
|
-
<
|
|
2050
|
-
self: Channel.Channel<
|
|
2051
|
-
layer: Layer.Layer<
|
|
2052
|
-
) => Channel.Channel<
|
|
2053
|
-
>(2, <
|
|
2054
|
-
self: Channel.Channel<
|
|
2055
|
-
layer: Layer.Layer<
|
|
2056
|
-
): Channel.Channel<
|
|
1990
|
+
<Env, OutErr2, Env0>(
|
|
1991
|
+
layer: Layer.Layer<Env, OutErr2, Env0>
|
|
1992
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone>(
|
|
1993
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
1994
|
+
) => Channel.Channel<OutElem, InElem, OutErr2 | OutErr, InErr, OutDone, InDone, Env0>,
|
|
1995
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutErr2, Env0>(
|
|
1996
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
1997
|
+
layer: Layer.Layer<Env, OutErr2, Env0>
|
|
1998
|
+
) => Channel.Channel<OutElem, InElem, OutErr2 | OutErr, InErr, OutDone, InDone, Env0>
|
|
1999
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutErr2, Env0>(
|
|
2000
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2001
|
+
layer: Layer.Layer<Env, OutErr2, Env0>
|
|
2002
|
+
): Channel.Channel<OutElem, InElem, OutErr | OutErr2, InErr, OutDone, InDone, Env0> =>
|
|
2057
2003
|
unwrapScoped(Effect.map(Layer.build(layer), (env) => core.provideContext(self, env))))
|
|
2058
2004
|
|
|
2059
2005
|
/** @internal */
|
|
2060
2006
|
export const mapInputContext = dual<
|
|
2061
2007
|
<Env0, Env>(
|
|
2062
2008
|
f: (env: Context.Context<Env0>) => Context.Context<Env>
|
|
2063
|
-
) => <
|
|
2064
|
-
self: Channel.Channel<
|
|
2065
|
-
) => Channel.Channel<
|
|
2066
|
-
<
|
|
2067
|
-
self: Channel.Channel<
|
|
2009
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone>(
|
|
2010
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
2011
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env0>,
|
|
2012
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, Env0>(
|
|
2013
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2068
2014
|
f: (env: Context.Context<Env0>) => Context.Context<Env>
|
|
2069
|
-
) => Channel.Channel<
|
|
2070
|
-
>(2, <
|
|
2071
|
-
self: Channel.Channel<
|
|
2015
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env0>
|
|
2016
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, Env0>(
|
|
2017
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2072
2018
|
f: (env: Context.Context<Env0>) => Context.Context<Env>
|
|
2073
|
-
): Channel.Channel<
|
|
2019
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env0> =>
|
|
2074
2020
|
contextWithChannel((context: Context.Context<Env0>) => core.provideContext(self, f(context))))
|
|
2075
2021
|
|
|
2076
2022
|
/** @internal */
|
|
2077
2023
|
export const provideSomeLayer = dual<
|
|
2078
|
-
<
|
|
2079
|
-
layer: Layer.Layer<
|
|
2080
|
-
) => <
|
|
2081
|
-
self: Channel.Channel<
|
|
2082
|
-
) => Channel.Channel<
|
|
2083
|
-
<
|
|
2084
|
-
self: Channel.Channel<
|
|
2085
|
-
layer: Layer.Layer<
|
|
2086
|
-
) => Channel.Channel<
|
|
2087
|
-
>(2, <
|
|
2088
|
-
self: Channel.Channel<
|
|
2089
|
-
layer: Layer.Layer<
|
|
2090
|
-
): Channel.Channel<
|
|
2024
|
+
<Env2, OutErr2, Env0>(
|
|
2025
|
+
layer: Layer.Layer<Env2, OutErr2, Env0>
|
|
2026
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, R>(
|
|
2027
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, R>
|
|
2028
|
+
) => Channel.Channel<OutElem, InElem, OutErr2 | OutErr, InErr, OutDone, InDone, Env0 | Exclude<R, Env2>>,
|
|
2029
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, R, Env2, OutErr2, Env0>(
|
|
2030
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, R>,
|
|
2031
|
+
layer: Layer.Layer<Env2, OutErr2, Env0>
|
|
2032
|
+
) => Channel.Channel<OutElem, InElem, OutErr2 | OutErr, InErr, OutDone, InDone, Env0 | Exclude<R, Env2>>
|
|
2033
|
+
>(2, <OutElem, InElem, OutErr, InErr, OutDone, InDone, R, Env2, OutErr2, Env0>(
|
|
2034
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, R>,
|
|
2035
|
+
layer: Layer.Layer<Env2, OutErr2, Env0>
|
|
2036
|
+
): Channel.Channel<OutElem, InElem, OutErr | OutErr2, InErr, OutDone, InDone, Env0 | Exclude<R, Env2>> =>
|
|
2091
2037
|
// @ts-expect-error
|
|
2092
2038
|
provideLayer(self, Layer.merge(Layer.context<Exclude<R, Env2>>(), layer)))
|
|
2093
2039
|
|
|
2094
2040
|
/** @internal */
|
|
2095
|
-
export const read = <In>(): Channel.Channel<
|
|
2096
|
-
never
|
|
2097
|
-
unknown,
|
|
2098
|
-
In,
|
|
2099
|
-
unknown,
|
|
2100
|
-
Option.Option<never>,
|
|
2101
|
-
never,
|
|
2102
|
-
In
|
|
2103
|
-
> => core.readOrFail<In, Option.Option<never>>(Option.none())
|
|
2041
|
+
export const read = <In>(): Channel.Channel<never, In, Option.Option<never>, unknown, In, unknown> =>
|
|
2042
|
+
core.readOrFail<Option.Option<never>, In>(Option.none())
|
|
2104
2043
|
|
|
2105
2044
|
/** @internal */
|
|
2106
|
-
export const repeated = <
|
|
2107
|
-
self: Channel.Channel<
|
|
2108
|
-
): Channel.Channel<
|
|
2045
|
+
export const repeated = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
2046
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
2047
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env> => core.flatMap(self, () => repeated(self))
|
|
2109
2048
|
|
|
2110
2049
|
/** @internal */
|
|
2111
|
-
export const run = <
|
|
2112
|
-
self: Channel.Channel<
|
|
2113
|
-
): Effect.Effect<
|
|
2050
|
+
export const run = <OutErr, InErr, OutDone, InDone, Env>(
|
|
2051
|
+
self: Channel.Channel<never, unknown, OutErr, InErr, OutDone, InDone, Env>
|
|
2052
|
+
): Effect.Effect<OutDone, OutErr, Env> => Effect.scoped(executor.runScoped(self))
|
|
2114
2053
|
|
|
2115
2054
|
/** @internal */
|
|
2116
|
-
export const runCollect = <
|
|
2117
|
-
self: Channel.Channel<
|
|
2118
|
-
): Effect.Effect<
|
|
2055
|
+
export const runCollect = <OutElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
2056
|
+
self: Channel.Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, Env>
|
|
2057
|
+
): Effect.Effect<[Chunk.Chunk<OutElem>, OutDone], OutErr, Env> => executor.run(core.collectElements(self))
|
|
2119
2058
|
|
|
2120
2059
|
/** @internal */
|
|
2121
|
-
export const runDrain = <
|
|
2122
|
-
self: Channel.Channel<
|
|
2123
|
-
): Effect.Effect<
|
|
2060
|
+
export const runDrain = <OutElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
2061
|
+
self: Channel.Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, Env>
|
|
2062
|
+
): Effect.Effect<OutDone, OutErr, Env> => executor.run(drain(self))
|
|
2124
2063
|
|
|
2125
2064
|
/** @internal */
|
|
2126
|
-
export const scoped = <
|
|
2127
|
-
effect: Effect.Effect<
|
|
2128
|
-
): Channel.Channel<
|
|
2065
|
+
export const scoped = <A, E, R>(
|
|
2066
|
+
effect: Effect.Effect<A, E, R>
|
|
2067
|
+
): Channel.Channel<A, unknown, E, unknown, unknown, unknown, Exclude<R, Scope.Scope>> =>
|
|
2129
2068
|
unwrap(
|
|
2130
2069
|
Effect.uninterruptibleMask((restore) =>
|
|
2131
2070
|
Effect.map(Scope.make(), (scope) =>
|
|
2132
2071
|
core.acquireReleaseOut(
|
|
2133
2072
|
Effect.tapErrorCause(
|
|
2134
|
-
restore(Scope.extend(scope)
|
|
2073
|
+
restore(Scope.extend(effect, scope)),
|
|
2135
2074
|
(cause) => Scope.close(scope, Exit.failCause(cause))
|
|
2136
2075
|
),
|
|
2137
2076
|
(_, exit) => Scope.close(scope, exit)
|
|
@@ -2142,39 +2081,39 @@ export const scoped = <R, E, A>(
|
|
|
2142
2081
|
/** @internal */
|
|
2143
2082
|
export const service = <T extends Context.Tag<any, any>>(
|
|
2144
2083
|
tag: T
|
|
2145
|
-
): Channel.Channel<
|
|
2084
|
+
): Channel.Channel<never, unknown, never, unknown, Context.Tag.Service<T>, unknown, Context.Tag.Identifier<T>> =>
|
|
2146
2085
|
core.fromEffect(tag)
|
|
2147
2086
|
|
|
2148
2087
|
/** @internal */
|
|
2149
2088
|
export const serviceWith = <T extends Context.Tag<any, any>>(tag: T) =>
|
|
2150
2089
|
<OutDone>(
|
|
2151
2090
|
f: (resource: Context.Tag.Service<T>) => OutDone
|
|
2152
|
-
): Channel.Channel<
|
|
2091
|
+
): Channel.Channel<never, unknown, never, unknown, OutDone, unknown, Context.Tag.Identifier<T>> => map(service(tag), f)
|
|
2153
2092
|
|
|
2154
2093
|
/** @internal */
|
|
2155
2094
|
export const serviceWithChannel =
|
|
2156
2095
|
<T extends Context.Tag<any, any>>(tag: T) =>
|
|
2157
2096
|
<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
|
2158
|
-
f: (resource: Context.Tag.Service<T>) => Channel.Channel<
|
|
2159
|
-
): Channel.Channel<
|
|
2097
|
+
f: (resource: Context.Tag.Service<T>) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
2098
|
+
): Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env | Context.Tag.Identifier<T>> =>
|
|
2160
2099
|
core.flatMap(service(tag), f)
|
|
2161
2100
|
|
|
2162
2101
|
/** @internal */
|
|
2163
2102
|
export const serviceWithEffect = <T extends Context.Tag<any, any>>(tag: T) =>
|
|
2164
2103
|
<Env, OutErr, OutDone>(
|
|
2165
|
-
f: (resource: Context.Tag.Service<T>) => Effect.Effect<
|
|
2166
|
-
): Channel.Channel<
|
|
2104
|
+
f: (resource: Context.Tag.Service<T>) => Effect.Effect<OutDone, OutErr, Env>
|
|
2105
|
+
): Channel.Channel<never, unknown, OutErr, unknown, OutDone, unknown, Env | Context.Tag.Identifier<T>> =>
|
|
2167
2106
|
mapEffect(service(tag), f)
|
|
2168
2107
|
|
|
2169
2108
|
/** @internal */
|
|
2170
|
-
export const toPubSub = <
|
|
2171
|
-
pubsub: PubSub.PubSub<Either.Either<Exit.Exit<
|
|
2172
|
-
): Channel.Channel<never,
|
|
2109
|
+
export const toPubSub = <Done, Err, Elem>(
|
|
2110
|
+
pubsub: PubSub.PubSub<Either.Either<Exit.Exit<Done, Err>, Elem>>
|
|
2111
|
+
): Channel.Channel<never, Elem, never, Err, unknown, Done> => toQueue(pubsub)
|
|
2173
2112
|
|
|
2174
2113
|
/** @internal */
|
|
2175
|
-
export const toPull = <
|
|
2176
|
-
self: Channel.Channel<
|
|
2177
|
-
): Effect.Effect<
|
|
2114
|
+
export const toPull = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
2115
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
2116
|
+
): Effect.Effect<Effect.Effect<Either.Either<OutDone, OutElem>, OutErr, Env>, never, Env | Scope.Scope> =>
|
|
2178
2117
|
Effect.map(
|
|
2179
2118
|
Effect.acquireRelease(
|
|
2180
2119
|
Effect.sync(() => new executor.ChannelExecutor(self, void 0, identity)),
|
|
@@ -2189,14 +2128,14 @@ export const toPull = <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
|
|
2189
2128
|
/** @internal */
|
|
2190
2129
|
const interpretToPull = <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
|
2191
2130
|
channelState: ChannelState.ChannelState<Env, OutErr>,
|
|
2192
|
-
exec: executor.ChannelExecutor<
|
|
2193
|
-
): Effect.Effect<
|
|
2131
|
+
exec: executor.ChannelExecutor<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
2132
|
+
): Effect.Effect<Either.Either<OutDone, OutElem>, OutErr, Env> => {
|
|
2194
2133
|
const state = channelState as ChannelState.Primitive
|
|
2195
2134
|
switch (state._tag) {
|
|
2196
2135
|
case ChannelStateOpCodes.OP_DONE: {
|
|
2197
2136
|
return Exit.match(exec.getDone(), {
|
|
2198
2137
|
onFailure: Effect.failCause,
|
|
2199
|
-
onSuccess: (done): Effect.Effect<
|
|
2138
|
+
onSuccess: (done): Effect.Effect<Either.Either<OutDone, OutElem>, OutErr, Env> =>
|
|
2200
2139
|
Effect.succeed(Either.left(done))
|
|
2201
2140
|
})
|
|
2202
2141
|
}
|
|
@@ -2205,7 +2144,7 @@ const interpretToPull = <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
|
|
2205
2144
|
}
|
|
2206
2145
|
case ChannelStateOpCodes.OP_FROM_EFFECT: {
|
|
2207
2146
|
return pipe(
|
|
2208
|
-
state.effect as Effect.Effect<
|
|
2147
|
+
state.effect as Effect.Effect<Either.Either<OutDone, OutElem>, OutErr, Env>,
|
|
2209
2148
|
Effect.flatMap(() => interpretToPull(exec.run() as ChannelState.ChannelState<Env, OutErr>, exec))
|
|
2210
2149
|
)
|
|
2211
2150
|
}
|
|
@@ -2213,21 +2152,21 @@ const interpretToPull = <Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
|
|
2213
2152
|
return executor.readUpstream(
|
|
2214
2153
|
state,
|
|
2215
2154
|
() => interpretToPull(exec.run() as ChannelState.ChannelState<Env, OutErr>, exec),
|
|
2216
|
-
(cause) => Effect.failCause(cause) as Effect.Effect<
|
|
2155
|
+
(cause) => Effect.failCause(cause) as Effect.Effect<Either.Either<OutDone, OutElem>, OutErr, Env>
|
|
2217
2156
|
)
|
|
2218
2157
|
}
|
|
2219
2158
|
}
|
|
2220
2159
|
}
|
|
2221
2160
|
|
|
2222
2161
|
/** @internal */
|
|
2223
|
-
export const toQueue = <
|
|
2224
|
-
queue: Queue.Enqueue<Either.Either<Exit.Exit<
|
|
2225
|
-
): Channel.Channel<never,
|
|
2162
|
+
export const toQueue = <Done, Err, Elem>(
|
|
2163
|
+
queue: Queue.Enqueue<Either.Either<Exit.Exit<Done, Err>, Elem>>
|
|
2164
|
+
): Channel.Channel<never, Elem, never, Err, unknown, Done> => core.suspend(() => toQueueInternal(queue))
|
|
2226
2165
|
|
|
2227
2166
|
/** @internal */
|
|
2228
2167
|
const toQueueInternal = <Err, Done, Elem>(
|
|
2229
|
-
queue: Queue.Enqueue<Either.Either<Exit.Exit<
|
|
2230
|
-
): Channel.Channel<never,
|
|
2168
|
+
queue: Queue.Enqueue<Either.Either<Exit.Exit<Done, Err>, Elem>>
|
|
2169
|
+
): Channel.Channel<never, Elem, never, Err, unknown, Done> => {
|
|
2231
2170
|
return core.readWithCause({
|
|
2232
2171
|
onInput: (elem) =>
|
|
2233
2172
|
core.flatMap(
|
|
@@ -2240,32 +2179,14 @@ const toQueueInternal = <Err, Done, Elem>(
|
|
|
2240
2179
|
}
|
|
2241
2180
|
|
|
2242
2181
|
/** @internal */
|
|
2243
|
-
export const unwrap = <
|
|
2244
|
-
channel: Effect.Effect<
|
|
2245
|
-
): Channel.Channel<
|
|
2182
|
+
export const unwrap = <OutElem, InElem, OutErr, InErr, OutDone, InDone, R2, E, R>(
|
|
2183
|
+
channel: Effect.Effect<Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, R2>, E, R>
|
|
2184
|
+
): Channel.Channel<OutElem, InElem, E | OutErr, InErr, OutDone, InDone, R | R2> => flatten(core.fromEffect(channel))
|
|
2246
2185
|
|
|
2247
2186
|
/** @internal */
|
|
2248
|
-
export const unwrapScoped = <
|
|
2249
|
-
R
|
|
2250
|
-
|
|
2251
|
-
Env,
|
|
2252
|
-
InErr,
|
|
2253
|
-
InElem,
|
|
2254
|
-
InDone,
|
|
2255
|
-
OutErr,
|
|
2256
|
-
OutElem,
|
|
2257
|
-
OutDone
|
|
2258
|
-
>(
|
|
2259
|
-
self: Effect.Effect<R, E, Channel.Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>>
|
|
2260
|
-
): Channel.Channel<
|
|
2261
|
-
Exclude<R, Scope.Scope> | Env,
|
|
2262
|
-
InErr,
|
|
2263
|
-
InElem,
|
|
2264
|
-
InDone,
|
|
2265
|
-
E | OutErr,
|
|
2266
|
-
OutElem,
|
|
2267
|
-
OutDone
|
|
2268
|
-
> =>
|
|
2187
|
+
export const unwrapScoped = <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, E, R>(
|
|
2188
|
+
self: Effect.Effect<Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>, E, R>
|
|
2189
|
+
): Channel.Channel<OutElem, InElem, E | OutErr, InErr, OutDone, InDone, Env | Exclude<R, Scope.Scope>> =>
|
|
2269
2190
|
core.concatAllWith(
|
|
2270
2191
|
scoped(self),
|
|
2271
2192
|
(d, _) => d,
|
|
@@ -2277,19 +2198,19 @@ export const updateService = dual<
|
|
|
2277
2198
|
<T extends Context.Tag<any, any>>(
|
|
2278
2199
|
tag: T,
|
|
2279
2200
|
f: (resource: Context.Tag.Service<T>) => Context.Tag.Service<T>
|
|
2280
|
-
) => <
|
|
2281
|
-
self: Channel.Channel<
|
|
2282
|
-
) => Channel.Channel<
|
|
2283
|
-
<
|
|
2284
|
-
self: Channel.Channel<
|
|
2201
|
+
) => <OutElem, OutErr, InErr, OutDone, InDone, R>(
|
|
2202
|
+
self: Channel.Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, R>
|
|
2203
|
+
) => Channel.Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, T | R>,
|
|
2204
|
+
<OutElem, OutErr, InErr, OutDone, InDone, R, T extends Context.Tag<any, any>>(
|
|
2205
|
+
self: Channel.Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, R>,
|
|
2285
2206
|
tag: T,
|
|
2286
2207
|
f: (resource: Context.Tag.Service<T>) => Context.Tag.Service<T>
|
|
2287
|
-
) => Channel.Channel<
|
|
2288
|
-
>(3, <
|
|
2289
|
-
self: Channel.Channel<
|
|
2208
|
+
) => Channel.Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, T | R>
|
|
2209
|
+
>(3, <OutElem, OutErr, InErr, OutDone, InDone, R, T extends Context.Tag<any, any>>(
|
|
2210
|
+
self: Channel.Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, R>,
|
|
2290
2211
|
tag: T,
|
|
2291
2212
|
f: (resource: Context.Tag.Service<T>) => Context.Tag.Service<T>
|
|
2292
|
-
): Channel.Channel<
|
|
2213
|
+
): Channel.Channel<OutElem, unknown, OutErr, InErr, OutDone, InDone, R | T> =>
|
|
2293
2214
|
mapInputContext(self, (context: Context.Context<R>) =>
|
|
2294
2215
|
Context.merge(
|
|
2295
2216
|
context,
|
|
@@ -2307,11 +2228,11 @@ export const withSpan = dual<
|
|
|
2307
2228
|
readonly root?: boolean | undefined
|
|
2308
2229
|
readonly context?: Context.Context<never> | undefined
|
|
2309
2230
|
}
|
|
2310
|
-
) => <
|
|
2311
|
-
self: Channel.Channel<
|
|
2312
|
-
) => Channel.Channel<
|
|
2313
|
-
<
|
|
2314
|
-
self: Channel.Channel<
|
|
2231
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
2232
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
2233
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Exclude<Env, Tracer.ParentSpan>>,
|
|
2234
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
2235
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2315
2236
|
name: string,
|
|
2316
2237
|
options?: {
|
|
2317
2238
|
readonly attributes?: Record<string, unknown> | undefined
|
|
@@ -2320,7 +2241,7 @@ export const withSpan = dual<
|
|
|
2320
2241
|
readonly root?: boolean | undefined
|
|
2321
2242
|
readonly context?: Context.Context<never> | undefined
|
|
2322
2243
|
}
|
|
2323
|
-
) => Channel.Channel<
|
|
2244
|
+
) => Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Exclude<Env, Tracer.ParentSpan>>
|
|
2324
2245
|
>(3, (self, name, options) =>
|
|
2325
2246
|
unwrapScoped(
|
|
2326
2247
|
Effect.flatMap(
|
|
@@ -2336,19 +2257,19 @@ export const withSpan = dual<
|
|
|
2336
2257
|
/** @internal */
|
|
2337
2258
|
export const writeAll = <OutElem>(
|
|
2338
2259
|
...outs: Array<OutElem>
|
|
2339
|
-
): Channel.Channel<
|
|
2260
|
+
): Channel.Channel<OutElem> => writeChunk(Chunk.fromIterable(outs))
|
|
2340
2261
|
|
|
2341
2262
|
/** @internal */
|
|
2342
2263
|
export const writeChunk = <OutElem>(
|
|
2343
2264
|
outs: Chunk.Chunk<OutElem>
|
|
2344
|
-
): Channel.Channel<
|
|
2265
|
+
): Channel.Channel<OutElem> => writeChunkWriter(0, outs.length, outs)
|
|
2345
2266
|
|
|
2346
2267
|
/** @internal */
|
|
2347
2268
|
const writeChunkWriter = <OutElem>(
|
|
2348
2269
|
idx: number,
|
|
2349
2270
|
len: number,
|
|
2350
2271
|
chunk: Chunk.Chunk<OutElem>
|
|
2351
|
-
): Channel.Channel<
|
|
2272
|
+
): Channel.Channel<OutElem> => {
|
|
2352
2273
|
return idx === len
|
|
2353
2274
|
? core.unit
|
|
2354
2275
|
: pipe(
|
|
@@ -2359,53 +2280,53 @@ const writeChunkWriter = <OutElem>(
|
|
|
2359
2280
|
|
|
2360
2281
|
/** @internal */
|
|
2361
2282
|
export const zip = dual<
|
|
2362
|
-
<
|
|
2363
|
-
that: Channel.Channel<
|
|
2283
|
+
<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
2284
|
+
that: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
2364
2285
|
options?: {
|
|
2365
2286
|
readonly concurrent?: boolean | undefined
|
|
2366
2287
|
}
|
|
2367
|
-
) => <
|
|
2368
|
-
self: Channel.Channel<
|
|
2288
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
2289
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
2369
2290
|
) => Channel.Channel<
|
|
2370
|
-
|
|
2371
|
-
InErr & InErr1,
|
|
2291
|
+
OutElem1 | OutElem,
|
|
2372
2292
|
InElem & InElem1,
|
|
2373
|
-
InDone & InDone1,
|
|
2374
2293
|
OutErr1 | OutErr,
|
|
2375
|
-
|
|
2376
|
-
readonly [OutDone, OutDone1]
|
|
2294
|
+
InErr & InErr1,
|
|
2295
|
+
readonly [OutDone, OutDone1],
|
|
2296
|
+
InDone & InDone1,
|
|
2297
|
+
Env1 | Env
|
|
2377
2298
|
>,
|
|
2378
|
-
<
|
|
2379
|
-
self: Channel.Channel<
|
|
2380
|
-
that: Channel.Channel<
|
|
2299
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
2300
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2301
|
+
that: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
2381
2302
|
options?: {
|
|
2382
2303
|
readonly concurrent?: boolean | undefined
|
|
2383
2304
|
}
|
|
2384
2305
|
) => Channel.Channel<
|
|
2385
|
-
|
|
2386
|
-
InErr & InErr1,
|
|
2306
|
+
OutElem1 | OutElem,
|
|
2387
2307
|
InElem & InElem1,
|
|
2388
|
-
InDone & InDone1,
|
|
2389
2308
|
OutErr1 | OutErr,
|
|
2390
|
-
|
|
2391
|
-
readonly [OutDone, OutDone1]
|
|
2309
|
+
InErr & InErr1,
|
|
2310
|
+
readonly [OutDone, OutDone1],
|
|
2311
|
+
InDone & InDone1,
|
|
2312
|
+
Env1 | Env
|
|
2392
2313
|
>
|
|
2393
2314
|
>(
|
|
2394
2315
|
(args) => core.isChannel(args[1]),
|
|
2395
|
-
<
|
|
2396
|
-
self: Channel.Channel<
|
|
2397
|
-
that: Channel.Channel<
|
|
2316
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
2317
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2318
|
+
that: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
2398
2319
|
options?: {
|
|
2399
2320
|
readonly concurrent?: boolean | undefined
|
|
2400
2321
|
}
|
|
2401
2322
|
): Channel.Channel<
|
|
2402
|
-
|
|
2403
|
-
InErr & InErr1,
|
|
2323
|
+
OutElem | OutElem1,
|
|
2404
2324
|
InElem & InElem1,
|
|
2405
|
-
InDone & InDone1,
|
|
2406
2325
|
OutErr | OutErr1,
|
|
2407
|
-
|
|
2408
|
-
readonly [OutDone, OutDone1]
|
|
2326
|
+
InErr & InErr1,
|
|
2327
|
+
readonly [OutDone, OutDone1],
|
|
2328
|
+
InDone & InDone1,
|
|
2329
|
+
Env | Env1
|
|
2409
2330
|
> =>
|
|
2410
2331
|
options?.concurrent ?
|
|
2411
2332
|
mergeWith(self, {
|
|
@@ -2418,53 +2339,53 @@ export const zip = dual<
|
|
|
2418
2339
|
|
|
2419
2340
|
/** @internal */
|
|
2420
2341
|
export const zipLeft = dual<
|
|
2421
|
-
<
|
|
2422
|
-
that: Channel.Channel<
|
|
2342
|
+
<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
2343
|
+
that: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
2423
2344
|
options?: {
|
|
2424
2345
|
readonly concurrent?: boolean | undefined
|
|
2425
2346
|
}
|
|
2426
|
-
) => <
|
|
2427
|
-
self: Channel.Channel<
|
|
2347
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
2348
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
2428
2349
|
) => Channel.Channel<
|
|
2429
|
-
|
|
2430
|
-
InErr & InErr1,
|
|
2350
|
+
OutElem1 | OutElem,
|
|
2431
2351
|
InElem & InElem1,
|
|
2432
|
-
InDone & InDone1,
|
|
2433
2352
|
OutErr1 | OutErr,
|
|
2434
|
-
|
|
2435
|
-
OutDone
|
|
2353
|
+
InErr & InErr1,
|
|
2354
|
+
OutDone,
|
|
2355
|
+
InDone & InDone1,
|
|
2356
|
+
Env1 | Env
|
|
2436
2357
|
>,
|
|
2437
|
-
<
|
|
2438
|
-
self: Channel.Channel<
|
|
2439
|
-
that: Channel.Channel<
|
|
2358
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
2359
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2360
|
+
that: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
2440
2361
|
options?: {
|
|
2441
2362
|
readonly concurrent?: boolean | undefined
|
|
2442
2363
|
}
|
|
2443
2364
|
) => Channel.Channel<
|
|
2444
|
-
|
|
2445
|
-
InErr & InErr1,
|
|
2365
|
+
OutElem1 | OutElem,
|
|
2446
2366
|
InElem & InElem1,
|
|
2447
|
-
InDone & InDone1,
|
|
2448
2367
|
OutErr1 | OutErr,
|
|
2449
|
-
|
|
2450
|
-
OutDone
|
|
2368
|
+
InErr & InErr1,
|
|
2369
|
+
OutDone,
|
|
2370
|
+
InDone & InDone1,
|
|
2371
|
+
Env1 | Env
|
|
2451
2372
|
>
|
|
2452
2373
|
>(
|
|
2453
2374
|
(args) => core.isChannel(args[1]),
|
|
2454
|
-
<
|
|
2455
|
-
self: Channel.Channel<
|
|
2456
|
-
that: Channel.Channel<
|
|
2375
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
2376
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2377
|
+
that: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
2457
2378
|
options?: {
|
|
2458
2379
|
readonly concurrent?: boolean | undefined
|
|
2459
2380
|
}
|
|
2460
2381
|
): Channel.Channel<
|
|
2461
|
-
|
|
2462
|
-
InErr & InErr1,
|
|
2382
|
+
OutElem | OutElem1,
|
|
2463
2383
|
InElem & InElem1,
|
|
2464
|
-
InDone & InDone1,
|
|
2465
2384
|
OutErr | OutErr1,
|
|
2466
|
-
|
|
2467
|
-
OutDone
|
|
2385
|
+
InErr & InErr1,
|
|
2386
|
+
OutDone,
|
|
2387
|
+
InDone & InDone1,
|
|
2388
|
+
Env | Env1
|
|
2468
2389
|
> =>
|
|
2469
2390
|
options?.concurrent ?
|
|
2470
2391
|
map(zip(self, that, { concurrent: true }), (tuple) => tuple[0]) :
|
|
@@ -2473,53 +2394,53 @@ export const zipLeft = dual<
|
|
|
2473
2394
|
|
|
2474
2395
|
/** @internal */
|
|
2475
2396
|
export const zipRight = dual<
|
|
2476
|
-
<
|
|
2477
|
-
that: Channel.Channel<
|
|
2397
|
+
<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
2398
|
+
that: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
2478
2399
|
options?: {
|
|
2479
2400
|
readonly concurrent?: boolean | undefined
|
|
2480
2401
|
}
|
|
2481
|
-
) => <
|
|
2482
|
-
self: Channel.Channel<
|
|
2402
|
+
) => <OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>(
|
|
2403
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>
|
|
2483
2404
|
) => Channel.Channel<
|
|
2484
|
-
|
|
2485
|
-
InErr & InErr1,
|
|
2405
|
+
OutElem1 | OutElem,
|
|
2486
2406
|
InElem & InElem1,
|
|
2487
|
-
InDone & InDone1,
|
|
2488
2407
|
OutErr1 | OutErr,
|
|
2489
|
-
|
|
2490
|
-
OutDone1
|
|
2408
|
+
InErr & InErr1,
|
|
2409
|
+
OutDone1,
|
|
2410
|
+
InDone & InDone1,
|
|
2411
|
+
Env1 | Env
|
|
2491
2412
|
>,
|
|
2492
|
-
<
|
|
2493
|
-
self: Channel.Channel<
|
|
2494
|
-
that: Channel.Channel<
|
|
2413
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
2414
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2415
|
+
that: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
2495
2416
|
options?: {
|
|
2496
2417
|
readonly concurrent?: boolean | undefined
|
|
2497
2418
|
}
|
|
2498
2419
|
) => Channel.Channel<
|
|
2499
|
-
|
|
2500
|
-
InErr & InErr1,
|
|
2420
|
+
OutElem1 | OutElem,
|
|
2501
2421
|
InElem & InElem1,
|
|
2502
|
-
InDone & InDone1,
|
|
2503
2422
|
OutErr1 | OutErr,
|
|
2504
|
-
|
|
2505
|
-
OutDone1
|
|
2423
|
+
InErr & InErr1,
|
|
2424
|
+
OutDone1,
|
|
2425
|
+
InDone & InDone1,
|
|
2426
|
+
Env1 | Env
|
|
2506
2427
|
>
|
|
2507
2428
|
>(
|
|
2508
2429
|
(args) => core.isChannel(args[1]),
|
|
2509
|
-
<
|
|
2510
|
-
self: Channel.Channel<
|
|
2511
|
-
that: Channel.Channel<
|
|
2430
|
+
<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env, OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>(
|
|
2431
|
+
self: Channel.Channel<OutElem, InElem, OutErr, InErr, OutDone, InDone, Env>,
|
|
2432
|
+
that: Channel.Channel<OutElem1, InElem1, OutErr1, InErr1, OutDone1, InDone1, Env1>,
|
|
2512
2433
|
options?: {
|
|
2513
2434
|
readonly concurrent?: boolean | undefined
|
|
2514
2435
|
}
|
|
2515
2436
|
): Channel.Channel<
|
|
2516
|
-
|
|
2517
|
-
InErr & InErr1,
|
|
2437
|
+
OutElem | OutElem1,
|
|
2518
2438
|
InElem & InElem1,
|
|
2519
|
-
InDone & InDone1,
|
|
2520
2439
|
OutErr | OutErr1,
|
|
2521
|
-
|
|
2522
|
-
OutDone1
|
|
2440
|
+
InErr & InErr1,
|
|
2441
|
+
OutDone1,
|
|
2442
|
+
InDone & InDone1,
|
|
2443
|
+
Env | Env1
|
|
2523
2444
|
> =>
|
|
2524
2445
|
options?.concurrent ?
|
|
2525
2446
|
map(zip(self, that, { concurrent: true }), (tuple) => tuple[1]) :
|