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/Schedule.ts
ADDED
|
@@ -0,0 +1,1396 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Cause from "./Cause"
|
|
5
|
+
import type * as Chunk from "./Chunk"
|
|
6
|
+
import type * as Context from "./Context"
|
|
7
|
+
import type * as Duration from "./Duration"
|
|
8
|
+
import type * as Effect from "./Effect"
|
|
9
|
+
import type * as Either from "./Either"
|
|
10
|
+
import type { LazyArg } from "./Function"
|
|
11
|
+
import * as internal from "./internal/schedule"
|
|
12
|
+
import type * as Option from "./Option"
|
|
13
|
+
import type { Pipeable } from "./Pipeable"
|
|
14
|
+
import type { Predicate } from "./Predicate"
|
|
15
|
+
import type * as ScheduleDecision from "./ScheduleDecision"
|
|
16
|
+
import type * as Intervals from "./ScheduleIntervals"
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @since 2.0.0
|
|
20
|
+
* @category symbols
|
|
21
|
+
*/
|
|
22
|
+
export const ScheduleTypeId: unique symbol = internal.ScheduleTypeId
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @since 2.0.0
|
|
26
|
+
* @category symbols
|
|
27
|
+
*/
|
|
28
|
+
export type ScheduleTypeId = typeof ScheduleTypeId
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @since 2.0.0
|
|
32
|
+
* @category symbols
|
|
33
|
+
*/
|
|
34
|
+
export const ScheduleDriverTypeId: unique symbol = internal.ScheduleDriverTypeId
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @since 2.0.0
|
|
38
|
+
* @category symbols
|
|
39
|
+
*/
|
|
40
|
+
export type ScheduleDriverTypeId = typeof ScheduleDriverTypeId
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* A `Schedule<Env, In, Out>` defines a recurring schedule, which consumes
|
|
44
|
+
* values of type `In`, and which returns values of type `Out`.
|
|
45
|
+
*
|
|
46
|
+
* Schedules are defined as a possibly infinite set of intervals spread out over
|
|
47
|
+
* time. Each interval defines a window in which recurrence is possible.
|
|
48
|
+
*
|
|
49
|
+
* When schedules are used to repeat or retry effects, the starting boundary of
|
|
50
|
+
* each interval produced by a schedule is used as the moment when the effect
|
|
51
|
+
* will be executed again.
|
|
52
|
+
*
|
|
53
|
+
* Schedules compose in the following primary ways:
|
|
54
|
+
*
|
|
55
|
+
* - Union: performs the union of the intervals of two schedules
|
|
56
|
+
* - Intersection: performs the intersection of the intervals of two schedules
|
|
57
|
+
* - Sequence: concatenates the intervals of one schedule onto another
|
|
58
|
+
*
|
|
59
|
+
* In addition, schedule inputs and outputs can be transformed, filtered (to
|
|
60
|
+
* terminate a schedule early in response to some input or output), and so
|
|
61
|
+
* forth.
|
|
62
|
+
*
|
|
63
|
+
* A variety of other operators exist for transforming and combining schedules,
|
|
64
|
+
* and the companion object for `Schedule` contains all common types of
|
|
65
|
+
* schedules, both for performing retrying, as well as performing repetition.
|
|
66
|
+
*
|
|
67
|
+
* @category model
|
|
68
|
+
* @since 2.0.0
|
|
69
|
+
*/
|
|
70
|
+
export interface Schedule<Env, In, Out> extends Schedule.Variance<Env, In, Out>, Pipeable {
|
|
71
|
+
/**
|
|
72
|
+
* Initial State
|
|
73
|
+
*/
|
|
74
|
+
readonly initial: any
|
|
75
|
+
/**
|
|
76
|
+
* Schedule Step
|
|
77
|
+
*/
|
|
78
|
+
readonly step: (
|
|
79
|
+
now: number,
|
|
80
|
+
input: In,
|
|
81
|
+
state: any
|
|
82
|
+
) => Effect.Effect<Env, never, readonly [any, Out, ScheduleDecision.ScheduleDecision]>
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @since 2.0.0
|
|
87
|
+
*/
|
|
88
|
+
export declare namespace Schedule {
|
|
89
|
+
/**
|
|
90
|
+
* @since 2.0.0
|
|
91
|
+
* @category models
|
|
92
|
+
*/
|
|
93
|
+
export interface Variance<Env, In, Out> {
|
|
94
|
+
readonly [ScheduleTypeId]: {
|
|
95
|
+
readonly _Env: (_: never) => Env
|
|
96
|
+
readonly _In: (_: In) => void
|
|
97
|
+
readonly _Out: (_: never) => Out
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @since 2.0.0
|
|
103
|
+
*/
|
|
104
|
+
export interface DriverVariance<Env, In, Out> {
|
|
105
|
+
readonly [ScheduleDriverTypeId]: {
|
|
106
|
+
readonly _Env: (_: never) => Env
|
|
107
|
+
readonly _In: (_: In) => void
|
|
108
|
+
readonly _Out: (_: never) => Out
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* @since 2.0.0
|
|
115
|
+
* @category models
|
|
116
|
+
*/
|
|
117
|
+
export interface ScheduleDriver<Env, In, Out> extends Schedule.DriverVariance<Env, In, Out> {
|
|
118
|
+
state(): Effect.Effect<never, never, unknown>
|
|
119
|
+
last(): Effect.Effect<never, Cause.NoSuchElementException, Out>
|
|
120
|
+
reset(): Effect.Effect<never, never, void>
|
|
121
|
+
next(input: In): Effect.Effect<Env, Option.Option<never>, Out>
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Constructs a new `Schedule` with the specified `initial` state and the
|
|
126
|
+
* specified `step` function.
|
|
127
|
+
*
|
|
128
|
+
* @since 2.0.0
|
|
129
|
+
* @category constructors
|
|
130
|
+
*/
|
|
131
|
+
export const makeWithState: <S, Env, In, Out>(
|
|
132
|
+
initial: S,
|
|
133
|
+
step: (
|
|
134
|
+
now: number,
|
|
135
|
+
input: In,
|
|
136
|
+
state: S
|
|
137
|
+
) => Effect.Effect<Env, never, readonly [S, Out, ScheduleDecision.ScheduleDecision]>
|
|
138
|
+
) => Schedule<Env, In, Out> = internal.makeWithState
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Returns a new schedule with the given delay added to every interval defined
|
|
142
|
+
* by this schedule.
|
|
143
|
+
*
|
|
144
|
+
* @since 2.0.0
|
|
145
|
+
* @category utils
|
|
146
|
+
*/
|
|
147
|
+
export const addDelay: {
|
|
148
|
+
<Out>(f: (out: Out) => Duration.DurationInput): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
149
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, f: (out: Out) => Duration.DurationInput): Schedule<Env, In, Out>
|
|
150
|
+
} = internal.addDelay
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Returns a new schedule with the given effectfully computed delay added to
|
|
154
|
+
* every interval defined by this schedule.
|
|
155
|
+
*
|
|
156
|
+
* @since 2.0.0
|
|
157
|
+
* @category utils
|
|
158
|
+
*/
|
|
159
|
+
export const addDelayEffect: {
|
|
160
|
+
<Out, Env2>(
|
|
161
|
+
f: (out: Out) => Effect.Effect<Env2, never, Duration.DurationInput>
|
|
162
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
|
|
163
|
+
<Env, In, Out, Env2>(
|
|
164
|
+
self: Schedule<Env, In, Out>,
|
|
165
|
+
f: (out: Out) => Effect.Effect<Env2, never, Duration.DurationInput>
|
|
166
|
+
): Schedule<Env | Env2, In, Out>
|
|
167
|
+
} = internal.addDelayEffect
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* The same as `andThenEither`, but merges the output.
|
|
171
|
+
*
|
|
172
|
+
* @since 2.0.0
|
|
173
|
+
* @category sequencing
|
|
174
|
+
*/
|
|
175
|
+
export const andThen: {
|
|
176
|
+
<Env1, In1, Out2>(
|
|
177
|
+
that: Schedule<Env1, In1, Out2>
|
|
178
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env1 | Env, In & In1, Out2 | Out>
|
|
179
|
+
<Env, In, Out, Env1, In1, Out2>(
|
|
180
|
+
self: Schedule<Env, In, Out>,
|
|
181
|
+
that: Schedule<Env1, In1, Out2>
|
|
182
|
+
): Schedule<Env | Env1, In & In1, Out | Out2>
|
|
183
|
+
} = internal.andThen
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Returns a new schedule that first executes this schedule to completion, and
|
|
187
|
+
* then executes the specified schedule to completion.
|
|
188
|
+
*
|
|
189
|
+
* @since 2.0.0
|
|
190
|
+
* @category sequencing
|
|
191
|
+
*/
|
|
192
|
+
export const andThenEither: {
|
|
193
|
+
<Env2, In2, Out2>(
|
|
194
|
+
that: Schedule<Env2, In2, Out2>
|
|
195
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Either.Either<Out, Out2>>
|
|
196
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
197
|
+
self: Schedule<Env, In, Out>,
|
|
198
|
+
that: Schedule<Env2, In2, Out2>
|
|
199
|
+
): Schedule<Env | Env2, In & In2, Either.Either<Out, Out2>>
|
|
200
|
+
} = internal.andThenEither
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Returns a new schedule that maps this schedule to a constant output.
|
|
204
|
+
*
|
|
205
|
+
* @since 2.0.0
|
|
206
|
+
* @category mapping
|
|
207
|
+
*/
|
|
208
|
+
export const as: {
|
|
209
|
+
<Out2>(out: Out2): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out2>
|
|
210
|
+
<Env, In, Out, Out2>(self: Schedule<Env, In, Out>, out: Out2): Schedule<Env, In, Out2>
|
|
211
|
+
} = internal.as
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Returns a new schedule that maps the output of this schedule to unit.
|
|
215
|
+
*
|
|
216
|
+
* @since 2.0.0
|
|
217
|
+
* @category constructors
|
|
218
|
+
*/
|
|
219
|
+
export const asUnit: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, void> = internal.asUnit
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Returns a new schedule that has both the inputs and outputs of this and the
|
|
223
|
+
* specified schedule.
|
|
224
|
+
*
|
|
225
|
+
* @since 2.0.0
|
|
226
|
+
* @category utils
|
|
227
|
+
*/
|
|
228
|
+
export const bothInOut: {
|
|
229
|
+
<Env2, In2, Out2>(
|
|
230
|
+
that: Schedule<Env2, In2, Out2>
|
|
231
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, readonly [In, In2], readonly [Out, Out2]>
|
|
232
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
233
|
+
self: Schedule<Env, In, Out>,
|
|
234
|
+
that: Schedule<Env2, In2, Out2>
|
|
235
|
+
): Schedule<Env | Env2, readonly [In, In2], readonly [Out, Out2]>
|
|
236
|
+
} = internal.bothInOut
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Returns a new schedule that passes each input and output of this schedule
|
|
240
|
+
* to the specified function, and then determines whether or not to continue
|
|
241
|
+
* based on the return value of the function.
|
|
242
|
+
*
|
|
243
|
+
* @since 2.0.0
|
|
244
|
+
* @category utils
|
|
245
|
+
*/
|
|
246
|
+
export const check: {
|
|
247
|
+
<In, Out>(test: (input: In, output: Out) => boolean): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
248
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, test: (input: In, output: Out) => boolean): Schedule<Env, In, Out>
|
|
249
|
+
} = internal.check
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Returns a new schedule that passes each input and output of this schedule
|
|
253
|
+
* to the specified function, and then determines whether or not to continue
|
|
254
|
+
* based on the return value of the function.
|
|
255
|
+
*
|
|
256
|
+
* @since 2.0.0
|
|
257
|
+
* @category utils
|
|
258
|
+
*/
|
|
259
|
+
export const checkEffect: {
|
|
260
|
+
<In, Out, Env2>(
|
|
261
|
+
test: (input: In, output: Out) => Effect.Effect<Env2, never, boolean>
|
|
262
|
+
): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
|
|
263
|
+
<Env, In, Out, Env2>(
|
|
264
|
+
self: Schedule<Env, In, Out>,
|
|
265
|
+
test: (input: In, output: Out) => Effect.Effect<Env2, never, boolean>
|
|
266
|
+
): Schedule<Env | Env2, In, Out>
|
|
267
|
+
} = internal.checkEffect
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* A schedule that recurs anywhere, collecting all inputs into a `Chunk`.
|
|
271
|
+
*
|
|
272
|
+
* @since 2.0.0
|
|
273
|
+
* @category constructors
|
|
274
|
+
*/
|
|
275
|
+
export const collectAllInputs: <A>() => Schedule<never, A, Chunk.Chunk<A>> = internal.collectAllInputs
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Returns a new schedule that collects the outputs of this one into a chunk.
|
|
279
|
+
*
|
|
280
|
+
* @since 2.0.0
|
|
281
|
+
* @category utils
|
|
282
|
+
*/
|
|
283
|
+
export const collectAllOutputs: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Chunk.Chunk<Out>> =
|
|
284
|
+
internal.collectAllOutputs
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* A schedule that recurs until the condition f fails, collecting all inputs
|
|
288
|
+
* into a list.
|
|
289
|
+
*
|
|
290
|
+
* @since 2.0.0
|
|
291
|
+
* @category utils
|
|
292
|
+
*/
|
|
293
|
+
export const collectUntil: <A>(f: Predicate<A>) => Schedule<never, A, Chunk.Chunk<A>> = internal.collectUntil
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* A schedule that recurs until the effectful condition f fails, collecting
|
|
297
|
+
* all inputs into a list.
|
|
298
|
+
*
|
|
299
|
+
* @since 2.0.0
|
|
300
|
+
* @category utils
|
|
301
|
+
*/
|
|
302
|
+
export const collectUntilEffect: <Env, A>(
|
|
303
|
+
f: (a: A) => Effect.Effect<Env, never, boolean>
|
|
304
|
+
) => Schedule<Env, A, Chunk.Chunk<A>> = internal.collectUntilEffect
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* A schedule that recurs as long as the condition f holds, collecting all
|
|
308
|
+
* inputs into a list.
|
|
309
|
+
*
|
|
310
|
+
* @since 2.0.0
|
|
311
|
+
* @category utils
|
|
312
|
+
*/
|
|
313
|
+
export const collectWhile: <A>(f: Predicate<A>) => Schedule<never, A, Chunk.Chunk<A>> = internal.collectWhile
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* A schedule that recurs as long as the effectful condition holds, collecting
|
|
317
|
+
* all inputs into a list.
|
|
318
|
+
*
|
|
319
|
+
* @category utils
|
|
320
|
+
* @since 2.0.0
|
|
321
|
+
*/
|
|
322
|
+
export const collectWhileEffect: <Env, A>(
|
|
323
|
+
f: (a: A) => Effect.Effect<Env, never, boolean>
|
|
324
|
+
) => Schedule<Env, A, Chunk.Chunk<A>> = internal.collectWhileEffect
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Returns the composition of this schedule and the specified schedule, by
|
|
328
|
+
* piping the output of this one into the input of the other. Effects
|
|
329
|
+
* described by this schedule will always be executed before the effects
|
|
330
|
+
* described by the second schedule.
|
|
331
|
+
*
|
|
332
|
+
* @since 2.0.0
|
|
333
|
+
* @category utils
|
|
334
|
+
*/
|
|
335
|
+
export const compose: {
|
|
336
|
+
<Env2, Out, Out2>(
|
|
337
|
+
that: Schedule<Env2, Out, Out2>
|
|
338
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out2>
|
|
339
|
+
<Env, In, Out, Env2, Out2>(
|
|
340
|
+
self: Schedule<Env, In, Out>,
|
|
341
|
+
that: Schedule<Env2, Out, Out2>
|
|
342
|
+
): Schedule<Env | Env2, In, Out2>
|
|
343
|
+
} = internal.compose
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Returns a new schedule that deals with a narrower class of inputs than this
|
|
347
|
+
* schedule.
|
|
348
|
+
*
|
|
349
|
+
* @since 2.0.0
|
|
350
|
+
* @category mapping
|
|
351
|
+
*/
|
|
352
|
+
export const mapInput: {
|
|
353
|
+
<In, In2>(f: (in2: In2) => In): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In2, Out>
|
|
354
|
+
<Env, In, Out, In2>(self: Schedule<Env, In, Out>, f: (in2: In2) => In): Schedule<Env, In2, Out>
|
|
355
|
+
} = internal.mapInput
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Transforms the context being provided to this schedule with the
|
|
359
|
+
* specified function.
|
|
360
|
+
*
|
|
361
|
+
* @since 2.0.0
|
|
362
|
+
* @category context
|
|
363
|
+
*/
|
|
364
|
+
export const mapInputContext: {
|
|
365
|
+
<Env0, Env>(
|
|
366
|
+
f: (env0: Context.Context<Env0>) => Context.Context<Env>
|
|
367
|
+
): <In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env0, In, Out>
|
|
368
|
+
<Env0, Env, In, Out>(
|
|
369
|
+
self: Schedule<Env, In, Out>,
|
|
370
|
+
f: (env0: Context.Context<Env0>) => Context.Context<Env>
|
|
371
|
+
): Schedule<Env0, In, Out>
|
|
372
|
+
} = internal.mapInputContext
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* Returns a new schedule that deals with a narrower class of inputs than this
|
|
376
|
+
* schedule.
|
|
377
|
+
*
|
|
378
|
+
* @since 2.0.0
|
|
379
|
+
* @category mapping
|
|
380
|
+
*/
|
|
381
|
+
export const mapInputEffect: {
|
|
382
|
+
<In, Env2, In2>(
|
|
383
|
+
f: (in2: In2) => Effect.Effect<Env2, never, In>
|
|
384
|
+
): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In2, Out>
|
|
385
|
+
<Env, In, Out, Env2, In2>(
|
|
386
|
+
self: Schedule<Env, In, Out>,
|
|
387
|
+
f: (in2: In2) => Effect.Effect<Env2, never, In>
|
|
388
|
+
): Schedule<Env | Env2, In2, Out>
|
|
389
|
+
} = internal.mapInputEffect
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* A schedule that always recurs, which counts the number of recurrences.
|
|
393
|
+
*
|
|
394
|
+
* @since 2.0.0
|
|
395
|
+
* @category constructors
|
|
396
|
+
*/
|
|
397
|
+
export const count: Schedule<never, unknown, number> = internal.count
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Cron-like schedule that recurs every specified `day` of month. Won't recur
|
|
401
|
+
* on months containing less days than specified in `day` param.
|
|
402
|
+
*
|
|
403
|
+
* It triggers at zero hour of the day. Producing a count of repeats: 0, 1, 2.
|
|
404
|
+
*
|
|
405
|
+
* NOTE: `day` parameter is validated lazily. Must be in range 1...31.
|
|
406
|
+
*
|
|
407
|
+
* @since 2.0.0
|
|
408
|
+
* @category constructors
|
|
409
|
+
*/
|
|
410
|
+
export const dayOfMonth: (day: number) => Schedule<never, unknown, number> = internal.dayOfMonth
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Cron-like schedule that recurs every specified `day` of each week. It
|
|
414
|
+
* triggers at zero hour of the week. Producing a count of repeats: 0, 1, 2.
|
|
415
|
+
*
|
|
416
|
+
* NOTE: `day` parameter is validated lazily. Must be in range 1 (Monday)...7
|
|
417
|
+
* (Sunday).
|
|
418
|
+
*
|
|
419
|
+
* @since 2.0.0
|
|
420
|
+
* @category constructors
|
|
421
|
+
*/
|
|
422
|
+
export const dayOfWeek: (day: number) => Schedule<never, unknown, number> = internal.dayOfWeek
|
|
423
|
+
|
|
424
|
+
/**
|
|
425
|
+
* Returns a new schedule with the specified effectfully computed delay added
|
|
426
|
+
* before the start of each interval produced by this schedule.
|
|
427
|
+
*
|
|
428
|
+
* @since 2.0.0
|
|
429
|
+
* @category utils
|
|
430
|
+
*/
|
|
431
|
+
export const delayed: {
|
|
432
|
+
(
|
|
433
|
+
f: (duration: Duration.Duration) => Duration.DurationInput
|
|
434
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
435
|
+
<Env, In, Out>(
|
|
436
|
+
self: Schedule<Env, In, Out>,
|
|
437
|
+
f: (duration: Duration.Duration) => Duration.DurationInput
|
|
438
|
+
): Schedule<Env, In, Out>
|
|
439
|
+
} = internal.delayed
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* Returns a new schedule with the specified effectfully computed delay added
|
|
443
|
+
* before the start of each interval produced by this schedule.
|
|
444
|
+
*
|
|
445
|
+
* @since 2.0.0
|
|
446
|
+
* @category constructors
|
|
447
|
+
*/
|
|
448
|
+
export const delayedEffect: {
|
|
449
|
+
<Env2>(
|
|
450
|
+
f: (duration: Duration.Duration) => Effect.Effect<Env2, never, Duration.DurationInput>
|
|
451
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
|
|
452
|
+
<Env, In, Out, Env2>(
|
|
453
|
+
self: Schedule<Env, In, Out>,
|
|
454
|
+
f: (duration: Duration.Duration) => Effect.Effect<Env2, never, Duration.DurationInput>
|
|
455
|
+
): Schedule<Env | Env2, In, Out>
|
|
456
|
+
} = internal.delayedEffect
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Takes a schedule that produces a delay, and returns a new schedule that
|
|
460
|
+
* uses this delay to further delay intervals in the resulting schedule.
|
|
461
|
+
*
|
|
462
|
+
* @since 2.0.0
|
|
463
|
+
* @category constructors
|
|
464
|
+
*/
|
|
465
|
+
export const delayedSchedule: <Env, In>(
|
|
466
|
+
schedule: Schedule<Env, In, Duration.Duration>
|
|
467
|
+
) => Schedule<Env, In, Duration.Duration> = internal.delayedSchedule
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Returns a new schedule that outputs the delay between each occurence.
|
|
471
|
+
*
|
|
472
|
+
* @since 2.0.0
|
|
473
|
+
* @category constructors
|
|
474
|
+
*/
|
|
475
|
+
export const delays: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Duration.Duration> =
|
|
476
|
+
internal.delays
|
|
477
|
+
|
|
478
|
+
/**
|
|
479
|
+
* Returns a new schedule that maps both the input and output.
|
|
480
|
+
*
|
|
481
|
+
* @since 2.0.0
|
|
482
|
+
* @category mapping
|
|
483
|
+
*/
|
|
484
|
+
export const mapBoth: {
|
|
485
|
+
<In, Out, In2, Out2>(
|
|
486
|
+
options: {
|
|
487
|
+
readonly onInput: (in2: In2) => In
|
|
488
|
+
readonly onOutput: (out: Out) => Out2
|
|
489
|
+
}
|
|
490
|
+
): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env, In2, Out2>
|
|
491
|
+
<Env, In, Out, In2, Out2>(
|
|
492
|
+
self: Schedule<Env, In, Out>,
|
|
493
|
+
options: {
|
|
494
|
+
readonly onInput: (in2: In2) => In
|
|
495
|
+
readonly onOutput: (out: Out) => Out2
|
|
496
|
+
}
|
|
497
|
+
): Schedule<Env, In2, Out2>
|
|
498
|
+
} = internal.mapBoth
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Returns a new schedule that maps both the input and output.
|
|
502
|
+
*
|
|
503
|
+
* @since 2.0.0
|
|
504
|
+
* @category mapping
|
|
505
|
+
*/
|
|
506
|
+
export const mapBothEffect: {
|
|
507
|
+
<In2, Env2, In, Out, Env3, Out2>(
|
|
508
|
+
options: {
|
|
509
|
+
readonly onInput: (input: In2) => Effect.Effect<Env2, never, In>
|
|
510
|
+
readonly onOutput: (out: Out) => Effect.Effect<Env3, never, Out2>
|
|
511
|
+
}
|
|
512
|
+
): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env3 | Env, In2, Out2>
|
|
513
|
+
<Env, In, Out, In2, Env2, Env3, Out2>(
|
|
514
|
+
self: Schedule<Env, In, Out>,
|
|
515
|
+
options: {
|
|
516
|
+
readonly onInput: (input: In2) => Effect.Effect<Env2, never, In>
|
|
517
|
+
readonly onOutput: (out: Out) => Effect.Effect<Env3, never, Out2>
|
|
518
|
+
}
|
|
519
|
+
): Schedule<Env | Env2 | Env3, In2, Out2>
|
|
520
|
+
} = internal.mapBothEffect
|
|
521
|
+
|
|
522
|
+
/**
|
|
523
|
+
* Returns a driver that can be used to step the schedule, appropriately
|
|
524
|
+
* handling sleeping.
|
|
525
|
+
*
|
|
526
|
+
* @since 2.0.0
|
|
527
|
+
* @category getter
|
|
528
|
+
*/
|
|
529
|
+
export const driver: <Env, In, Out>(
|
|
530
|
+
self: Schedule<Env, In, Out>
|
|
531
|
+
) => Effect.Effect<never, never, ScheduleDriver<Env, In, Out>> = internal.driver
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* A schedule that can recur one time, the specified amount of time into the
|
|
535
|
+
* future.
|
|
536
|
+
*
|
|
537
|
+
* @since 2.0.0
|
|
538
|
+
* @category constructors
|
|
539
|
+
*/
|
|
540
|
+
export const duration: (duration: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> =
|
|
541
|
+
internal.duration
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* Returns a new schedule that performs a geometric union on the intervals
|
|
545
|
+
* defined by both schedules.
|
|
546
|
+
*
|
|
547
|
+
* @since 2.0.0
|
|
548
|
+
* @category alternatives
|
|
549
|
+
*/
|
|
550
|
+
export const either: {
|
|
551
|
+
<Env2, In2, Out2>(
|
|
552
|
+
that: Schedule<Env2, In2, Out2>
|
|
553
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, readonly [Out, Out2]>
|
|
554
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
555
|
+
self: Schedule<Env, In, Out>,
|
|
556
|
+
that: Schedule<Env2, In2, Out2>
|
|
557
|
+
): Schedule<Env | Env2, In & In2, readonly [Out, Out2]>
|
|
558
|
+
} = internal.either
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* The same as `either` followed by `map`.
|
|
562
|
+
*
|
|
563
|
+
* @since 2.0.0
|
|
564
|
+
* @category alternatives
|
|
565
|
+
*/
|
|
566
|
+
export const eitherWith: {
|
|
567
|
+
<Env2, In2, Out2>(
|
|
568
|
+
that: Schedule<Env2, In2, Out2>,
|
|
569
|
+
f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
|
|
570
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, readonly [Out, Out2]>
|
|
571
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
572
|
+
self: Schedule<Env, In, Out>,
|
|
573
|
+
that: Schedule<Env2, In2, Out2>,
|
|
574
|
+
f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
|
|
575
|
+
): Schedule<Env | Env2, In & In2, readonly [Out, Out2]>
|
|
576
|
+
} = internal.eitherWith
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* A schedule that occurs everywhere, which returns the total elapsed duration
|
|
580
|
+
* since the first step.
|
|
581
|
+
*
|
|
582
|
+
* @since 2.0.0
|
|
583
|
+
* @category constructors
|
|
584
|
+
*/
|
|
585
|
+
export const elapsed: Schedule<never, unknown, Duration.Duration> = internal.elapsed
|
|
586
|
+
|
|
587
|
+
/**
|
|
588
|
+
* Returns a new schedule that will run the specified finalizer as soon as the
|
|
589
|
+
* schedule is complete. Note that unlike `Effect.ensuring`, this method does not
|
|
590
|
+
* guarantee the finalizer will be run. The `Schedule` may not initialize or
|
|
591
|
+
* the driver of the schedule may not run to completion. However, if the
|
|
592
|
+
* `Schedule` ever decides not to continue, then the finalizer will be run.
|
|
593
|
+
*
|
|
594
|
+
* @since 2.0.0
|
|
595
|
+
* @category finalization
|
|
596
|
+
*/
|
|
597
|
+
export const ensuring: {
|
|
598
|
+
<X>(finalizer: Effect.Effect<never, never, X>): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
599
|
+
<Env, In, Out, X>(self: Schedule<Env, In, Out>, finalizer: Effect.Effect<never, never, X>): Schedule<Env, In, Out>
|
|
600
|
+
} = internal.ensuring
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* A schedule that always recurs, but will wait a certain amount between
|
|
604
|
+
* repetitions, given by `base * factor.pow(n)`, where `n` is the number of
|
|
605
|
+
* repetitions so far. Returns the current duration between recurrences.
|
|
606
|
+
*
|
|
607
|
+
* @since 2.0.0
|
|
608
|
+
* @category constructors
|
|
609
|
+
*/
|
|
610
|
+
export const exponential: (
|
|
611
|
+
base: Duration.DurationInput,
|
|
612
|
+
factor?: number
|
|
613
|
+
) => Schedule<never, unknown, Duration.Duration> = internal.exponential
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* A schedule that always recurs, increasing delays by summing the preceding
|
|
617
|
+
* two delays (similar to the fibonacci sequence). Returns the current
|
|
618
|
+
* duration between recurrences.
|
|
619
|
+
*
|
|
620
|
+
* @since 2.0.0
|
|
621
|
+
* @category constructors
|
|
622
|
+
*/
|
|
623
|
+
export const fibonacci: (one: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> =
|
|
624
|
+
internal.fibonacci
|
|
625
|
+
|
|
626
|
+
/**
|
|
627
|
+
* A schedule that recurs on a fixed interval. Returns the number of
|
|
628
|
+
* repetitions of the schedule so far.
|
|
629
|
+
*
|
|
630
|
+
* If the action run between updates takes longer than the interval, then the
|
|
631
|
+
* action will be run immediately, but re-runs will not "pile up".
|
|
632
|
+
*
|
|
633
|
+
* ```
|
|
634
|
+
* |-----interval-----|-----interval-----|-----interval-----|
|
|
635
|
+
* |---------action--------||action|-----|action|-----------|
|
|
636
|
+
* ```
|
|
637
|
+
*
|
|
638
|
+
* @since 2.0.0
|
|
639
|
+
* @category constructors
|
|
640
|
+
*/
|
|
641
|
+
export const fixed: (interval: Duration.DurationInput) => Schedule<never, unknown, number> = internal.fixed
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* A schedule that always recurs, producing a count of repeats: 0, 1, 2.
|
|
645
|
+
*
|
|
646
|
+
* @since 2.0.0
|
|
647
|
+
* @category constructors
|
|
648
|
+
*/
|
|
649
|
+
export const forever: Schedule<never, unknown, number> = internal.forever
|
|
650
|
+
|
|
651
|
+
/**
|
|
652
|
+
* A schedule that recurs once with the specified delay.
|
|
653
|
+
*
|
|
654
|
+
* @since 2.0.0
|
|
655
|
+
* @category constructors
|
|
656
|
+
*/
|
|
657
|
+
export const fromDelay: (delay: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> =
|
|
658
|
+
internal.fromDelay
|
|
659
|
+
|
|
660
|
+
/**
|
|
661
|
+
* A schedule that recurs once for each of the specified durations, delaying
|
|
662
|
+
* each time for the length of the specified duration. Returns the length of
|
|
663
|
+
* the current duration between recurrences.
|
|
664
|
+
*
|
|
665
|
+
* @since 2.0.0
|
|
666
|
+
* @category constructors
|
|
667
|
+
*/
|
|
668
|
+
export const fromDelays: (
|
|
669
|
+
delay: Duration.DurationInput,
|
|
670
|
+
...delays: Array<Duration.DurationInput>
|
|
671
|
+
) => Schedule<never, unknown, Duration.Duration> = internal.fromDelays
|
|
672
|
+
|
|
673
|
+
/**
|
|
674
|
+
* A schedule that always recurs, mapping input values through the specified
|
|
675
|
+
* function.
|
|
676
|
+
*
|
|
677
|
+
* @since 2.0.0
|
|
678
|
+
* @category constructors
|
|
679
|
+
*/
|
|
680
|
+
export const fromFunction: <A, B>(f: (a: A) => B) => Schedule<never, A, B> = internal.fromFunction
|
|
681
|
+
|
|
682
|
+
/**
|
|
683
|
+
* Cron-like schedule that recurs every specified `hour` of each day. It
|
|
684
|
+
* triggers at zero minute of the hour. Producing a count of repeats: 0, 1, 2.
|
|
685
|
+
*
|
|
686
|
+
* NOTE: `hour` parameter is validated lazily. Must be in range 0...23.
|
|
687
|
+
*
|
|
688
|
+
* @since 2.0.0
|
|
689
|
+
* @category constructors
|
|
690
|
+
*/
|
|
691
|
+
export const hourOfDay: (hour: number) => Schedule<never, unknown, number> = internal.hourOfDay
|
|
692
|
+
|
|
693
|
+
/**
|
|
694
|
+
* A schedule that always recurs, which returns inputs as outputs.
|
|
695
|
+
*
|
|
696
|
+
* @since 2.0.0
|
|
697
|
+
* @category constructors
|
|
698
|
+
*/
|
|
699
|
+
export const identity: <A>() => Schedule<never, A, A> = internal.identity
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* Returns a new schedule that performs a geometric intersection on the
|
|
703
|
+
* intervals defined by both schedules.
|
|
704
|
+
*
|
|
705
|
+
* @since 2.0.0
|
|
706
|
+
* @category utils
|
|
707
|
+
*/
|
|
708
|
+
export const intersect: {
|
|
709
|
+
<Env2, In2, Out2>(
|
|
710
|
+
that: Schedule<Env2, In2, Out2>
|
|
711
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, readonly [Out, Out2]>
|
|
712
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
713
|
+
self: Schedule<Env, In, Out>,
|
|
714
|
+
that: Schedule<Env2, In2, Out2>
|
|
715
|
+
): Schedule<Env | Env2, In & In2, readonly [Out, Out2]>
|
|
716
|
+
} = internal.intersect
|
|
717
|
+
|
|
718
|
+
/**
|
|
719
|
+
* Returns a new schedule that combines this schedule with the specified
|
|
720
|
+
* schedule, continuing as long as both schedules want to continue and merging
|
|
721
|
+
* the next intervals according to the specified merge function.
|
|
722
|
+
*
|
|
723
|
+
* @since 2.0.0
|
|
724
|
+
* @category utils
|
|
725
|
+
*/
|
|
726
|
+
export const intersectWith: {
|
|
727
|
+
<Env2, In2, Out2>(
|
|
728
|
+
that: Schedule<Env2, In2, Out2>,
|
|
729
|
+
f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
|
|
730
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, readonly [Out, Out2]>
|
|
731
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
732
|
+
self: Schedule<Env, In, Out>,
|
|
733
|
+
that: Schedule<Env2, In2, Out2>,
|
|
734
|
+
f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
|
|
735
|
+
): Schedule<Env | Env2, In & In2, readonly [Out, Out2]>
|
|
736
|
+
} = internal.intersectWith
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* Returns a new schedule that randomly modifies the size of the intervals of
|
|
740
|
+
* this schedule.
|
|
741
|
+
*
|
|
742
|
+
* Defaults `min` to `0.8` and `max` to `1.2`.
|
|
743
|
+
*
|
|
744
|
+
* The new interval size is between `min * old interval size` and `max * old
|
|
745
|
+
* interval size`.
|
|
746
|
+
*
|
|
747
|
+
* @since 2.0.0
|
|
748
|
+
* @category constructors
|
|
749
|
+
*/
|
|
750
|
+
export const jittered: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out> = internal.jittered
|
|
751
|
+
|
|
752
|
+
/**
|
|
753
|
+
* Returns a new schedule that randomly modifies the size of the intervals of
|
|
754
|
+
* this schedule.
|
|
755
|
+
*
|
|
756
|
+
* The new interval size is between `min * old interval size` and `max * old
|
|
757
|
+
* interval size`.
|
|
758
|
+
*
|
|
759
|
+
* @since 2.0.0
|
|
760
|
+
* @category constructors
|
|
761
|
+
*/
|
|
762
|
+
export const jitteredWith: {
|
|
763
|
+
(options: { min?: number; max?: number }): <Env, In, Out>(
|
|
764
|
+
self: Schedule<Env, In, Out>
|
|
765
|
+
) => Schedule<Env, In, Out>
|
|
766
|
+
<Env, In, Out>(
|
|
767
|
+
self: Schedule<Env, In, Out>,
|
|
768
|
+
options: { min?: number; max?: number }
|
|
769
|
+
): Schedule<Env, In, Out>
|
|
770
|
+
} = internal.jitteredWith
|
|
771
|
+
|
|
772
|
+
/**
|
|
773
|
+
* A schedule that always recurs, but will repeat on a linear time interval,
|
|
774
|
+
* given by `base * n` where `n` is the number of repetitions so far. Returns
|
|
775
|
+
* the current duration between recurrences.
|
|
776
|
+
*
|
|
777
|
+
* @since 2.0.0
|
|
778
|
+
* @category constructors
|
|
779
|
+
*/
|
|
780
|
+
export const linear: (base: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> = internal.linear
|
|
781
|
+
|
|
782
|
+
/**
|
|
783
|
+
* Returns a new schedule that maps the output of this schedule through the
|
|
784
|
+
* specified function.
|
|
785
|
+
*
|
|
786
|
+
* @since 2.0.0
|
|
787
|
+
* @category mapping
|
|
788
|
+
*/
|
|
789
|
+
export const map: {
|
|
790
|
+
<Out, Out2>(f: (out: Out) => Out2): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out2>
|
|
791
|
+
<Env, In, Out, Out2>(self: Schedule<Env, In, Out>, f: (out: Out) => Out2): Schedule<Env, In, Out2>
|
|
792
|
+
} = internal.map
|
|
793
|
+
|
|
794
|
+
/**
|
|
795
|
+
* Returns a new schedule that maps the output of this schedule through the
|
|
796
|
+
* specified effectful function.
|
|
797
|
+
*
|
|
798
|
+
* @since 2.0.0
|
|
799
|
+
* @category mapping
|
|
800
|
+
*/
|
|
801
|
+
export const mapEffect: {
|
|
802
|
+
<Out, Env2, Out2>(
|
|
803
|
+
f: (out: Out) => Effect.Effect<Env2, never, Out2>
|
|
804
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out2>
|
|
805
|
+
<Env, In, Out, Env2, Out2>(
|
|
806
|
+
self: Schedule<Env, In, Out>,
|
|
807
|
+
f: (out: Out) => Effect.Effect<Env2, never, Out2>
|
|
808
|
+
): Schedule<Env | Env2, In, Out2>
|
|
809
|
+
} = internal.mapEffect
|
|
810
|
+
|
|
811
|
+
/**
|
|
812
|
+
* Cron-like schedule that recurs every specified `minute` of each hour. It
|
|
813
|
+
* triggers at zero second of the minute. Producing a count of repeats: 0, 1,
|
|
814
|
+
* 2.
|
|
815
|
+
*
|
|
816
|
+
* NOTE: `minute` parameter is validated lazily. Must be in range 0...59.
|
|
817
|
+
*
|
|
818
|
+
* @since 2.0.0
|
|
819
|
+
* @category constructors
|
|
820
|
+
*/
|
|
821
|
+
export const minuteOfHour: (minute: number) => Schedule<never, unknown, number> = internal.minuteOfHour
|
|
822
|
+
|
|
823
|
+
/**
|
|
824
|
+
* Returns a new schedule that modifies the delay using the specified
|
|
825
|
+
* function.
|
|
826
|
+
*
|
|
827
|
+
* @since 2.0.0
|
|
828
|
+
* @category utils
|
|
829
|
+
*/
|
|
830
|
+
export const modifyDelay: {
|
|
831
|
+
<Out>(
|
|
832
|
+
f: (out: Out, duration: Duration.Duration) => Duration.DurationInput
|
|
833
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
834
|
+
<Env, In, Out>(
|
|
835
|
+
self: Schedule<Env, In, Out>,
|
|
836
|
+
f: (out: Out, duration: Duration.Duration) => Duration.DurationInput
|
|
837
|
+
): Schedule<Env, In, Out>
|
|
838
|
+
} = internal.modifyDelay
|
|
839
|
+
|
|
840
|
+
/**
|
|
841
|
+
* Returns a new schedule that modifies the delay using the specified
|
|
842
|
+
* effectual function.
|
|
843
|
+
*
|
|
844
|
+
* @since 2.0.0
|
|
845
|
+
* @category utils
|
|
846
|
+
*/
|
|
847
|
+
export const modifyDelayEffect: {
|
|
848
|
+
<Out, Env2>(
|
|
849
|
+
f: (out: Out, duration: Duration.Duration) => Effect.Effect<Env2, never, Duration.DurationInput>
|
|
850
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
|
|
851
|
+
<Env, In, Out, Env2>(
|
|
852
|
+
self: Schedule<Env, In, Out>,
|
|
853
|
+
f: (out: Out, duration: Duration.Duration) => Effect.Effect<Env2, never, Duration.DurationInput>
|
|
854
|
+
): Schedule<Env | Env2, In, Out>
|
|
855
|
+
} = internal.modifyDelayEffect
|
|
856
|
+
|
|
857
|
+
/**
|
|
858
|
+
* Returns a new schedule that applies the current one but runs the specified
|
|
859
|
+
* effect for every decision of this schedule. This can be used to create
|
|
860
|
+
* schedules that log failures, decisions, or computed values.
|
|
861
|
+
*
|
|
862
|
+
* @since 2.0.0
|
|
863
|
+
* @category utils
|
|
864
|
+
*/
|
|
865
|
+
export const onDecision: {
|
|
866
|
+
<Out, Env2, X>(
|
|
867
|
+
f: (out: Out, decision: ScheduleDecision.ScheduleDecision) => Effect.Effect<Env2, never, X>
|
|
868
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
|
|
869
|
+
<Env, In, Out, Env2, X>(
|
|
870
|
+
self: Schedule<Env, In, Out>,
|
|
871
|
+
f: (out: Out, decision: ScheduleDecision.ScheduleDecision) => Effect.Effect<Env2, never, X>
|
|
872
|
+
): Schedule<Env | Env2, In, Out>
|
|
873
|
+
} = internal.onDecision
|
|
874
|
+
|
|
875
|
+
/**
|
|
876
|
+
* A schedule that recurs one time.
|
|
877
|
+
*
|
|
878
|
+
* @since 2.0.0
|
|
879
|
+
* @category constructors
|
|
880
|
+
*/
|
|
881
|
+
export const once: Schedule<never, unknown, void> = internal.once
|
|
882
|
+
|
|
883
|
+
/**
|
|
884
|
+
* Returns a new schedule that passes through the inputs of this schedule.
|
|
885
|
+
*
|
|
886
|
+
* @since 2.0.0
|
|
887
|
+
* @category utils
|
|
888
|
+
*/
|
|
889
|
+
export const passthrough: <Env, Input, Output>(self: Schedule<Env, Input, Output>) => Schedule<Env, Input, Input> =
|
|
890
|
+
internal.passthrough
|
|
891
|
+
|
|
892
|
+
/**
|
|
893
|
+
* Returns a new schedule with its context provided to it, so the
|
|
894
|
+
* resulting schedule does not require any context.
|
|
895
|
+
*
|
|
896
|
+
* @since 2.0.0
|
|
897
|
+
* @category context
|
|
898
|
+
*/
|
|
899
|
+
export const provideContext: {
|
|
900
|
+
<Env>(context: Context.Context<Env>): <In, Out>(self: Schedule<Env, In, Out>) => Schedule<never, In, Out>
|
|
901
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, context: Context.Context<Env>): Schedule<never, In, Out>
|
|
902
|
+
} = internal.provideContext
|
|
903
|
+
|
|
904
|
+
/**
|
|
905
|
+
* Returns a new schedule with the single service it requires provided to it.
|
|
906
|
+
* If the schedule requires multiple services use `provideContext`
|
|
907
|
+
* instead.
|
|
908
|
+
*
|
|
909
|
+
* @since 2.0.0
|
|
910
|
+
* @category context
|
|
911
|
+
*/
|
|
912
|
+
export const provideService: {
|
|
913
|
+
<T, T1 extends T>(
|
|
914
|
+
tag: any,
|
|
915
|
+
service: T1
|
|
916
|
+
): <Env, In, Out>(self: Schedule<T | Env, In, Out>) => Schedule<Exclude<Env, T>, In, Out>
|
|
917
|
+
<Env, T, In, Out, T1 extends T>(
|
|
918
|
+
self: Schedule<Env | T, In, Out>,
|
|
919
|
+
tag: any,
|
|
920
|
+
service: T1
|
|
921
|
+
): Schedule<Exclude<Env, T>, In, Out>
|
|
922
|
+
} = internal.provideService
|
|
923
|
+
|
|
924
|
+
/**
|
|
925
|
+
* A schedule that recurs for until the predicate evaluates to true.
|
|
926
|
+
*
|
|
927
|
+
* @since 2.0.0
|
|
928
|
+
* @category utils
|
|
929
|
+
*/
|
|
930
|
+
export const recurUntil: <A>(f: Predicate<A>) => Schedule<never, A, A> = internal.recurUntil
|
|
931
|
+
|
|
932
|
+
/**
|
|
933
|
+
* A schedule that recurs for until the predicate evaluates to true.
|
|
934
|
+
*
|
|
935
|
+
* @since 2.0.0
|
|
936
|
+
* @category utils
|
|
937
|
+
*/
|
|
938
|
+
export const recurUntilEffect: <Env, A>(f: (a: A) => Effect.Effect<Env, never, boolean>) => Schedule<Env, A, A> =
|
|
939
|
+
internal.recurUntilEffect
|
|
940
|
+
|
|
941
|
+
/**
|
|
942
|
+
* A schedule that recurs for until the input value becomes applicable to
|
|
943
|
+
* partial function and then map that value with given function.
|
|
944
|
+
*
|
|
945
|
+
* @since 2.0.0
|
|
946
|
+
* @category utils
|
|
947
|
+
*/
|
|
948
|
+
export const recurUntilOption: <A, B>(pf: (a: A) => Option.Option<B>) => Schedule<never, A, Option.Option<B>> =
|
|
949
|
+
internal.recurUntilOption
|
|
950
|
+
|
|
951
|
+
/**
|
|
952
|
+
* A schedule that recurs during the given duration.
|
|
953
|
+
*
|
|
954
|
+
* @since 2.0.0
|
|
955
|
+
* @category utils
|
|
956
|
+
*/
|
|
957
|
+
export const recurUpTo: (duration: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> =
|
|
958
|
+
internal.recurUpTo
|
|
959
|
+
|
|
960
|
+
/**
|
|
961
|
+
* A schedule that recurs for as long as the predicate evaluates to true.
|
|
962
|
+
*
|
|
963
|
+
* @since 2.0.0
|
|
964
|
+
* @category utils
|
|
965
|
+
*/
|
|
966
|
+
export const recurWhile: <A>(f: Predicate<A>) => Schedule<never, A, A> = internal.recurWhile
|
|
967
|
+
|
|
968
|
+
/**
|
|
969
|
+
* A schedule that recurs for as long as the effectful predicate evaluates to
|
|
970
|
+
* true.
|
|
971
|
+
*
|
|
972
|
+
* @since 2.0.0
|
|
973
|
+
* @category utils
|
|
974
|
+
*/
|
|
975
|
+
export const recurWhileEffect: <Env, A>(f: (a: A) => Effect.Effect<Env, never, boolean>) => Schedule<Env, A, A> =
|
|
976
|
+
internal.recurWhileEffect
|
|
977
|
+
|
|
978
|
+
/**
|
|
979
|
+
* A schedule spanning all time, which can be stepped only the specified
|
|
980
|
+
* number of times before it terminates.
|
|
981
|
+
*
|
|
982
|
+
* @category constructors
|
|
983
|
+
* @since 2.0.0
|
|
984
|
+
*/
|
|
985
|
+
export const recurs: (n: number) => Schedule<never, unknown, number> = internal.recurs
|
|
986
|
+
|
|
987
|
+
/**
|
|
988
|
+
* Returns a new schedule that folds over the outputs of this one.
|
|
989
|
+
*
|
|
990
|
+
* @since 2.0.0
|
|
991
|
+
* @category folding
|
|
992
|
+
*/
|
|
993
|
+
export const reduce: {
|
|
994
|
+
<Out, Z>(zero: Z, f: (z: Z, out: Out) => Z): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Z>
|
|
995
|
+
<Env, In, Out, Z>(self: Schedule<Env, In, Out>, zero: Z, f: (z: Z, out: Out) => Z): Schedule<Env, In, Z>
|
|
996
|
+
} = internal.reduce
|
|
997
|
+
|
|
998
|
+
/**
|
|
999
|
+
* Returns a new schedule that effectfully folds over the outputs of this one.
|
|
1000
|
+
*
|
|
1001
|
+
* @since 2.0.0
|
|
1002
|
+
* @category folding
|
|
1003
|
+
*/
|
|
1004
|
+
export const reduceEffect: {
|
|
1005
|
+
<Out, Env1, Z>(
|
|
1006
|
+
zero: Z,
|
|
1007
|
+
f: (z: Z, out: Out) => Effect.Effect<Env1, never, Z>
|
|
1008
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env1 | Env, In, Z>
|
|
1009
|
+
<Env, In, Out, Env1, Z>(
|
|
1010
|
+
self: Schedule<Env, In, Out>,
|
|
1011
|
+
zero: Z,
|
|
1012
|
+
f: (z: Z, out: Out) => Effect.Effect<Env1, never, Z>
|
|
1013
|
+
): Schedule<Env | Env1, In, Z>
|
|
1014
|
+
} = internal.reduceEffect
|
|
1015
|
+
|
|
1016
|
+
/**
|
|
1017
|
+
* Returns a new schedule that loops this one continuously, resetting the
|
|
1018
|
+
* state when this schedule is done.
|
|
1019
|
+
*
|
|
1020
|
+
* @since 2.0.0
|
|
1021
|
+
* @category constructors
|
|
1022
|
+
*/
|
|
1023
|
+
export const repeatForever: Schedule<never, unknown, number> = internal.forever
|
|
1024
|
+
|
|
1025
|
+
/**
|
|
1026
|
+
* Returns a new schedule that outputs the number of repetitions of this one.
|
|
1027
|
+
*
|
|
1028
|
+
* @since 2.0.0
|
|
1029
|
+
* @category utils
|
|
1030
|
+
*/
|
|
1031
|
+
export const repetitions: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, number> =
|
|
1032
|
+
internal.repetitions
|
|
1033
|
+
|
|
1034
|
+
/**
|
|
1035
|
+
* Return a new schedule that automatically resets the schedule to its initial
|
|
1036
|
+
* state after some time of inactivity defined by `duration`.
|
|
1037
|
+
*
|
|
1038
|
+
* @since 2.0.0
|
|
1039
|
+
* @category utils
|
|
1040
|
+
*/
|
|
1041
|
+
export const resetAfter: {
|
|
1042
|
+
(duration: Duration.DurationInput): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
1043
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, duration: Duration.DurationInput): Schedule<Env, In, Out>
|
|
1044
|
+
} = internal.resetAfter
|
|
1045
|
+
|
|
1046
|
+
/**
|
|
1047
|
+
* Resets the schedule when the specified predicate on the schedule output
|
|
1048
|
+
* evaluates to true.
|
|
1049
|
+
*
|
|
1050
|
+
* @since 2.0.0
|
|
1051
|
+
* @category utils
|
|
1052
|
+
*/
|
|
1053
|
+
export const resetWhen: {
|
|
1054
|
+
<Out>(f: Predicate<Out>): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
1055
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<Out>): Schedule<Env, In, Out>
|
|
1056
|
+
} = internal.resetWhen
|
|
1057
|
+
|
|
1058
|
+
/**
|
|
1059
|
+
* Runs a schedule using the provided inputs, and collects all outputs.
|
|
1060
|
+
*
|
|
1061
|
+
* @since 2.0.0
|
|
1062
|
+
* @category destructors
|
|
1063
|
+
*/
|
|
1064
|
+
export const run: {
|
|
1065
|
+
<In>(
|
|
1066
|
+
now: number,
|
|
1067
|
+
input: Iterable<In>
|
|
1068
|
+
): <Env, Out>(self: Schedule<Env, In, Out>) => Effect.Effect<Env, never, Chunk.Chunk<Out>>
|
|
1069
|
+
<Env, In, Out>(
|
|
1070
|
+
self: Schedule<Env, In, Out>,
|
|
1071
|
+
now: number,
|
|
1072
|
+
input: Iterable<In>
|
|
1073
|
+
): Effect.Effect<Env, never, Chunk.Chunk<Out>>
|
|
1074
|
+
} = internal.run
|
|
1075
|
+
|
|
1076
|
+
/**
|
|
1077
|
+
* Cron-like schedule that recurs every specified `second` of each minute. It
|
|
1078
|
+
* triggers at zero nanosecond of the second. Producing a count of repeats: 0,
|
|
1079
|
+
* 1, 2.
|
|
1080
|
+
*
|
|
1081
|
+
* NOTE: `second` parameter is validated lazily. Must be in range 0...59.
|
|
1082
|
+
*
|
|
1083
|
+
* @since 2.0.0
|
|
1084
|
+
* @category constructors
|
|
1085
|
+
*/
|
|
1086
|
+
export const secondOfMinute: (second: number) => Schedule<never, unknown, number> = internal.secondOfMinute
|
|
1087
|
+
|
|
1088
|
+
/**
|
|
1089
|
+
* Returns a schedule that recurs continuously, each repetition spaced the
|
|
1090
|
+
* specified duration from the last run.
|
|
1091
|
+
*
|
|
1092
|
+
* @since 2.0.0
|
|
1093
|
+
* @category constructors
|
|
1094
|
+
*/
|
|
1095
|
+
export const spaced: (duration: Duration.DurationInput) => Schedule<never, unknown, number> = internal.spaced
|
|
1096
|
+
|
|
1097
|
+
/**
|
|
1098
|
+
* A schedule that does not recur, it just stops.
|
|
1099
|
+
*
|
|
1100
|
+
* @since 2.0.0
|
|
1101
|
+
* @category constructors
|
|
1102
|
+
*/
|
|
1103
|
+
export const stop: Schedule<never, unknown, void> = internal.stop
|
|
1104
|
+
|
|
1105
|
+
/**
|
|
1106
|
+
* Returns a schedule that repeats one time, producing the specified constant
|
|
1107
|
+
* value.
|
|
1108
|
+
*
|
|
1109
|
+
* @since 2.0.0
|
|
1110
|
+
* @category constructors
|
|
1111
|
+
*/
|
|
1112
|
+
export const succeed: <A>(value: A) => Schedule<never, unknown, A> = internal.succeed
|
|
1113
|
+
|
|
1114
|
+
/**
|
|
1115
|
+
* Returns a schedule that repeats one time, producing the specified constant
|
|
1116
|
+
* value.
|
|
1117
|
+
*
|
|
1118
|
+
* @category constructors
|
|
1119
|
+
* @since 2.0.0
|
|
1120
|
+
*/
|
|
1121
|
+
export const sync: <A>(evaluate: LazyArg<A>) => Schedule<never, unknown, A> = internal.sync
|
|
1122
|
+
|
|
1123
|
+
/**
|
|
1124
|
+
* Returns a new schedule that effectfully processes every input to this
|
|
1125
|
+
* schedule.
|
|
1126
|
+
*
|
|
1127
|
+
* @since 2.0.0
|
|
1128
|
+
* @category sequencing
|
|
1129
|
+
*/
|
|
1130
|
+
export const tapInput: {
|
|
1131
|
+
<Env2, In2, X>(
|
|
1132
|
+
f: (input: In2) => Effect.Effect<Env2, never, X>
|
|
1133
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Out>
|
|
1134
|
+
<Env, In, Out, Env2, In2, X>(
|
|
1135
|
+
self: Schedule<Env, In, Out>,
|
|
1136
|
+
f: (input: In2) => Effect.Effect<Env2, never, X>
|
|
1137
|
+
): Schedule<Env | Env2, In & In2, Out>
|
|
1138
|
+
} = internal.tapInput
|
|
1139
|
+
|
|
1140
|
+
/**
|
|
1141
|
+
* Returns a new schedule that effectfully processes every output from this
|
|
1142
|
+
* schedule.
|
|
1143
|
+
*
|
|
1144
|
+
* @since 2.0.0
|
|
1145
|
+
* @category sequencing
|
|
1146
|
+
*/
|
|
1147
|
+
export const tapOutput: {
|
|
1148
|
+
<Out, XO extends Out, Env2, X>(
|
|
1149
|
+
f: (out: XO) => Effect.Effect<Env2, never, X>
|
|
1150
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
|
|
1151
|
+
<Env, In, Out, XO extends Out, Env2, X>(
|
|
1152
|
+
self: Schedule<Env, In, Out>,
|
|
1153
|
+
f: (out: XO) => Effect.Effect<Env2, never, X>
|
|
1154
|
+
): Schedule<Env | Env2, In, Out>
|
|
1155
|
+
} = internal.tapOutput
|
|
1156
|
+
|
|
1157
|
+
/**
|
|
1158
|
+
* Unfolds a schedule that repeats one time from the specified state and
|
|
1159
|
+
* iterator.
|
|
1160
|
+
*
|
|
1161
|
+
* @since 2.0.0
|
|
1162
|
+
* @category constructors
|
|
1163
|
+
*/
|
|
1164
|
+
export const unfold: <A>(initial: A, f: (a: A) => A) => Schedule<never, unknown, A> = internal.unfold
|
|
1165
|
+
|
|
1166
|
+
/**
|
|
1167
|
+
* Returns a new schedule that performs a geometric union on the intervals
|
|
1168
|
+
* defined by both schedules.
|
|
1169
|
+
*
|
|
1170
|
+
* @since 2.0.0
|
|
1171
|
+
* @category utils
|
|
1172
|
+
*/
|
|
1173
|
+
export const union: {
|
|
1174
|
+
<Env2, In2, Out2>(
|
|
1175
|
+
that: Schedule<Env2, In2, Out2>
|
|
1176
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, readonly [Out, Out2]>
|
|
1177
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
1178
|
+
self: Schedule<Env, In, Out>,
|
|
1179
|
+
that: Schedule<Env2, In2, Out2>
|
|
1180
|
+
): Schedule<Env | Env2, In & In2, readonly [Out, Out2]>
|
|
1181
|
+
} = internal.union
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* Returns a new schedule that combines this schedule with the specified
|
|
1185
|
+
* schedule, continuing as long as either schedule wants to continue and
|
|
1186
|
+
* merging the next intervals according to the specified merge function.
|
|
1187
|
+
*
|
|
1188
|
+
* @since 2.0.0
|
|
1189
|
+
* @category utils
|
|
1190
|
+
*/
|
|
1191
|
+
export const unionWith: {
|
|
1192
|
+
<Env2, In2, Out2>(
|
|
1193
|
+
that: Schedule<Env2, In2, Out2>,
|
|
1194
|
+
f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
|
|
1195
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, readonly [Out, Out2]>
|
|
1196
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
1197
|
+
self: Schedule<Env, In, Out>,
|
|
1198
|
+
that: Schedule<Env2, In2, Out2>,
|
|
1199
|
+
f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
|
|
1200
|
+
): Schedule<Env | Env2, In & In2, readonly [Out, Out2]>
|
|
1201
|
+
} = internal.unionWith
|
|
1202
|
+
|
|
1203
|
+
/**
|
|
1204
|
+
* Returns a new schedule that continues until the specified predicate on the
|
|
1205
|
+
* input evaluates to true.
|
|
1206
|
+
*
|
|
1207
|
+
* @since 2.0.0
|
|
1208
|
+
* @category utils
|
|
1209
|
+
*/
|
|
1210
|
+
export const untilInput: {
|
|
1211
|
+
<In>(f: Predicate<In>): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
1212
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<In>): Schedule<Env, In, Out>
|
|
1213
|
+
} = internal.untilInput
|
|
1214
|
+
|
|
1215
|
+
/**
|
|
1216
|
+
* Returns a new schedule that continues until the specified effectful
|
|
1217
|
+
* predicate on the input evaluates to true.
|
|
1218
|
+
*
|
|
1219
|
+
* @since 2.0.0
|
|
1220
|
+
* @category utils
|
|
1221
|
+
*/
|
|
1222
|
+
export const untilInputEffect: {
|
|
1223
|
+
<In, Env2>(
|
|
1224
|
+
f: (input: In) => Effect.Effect<Env2, never, boolean>
|
|
1225
|
+
): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
|
|
1226
|
+
<Env, In, Out, Env2>(
|
|
1227
|
+
self: Schedule<Env, In, Out>,
|
|
1228
|
+
f: (input: In) => Effect.Effect<Env2, never, boolean>
|
|
1229
|
+
): Schedule<Env | Env2, In, Out>
|
|
1230
|
+
} = internal.untilInputEffect
|
|
1231
|
+
|
|
1232
|
+
/**
|
|
1233
|
+
* Returns a new schedule that continues until the specified predicate on the
|
|
1234
|
+
* output evaluates to true.
|
|
1235
|
+
*
|
|
1236
|
+
* @since 2.0.0
|
|
1237
|
+
* @category utils
|
|
1238
|
+
*/
|
|
1239
|
+
export const untilOutput: {
|
|
1240
|
+
<Out>(f: Predicate<Out>): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
1241
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<Out>): Schedule<Env, In, Out>
|
|
1242
|
+
} = internal.untilOutput
|
|
1243
|
+
|
|
1244
|
+
/**
|
|
1245
|
+
* Returns a new schedule that continues until the specified effectful
|
|
1246
|
+
* predicate on the output evaluates to true.
|
|
1247
|
+
*
|
|
1248
|
+
* @since 2.0.0
|
|
1249
|
+
* @category utils
|
|
1250
|
+
*/
|
|
1251
|
+
export const untilOutputEffect: {
|
|
1252
|
+
<Out, Env2>(
|
|
1253
|
+
f: (out: Out) => Effect.Effect<Env2, never, boolean>
|
|
1254
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
|
|
1255
|
+
<Env, In, Out, Env2>(
|
|
1256
|
+
self: Schedule<Env, In, Out>,
|
|
1257
|
+
f: (out: Out) => Effect.Effect<Env2, never, boolean>
|
|
1258
|
+
): Schedule<Env | Env2, In, Out>
|
|
1259
|
+
} = internal.untilOutputEffect
|
|
1260
|
+
|
|
1261
|
+
/**
|
|
1262
|
+
* A schedule that recurs during the given duration.
|
|
1263
|
+
*
|
|
1264
|
+
* @since 2.0.0
|
|
1265
|
+
* @category utils
|
|
1266
|
+
*/
|
|
1267
|
+
export const upTo: {
|
|
1268
|
+
(duration: Duration.DurationInput): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
1269
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, duration: Duration.DurationInput): Schedule<Env, In, Out>
|
|
1270
|
+
} = internal.upTo
|
|
1271
|
+
|
|
1272
|
+
/**
|
|
1273
|
+
* Returns a new schedule that continues for as long the specified predicate
|
|
1274
|
+
* on the input evaluates to true.
|
|
1275
|
+
*
|
|
1276
|
+
* @since 2.0.0
|
|
1277
|
+
* @category utils
|
|
1278
|
+
*/
|
|
1279
|
+
export const whileInput: {
|
|
1280
|
+
<In>(f: Predicate<In>): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
1281
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<In>): Schedule<Env, In, Out>
|
|
1282
|
+
} = internal.whileInput
|
|
1283
|
+
|
|
1284
|
+
/**
|
|
1285
|
+
* Returns a new schedule that continues for as long the specified effectful
|
|
1286
|
+
* predicate on the input evaluates to true.
|
|
1287
|
+
*
|
|
1288
|
+
* @since 2.0.0
|
|
1289
|
+
* @category utils
|
|
1290
|
+
*/
|
|
1291
|
+
export const whileInputEffect: {
|
|
1292
|
+
<In, Env2>(
|
|
1293
|
+
f: (input: In) => Effect.Effect<Env2, never, boolean>
|
|
1294
|
+
): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
|
|
1295
|
+
<Env, In, Out, Env2>(
|
|
1296
|
+
self: Schedule<Env, In, Out>,
|
|
1297
|
+
f: (input: In) => Effect.Effect<Env2, never, boolean>
|
|
1298
|
+
): Schedule<Env | Env2, In, Out>
|
|
1299
|
+
} = internal.whileInputEffect
|
|
1300
|
+
|
|
1301
|
+
/**
|
|
1302
|
+
* Returns a new schedule that continues for as long the specified predicate
|
|
1303
|
+
* on the output evaluates to true.
|
|
1304
|
+
*
|
|
1305
|
+
* @since 2.0.0
|
|
1306
|
+
* @category utils
|
|
1307
|
+
*/
|
|
1308
|
+
export const whileOutput: {
|
|
1309
|
+
<Out>(f: Predicate<Out>): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
|
|
1310
|
+
<Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<Out>): Schedule<Env, In, Out>
|
|
1311
|
+
} = internal.whileOutput
|
|
1312
|
+
|
|
1313
|
+
/**
|
|
1314
|
+
* Returns a new schedule that continues for as long the specified effectful
|
|
1315
|
+
* predicate on the output evaluates to true.
|
|
1316
|
+
*
|
|
1317
|
+
* @since 2.0.0
|
|
1318
|
+
* @category utils
|
|
1319
|
+
*/
|
|
1320
|
+
export const whileOutputEffect: {
|
|
1321
|
+
<Out, Env1>(
|
|
1322
|
+
f: (out: Out) => Effect.Effect<Env1, never, boolean>
|
|
1323
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env1 | Env, In, Out>
|
|
1324
|
+
<Env, In, Out, Env1>(
|
|
1325
|
+
self: Schedule<Env, In, Out>,
|
|
1326
|
+
f: (out: Out) => Effect.Effect<Env1, never, boolean>
|
|
1327
|
+
): Schedule<Env | Env1, In, Out>
|
|
1328
|
+
} = internal.whileOutputEffect
|
|
1329
|
+
|
|
1330
|
+
/**
|
|
1331
|
+
* A schedule that divides the timeline to `interval`-long windows, and sleeps
|
|
1332
|
+
* until the nearest window boundary every time it recurs.
|
|
1333
|
+
*
|
|
1334
|
+
* For example, `windowed(Duration.seconds(10))` would produce a schedule as
|
|
1335
|
+
* follows:
|
|
1336
|
+
*
|
|
1337
|
+
* ```
|
|
1338
|
+
* 10s 10s 10s 10s
|
|
1339
|
+
* |----------|----------|----------|----------|
|
|
1340
|
+
* |action------|sleep---|act|-sleep|action----|
|
|
1341
|
+
* ```
|
|
1342
|
+
*
|
|
1343
|
+
* @since 2.0.0
|
|
1344
|
+
* @category constructors
|
|
1345
|
+
*/
|
|
1346
|
+
export const windowed: (interval: Duration.DurationInput) => Schedule<never, unknown, number> = internal.windowed
|
|
1347
|
+
|
|
1348
|
+
/**
|
|
1349
|
+
* The same as `intersect` but ignores the right output.
|
|
1350
|
+
*
|
|
1351
|
+
* @since 2.0.0
|
|
1352
|
+
* @category zipping
|
|
1353
|
+
*/
|
|
1354
|
+
export const zipLeft: {
|
|
1355
|
+
<Env2, In2, Out2>(
|
|
1356
|
+
that: Schedule<Env2, In2, Out2>
|
|
1357
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Out>
|
|
1358
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
1359
|
+
self: Schedule<Env, In, Out>,
|
|
1360
|
+
that: Schedule<Env2, In2, Out2>
|
|
1361
|
+
): Schedule<Env | Env2, In & In2, Out>
|
|
1362
|
+
} = internal.zipLeft
|
|
1363
|
+
|
|
1364
|
+
/**
|
|
1365
|
+
* The same as `intersect` but ignores the left output.
|
|
1366
|
+
*
|
|
1367
|
+
* @since 2.0.0
|
|
1368
|
+
* @category zipping
|
|
1369
|
+
*/
|
|
1370
|
+
export const zipRight: {
|
|
1371
|
+
<Env2, In2, Out2>(
|
|
1372
|
+
that: Schedule<Env2, In2, Out2>
|
|
1373
|
+
): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Out2>
|
|
1374
|
+
<Env, In, Out, Env2, In2, Out2>(
|
|
1375
|
+
self: Schedule<Env, In, Out>,
|
|
1376
|
+
that: Schedule<Env2, In2, Out2>
|
|
1377
|
+
): Schedule<Env | Env2, In & In2, Out2>
|
|
1378
|
+
} = internal.zipRight
|
|
1379
|
+
|
|
1380
|
+
/**
|
|
1381
|
+
* Equivalent to `intersect` followed by `map`.
|
|
1382
|
+
*
|
|
1383
|
+
* @since 2.0.0
|
|
1384
|
+
* @category zipping
|
|
1385
|
+
*/
|
|
1386
|
+
export const zipWith: {
|
|
1387
|
+
<Env2, In2, Out2, Out, Out3>(
|
|
1388
|
+
that: Schedule<Env2, In2, Out2>,
|
|
1389
|
+
f: (out: Out, out2: Out2) => Out3
|
|
1390
|
+
): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Out3>
|
|
1391
|
+
<Env, In, Out, Env2, In2, Out2, Out3>(
|
|
1392
|
+
self: Schedule<Env, In, Out>,
|
|
1393
|
+
that: Schedule<Env2, In2, Out2>,
|
|
1394
|
+
f: (out: Out, out2: Out2) => Out3
|
|
1395
|
+
): Schedule<Env | Env2, In & In2, Out3>
|
|
1396
|
+
} = internal.zipWith
|