effect 2.0.0-next.44 → 2.0.0-next.46
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/Bigint/dist/effect-Bigint.cjs.dev.js +125 -1
- package/Bigint/dist/effect-Bigint.cjs.mjs +6 -1
- package/Bigint/dist/effect-Bigint.cjs.prod.js +125 -1
- package/Bigint/dist/effect-Bigint.esm.js +111 -2
- package/Boolean/dist/effect-Boolean.cjs.dev.js +1 -1
- package/Boolean/dist/effect-Boolean.cjs.prod.js +1 -1
- package/Boolean/dist/effect-Boolean.esm.js +1 -1
- package/Brand/dist/effect-Brand.cjs.dev.js +3 -3
- package/Brand/dist/effect-Brand.cjs.prod.js +3 -3
- package/Cache/dist/effect-Cache.cjs.dev.js +32 -32
- package/Cache/dist/effect-Cache.cjs.prod.js +32 -32
- package/Cause/dist/effect-Cause.cjs.dev.js +17 -17
- package/Cause/dist/effect-Cause.cjs.mjs +1 -1
- package/Cause/dist/effect-Cause.cjs.prod.js +17 -17
- package/Cause/dist/effect-Cause.esm.js +4 -4
- package/Channel/dist/effect-Channel.cjs.dev.js +50 -50
- package/Channel/dist/effect-Channel.cjs.mjs +3 -3
- package/Channel/dist/effect-Channel.cjs.prod.js +50 -50
- package/Channel/dist/effect-Channel.esm.js +8 -8
- package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.dev.js +36 -36
- package/ChannelSingleProducerAsyncInput/dist/effect-ChannelSingleProducerAsyncInput.cjs.prod.js +36 -36
- package/Chunk/dist/effect-Chunk.cjs.dev.js +3 -3
- package/Chunk/dist/effect-Chunk.cjs.prod.js +3 -3
- package/Clock/dist/effect-Clock.cjs.dev.js +16 -16
- package/Clock/dist/effect-Clock.cjs.prod.js +16 -16
- package/Config/dist/effect-Config.cjs.dev.js +11 -11
- package/Config/dist/effect-Config.cjs.prod.js +11 -11
- package/ConfigError/dist/effect-ConfigError.cjs.dev.js +4 -4
- package/ConfigError/dist/effect-ConfigError.cjs.prod.js +4 -4
- package/ConfigProvider/dist/effect-ConfigProvider.cjs.dev.js +17 -17
- package/ConfigProvider/dist/effect-ConfigProvider.cjs.prod.js +17 -17
- package/ConfigProviderPathPatch/dist/effect-ConfigProviderPathPatch.cjs.dev.js +5 -5
- package/ConfigProviderPathPatch/dist/effect-ConfigProviderPathPatch.cjs.prod.js +5 -5
- package/ConfigSecret/dist/effect-ConfigSecret.cjs.dev.js +4 -4
- package/ConfigSecret/dist/effect-ConfigSecret.cjs.prod.js +4 -4
- package/Console/dist/effect-Console.cjs.dev.js +35 -35
- package/Console/dist/effect-Console.cjs.prod.js +35 -35
- package/Context/dist/effect-Context.cjs.dev.js +3 -8
- package/Context/dist/effect-Context.cjs.prod.js +3 -8
- package/Data/dist/effect-Data.cjs.dev.js +141 -54
- package/Data/dist/effect-Data.cjs.mjs +2 -0
- package/Data/dist/effect-Data.cjs.prod.js +141 -54
- package/Data/dist/effect-Data.esm.js +51 -3
- package/DefaultServices/dist/effect-DefaultServices.cjs.dev.js +16 -16
- package/DefaultServices/dist/effect-DefaultServices.cjs.prod.js +16 -16
- package/Deferred/dist/effect-Deferred.cjs.dev.js +8 -8
- package/Deferred/dist/effect-Deferred.cjs.prod.js +8 -8
- package/Differ/dist/effect-Differ.cjs.dev.js +11 -11
- package/Differ/dist/effect-Differ.cjs.prod.js +11 -11
- package/Duration/dist/effect-Duration.cjs.dev.js +3 -3
- package/Duration/dist/effect-Duration.cjs.prod.js +3 -3
- package/Effect/dist/effect-Effect.cjs.dev.js +44 -44
- package/Effect/dist/effect-Effect.cjs.prod.js +44 -44
- package/Effectable/dist/effect-Effectable.cjs.dev.js +24 -14
- package/Effectable/dist/effect-Effectable.cjs.mjs +5 -4
- package/Effectable/dist/effect-Effectable.cjs.prod.js +24 -14
- package/Effectable/dist/effect-Effectable.esm.js +15 -5
- package/Either/dist/effect-Either.cjs.dev.js +3 -3
- package/Either/dist/effect-Either.cjs.prod.js +3 -3
- package/Encoding/dist/effect-Encoding.cjs.dev.js +3 -3
- package/Encoding/dist/effect-Encoding.cjs.prod.js +3 -3
- package/ExecutionStrategy/dist/effect-ExecutionStrategy.cjs.dev.js +2 -2
- package/ExecutionStrategy/dist/effect-ExecutionStrategy.cjs.prod.js +2 -2
- package/Exit/dist/effect-Exit.cjs.dev.js +8 -8
- package/Exit/dist/effect-Exit.cjs.prod.js +8 -8
- package/Fiber/dist/effect-Fiber.cjs.dev.js +29 -29
- package/Fiber/dist/effect-Fiber.cjs.prod.js +29 -29
- package/FiberId/dist/effect-FiberId.cjs.dev.js +5 -5
- package/FiberId/dist/effect-FiberId.cjs.prod.js +5 -5
- package/FiberRef/dist/effect-FiberRef.cjs.dev.js +29 -29
- package/FiberRef/dist/effect-FiberRef.cjs.prod.js +29 -29
- package/FiberRefs/dist/effect-FiberRefs.cjs.dev.js +9 -9
- package/FiberRefs/dist/effect-FiberRefs.cjs.prod.js +9 -9
- package/FiberRefsPatch/dist/effect-FiberRefsPatch.cjs.dev.js +10 -10
- package/FiberRefsPatch/dist/effect-FiberRefsPatch.cjs.prod.js +10 -10
- package/GroupBy/dist/effect-GroupBy.cjs.dev.js +42 -42
- package/GroupBy/dist/effect-GroupBy.cjs.prod.js +42 -42
- package/HashMap/dist/effect-HashMap.cjs.dev.js +20 -20
- package/HashMap/dist/effect-HashMap.cjs.prod.js +20 -20
- package/HashSet/dist/effect-HashSet.cjs.dev.js +20 -20
- package/HashSet/dist/effect-HashSet.cjs.prod.js +20 -20
- package/KeyedPool/dist/effect-KeyedPool.cjs.dev.js +33 -33
- package/KeyedPool/dist/effect-KeyedPool.cjs.prod.js +33 -33
- package/Layer/dist/effect-Layer.cjs.dev.js +32 -32
- package/Layer/dist/effect-Layer.cjs.prod.js +32 -32
- package/List/dist/effect-List.cjs.dev.js +3 -3
- package/List/dist/effect-List.cjs.prod.js +3 -3
- package/LogLevel/dist/effect-LogLevel.cjs.dev.js +8 -8
- package/LogLevel/dist/effect-LogLevel.cjs.prod.js +8 -8
- package/Logger/dist/effect-Logger.cjs.dev.js +33 -33
- package/Logger/dist/effect-Logger.cjs.prod.js +33 -33
- package/Metric/dist/effect-Metric.cjs.dev.js +27 -27
- package/Metric/dist/effect-Metric.cjs.prod.js +27 -27
- package/MetricBoundaries/dist/effect-MetricBoundaries.cjs.dev.js +4 -4
- package/MetricBoundaries/dist/effect-MetricBoundaries.cjs.prod.js +4 -4
- package/MetricHook/dist/effect-MetricHook.cjs.dev.js +6 -6
- package/MetricHook/dist/effect-MetricHook.cjs.prod.js +6 -6
- package/MetricKey/dist/effect-MetricKey.cjs.dev.js +6 -6
- package/MetricKey/dist/effect-MetricKey.cjs.prod.js +6 -6
- package/MetricKeyType/dist/effect-MetricKeyType.cjs.dev.js +4 -4
- package/MetricKeyType/dist/effect-MetricKeyType.cjs.prod.js +4 -4
- package/MetricPolling/dist/effect-MetricPolling.cjs.dev.js +30 -30
- package/MetricPolling/dist/effect-MetricPolling.cjs.prod.js +30 -30
- package/MetricRegistry/dist/effect-MetricRegistry.cjs.dev.js +8 -8
- package/MetricRegistry/dist/effect-MetricRegistry.cjs.prod.js +8 -8
- package/MetricState/dist/effect-MetricState.cjs.dev.js +1 -1
- package/MetricState/dist/effect-MetricState.cjs.prod.js +1 -1
- package/MutableHashMap/dist/effect-MutableHashMap.cjs.dev.js +4 -4
- package/MutableHashMap/dist/effect-MutableHashMap.cjs.prod.js +4 -4
- package/MutableHashSet/dist/effect-MutableHashSet.cjs.dev.js +4 -4
- package/MutableHashSet/dist/effect-MutableHashSet.cjs.prod.js +4 -4
- package/MutableQueue/dist/effect-MutableQueue.cjs.dev.js +3 -3
- package/MutableQueue/dist/effect-MutableQueue.cjs.prod.js +3 -3
- package/Number/dist/effect-Number.cjs.dev.js +1 -1
- package/Number/dist/effect-Number.cjs.prod.js +1 -1
- package/Number/dist/effect-Number.esm.js +1 -1
- package/Option/dist/effect-Option.cjs.dev.js +9 -9
- package/Option/dist/effect-Option.cjs.prod.js +9 -9
- package/Pool/dist/effect-Pool.cjs.dev.js +31 -31
- package/Pool/dist/effect-Pool.cjs.prod.js +31 -31
- package/PubSub/dist/effect-PubSub.cjs.d.mts +2 -0
- package/PubSub/dist/effect-PubSub.cjs.d.mts.map +1 -0
- package/PubSub/dist/effect-PubSub.cjs.d.ts +2 -0
- package/PubSub/dist/effect-PubSub.cjs.d.ts.map +1 -0
- package/{Hub/dist/effect-Hub.cjs.dev.js → PubSub/dist/effect-PubSub.cjs.dev.js} +163 -163
- package/PubSub/dist/effect-PubSub.cjs.js +7 -0
- package/{Hub/dist/effect-Hub.cjs.mjs → PubSub/dist/effect-PubSub.cjs.mjs} +1 -1
- package/{Hub/dist/effect-Hub.cjs.prod.js → PubSub/dist/effect-PubSub.cjs.prod.js} +163 -163
- package/{Hub/dist/effect-Hub.esm.js → PubSub/dist/effect-PubSub.esm.js} +15 -15
- package/PubSub/package.json +4 -0
- package/Queue/dist/effect-Queue.cjs.dev.js +28 -28
- package/Queue/dist/effect-Queue.cjs.prod.js +28 -28
- package/README.md +5 -5
- package/Random/dist/effect-Random.cjs.dev.js +16 -16
- package/Random/dist/effect-Random.cjs.prod.js +16 -16
- package/ReadonlyArray/dist/effect-ReadonlyArray.cjs.dev.js +3 -3
- package/ReadonlyArray/dist/effect-ReadonlyArray.cjs.prod.js +3 -3
- package/ReadonlyRecord/dist/effect-ReadonlyRecord.cjs.dev.js +3 -3
- package/ReadonlyRecord/dist/effect-ReadonlyRecord.cjs.prod.js +3 -3
- package/RedBlackTree/dist/effect-RedBlackTree.cjs.dev.js +4 -4
- package/RedBlackTree/dist/effect-RedBlackTree.cjs.prod.js +4 -4
- package/Ref/dist/effect-Ref.cjs.dev.js +9 -9
- package/Ref/dist/effect-Ref.cjs.prod.js +9 -9
- package/Reloadable/dist/effect-Reloadable.cjs.dev.js +44 -44
- package/Reloadable/dist/effect-Reloadable.cjs.prod.js +44 -44
- package/Request/dist/effect-Request.cjs.dev.js +29 -29
- package/Request/dist/effect-Request.cjs.prod.js +29 -29
- package/RequestBlock/dist/effect-RequestBlock.cjs.dev.js +36 -36
- package/RequestBlock/dist/effect-RequestBlock.cjs.prod.js +36 -36
- package/RequestResolver/dist/effect-RequestResolver.cjs.dev.js +38 -38
- package/RequestResolver/dist/effect-RequestResolver.cjs.prod.js +38 -38
- package/Resource/dist/effect-Resource.cjs.dev.js +34 -34
- package/Resource/dist/effect-Resource.cjs.prod.js +34 -34
- package/Runtime/dist/effect-Runtime.cjs.dev.js +34 -34
- package/Runtime/dist/effect-Runtime.cjs.prod.js +34 -34
- package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.dev.js +33 -33
- package/RuntimeFlags/dist/effect-RuntimeFlags.cjs.prod.js +33 -33
- package/RuntimeFlagsPatch/dist/effect-RuntimeFlagsPatch.cjs.dev.js +6 -6
- package/RuntimeFlagsPatch/dist/effect-RuntimeFlagsPatch.cjs.prod.js +6 -6
- package/STM/dist/effect-STM.cjs.dev.js +48 -48
- package/STM/dist/effect-STM.cjs.prod.js +48 -48
- package/Schedule/dist/effect-Schedule.cjs.dev.js +19 -19
- package/Schedule/dist/effect-Schedule.cjs.prod.js +19 -19
- package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.dev.js +3 -3
- package/ScheduleDecision/dist/effect-ScheduleDecision.cjs.prod.js +3 -3
- package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.dev.js +3 -3
- package/ScheduleInterval/dist/effect-ScheduleInterval.cjs.prod.js +3 -3
- package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.dev.js +3 -3
- package/ScheduleIntervals/dist/effect-ScheduleIntervals.cjs.prod.js +3 -3
- package/Scheduler/dist/effect-Scheduler.cjs.dev.js +8 -8
- package/Scheduler/dist/effect-Scheduler.cjs.prod.js +8 -8
- package/Scope/dist/effect-Scope.cjs.dev.js +27 -27
- package/Scope/dist/effect-Scope.cjs.prod.js +27 -27
- package/ScopedCache/dist/effect-ScopedCache.cjs.dev.js +78 -61
- package/ScopedCache/dist/effect-ScopedCache.cjs.prod.js +78 -61
- package/ScopedRef/dist/effect-ScopedRef.cjs.dev.js +34 -34
- package/ScopedRef/dist/effect-ScopedRef.cjs.prod.js +34 -34
- package/Sink/dist/effect-Sink.cjs.dev.js +43 -43
- package/Sink/dist/effect-Sink.cjs.mjs +1 -1
- package/Sink/dist/effect-Sink.cjs.prod.js +43 -43
- package/Sink/dist/effect-Sink.esm.js +5 -5
- package/SortedMap/dist/effect-SortedMap.cjs.dev.js +3 -3
- package/SortedMap/dist/effect-SortedMap.cjs.prod.js +3 -3
- package/SortedSet/dist/effect-SortedSet.cjs.dev.js +3 -3
- package/SortedSet/dist/effect-SortedSet.cjs.prod.js +3 -3
- package/Stream/dist/effect-Stream.cjs.dev.js +60 -60
- package/Stream/dist/effect-Stream.cjs.mjs +5 -5
- package/Stream/dist/effect-Stream.cjs.prod.js +60 -60
- package/Stream/dist/effect-Stream.esm.js +15 -15
- package/Streamable/dist/effect-Streamable.cjs.d.mts +2 -0
- package/Streamable/dist/effect-Streamable.cjs.d.mts.map +1 -0
- package/Streamable/dist/effect-Streamable.cjs.d.ts +2 -0
- package/Streamable/dist/effect-Streamable.cjs.d.ts.map +1 -0
- package/Streamable/dist/effect-Streamable.cjs.dev.js +152 -0
- package/Streamable/dist/effect-Streamable.cjs.js +7 -0
- package/Streamable/dist/effect-Streamable.cjs.mjs +3 -0
- package/Streamable/dist/effect-Streamable.cjs.prod.js +152 -0
- package/Streamable/dist/effect-Streamable.esm.js +42 -0
- package/Streamable/package.json +4 -0
- package/String/dist/effect-String.cjs.dev.js +4 -4
- package/String/dist/effect-String.cjs.prod.js +4 -4
- package/String/dist/effect-String.esm.js +1 -1
- package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.dev.js +48 -48
- package/SubscriptionRef/dist/effect-SubscriptionRef.cjs.prod.js +48 -48
- package/Supervisor/dist/effect-Supervisor.cjs.dev.js +34 -34
- package/Supervisor/dist/effect-Supervisor.cjs.prod.js +34 -34
- package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.dev.js +30 -30
- package/SynchronizedRef/dist/effect-SynchronizedRef.cjs.prod.js +30 -30
- package/TArray/dist/effect-TArray.cjs.dev.js +46 -46
- package/TArray/dist/effect-TArray.cjs.prod.js +46 -46
- package/TDeferred/dist/effect-TDeferred.cjs.dev.js +45 -45
- package/TDeferred/dist/effect-TDeferred.cjs.prod.js +45 -45
- package/TMap/dist/effect-TMap.cjs.dev.js +47 -47
- package/TMap/dist/effect-TMap.cjs.prod.js +47 -47
- package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.dev.js +44 -44
- package/TPriorityQueue/dist/effect-TPriorityQueue.cjs.prod.js +44 -44
- package/TPubSub/dist/effect-TPubSub.cjs.d.mts +2 -0
- package/TPubSub/dist/effect-TPubSub.cjs.d.mts.map +1 -0
- package/TPubSub/dist/effect-TPubSub.cjs.d.ts +2 -0
- package/TPubSub/dist/effect-TPubSub.cjs.d.ts.map +1 -0
- package/{THub/dist/effect-THub.cjs.dev.js → TPubSub/dist/effect-TPubSub.cjs.dev.js} +101 -101
- package/TPubSub/dist/effect-TPubSub.cjs.js +7 -0
- package/{THub/dist/effect-THub.cjs.mjs → TPubSub/dist/effect-TPubSub.cjs.mjs} +2 -2
- package/{THub/dist/effect-THub.cjs.prod.js → TPubSub/dist/effect-TPubSub.cjs.prod.js} +101 -101
- package/TPubSub/dist/effect-TPubSub.esm.js +157 -0
- package/TPubSub/package.json +4 -0
- package/TQueue/dist/effect-TQueue.cjs.dev.js +46 -46
- package/TQueue/dist/effect-TQueue.cjs.prod.js +46 -46
- package/TRandom/dist/effect-TRandom.cjs.dev.js +50 -50
- package/TRandom/dist/effect-TRandom.cjs.prod.js +50 -50
- package/TReentrantLock/dist/effect-TReentrantLock.cjs.dev.js +46 -46
- package/TReentrantLock/dist/effect-TReentrantLock.cjs.prod.js +46 -46
- package/TRef/dist/effect-TRef.cjs.dev.js +44 -44
- package/TRef/dist/effect-TRef.cjs.prod.js +44 -44
- package/TSemaphore/dist/effect-TSemaphore.cjs.dev.js +45 -45
- package/TSemaphore/dist/effect-TSemaphore.cjs.prod.js +45 -45
- package/TSet/dist/effect-TSet.cjs.dev.js +47 -47
- package/TSet/dist/effect-TSet.cjs.prod.js +47 -47
- package/Take/dist/effect-Take.cjs.dev.js +36 -36
- package/Take/dist/effect-Take.cjs.prod.js +36 -36
- package/TestAnnotation/dist/effect-TestAnnotation.cjs.dev.js +8 -8
- package/TestAnnotation/dist/effect-TestAnnotation.cjs.prod.js +8 -8
- package/TestAnnotations/dist/effect-TestAnnotations.cjs.dev.js +25 -25
- package/TestAnnotations/dist/effect-TestAnnotations.cjs.prod.js +25 -25
- package/TestClock/dist/effect-TestClock.cjs.dev.js +46 -46
- package/TestClock/dist/effect-TestClock.cjs.prod.js +46 -46
- package/TestConfig/dist/effect-TestConfig.cjs.dev.js +3 -8
- package/TestConfig/dist/effect-TestConfig.cjs.prod.js +3 -8
- package/TestContext/dist/effect-TestContext.cjs.dev.js +37 -37
- package/TestContext/dist/effect-TestContext.cjs.prod.js +37 -37
- package/TestLive/dist/effect-TestLive.cjs.dev.js +17 -17
- package/TestLive/dist/effect-TestLive.cjs.prod.js +17 -17
- package/TestServices/dist/effect-TestServices.cjs.dev.js +42 -42
- package/TestServices/dist/effect-TestServices.cjs.prod.js +42 -42
- package/TestSized/dist/effect-TestSized.cjs.dev.js +11 -11
- package/TestSized/dist/effect-TestSized.cjs.prod.js +11 -11
- package/Tracer/dist/effect-Tracer.cjs.dev.js +16 -16
- package/Tracer/dist/effect-Tracer.cjs.prod.js +16 -16
- package/dist/{Context-01a123ac.cjs.prod.js → Context-9fe5eb16.cjs.prod.js} +5 -5
- package/dist/{Context-593661f6.cjs.dev.js → Context-da73ddfa.cjs.dev.js} +5 -5
- package/dist/{Effectable-2f022879.cjs.dev.js → Effectable-7314aed8.cjs.dev.js} +63 -10
- package/dist/{Effectable-cd8f3a96.cjs.prod.js → Effectable-c4c14a2b.cjs.prod.js} +63 -10
- package/dist/{Either-7a881c7a.cjs.prod.js → Either-d43f082c.cjs.prod.js} +6 -79
- package/dist/{Either-12bbe00c.cjs.dev.js → Either-fa0ef1d9.cjs.dev.js} +6 -79
- package/dist/{ExecutionStrategy-14d3053a.cjs.prod.js → ExecutionStrategy-4808fe5d.cjs.prod.js} +2 -2
- package/dist/{ExecutionStrategy-70f1a920.cjs.dev.js → ExecutionStrategy-7d9d457b.cjs.dev.js} +2 -2
- package/dist/{HashSet-0b4ff1e4.cjs.dev.js → HashSet-5963ad6b.cjs.dev.js} +32 -32
- package/dist/{HashSet-6257b66d.cjs.prod.js → HashSet-ac02a3e1.cjs.prod.js} +32 -32
- package/dist/Option-463b42e6.cjs.dev.js +81 -0
- package/dist/Option-935e5d7c.cjs.prod.js +81 -0
- package/dist/{Ref-a3a4e50d.cjs.prod.js → Ref-4014b526.cjs.prod.js} +1 -1
- package/dist/{Ref-74b592a4.cjs.dev.js → Ref-acdee7ef.cjs.dev.js} +1 -1
- package/dist/{cache-75fbef45.cjs.prod.js → cache-5c7d77e4.cjs.prod.js} +17 -17
- package/dist/{cache-e1ea3923.cjs.dev.js → cache-7eed9d33.cjs.dev.js} +17 -17
- package/dist/{circular-6f16b226.cjs.prod.js → circular-1f481ffb.cjs.prod.js} +33 -33
- package/dist/{circular-f406f9a4.cjs.prod.js → circular-9e10a5a7.cjs.prod.js} +6 -6
- package/dist/{circular-58ff5e9c.cjs.dev.js → circular-c2dbce1a.cjs.dev.js} +33 -33
- package/dist/{circular-30564534.cjs.dev.js → circular-c8b65bdb.cjs.dev.js} +6 -6
- package/dist/{config-80900693.cjs.dev.js → config-3b7935a3.cjs.dev.js} +3 -3
- package/dist/{config-d0ddc159.cjs.prod.js → config-5ba54da1.cjs.prod.js} +3 -3
- package/dist/{configProvider-93617d6d.cjs.prod.js → configProvider-b6b20998.cjs.prod.js} +29 -29
- package/dist/{configProvider-ce43fdbf.cjs.dev.js → configProvider-f34a82f1.cjs.dev.js} +29 -29
- package/dist/{core-0b0539de.cjs.prod.js → core-07202cc0.cjs.prod.js} +711 -726
- package/dist/{core-60ca562a.cjs.prod.js → core-7411d1e1.cjs.prod.js} +3 -3
- package/dist/{core-b4d7b4f5.cjs.dev.js → core-b7401357.cjs.dev.js} +711 -726
- package/dist/{core-13f8a866.cjs.dev.js → core-c5747f88.cjs.dev.js} +3 -3
- package/dist/{core-effect-892f3686.cjs.dev.js → core-effect-1c564d42.cjs.dev.js} +77 -75
- package/dist/{core-effect-c65770cd.cjs.prod.js → core-effect-9201ea63.cjs.prod.js} +77 -75
- package/dist/{dataSource-3ba9e4d3.cjs.dev.js → dataSource-b5eda714.cjs.dev.js} +2 -2
- package/dist/{dataSource-7df3a5f6.cjs.prod.js → dataSource-b83bc277.cjs.prod.js} +2 -2
- package/dist/declarations/src/Bigint.d.ts +92 -1
- package/dist/declarations/src/Bigint.d.ts.map +1 -1
- package/dist/declarations/src/Boolean.d.ts +1 -1
- package/dist/declarations/src/Cause.d.ts +6 -6
- package/dist/declarations/src/Cause.d.ts.map +1 -1
- package/dist/declarations/src/Channel.d.ts +7 -7
- package/dist/declarations/src/Channel.d.ts.map +1 -1
- package/dist/declarations/src/Data.d.ts +30 -0
- package/dist/declarations/src/Data.d.ts.map +1 -1
- package/dist/declarations/src/Effect.d.ts +4 -2
- package/dist/declarations/src/Effect.d.ts.map +1 -1
- package/dist/declarations/src/Effectable.d.ts +14 -4
- package/dist/declarations/src/Effectable.d.ts.map +1 -1
- package/dist/declarations/src/Metric.d.ts +31 -7
- package/dist/declarations/src/Metric.d.ts.map +1 -1
- package/dist/declarations/src/MetricHook.d.ts +7 -4
- package/dist/declarations/src/MetricHook.d.ts.map +1 -1
- package/dist/declarations/src/MetricKey.d.ts +24 -4
- package/dist/declarations/src/MetricKey.d.ts.map +1 -1
- package/dist/declarations/src/MetricKeyType.d.ts +9 -6
- package/dist/declarations/src/MetricKeyType.d.ts.map +1 -1
- package/dist/declarations/src/MetricRegistry.d.ts +2 -2
- package/dist/declarations/src/MetricRegistry.d.ts.map +1 -1
- package/dist/declarations/src/MetricState.d.ts +15 -9
- package/dist/declarations/src/MetricState.d.ts.map +1 -1
- package/dist/declarations/src/Number.d.ts +1 -1
- package/dist/declarations/src/{Hub.d.ts → PubSub.d.ts} +38 -38
- package/dist/declarations/src/PubSub.d.ts.map +1 -0
- package/dist/declarations/src/Sink.d.ts +4 -4
- package/dist/declarations/src/Sink.d.ts.map +1 -1
- package/dist/declarations/src/Stream.d.ts +24 -24
- package/dist/declarations/src/Stream.d.ts.map +1 -1
- package/dist/declarations/src/Streamable.d.ts +27 -0
- package/dist/declarations/src/Streamable.d.ts.map +1 -0
- package/dist/declarations/src/String.d.ts +1 -1
- package/dist/declarations/src/SubscriptionRef.d.ts.map +1 -1
- package/dist/declarations/src/TPubSub.d.ts +146 -0
- package/dist/declarations/src/TPubSub.d.ts.map +1 -0
- package/dist/declarations/src/index.d.ts +15 -15
- package/dist/declarations/src/index.d.ts.map +1 -1
- package/dist/{defaultServices-5530ff0e.cjs.dev.js → defaultServices-755d5b46.cjs.dev.js} +6 -6
- package/dist/{defaultServices-086b8ac9.cjs.prod.js → defaultServices-9d7ce86f.cjs.prod.js} +6 -6
- package/dist/effect.cjs.dev.js +9 -9
- package/dist/effect.cjs.mjs +3 -3
- package/dist/effect.cjs.prod.js +9 -9
- package/dist/effect.esm.js +6 -6
- package/dist/{fiber-1bfb4c1d.cjs.dev.js → fiber-5156eff2.cjs.dev.js} +12 -12
- package/dist/{fiber-2eb0a4c1.cjs.prod.js → fiber-9519d109.cjs.prod.js} +12 -12
- package/dist/{fiberRefs-be6b6a70.cjs.prod.js → fiberRefs-558c17e6.cjs.prod.js} +1 -1
- package/dist/{fiberRefs-be4fae6a.cjs.dev.js → fiberRefs-98b71233.cjs.dev.js} +1 -1
- package/dist/{fiberRuntime-2d31e120.cjs.prod.js → fiberRuntime-31ae011f.cjs.prod.js} +99 -100
- package/dist/{fiberRuntime-c7280769.cjs.dev.js → fiberRuntime-d3872282.cjs.dev.js} +99 -100
- package/dist/{groupBy-0702739b.cjs.prod.js → groupBy-724f64ef.cjs.prod.js} +4 -4
- package/dist/{groupBy-7f852bf3.cjs.dev.js → groupBy-862cc2da.cjs.dev.js} +4 -4
- package/dist/{hook-e72b20fd.cjs.dev.js → hook-8cefc909.cjs.dev.js} +8 -4
- package/dist/{hook-470b717e.cjs.prod.js → hook-98ce30e4.cjs.prod.js} +8 -4
- package/dist/{key-f0a1408a.cjs.dev.js → key-198b6670.cjs.dev.js} +3 -3
- package/dist/{key-378a6a2c.cjs.prod.js → key-eb8a12b2.cjs.prod.js} +3 -3
- package/dist/{keyType-cf67c69c.cjs.prod.js → keyType-0c5e6178.cjs.prod.js} +9 -2
- package/dist/{keyType-55f27f07.cjs.dev.js → keyType-7c164b82.cjs.dev.js} +9 -2
- package/dist/{layer-b42e8022.cjs.dev.js → layer-29574350.cjs.dev.js} +33 -33
- package/dist/{layer-d103b49b.cjs.prod.js → layer-51ff4846.cjs.prod.js} +33 -33
- package/dist/{patch-a1b2802f.cjs.dev.js → patch-0220a642.cjs.dev.js} +1 -1
- package/dist/{patch-c4d6c61e.cjs.prod.js → patch-7c559bb2.cjs.prod.js} +1 -1
- package/dist/{pathPatch-15c8d723.cjs.prod.js → pathPatch-b56a4da2.cjs.prod.js} +1 -1
- package/dist/{pathPatch-d9d41297.cjs.dev.js → pathPatch-fab016f1.cjs.dev.js} +1 -1
- package/dist/{pool-ef44ba82.cjs.dev.js → pool-3211287f.cjs.dev.js} +31 -31
- package/dist/{pool-e414eb88.cjs.prod.js → pool-f77d7705.cjs.prod.js} +31 -31
- package/dist/{query-1d0157db.cjs.prod.js → query-a52b25f0.cjs.prod.js} +11 -11
- package/dist/{query-54337864.cjs.dev.js → query-c36decd5.cjs.dev.js} +11 -11
- package/dist/{queue-27ac9d98.cjs.prod.js → queue-315ea45d.cjs.prod.js} +22 -22
- package/dist/{queue-533d70d4.cjs.dev.js → queue-7a223c44.cjs.dev.js} +22 -22
- package/dist/{registry-1099de3f.cjs.dev.js → registry-62ff192e.cjs.dev.js} +4 -4
- package/dist/{registry-013ecdde.cjs.prod.js → registry-d5258dff.cjs.prod.js} +4 -4
- package/dist/{runtime-ea174155.cjs.prod.js → runtime-005f8a9b.cjs.prod.js} +7 -7
- package/dist/{runtime-afad6a9b.cjs.dev.js → runtime-57c8ddf8.cjs.dev.js} +7 -7
- package/dist/{schedule-1d92198c.cjs.prod.js → schedule-8cdf6bf1.cjs.prod.js} +40 -40
- package/dist/{schedule-e0f55cab.cjs.dev.js → schedule-e7a9f93f.cjs.dev.js} +40 -40
- package/dist/scopedRef-789d7fef.cjs.prod.js +55 -0
- package/dist/scopedRef-eb19c7a6.cjs.dev.js +55 -0
- package/dist/{singleProducerAsyncInput-4105a342.cjs.dev.js → singleProducerAsyncInput-9ff8389b.cjs.dev.js} +1 -1
- package/dist/{singleProducerAsyncInput-21463e16.cjs.prod.js → singleProducerAsyncInput-f9b258b1.cjs.prod.js} +1 -1
- package/dist/{sink-9129504b.cjs.prod.js → sink-572d8981.cjs.prod.js} +17 -17
- package/dist/{sink-ee393b63.cjs.dev.js → sink-8d3427e7.cjs.dev.js} +17 -17
- package/dist/{state-dd1bd066.cjs.prod.js → state-0bdf02b7.cjs.prod.js} +2 -6
- package/dist/{state-8fbec044.cjs.dev.js → state-931050c4.cjs.dev.js} +2 -6
- package/dist/{stm-537da66b.cjs.dev.js → stm-8aca0022.cjs.dev.js} +3 -3
- package/dist/{stm-5043c3cb.cjs.prod.js → stm-f250b596.cjs.prod.js} +3 -3
- package/dist/{stream-c7eda5bc.cjs.dev.js → stream-34d80d2c.cjs.dev.js} +31 -28
- package/dist/{stream-13637643.cjs.prod.js → stream-ea4f4d44.cjs.prod.js} +31 -28
- package/dist/{synchronizedRef-37e32854.cjs.dev.js → synchronizedRef-a12fd967.cjs.dev.js} +6 -6
- package/dist/{synchronizedRef-b4cde4de.cjs.prod.js → synchronizedRef-ed8aa6ac.cjs.prod.js} +6 -6
- package/dist/{tArray-df1bae1c.cjs.dev.js → tArray-17f078f2.cjs.dev.js} +3 -3
- package/dist/{tArray-d5476a2d.cjs.prod.js → tArray-d184e22f.cjs.prod.js} +3 -3
- package/dist/{tMap-a3e14c05.cjs.dev.js → tMap-1a5aa78b.cjs.dev.js} +4 -4
- package/dist/{tMap-20ef43ea.cjs.prod.js → tMap-e219f30e.cjs.prod.js} +4 -4
- package/dist/{tQueue-bd3cf539.cjs.dev.js → tQueue-0a4fc773.cjs.dev.js} +3 -3
- package/dist/{tQueue-c02c22bd.cjs.prod.js → tQueue-47129ad0.cjs.prod.js} +3 -3
- package/dist/{tRef-49e44dde.cjs.prod.js → tRef-ab4c5713.cjs.prod.js} +1 -1
- package/dist/{tRef-75dd04b3.cjs.dev.js → tRef-b860ef05.cjs.dev.js} +1 -1
- package/internal/Context.esm.js +4 -4
- package/internal/Data.esm.js +4 -1
- package/internal/Differ/ChunkPatch.esm.js +1 -1
- package/internal/Differ/ContextPatch.esm.js +1 -1
- package/internal/Differ/HashMapPatch.esm.js +1 -1
- package/internal/Differ/HashSetPatch.esm.js +1 -1
- package/internal/Differ/OrPatch.esm.js +1 -1
- package/internal/Effectable.esm.js +9 -9
- package/internal/Either.esm.js +3 -3
- package/internal/Option.esm.js +3 -3
- package/internal/cache.esm.js +1 -1
- package/internal/cause.esm.js +6 -21
- package/internal/channel.esm.js +5 -5
- package/internal/core-effect.esm.js +6 -4
- package/internal/fiberRuntime.esm.js +3 -3
- package/internal/layer.esm.js +1 -1
- package/internal/metric/hook.esm.js +7 -3
- package/internal/metric/key.esm.js +2 -2
- package/internal/metric/keyType.esm.js +9 -2
- package/internal/metric/registry.esm.js +2 -2
- package/internal/metric/state.esm.js +2 -6
- package/internal/metric.esm.js +3 -3
- package/internal/{hub.esm.js → pubsub.esm.js} +108 -108
- package/internal/request.esm.js +1 -1
- package/internal/sink.esm.js +8 -8
- package/internal/stm/{tHub.esm.js → tPubSub.esm.js} +30 -30
- package/internal/stream.esm.js +23 -20
- package/internal/subscriptionRef.esm.js +8 -8
- package/package.json +66 -211
- package/src/.index.ts +30 -0
- package/src/Bigint.ts +497 -0
- package/src/Boolean.ts +261 -0
- package/src/Brand.ts +336 -0
- package/src/Cache.ts +250 -0
- package/src/Cause.ts +813 -0
- package/src/Channel.ts +2244 -0
- package/src/ChannelChildExecutorDecision.ts +138 -0
- package/src/ChannelMergeDecision.ts +94 -0
- package/src/ChannelMergeState.ts +166 -0
- package/src/ChannelMergeStrategy.ts +107 -0
- package/src/ChannelSingleProducerAsyncInput.ts +68 -0
- package/src/ChannelUpstreamPullRequest.ts +110 -0
- package/src/ChannelUpstreamPullStrategy.ts +120 -0
- package/src/Chunk.ts +1314 -0
- package/src/Clock.ts +111 -0
- package/src/Config.ts +447 -0
- package/src/ConfigError.ts +267 -0
- package/src/ConfigProvider.ts +296 -0
- package/src/ConfigProviderPathPatch.ts +100 -0
- package/src/ConfigSecret.ts +76 -0
- package/src/Console.ts +222 -0
- package/src/Context.ts +365 -0
- package/src/Data.ts +367 -0
- package/src/DefaultServices.ts +34 -0
- package/src/Deferred.ts +283 -0
- package/src/Differ.ts +406 -0
- package/src/Duration.ts +558 -0
- package/src/Effect.ts +5177 -0
- package/src/Effectable.ts +107 -0
- package/src/Either.ts +593 -0
- package/src/Encoding.ts +130 -0
- package/src/Equal.ts +64 -0
- package/src/Equivalence.ts +235 -0
- package/src/ExecutionStrategy.ts +111 -0
- package/src/Exit.ts +464 -0
- package/src/Fiber.ts +650 -0
- package/src/FiberId.ts +187 -0
- package/src/FiberRef.ts +399 -0
- package/src/FiberRefs.ts +160 -0
- package/src/FiberRefsPatch.ts +105 -0
- package/src/FiberStatus.ts +108 -0
- package/src/Function.ts +834 -0
- package/src/GlobalValue.ts +20 -0
- package/src/GroupBy.ts +102 -0
- package/src/HKT.ts +44 -0
- package/src/Hash.ts +162 -0
- package/src/HashMap.ts +373 -0
- package/src/HashSet.ts +300 -0
- package/src/Inspectable.ts +45 -0
- package/src/KeyedPool.ts +160 -0
- package/src/Layer.ts +866 -0
- package/src/List.ts +942 -0
- package/src/LogLevel.ts +266 -0
- package/src/LogSpan.ts +25 -0
- package/src/Logger.ts +321 -0
- package/src/Metric.ts +657 -0
- package/src/MetricBoundaries.ts +70 -0
- package/src/MetricHook.ts +139 -0
- package/src/MetricKey.ts +227 -0
- package/src/MetricKeyType.ts +257 -0
- package/src/MetricLabel.ts +47 -0
- package/src/MetricPair.ts +70 -0
- package/src/MetricPolling.ts +136 -0
- package/src/MetricRegistry.ts +47 -0
- package/src/MetricState.ts +256 -0
- package/src/MutableHashMap.ts +187 -0
- package/src/MutableHashSet.ts +118 -0
- package/src/MutableList.ts +289 -0
- package/src/MutableQueue.ts +227 -0
- package/src/MutableRef.ts +204 -0
- package/src/NonEmptyIterable.ts +30 -0
- package/src/Number.ts +406 -0
- package/src/Option.ts +1307 -0
- package/src/Order.ts +328 -0
- package/src/Ordering.ts +112 -0
- package/src/Pipeable.ts +318 -0
- package/src/Pool.ts +148 -0
- package/src/Predicate.ts +704 -0
- package/src/PubSub.ts +175 -0
- package/src/Queue.ts +575 -0
- package/src/Random.ts +115 -0
- package/src/ReadonlyArray.ts +2017 -0
- package/src/ReadonlyRecord.ts +641 -0
- package/src/RedBlackTree.ts +415 -0
- package/src/Ref.ts +159 -0
- package/src/Reloadable.ts +136 -0
- package/src/Request.ts +285 -0
- package/src/RequestBlock.ts +157 -0
- package/src/RequestResolver.ts +305 -0
- package/src/Resource.ts +97 -0
- package/src/Runtime.ts +216 -0
- package/src/RuntimeFlags.ts +336 -0
- package/src/RuntimeFlagsPatch.ts +183 -0
- package/src/STM.ts +2076 -0
- package/src/Schedule.ts +1396 -0
- package/src/ScheduleDecision.ts +62 -0
- package/src/ScheduleInterval.ts +151 -0
- package/src/ScheduleIntervals.ts +122 -0
- package/src/Scheduler.ts +359 -0
- package/src/Scope.ts +171 -0
- package/src/ScopedCache.ts +148 -0
- package/src/ScopedRef.ts +95 -0
- package/src/Sink.ts +1431 -0
- package/src/SortedMap.ts +229 -0
- package/src/SortedSet.ts +385 -0
- package/src/Stream.ts +4540 -0
- package/src/StreamEmit.ts +83 -0
- package/src/StreamHaltStrategy.ts +111 -0
- package/src/Streamable.ts +42 -0
- package/src/String.ts +682 -0
- package/src/Struct.ts +151 -0
- package/src/SubscriptionRef.ts +273 -0
- package/src/Supervisor.ts +239 -0
- package/src/Symbol.ts +28 -0
- package/src/SynchronizedRef.ts +249 -0
- package/src/TArray.ts +494 -0
- package/src/TDeferred.ts +99 -0
- package/src/TMap.ts +510 -0
- package/src/TPriorityQueue.ts +223 -0
- package/src/TPubSub.ts +187 -0
- package/src/TQueue.ts +431 -0
- package/src/TRandom.ts +129 -0
- package/src/TReentrantLock.ts +224 -0
- package/src/TRef.ts +176 -0
- package/src/TSemaphore.ts +129 -0
- package/src/TSet.ts +349 -0
- package/src/Take.ts +257 -0
- package/src/TestAnnotation.ts +166 -0
- package/src/TestAnnotationMap.ts +124 -0
- package/src/TestAnnotations.ts +113 -0
- package/src/TestClock.ts +552 -0
- package/src/TestConfig.ts +49 -0
- package/src/TestContext.ts +35 -0
- package/src/TestLive.ts +55 -0
- package/src/TestServices.ts +392 -0
- package/src/TestSized.ts +55 -0
- package/src/Tracer.ts +119 -0
- package/src/Tuple.ts +204 -0
- package/src/Types.ts +123 -0
- package/src/Unify.ts +118 -0
- package/src/Utils.ts +699 -0
- package/src/index.ts +840 -0
- package/src/internal/Common.ts +56 -0
- package/src/internal/Context.ts +252 -0
- package/src/internal/Data.ts +55 -0
- package/src/internal/Differ/ChunkPatch.ts +209 -0
- package/src/internal/Differ/ContextPatch.ts +229 -0
- package/src/internal/Differ/HashMapPatch.ts +217 -0
- package/src/internal/Differ/HashSetPatch.ts +174 -0
- package/src/internal/Differ/OrPatch.ts +296 -0
- package/src/internal/Differ.ts +184 -0
- package/src/internal/Effectable.ts +92 -0
- package/src/internal/Either.ts +107 -0
- package/src/internal/Encoding/Base64.ts +282 -0
- package/src/internal/Encoding/Base64Url.ts +28 -0
- package/src/internal/Encoding/Common.ts +24 -0
- package/src/internal/Encoding/Hex.ts +315 -0
- package/src/internal/HashMap/array.ts +49 -0
- package/src/internal/HashMap/bitwise.ts +32 -0
- package/src/internal/HashMap/config.ts +14 -0
- package/src/internal/HashMap/keySet.ts +8 -0
- package/src/internal/HashMap/node.ts +390 -0
- package/src/internal/HashMap.ts +533 -0
- package/src/internal/HashSet.ts +319 -0
- package/src/internal/Iterable.ts +54 -0
- package/src/internal/Option.ts +79 -0
- package/src/internal/ReadonlyArray.ts +8 -0
- package/src/internal/RedBlackTree/iterator.ts +207 -0
- package/src/internal/RedBlackTree/node.ts +48 -0
- package/src/internal/RedBlackTree.ts +1195 -0
- package/src/internal/Stack.ts +4 -0
- package/src/internal/blockedRequests.ts +512 -0
- package/src/internal/cache.ts +714 -0
- package/src/internal/cause.ts +1205 -0
- package/src/internal/channel/channelExecutor.ts +1193 -0
- package/src/internal/channel/channelState.ts +132 -0
- package/src/internal/channel/childExecutorDecision.ts +95 -0
- package/src/internal/channel/continuation.ts +171 -0
- package/src/internal/channel/mergeDecision.ts +115 -0
- package/src/internal/channel/mergeState.ts +120 -0
- package/src/internal/channel/mergeStrategy.ts +72 -0
- package/src/internal/channel/singleProducerAsyncInput.ts +261 -0
- package/src/internal/channel/subexecutor.ts +229 -0
- package/src/internal/channel/upstreamPullRequest.ts +83 -0
- package/src/internal/channel/upstreamPullStrategy.ts +86 -0
- package/src/internal/channel.ts +2516 -0
- package/src/internal/clock.ts +97 -0
- package/src/internal/completedRequestMap.ts +9 -0
- package/src/internal/concurrency.ts +83 -0
- package/src/internal/config.ts +598 -0
- package/src/internal/configError.ts +291 -0
- package/src/internal/configProvider/pathPatch.ts +97 -0
- package/src/internal/configProvider.ts +692 -0
- package/src/internal/configSecret.ts +71 -0
- package/src/internal/console.ts +136 -0
- package/src/internal/core-effect.ts +2146 -0
- package/src/internal/core-stream.ts +999 -0
- package/src/internal/core.ts +2765 -0
- package/src/internal/dataSource.ts +258 -0
- package/src/internal/defaultServices/console.ts +97 -0
- package/src/internal/defaultServices.ts +140 -0
- package/src/internal/deferred.ts +44 -0
- package/src/internal/effect/circular.ts +664 -0
- package/src/internal/executionStrategy.ts +72 -0
- package/src/internal/fiber.ts +350 -0
- package/src/internal/fiberId.ts +270 -0
- package/src/internal/fiberMessage.ts +85 -0
- package/src/internal/fiberRefs/patch.ts +144 -0
- package/src/internal/fiberRefs.ts +239 -0
- package/src/internal/fiberRuntime.ts +3477 -0
- package/src/internal/fiberScope.ts +72 -0
- package/src/internal/fiberStatus.ts +118 -0
- package/src/internal/groupBy.ts +516 -0
- package/src/internal/keyedPool.ts +240 -0
- package/src/internal/layer/circular.ts +203 -0
- package/src/internal/layer.ts +1230 -0
- package/src/internal/logSpan.ts +15 -0
- package/src/internal/logger-circular.ts +24 -0
- package/src/internal/logger.ts +307 -0
- package/src/internal/metric/boundaries.ts +72 -0
- package/src/internal/metric/hook.ts +459 -0
- package/src/internal/metric/key.ts +173 -0
- package/src/internal/metric/keyType.ts +263 -0
- package/src/internal/metric/label.ts +44 -0
- package/src/internal/metric/pair.ts +48 -0
- package/src/internal/metric/polling.ts +143 -0
- package/src/internal/metric/registry.ts +188 -0
- package/src/internal/metric/state.ts +286 -0
- package/src/internal/metric.ts +522 -0
- package/src/internal/opCodes/cause.ts +35 -0
- package/src/internal/opCodes/channel.ts +83 -0
- package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
- package/src/internal/opCodes/channelMergeDecision.ts +11 -0
- package/src/internal/opCodes/channelMergeState.ts +17 -0
- package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
- package/src/internal/opCodes/channelState.ts +23 -0
- package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
- package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
- package/src/internal/opCodes/config.ts +65 -0
- package/src/internal/opCodes/configError.ts +35 -0
- package/src/internal/opCodes/continuation.ts +11 -0
- package/src/internal/opCodes/deferred.ts +11 -0
- package/src/internal/opCodes/effect.ts +83 -0
- package/src/internal/opCodes/layer.ts +53 -0
- package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
- package/src/internal/pool.ts +499 -0
- package/src/internal/pubsub.ts +1557 -0
- package/src/internal/query.ts +199 -0
- package/src/internal/queue.ts +729 -0
- package/src/internal/random.ts +88 -0
- package/src/internal/ref.ts +164 -0
- package/src/internal/reloadable.ts +164 -0
- package/src/internal/request.ts +137 -0
- package/src/internal/resource.ts +64 -0
- package/src/internal/ringBuffer.ts +68 -0
- package/src/internal/runtime.ts +348 -0
- package/src/internal/runtimeFlags.ts +176 -0
- package/src/internal/runtimeFlagsPatch.ts +103 -0
- package/src/internal/schedule/decision.ts +47 -0
- package/src/internal/schedule/interval.ts +101 -0
- package/src/internal/schedule/intervals.ts +179 -0
- package/src/internal/schedule.ts +2096 -0
- package/src/internal/scopedCache.ts +634 -0
- package/src/internal/scopedRef.ts +133 -0
- package/src/internal/singleShotGen.ts +35 -0
- package/src/internal/sink.ts +2118 -0
- package/src/internal/stm/core.ts +804 -0
- package/src/internal/stm/opCodes/stm.ts +71 -0
- package/src/internal/stm/opCodes/stmState.ts +17 -0
- package/src/internal/stm/opCodes/strategy.ts +17 -0
- package/src/internal/stm/opCodes/tExit.ts +29 -0
- package/src/internal/stm/opCodes/tryCommit.ts +11 -0
- package/src/internal/stm/stm/entry.ts +59 -0
- package/src/internal/stm/stm/journal.ts +123 -0
- package/src/internal/stm/stm/opCodes/stm.ts +71 -0
- package/src/internal/stm/stm/opCodes/stmState.ts +17 -0
- package/src/internal/stm/stm/opCodes/strategy.ts +17 -0
- package/src/internal/stm/stm/opCodes/tExit.ts +29 -0
- package/src/internal/stm/stm/opCodes/tryCommit.ts +11 -0
- package/src/internal/stm/stm/stmState.ts +130 -0
- package/src/internal/stm/stm/tExit.ts +180 -0
- package/src/internal/stm/stm/tryCommit.ts +34 -0
- package/src/internal/stm/stm/txnId.ts +14 -0
- package/src/internal/stm/stm/versioned.ts +4 -0
- package/src/internal/stm/stm.ts +1491 -0
- package/src/internal/stm/tArray.ts +550 -0
- package/src/internal/stm/tDeferred.ts +79 -0
- package/src/internal/stm/tMap.ts +824 -0
- package/src/internal/stm/tPriorityQueue.ts +259 -0
- package/src/internal/stm/tPubSub.ts +542 -0
- package/src/internal/stm/tQueue.ts +400 -0
- package/src/internal/stm/tRandom.ts +140 -0
- package/src/internal/stm/tReentrantLock.ts +352 -0
- package/src/internal/stm/tRef.ts +190 -0
- package/src/internal/stm/tSemaphore.ts +113 -0
- package/src/internal/stm/tSet.ts +237 -0
- package/src/internal/stream/debounceState.ts +57 -0
- package/src/internal/stream/emit.ts +46 -0
- package/src/internal/stream/haltStrategy.ts +85 -0
- package/src/internal/stream/handoff.ts +185 -0
- package/src/internal/stream/handoffSignal.ts +59 -0
- package/src/internal/stream/pull.ts +35 -0
- package/src/internal/stream/sinkEndReason.ts +30 -0
- package/src/internal/stream/zipAllState.ts +88 -0
- package/src/internal/stream/zipChunksState.ts +56 -0
- package/src/internal/stream.ts +8089 -0
- package/src/internal/string-utils.ts +107 -0
- package/src/internal/subscriptionRef.ts +133 -0
- package/src/internal/supervisor/patch.ts +190 -0
- package/src/internal/supervisor.ts +301 -0
- package/src/internal/synchronizedRef.ts +115 -0
- package/src/internal/take.ts +198 -0
- package/src/internal/testing/sleep.ts +27 -0
- package/src/internal/testing/suspendedWarningData.ts +85 -0
- package/src/internal/testing/warningData.ts +94 -0
- package/src/internal/timeout.ts +23 -0
- package/src/internal/tracer.ts +74 -0
- package/Error/dist/effect-Error.cjs.d.mts +0 -2
- package/Error/dist/effect-Error.cjs.d.mts.map +0 -1
- package/Error/dist/effect-Error.cjs.d.ts +0 -2
- package/Error/dist/effect-Error.cjs.d.ts.map +0 -1
- package/Error/dist/effect-Error.cjs.dev.js +0 -140
- package/Error/dist/effect-Error.cjs.js +0 -7
- package/Error/dist/effect-Error.cjs.mjs +0 -4
- package/Error/dist/effect-Error.cjs.prod.js +0 -140
- package/Error/dist/effect-Error.esm.js +0 -47
- package/Error/package.json +0 -4
- package/Hub/dist/effect-Hub.cjs.d.mts +0 -2
- package/Hub/dist/effect-Hub.cjs.d.mts.map +0 -1
- package/Hub/dist/effect-Hub.cjs.d.ts +0 -2
- package/Hub/dist/effect-Hub.cjs.d.ts.map +0 -1
- package/Hub/dist/effect-Hub.cjs.js +0 -7
- package/Hub/package.json +0 -4
- package/THub/dist/effect-THub.cjs.d.mts +0 -2
- package/THub/dist/effect-THub.cjs.d.mts.map +0 -1
- package/THub/dist/effect-THub.cjs.d.ts +0 -2
- package/THub/dist/effect-THub.cjs.d.ts.map +0 -1
- package/THub/dist/effect-THub.cjs.js +0 -7
- package/THub/dist/effect-THub.esm.js +0 -157
- package/THub/package.json +0 -4
- package/dist/declarations/src/Error.d.ts +0 -37
- package/dist/declarations/src/Error.d.ts.map +0 -1
- package/dist/declarations/src/Hub.d.ts.map +0 -1
- package/dist/declarations/src/THub.d.ts +0 -146
- package/dist/declarations/src/THub.d.ts.map +0 -1
- package/dist/scopedRef-1c2c9acf.cjs.prod.js +0 -55
- package/dist/scopedRef-ab4c58b0.cjs.dev.js +0 -55
- /package/dist/{FiberId-e594f6e8.cjs.prod.js → FiberId-1d7ac632.cjs.prod.js} +0 -0
- /package/dist/{FiberId-557db880.cjs.dev.js → FiberId-d88ddce6.cjs.dev.js} +0 -0
- /package/dist/{RuntimeFlagsPatch-ea268c50.cjs.dev.js → RuntimeFlagsPatch-69102b03.cjs.dev.js} +0 -0
- /package/dist/{RuntimeFlagsPatch-e2769b87.cjs.prod.js → RuntimeFlagsPatch-866fa259.cjs.prod.js} +0 -0
- /package/dist/{boundaries-20cfad9d.cjs.prod.js → boundaries-9af538e3.cjs.prod.js} +0 -0
- /package/dist/{boundaries-3810d885.cjs.dev.js → boundaries-f212e414.cjs.dev.js} +0 -0
- /package/dist/{configError-33e55472.cjs.prod.js → configError-b43723af.cjs.prod.js} +0 -0
- /package/dist/{configError-240e9b61.cjs.dev.js → configError-d5efe9c0.cjs.dev.js} +0 -0
- /package/dist/{configSecret-e34c1b14.cjs.dev.js → configSecret-3e8ae336.cjs.dev.js} +0 -0
- /package/dist/{configSecret-d1caca55.cjs.prod.js → configSecret-e2faa181.cjs.prod.js} +0 -0
- /package/dist/{take-2af6e92a.cjs.prod.js → take-85daaf79.cjs.prod.js} +0 -0
- /package/dist/{take-df9480a8.cjs.dev.js → take-f9ef9e2e.cjs.dev.js} +0 -0
package/src/Layer.ts
ADDED
|
@@ -0,0 +1,866 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `Layer<RIn, E, ROut>` describes how to build one or more services in your
|
|
3
|
+
* application. Services can be injected into effects via
|
|
4
|
+
* `Effect.provideService`. Effects can require services via `Effect.service`.
|
|
5
|
+
*
|
|
6
|
+
* Layer can be thought of as recipes for producing bundles of services, given
|
|
7
|
+
* their dependencies (other services).
|
|
8
|
+
*
|
|
9
|
+
* Construction of services can be effectful and utilize resources that must be
|
|
10
|
+
* acquired and safely released when the services are done being utilized.
|
|
11
|
+
*
|
|
12
|
+
* By default layers are shared, meaning that if the same layer is used twice
|
|
13
|
+
* the layer will only be allocated a single time.
|
|
14
|
+
*
|
|
15
|
+
* Because of their excellent composition properties, layers are the idiomatic
|
|
16
|
+
* way in Effect-TS to create services that depend on other services.
|
|
17
|
+
*
|
|
18
|
+
* @since 2.0.0
|
|
19
|
+
*/
|
|
20
|
+
import type * as Cause from "./Cause"
|
|
21
|
+
import type * as Context from "./Context"
|
|
22
|
+
import type * as Effect from "./Effect"
|
|
23
|
+
import type { FiberRef } from "./FiberRef"
|
|
24
|
+
import type { LazyArg } from "./Function"
|
|
25
|
+
import * as internal from "./internal/layer"
|
|
26
|
+
import type { Pipeable } from "./Pipeable"
|
|
27
|
+
import type * as Runtime from "./Runtime"
|
|
28
|
+
import type * as Schedule from "./Schedule"
|
|
29
|
+
import type * as Scope from "./Scope"
|
|
30
|
+
import type * as Tracer from "./Tracer"
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @since 2.0.0
|
|
34
|
+
* @category symbols
|
|
35
|
+
*/
|
|
36
|
+
export const LayerTypeId: unique symbol = internal.LayerTypeId
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @since 2.0.0
|
|
40
|
+
* @category symbols
|
|
41
|
+
*/
|
|
42
|
+
export type LayerTypeId = typeof LayerTypeId
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @since 2.0.0
|
|
46
|
+
* @category models
|
|
47
|
+
*/
|
|
48
|
+
export interface Layer<RIn, E, ROut> extends Layer.Variance<RIn, E, ROut>, Pipeable {}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @since 2.0.0
|
|
52
|
+
*/
|
|
53
|
+
export declare namespace Layer {
|
|
54
|
+
/**
|
|
55
|
+
* @since 2.0.0
|
|
56
|
+
* @category models
|
|
57
|
+
*/
|
|
58
|
+
export interface Variance<RIn, E, ROut> {
|
|
59
|
+
readonly [LayerTypeId]: {
|
|
60
|
+
readonly _RIn: (_: never) => RIn
|
|
61
|
+
readonly _E: (_: never) => E
|
|
62
|
+
readonly _ROut: (_: ROut) => void
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @since 2.0.0
|
|
67
|
+
* @category type-level
|
|
68
|
+
*/
|
|
69
|
+
export type Context<T extends Layer<any, any, never>> = [T] extends [Layer<infer _R, infer _E, infer _A>] ? _R : never
|
|
70
|
+
/**
|
|
71
|
+
* @since 2.0.0
|
|
72
|
+
* @category type-level
|
|
73
|
+
*/
|
|
74
|
+
export type Error<T extends Layer<any, any, never>> = [T] extends [Layer<infer _R, infer _E, infer _A>] ? _E : never
|
|
75
|
+
/**
|
|
76
|
+
* @since 2.0.0
|
|
77
|
+
* @category type-level
|
|
78
|
+
*/
|
|
79
|
+
export type Success<T extends Layer<any, any, never>> = [T] extends [Layer<infer _R, infer _E, infer _A>] ? _A : never
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Returns `true` if the specified value is a `Layer`, `false` otherwise.
|
|
84
|
+
*
|
|
85
|
+
* @since 2.0.0
|
|
86
|
+
* @category getters
|
|
87
|
+
*/
|
|
88
|
+
export const isLayer: (u: unknown) => u is Layer<unknown, unknown, unknown> = internal.isLayer
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Returns `true` if the specified `Layer` is a fresh version that will not be
|
|
92
|
+
* shared, `false` otherwise.
|
|
93
|
+
*
|
|
94
|
+
* @since 2.0.0
|
|
95
|
+
* @category getters
|
|
96
|
+
*/
|
|
97
|
+
export const isFresh: <R, E, A>(self: Layer<R, E, A>) => boolean = internal.isFresh
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Builds a layer into a scoped value.
|
|
101
|
+
*
|
|
102
|
+
* @since 2.0.0
|
|
103
|
+
* @category destructors
|
|
104
|
+
*/
|
|
105
|
+
export const build: <RIn, E, ROut>(
|
|
106
|
+
self: Layer<RIn, E, ROut>
|
|
107
|
+
) => Effect.Effect<Scope.Scope | RIn, E, Context.Context<ROut>> = internal.build
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Builds a layer into an `Effect` value. Any resources associated with this
|
|
111
|
+
* layer will be released when the specified scope is closed unless their scope
|
|
112
|
+
* has been extended. This allows building layers where the lifetime of some of
|
|
113
|
+
* the services output by the layer exceed the lifetime of the effect the
|
|
114
|
+
* layer is provided to.
|
|
115
|
+
*
|
|
116
|
+
* @since 2.0.0
|
|
117
|
+
* @category destructors
|
|
118
|
+
*/
|
|
119
|
+
export const buildWithScope: {
|
|
120
|
+
(scope: Scope.Scope): <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Effect.Effect<RIn, E, Context.Context<ROut>>
|
|
121
|
+
<RIn, E, ROut>(self: Layer<RIn, E, ROut>, scope: Scope.Scope): Effect.Effect<RIn, E, Context.Context<ROut>>
|
|
122
|
+
} = internal.buildWithScope
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Recovers from all errors.
|
|
126
|
+
*
|
|
127
|
+
* @since 2.0.0
|
|
128
|
+
* @category error handling
|
|
129
|
+
*/
|
|
130
|
+
export const catchAll: {
|
|
131
|
+
<E, R2, E2, A2>(onError: (error: E) => Layer<R2, E2, A2>): <R, A>(self: Layer<R, E, A>) => Layer<R2 | R, E2, A & A2>
|
|
132
|
+
<R, E, A, R2, E2, A2>(self: Layer<R, E, A>, onError: (error: E) => Layer<R2, E2, A2>): Layer<R | R2, E2, A & A2>
|
|
133
|
+
} = internal.catchAll
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Recovers from all errors.
|
|
137
|
+
*
|
|
138
|
+
* @since 2.0.0
|
|
139
|
+
* @category error handling
|
|
140
|
+
*/
|
|
141
|
+
export const catchAllCause: {
|
|
142
|
+
<E, R2, E2, A2>(
|
|
143
|
+
onError: (cause: Cause.Cause<E>) => Layer<R2, E2, A2>
|
|
144
|
+
): <R, A>(self: Layer<R, E, A>) => Layer<R2 | R, E2, A & A2>
|
|
145
|
+
<R, E, A, R2, E2, A2>(
|
|
146
|
+
self: Layer<R, E, A>,
|
|
147
|
+
onError: (cause: Cause.Cause<E>) => Layer<R2, E2, A2>
|
|
148
|
+
): Layer<R | R2, E2, A & A2>
|
|
149
|
+
} = internal.catchAllCause
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Constructs a `Layer` that passes along the specified context as an
|
|
153
|
+
* output.
|
|
154
|
+
*
|
|
155
|
+
* @since 2.0.0
|
|
156
|
+
* @category constructors
|
|
157
|
+
*/
|
|
158
|
+
export const context: <R>() => Layer<R, never, R> = internal.context
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Constructs a layer that dies with the specified defect.
|
|
162
|
+
*
|
|
163
|
+
* @since 2.0.0
|
|
164
|
+
* @category constructors
|
|
165
|
+
*/
|
|
166
|
+
export const die: (defect: unknown) => Layer<never, never, unknown> = internal.die
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Constructs a layer that dies with the specified defect.
|
|
170
|
+
*
|
|
171
|
+
* @since 2.0.0
|
|
172
|
+
* @category constructors
|
|
173
|
+
*/
|
|
174
|
+
export const dieSync: (evaluate: LazyArg<unknown>) => Layer<never, never, unknown> = internal.dieSync
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Replaces the layer's output with `void` and includes the layer only for its
|
|
178
|
+
* side-effects.
|
|
179
|
+
*
|
|
180
|
+
* @since 2.0.0
|
|
181
|
+
* @category mapping
|
|
182
|
+
*/
|
|
183
|
+
export const discard: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn, E, never> = internal.discard
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Constructs a layer from the specified effect.
|
|
187
|
+
*
|
|
188
|
+
* @since 2.0.0
|
|
189
|
+
* @category constructors
|
|
190
|
+
*/
|
|
191
|
+
export const effect: {
|
|
192
|
+
<T extends Context.Tag<any, any>>(
|
|
193
|
+
tag: T
|
|
194
|
+
): <R, E>(effect: Effect.Effect<R, E, Context.Tag.Service<T>>) => Layer<R, E, Context.Tag.Identifier<T>>
|
|
195
|
+
<T extends Context.Tag<any, any>, R, E>(
|
|
196
|
+
tag: T,
|
|
197
|
+
effect: Effect.Effect<R, E, Context.Tag.Service<T>>
|
|
198
|
+
): Layer<R, E, Context.Tag.Identifier<T>>
|
|
199
|
+
} = internal.fromEffect
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Constructs a layer from the specified effect discarding it's output.
|
|
203
|
+
*
|
|
204
|
+
* @since 2.0.0
|
|
205
|
+
* @category constructors
|
|
206
|
+
*/
|
|
207
|
+
export const effectDiscard: <R, E, _>(effect: Effect.Effect<R, E, _>) => Layer<R, E, never> = internal.fromEffectDiscard
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Constructs a layer from the specified effect, which must return one or more
|
|
211
|
+
* services.
|
|
212
|
+
*
|
|
213
|
+
* @since 2.0.0
|
|
214
|
+
* @category constructors
|
|
215
|
+
*/
|
|
216
|
+
export const effectContext: <R, E, A>(effect: Effect.Effect<R, E, Context.Context<A>>) => Layer<R, E, A> =
|
|
217
|
+
internal.fromEffectContext
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Extends the scope of this layer, returning a new layer that when provided
|
|
221
|
+
* to an effect will not immediately release its associated resources when
|
|
222
|
+
* that effect completes execution but instead when the scope the resulting
|
|
223
|
+
* effect depends on is closed.
|
|
224
|
+
*
|
|
225
|
+
* @since 2.0.0
|
|
226
|
+
* @category utils
|
|
227
|
+
*/
|
|
228
|
+
export const extendScope: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<Scope.Scope | RIn, E, ROut> =
|
|
229
|
+
internal.extendScope
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Constructs a layer that fails with the specified error.
|
|
233
|
+
*
|
|
234
|
+
* @since 2.0.0
|
|
235
|
+
* @category constructors
|
|
236
|
+
*/
|
|
237
|
+
export const fail: <E>(error: E) => Layer<never, E, unknown> = internal.fail
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Constructs a layer that fails with the specified error.
|
|
241
|
+
*
|
|
242
|
+
* @since 2.0.0
|
|
243
|
+
* @category constructors
|
|
244
|
+
*/
|
|
245
|
+
export const failSync: <E>(evaluate: LazyArg<E>) => Layer<never, E, unknown> = internal.failSync
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Constructs a layer that fails with the specified cause.
|
|
249
|
+
*
|
|
250
|
+
* @since 2.0.0
|
|
251
|
+
* @category constructors
|
|
252
|
+
*/
|
|
253
|
+
export const failCause: <E>(cause: Cause.Cause<E>) => Layer<never, E, unknown> = internal.failCause
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Constructs a layer that fails with the specified cause.
|
|
257
|
+
*
|
|
258
|
+
* @since 2.0.0
|
|
259
|
+
* @category constructors
|
|
260
|
+
*/
|
|
261
|
+
export const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => Layer<never, E, unknown> = internal.failCauseSync
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Constructs a layer dynamically based on the output of this layer.
|
|
265
|
+
*
|
|
266
|
+
* @since 2.0.0
|
|
267
|
+
* @category sequencing
|
|
268
|
+
*/
|
|
269
|
+
export const flatMap: {
|
|
270
|
+
<A, R2, E2, A2>(
|
|
271
|
+
f: (context: Context.Context<A>) => Layer<R2, E2, A2>
|
|
272
|
+
): <R, E>(self: Layer<R, E, A>) => Layer<R2 | R, E2 | E, A2>
|
|
273
|
+
<R, E, A, R2, E2, A2>(
|
|
274
|
+
self: Layer<R, E, A>,
|
|
275
|
+
f: (context: Context.Context<A>) => Layer<R2, E2, A2>
|
|
276
|
+
): Layer<R | R2, E | E2, A2>
|
|
277
|
+
} = internal.flatMap
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Flattens layers nested in the context of an effect.
|
|
281
|
+
*
|
|
282
|
+
* @since 2.0.0
|
|
283
|
+
* @category sequencing
|
|
284
|
+
*/
|
|
285
|
+
export const flatten: {
|
|
286
|
+
<R2, E2, A, I>(tag: Context.Tag<I, Layer<R2, E2, A>>): <R, E>(self: Layer<R, E, I>) => Layer<R2 | R, E2 | E, A>
|
|
287
|
+
<R, E, A, R2, E2, I>(self: Layer<R, E, I>, tag: Context.Tag<I, Layer<R2, E2, A>>): Layer<R | R2, E | E2, A>
|
|
288
|
+
} = internal.flatten
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Creates a fresh version of this layer that will not be shared.
|
|
292
|
+
*
|
|
293
|
+
* @since 2.0.0
|
|
294
|
+
* @category utils
|
|
295
|
+
*/
|
|
296
|
+
export const fresh: <R, E, A>(self: Layer<R, E, A>) => Layer<R, E, A> = internal.fresh
|
|
297
|
+
|
|
298
|
+
const fromFunction: <A extends Context.Tag<any, any>, B extends Context.Tag<any, any>>(
|
|
299
|
+
tagA: A,
|
|
300
|
+
tagB: B,
|
|
301
|
+
f: (a: Context.Tag.Service<A>) => Context.Tag.Service<B>
|
|
302
|
+
) => Layer<Context.Tag.Identifier<A>, never, Context.Tag.Identifier<B>> = internal.fromFunction
|
|
303
|
+
|
|
304
|
+
export {
|
|
305
|
+
/**
|
|
306
|
+
* Constructs a layer from the context using the specified function.
|
|
307
|
+
*
|
|
308
|
+
* @since 2.0.0
|
|
309
|
+
* @category constructors
|
|
310
|
+
*/
|
|
311
|
+
fromFunction as function
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Builds this layer and uses it until it is interrupted. This is useful when
|
|
316
|
+
* your entire application is a layer, such as an HTTP server.
|
|
317
|
+
*
|
|
318
|
+
* @since 2.0.0
|
|
319
|
+
* @category conversions
|
|
320
|
+
*/
|
|
321
|
+
export const launch: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Effect.Effect<RIn, E, never> = internal.launch
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Returns a new layer whose output is mapped by the specified function.
|
|
325
|
+
*
|
|
326
|
+
* @since 2.0.0
|
|
327
|
+
* @category mapping
|
|
328
|
+
*/
|
|
329
|
+
export const map: {
|
|
330
|
+
<A, B>(f: (context: Context.Context<A>) => Context.Context<B>): <R, E>(self: Layer<R, E, A>) => Layer<R, E, B>
|
|
331
|
+
<R, E, A, B>(self: Layer<R, E, A>, f: (context: Context.Context<A>) => Context.Context<B>): Layer<R, E, B>
|
|
332
|
+
} = internal.map
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Returns a layer with its error channel mapped using the specified function.
|
|
336
|
+
*
|
|
337
|
+
* @since 2.0.0
|
|
338
|
+
* @category mapping
|
|
339
|
+
*/
|
|
340
|
+
export const mapError: {
|
|
341
|
+
<E, E2>(f: (error: E) => E2): <R, A>(self: Layer<R, E, A>) => Layer<R, E2, A>
|
|
342
|
+
<R, E, A, E2>(self: Layer<R, E, A>, f: (error: E) => E2): Layer<R, E2, A>
|
|
343
|
+
} = internal.mapError
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Feeds the error or output services of this layer into the input of either
|
|
347
|
+
* the specified `failure` or `success` layers, resulting in a new layer with
|
|
348
|
+
* the inputs of this layer, and the error or outputs of the specified layer.
|
|
349
|
+
*
|
|
350
|
+
* @since 2.0.0
|
|
351
|
+
* @category folding
|
|
352
|
+
*/
|
|
353
|
+
export const match: {
|
|
354
|
+
<E, R2, E2, A2, A, R3, E3, A3>(
|
|
355
|
+
options: {
|
|
356
|
+
readonly onFailure: (error: E) => Layer<R2, E2, A2>
|
|
357
|
+
readonly onSuccess: (context: Context.Context<A>) => Layer<R3, E3, A3>
|
|
358
|
+
}
|
|
359
|
+
): <R>(self: Layer<R, E, A>) => Layer<R2 | R3 | R, E2 | E3, A2 & A3>
|
|
360
|
+
<R, E, A, R2, E2, A2, R3, E3, A3>(
|
|
361
|
+
self: Layer<R, E, A>,
|
|
362
|
+
options: {
|
|
363
|
+
readonly onFailure: (error: E) => Layer<R2, E2, A2>
|
|
364
|
+
readonly onSuccess: (context: Context.Context<A>) => Layer<R3, E3, A3>
|
|
365
|
+
}
|
|
366
|
+
): Layer<R | R2 | R3, E2 | E3, A2 & A3>
|
|
367
|
+
} = internal.match
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* Feeds the error or output services of this layer into the input of either
|
|
371
|
+
* the specified `failure` or `success` layers, resulting in a new layer with
|
|
372
|
+
* the inputs of this layer, and the error or outputs of the specified layer.
|
|
373
|
+
*
|
|
374
|
+
* @since 2.0.0
|
|
375
|
+
* @category folding
|
|
376
|
+
*/
|
|
377
|
+
export const matchCause: {
|
|
378
|
+
<E, A, R2, E2, A2, R3, E3, A3>(
|
|
379
|
+
options: {
|
|
380
|
+
readonly onFailure: (cause: Cause.Cause<E>) => Layer<R2, E2, A2>
|
|
381
|
+
readonly onSuccess: (context: Context.Context<A>) => Layer<R3, E3, A3>
|
|
382
|
+
}
|
|
383
|
+
): <R>(self: Layer<R, E, A>) => Layer<R2 | R3 | R, E2 | E3, A2 & A3>
|
|
384
|
+
<R, E, A, R2, E2, A2, R3, E3, A3>(
|
|
385
|
+
self: Layer<R, E, A>,
|
|
386
|
+
options: {
|
|
387
|
+
readonly onFailure: (cause: Cause.Cause<E>) => Layer<R2, E2, A2>
|
|
388
|
+
readonly onSuccess: (context: Context.Context<A>) => Layer<R3, E3, A3>
|
|
389
|
+
}
|
|
390
|
+
): Layer<R | R2 | R3, E2 | E3, A2 & A3>
|
|
391
|
+
} = internal.matchCause
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Returns a scoped effect that, if evaluated, will return the lazily computed
|
|
395
|
+
* result of this layer.
|
|
396
|
+
*
|
|
397
|
+
* @since 2.0.0
|
|
398
|
+
* @category utils
|
|
399
|
+
*/
|
|
400
|
+
export const memoize: <RIn, E, ROut>(
|
|
401
|
+
self: Layer<RIn, E, ROut>
|
|
402
|
+
) => Effect.Effect<Scope.Scope, never, Layer<RIn, E, ROut>> = internal.memoize
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Combines this layer with the specified layer, producing a new layer that
|
|
406
|
+
* has the inputs and outputs of both.
|
|
407
|
+
*
|
|
408
|
+
* @since 2.0.0
|
|
409
|
+
* @category utils
|
|
410
|
+
*/
|
|
411
|
+
export const merge: {
|
|
412
|
+
<RIn2, E2, ROut2>(
|
|
413
|
+
that: Layer<RIn2, E2, ROut2>
|
|
414
|
+
): <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn2 | RIn, E2 | E, ROut2 | ROut>
|
|
415
|
+
<RIn, E, ROut, RIn2, E2, ROut2>(
|
|
416
|
+
self: Layer<RIn, E, ROut>,
|
|
417
|
+
that: Layer<RIn2, E2, ROut2>
|
|
418
|
+
): Layer<RIn | RIn2, E | E2, ROut | ROut2>
|
|
419
|
+
} = internal.merge
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Merges all the layers together in parallel.
|
|
423
|
+
*
|
|
424
|
+
* @since 2.0.0
|
|
425
|
+
* @category zipping
|
|
426
|
+
*/
|
|
427
|
+
export const mergeAll: <Layers extends [Layer<any, any, never>, ...Array<Layer<any, any, never>>]>(
|
|
428
|
+
...layers: Layers
|
|
429
|
+
) => Layer<
|
|
430
|
+
{ [k in keyof Layers]: Layer.Context<Layers[k]> }[number],
|
|
431
|
+
{ [k in keyof Layers]: Layer.Error<Layers[k]> }[number],
|
|
432
|
+
{ [k in keyof Layers]: Layer.Success<Layers[k]> }[number]
|
|
433
|
+
> = internal.mergeAll
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* Translates effect failure into death of the fiber, making all failures
|
|
437
|
+
* unchecked and not a part of the type of the layer.
|
|
438
|
+
*
|
|
439
|
+
* @since 2.0.0
|
|
440
|
+
* @category error handling
|
|
441
|
+
*/
|
|
442
|
+
export const orDie: <R, E, A>(self: Layer<R, E, A>) => Layer<R, never, A> = internal.orDie
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Executes this layer and returns its output, if it succeeds, but otherwise
|
|
446
|
+
* executes the specified layer.
|
|
447
|
+
*
|
|
448
|
+
* @since 2.0.0
|
|
449
|
+
* @category error handling
|
|
450
|
+
*/
|
|
451
|
+
export const orElse: {
|
|
452
|
+
<R2, E2, A2>(that: LazyArg<Layer<R2, E2, A2>>): <R, E, A>(self: Layer<R, E, A>) => Layer<R2 | R, E2 | E, A & A2>
|
|
453
|
+
<R, E, A, R2, E2, A2>(self: Layer<R, E, A>, that: LazyArg<Layer<R2, E2, A2>>): Layer<R | R2, E | E2, A & A2>
|
|
454
|
+
} = internal.orElse
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Returns a new layer that produces the outputs of this layer but also
|
|
458
|
+
* passes through the inputs.
|
|
459
|
+
*
|
|
460
|
+
* @since 2.0.0
|
|
461
|
+
* @category utils
|
|
462
|
+
*/
|
|
463
|
+
export const passthrough: <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn, E, RIn | ROut> = internal.passthrough
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* Projects out part of one of the services output by this layer using the
|
|
467
|
+
* specified function.
|
|
468
|
+
*
|
|
469
|
+
* @since 2.0.0
|
|
470
|
+
* @category utils
|
|
471
|
+
*/
|
|
472
|
+
export const project: {
|
|
473
|
+
<A extends Context.Tag<any, any>, B extends Context.Tag<any, any>>(
|
|
474
|
+
tagA: A,
|
|
475
|
+
tagB: B,
|
|
476
|
+
f: (a: Context.Tag.Service<A>) => Context.Tag.Service<B>
|
|
477
|
+
): <RIn, E>(self: Layer<RIn, E, Context.Tag.Identifier<A>>) => Layer<RIn, E, Context.Tag.Identifier<B>>
|
|
478
|
+
<RIn, E, A extends Context.Tag<any, any>, B extends Context.Tag<any, any>>(
|
|
479
|
+
self: Layer<RIn, E, Context.Tag.Identifier<A>>,
|
|
480
|
+
tagA: A,
|
|
481
|
+
tagB: B,
|
|
482
|
+
f: (a: Context.Tag.Service<A>) => Context.Tag.Service<B>
|
|
483
|
+
): Layer<RIn, E, Context.Tag.Identifier<B>>
|
|
484
|
+
} = internal.project
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* Feeds the output services of this builder into the input of the specified
|
|
488
|
+
* builder, resulting in a new builder with the inputs of this builder as
|
|
489
|
+
* well as any leftover inputs, and the outputs of the specified builder.
|
|
490
|
+
*
|
|
491
|
+
* @since 2.0.0
|
|
492
|
+
* @category utils
|
|
493
|
+
*/
|
|
494
|
+
export const provide: {
|
|
495
|
+
<RIn2, E2, ROut2>(
|
|
496
|
+
that: Layer<RIn2, E2, ROut2>
|
|
497
|
+
): <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn | Exclude<RIn2, ROut>, E2 | E, ROut2>
|
|
498
|
+
<RIn, E, ROut, RIn2, E2, ROut2>(
|
|
499
|
+
self: Layer<RIn, E, ROut>,
|
|
500
|
+
that: Layer<RIn2, E2, ROut2>
|
|
501
|
+
): Layer<RIn | Exclude<RIn2, ROut>, E | E2, ROut2>
|
|
502
|
+
} = internal.provide
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
* @since 2.0.0
|
|
506
|
+
* @category utils
|
|
507
|
+
*/
|
|
508
|
+
export const locallyEffect: {
|
|
509
|
+
<RIn, E, ROut, RIn2, E2, ROut2>(
|
|
510
|
+
f: (_: Effect.Effect<RIn, E, Context.Context<ROut>>) => Effect.Effect<RIn2, E2, Context.Context<ROut2>>
|
|
511
|
+
): (self: Layer<RIn, E, ROut>) => Layer<RIn2, E2, ROut2>
|
|
512
|
+
<RIn, E, ROut, RIn2, E2, ROut2>(
|
|
513
|
+
self: Layer<RIn, E, ROut>,
|
|
514
|
+
f: (_: Effect.Effect<RIn, E, Context.Context<ROut>>) => Effect.Effect<RIn2, E2, Context.Context<ROut2>>
|
|
515
|
+
): Layer<RIn2, E2, ROut2>
|
|
516
|
+
} = internal.locallyEffect
|
|
517
|
+
|
|
518
|
+
/**
|
|
519
|
+
* @since 2.0.0
|
|
520
|
+
* @category utils
|
|
521
|
+
*/
|
|
522
|
+
export const locally: {
|
|
523
|
+
<X>(
|
|
524
|
+
ref: FiberRef<X>,
|
|
525
|
+
value: X
|
|
526
|
+
): <R, E, A>(self: Layer<R, E, A>) => Layer<R, E, A>
|
|
527
|
+
<R, E, A, X>(
|
|
528
|
+
self: Layer<R, E, A>,
|
|
529
|
+
ref: FiberRef<X>,
|
|
530
|
+
value: X
|
|
531
|
+
): Layer<R, E, A>
|
|
532
|
+
} = internal.fiberRefLocally
|
|
533
|
+
|
|
534
|
+
/**
|
|
535
|
+
* @since 2.0.0
|
|
536
|
+
* @category utils
|
|
537
|
+
*/
|
|
538
|
+
export const locallyWith: {
|
|
539
|
+
<X>(ref: FiberRef<X>, value: (_: X) => X): <R, E, A>(self: Layer<R, E, A>) => Layer<R, E, A>
|
|
540
|
+
<R, E, A, X>(self: Layer<R, E, A>, ref: FiberRef<X>, value: (_: X) => X): Layer<R, E, A>
|
|
541
|
+
} = internal.fiberRefLocallyWith
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* @since 2.0.0
|
|
545
|
+
* @category utils
|
|
546
|
+
*/
|
|
547
|
+
export const locallyScoped: <A>(self: FiberRef<A>, value: A) => Layer<never, never, never> =
|
|
548
|
+
internal.fiberRefLocallyScoped
|
|
549
|
+
|
|
550
|
+
/**
|
|
551
|
+
* @since 2.0.0
|
|
552
|
+
* @category utils
|
|
553
|
+
*/
|
|
554
|
+
export const fiberRefLocallyScopedWith: <A>(self: FiberRef<A>, value: (_: A) => A) => Layer<never, never, never> =
|
|
555
|
+
internal.fiberRefLocallyScopedWith
|
|
556
|
+
|
|
557
|
+
/**
|
|
558
|
+
* Feeds the output services of this layer into the input of the specified
|
|
559
|
+
* layer, resulting in a new layer with the inputs of this layer, and the
|
|
560
|
+
* outputs of both layers.
|
|
561
|
+
*
|
|
562
|
+
* @since 2.0.0
|
|
563
|
+
* @category utils
|
|
564
|
+
*/
|
|
565
|
+
export const provideMerge: {
|
|
566
|
+
<RIn2, E2, ROut2>(
|
|
567
|
+
that: Layer<RIn2, E2, ROut2>
|
|
568
|
+
): <RIn, E, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn | Exclude<RIn2, ROut>, E2 | E, ROut2 | ROut>
|
|
569
|
+
<RIn, E, ROut, RIn2, E2, ROut2>(
|
|
570
|
+
self: Layer<RIn, E, ROut>,
|
|
571
|
+
that: Layer<RIn2, E2, ROut2>
|
|
572
|
+
): Layer<RIn | Exclude<RIn2, ROut>, E | E2, ROut | ROut2>
|
|
573
|
+
} = internal.provideMerge
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* Retries constructing this layer according to the specified schedule.
|
|
577
|
+
*
|
|
578
|
+
* @since 2.0.0
|
|
579
|
+
* @category retrying
|
|
580
|
+
*/
|
|
581
|
+
export const retry: {
|
|
582
|
+
<RIn2, E, X>(
|
|
583
|
+
schedule: Schedule.Schedule<RIn2, E, X>
|
|
584
|
+
): <RIn, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn2 | RIn, E, ROut>
|
|
585
|
+
<RIn, E, ROut, RIn2, X>(
|
|
586
|
+
self: Layer<RIn, E, ROut>,
|
|
587
|
+
schedule: Schedule.Schedule<RIn2, E, X>
|
|
588
|
+
): Layer<RIn | RIn2, E, ROut>
|
|
589
|
+
} = internal.retry
|
|
590
|
+
|
|
591
|
+
/**
|
|
592
|
+
* A layer that constructs a scope and closes it when the workflow the layer
|
|
593
|
+
* is provided to completes execution, whether by success, failure, or
|
|
594
|
+
* interruption. This can be used to close a scope when providing a layer to a
|
|
595
|
+
* workflow.
|
|
596
|
+
*
|
|
597
|
+
* @since 2.0.0
|
|
598
|
+
* @category constructors
|
|
599
|
+
*/
|
|
600
|
+
export const scope: Layer<never, never, Scope.CloseableScope> = internal.scope
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* Constructs a layer from the specified scoped effect.
|
|
604
|
+
*
|
|
605
|
+
* @since 2.0.0
|
|
606
|
+
* @category constructors
|
|
607
|
+
*/
|
|
608
|
+
export const scoped: {
|
|
609
|
+
<T extends Context.Tag<any, any>>(
|
|
610
|
+
tag: T
|
|
611
|
+
): <R, E>(
|
|
612
|
+
effect: Effect.Effect<R, E, Context.Tag.Service<T>>
|
|
613
|
+
) => Layer<Exclude<R, Scope.Scope>, E, Context.Tag.Identifier<T>>
|
|
614
|
+
<T extends Context.Tag<any, any>, R, E>(
|
|
615
|
+
tag: T,
|
|
616
|
+
effect: Effect.Effect<R, E, Context.Tag.Service<T>>
|
|
617
|
+
): Layer<Exclude<R, Scope.Scope>, E, Context.Tag.Identifier<T>>
|
|
618
|
+
} = internal.scoped
|
|
619
|
+
|
|
620
|
+
/**
|
|
621
|
+
* Constructs a layer from the specified scoped effect.
|
|
622
|
+
*
|
|
623
|
+
* @since 2.0.0
|
|
624
|
+
* @category constructors
|
|
625
|
+
*/
|
|
626
|
+
export const scopedDiscard: <R, E, T>(effect: Effect.Effect<R, E, T>) => Layer<Exclude<R, Scope.Scope>, E, never> =
|
|
627
|
+
internal.scopedDiscard
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* Constructs a layer from the specified scoped effect, which must return one
|
|
631
|
+
* or more services.
|
|
632
|
+
*
|
|
633
|
+
* @since 2.0.0
|
|
634
|
+
* @category constructors
|
|
635
|
+
*/
|
|
636
|
+
export const scopedContext: <R, E, A>(
|
|
637
|
+
effect: Effect.Effect<R, E, Context.Context<A>>
|
|
638
|
+
) => Layer<Exclude<R, Scope.Scope>, E, A> = internal.scopedContext
|
|
639
|
+
|
|
640
|
+
/**
|
|
641
|
+
* Constructs a layer that accesses and returns the specified service from the
|
|
642
|
+
* context.
|
|
643
|
+
*
|
|
644
|
+
* @since 2.0.0
|
|
645
|
+
* @category constructors
|
|
646
|
+
*/
|
|
647
|
+
export const service: <T extends Context.Tag<any, any>>(
|
|
648
|
+
tag: T
|
|
649
|
+
) => Layer<Context.Tag.Identifier<T>, never, Context.Tag.Identifier<T>> = internal.service
|
|
650
|
+
|
|
651
|
+
/**
|
|
652
|
+
* Constructs a layer from the specified value.
|
|
653
|
+
*
|
|
654
|
+
* @since 2.0.0
|
|
655
|
+
* @category constructors
|
|
656
|
+
*/
|
|
657
|
+
export const succeed: {
|
|
658
|
+
<T extends Context.Tag<any, any>>(
|
|
659
|
+
tag: T
|
|
660
|
+
): (resource: Context.Tag.Service<T>) => Layer<never, never, Context.Tag.Identifier<T>>
|
|
661
|
+
<T extends Context.Tag<any, any>>(
|
|
662
|
+
tag: T,
|
|
663
|
+
resource: Context.Tag.Service<T>
|
|
664
|
+
): Layer<never, never, Context.Tag.Identifier<T>>
|
|
665
|
+
} = internal.succeed
|
|
666
|
+
|
|
667
|
+
/**
|
|
668
|
+
* Constructs a layer from the specified value, which must return one or more
|
|
669
|
+
* services.
|
|
670
|
+
*
|
|
671
|
+
* @since 2.0.0
|
|
672
|
+
* @category constructors
|
|
673
|
+
*/
|
|
674
|
+
export const succeedContext: <A>(context: Context.Context<A>) => Layer<never, never, A> = internal.succeedContext
|
|
675
|
+
|
|
676
|
+
/**
|
|
677
|
+
* Lazily constructs a layer. This is useful to avoid infinite recursion when
|
|
678
|
+
* creating layers that refer to themselves.
|
|
679
|
+
*
|
|
680
|
+
* @since 2.0.0
|
|
681
|
+
* @category constructors
|
|
682
|
+
*/
|
|
683
|
+
export const suspend: <RIn, E, ROut>(evaluate: LazyArg<Layer<RIn, E, ROut>>) => Layer<RIn, E, ROut> = internal.suspend
|
|
684
|
+
|
|
685
|
+
/**
|
|
686
|
+
* Lazily constructs a layer from the specified value.
|
|
687
|
+
*
|
|
688
|
+
* @since 2.0.0
|
|
689
|
+
* @category constructors
|
|
690
|
+
*/
|
|
691
|
+
export const sync: {
|
|
692
|
+
<T extends Context.Tag<any, any>>(
|
|
693
|
+
tag: T
|
|
694
|
+
): (evaluate: LazyArg<Context.Tag.Service<T>>) => Layer<never, never, Context.Tag.Identifier<T>>
|
|
695
|
+
<T extends Context.Tag<any, any>>(
|
|
696
|
+
tag: T,
|
|
697
|
+
evaluate: LazyArg<Context.Tag.Service<T>>
|
|
698
|
+
): Layer<never, never, Context.Tag.Identifier<T>>
|
|
699
|
+
} = internal.sync
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* Lazily constructs a layer from the specified value, which must return one or more
|
|
703
|
+
* services.
|
|
704
|
+
*
|
|
705
|
+
* @since 2.0.0
|
|
706
|
+
* @category constructors
|
|
707
|
+
*/
|
|
708
|
+
export const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) => Layer<never, never, A> = internal.syncContext
|
|
709
|
+
|
|
710
|
+
/**
|
|
711
|
+
* Performs the specified effect if this layer succeeds.
|
|
712
|
+
*
|
|
713
|
+
* @since 2.0.0
|
|
714
|
+
* @category sequencing
|
|
715
|
+
*/
|
|
716
|
+
export const tap: {
|
|
717
|
+
<ROut, XR extends ROut, RIn2, E2, X>(
|
|
718
|
+
f: (context: Context.Context<XR>) => Effect.Effect<RIn2, E2, X>
|
|
719
|
+
): <RIn, E>(self: Layer<RIn, E, ROut>) => Layer<RIn2 | RIn, E2 | E, ROut>
|
|
720
|
+
<RIn, E, ROut, XR extends ROut, RIn2, E2, X>(
|
|
721
|
+
self: Layer<RIn, E, ROut>,
|
|
722
|
+
f: (context: Context.Context<XR>) => Effect.Effect<RIn2, E2, X>
|
|
723
|
+
): Layer<RIn | RIn2, E | E2, ROut>
|
|
724
|
+
} = internal.tap
|
|
725
|
+
|
|
726
|
+
/**
|
|
727
|
+
* Performs the specified effect if this layer fails.
|
|
728
|
+
*
|
|
729
|
+
* @since 2.0.0
|
|
730
|
+
* @category sequencing
|
|
731
|
+
*/
|
|
732
|
+
export const tapError: {
|
|
733
|
+
<E, XE extends E, RIn2, E2, X>(
|
|
734
|
+
f: (e: XE) => Effect.Effect<RIn2, E2, X>
|
|
735
|
+
): <RIn, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn2 | RIn, E | E2, ROut>
|
|
736
|
+
<RIn, E, XE extends E, ROut, RIn2, E2, X>(
|
|
737
|
+
self: Layer<RIn, E, ROut>,
|
|
738
|
+
f: (e: XE) => Effect.Effect<RIn2, E2, X>
|
|
739
|
+
): Layer<RIn | RIn2, E | E2, ROut>
|
|
740
|
+
} = internal.tapError
|
|
741
|
+
|
|
742
|
+
/**
|
|
743
|
+
* Performs the specified effect if this layer fails.
|
|
744
|
+
*
|
|
745
|
+
* @since 2.0.0
|
|
746
|
+
* @category sequencing
|
|
747
|
+
*/
|
|
748
|
+
export const tapErrorCause: {
|
|
749
|
+
<E, XE extends E, RIn2, E2, X>(
|
|
750
|
+
f: (cause: Cause.Cause<XE>) => Effect.Effect<RIn2, E2, X>
|
|
751
|
+
): <RIn, ROut>(self: Layer<RIn, E, ROut>) => Layer<RIn2 | RIn, E | E2, ROut>
|
|
752
|
+
<RIn, E, XE extends E, ROut, RIn2, E2, X>(
|
|
753
|
+
self: Layer<RIn, E, ROut>,
|
|
754
|
+
f: (cause: Cause.Cause<XE>) => Effect.Effect<RIn2, E2, X>
|
|
755
|
+
): Layer<RIn | RIn2, E | E2, ROut>
|
|
756
|
+
} = internal.tapErrorCause
|
|
757
|
+
|
|
758
|
+
/**
|
|
759
|
+
* Converts a layer that requires no services into a scoped runtime, which can
|
|
760
|
+
* be used to execute effects.
|
|
761
|
+
*
|
|
762
|
+
* @since 2.0.0
|
|
763
|
+
* @category conversions
|
|
764
|
+
*/
|
|
765
|
+
export const toRuntime: <RIn, E, ROut>(
|
|
766
|
+
self: Layer<RIn, E, ROut>
|
|
767
|
+
) => Effect.Effect<Scope.Scope | RIn, E, Runtime.Runtime<ROut>> = internal.toRuntime
|
|
768
|
+
|
|
769
|
+
/**
|
|
770
|
+
* Feeds the output services of this builder into the input of the specified
|
|
771
|
+
* builder, resulting in a new builder with the inputs of this builder as
|
|
772
|
+
* well as any leftover inputs, and the outputs of the specified builder.
|
|
773
|
+
*
|
|
774
|
+
* @since 2.0.0
|
|
775
|
+
* @category utils
|
|
776
|
+
*/
|
|
777
|
+
export const use: {
|
|
778
|
+
<RIn, E, ROut>(
|
|
779
|
+
self: Layer<RIn, E, ROut>
|
|
780
|
+
): <RIn2, E2, ROut2>(that: Layer<RIn2, E2, ROut2>) => Layer<RIn | Exclude<RIn2, ROut>, E | E2, ROut2>
|
|
781
|
+
<RIn2, E2, ROut2, RIn, E, ROut>(
|
|
782
|
+
that: Layer<RIn2, E2, ROut2>,
|
|
783
|
+
self: Layer<RIn, E, ROut>
|
|
784
|
+
): Layer<RIn | Exclude<RIn2, ROut>, E2 | E, ROut2>
|
|
785
|
+
} = internal.use
|
|
786
|
+
|
|
787
|
+
/**
|
|
788
|
+
* Feeds the output services of this layer into the input of the specified
|
|
789
|
+
* layer, resulting in a new layer with the inputs of this layer, and the
|
|
790
|
+
* outputs of both layers.
|
|
791
|
+
*
|
|
792
|
+
* @since 2.0.0
|
|
793
|
+
* @category utils
|
|
794
|
+
*/
|
|
795
|
+
export const useMerge: {
|
|
796
|
+
<RIn, E, ROut>(
|
|
797
|
+
self: Layer<RIn, E, ROut>
|
|
798
|
+
): <RIn2, E2, ROut2>(that: Layer<RIn2, E2, ROut2>) => Layer<RIn | Exclude<RIn2, ROut>, E | E2, ROut | ROut2>
|
|
799
|
+
<RIn2, E2, ROut2, RIn, E, ROut>(
|
|
800
|
+
that: Layer<RIn2, E2, ROut2>,
|
|
801
|
+
self: Layer<RIn, E, ROut>
|
|
802
|
+
): Layer<RIn | Exclude<RIn2, ROut>, E2 | E, ROut2 | ROut>
|
|
803
|
+
} = internal.useMerge
|
|
804
|
+
|
|
805
|
+
/**
|
|
806
|
+
* Combines this layer the specified layer, producing a new layer that has the
|
|
807
|
+
* inputs of both, and the outputs of both combined using the specified
|
|
808
|
+
* function.
|
|
809
|
+
*
|
|
810
|
+
* @since 2.0.0
|
|
811
|
+
* @category zipping
|
|
812
|
+
*/
|
|
813
|
+
export const zipWithPar: {
|
|
814
|
+
<R2, E2, B, A, C>(
|
|
815
|
+
that: Layer<R2, E2, B>,
|
|
816
|
+
f: (a: Context.Context<A>, b: Context.Context<B>) => Context.Context<C>
|
|
817
|
+
): <R, E>(self: Layer<R, E, A>) => Layer<R2 | R, E2 | E, C>
|
|
818
|
+
<R, E, R2, E2, B, A, C>(
|
|
819
|
+
self: Layer<R, E, A>,
|
|
820
|
+
that: Layer<R2, E2, B>,
|
|
821
|
+
f: (a: Context.Context<A>, b: Context.Context<B>) => Context.Context<C>
|
|
822
|
+
): Layer<R | R2, E | E2, C>
|
|
823
|
+
} = internal.zipWithPar
|
|
824
|
+
|
|
825
|
+
/**
|
|
826
|
+
* @since 2.0.0
|
|
827
|
+
* @category utils
|
|
828
|
+
*/
|
|
829
|
+
export const unwrapEffect: <R, E, R1, E1, A>(self: Effect.Effect<R, E, Layer<R1, E1, A>>) => Layer<R | R1, E | E1, A> =
|
|
830
|
+
internal.unwrapEffect
|
|
831
|
+
|
|
832
|
+
/**
|
|
833
|
+
* @since 2.0.0
|
|
834
|
+
* @category utils
|
|
835
|
+
*/
|
|
836
|
+
export const unwrapScoped: <R, E, R1, E1, A>(
|
|
837
|
+
self: Effect.Effect<R, E, Layer<R1, E1, A>>
|
|
838
|
+
) => Layer<R1 | Exclude<R, Scope.Scope>, E | E1, A> = internal.unwrapScoped
|
|
839
|
+
|
|
840
|
+
/**
|
|
841
|
+
* @since 2.0.0
|
|
842
|
+
* @category tracing
|
|
843
|
+
*/
|
|
844
|
+
export const withSpan: {
|
|
845
|
+
(
|
|
846
|
+
name: string,
|
|
847
|
+
options?: {
|
|
848
|
+
readonly attributes?: Record<string, Tracer.AttributeValue>
|
|
849
|
+
readonly links?: ReadonlyArray<Tracer.SpanLink>
|
|
850
|
+
readonly parent?: Tracer.ParentSpan
|
|
851
|
+
readonly root?: boolean
|
|
852
|
+
readonly context?: Context.Context<never>
|
|
853
|
+
}
|
|
854
|
+
): <R, E, A>(self: Layer<R, E, A>) => Layer<R, E, A>
|
|
855
|
+
<R, E, A>(
|
|
856
|
+
self: Layer<R, E, A>,
|
|
857
|
+
name: string,
|
|
858
|
+
options?: {
|
|
859
|
+
readonly attributes?: Record<string, Tracer.AttributeValue>
|
|
860
|
+
readonly links?: ReadonlyArray<Tracer.SpanLink>
|
|
861
|
+
readonly parent?: Tracer.ParentSpan
|
|
862
|
+
readonly root?: boolean
|
|
863
|
+
readonly context?: Context.Context<never>
|
|
864
|
+
}
|
|
865
|
+
): Layer<R, E, A>
|
|
866
|
+
} = internal.withSpan
|