effect 2.2.5 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RateLimiter/package.json +6 -0
- package/dist/cjs/Cause.js +14 -1
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/Clock.js.map +1 -1
- package/dist/cjs/Console.js.map +1 -1
- package/dist/cjs/Context.js +23 -25
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Data.js +3 -3
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Deferred.js +1 -1
- package/dist/cjs/Deferred.js.map +1 -1
- package/dist/cjs/Effect.js +9 -9
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Effectable.js.map +1 -1
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Exit.js +2 -2
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/FiberMap.js +3 -3
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/FiberRefs.js.map +1 -1
- package/dist/cjs/FiberSet.js +3 -3
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/GroupBy.js.map +1 -1
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/LogLevel.js.map +1 -1
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/Number.js +20 -1
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Pool.js.map +1 -1
- package/dist/cjs/PubSub.js.map +1 -1
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/Random.js.map +1 -1
- package/dist/cjs/RateLimiter.js +38 -0
- package/dist/cjs/RateLimiter.js.map +1 -0
- package/dist/cjs/ReadonlyRecord.js +45 -9
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/Ref.js.map +1 -1
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/cjs/Runtime.js +1 -4
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/RuntimeFlags.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/Scope.js.map +1 -1
- package/dist/cjs/ScopedRef.js.map +1 -1
- package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/Supervisor.js.map +1 -1
- package/dist/cjs/SynchronizedRef.js.map +1 -1
- package/dist/cjs/TArray.js.map +1 -1
- package/dist/cjs/TDeferred.js.map +1 -1
- package/dist/cjs/TMap.js.map +1 -1
- package/dist/cjs/TPriorityQueue.js.map +1 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TQueue.js.map +1 -1
- package/dist/cjs/TRandom.js.map +1 -1
- package/dist/cjs/TReentrantLock.js.map +1 -1
- package/dist/cjs/TRef.js.map +1 -1
- package/dist/cjs/TSemaphore.js.map +1 -1
- package/dist/cjs/TSet.js.map +1 -1
- package/dist/cjs/Take.js +6 -6
- package/dist/cjs/Take.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +10 -13
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestAnnotations.js +1 -1
- package/dist/cjs/TestAnnotations.js.map +1 -1
- package/dist/cjs/TestClock.js +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/TestConfig.js +1 -1
- package/dist/cjs/TestConfig.js.map +1 -1
- package/dist/cjs/TestContext.js.map +1 -1
- package/dist/cjs/TestLive.js +1 -1
- package/dist/cjs/TestLive.js.map +1 -1
- package/dist/cjs/TestServices.js.map +1 -1
- package/dist/cjs/TestSized.js +1 -1
- package/dist/cjs/TestSized.js.map +1 -1
- package/dist/cjs/Utils.js +0 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/mergeDecision.js +2 -6
- package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/internal/channel.js +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +2 -4
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/console.js.map +1 -1
- package/dist/cjs/internal/context.js +31 -22
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +13 -27
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core-stream.js.map +1 -1
- package/dist/cjs/internal/core.js +61 -130
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/defaultServices/console.js +1 -1
- package/dist/cjs/internal/defaultServices/console.js.map +1 -1
- package/dist/cjs/internal/defaultServices.js.map +1 -1
- package/dist/cjs/internal/deferred.js.map +1 -1
- package/dist/cjs/internal/differ/contextPatch.js +9 -9
- package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +7 -10
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +4 -4
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/fiber.js +2 -6
- package/dist/cjs/internal/fiber.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +10 -19
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer/circular.js.map +1 -1
- package/dist/cjs/internal/layer.js +3 -3
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logSpan.js +3 -5
- package/dist/cjs/internal/logSpan.js.map +1 -1
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +2 -6
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/query.js.map +1 -1
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/random.js +1 -1
- package/dist/cjs/internal/random.js.map +1 -1
- package/dist/cjs/internal/rateLimiter.js +44 -0
- package/dist/cjs/internal/rateLimiter.js.map +1 -0
- package/dist/cjs/internal/ref.js.map +1 -1
- package/dist/cjs/internal/reloadable.js +1 -9
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/runtime.js +0 -1
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/scopedCache.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/sink.js +7 -7
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tExit.js +2 -2
- package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stm/tArray.js.map +1 -1
- package/dist/cjs/internal/stm/tDeferred.js +4 -2
- package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
- package/dist/cjs/internal/stm/tMap.js.map +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tRandom.js +1 -1
- package/dist/cjs/internal/stm/tRandom.js.map +1 -1
- package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/cjs/internal/stm/tRef.js.map +1 -1
- package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
- package/dist/cjs/internal/stm/tSet.js.map +1 -1
- package/dist/cjs/internal/stream/debounceState.js.map +1 -1
- package/dist/cjs/internal/stream/handoff.js.map +1 -1
- package/dist/cjs/internal/stream/handoffSignal.js.map +1 -1
- package/dist/cjs/internal/stream/pull.js.map +1 -1
- package/dist/cjs/internal/stream.js +0 -2
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/supervisor.js.map +1 -1
- package/dist/cjs/internal/take.js +2 -2
- package/dist/cjs/internal/take.js.map +1 -1
- package/dist/cjs/internal/testing/sleep.js.map +1 -1
- package/dist/cjs/internal/tracer.js +2 -2
- package/dist/cjs/internal/tracer.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Cache.d.ts +20 -20
- package/dist/dts/Cache.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +33 -5
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +197 -194
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Clock.d.ts +7 -7
- package/dist/dts/Clock.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +1 -1
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/ConfigProvider.d.ts +6 -6
- package/dist/dts/ConfigProvider.d.ts.map +1 -1
- package/dist/dts/Console.d.ts +43 -43
- package/dist/dts/Console.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +44 -29
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +38 -57
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Deferred.d.ts +36 -36
- package/dist/dts/Deferred.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +732 -729
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Effectable.d.ts +8 -8
- package/dist/dts/Effectable.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +2 -3
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +74 -74
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/Fiber.d.ts +75 -75
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +22 -22
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +28 -28
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/FiberRefs.d.ts +1 -1
- package/dist/dts/FiberRefs.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +16 -16
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +6 -6
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/KeyedPool.d.ts +22 -22
- package/dist/dts/KeyedPool.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +126 -126
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/LogLevel.d.ts +2 -2
- package/dist/dts/LogLevel.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +14 -14
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +7 -7
- package/dist/dts/MergeState.d.ts +13 -13
- package/dist/dts/MergeState.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +32 -32
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +6 -6
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +15 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +2 -3
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Pool.d.ts +15 -16
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/PubSub.d.ts +18 -18
- package/dist/dts/PubSub.d.ts.map +1 -1
- package/dist/dts/Queue.d.ts +40 -40
- package/dist/dts/Queue.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +13 -13
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/RateLimiter.d.ts +31 -0
- package/dist/dts/RateLimiter.d.ts.map +1 -0
- package/dist/dts/ReadonlyArray.d.ts +3 -3
- package/dist/dts/ReadonlyRecord.d.ts +37 -8
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/Ref.d.ts +25 -25
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +9 -9
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +27 -28
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestBlock.d.ts +3 -3
- package/dist/dts/RequestBlock.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +16 -16
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +7 -7
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +13 -16
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/RuntimeFlags.d.ts +10 -10
- package/dist/dts/RuntimeFlags.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +303 -303
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +47 -47
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/Scope.d.ts +10 -10
- package/dist/dts/Scope.d.ts.map +1 -1
- package/dist/dts/ScopedCache.d.ts +14 -14
- package/dist/dts/ScopedCache.d.ts.map +1 -1
- package/dist/dts/ScopedRef.d.ts +5 -5
- package/dist/dts/ScopedRef.d.ts.map +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts +8 -8
- package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +214 -205
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +595 -592
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/StreamEmit.d.ts +5 -5
- package/dist/dts/StreamEmit.d.ts.map +1 -1
- package/dist/dts/Streamable.d.ts +2 -2
- package/dist/dts/Streamable.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +41 -41
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/Supervisor.d.ts +17 -17
- package/dist/dts/Supervisor.d.ts.map +1 -1
- package/dist/dts/SynchronizedRef.d.ts +41 -41
- package/dist/dts/SynchronizedRef.d.ts.map +1 -1
- package/dist/dts/TArray.d.ts +72 -72
- package/dist/dts/TArray.d.ts.map +1 -1
- package/dist/dts/TDeferred.d.ts +12 -12
- package/dist/dts/TDeferred.d.ts.map +1 -1
- package/dist/dts/TMap.d.ts +67 -67
- package/dist/dts/TMap.d.ts.map +1 -1
- package/dist/dts/TPriorityQueue.d.ts +23 -23
- package/dist/dts/TPriorityQueue.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +15 -15
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +40 -40
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TRandom.d.ts +13 -13
- package/dist/dts/TRandom.d.ts.map +1 -1
- package/dist/dts/TReentrantLock.d.ts +21 -21
- package/dist/dts/TReentrantLock.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +25 -25
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSemaphore.d.ts +15 -15
- package/dist/dts/TSemaphore.d.ts.map +1 -1
- package/dist/dts/TSet.d.ts +49 -49
- package/dist/dts/TSet.d.ts.map +1 -1
- package/dist/dts/Take.d.ts +41 -41
- package/dist/dts/Take.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts +1 -3
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestAnnotations.d.ts +3 -3
- package/dist/dts/TestAnnotations.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts +18 -18
- package/dist/dts/TestClock.d.ts.map +1 -1
- package/dist/dts/TestConfig.d.ts.map +1 -1
- package/dist/dts/TestContext.d.ts +2 -2
- package/dist/dts/TestContext.d.ts.map +1 -1
- package/dist/dts/TestLive.d.ts +1 -1
- package/dist/dts/TestLive.d.ts.map +1 -1
- package/dist/dts/TestServices.d.ts +31 -31
- package/dist/dts/TestServices.d.ts.map +1 -1
- package/dist/dts/TestSized.d.ts +2 -2
- package/dist/dts/TestSized.d.ts.map +1 -1
- package/dist/dts/Tracer.d.ts +1 -1
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/index.d.ts +12 -2
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/channel/channelExecutor.d.ts +1 -1
- package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -1
- package/dist/dts/internal/core-stream.d.ts +1 -1
- package/dist/dts/internal/core-stream.d.ts.map +1 -1
- package/dist/dts/internal/rateLimiter.d.ts +2 -0
- package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
- package/dist/dts/internal/stm/stm.d.ts +6 -6
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/Cause.js +13 -0
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Clock.js.map +1 -1
- package/dist/esm/Console.js.map +1 -1
- package/dist/esm/Context.js +22 -24
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Data.js +4 -5
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Deferred.js +1 -1
- package/dist/esm/Deferred.js.map +1 -1
- package/dist/esm/Effect.js +9 -9
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Effectable.js.map +1 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Exit.js +2 -2
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/FiberMap.js +3 -3
- package/dist/esm/FiberRef.js.map +1 -1
- package/dist/esm/FiberRefs.js.map +1 -1
- package/dist/esm/FiberSet.js +3 -3
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/GroupBy.js.map +1 -1
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/LogLevel.js.map +1 -1
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/Number.js +18 -0
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Pool.js.map +1 -1
- package/dist/esm/PubSub.js.map +1 -1
- package/dist/esm/Queue.js.map +1 -1
- package/dist/esm/Random.js.map +1 -1
- package/dist/esm/RateLimiter.js +7 -0
- package/dist/esm/RateLimiter.js.map +1 -0
- package/dist/esm/ReadonlyRecord.js +44 -8
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/Ref.js.map +1 -1
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Resource.js.map +1 -1
- package/dist/esm/Runtime.js +1 -4
- package/dist/esm/Runtime.js.map +1 -1
- package/dist/esm/RuntimeFlags.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/Scope.js.map +1 -1
- package/dist/esm/ScopedRef.js.map +1 -1
- package/dist/esm/SingleProducerAsyncInput.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/Supervisor.js.map +1 -1
- package/dist/esm/SynchronizedRef.js.map +1 -1
- package/dist/esm/TArray.js.map +1 -1
- package/dist/esm/TDeferred.js.map +1 -1
- package/dist/esm/TMap.js.map +1 -1
- package/dist/esm/TPriorityQueue.js.map +1 -1
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TQueue.js.map +1 -1
- package/dist/esm/TRandom.js.map +1 -1
- package/dist/esm/TReentrantLock.js.map +1 -1
- package/dist/esm/TRef.js.map +1 -1
- package/dist/esm/TSemaphore.js.map +1 -1
- package/dist/esm/TSet.js.map +1 -1
- package/dist/esm/Take.js +6 -6
- package/dist/esm/Take.js.map +1 -1
- package/dist/esm/TestAnnotation.js +10 -13
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/TestAnnotations.js +1 -1
- package/dist/esm/TestAnnotations.js.map +1 -1
- package/dist/esm/TestClock.js +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/TestConfig.js +1 -1
- package/dist/esm/TestConfig.js.map +1 -1
- package/dist/esm/TestContext.js.map +1 -1
- package/dist/esm/TestLive.js +1 -1
- package/dist/esm/TestLive.js.map +1 -1
- package/dist/esm/TestServices.js.map +1 -1
- package/dist/esm/TestSized.js +1 -1
- package/dist/esm/TestSized.js.map +1 -1
- package/dist/esm/Utils.js +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/index.js +12 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel/mergeDecision.js +2 -6
- package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
- package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/esm/internal/channel.js +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/clock.js +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/configProvider.js +2 -4
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/console.js.map +1 -1
- package/dist/esm/internal/context.js +28 -20
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/core-effect.js +12 -26
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core-stream.js.map +1 -1
- package/dist/esm/internal/core.js +57 -127
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/data.js.map +1 -1
- package/dist/esm/internal/defaultServices/console.js +1 -1
- package/dist/esm/internal/defaultServices/console.js.map +1 -1
- package/dist/esm/internal/defaultServices.js.map +1 -1
- package/dist/esm/internal/deferred.js.map +1 -1
- package/dist/esm/internal/differ/contextPatch.js +9 -9
- package/dist/esm/internal/differ/contextPatch.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +5 -8
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/effectable.js +4 -4
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/fiber.js +2 -6
- package/dist/esm/internal/fiber.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +10 -19
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer/circular.js.map +1 -1
- package/dist/esm/internal/layer.js +3 -3
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/logSpan.js +3 -5
- package/dist/esm/internal/logSpan.js.map +1 -1
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/pubsub.js +1 -5
- package/dist/esm/internal/pubsub.js.map +1 -1
- package/dist/esm/internal/query.js.map +1 -1
- package/dist/esm/internal/queue.js.map +1 -1
- package/dist/esm/internal/random.js +1 -1
- package/dist/esm/internal/random.js.map +1 -1
- package/dist/esm/internal/rateLimiter.js +12 -0
- package/dist/esm/internal/rateLimiter.js.map +1 -0
- package/dist/esm/internal/ref.js.map +1 -1
- package/dist/esm/internal/reloadable.js +1 -9
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/runtime.js +0 -1
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/scopedCache.js.map +1 -1
- package/dist/esm/internal/scopedRef.js.map +1 -1
- package/dist/esm/internal/sink.js +7 -7
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
- package/dist/esm/internal/stm/stm/tExit.js +2 -2
- package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
- package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -1
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stm/tArray.js.map +1 -1
- package/dist/esm/internal/stm/tDeferred.js +4 -2
- package/dist/esm/internal/stm/tDeferred.js.map +1 -1
- package/dist/esm/internal/stm/tMap.js.map +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tRandom.js +1 -1
- package/dist/esm/internal/stm/tRandom.js.map +1 -1
- package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/esm/internal/stm/tRef.js.map +1 -1
- package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
- package/dist/esm/internal/stm/tSet.js.map +1 -1
- package/dist/esm/internal/stream/debounceState.js.map +1 -1
- package/dist/esm/internal/stream/handoff.js.map +1 -1
- package/dist/esm/internal/stream/handoffSignal.js.map +1 -1
- package/dist/esm/internal/stream/pull.js.map +1 -1
- package/dist/esm/internal/stream.js +0 -2
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/subscriptionRef.js.map +1 -1
- package/dist/esm/internal/supervisor.js.map +1 -1
- package/dist/esm/internal/take.js +2 -2
- package/dist/esm/internal/take.js.map +1 -1
- package/dist/esm/internal/testing/sleep.js.map +1 -1
- package/dist/esm/internal/tracer.js +2 -2
- package/dist/esm/internal/tracer.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +9 -1
- package/src/Cache.ts +20 -20
- package/src/Cause.ts +37 -13
- package/src/Channel.ts +802 -794
- package/src/Clock.ts +7 -7
- package/src/Config.ts +1 -1
- package/src/ConfigProvider.ts +6 -6
- package/src/Console.ts +44 -48
- package/src/Context.ts +52 -30
- package/src/Data.ts +38 -61
- package/src/Deferred.ts +39 -41
- package/src/Effect.ts +1187 -1206
- package/src/Effectable.ts +8 -8
- package/src/Either.ts +2 -3
- package/src/Exit.ts +88 -105
- package/src/Fiber.ts +77 -83
- package/src/FiberMap.ts +77 -77
- package/src/FiberRef.ts +28 -28
- package/src/FiberRefs.ts +1 -1
- package/src/FiberSet.ts +61 -62
- package/src/GroupBy.ts +8 -12
- package/src/KeyedPool.ts +22 -22
- package/src/Layer.ts +187 -181
- package/src/LogLevel.ts +7 -6
- package/src/Logger.ts +18 -18
- package/src/MergeDecision.ts +7 -7
- package/src/MergeState.ts +16 -16
- package/src/Metric.ts +39 -39
- package/src/MetricPolling.ts +6 -6
- package/src/Number.ts +19 -0
- package/src/Option.ts +2 -3
- package/src/Pool.ts +15 -16
- package/src/PubSub.ts +18 -18
- package/src/Queue.ts +43 -46
- package/src/Random.ts +13 -15
- package/src/RateLimiter.ts +37 -0
- package/src/ReadonlyRecord.ts +49 -8
- package/src/Ref.ts +25 -25
- package/src/Reloadable.ts +10 -10
- package/src/Request.ts +31 -31
- package/src/RequestBlock.ts +3 -3
- package/src/RequestResolver.ts +21 -21
- package/src/Resource.ts +13 -13
- package/src/Runtime.ts +16 -19
- package/src/RuntimeFlags.ts +10 -10
- package/src/STM.ts +361 -362
- package/src/Schedule.ts +47 -47
- package/src/Scheduler.ts +2 -2
- package/src/Scope.ts +14 -15
- package/src/ScopedCache.ts +14 -14
- package/src/ScopedRef.ts +7 -7
- package/src/SingleProducerAsyncInput.ts +8 -9
- package/src/Sink.ts +357 -381
- package/src/Stream.ts +935 -1033
- package/src/StreamEmit.ts +5 -5
- package/src/Streamable.ts +2 -2
- package/src/SubscriptionRef.ts +51 -51
- package/src/Supervisor.ts +26 -26
- package/src/SynchronizedRef.ts +44 -44
- package/src/TArray.ts +74 -74
- package/src/TDeferred.ts +14 -14
- package/src/TMap.ts +72 -72
- package/src/TPriorityQueue.ts +23 -24
- package/src/TPubSub.ts +15 -15
- package/src/TQueue.ts +40 -40
- package/src/TRandom.ts +13 -13
- package/src/TReentrantLock.ts +21 -21
- package/src/TRef.ts +25 -25
- package/src/TSemaphore.ts +15 -15
- package/src/TSet.ts +49 -49
- package/src/Take.ts +51 -51
- package/src/TestAnnotation.ts +6 -17
- package/src/TestAnnotations.ts +7 -9
- package/src/TestClock.ts +39 -45
- package/src/TestConfig.ts +1 -3
- package/src/TestContext.ts +3 -3
- package/src/TestLive.ts +3 -5
- package/src/TestServices.ts +45 -47
- package/src/TestSized.ts +5 -5
- package/src/Tracer.ts +1 -1
- package/src/Utils.ts +8 -10
- package/src/index.ts +13 -2
- package/src/internal/blockedRequests.ts +2 -2
- package/src/internal/cache.ts +38 -38
- package/src/internal/channel/channelExecutor.ts +65 -73
- package/src/internal/channel/channelState.ts +11 -11
- package/src/internal/channel/continuation.ts +10 -10
- package/src/internal/channel/mergeDecision.ts +14 -16
- package/src/internal/channel/mergeState.ts +12 -12
- package/src/internal/channel/singleProducerAsyncInput.ts +15 -17
- package/src/internal/channel/subexecutor.ts +7 -7
- package/src/internal/channel.ts +901 -980
- package/src/internal/clock.ts +6 -6
- package/src/internal/concurrency.ts +9 -9
- package/src/internal/configProvider.ts +29 -36
- package/src/internal/console.ts +12 -12
- package/src/internal/context.ts +32 -23
- package/src/internal/core-effect.ts +655 -616
- package/src/internal/core-stream.ts +317 -325
- package/src/internal/core.ts +856 -790
- package/src/internal/data.ts +2 -3
- package/src/internal/dataSource.ts +14 -14
- package/src/internal/defaultServices/console.ts +3 -1
- package/src/internal/defaultServices.ts +21 -21
- package/src/internal/deferred.ts +9 -9
- package/src/internal/differ/contextPatch.ts +17 -17
- package/src/internal/effect/circular.ts +154 -159
- package/src/internal/effectable.ts +7 -7
- package/src/internal/fiber.ts +55 -59
- package/src/internal/fiberRefs.ts +1 -1
- package/src/internal/fiberRuntime.ts +426 -463
- package/src/internal/groupBy.ts +59 -62
- package/src/internal/keyedPool.ts +37 -37
- package/src/internal/layer/circular.ts +37 -37
- package/src/internal/layer.ts +235 -240
- package/src/internal/logSpan.ts +3 -5
- package/src/internal/metric/polling.ts +5 -5
- package/src/internal/metric.ts +54 -55
- package/src/internal/pool.ts +72 -72
- package/src/internal/pubsub.ts +75 -84
- package/src/internal/query.ts +25 -27
- package/src/internal/queue.ts +65 -70
- package/src/internal/random.ts +9 -9
- package/src/internal/rateLimiter.ts +30 -0
- package/src/internal/ref.ts +24 -24
- package/src/internal/reloadable.ts +11 -31
- package/src/internal/request.ts +14 -14
- package/src/internal/resource.ts +8 -8
- package/src/internal/runtime.ts +21 -22
- package/src/internal/schedule.ts +131 -134
- package/src/internal/scopedCache.ts +35 -32
- package/src/internal/scopedRef.ts +14 -14
- package/src/internal/sink.ts +507 -565
- package/src/internal/stm/core.ts +101 -102
- package/src/internal/stm/stm/stmState.ts +10 -10
- package/src/internal/stm/stm/tExit.ts +18 -18
- package/src/internal/stm/stm/tryCommit.ts +5 -5
- package/src/internal/stm/stm.ts +363 -374
- package/src/internal/stm/tArray.ts +92 -92
- package/src/internal/stm/tDeferred.ts +16 -14
- package/src/internal/stm/tMap.ts +83 -84
- package/src/internal/stm/tPriorityQueue.ts +24 -25
- package/src/internal/stm/tPubSub.ts +37 -38
- package/src/internal/stm/tQueue.ts +44 -48
- package/src/internal/stm/tRandom.ts +18 -18
- package/src/internal/stm/tReentrantLock.ts +28 -28
- package/src/internal/stm/tRef.ts +25 -25
- package/src/internal/stm/tSemaphore.ts +16 -16
- package/src/internal/stm/tSet.ts +51 -52
- package/src/internal/stream/debounceState.ts +7 -7
- package/src/internal/stream/emit.ts +4 -4
- package/src/internal/stream/handoff.ts +19 -19
- package/src/internal/stream/handoffSignal.ts +4 -4
- package/src/internal/stream/pull.ts +10 -11
- package/src/internal/stream.ts +1770 -1788
- package/src/internal/subscriptionRef.ts +17 -17
- package/src/internal/supervisor.ts +49 -56
- package/src/internal/synchronizedRef.ts +27 -27
- package/src/internal/take.ts +61 -61
- package/src/internal/testing/sleep.ts +2 -2
- package/src/internal/testing/suspendedWarningData.ts +2 -2
- package/src/internal/testing/warningData.ts +2 -2
- package/src/internal/tracer.ts +2 -6
- package/src/internal/version.ts +1 -1
package/src/TestAnnotations.ts
CHANGED
|
@@ -46,20 +46,18 @@ export interface TestAnnotations {
|
|
|
46
46
|
* Accesses an `Annotations` instance in the context and retrieves the
|
|
47
47
|
* annotation of the specified type, or its default value if there is none.
|
|
48
48
|
*/
|
|
49
|
-
get<A>(key: TestAnnotation.TestAnnotation<A>): Effect.Effect<
|
|
49
|
+
get<A>(key: TestAnnotation.TestAnnotation<A>): Effect.Effect<A>
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
52
|
* Accesses an `Annotations` instance in the context and appends the
|
|
53
53
|
* specified annotation to the annotation map.
|
|
54
54
|
*/
|
|
55
|
-
annotate<A>(key: TestAnnotation.TestAnnotation<A>, value: A): Effect.Effect<
|
|
55
|
+
annotate<A>(key: TestAnnotation.TestAnnotation<A>, value: A): Effect.Effect<void>
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
58
|
* Returns the set of all fibers in this test.
|
|
59
59
|
*/
|
|
60
60
|
readonly supervisedFibers: Effect.Effect<
|
|
61
|
-
never,
|
|
62
|
-
never,
|
|
63
61
|
SortedSet.SortedSet<Fiber.RuntimeFiber<unknown, unknown>>
|
|
64
62
|
>
|
|
65
63
|
}
|
|
@@ -69,13 +67,13 @@ class AnnotationsImpl implements TestAnnotations {
|
|
|
69
67
|
readonly [TestAnnotationsTypeId]: TestAnnotationsTypeId = TestAnnotationsTypeId
|
|
70
68
|
constructor(readonly ref: Ref.Ref<TestAnnotationMap.TestAnnotationMap>) {
|
|
71
69
|
}
|
|
72
|
-
get<A>(key: TestAnnotation.TestAnnotation<A>): Effect.Effect<
|
|
70
|
+
get<A>(key: TestAnnotation.TestAnnotation<A>): Effect.Effect<A> {
|
|
73
71
|
return core.map(Ref.get(this.ref), TestAnnotationMap.get(key))
|
|
74
72
|
}
|
|
75
|
-
annotate<A>(key: TestAnnotation.TestAnnotation<A>, value: A): Effect.Effect<
|
|
73
|
+
annotate<A>(key: TestAnnotation.TestAnnotation<A>, value: A): Effect.Effect<void> {
|
|
76
74
|
return Ref.update(this.ref, TestAnnotationMap.annotate(key, value))
|
|
77
75
|
}
|
|
78
|
-
get supervisedFibers(): Effect.Effect<
|
|
76
|
+
get supervisedFibers(): Effect.Effect<SortedSet.SortedSet<Fiber.RuntimeFiber<unknown, unknown>>> {
|
|
79
77
|
return effect.descriptorWith((descriptor) =>
|
|
80
78
|
core.flatMap(this.get(TestAnnotation.fibers), (either) => {
|
|
81
79
|
switch (either._tag) {
|
|
@@ -99,8 +97,8 @@ class AnnotationsImpl implements TestAnnotations {
|
|
|
99
97
|
/**
|
|
100
98
|
* @since 2.0.0
|
|
101
99
|
*/
|
|
102
|
-
export const TestAnnotations: Context.Tag<TestAnnotations, TestAnnotations> = Context.
|
|
103
|
-
|
|
100
|
+
export const TestAnnotations: Context.Tag<TestAnnotations, TestAnnotations> = Context.GenericTag<TestAnnotations>(
|
|
101
|
+
"effect/Annotations"
|
|
104
102
|
)
|
|
105
103
|
|
|
106
104
|
/**
|
package/src/TestClock.ts
CHANGED
|
@@ -76,11 +76,11 @@ import * as Live from "./TestLive.js"
|
|
|
76
76
|
* @since 2.0.0
|
|
77
77
|
*/
|
|
78
78
|
export interface TestClock extends Clock.Clock {
|
|
79
|
-
adjust(duration: Duration.DurationInput): Effect.Effect<
|
|
80
|
-
adjustWith(duration: Duration.DurationInput): <
|
|
81
|
-
readonly save: Effect.Effect<
|
|
82
|
-
setTime(time: number): Effect.Effect<
|
|
83
|
-
readonly sleeps: Effect.Effect<
|
|
79
|
+
adjust(duration: Duration.DurationInput): Effect.Effect<void>
|
|
80
|
+
adjustWith(duration: Duration.DurationInput): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
81
|
+
readonly save: Effect.Effect<Effect.Effect<void>>
|
|
82
|
+
setTime(time: number): Effect.Effect<void>
|
|
83
|
+
readonly sleeps: Effect.Effect<Chunk.Chunk<number>>
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
/**
|
|
@@ -90,7 +90,7 @@ export interface TestClock extends Clock.Clock {
|
|
|
90
90
|
*/
|
|
91
91
|
export interface Data {
|
|
92
92
|
readonly instant: number
|
|
93
|
-
readonly sleeps: Chunk.Chunk<readonly [number, Deferred.Deferred<
|
|
93
|
+
readonly sleeps: Chunk.Chunk<readonly [number, Deferred.Deferred<void>]>
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
@@ -98,7 +98,7 @@ export interface Data {
|
|
|
98
98
|
*/
|
|
99
99
|
export const makeData = (
|
|
100
100
|
instant: number,
|
|
101
|
-
sleeps: Chunk.Chunk<readonly [number, Deferred.Deferred<
|
|
101
|
+
sleeps: Chunk.Chunk<readonly [number, Deferred.Deferred<void>]>
|
|
102
102
|
): Data => ({
|
|
103
103
|
instant,
|
|
104
104
|
sleeps
|
|
@@ -107,9 +107,7 @@ export const makeData = (
|
|
|
107
107
|
/**
|
|
108
108
|
* @since 2.0.0
|
|
109
109
|
*/
|
|
110
|
-
export const TestClock: Context.Tag<TestClock, TestClock> = Context.
|
|
111
|
-
Symbol.for("effect/TestClock")
|
|
112
|
-
)
|
|
110
|
+
export const TestClock: Context.Tag<TestClock, TestClock> = Context.GenericTag<TestClock>("effect/TestClock")
|
|
113
111
|
|
|
114
112
|
/**
|
|
115
113
|
* The warning message that will be displayed if a test is using time but is
|
|
@@ -168,25 +166,25 @@ export class TestClockImpl implements TestClock {
|
|
|
168
166
|
/**
|
|
169
167
|
* Returns the current clock time in milliseconds.
|
|
170
168
|
*/
|
|
171
|
-
currentTimeMillis: Effect.Effect<
|
|
169
|
+
currentTimeMillis: Effect.Effect<number>
|
|
172
170
|
|
|
173
171
|
/**
|
|
174
172
|
* Returns the current clock time in nanoseconds.
|
|
175
173
|
*/
|
|
176
|
-
currentTimeNanos: Effect.Effect<
|
|
174
|
+
currentTimeNanos: Effect.Effect<bigint>
|
|
177
175
|
|
|
178
176
|
/**
|
|
179
177
|
* Saves the `TestClock`'s current state in an effect which, when run, will
|
|
180
178
|
* restore the `TestClock` state to the saved state.
|
|
181
179
|
*/
|
|
182
|
-
get save(): Effect.Effect<
|
|
180
|
+
get save(): Effect.Effect<Effect.Effect<void>> {
|
|
183
181
|
return core.map(ref.get(this.clockState), (data) => ref.set(this.clockState, data))
|
|
184
182
|
}
|
|
185
183
|
/**
|
|
186
184
|
* Sets the current clock time to the specified instant. Any effects that
|
|
187
185
|
* were scheduled to occur on or before the new time will be run in order.
|
|
188
186
|
*/
|
|
189
|
-
setTime(instant: number): Effect.Effect<
|
|
187
|
+
setTime(instant: number): Effect.Effect<void> {
|
|
190
188
|
return core.zipRight(this.warningDone(), this.run(() => instant))
|
|
191
189
|
}
|
|
192
190
|
/**
|
|
@@ -194,9 +192,9 @@ export class TestClockImpl implements TestClock {
|
|
|
194
192
|
* greater than the specified duration. Once the clock time is adjusted to
|
|
195
193
|
* on or after the duration, the fiber will automatically be resumed.
|
|
196
194
|
*/
|
|
197
|
-
sleep(durationInput: Duration.DurationInput): Effect.Effect<
|
|
195
|
+
sleep(durationInput: Duration.DurationInput): Effect.Effect<void> {
|
|
198
196
|
const duration = Duration.decode(durationInput)
|
|
199
|
-
return core.flatMap(core.deferredMake<
|
|
197
|
+
return core.flatMap(core.deferredMake<void>(), (deferred) =>
|
|
200
198
|
pipe(
|
|
201
199
|
ref.modify(this.clockState, (data) => {
|
|
202
200
|
const end = data.instant + Duration.toMillis(duration)
|
|
@@ -219,7 +217,7 @@ export class TestClockImpl implements TestClock {
|
|
|
219
217
|
* Returns a list of the times at which all queued effects are scheduled to
|
|
220
218
|
* resume.
|
|
221
219
|
*/
|
|
222
|
-
get sleeps(): Effect.Effect<
|
|
220
|
+
get sleeps(): Effect.Effect<Chunk.Chunk<number>> {
|
|
223
221
|
return core.map(
|
|
224
222
|
ref.get(this.clockState),
|
|
225
223
|
(data) => Chunk.map(data.sleeps, (_) => _[0])
|
|
@@ -230,7 +228,7 @@ export class TestClockImpl implements TestClock {
|
|
|
230
228
|
* that were scheduled to occur on or before the new time will be run in
|
|
231
229
|
* order.
|
|
232
230
|
*/
|
|
233
|
-
adjust(durationInput: Duration.DurationInput): Effect.Effect<
|
|
231
|
+
adjust(durationInput: Duration.DurationInput): Effect.Effect<void> {
|
|
234
232
|
const duration = Duration.decode(durationInput)
|
|
235
233
|
return core.zipRight(this.warningDone(), this.run((n) => n + Duration.toMillis(duration)))
|
|
236
234
|
}
|
|
@@ -241,13 +239,13 @@ export class TestClockImpl implements TestClock {
|
|
|
241
239
|
*/
|
|
242
240
|
adjustWith(durationInput: Duration.DurationInput) {
|
|
243
241
|
const duration = Duration.decode(durationInput)
|
|
244
|
-
return <
|
|
242
|
+
return <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
|
245
243
|
fiberRuntime.zipLeftOptions(effect, this.adjust(duration), { concurrent: true })
|
|
246
244
|
}
|
|
247
245
|
/**
|
|
248
246
|
* Returns a set of all fibers in this test.
|
|
249
247
|
*/
|
|
250
|
-
supervisedFibers(): Effect.Effect<
|
|
248
|
+
supervisedFibers(): Effect.Effect<SortedSet.SortedSet<Fiber.RuntimeFiber<unknown, unknown>>> {
|
|
251
249
|
return this.annotations.supervisedFibers
|
|
252
250
|
}
|
|
253
251
|
/**
|
|
@@ -257,7 +255,7 @@ export class TestClockImpl implements TestClock {
|
|
|
257
255
|
* synchronize on the status of multiple fibers at the same time this
|
|
258
256
|
* snapshot may not be fully consistent.
|
|
259
257
|
*/
|
|
260
|
-
freeze(): Effect.Effect<
|
|
258
|
+
freeze(): Effect.Effect<HashMap.HashMap<FiberId.FiberId, FiberStatus.FiberStatus>, void> {
|
|
261
259
|
return core.flatMap(this.supervisedFibers(), (fibers) =>
|
|
262
260
|
pipe(
|
|
263
261
|
fibers,
|
|
@@ -280,7 +278,7 @@ export class TestClockImpl implements TestClock {
|
|
|
280
278
|
* Forks a fiber that will display a warning message if a test is using time
|
|
281
279
|
* but is not advancing the `TestClock`.
|
|
282
280
|
*/
|
|
283
|
-
warningStart(): Effect.Effect<
|
|
281
|
+
warningStart(): Effect.Effect<void> {
|
|
284
282
|
return synchronized.updateSomeEffect(this.warningState, (data) =>
|
|
285
283
|
WarningData.isStart(data) ?
|
|
286
284
|
Option.some(
|
|
@@ -299,7 +297,7 @@ export class TestClockImpl implements TestClock {
|
|
|
299
297
|
* Cancels the warning message that is displayed if a test is using time but
|
|
300
298
|
* is not advancing the `TestClock`.
|
|
301
299
|
*/
|
|
302
|
-
warningDone(): Effect.Effect<
|
|
300
|
+
warningDone(): Effect.Effect<void> {
|
|
303
301
|
return synchronized.updateSomeEffect(this.warningState, (warningData) => {
|
|
304
302
|
if (WarningData.isStart(warningData)) {
|
|
305
303
|
return Option.some(core.succeed(WarningData.done))
|
|
@@ -313,7 +311,7 @@ export class TestClockImpl implements TestClock {
|
|
|
313
311
|
/**
|
|
314
312
|
* Returns whether all descendants of this fiber are done or suspended.
|
|
315
313
|
*/
|
|
316
|
-
suspended(): Effect.Effect<
|
|
314
|
+
suspended(): Effect.Effect<HashMap.HashMap<FiberId.FiberId, FiberStatus.FiberStatus>, void> {
|
|
317
315
|
return pipe(
|
|
318
316
|
this.freeze(),
|
|
319
317
|
core.zip(this.live.provide(pipe(effect.sleep(Duration.millis(5)), core.zipRight(this.freeze())))),
|
|
@@ -327,7 +325,7 @@ export class TestClockImpl implements TestClock {
|
|
|
327
325
|
/**
|
|
328
326
|
* Polls until all descendants of this fiber are done or suspended.
|
|
329
327
|
*/
|
|
330
|
-
awaitSuspended(): Effect.Effect<
|
|
328
|
+
awaitSuspended(): Effect.Effect<void> {
|
|
331
329
|
return pipe(
|
|
332
330
|
this.suspendedWarningStart(),
|
|
333
331
|
core.zipRight(
|
|
@@ -348,7 +346,7 @@ export class TestClockImpl implements TestClock {
|
|
|
348
346
|
* Forks a fiber that will display a warning message if a test is advancing
|
|
349
347
|
* the `TestClock` but a fiber is not suspending.
|
|
350
348
|
*/
|
|
351
|
-
suspendedWarningStart(): Effect.Effect<
|
|
349
|
+
suspendedWarningStart(): Effect.Effect<void> {
|
|
352
350
|
return synchronized.updateSomeEffect(this.suspendedWarningState, (suspendedWarningData) => {
|
|
353
351
|
if (SuspendedWarningData.isStart(suspendedWarningData)) {
|
|
354
352
|
return Option.some(
|
|
@@ -373,7 +371,7 @@ export class TestClockImpl implements TestClock {
|
|
|
373
371
|
* Cancels the warning message that is displayed if a test is advancing the
|
|
374
372
|
* `TestClock` but a fiber is not suspending.
|
|
375
373
|
*/
|
|
376
|
-
suspendedWarningDone(): Effect.Effect<
|
|
374
|
+
suspendedWarningDone(): Effect.Effect<void> {
|
|
377
375
|
return synchronized.updateSomeEffect(this.suspendedWarningState, (suspendedWarningData) => {
|
|
378
376
|
if (SuspendedWarningData.isPending(suspendedWarningData)) {
|
|
379
377
|
return Option.some(pipe(core.interruptFiber(suspendedWarningData.fiber), core.as(SuspendedWarningData.start)))
|
|
@@ -385,7 +383,7 @@ export class TestClockImpl implements TestClock {
|
|
|
385
383
|
* Runs all effects scheduled to occur on or before the specified instant,
|
|
386
384
|
* which may depend on the current time, in order.
|
|
387
385
|
*/
|
|
388
|
-
run(f: (instant: number) => number): Effect.Effect<
|
|
386
|
+
run(f: (instant: number) => number): Effect.Effect<void> {
|
|
389
387
|
return pipe(
|
|
390
388
|
this.awaitSuspended(),
|
|
391
389
|
core.zipRight(pipe(
|
|
@@ -393,7 +391,7 @@ export class TestClockImpl implements TestClock {
|
|
|
393
391
|
const end = f(data.instant)
|
|
394
392
|
const sorted = pipe(
|
|
395
393
|
data.sleeps,
|
|
396
|
-
Chunk.sort<readonly [number, Deferred.Deferred<
|
|
394
|
+
Chunk.sort<readonly [number, Deferred.Deferred<void>]>(
|
|
397
395
|
pipe(number.Order, Order.mapInput((_) => _[0]))
|
|
398
396
|
)
|
|
399
397
|
)
|
|
@@ -431,7 +429,7 @@ export class TestClockImpl implements TestClock {
|
|
|
431
429
|
/**
|
|
432
430
|
* @since 2.0.0
|
|
433
431
|
*/
|
|
434
|
-
export const live = (data: Data): Layer.Layer<Annotations.TestAnnotations | Live.TestLive
|
|
432
|
+
export const live = (data: Data): Layer.Layer<TestClock, never, Annotations.TestAnnotations | Live.TestLive> =>
|
|
435
433
|
layer.scoped(
|
|
436
434
|
TestClock,
|
|
437
435
|
effect.gen(function*($) {
|
|
@@ -452,7 +450,7 @@ export const live = (data: Data): Layer.Layer<Annotations.TestAnnotations | Live
|
|
|
452
450
|
/**
|
|
453
451
|
* @since 2.0.0
|
|
454
452
|
*/
|
|
455
|
-
export const defaultTestClock: Layer.Layer<Annotations.TestAnnotations | Live.TestLive
|
|
453
|
+
export const defaultTestClock: Layer.Layer<TestClock, never, Annotations.TestAnnotations | Live.TestLive> = live(
|
|
456
454
|
makeData(new Date(0).getTime(), Chunk.empty())
|
|
457
455
|
)
|
|
458
456
|
|
|
@@ -463,7 +461,7 @@ export const defaultTestClock: Layer.Layer<Annotations.TestAnnotations | Live.Te
|
|
|
463
461
|
*
|
|
464
462
|
* @since 2.0.0
|
|
465
463
|
*/
|
|
466
|
-
export const adjust = (durationInput: Duration.DurationInput): Effect.Effect<
|
|
464
|
+
export const adjust = (durationInput: Duration.DurationInput): Effect.Effect<void> => {
|
|
467
465
|
const duration = Duration.decode(durationInput)
|
|
468
466
|
return testClockWith((testClock) => testClock.adjust(duration))
|
|
469
467
|
}
|
|
@@ -472,8 +470,8 @@ export const adjust = (durationInput: Duration.DurationInput): Effect.Effect<nev
|
|
|
472
470
|
* @since 2.0.0
|
|
473
471
|
*/
|
|
474
472
|
export const adjustWith = dual<
|
|
475
|
-
(duration: Duration.DurationInput) => <
|
|
476
|
-
<
|
|
473
|
+
(duration: Duration.DurationInput) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
|
|
474
|
+
<A, E, R>(effect: Effect.Effect<A, E, R>, duration: Duration.DurationInput) => Effect.Effect<A, E, R>
|
|
477
475
|
>(2, (effect, durationInput) => {
|
|
478
476
|
const duration = Duration.decode(durationInput)
|
|
479
477
|
return testClockWith((testClock) => testClock.adjustWith(duration)(effect))
|
|
@@ -486,8 +484,7 @@ export const adjustWith = dual<
|
|
|
486
484
|
*
|
|
487
485
|
* @since 2.0.0
|
|
488
486
|
*/
|
|
489
|
-
export const save = (): Effect.Effect<
|
|
490
|
-
testClockWith((testClock) => testClock.save)
|
|
487
|
+
export const save = (): Effect.Effect<Effect.Effect<void>> => testClockWith((testClock) => testClock.save)
|
|
491
488
|
|
|
492
489
|
/**
|
|
493
490
|
* Accesses a `TestClock` instance in the context and sets the clock time
|
|
@@ -496,7 +493,7 @@ export const save = (): Effect.Effect<never, never, Effect.Effect<never, never,
|
|
|
496
493
|
*
|
|
497
494
|
* @since 2.0.0
|
|
498
495
|
*/
|
|
499
|
-
export const setTime = (instant: number): Effect.Effect<
|
|
496
|
+
export const setTime = (instant: number): Effect.Effect<void> =>
|
|
500
497
|
testClockWith((testClock) => testClock.setTime(instant))
|
|
501
498
|
|
|
502
499
|
/**
|
|
@@ -506,7 +503,7 @@ export const setTime = (instant: number): Effect.Effect<never, never, void> =>
|
|
|
506
503
|
*
|
|
507
504
|
* @since 2.0.0
|
|
508
505
|
*/
|
|
509
|
-
export const sleep = (durationInput: Duration.DurationInput): Effect.Effect<
|
|
506
|
+
export const sleep = (durationInput: Duration.DurationInput): Effect.Effect<void> => {
|
|
510
507
|
const duration = Duration.decode(durationInput)
|
|
511
508
|
return testClockWith((testClock) => testClock.sleep(duration))
|
|
512
509
|
}
|
|
@@ -517,15 +514,14 @@ export const sleep = (durationInput: Duration.DurationInput): Effect.Effect<neve
|
|
|
517
514
|
*
|
|
518
515
|
* @since 2.0.0
|
|
519
516
|
*/
|
|
520
|
-
export const sleeps = (): Effect.Effect<
|
|
521
|
-
testClockWith((testClock) => testClock.sleeps)
|
|
517
|
+
export const sleeps = (): Effect.Effect<Chunk.Chunk<number>> => testClockWith((testClock) => testClock.sleeps)
|
|
522
518
|
|
|
523
519
|
/**
|
|
524
520
|
* Retrieves the `TestClock` service for this test.
|
|
525
521
|
*
|
|
526
522
|
* @since 2.0.0
|
|
527
523
|
*/
|
|
528
|
-
export const testClock = (): Effect.Effect<
|
|
524
|
+
export const testClock = (): Effect.Effect<TestClock> => testClockWith(core.succeed)
|
|
529
525
|
|
|
530
526
|
/**
|
|
531
527
|
* Retrieves the `TestClock` service for this test and uses it to run the
|
|
@@ -533,7 +529,7 @@ export const testClock = (): Effect.Effect<never, never, TestClock> => testClock
|
|
|
533
529
|
*
|
|
534
530
|
* @since 2.0.0
|
|
535
531
|
*/
|
|
536
|
-
export const testClockWith = <
|
|
532
|
+
export const testClockWith = <A, E, R>(f: (testClock: TestClock) => Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
|
537
533
|
core.fiberRefGetWith(
|
|
538
534
|
defaultServices.currentServices,
|
|
539
535
|
(services) => f(pipe(services, Context.get(clock.clockTag)) as TestClock)
|
|
@@ -545,6 +541,4 @@ export const testClockWith = <R, E, A>(f: (testClock: TestClock) => Effect.Effec
|
|
|
545
541
|
*
|
|
546
542
|
* @since 2.0.0
|
|
547
543
|
*/
|
|
548
|
-
export const currentTimeMillis: Effect.Effect<
|
|
549
|
-
testClock.currentTimeMillis
|
|
550
|
-
)
|
|
544
|
+
export const currentTimeMillis: Effect.Effect<number> = testClockWith((testClock) => testClock.currentTimeMillis)
|
package/src/TestConfig.ts
CHANGED
|
@@ -34,9 +34,7 @@ export interface TestConfig {
|
|
|
34
34
|
/**
|
|
35
35
|
* @since 2.0.0
|
|
36
36
|
*/
|
|
37
|
-
export const TestConfig: Context.Tag<TestConfig, TestConfig> = Context.
|
|
38
|
-
Symbol.for("effect/TestConfig")
|
|
39
|
-
)
|
|
37
|
+
export const TestConfig: Context.Tag<TestConfig, TestConfig> = Context.GenericTag<TestConfig>("effect/TestConfig")
|
|
40
38
|
|
|
41
39
|
/**
|
|
42
40
|
* @since 2.0.0
|
package/src/TestContext.ts
CHANGED
|
@@ -10,7 +10,7 @@ import * as TestClock from "./TestClock.js"
|
|
|
10
10
|
import * as TestServices from "./TestServices.js"
|
|
11
11
|
|
|
12
12
|
/** @internal */
|
|
13
|
-
export const live: Layer.Layer<
|
|
13
|
+
export const live: Layer.Layer<TestServices.TestServices, never, DefaultServices.DefaultServices> = pipe(
|
|
14
14
|
TestServices.annotationsLayer(),
|
|
15
15
|
layer.merge(TestServices.liveLayer()),
|
|
16
16
|
layer.merge(TestServices.sizedLayer(100)),
|
|
@@ -26,11 +26,11 @@ export const live: Layer.Layer<DefaultServices.DefaultServices, never, TestServi
|
|
|
26
26
|
/**
|
|
27
27
|
* @since 2.0.0
|
|
28
28
|
*/
|
|
29
|
-
export const LiveContext: Layer.Layer<
|
|
29
|
+
export const LiveContext: Layer.Layer<DefaultServices.DefaultServices> = layer.syncContext(() =>
|
|
30
30
|
defaultServices.liveServices
|
|
31
31
|
)
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* @since 2.0.0
|
|
35
35
|
*/
|
|
36
|
-
export const TestContext: Layer.Layer<
|
|
36
|
+
export const TestContext: Layer.Layer<TestServices.TestServices> = layer.provideMerge(live, LiveContext)
|
package/src/TestLive.ts
CHANGED
|
@@ -27,21 +27,19 @@ export type TestLiveTypeId = typeof TestLiveTypeId
|
|
|
27
27
|
*/
|
|
28
28
|
export interface TestLive {
|
|
29
29
|
readonly [TestLiveTypeId]: TestLiveTypeId
|
|
30
|
-
provide<
|
|
30
|
+
provide<A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
34
|
* @since 2.0.0
|
|
35
35
|
*/
|
|
36
|
-
export const TestLive: Context.Tag<TestLive, TestLive> = Context.
|
|
37
|
-
Symbol.for("effect/TestLive")
|
|
38
|
-
)
|
|
36
|
+
export const TestLive: Context.Tag<TestLive, TestLive> = Context.GenericTag<TestLive>("effect/TestLive")
|
|
39
37
|
|
|
40
38
|
/** @internal */
|
|
41
39
|
class LiveImpl implements TestLive {
|
|
42
40
|
readonly [TestLiveTypeId]: TestLiveTypeId = TestLiveTypeId
|
|
43
41
|
constructor(readonly services: Context.Context<DefaultServices.DefaultServices>) {}
|
|
44
|
-
provide<
|
|
42
|
+
provide<A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> {
|
|
45
43
|
return core.fiberRefLocallyWith(
|
|
46
44
|
defaultServices.currentServices,
|
|
47
45
|
Context.merge(this.services)
|