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/layer.ts
CHANGED
|
@@ -84,23 +84,23 @@ export type Op<Tag extends string, Body = {}> = Layer.Layer<unknown, unknown, un
|
|
|
84
84
|
/** @internal */
|
|
85
85
|
export interface ExtendScope extends
|
|
86
86
|
Op<OpCodes.OP_EXTEND_SCOPE, {
|
|
87
|
-
readonly layer: Layer.Layer<
|
|
87
|
+
readonly layer: Layer.Layer<unknown>
|
|
88
88
|
}>
|
|
89
89
|
{}
|
|
90
90
|
|
|
91
91
|
/** @internal */
|
|
92
92
|
export interface Fold extends
|
|
93
93
|
Op<OpCodes.OP_FOLD, {
|
|
94
|
-
readonly layer: Layer.Layer<
|
|
95
|
-
failureK(cause: Cause.Cause<unknown>): Layer.Layer<
|
|
96
|
-
successK(context: Context.Context<unknown>): Layer.Layer<
|
|
94
|
+
readonly layer: Layer.Layer<unknown>
|
|
95
|
+
failureK(cause: Cause.Cause<unknown>): Layer.Layer<unknown>
|
|
96
|
+
successK(context: Context.Context<unknown>): Layer.Layer<unknown>
|
|
97
97
|
}>
|
|
98
98
|
{}
|
|
99
99
|
|
|
100
100
|
/** @internal */
|
|
101
101
|
export interface Fresh extends
|
|
102
102
|
Op<OpCodes.OP_FRESH, {
|
|
103
|
-
readonly layer: Layer.Layer<
|
|
103
|
+
readonly layer: Layer.Layer<unknown>
|
|
104
104
|
}>
|
|
105
105
|
{}
|
|
106
106
|
|
|
@@ -121,14 +121,14 @@ export interface Scoped extends
|
|
|
121
121
|
/** @internal */
|
|
122
122
|
export interface Suspend extends
|
|
123
123
|
Op<OpCodes.OP_SUSPEND, {
|
|
124
|
-
evaluate(): Layer.Layer<
|
|
124
|
+
evaluate(): Layer.Layer<unknown>
|
|
125
125
|
}>
|
|
126
126
|
{}
|
|
127
127
|
|
|
128
128
|
/** @internal */
|
|
129
129
|
export interface Locally extends
|
|
130
130
|
Op<"Locally", {
|
|
131
|
-
readonly self: Layer.Layer<
|
|
131
|
+
readonly self: Layer.Layer<unknown>
|
|
132
132
|
f(_: Effect.Effect<any, any, any>): Effect.Effect<any, any, any>
|
|
133
133
|
}>
|
|
134
134
|
{}
|
|
@@ -136,16 +136,16 @@ export interface Locally extends
|
|
|
136
136
|
/** @internal */
|
|
137
137
|
export interface ProvideTo extends
|
|
138
138
|
Op<OpCodes.OP_PROVIDE, {
|
|
139
|
-
readonly first: Layer.Layer<
|
|
140
|
-
readonly second: Layer.Layer<
|
|
139
|
+
readonly first: Layer.Layer<unknown>
|
|
140
|
+
readonly second: Layer.Layer<unknown>
|
|
141
141
|
}>
|
|
142
142
|
{}
|
|
143
143
|
|
|
144
144
|
/** @internal */
|
|
145
145
|
export interface ZipWith extends
|
|
146
146
|
Op<OpCodes.OP_PROVIDE_MERGE, {
|
|
147
|
-
readonly first: Layer.Layer<
|
|
148
|
-
readonly second: Layer.Layer<
|
|
147
|
+
readonly first: Layer.Layer<unknown>
|
|
148
|
+
readonly second: Layer.Layer<unknown>
|
|
149
149
|
zipK(left: Context.Context<unknown>, right: Context.Context<unknown>): Context.Context<unknown>
|
|
150
150
|
}>
|
|
151
151
|
{}
|
|
@@ -153,8 +153,8 @@ export interface ZipWith extends
|
|
|
153
153
|
/** @internal */
|
|
154
154
|
export interface ZipWithPar extends
|
|
155
155
|
Op<OpCodes.OP_ZIP_WITH, {
|
|
156
|
-
readonly first: Layer.Layer<
|
|
157
|
-
readonly second: Layer.Layer<
|
|
156
|
+
readonly first: Layer.Layer<unknown>
|
|
157
|
+
readonly second: Layer.Layer<unknown>
|
|
158
158
|
zipK(left: Context.Context<unknown>, right: Context.Context<unknown>): Context.Context<unknown>
|
|
159
159
|
}>
|
|
160
160
|
{}
|
|
@@ -163,7 +163,7 @@ export interface ZipWithPar extends
|
|
|
163
163
|
export const isLayer = (u: unknown): u is Layer.Layer<unknown, unknown, unknown> => hasProperty(u, LayerTypeId)
|
|
164
164
|
|
|
165
165
|
/** @internal */
|
|
166
|
-
export const isFresh = <
|
|
166
|
+
export const isFresh = <RIn, E, ROut>(self: Layer.Layer<ROut, E, RIn>): boolean => {
|
|
167
167
|
return (self as Primitive)._tag === OpCodes.OP_FRESH
|
|
168
168
|
}
|
|
169
169
|
|
|
@@ -178,7 +178,7 @@ class MemoMapImpl implements Layer.MemoMap {
|
|
|
178
178
|
readonly ref: Synchronized.SynchronizedRef<
|
|
179
179
|
Map<
|
|
180
180
|
Layer.Layer<any, any, any>,
|
|
181
|
-
readonly [Effect.Effect<
|
|
181
|
+
readonly [Effect.Effect<any, any>, Scope.Scope.Finalizer]
|
|
182
182
|
>
|
|
183
183
|
>
|
|
184
184
|
) {
|
|
@@ -191,16 +191,16 @@ class MemoMapImpl implements Layer.MemoMap {
|
|
|
191
191
|
* and adds a finalizer to the `Scope`.
|
|
192
192
|
*/
|
|
193
193
|
getOrElseMemoize<RIn, E, ROut>(
|
|
194
|
-
layer: Layer.Layer<
|
|
194
|
+
layer: Layer.Layer<ROut, E, RIn>,
|
|
195
195
|
scope: Scope.Scope
|
|
196
|
-
): Effect.Effect<
|
|
196
|
+
): Effect.Effect<Context.Context<ROut>, E, RIn> {
|
|
197
197
|
return pipe(
|
|
198
198
|
synchronized.modifyEffect(this.ref, (map) => {
|
|
199
199
|
const inMap = map.get(layer)
|
|
200
200
|
if (inMap !== undefined) {
|
|
201
201
|
const [acquire, release] = inMap
|
|
202
|
-
const cached: Effect.Effect<
|
|
203
|
-
acquire as Effect.Effect<
|
|
202
|
+
const cached: Effect.Effect<Context.Context<ROut>, E> = pipe(
|
|
203
|
+
acquire as Effect.Effect<readonly [FiberRefsPatch.FiberRefsPatch, Context.Context<ROut>], E>,
|
|
204
204
|
core.flatMap(([patch, b]) => pipe(effect.patchFiberRefs(patch), core.as(b))),
|
|
205
205
|
core.onExit(core.exitMatch({
|
|
206
206
|
onFailure: () => core.unit,
|
|
@@ -213,7 +213,7 @@ class MemoMapImpl implements Layer.MemoMap {
|
|
|
213
213
|
ref.make(0),
|
|
214
214
|
core.flatMap((observers) =>
|
|
215
215
|
pipe(
|
|
216
|
-
core.deferredMake<
|
|
216
|
+
core.deferredMake<readonly [FiberRefsPatch.FiberRefsPatch, Context.Context<ROut>], E>(),
|
|
217
217
|
core.flatMap((deferred) =>
|
|
218
218
|
pipe(
|
|
219
219
|
ref.make<Scope.Scope.Finalizer>(() => core.unit),
|
|
@@ -297,13 +297,13 @@ class MemoMapImpl implements Layer.MemoMap {
|
|
|
297
297
|
}
|
|
298
298
|
|
|
299
299
|
/** @internal */
|
|
300
|
-
export const makeMemoMap: Effect.Effect<
|
|
300
|
+
export const makeMemoMap: Effect.Effect<Layer.MemoMap> = core.suspend(() =>
|
|
301
301
|
core.map(
|
|
302
302
|
circular.makeSynchronized<
|
|
303
303
|
Map<
|
|
304
304
|
Layer.Layer<any, any, any>,
|
|
305
305
|
readonly [
|
|
306
|
-
Effect.Effect<
|
|
306
|
+
Effect.Effect<any, any>,
|
|
307
307
|
Scope.Scope.Finalizer
|
|
308
308
|
]
|
|
309
309
|
>
|
|
@@ -314,19 +314,19 @@ export const makeMemoMap: Effect.Effect<never, never, Layer.MemoMap> = core.susp
|
|
|
314
314
|
|
|
315
315
|
/** @internal */
|
|
316
316
|
export const build = <RIn, E, ROut>(
|
|
317
|
-
self: Layer.Layer<
|
|
318
|
-
): Effect.Effect<RIn | Scope.Scope
|
|
317
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
318
|
+
): Effect.Effect<Context.Context<ROut>, E, RIn | Scope.Scope> =>
|
|
319
319
|
fiberRuntime.scopeWith((scope) => buildWithScope(self, scope))
|
|
320
320
|
|
|
321
321
|
/** @internal */
|
|
322
322
|
export const buildWithScope = dual<
|
|
323
323
|
(
|
|
324
324
|
scope: Scope.Scope
|
|
325
|
-
) => <RIn, E, ROut>(self: Layer.Layer<
|
|
325
|
+
) => <RIn, E, ROut>(self: Layer.Layer<ROut, E, RIn>) => Effect.Effect<Context.Context<ROut>, E, RIn>,
|
|
326
326
|
<RIn, E, ROut>(
|
|
327
|
-
self: Layer.Layer<
|
|
327
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
328
328
|
scope: Scope.Scope
|
|
329
|
-
) => Effect.Effect<
|
|
329
|
+
) => Effect.Effect<Context.Context<ROut>, E, RIn>
|
|
330
330
|
>(2, (self, scope) =>
|
|
331
331
|
core.flatMap(
|
|
332
332
|
makeMemoMap,
|
|
@@ -338,19 +338,19 @@ export const buildWithMemoMap = dual<
|
|
|
338
338
|
(
|
|
339
339
|
memoMap: Layer.MemoMap,
|
|
340
340
|
scope: Scope.Scope
|
|
341
|
-
) => <RIn, E, ROut>(self: Layer.Layer<
|
|
341
|
+
) => <RIn, E, ROut>(self: Layer.Layer<ROut, E, RIn>) => Effect.Effect<Context.Context<ROut>, E, RIn>,
|
|
342
342
|
<RIn, E, ROut>(
|
|
343
|
-
self: Layer.Layer<
|
|
343
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
344
344
|
memoMap: Layer.MemoMap,
|
|
345
345
|
scope: Scope.Scope
|
|
346
|
-
) => Effect.Effect<
|
|
346
|
+
) => Effect.Effect<Context.Context<ROut>, E, RIn>
|
|
347
347
|
>(3, (self, memoMap, scope) => core.flatMap(makeBuilder(self, scope), (run) => run(memoMap)))
|
|
348
348
|
|
|
349
349
|
const makeBuilder = <RIn, E, ROut>(
|
|
350
|
-
self: Layer.Layer<
|
|
350
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
351
351
|
scope: Scope.Scope,
|
|
352
352
|
inMemoMap = false
|
|
353
|
-
): Effect.Effect<
|
|
353
|
+
): Effect.Effect<(memoMap: Layer.MemoMap) => Effect.Effect<Context.Context<ROut>, E, RIn>> => {
|
|
354
354
|
const op = self as Primitive
|
|
355
355
|
switch (op._tag) {
|
|
356
356
|
case "Locally": {
|
|
@@ -360,7 +360,7 @@ const makeBuilder = <RIn, E, ROut>(
|
|
|
360
360
|
return core.sync(() => (memoMap: Layer.MemoMap) =>
|
|
361
361
|
fiberRuntime.scopeWith(
|
|
362
362
|
(scope) => memoMap.getOrElseMemoize(op.layer, scope)
|
|
363
|
-
) as unknown as Effect.Effect<
|
|
363
|
+
) as unknown as Effect.Effect<Context.Context<ROut>, E, RIn>
|
|
364
364
|
)
|
|
365
365
|
}
|
|
366
366
|
case "Fold": {
|
|
@@ -379,7 +379,7 @@ const makeBuilder = <RIn, E, ROut>(
|
|
|
379
379
|
}
|
|
380
380
|
case "FromEffect": {
|
|
381
381
|
return inMemoMap
|
|
382
|
-
? core.sync(() => (_: Layer.MemoMap) => op.effect as Effect.Effect<
|
|
382
|
+
? core.sync(() => (_: Layer.MemoMap) => op.effect as Effect.Effect<Context.Context<ROut>, E, RIn>)
|
|
383
383
|
: core.sync(() => (memoMap: Layer.MemoMap) => memoMap.getOrElseMemoize(self, scope))
|
|
384
384
|
}
|
|
385
385
|
case "Provide": {
|
|
@@ -399,7 +399,7 @@ const makeBuilder = <RIn, E, ROut>(
|
|
|
399
399
|
return inMemoMap
|
|
400
400
|
? core.sync(() => (_: Layer.MemoMap) =>
|
|
401
401
|
fiberRuntime.scopeExtend(
|
|
402
|
-
op.effect as Effect.Effect<
|
|
402
|
+
op.effect as Effect.Effect<Context.Context<ROut>, E, RIn>,
|
|
403
403
|
scope
|
|
404
404
|
)
|
|
405
405
|
)
|
|
@@ -445,35 +445,34 @@ const makeBuilder = <RIn, E, ROut>(
|
|
|
445
445
|
|
|
446
446
|
/** @internal */
|
|
447
447
|
export const catchAll = dual<
|
|
448
|
-
<E,
|
|
449
|
-
onError: (error: E) => Layer.Layer<
|
|
450
|
-
) => <
|
|
451
|
-
<
|
|
452
|
-
self: Layer.Layer<
|
|
453
|
-
onError: (error: E) => Layer.Layer<
|
|
454
|
-
) => Layer.Layer<
|
|
448
|
+
<E, RIn2, E2, ROut2>(
|
|
449
|
+
onError: (error: E) => Layer.Layer<ROut2, E2, RIn2>
|
|
450
|
+
) => <RIn, ROut>(self: Layer.Layer<ROut, E, RIn>) => Layer.Layer<ROut & ROut2, E2, RIn | RIn2>,
|
|
451
|
+
<RIn, E, ROut, RIn2, E2, ROut2>(
|
|
452
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
453
|
+
onError: (error: E) => Layer.Layer<ROut2, E2, RIn2>
|
|
454
|
+
) => Layer.Layer<ROut & ROut2, E2, RIn | RIn2>
|
|
455
455
|
>(2, (self, onFailure) => match(self, { onFailure, onSuccess: succeedContext }))
|
|
456
456
|
|
|
457
457
|
/** @internal */
|
|
458
458
|
export const catchAllCause = dual<
|
|
459
|
-
<E,
|
|
460
|
-
onError: (cause: Cause.Cause<E>) => Layer.Layer<
|
|
461
|
-
) => <
|
|
462
|
-
<
|
|
463
|
-
self: Layer.Layer<
|
|
464
|
-
onError: (cause: Cause.Cause<E>) => Layer.Layer<
|
|
465
|
-
) => Layer.Layer<
|
|
459
|
+
<E, RIn2, E2, ROut2>(
|
|
460
|
+
onError: (cause: Cause.Cause<E>) => Layer.Layer<ROut2, E2, RIn2>
|
|
461
|
+
) => <RIn, ROut>(self: Layer.Layer<ROut, E, RIn>) => Layer.Layer<ROut & ROut2, E2, RIn | RIn2>,
|
|
462
|
+
<RIn, E, ROut, RIn2, E2, ROut22>(
|
|
463
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
464
|
+
onError: (cause: Cause.Cause<E>) => Layer.Layer<ROut22, E2, RIn2>
|
|
465
|
+
) => Layer.Layer<ROut & ROut22, E2, RIn | RIn2>
|
|
466
466
|
>(2, (self, onFailure) => matchCause(self, { onFailure, onSuccess: succeedContext }))
|
|
467
467
|
|
|
468
468
|
/** @internal */
|
|
469
|
-
export const die = (defect: unknown): Layer.Layer<
|
|
469
|
+
export const die = (defect: unknown): Layer.Layer<unknown> => failCause(Cause.die(defect))
|
|
470
470
|
|
|
471
471
|
/** @internal */
|
|
472
|
-
export const dieSync = (evaluate: LazyArg<unknown>): Layer.Layer<
|
|
473
|
-
failCauseSync(() => Cause.die(evaluate()))
|
|
472
|
+
export const dieSync = (evaluate: LazyArg<unknown>): Layer.Layer<unknown> => failCauseSync(() => Cause.die(evaluate()))
|
|
474
473
|
|
|
475
474
|
/** @internal */
|
|
476
|
-
export const discard = <RIn, E, ROut>(self: Layer.Layer<
|
|
475
|
+
export const discard = <RIn, E, ROut>(self: Layer.Layer<ROut, E, RIn>): Layer.Layer<never, E, RIn> =>
|
|
477
476
|
map(self, () => Context.empty())
|
|
478
477
|
|
|
479
478
|
/** @internal */
|
|
@@ -481,8 +480,8 @@ export const context = <R>(): Layer.Layer<R, never, R> => fromEffectContext(core
|
|
|
481
480
|
|
|
482
481
|
/** @internal */
|
|
483
482
|
export const extendScope = <RIn, E, ROut>(
|
|
484
|
-
self: Layer.Layer<
|
|
485
|
-
): Layer.Layer<RIn | Scope.Scope
|
|
483
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
484
|
+
): Layer.Layer<ROut, E, RIn | Scope.Scope> => {
|
|
486
485
|
const extendScope = Object.create(proto)
|
|
487
486
|
extendScope._tag = OpCodes.OP_EXTEND_SCOPE
|
|
488
487
|
extendScope.layer = self
|
|
@@ -490,46 +489,45 @@ export const extendScope = <RIn, E, ROut>(
|
|
|
490
489
|
}
|
|
491
490
|
|
|
492
491
|
/** @internal */
|
|
493
|
-
export const fail = <E>(error: E): Layer.Layer<
|
|
492
|
+
export const fail = <E>(error: E): Layer.Layer<unknown, E> => failCause(Cause.fail(error))
|
|
494
493
|
|
|
495
494
|
/** @internal */
|
|
496
|
-
export const failSync = <E>(evaluate: LazyArg<E>): Layer.Layer<
|
|
495
|
+
export const failSync = <E>(evaluate: LazyArg<E>): Layer.Layer<unknown, E> =>
|
|
497
496
|
failCauseSync(() => Cause.fail(evaluate()))
|
|
498
497
|
|
|
499
498
|
/** @internal */
|
|
500
|
-
export const failCause = <E>(cause: Cause.Cause<E>): Layer.Layer<
|
|
501
|
-
fromEffectContext(core.failCause(cause))
|
|
499
|
+
export const failCause = <E>(cause: Cause.Cause<E>): Layer.Layer<unknown, E> => fromEffectContext(core.failCause(cause))
|
|
502
500
|
|
|
503
501
|
/** @internal */
|
|
504
|
-
export const failCauseSync = <E>(evaluate: LazyArg<Cause.Cause<E>>): Layer.Layer<
|
|
502
|
+
export const failCauseSync = <E>(evaluate: LazyArg<Cause.Cause<E>>): Layer.Layer<unknown, E> =>
|
|
505
503
|
fromEffectContext(core.failCauseSync(evaluate))
|
|
506
504
|
|
|
507
505
|
/** @internal */
|
|
508
506
|
export const flatMap = dual<
|
|
509
507
|
<A, R2, E2, A2>(
|
|
510
|
-
f: (context: Context.Context<A>) => Layer.Layer<
|
|
511
|
-
) => <R, E>(self: Layer.Layer<
|
|
508
|
+
f: (context: Context.Context<A>) => Layer.Layer<A2, E2, R2>
|
|
509
|
+
) => <R, E>(self: Layer.Layer<A, E, R>) => Layer.Layer<A2, E | E2, R | R2>,
|
|
512
510
|
<R, E, A, R2, E2, A2>(
|
|
513
|
-
self: Layer.Layer<
|
|
514
|
-
f: (context: Context.Context<A>) => Layer.Layer<
|
|
515
|
-
) => Layer.Layer<
|
|
511
|
+
self: Layer.Layer<A, E, R>,
|
|
512
|
+
f: (context: Context.Context<A>) => Layer.Layer<A2, E2, R2>
|
|
513
|
+
) => Layer.Layer<A2, E | E2, R | R2>
|
|
516
514
|
>(2, (self, f) => match(self, { onFailure: fail, onSuccess: f }))
|
|
517
515
|
|
|
518
516
|
/** @internal */
|
|
519
517
|
export const flatten = dual<
|
|
520
518
|
<R2, E2, A, I>(
|
|
521
|
-
tag: Context.Tag<I, Layer.Layer<
|
|
519
|
+
tag: Context.Tag<I, Layer.Layer<A, E2, R2>>
|
|
522
520
|
) => <R, E>(
|
|
523
|
-
self: Layer.Layer<
|
|
524
|
-
) => Layer.Layer<
|
|
521
|
+
self: Layer.Layer<I, E, R>
|
|
522
|
+
) => Layer.Layer<A, E | E2, R | R2>,
|
|
525
523
|
<R, E, A, R2, E2, I>(
|
|
526
|
-
self: Layer.Layer<
|
|
527
|
-
tag: Context.Tag<I, Layer.Layer<
|
|
528
|
-
) => Layer.Layer<
|
|
524
|
+
self: Layer.Layer<I, E, R>,
|
|
525
|
+
tag: Context.Tag<I, Layer.Layer<A, E2, R2>>
|
|
526
|
+
) => Layer.Layer<A, E | E2, R | R2>
|
|
529
527
|
>(2, (self, tag) => flatMap(self, Context.get(tag as any) as any))
|
|
530
528
|
|
|
531
529
|
/** @internal */
|
|
532
|
-
export const fresh = <
|
|
530
|
+
export const fresh = <A, E, R>(self: Layer.Layer<A, E, R>): Layer.Layer<A, E, R> => {
|
|
533
531
|
const fresh = Object.create(proto)
|
|
534
532
|
fresh._tag = OpCodes.OP_FRESH
|
|
535
533
|
fresh.layer = self
|
|
@@ -540,13 +538,13 @@ export const fresh = <R, E, A>(self: Layer.Layer<R, E, A>): Layer.Layer<R, E, A>
|
|
|
540
538
|
export const fromEffect = dual<
|
|
541
539
|
<T extends Context.Tag<any, any>>(
|
|
542
540
|
tag: T
|
|
543
|
-
) => <
|
|
544
|
-
effect: Effect.Effect<
|
|
545
|
-
) => Layer.Layer<
|
|
546
|
-
<T extends Context.Tag<any, any>,
|
|
541
|
+
) => <E, R>(
|
|
542
|
+
effect: Effect.Effect<Context.Tag.Service<T>, E, R>
|
|
543
|
+
) => Layer.Layer<Context.Tag.Identifier<T>, E, R>,
|
|
544
|
+
<T extends Context.Tag<any, any>, E, R>(
|
|
547
545
|
tag: T,
|
|
548
|
-
effect: Effect.Effect<
|
|
549
|
-
) => Layer.Layer<
|
|
546
|
+
effect: Effect.Effect<Context.Tag.Service<T>, E, R>
|
|
547
|
+
) => Layer.Layer<Context.Tag.Identifier<T>, E, R>
|
|
550
548
|
>(2, (a, b) => {
|
|
551
549
|
const tagFirst = Context.isTag(a)
|
|
552
550
|
const tag = (tagFirst ? a : b) as Context.Tag<unknown, unknown>
|
|
@@ -555,13 +553,13 @@ export const fromEffect = dual<
|
|
|
555
553
|
})
|
|
556
554
|
|
|
557
555
|
/** @internal */
|
|
558
|
-
export const fromEffectDiscard = <
|
|
556
|
+
export const fromEffectDiscard = <_, E, R>(effect: Effect.Effect<_, E, R>) =>
|
|
559
557
|
fromEffectContext(core.map(effect, () => Context.empty()))
|
|
560
558
|
|
|
561
559
|
/** @internal */
|
|
562
|
-
export function fromEffectContext<
|
|
563
|
-
effect: Effect.Effect<
|
|
564
|
-
): Layer.Layer<
|
|
560
|
+
export function fromEffectContext<A, E, R>(
|
|
561
|
+
effect: Effect.Effect<Context.Context<A>, E, R>
|
|
562
|
+
): Layer.Layer<A, E, R> {
|
|
565
563
|
const fromEffect = Object.create(proto)
|
|
566
564
|
fromEffect._tag = OpCodes.OP_FROM_EFFECT
|
|
567
565
|
fromEffect.effect = effect
|
|
@@ -570,19 +568,19 @@ export function fromEffectContext<R, E, A>(
|
|
|
570
568
|
|
|
571
569
|
/** @internal */
|
|
572
570
|
export const fiberRefLocally = dual<
|
|
573
|
-
<X>(ref: FiberRef<X>, value: X) => <
|
|
574
|
-
<R, E, A, X>(self: Layer.Layer<
|
|
571
|
+
<X>(ref: FiberRef<X>, value: X) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E, R>,
|
|
572
|
+
<R, E, A, X>(self: Layer.Layer<A, E, R>, ref: FiberRef<X>, value: X) => Layer.Layer<A, E, R>
|
|
575
573
|
>(3, (self, ref, value) => locallyEffect(self, core.fiberRefLocally(ref, value)))
|
|
576
574
|
|
|
577
575
|
/** @internal */
|
|
578
576
|
export const locallyEffect = dual<
|
|
579
577
|
<RIn, E, ROut, RIn2, E2, ROut2>(
|
|
580
578
|
f: (_: Effect.Effect<RIn, E, Context.Context<ROut>>) => Effect.Effect<RIn2, E2, Context.Context<ROut2>>
|
|
581
|
-
) => (self: Layer.Layer<
|
|
579
|
+
) => (self: Layer.Layer<ROut, E, RIn>) => Layer.Layer<ROut2, E2, RIn2>,
|
|
582
580
|
<RIn, E, ROut, RIn2, E2, ROut2>(
|
|
583
|
-
self: Layer.Layer<
|
|
581
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
584
582
|
f: (_: Effect.Effect<RIn, E, Context.Context<ROut>>) => Effect.Effect<RIn2, E2, Context.Context<ROut2>>
|
|
585
|
-
) => Layer.Layer<
|
|
583
|
+
) => Layer.Layer<ROut2, E2, RIn2>
|
|
586
584
|
>(2, (self, f) => {
|
|
587
585
|
const locally = Object.create(proto)
|
|
588
586
|
locally._tag = "Locally"
|
|
@@ -593,16 +591,16 @@ export const locallyEffect = dual<
|
|
|
593
591
|
|
|
594
592
|
/** @internal */
|
|
595
593
|
export const fiberRefLocallyWith = dual<
|
|
596
|
-
<X>(ref: FiberRef<X>, value: (_: X) => X) => <
|
|
597
|
-
<R, E, A, X>(self: Layer.Layer<
|
|
594
|
+
<X>(ref: FiberRef<X>, value: (_: X) => X) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E, R>,
|
|
595
|
+
<R, E, A, X>(self: Layer.Layer<A, E, R>, ref: FiberRef<X>, value: (_: X) => X) => Layer.Layer<A, E, R>
|
|
598
596
|
>(3, (self, ref, value) => locallyEffect(self, core.fiberRefLocallyWith(ref, value)))
|
|
599
597
|
|
|
600
598
|
/** @internal */
|
|
601
|
-
export const fiberRefLocallyScoped = <A>(self: FiberRef<A>, value: A): Layer.Layer<never
|
|
599
|
+
export const fiberRefLocallyScoped = <A>(self: FiberRef<A>, value: A): Layer.Layer<never> =>
|
|
602
600
|
scopedDiscard(fiberRuntime.fiberRefLocallyScoped(self, value))
|
|
603
601
|
|
|
604
602
|
/** @internal */
|
|
605
|
-
export const fiberRefLocallyScopedWith = <A>(self: FiberRef<A>, value: (_: A) => A): Layer.Layer<never
|
|
603
|
+
export const fiberRefLocallyScopedWith = <A>(self: FiberRef<A>, value: (_: A) => A): Layer.Layer<never> =>
|
|
606
604
|
scopedDiscard(fiberRuntime.fiberRefLocallyScopedWith(self, value))
|
|
607
605
|
|
|
608
606
|
/** @internal */
|
|
@@ -610,11 +608,11 @@ export const fromFunction = <A extends Context.Tag<any, any>, B extends Context.
|
|
|
610
608
|
tagA: A,
|
|
611
609
|
tagB: B,
|
|
612
610
|
f: (a: Context.Tag.Service<A>) => Context.Tag.Service<B>
|
|
613
|
-
): Layer.Layer<Context.Tag.Identifier<
|
|
611
|
+
): Layer.Layer<Context.Tag.Identifier<B>, never, Context.Tag.Identifier<A>> =>
|
|
614
612
|
fromEffectContext(core.map(tagA, (a) => Context.make(tagB, f(a))))
|
|
615
613
|
|
|
616
614
|
/** @internal */
|
|
617
|
-
export const launch = <RIn, E, ROut>(self: Layer.Layer<
|
|
615
|
+
export const launch = <RIn, E, ROut>(self: Layer.Layer<ROut, E, RIn>): Effect.Effect<never, E, RIn> =>
|
|
618
616
|
fiberRuntime.scopedEffect(
|
|
619
617
|
core.zipRight(
|
|
620
618
|
fiberRuntime.scopeWith((scope) => pipe(self, buildWithScope(scope))),
|
|
@@ -626,34 +624,34 @@ export const launch = <RIn, E, ROut>(self: Layer.Layer<RIn, E, ROut>): Effect.Ef
|
|
|
626
624
|
export const map = dual<
|
|
627
625
|
<A, B>(
|
|
628
626
|
f: (context: Context.Context<A>) => Context.Context<B>
|
|
629
|
-
) => <R, E>(self: Layer.Layer<
|
|
627
|
+
) => <R, E>(self: Layer.Layer<A, E, R>) => Layer.Layer<B, E, R>,
|
|
630
628
|
<R, E, A, B>(
|
|
631
|
-
self: Layer.Layer<
|
|
629
|
+
self: Layer.Layer<A, E, R>,
|
|
632
630
|
f: (context: Context.Context<A>) => Context.Context<B>
|
|
633
|
-
) => Layer.Layer<
|
|
631
|
+
) => Layer.Layer<B, E, R>
|
|
634
632
|
>(2, (self, f) => flatMap(self, (context) => succeedContext(f(context))))
|
|
635
633
|
|
|
636
634
|
/** @internal */
|
|
637
635
|
export const mapError = dual<
|
|
638
|
-
<E, E2>(f: (error: E) => E2) => <R, A>(self: Layer.Layer<
|
|
639
|
-
<R, E, A, E2>(self: Layer.Layer<
|
|
636
|
+
<E, E2>(f: (error: E) => E2) => <R, A>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E2, R>,
|
|
637
|
+
<R, E, A, E2>(self: Layer.Layer<A, E, R>, f: (error: E) => E2) => Layer.Layer<A, E2, R>
|
|
640
638
|
>(2, (self, f) => catchAll(self, (error) => failSync(() => f(error))))
|
|
641
639
|
|
|
642
640
|
/** @internal */
|
|
643
641
|
export const matchCause = dual<
|
|
644
642
|
<E, A, R2, E2, A2, R3, E3, A3>(
|
|
645
643
|
options: {
|
|
646
|
-
readonly onFailure: (cause: Cause.Cause<E>) => Layer.Layer<
|
|
647
|
-
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<
|
|
644
|
+
readonly onFailure: (cause: Cause.Cause<E>) => Layer.Layer<A2, E2, R2>
|
|
645
|
+
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<A3, E3, R3>
|
|
648
646
|
}
|
|
649
|
-
) => <R>(self: Layer.Layer<
|
|
647
|
+
) => <R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A2 & A3, E2 | E3, R | R2 | R3>,
|
|
650
648
|
<R, E, A, R2, E2, A2, R3, E3, A3>(
|
|
651
|
-
self: Layer.Layer<
|
|
649
|
+
self: Layer.Layer<A, E, R>,
|
|
652
650
|
options: {
|
|
653
|
-
readonly onFailure: (cause: Cause.Cause<E>) => Layer.Layer<
|
|
654
|
-
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<
|
|
651
|
+
readonly onFailure: (cause: Cause.Cause<E>) => Layer.Layer<A2, E2, R2>
|
|
652
|
+
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<A3, E3, R3>
|
|
655
653
|
}
|
|
656
|
-
) => Layer.Layer<
|
|
654
|
+
) => Layer.Layer<A2 & A3, E2 | E3, R | R2 | R3>
|
|
657
655
|
>(2, (self, { onFailure, onSuccess }) => {
|
|
658
656
|
const fold = Object.create(proto)
|
|
659
657
|
fold._tag = OpCodes.OP_FOLD
|
|
@@ -667,17 +665,17 @@ export const matchCause = dual<
|
|
|
667
665
|
export const match = dual<
|
|
668
666
|
<E, R2, E2, A2, A, R3, E3, A3>(
|
|
669
667
|
options: {
|
|
670
|
-
readonly onFailure: (error: E) => Layer.Layer<
|
|
671
|
-
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<
|
|
668
|
+
readonly onFailure: (error: E) => Layer.Layer<A2, E2, R2>
|
|
669
|
+
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<A3, E3, R3>
|
|
672
670
|
}
|
|
673
|
-
) => <R>(self: Layer.Layer<
|
|
671
|
+
) => <R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A2 & A3, E2 | E3, R | R2 | R3>,
|
|
674
672
|
<R, E, A, R2, E2, A2, R3, E3, A3>(
|
|
675
|
-
self: Layer.Layer<
|
|
673
|
+
self: Layer.Layer<A, E, R>,
|
|
676
674
|
options: {
|
|
677
|
-
readonly onFailure: (error: E) => Layer.Layer<
|
|
678
|
-
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<
|
|
675
|
+
readonly onFailure: (error: E) => Layer.Layer<A2, E2, R2>
|
|
676
|
+
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<A3, E3, R3>
|
|
679
677
|
}
|
|
680
|
-
) => Layer.Layer<
|
|
678
|
+
) => Layer.Layer<A2 & A3, E2 | E3, R | R2 | R3>
|
|
681
679
|
>(2, (self, { onFailure, onSuccess }) =>
|
|
682
680
|
matchCause(self, {
|
|
683
681
|
onFailure: (cause) => {
|
|
@@ -696,8 +694,8 @@ export const match = dual<
|
|
|
696
694
|
|
|
697
695
|
/** @internal */
|
|
698
696
|
export const memoize = <RIn, E, ROut>(
|
|
699
|
-
self: Layer.Layer<
|
|
700
|
-
): Effect.Effect<
|
|
697
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
698
|
+
): Effect.Effect<Layer.Layer<ROut, E, RIn>, never, Scope.Scope> =>
|
|
701
699
|
fiberRuntime.scopeWith((scope) =>
|
|
702
700
|
core.map(
|
|
703
701
|
effect.memoize(buildWithScope(self, scope)),
|
|
@@ -708,26 +706,26 @@ export const memoize = <RIn, E, ROut>(
|
|
|
708
706
|
/** @internal */
|
|
709
707
|
export const merge = dual<
|
|
710
708
|
<RIn2, E2, ROut2>(
|
|
711
|
-
that: Layer.Layer<
|
|
712
|
-
) => <RIn, E1, ROut>(self: Layer.Layer<
|
|
713
|
-
|
|
709
|
+
that: Layer.Layer<ROut2, E2, RIn2>
|
|
710
|
+
) => <RIn, E1, ROut>(self: Layer.Layer<ROut, E1, RIn>) => Layer.Layer<
|
|
711
|
+
ROut | ROut2,
|
|
714
712
|
E1 | E2,
|
|
715
|
-
|
|
713
|
+
RIn | RIn2
|
|
716
714
|
>,
|
|
717
|
-
<RIn, E1, ROut, RIn2, E2, ROut2>(self: Layer.Layer<
|
|
718
|
-
|
|
715
|
+
<RIn, E1, ROut, RIn2, E2, ROut2>(self: Layer.Layer<ROut, E1, RIn>, that: Layer.Layer<ROut2, E2, RIn2>) => Layer.Layer<
|
|
716
|
+
ROut | ROut2,
|
|
719
717
|
E1 | E2,
|
|
720
|
-
|
|
718
|
+
RIn | RIn2
|
|
721
719
|
>
|
|
722
720
|
>(2, (self, that) => zipWith(self, that, (a, b) => Context.merge(a, b)))
|
|
723
721
|
|
|
724
722
|
/** @internal */
|
|
725
|
-
export const mergeAll = <Layers extends [Layer.Layer<
|
|
723
|
+
export const mergeAll = <Layers extends [Layer.Layer<never, any, any>, ...Array<Layer.Layer<never, any, any>>]>(
|
|
726
724
|
...layers: Layers
|
|
727
725
|
): Layer.Layer<
|
|
728
|
-
{ [k in keyof Layers]: Layer.Layer.
|
|
726
|
+
{ [k in keyof Layers]: Layer.Layer.Success<Layers[k]> }[number],
|
|
729
727
|
{ [k in keyof Layers]: Layer.Layer.Error<Layers[k]> }[number],
|
|
730
|
-
{ [k in keyof Layers]: Layer.Layer.
|
|
728
|
+
{ [k in keyof Layers]: Layer.Layer.Context<Layers[k]> }[number]
|
|
731
729
|
> => {
|
|
732
730
|
let final = layers[0]
|
|
733
731
|
for (let i = 1; i < layers.length; i++) {
|
|
@@ -737,22 +735,22 @@ export const mergeAll = <Layers extends [Layer.Layer<any, any, never>, ...Array<
|
|
|
737
735
|
}
|
|
738
736
|
|
|
739
737
|
/** @internal */
|
|
740
|
-
export const orDie = <
|
|
738
|
+
export const orDie = <A, E, R>(self: Layer.Layer<A, E, R>): Layer.Layer<A, never, R> =>
|
|
741
739
|
catchAll(self, (defect) => die(defect))
|
|
742
740
|
|
|
743
741
|
/** @internal */
|
|
744
742
|
export const orElse = dual<
|
|
745
743
|
<R2, E2, A2>(
|
|
746
|
-
that: LazyArg<Layer.Layer<
|
|
747
|
-
) => <
|
|
744
|
+
that: LazyArg<Layer.Layer<A2, E2, R2>>
|
|
745
|
+
) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A & A2, E | E2, R | R2>,
|
|
748
746
|
<R, E, A, R2, E2, A2>(
|
|
749
|
-
self: Layer.Layer<
|
|
750
|
-
that: LazyArg<Layer.Layer<
|
|
751
|
-
) => Layer.Layer<
|
|
747
|
+
self: Layer.Layer<A, E, R>,
|
|
748
|
+
that: LazyArg<Layer.Layer<A2, E2, R2>>
|
|
749
|
+
) => Layer.Layer<A & A2, E | E2, R | R2>
|
|
752
750
|
>(2, (self, that) => catchAll(self, that))
|
|
753
751
|
|
|
754
752
|
/** @internal */
|
|
755
|
-
export const passthrough = <RIn, E, ROut>(self: Layer.Layer<
|
|
753
|
+
export const passthrough = <RIn, E, ROut>(self: Layer.Layer<ROut, E, RIn>): Layer.Layer<RIn | ROut, E, RIn> =>
|
|
756
754
|
merge(context<RIn>(), self)
|
|
757
755
|
|
|
758
756
|
/** @internal */
|
|
@@ -761,13 +759,13 @@ export const project = dual<
|
|
|
761
759
|
tagA: A,
|
|
762
760
|
tagB: B,
|
|
763
761
|
f: (a: Context.Tag.Service<A>) => Context.Tag.Service<B>
|
|
764
|
-
) => <RIn, E>(self: Layer.Layer<
|
|
762
|
+
) => <RIn, E>(self: Layer.Layer<Context.Tag.Identifier<A>, E, RIn>) => Layer.Layer<Context.Tag.Identifier<B>, E, RIn>,
|
|
765
763
|
<RIn, E, A extends Context.Tag<any, any>, B extends Context.Tag<any, any>>(
|
|
766
|
-
self: Layer.Layer<
|
|
764
|
+
self: Layer.Layer<Context.Tag.Identifier<A>, E, RIn>,
|
|
767
765
|
tagA: A,
|
|
768
766
|
tagB: B,
|
|
769
767
|
f: (a: Context.Tag.Service<A>) => Context.Tag.Service<B>
|
|
770
|
-
) => Layer.Layer<
|
|
768
|
+
) => Layer.Layer<Context.Tag.Identifier<B>, E, RIn>
|
|
771
769
|
>(4, (self, tagA, tagB, f) => map(self, (context) => Context.make(tagB, f(Context.unsafeGet(context, tagA)))))
|
|
772
770
|
|
|
773
771
|
/** @internal */
|
|
@@ -775,15 +773,15 @@ export const retry = dual<
|
|
|
775
773
|
<RIn2, E, X>(
|
|
776
774
|
schedule: Schedule.Schedule<RIn2, E, X>
|
|
777
775
|
) => <RIn, ROut>(
|
|
778
|
-
self: Layer.Layer<
|
|
779
|
-
) => Layer.Layer<RIn | RIn2
|
|
776
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
777
|
+
) => Layer.Layer<ROut, E, RIn | RIn2>,
|
|
780
778
|
<RIn, E, ROut, RIn2, X>(
|
|
781
|
-
self: Layer.Layer<
|
|
779
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
782
780
|
schedule: Schedule.Schedule<RIn2, E, X>
|
|
783
|
-
) => Layer.Layer<RIn | RIn2
|
|
781
|
+
) => Layer.Layer<ROut, E, RIn | RIn2>
|
|
784
782
|
>(2, (self, schedule) =>
|
|
785
783
|
suspend(() => {
|
|
786
|
-
const stateTag = Context.
|
|
784
|
+
const stateTag = Context.GenericTag<{ state: unknown }>("effect/Layer/retry/{ state: unknown }")
|
|
787
785
|
return pipe(
|
|
788
786
|
succeed(stateTag, { state: schedule.initial }),
|
|
789
787
|
flatMap((env: Context.Context<{ state: unknown }>) =>
|
|
@@ -794,11 +792,11 @@ export const retry = dual<
|
|
|
794
792
|
|
|
795
793
|
/** @internal */
|
|
796
794
|
const retryLoop = <RIn, E, ROut, RIn2, X>(
|
|
797
|
-
self: Layer.Layer<
|
|
795
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
798
796
|
schedule: Schedule.Schedule<RIn2, E, X>,
|
|
799
797
|
stateTag: Context.Tag<{ state: unknown }, { state: unknown }>,
|
|
800
798
|
state: unknown
|
|
801
|
-
): Layer.Layer<RIn | RIn2
|
|
799
|
+
): Layer.Layer<ROut, E, RIn | RIn2> => {
|
|
802
800
|
return pipe(
|
|
803
801
|
self,
|
|
804
802
|
catchAll((error) =>
|
|
@@ -816,7 +814,7 @@ const retryUpdate = <RIn, E, X>(
|
|
|
816
814
|
stateTag: Context.Tag<{ state: unknown }, { state: unknown }>,
|
|
817
815
|
error: E,
|
|
818
816
|
state: unknown
|
|
819
|
-
): Layer.Layer<
|
|
817
|
+
): Layer.Layer<{ state: unknown }, E, RIn> => {
|
|
820
818
|
return fromEffect(
|
|
821
819
|
stateTag,
|
|
822
820
|
pipe(
|
|
@@ -843,12 +841,12 @@ export const scoped = dual<
|
|
|
843
841
|
<T extends Context.Tag<any, any>>(
|
|
844
842
|
tag: T
|
|
845
843
|
) => <R, E>(
|
|
846
|
-
effect: Effect.Effect<
|
|
847
|
-
) => Layer.Layer<Exclude<R, Scope.Scope
|
|
844
|
+
effect: Effect.Effect<Context.Tag.Service<T>, E, R>
|
|
845
|
+
) => Layer.Layer<Context.Tag.Identifier<T>, E, Exclude<R, Scope.Scope>>,
|
|
848
846
|
<T extends Context.Tag<any, any>, R, E>(
|
|
849
847
|
tag: T,
|
|
850
|
-
effect: Effect.Effect<
|
|
851
|
-
) => Layer.Layer<Exclude<R, Scope.Scope
|
|
848
|
+
effect: Effect.Effect<Context.Tag.Service<T>, E, R>
|
|
849
|
+
) => Layer.Layer<Context.Tag.Identifier<T>, E, Exclude<R, Scope.Scope>>
|
|
852
850
|
>(2, (a, b) => {
|
|
853
851
|
const tagFirst = Context.isTag(a)
|
|
854
852
|
const tag = (tagFirst ? a : b) as Context.Tag<unknown, unknown>
|
|
@@ -857,14 +855,14 @@ export const scoped = dual<
|
|
|
857
855
|
})
|
|
858
856
|
|
|
859
857
|
/** @internal */
|
|
860
|
-
export const scopedDiscard = <
|
|
861
|
-
effect: Effect.Effect<
|
|
862
|
-
): Layer.Layer<Exclude<R, Scope.Scope
|
|
858
|
+
export const scopedDiscard = <_, E, R>(
|
|
859
|
+
effect: Effect.Effect<_, E, R>
|
|
860
|
+
): Layer.Layer<never, E, Exclude<R, Scope.Scope>> => scopedContext(pipe(effect, core.as(Context.empty())))
|
|
863
861
|
|
|
864
862
|
/** @internal */
|
|
865
|
-
export const scopedContext = <
|
|
866
|
-
effect: Effect.Effect<
|
|
867
|
-
): Layer.Layer<Exclude<R, Scope.Scope
|
|
863
|
+
export const scopedContext = <A, E, R>(
|
|
864
|
+
effect: Effect.Effect<Context.Context<A>, E, R>
|
|
865
|
+
): Layer.Layer<A, E, Exclude<R, Scope.Scope>> => {
|
|
868
866
|
const scoped = Object.create(proto)
|
|
869
867
|
scoped._tag = OpCodes.OP_SCOPED
|
|
870
868
|
scoped.effect = effect
|
|
@@ -872,7 +870,7 @@ export const scopedContext = <R, E, A>(
|
|
|
872
870
|
}
|
|
873
871
|
|
|
874
872
|
/** @internal */
|
|
875
|
-
export const scope: Layer.Layer<
|
|
873
|
+
export const scope: Layer.Layer<Scope.Scope.Closeable> = scopedContext(
|
|
876
874
|
core.map(
|
|
877
875
|
fiberRuntime.acquireRelease(
|
|
878
876
|
fiberRuntime.scopeMake(),
|
|
@@ -893,11 +891,11 @@ export const succeed = dual<
|
|
|
893
891
|
tag: T
|
|
894
892
|
) => (
|
|
895
893
|
resource: Context.Tag.Service<T>
|
|
896
|
-
) => Layer.Layer<
|
|
894
|
+
) => Layer.Layer<Context.Tag.Identifier<T>>,
|
|
897
895
|
<T extends Context.Tag<any, any>>(
|
|
898
896
|
tag: T,
|
|
899
897
|
resource: Context.Tag.Service<T>
|
|
900
|
-
) => Layer.Layer<
|
|
898
|
+
) => Layer.Layer<Context.Tag.Identifier<T>>
|
|
901
899
|
>(2, (a, b) => {
|
|
902
900
|
const tagFirst = Context.isTag(a)
|
|
903
901
|
const tag = (tagFirst ? a : b) as Context.Tag<unknown, unknown>
|
|
@@ -908,7 +906,7 @@ export const succeed = dual<
|
|
|
908
906
|
/** @internal */
|
|
909
907
|
export const succeedContext = <A>(
|
|
910
908
|
context: Context.Context<A>
|
|
911
|
-
): Layer.Layer<
|
|
909
|
+
): Layer.Layer<A> => {
|
|
912
910
|
return fromEffectContext(core.succeed(context))
|
|
913
911
|
}
|
|
914
912
|
|
|
@@ -917,8 +915,8 @@ export const empty = succeedContext(Context.empty())
|
|
|
917
915
|
|
|
918
916
|
/** @internal */
|
|
919
917
|
export const suspend = <RIn, E, ROut>(
|
|
920
|
-
evaluate: LazyArg<Layer.Layer<
|
|
921
|
-
): Layer.Layer<
|
|
918
|
+
evaluate: LazyArg<Layer.Layer<ROut, E, RIn>>
|
|
919
|
+
): Layer.Layer<ROut, E, RIn> => {
|
|
922
920
|
const suspend = Object.create(proto)
|
|
923
921
|
suspend._tag = OpCodes.OP_SUSPEND
|
|
924
922
|
suspend.evaluate = evaluate
|
|
@@ -931,11 +929,11 @@ export const sync = dual<
|
|
|
931
929
|
tag: T
|
|
932
930
|
) => (
|
|
933
931
|
evaluate: LazyArg<Context.Tag.Service<T>>
|
|
934
|
-
) => Layer.Layer<
|
|
932
|
+
) => Layer.Layer<Context.Tag.Identifier<T>>,
|
|
935
933
|
<T extends Context.Tag<any, any>>(
|
|
936
934
|
tag: T,
|
|
937
935
|
evaluate: LazyArg<Context.Tag.Service<T>>
|
|
938
|
-
) => Layer.Layer<
|
|
936
|
+
) => Layer.Layer<Context.Tag.Identifier<T>>
|
|
939
937
|
>(2, (a, b) => {
|
|
940
938
|
const tagFirst = Context.isTag(a)
|
|
941
939
|
const tag = (tagFirst ? a : b) as Context.Tag<unknown, unknown>
|
|
@@ -944,30 +942,30 @@ export const sync = dual<
|
|
|
944
942
|
})
|
|
945
943
|
|
|
946
944
|
/** @internal */
|
|
947
|
-
export const syncContext = <A>(evaluate: LazyArg<Context.Context<A>>): Layer.Layer<
|
|
945
|
+
export const syncContext = <A>(evaluate: LazyArg<Context.Context<A>>): Layer.Layer<A> => {
|
|
948
946
|
return fromEffectContext(core.sync(evaluate))
|
|
949
947
|
}
|
|
950
948
|
|
|
951
949
|
/** @internal */
|
|
952
950
|
export const tap = dual<
|
|
953
951
|
<ROut, XR extends ROut, RIn2, E2, X>(
|
|
954
|
-
f: (context: Context.Context<XR>) => Effect.Effect<
|
|
955
|
-
) => <RIn, E>(self: Layer.Layer<
|
|
952
|
+
f: (context: Context.Context<XR>) => Effect.Effect<X, E2, RIn2>
|
|
953
|
+
) => <RIn, E>(self: Layer.Layer<ROut, E, RIn>) => Layer.Layer<ROut, E | E2, RIn | RIn2>,
|
|
956
954
|
<RIn, E, ROut, XR extends ROut, RIn2, E2, X>(
|
|
957
|
-
self: Layer.Layer<
|
|
958
|
-
f: (context: Context.Context<XR>) => Effect.Effect<
|
|
959
|
-
) => Layer.Layer<
|
|
955
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
956
|
+
f: (context: Context.Context<XR>) => Effect.Effect<X, E2, RIn2>
|
|
957
|
+
) => Layer.Layer<ROut, E | E2, RIn | RIn2>
|
|
960
958
|
>(2, (self, f) => flatMap(self, (context) => fromEffectContext(core.as(f(context), context))))
|
|
961
959
|
|
|
962
960
|
/** @internal */
|
|
963
961
|
export const tapError = dual<
|
|
964
962
|
<E, XE extends E, RIn2, E2, X>(
|
|
965
|
-
f: (e: XE) => Effect.Effect<
|
|
966
|
-
) => <RIn, ROut>(self: Layer.Layer<
|
|
963
|
+
f: (e: XE) => Effect.Effect<X, E2, RIn2>
|
|
964
|
+
) => <RIn, ROut>(self: Layer.Layer<ROut, E, RIn>) => Layer.Layer<ROut, E | E2, RIn | RIn2>,
|
|
967
965
|
<RIn, E, XE extends E, ROut, RIn2, E2, X>(
|
|
968
|
-
self: Layer.Layer<
|
|
969
|
-
f: (e: XE) => Effect.Effect<
|
|
970
|
-
) => Layer.Layer<
|
|
966
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
967
|
+
f: (e: XE) => Effect.Effect<X, E2, RIn2>
|
|
968
|
+
) => Layer.Layer<ROut, E | E2, RIn | RIn2>
|
|
971
969
|
>(2, (self, f) =>
|
|
972
970
|
catchAll(
|
|
973
971
|
self,
|
|
@@ -977,12 +975,12 @@ export const tapError = dual<
|
|
|
977
975
|
/** @internal */
|
|
978
976
|
export const tapErrorCause = dual<
|
|
979
977
|
<E, XE extends E, RIn2, E2, X>(
|
|
980
|
-
f: (cause: Cause.Cause<XE>) => Effect.Effect<
|
|
981
|
-
) => <RIn, ROut>(self: Layer.Layer<
|
|
978
|
+
f: (cause: Cause.Cause<XE>) => Effect.Effect<X, E2, RIn2>
|
|
979
|
+
) => <RIn, ROut>(self: Layer.Layer<ROut, E, RIn>) => Layer.Layer<ROut, E | E2, RIn | RIn2>,
|
|
982
980
|
<RIn, E, XE extends E, ROut, RIn2, E2, X>(
|
|
983
|
-
self: Layer.Layer<
|
|
984
|
-
f: (cause: Cause.Cause<XE>) => Effect.Effect<
|
|
985
|
-
) => Layer.Layer<
|
|
981
|
+
self: Layer.Layer<ROut, E, RIn>,
|
|
982
|
+
f: (cause: Cause.Cause<XE>) => Effect.Effect<X, E2, RIn2>
|
|
983
|
+
) => Layer.Layer<ROut, E | E2, RIn | RIn2>
|
|
986
984
|
>(2, (self, f) =>
|
|
987
985
|
catchAllCause(
|
|
988
986
|
self,
|
|
@@ -991,8 +989,8 @@ export const tapErrorCause = dual<
|
|
|
991
989
|
|
|
992
990
|
/** @internal */
|
|
993
991
|
export const toRuntime = <RIn, E, ROut>(
|
|
994
|
-
self: Layer.Layer<
|
|
995
|
-
): Effect.Effect<RIn | Scope.Scope
|
|
992
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
993
|
+
): Effect.Effect<Runtime.Runtime<ROut>, E, RIn | Scope.Scope> => {
|
|
996
994
|
return pipe(
|
|
997
995
|
fiberRuntime.scopeWith((scope) => pipe(self, buildWithScope(scope))),
|
|
998
996
|
core.flatMap((context) =>
|
|
@@ -1007,17 +1005,17 @@ export const toRuntime = <RIn, E, ROut>(
|
|
|
1007
1005
|
/** @internal */
|
|
1008
1006
|
export const provide = dual<
|
|
1009
1007
|
<RIn, E, ROut>(
|
|
1010
|
-
self: Layer.Layer<
|
|
1008
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
1011
1009
|
) => <RIn2, E2, ROut2>(
|
|
1012
|
-
that: Layer.Layer<
|
|
1013
|
-
) => Layer.Layer<RIn | Exclude<RIn2, ROut
|
|
1010
|
+
that: Layer.Layer<ROut2, E2, RIn2>
|
|
1011
|
+
) => Layer.Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>,
|
|
1014
1012
|
<RIn2, E2, ROut2, RIn, E, ROut>(
|
|
1015
|
-
that: Layer.Layer<
|
|
1016
|
-
self: Layer.Layer<
|
|
1017
|
-
) => Layer.Layer<RIn | Exclude<RIn2, ROut
|
|
1013
|
+
that: Layer.Layer<ROut2, E2, RIn2>,
|
|
1014
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
1015
|
+
) => Layer.Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
|
|
1018
1016
|
>(2, <RIn2, E2, ROut2, RIn, E, ROut>(
|
|
1019
|
-
that: Layer.Layer<
|
|
1020
|
-
self: Layer.Layer<
|
|
1017
|
+
that: Layer.Layer<ROut2, E2, RIn2>,
|
|
1018
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
1021
1019
|
) =>
|
|
1022
1020
|
suspend(() => {
|
|
1023
1021
|
const provideTo = Object.create(proto)
|
|
@@ -1035,15 +1033,15 @@ export const provide = dual<
|
|
|
1035
1033
|
/** @internal */
|
|
1036
1034
|
export const provideMerge = dual<
|
|
1037
1035
|
<RIn, E, ROut>(
|
|
1038
|
-
self: Layer.Layer<
|
|
1036
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
1039
1037
|
) => <RIn2, E2, ROut2>(
|
|
1040
|
-
that: Layer.Layer<
|
|
1041
|
-
) => Layer.Layer<
|
|
1038
|
+
that: Layer.Layer<ROut2, E2, RIn2>
|
|
1039
|
+
) => Layer.Layer<ROut | ROut2, E2 | E, RIn | Exclude<RIn2, ROut>>,
|
|
1042
1040
|
<RIn2, E2, ROut2, RIn, E, ROut>(
|
|
1043
|
-
that: Layer.Layer<
|
|
1044
|
-
self: Layer.Layer<
|
|
1045
|
-
) => Layer.Layer<
|
|
1046
|
-
>(2, <RIn2, E2, ROut2, RIn, E, ROut>(that: Layer.Layer<
|
|
1041
|
+
that: Layer.Layer<ROut2, E2, RIn2>,
|
|
1042
|
+
self: Layer.Layer<ROut, E, RIn>
|
|
1043
|
+
) => Layer.Layer<ROut | ROut2, E2 | E, RIn | Exclude<RIn2, ROut>>
|
|
1044
|
+
>(2, <RIn2, E2, ROut2, RIn, E, ROut>(that: Layer.Layer<ROut2, E2, RIn2>, self: Layer.Layer<ROut, E, RIn>) => {
|
|
1047
1045
|
const zipWith = Object.create(proto)
|
|
1048
1046
|
zipWith._tag = OpCodes.OP_PROVIDE_MERGE
|
|
1049
1047
|
zipWith.first = self
|
|
@@ -1057,14 +1055,14 @@ export const provideMerge = dual<
|
|
|
1057
1055
|
/** @internal */
|
|
1058
1056
|
export const zipWith = dual<
|
|
1059
1057
|
<R2, E2, B, A, C>(
|
|
1060
|
-
that: Layer.Layer<
|
|
1058
|
+
that: Layer.Layer<B, E2, R2>,
|
|
1061
1059
|
f: (a: Context.Context<A>, b: Context.Context<B>) => Context.Context<C>
|
|
1062
|
-
) => <R, E>(self: Layer.Layer<
|
|
1060
|
+
) => <R, E>(self: Layer.Layer<A, E, R>) => Layer.Layer<C, E | E2, R | R2>,
|
|
1063
1061
|
<R, E, R2, E2, B, A, C>(
|
|
1064
|
-
self: Layer.Layer<
|
|
1065
|
-
that: Layer.Layer<
|
|
1062
|
+
self: Layer.Layer<A, E, R>,
|
|
1063
|
+
that: Layer.Layer<B, E2, R2>,
|
|
1066
1064
|
f: (a: Context.Context<A>, b: Context.Context<B>) => Context.Context<C>
|
|
1067
|
-
) => Layer.Layer<
|
|
1065
|
+
) => Layer.Layer<C, E | E2, R | R2>
|
|
1068
1066
|
>(3, (self, that, f) =>
|
|
1069
1067
|
suspend(() => {
|
|
1070
1068
|
const zipWith = Object.create(proto)
|
|
@@ -1077,17 +1075,17 @@ export const zipWith = dual<
|
|
|
1077
1075
|
|
|
1078
1076
|
/** @internal */
|
|
1079
1077
|
export const unwrapEffect = <R, E, R1, E1, A>(
|
|
1080
|
-
self: Effect.Effect<
|
|
1081
|
-
): Layer.Layer<
|
|
1082
|
-
const tag = Context.
|
|
1078
|
+
self: Effect.Effect<Layer.Layer<A, E1, R1>, E, R>
|
|
1079
|
+
): Layer.Layer<A, E | E1, R | R1> => {
|
|
1080
|
+
const tag = Context.GenericTag<Layer.Layer<A, E1, R1>>("effect/Layer/unwrapEffect/Layer.Layer<R1, E1, A>")
|
|
1083
1081
|
return flatMap(fromEffect(tag, self), (context) => Context.get(context, tag))
|
|
1084
1082
|
}
|
|
1085
1083
|
|
|
1086
1084
|
/** @internal */
|
|
1087
1085
|
export const unwrapScoped = <R, E, R1, E1, A>(
|
|
1088
|
-
self: Effect.Effect<
|
|
1089
|
-
): Layer.Layer<R1 | Exclude<R, Scope.Scope
|
|
1090
|
-
const tag = Context.
|
|
1086
|
+
self: Effect.Effect<Layer.Layer<A, E1, R1>, E, R>
|
|
1087
|
+
): Layer.Layer<A, E | E1, R1 | Exclude<R, Scope.Scope>> => {
|
|
1088
|
+
const tag = Context.GenericTag<Layer.Layer<A, E1, R1>>("effect/Layer/unwrapScoped/Layer.Layer<R1, E1, A>")
|
|
1091
1089
|
return flatMap(scoped(tag, self), (context) => Context.get(context, tag))
|
|
1092
1090
|
}
|
|
1093
1091
|
|
|
@@ -1104,19 +1102,19 @@ export const withSpan = dual<
|
|
|
1104
1102
|
readonly root?: boolean | undefined
|
|
1105
1103
|
readonly context?: Context.Context<never> | undefined
|
|
1106
1104
|
readonly onEnd?:
|
|
1107
|
-
| ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<
|
|
1105
|
+
| ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>)
|
|
1108
1106
|
| undefined
|
|
1109
|
-
}) => <
|
|
1110
|
-
<
|
|
1107
|
+
}) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E, Exclude<R, Tracer.ParentSpan>>,
|
|
1108
|
+
<A, E, R>(self: Layer.Layer<A, E, R>, name: string, options?: {
|
|
1111
1109
|
readonly attributes?: Record<string, unknown> | undefined
|
|
1112
1110
|
readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
|
|
1113
1111
|
readonly parent?: Tracer.ParentSpan | undefined
|
|
1114
1112
|
readonly root?: boolean | undefined
|
|
1115
1113
|
readonly context?: Context.Context<never> | undefined
|
|
1116
1114
|
readonly onEnd?:
|
|
1117
|
-
| ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<
|
|
1115
|
+
| ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>)
|
|
1118
1116
|
| undefined
|
|
1119
|
-
}) => Layer.Layer<Exclude<R, Tracer.ParentSpan
|
|
1117
|
+
}) => Layer.Layer<A, E, Exclude<R, Tracer.ParentSpan>>
|
|
1120
1118
|
>((args) => isLayer(args[0]), (self, name, options) =>
|
|
1121
1119
|
unwrapScoped(
|
|
1122
1120
|
core.map(
|
|
@@ -1134,20 +1132,20 @@ export const withSpan = dual<
|
|
|
1134
1132
|
export const withParentSpan = dual<
|
|
1135
1133
|
(
|
|
1136
1134
|
span: Tracer.ParentSpan
|
|
1137
|
-
) => <
|
|
1138
|
-
<
|
|
1135
|
+
) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E, Exclude<R, Tracer.ParentSpan>>,
|
|
1136
|
+
<A, E, R>(self: Layer.Layer<A, E, R>, span: Tracer.ParentSpan) => Layer.Layer<A, E, Exclude<R, Tracer.ParentSpan>>
|
|
1139
1137
|
>(2, (self, span) => provide(self, succeedContext(Context.make(tracer.spanTag, span))))
|
|
1140
1138
|
|
|
1141
1139
|
// circular with Effect
|
|
1142
1140
|
|
|
1143
1141
|
const provideSomeLayer = dual<
|
|
1144
1142
|
<R2, E2, A2>(
|
|
1145
|
-
layer: Layer.Layer<
|
|
1146
|
-
) => <
|
|
1143
|
+
layer: Layer.Layer<A2, E2, R2>
|
|
1144
|
+
) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E2, R2 | Exclude<R, A2>>,
|
|
1147
1145
|
<R, E, A, R2, E2, A2>(
|
|
1148
|
-
self: Effect.Effect<
|
|
1149
|
-
layer: Layer.Layer<
|
|
1150
|
-
) => Effect.Effect<R2 | Exclude<R, A2
|
|
1146
|
+
self: Effect.Effect<A, E, R>,
|
|
1147
|
+
layer: Layer.Layer<A2, E2, R2>
|
|
1148
|
+
) => Effect.Effect<A, E | E2, R2 | Exclude<R, A2>>
|
|
1151
1149
|
>(2, (self, layer) =>
|
|
1152
1150
|
core.acquireUseRelease(
|
|
1153
1151
|
fiberRuntime.scopeMake(),
|
|
@@ -1159,12 +1157,9 @@ const provideSomeLayer = dual<
|
|
|
1159
1157
|
(scope, exit) => core.scopeClose(scope, exit)
|
|
1160
1158
|
))
|
|
1161
1159
|
|
|
1162
|
-
const provideSomeRuntime
|
|
1163
|
-
<R>(context: Runtime.Runtime<R>)
|
|
1164
|
-
<
|
|
1165
|
-
} = dual<
|
|
1166
|
-
<R>(context: Runtime.Runtime<R>) => <R1, E, A>(self: Effect.Effect<R1, E, A>) => Effect.Effect<Exclude<R1, R>, E, A>,
|
|
1167
|
-
<R, R1, E, A>(self: Effect.Effect<R1, E, A>, context: Runtime.Runtime<R>) => Effect.Effect<Exclude<R1, R>, E, A>
|
|
1160
|
+
const provideSomeRuntime = dual<
|
|
1161
|
+
<R>(context: Runtime.Runtime<R>) => <A, E, R1>(self: Effect.Effect<A, E, R1>) => Effect.Effect<A, E, Exclude<R1, R>>,
|
|
1162
|
+
<A, E, R1, R>(self: Effect.Effect<A, E, R1>, context: Runtime.Runtime<R>) => Effect.Effect<A, E, Exclude<R1, R>>
|
|
1168
1163
|
>(2, (self, rt) => {
|
|
1169
1164
|
const patchRefs = FiberRefsPatch.diff(runtime.defaultRuntime.fiberRefs, rt.fiberRefs)
|
|
1170
1165
|
const patchFlags = runtimeFlags.diff(runtime.defaultRuntime.runtimeFlags, rt.runtimeFlags)
|
|
@@ -1193,38 +1188,38 @@ const provideSomeRuntime: {
|
|
|
1193
1188
|
/** @internal */
|
|
1194
1189
|
export const effect_provide = dual<
|
|
1195
1190
|
{
|
|
1196
|
-
<R2, E2,
|
|
1197
|
-
layer: Layer.Layer<
|
|
1198
|
-
): <
|
|
1191
|
+
<R2, E2, R3>(
|
|
1192
|
+
layer: Layer.Layer<R3, E2, R2>
|
|
1193
|
+
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E2, R2 | Exclude<R, R3>>
|
|
1199
1194
|
<R2>(
|
|
1200
1195
|
context: Context.Context<R2>
|
|
1201
|
-
): <
|
|
1196
|
+
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, R2>>
|
|
1202
1197
|
<R2>(
|
|
1203
1198
|
runtime: Runtime.Runtime<R2>
|
|
1204
|
-
): <
|
|
1199
|
+
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, R2>>
|
|
1205
1200
|
},
|
|
1206
1201
|
{
|
|
1207
|
-
<
|
|
1208
|
-
self: Effect.Effect<
|
|
1209
|
-
layer: Layer.Layer<
|
|
1210
|
-
): Effect.Effect<
|
|
1202
|
+
<A, E, R, R2, E2, R3>(
|
|
1203
|
+
self: Effect.Effect<A, E, R>,
|
|
1204
|
+
layer: Layer.Layer<R3, E2, R2>
|
|
1205
|
+
): Effect.Effect<A, E | E2, R2 | Exclude<R, R3>>
|
|
1211
1206
|
<R, E, A, R2>(
|
|
1212
|
-
self: Effect.Effect<
|
|
1207
|
+
self: Effect.Effect<A, E, R>,
|
|
1213
1208
|
context: Context.Context<R2>
|
|
1214
|
-
): Effect.Effect<Exclude<R, R2
|
|
1209
|
+
): Effect.Effect<A, E, Exclude<R, R2>>
|
|
1215
1210
|
<R, E, A, R2>(
|
|
1216
|
-
self: Effect.Effect<
|
|
1211
|
+
self: Effect.Effect<A, E, R>,
|
|
1217
1212
|
runtime: Runtime.Runtime<R2>
|
|
1218
|
-
): Effect.Effect<Exclude<R, R2
|
|
1213
|
+
): Effect.Effect<A, E, Exclude<R, R2>>
|
|
1219
1214
|
}
|
|
1220
1215
|
>(
|
|
1221
1216
|
2,
|
|
1222
|
-
<
|
|
1223
|
-
self: Effect.Effect<
|
|
1224
|
-
source: Layer.Layer<
|
|
1225
|
-
): Effect.Effect<Exclude<R, R2
|
|
1217
|
+
<A, E, R, R2>(
|
|
1218
|
+
self: Effect.Effect<A, E, R>,
|
|
1219
|
+
source: Layer.Layer<R2, any, any> | Context.Context<R2> | Runtime.Runtime<R2>
|
|
1220
|
+
): Effect.Effect<any, any, Exclude<R, R2>> =>
|
|
1226
1221
|
isLayer(source)
|
|
1227
|
-
? provideSomeLayer(self, source as Layer.Layer<
|
|
1222
|
+
? provideSomeLayer(self, source as Layer.Layer<R2, any, any>)
|
|
1228
1223
|
: Context.isContext(source)
|
|
1229
1224
|
? core.provideSomeContext(self, source)
|
|
1230
1225
|
: provideSomeRuntime(self, source as Runtime.Runtime<R2>)
|