effect 2.2.5 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RateLimiter/package.json +6 -0
- package/dist/cjs/Cause.js +14 -1
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/Clock.js.map +1 -1
- package/dist/cjs/Console.js.map +1 -1
- package/dist/cjs/Context.js +23 -25
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Data.js +3 -3
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Deferred.js +1 -1
- package/dist/cjs/Deferred.js.map +1 -1
- package/dist/cjs/Effect.js +9 -9
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Effectable.js.map +1 -1
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Exit.js +2 -2
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/FiberMap.js +3 -3
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/FiberRefs.js.map +1 -1
- package/dist/cjs/FiberSet.js +3 -3
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/GroupBy.js.map +1 -1
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/LogLevel.js.map +1 -1
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/Number.js +20 -1
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Pool.js.map +1 -1
- package/dist/cjs/PubSub.js.map +1 -1
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/Random.js.map +1 -1
- package/dist/cjs/RateLimiter.js +38 -0
- package/dist/cjs/RateLimiter.js.map +1 -0
- package/dist/cjs/ReadonlyRecord.js +45 -9
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/Ref.js.map +1 -1
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/cjs/Runtime.js +1 -4
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/RuntimeFlags.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/Scope.js.map +1 -1
- package/dist/cjs/ScopedRef.js.map +1 -1
- package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/Supervisor.js.map +1 -1
- package/dist/cjs/SynchronizedRef.js.map +1 -1
- package/dist/cjs/TArray.js.map +1 -1
- package/dist/cjs/TDeferred.js.map +1 -1
- package/dist/cjs/TMap.js.map +1 -1
- package/dist/cjs/TPriorityQueue.js.map +1 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TQueue.js.map +1 -1
- package/dist/cjs/TRandom.js.map +1 -1
- package/dist/cjs/TReentrantLock.js.map +1 -1
- package/dist/cjs/TRef.js.map +1 -1
- package/dist/cjs/TSemaphore.js.map +1 -1
- package/dist/cjs/TSet.js.map +1 -1
- package/dist/cjs/Take.js +6 -6
- package/dist/cjs/Take.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +10 -13
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestAnnotations.js +1 -1
- package/dist/cjs/TestAnnotations.js.map +1 -1
- package/dist/cjs/TestClock.js +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/TestConfig.js +1 -1
- package/dist/cjs/TestConfig.js.map +1 -1
- package/dist/cjs/TestContext.js.map +1 -1
- package/dist/cjs/TestLive.js +1 -1
- package/dist/cjs/TestLive.js.map +1 -1
- package/dist/cjs/TestServices.js.map +1 -1
- package/dist/cjs/TestSized.js +1 -1
- package/dist/cjs/TestSized.js.map +1 -1
- package/dist/cjs/Utils.js +0 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/mergeDecision.js +2 -6
- package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/internal/channel.js +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +2 -4
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/console.js.map +1 -1
- package/dist/cjs/internal/context.js +31 -22
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +13 -27
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core-stream.js.map +1 -1
- package/dist/cjs/internal/core.js +61 -130
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/defaultServices/console.js +1 -1
- package/dist/cjs/internal/defaultServices/console.js.map +1 -1
- package/dist/cjs/internal/defaultServices.js.map +1 -1
- package/dist/cjs/internal/deferred.js.map +1 -1
- package/dist/cjs/internal/differ/contextPatch.js +9 -9
- package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +7 -10
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +4 -4
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/fiber.js +2 -6
- package/dist/cjs/internal/fiber.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +10 -19
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer/circular.js.map +1 -1
- package/dist/cjs/internal/layer.js +3 -3
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logSpan.js +3 -5
- package/dist/cjs/internal/logSpan.js.map +1 -1
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +2 -6
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/query.js.map +1 -1
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/random.js +1 -1
- package/dist/cjs/internal/random.js.map +1 -1
- package/dist/cjs/internal/rateLimiter.js +44 -0
- package/dist/cjs/internal/rateLimiter.js.map +1 -0
- package/dist/cjs/internal/ref.js.map +1 -1
- package/dist/cjs/internal/reloadable.js +1 -9
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/runtime.js +0 -1
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/scopedCache.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/sink.js +7 -7
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tExit.js +2 -2
- package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stm/tArray.js.map +1 -1
- package/dist/cjs/internal/stm/tDeferred.js +4 -2
- package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
- package/dist/cjs/internal/stm/tMap.js.map +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tRandom.js +1 -1
- package/dist/cjs/internal/stm/tRandom.js.map +1 -1
- package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/cjs/internal/stm/tRef.js.map +1 -1
- package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
- package/dist/cjs/internal/stm/tSet.js.map +1 -1
- package/dist/cjs/internal/stream/debounceState.js.map +1 -1
- package/dist/cjs/internal/stream/handoff.js.map +1 -1
- package/dist/cjs/internal/stream/handoffSignal.js.map +1 -1
- package/dist/cjs/internal/stream/pull.js.map +1 -1
- package/dist/cjs/internal/stream.js +0 -2
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/supervisor.js.map +1 -1
- package/dist/cjs/internal/take.js +2 -2
- package/dist/cjs/internal/take.js.map +1 -1
- package/dist/cjs/internal/testing/sleep.js.map +1 -1
- package/dist/cjs/internal/tracer.js +2 -2
- package/dist/cjs/internal/tracer.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Cache.d.ts +20 -20
- package/dist/dts/Cache.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +33 -5
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +197 -194
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Clock.d.ts +7 -7
- package/dist/dts/Clock.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +1 -1
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/ConfigProvider.d.ts +6 -6
- package/dist/dts/ConfigProvider.d.ts.map +1 -1
- package/dist/dts/Console.d.ts +43 -43
- package/dist/dts/Console.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +44 -29
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +38 -57
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Deferred.d.ts +36 -36
- package/dist/dts/Deferred.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +732 -729
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Effectable.d.ts +8 -8
- package/dist/dts/Effectable.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +2 -3
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +74 -74
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/Fiber.d.ts +75 -75
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +22 -22
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +28 -28
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/FiberRefs.d.ts +1 -1
- package/dist/dts/FiberRefs.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +16 -16
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +6 -6
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/KeyedPool.d.ts +22 -22
- package/dist/dts/KeyedPool.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +126 -126
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/LogLevel.d.ts +2 -2
- package/dist/dts/LogLevel.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +14 -14
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +7 -7
- package/dist/dts/MergeState.d.ts +13 -13
- package/dist/dts/MergeState.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +32 -32
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +6 -6
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +15 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +2 -3
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Pool.d.ts +15 -16
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/PubSub.d.ts +18 -18
- package/dist/dts/PubSub.d.ts.map +1 -1
- package/dist/dts/Queue.d.ts +40 -40
- package/dist/dts/Queue.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +13 -13
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/RateLimiter.d.ts +31 -0
- package/dist/dts/RateLimiter.d.ts.map +1 -0
- package/dist/dts/ReadonlyArray.d.ts +3 -3
- package/dist/dts/ReadonlyRecord.d.ts +37 -8
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/Ref.d.ts +25 -25
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +9 -9
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +27 -28
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestBlock.d.ts +3 -3
- package/dist/dts/RequestBlock.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +16 -16
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +7 -7
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +13 -16
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/RuntimeFlags.d.ts +10 -10
- package/dist/dts/RuntimeFlags.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +303 -303
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +19 -19
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/Scope.d.ts +10 -10
- package/dist/dts/Scope.d.ts.map +1 -1
- package/dist/dts/ScopedCache.d.ts +14 -14
- package/dist/dts/ScopedCache.d.ts.map +1 -1
- package/dist/dts/ScopedRef.d.ts +5 -5
- package/dist/dts/ScopedRef.d.ts.map +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts +8 -8
- package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +214 -205
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +595 -592
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/StreamEmit.d.ts +5 -5
- package/dist/dts/StreamEmit.d.ts.map +1 -1
- package/dist/dts/Streamable.d.ts +2 -2
- package/dist/dts/Streamable.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +41 -41
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/Supervisor.d.ts +17 -17
- package/dist/dts/Supervisor.d.ts.map +1 -1
- package/dist/dts/SynchronizedRef.d.ts +41 -41
- package/dist/dts/SynchronizedRef.d.ts.map +1 -1
- package/dist/dts/TArray.d.ts +72 -72
- package/dist/dts/TArray.d.ts.map +1 -1
- package/dist/dts/TDeferred.d.ts +12 -12
- package/dist/dts/TDeferred.d.ts.map +1 -1
- package/dist/dts/TMap.d.ts +67 -67
- package/dist/dts/TMap.d.ts.map +1 -1
- package/dist/dts/TPriorityQueue.d.ts +23 -23
- package/dist/dts/TPriorityQueue.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +15 -15
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +40 -40
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TRandom.d.ts +13 -13
- package/dist/dts/TRandom.d.ts.map +1 -1
- package/dist/dts/TReentrantLock.d.ts +21 -21
- package/dist/dts/TReentrantLock.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +25 -25
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSemaphore.d.ts +15 -15
- package/dist/dts/TSemaphore.d.ts.map +1 -1
- package/dist/dts/TSet.d.ts +49 -49
- package/dist/dts/TSet.d.ts.map +1 -1
- package/dist/dts/Take.d.ts +41 -41
- package/dist/dts/Take.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts +1 -3
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestAnnotations.d.ts +3 -3
- package/dist/dts/TestAnnotations.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts +18 -18
- package/dist/dts/TestClock.d.ts.map +1 -1
- package/dist/dts/TestConfig.d.ts.map +1 -1
- package/dist/dts/TestContext.d.ts +2 -2
- package/dist/dts/TestContext.d.ts.map +1 -1
- package/dist/dts/TestLive.d.ts +1 -1
- package/dist/dts/TestLive.d.ts.map +1 -1
- package/dist/dts/TestServices.d.ts +31 -31
- package/dist/dts/TestServices.d.ts.map +1 -1
- package/dist/dts/TestSized.d.ts +2 -2
- package/dist/dts/TestSized.d.ts.map +1 -1
- package/dist/dts/Tracer.d.ts +1 -1
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/index.d.ts +12 -2
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/channel/channelExecutor.d.ts +1 -1
- package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -1
- package/dist/dts/internal/core-stream.d.ts +1 -1
- package/dist/dts/internal/core-stream.d.ts.map +1 -1
- package/dist/dts/internal/rateLimiter.d.ts +2 -0
- package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
- package/dist/dts/internal/stm/stm.d.ts +6 -6
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/Cause.js +13 -0
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Clock.js.map +1 -1
- package/dist/esm/Console.js.map +1 -1
- package/dist/esm/Context.js +22 -24
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Data.js +4 -5
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Deferred.js +1 -1
- package/dist/esm/Deferred.js.map +1 -1
- package/dist/esm/Effect.js +9 -9
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Effectable.js.map +1 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Exit.js +2 -2
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/FiberMap.js +3 -3
- package/dist/esm/FiberRef.js.map +1 -1
- package/dist/esm/FiberRefs.js.map +1 -1
- package/dist/esm/FiberSet.js +3 -3
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/GroupBy.js.map +1 -1
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/LogLevel.js.map +1 -1
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/Number.js +18 -0
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Pool.js.map +1 -1
- package/dist/esm/PubSub.js.map +1 -1
- package/dist/esm/Queue.js.map +1 -1
- package/dist/esm/Random.js.map +1 -1
- package/dist/esm/RateLimiter.js +7 -0
- package/dist/esm/RateLimiter.js.map +1 -0
- package/dist/esm/ReadonlyRecord.js +44 -8
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/Ref.js.map +1 -1
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Resource.js.map +1 -1
- package/dist/esm/Runtime.js +1 -4
- package/dist/esm/Runtime.js.map +1 -1
- package/dist/esm/RuntimeFlags.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/Scope.js.map +1 -1
- package/dist/esm/ScopedRef.js.map +1 -1
- package/dist/esm/SingleProducerAsyncInput.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/Supervisor.js.map +1 -1
- package/dist/esm/SynchronizedRef.js.map +1 -1
- package/dist/esm/TArray.js.map +1 -1
- package/dist/esm/TDeferred.js.map +1 -1
- package/dist/esm/TMap.js.map +1 -1
- package/dist/esm/TPriorityQueue.js.map +1 -1
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TQueue.js.map +1 -1
- package/dist/esm/TRandom.js.map +1 -1
- package/dist/esm/TReentrantLock.js.map +1 -1
- package/dist/esm/TRef.js.map +1 -1
- package/dist/esm/TSemaphore.js.map +1 -1
- package/dist/esm/TSet.js.map +1 -1
- package/dist/esm/Take.js +6 -6
- package/dist/esm/Take.js.map +1 -1
- package/dist/esm/TestAnnotation.js +10 -13
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/TestAnnotations.js +1 -1
- package/dist/esm/TestAnnotations.js.map +1 -1
- package/dist/esm/TestClock.js +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/TestConfig.js +1 -1
- package/dist/esm/TestConfig.js.map +1 -1
- package/dist/esm/TestContext.js.map +1 -1
- package/dist/esm/TestLive.js +1 -1
- package/dist/esm/TestLive.js.map +1 -1
- package/dist/esm/TestServices.js.map +1 -1
- package/dist/esm/TestSized.js +1 -1
- package/dist/esm/TestSized.js.map +1 -1
- package/dist/esm/Utils.js +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/index.js +12 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel/mergeDecision.js +2 -6
- package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
- package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/esm/internal/channel.js +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/clock.js +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/configProvider.js +2 -4
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/console.js.map +1 -1
- package/dist/esm/internal/context.js +28 -20
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/core-effect.js +12 -26
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core-stream.js.map +1 -1
- package/dist/esm/internal/core.js +57 -127
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/data.js.map +1 -1
- package/dist/esm/internal/defaultServices/console.js +1 -1
- package/dist/esm/internal/defaultServices/console.js.map +1 -1
- package/dist/esm/internal/defaultServices.js.map +1 -1
- package/dist/esm/internal/deferred.js.map +1 -1
- package/dist/esm/internal/differ/contextPatch.js +9 -9
- package/dist/esm/internal/differ/contextPatch.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +5 -8
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/effectable.js +4 -4
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/fiber.js +2 -6
- package/dist/esm/internal/fiber.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +10 -19
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer/circular.js.map +1 -1
- package/dist/esm/internal/layer.js +3 -3
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/logSpan.js +3 -5
- package/dist/esm/internal/logSpan.js.map +1 -1
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/pubsub.js +1 -5
- package/dist/esm/internal/pubsub.js.map +1 -1
- package/dist/esm/internal/query.js.map +1 -1
- package/dist/esm/internal/queue.js.map +1 -1
- package/dist/esm/internal/random.js +1 -1
- package/dist/esm/internal/random.js.map +1 -1
- package/dist/esm/internal/rateLimiter.js +12 -0
- package/dist/esm/internal/rateLimiter.js.map +1 -0
- package/dist/esm/internal/ref.js.map +1 -1
- package/dist/esm/internal/reloadable.js +1 -9
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/runtime.js +0 -1
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/scopedCache.js.map +1 -1
- package/dist/esm/internal/scopedRef.js.map +1 -1
- package/dist/esm/internal/sink.js +7 -7
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
- package/dist/esm/internal/stm/stm/tExit.js +2 -2
- package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
- package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -1
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stm/tArray.js.map +1 -1
- package/dist/esm/internal/stm/tDeferred.js +4 -2
- package/dist/esm/internal/stm/tDeferred.js.map +1 -1
- package/dist/esm/internal/stm/tMap.js.map +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tRandom.js +1 -1
- package/dist/esm/internal/stm/tRandom.js.map +1 -1
- package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/esm/internal/stm/tRef.js.map +1 -1
- package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
- package/dist/esm/internal/stm/tSet.js.map +1 -1
- package/dist/esm/internal/stream/debounceState.js.map +1 -1
- package/dist/esm/internal/stream/handoff.js.map +1 -1
- package/dist/esm/internal/stream/handoffSignal.js.map +1 -1
- package/dist/esm/internal/stream/pull.js.map +1 -1
- package/dist/esm/internal/stream.js +0 -2
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/subscriptionRef.js.map +1 -1
- package/dist/esm/internal/supervisor.js.map +1 -1
- package/dist/esm/internal/take.js +2 -2
- package/dist/esm/internal/take.js.map +1 -1
- package/dist/esm/internal/testing/sleep.js.map +1 -1
- package/dist/esm/internal/tracer.js +2 -2
- package/dist/esm/internal/tracer.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +9 -1
- package/src/Cache.ts +20 -20
- package/src/Cause.ts +37 -13
- package/src/Channel.ts +802 -794
- package/src/Clock.ts +7 -7
- package/src/Config.ts +1 -1
- package/src/ConfigProvider.ts +6 -6
- package/src/Console.ts +44 -48
- package/src/Context.ts +52 -30
- package/src/Data.ts +38 -61
- package/src/Deferred.ts +39 -41
- package/src/Effect.ts +1187 -1206
- package/src/Effectable.ts +8 -8
- package/src/Either.ts +2 -3
- package/src/Exit.ts +88 -105
- package/src/Fiber.ts +77 -83
- package/src/FiberMap.ts +77 -77
- package/src/FiberRef.ts +28 -28
- package/src/FiberRefs.ts +1 -1
- package/src/FiberSet.ts +61 -62
- package/src/GroupBy.ts +8 -12
- package/src/KeyedPool.ts +22 -22
- package/src/Layer.ts +187 -181
- package/src/LogLevel.ts +7 -6
- package/src/Logger.ts +18 -18
- package/src/MergeDecision.ts +7 -7
- package/src/MergeState.ts +16 -16
- package/src/Metric.ts +39 -39
- package/src/MetricPolling.ts +6 -6
- package/src/Number.ts +19 -0
- package/src/Option.ts +2 -3
- package/src/Pool.ts +15 -16
- package/src/PubSub.ts +18 -18
- package/src/Queue.ts +43 -46
- package/src/Random.ts +13 -15
- package/src/RateLimiter.ts +37 -0
- package/src/ReadonlyRecord.ts +49 -8
- package/src/Ref.ts +25 -25
- package/src/Reloadable.ts +10 -10
- package/src/Request.ts +31 -31
- package/src/RequestBlock.ts +3 -3
- package/src/RequestResolver.ts +21 -21
- package/src/Resource.ts +13 -13
- package/src/Runtime.ts +16 -19
- package/src/RuntimeFlags.ts +10 -10
- package/src/STM.ts +361 -362
- package/src/Schedule.ts +19 -19
- package/src/Scheduler.ts +2 -2
- package/src/Scope.ts +14 -15
- package/src/ScopedCache.ts +14 -14
- package/src/ScopedRef.ts +7 -7
- package/src/SingleProducerAsyncInput.ts +8 -9
- package/src/Sink.ts +357 -381
- package/src/Stream.ts +935 -1033
- package/src/StreamEmit.ts +5 -5
- package/src/Streamable.ts +2 -2
- package/src/SubscriptionRef.ts +51 -51
- package/src/Supervisor.ts +26 -26
- package/src/SynchronizedRef.ts +44 -44
- package/src/TArray.ts +74 -74
- package/src/TDeferred.ts +14 -14
- package/src/TMap.ts +72 -72
- package/src/TPriorityQueue.ts +23 -24
- package/src/TPubSub.ts +15 -15
- package/src/TQueue.ts +40 -40
- package/src/TRandom.ts +13 -13
- package/src/TReentrantLock.ts +21 -21
- package/src/TRef.ts +25 -25
- package/src/TSemaphore.ts +15 -15
- package/src/TSet.ts +49 -49
- package/src/Take.ts +51 -51
- package/src/TestAnnotation.ts +6 -17
- package/src/TestAnnotations.ts +7 -9
- package/src/TestClock.ts +39 -45
- package/src/TestConfig.ts +1 -3
- package/src/TestContext.ts +3 -3
- package/src/TestLive.ts +3 -5
- package/src/TestServices.ts +45 -47
- package/src/TestSized.ts +5 -5
- package/src/Tracer.ts +1 -1
- package/src/Utils.ts +8 -10
- package/src/index.ts +13 -2
- package/src/internal/blockedRequests.ts +2 -2
- package/src/internal/cache.ts +38 -38
- package/src/internal/channel/channelExecutor.ts +65 -73
- package/src/internal/channel/channelState.ts +11 -11
- package/src/internal/channel/continuation.ts +10 -10
- package/src/internal/channel/mergeDecision.ts +14 -16
- package/src/internal/channel/mergeState.ts +12 -12
- package/src/internal/channel/singleProducerAsyncInput.ts +15 -17
- package/src/internal/channel/subexecutor.ts +7 -7
- package/src/internal/channel.ts +901 -980
- package/src/internal/clock.ts +6 -6
- package/src/internal/concurrency.ts +9 -9
- package/src/internal/configProvider.ts +29 -36
- package/src/internal/console.ts +12 -12
- package/src/internal/context.ts +32 -23
- package/src/internal/core-effect.ts +655 -616
- package/src/internal/core-stream.ts +317 -325
- package/src/internal/core.ts +856 -790
- package/src/internal/data.ts +2 -3
- package/src/internal/dataSource.ts +14 -14
- package/src/internal/defaultServices/console.ts +3 -1
- package/src/internal/defaultServices.ts +21 -21
- package/src/internal/deferred.ts +9 -9
- package/src/internal/differ/contextPatch.ts +17 -17
- package/src/internal/effect/circular.ts +154 -159
- package/src/internal/effectable.ts +7 -7
- package/src/internal/fiber.ts +55 -59
- package/src/internal/fiberRefs.ts +1 -1
- package/src/internal/fiberRuntime.ts +426 -463
- package/src/internal/groupBy.ts +59 -62
- package/src/internal/keyedPool.ts +37 -37
- package/src/internal/layer/circular.ts +37 -37
- package/src/internal/layer.ts +235 -240
- package/src/internal/logSpan.ts +3 -5
- package/src/internal/metric/polling.ts +5 -5
- package/src/internal/metric.ts +54 -55
- package/src/internal/pool.ts +72 -72
- package/src/internal/pubsub.ts +75 -84
- package/src/internal/query.ts +25 -27
- package/src/internal/queue.ts +65 -70
- package/src/internal/random.ts +9 -9
- package/src/internal/rateLimiter.ts +30 -0
- package/src/internal/ref.ts +24 -24
- package/src/internal/reloadable.ts +11 -31
- package/src/internal/request.ts +14 -14
- package/src/internal/resource.ts +8 -8
- package/src/internal/runtime.ts +21 -22
- package/src/internal/schedule.ts +131 -134
- package/src/internal/scopedCache.ts +35 -32
- package/src/internal/scopedRef.ts +14 -14
- package/src/internal/sink.ts +507 -565
- package/src/internal/stm/core.ts +101 -102
- package/src/internal/stm/stm/stmState.ts +10 -10
- package/src/internal/stm/stm/tExit.ts +18 -18
- package/src/internal/stm/stm/tryCommit.ts +5 -5
- package/src/internal/stm/stm.ts +363 -374
- package/src/internal/stm/tArray.ts +92 -92
- package/src/internal/stm/tDeferred.ts +16 -14
- package/src/internal/stm/tMap.ts +83 -84
- package/src/internal/stm/tPriorityQueue.ts +24 -25
- package/src/internal/stm/tPubSub.ts +37 -38
- package/src/internal/stm/tQueue.ts +44 -48
- package/src/internal/stm/tRandom.ts +18 -18
- package/src/internal/stm/tReentrantLock.ts +28 -28
- package/src/internal/stm/tRef.ts +25 -25
- package/src/internal/stm/tSemaphore.ts +16 -16
- package/src/internal/stm/tSet.ts +51 -52
- package/src/internal/stream/debounceState.ts +7 -7
- package/src/internal/stream/emit.ts +4 -4
- package/src/internal/stream/handoff.ts +19 -19
- package/src/internal/stream/handoffSignal.ts +4 -4
- package/src/internal/stream/pull.ts +10 -11
- package/src/internal/stream.ts +1770 -1788
- package/src/internal/subscriptionRef.ts +17 -17
- package/src/internal/supervisor.ts +49 -56
- package/src/internal/synchronizedRef.ts +27 -27
- package/src/internal/take.ts +61 -61
- package/src/internal/testing/sleep.ts +2 -2
- package/src/internal/testing/suspendedWarningData.ts +2 -2
- package/src/internal/testing/warningData.ts +2 -2
- package/src/internal/tracer.ts +2 -6
- package/src/internal/version.ts +1 -1
package/src/internal/clock.ts
CHANGED
|
@@ -14,7 +14,7 @@ const ClockSymbolKey = "effect/Clock"
|
|
|
14
14
|
export const ClockTypeId: Clock.ClockTypeId = Symbol.for(ClockSymbolKey) as Clock.ClockTypeId
|
|
15
15
|
|
|
16
16
|
/** @internal */
|
|
17
|
-
export const clockTag: Context.Tag<Clock.Clock, Clock.Clock> = Context.
|
|
17
|
+
export const clockTag: Context.Tag<Clock.Clock, Clock.Clock> = Context.GenericTag("effect/Clock")
|
|
18
18
|
|
|
19
19
|
/** @internal */
|
|
20
20
|
export const MAX_TIMER_MILLIS = 2 ** 31 - 1
|
|
@@ -77,16 +77,16 @@ class ClockImpl implements Clock.Clock {
|
|
|
77
77
|
return processOrPerformanceNow()
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
currentTimeMillis: Effect.Effect<
|
|
80
|
+
currentTimeMillis: Effect.Effect<number> = core.sync(() => this.unsafeCurrentTimeMillis())
|
|
81
81
|
|
|
82
|
-
currentTimeNanos: Effect.Effect<
|
|
82
|
+
currentTimeNanos: Effect.Effect<bigint> = core.sync(() => this.unsafeCurrentTimeNanos())
|
|
83
83
|
|
|
84
|
-
scheduler(): Effect.Effect<
|
|
84
|
+
scheduler(): Effect.Effect<Clock.ClockScheduler> {
|
|
85
85
|
return core.succeed(globalClockScheduler)
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
sleep(duration: Duration.Duration): Effect.Effect<
|
|
89
|
-
return core.asyncEither<
|
|
88
|
+
sleep(duration: Duration.Duration): Effect.Effect<void> {
|
|
89
|
+
return core.asyncEither<void>((cb) => {
|
|
90
90
|
const canceler = globalClockScheduler.unsafeSchedule(() => cb(core.unit), duration)
|
|
91
91
|
return Either.left(core.asUnit(core.sync(canceler)))
|
|
92
92
|
})
|
|
@@ -3,12 +3,12 @@ import type { Concurrency } from "../Types.js"
|
|
|
3
3
|
import * as core from "./core.js"
|
|
4
4
|
|
|
5
5
|
/** @internal */
|
|
6
|
-
export const match = <
|
|
6
|
+
export const match = <A, E, R>(
|
|
7
7
|
concurrency: Concurrency | undefined,
|
|
8
|
-
sequential: () => Effect<
|
|
9
|
-
unbounded: () => Effect<
|
|
10
|
-
bounded: (limit: number) => Effect<
|
|
11
|
-
): Effect<
|
|
8
|
+
sequential: () => Effect<A, E, R>,
|
|
9
|
+
unbounded: () => Effect<A, E, R>,
|
|
10
|
+
bounded: (limit: number) => Effect<A, E, R>
|
|
11
|
+
): Effect<A, E, R> => {
|
|
12
12
|
switch (concurrency) {
|
|
13
13
|
case undefined:
|
|
14
14
|
return sequential()
|
|
@@ -30,11 +30,11 @@ export const match = <R, E, A>(
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
/** @internal */
|
|
33
|
-
export const matchSimple = <
|
|
33
|
+
export const matchSimple = <A, E, R>(
|
|
34
34
|
concurrency: Concurrency | undefined,
|
|
35
|
-
sequential: () => Effect<
|
|
36
|
-
concurrent: () => Effect<
|
|
37
|
-
): Effect<
|
|
35
|
+
sequential: () => Effect<A, E, R>,
|
|
36
|
+
concurrent: () => Effect<A, E, R>
|
|
37
|
+
): Effect<A, E, R> => {
|
|
38
38
|
switch (concurrency) {
|
|
39
39
|
case undefined:
|
|
40
40
|
return sequential()
|
|
@@ -33,9 +33,10 @@ export const ConfigProviderTypeId: ConfigProvider.ConfigProviderTypeId = Symbol.
|
|
|
33
33
|
) as ConfigProvider.ConfigProviderTypeId
|
|
34
34
|
|
|
35
35
|
/** @internal */
|
|
36
|
-
export const configProviderTag: Context.Tag<ConfigProvider.ConfigProvider, ConfigProvider.ConfigProvider> = Context
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
export const configProviderTag: Context.Tag<ConfigProvider.ConfigProvider, ConfigProvider.ConfigProvider> = Context
|
|
37
|
+
.GenericTag(
|
|
38
|
+
"effect/ConfigProvider"
|
|
39
|
+
)
|
|
39
40
|
|
|
40
41
|
/** @internal */
|
|
41
42
|
const FlatConfigProviderSymbolKey = "effect/ConfigProviderFlat"
|
|
@@ -48,7 +49,7 @@ export const FlatConfigProviderTypeId: ConfigProvider.FlatConfigProviderTypeId =
|
|
|
48
49
|
/** @internal */
|
|
49
50
|
export const make = (
|
|
50
51
|
options: {
|
|
51
|
-
readonly load: <A>(config: Config.Config<A>) => Effect.Effect<
|
|
52
|
+
readonly load: <A>(config: Config.Config<A>) => Effect.Effect<A, ConfigError.ConfigError>
|
|
52
53
|
readonly flattened: ConfigProvider.ConfigProvider.Flat
|
|
53
54
|
}
|
|
54
55
|
): ConfigProvider.ConfigProvider => ({
|
|
@@ -66,10 +67,10 @@ export const makeFlat = (
|
|
|
66
67
|
path: ReadonlyArray<string>,
|
|
67
68
|
config: Config.Config.Primitive<A>,
|
|
68
69
|
split: boolean
|
|
69
|
-
) => Effect.Effect<
|
|
70
|
+
) => Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
70
71
|
readonly enumerateChildren: (
|
|
71
72
|
path: ReadonlyArray<string>
|
|
72
|
-
) => Effect.Effect<
|
|
73
|
+
) => Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError>
|
|
73
74
|
readonly patch: PathPatch.PathPatch
|
|
74
75
|
}
|
|
75
76
|
): ConfigProvider.ConfigProvider.Flat => ({
|
|
@@ -112,7 +113,7 @@ export const fromEnv = (
|
|
|
112
113
|
path: ReadonlyArray<string>,
|
|
113
114
|
primitive: Config.Config.Primitive<A>,
|
|
114
115
|
split = true
|
|
115
|
-
): Effect.Effect<
|
|
116
|
+
): Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError> => {
|
|
116
117
|
const pathString = makePathString(path)
|
|
117
118
|
const current = getEnv()
|
|
118
119
|
const valueOpt = pathString in current ? Option.some(current[pathString]!) : Option.none()
|
|
@@ -125,7 +126,7 @@ export const fromEnv = (
|
|
|
125
126
|
|
|
126
127
|
const enumerateChildren = (
|
|
127
128
|
path: ReadonlyArray<string>
|
|
128
|
-
): Effect.Effect<
|
|
129
|
+
): Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError> =>
|
|
129
130
|
core.sync(() => {
|
|
130
131
|
const current = getEnv()
|
|
131
132
|
const keys = Object.keys(current)
|
|
@@ -163,7 +164,7 @@ export const fromMap = (
|
|
|
163
164
|
path: ReadonlyArray<string>,
|
|
164
165
|
primitive: Config.Config.Primitive<A>,
|
|
165
166
|
split = true
|
|
166
|
-
): Effect.Effect<
|
|
167
|
+
): Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError> => {
|
|
167
168
|
const pathString = makePathString(path)
|
|
168
169
|
const valueOpt = mapWithIndexSplit.has(pathString) ?
|
|
169
170
|
Option.some(mapWithIndexSplit.get(pathString)!) :
|
|
@@ -176,7 +177,7 @@ export const fromMap = (
|
|
|
176
177
|
}
|
|
177
178
|
const enumerateChildren = (
|
|
178
179
|
path: ReadonlyArray<string>
|
|
179
|
-
): Effect.Effect<
|
|
180
|
+
): Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError> =>
|
|
180
181
|
core.sync(() => {
|
|
181
182
|
const keyPaths = Array.from(mapWithIndexSplit.keys()).map(unmakePathString)
|
|
182
183
|
const filteredKeyPaths = keyPaths.filter((keyPath) => {
|
|
@@ -238,26 +239,21 @@ const fromFlatLoop = <A>(
|
|
|
238
239
|
prefix: ReadonlyArray<string>,
|
|
239
240
|
config: Config.Config<A>,
|
|
240
241
|
split: boolean
|
|
241
|
-
): Effect.Effect<
|
|
242
|
+
): Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError> => {
|
|
242
243
|
const op = config as _config.ConfigPrimitive
|
|
243
244
|
switch (op._tag) {
|
|
244
245
|
case OpCodes.OP_CONSTANT: {
|
|
245
|
-
return core.succeed(ReadonlyArray.of(op.value)) as Effect.Effect<
|
|
246
|
-
never,
|
|
247
|
-
ConfigError.ConfigError,
|
|
248
|
-
ReadonlyArray<A>
|
|
249
|
-
>
|
|
246
|
+
return core.succeed(ReadonlyArray.of(op.value)) as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
250
247
|
}
|
|
251
248
|
case OpCodes.OP_DESCRIBED: {
|
|
252
249
|
return core.suspend(
|
|
253
250
|
() => fromFlatLoop(flat, prefix, op.config, split)
|
|
254
|
-
) as unknown as Effect.Effect<
|
|
251
|
+
) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
255
252
|
}
|
|
256
253
|
case OpCodes.OP_FAIL: {
|
|
257
254
|
return core.fail(configError.MissingData(prefix, op.message)) as Effect.Effect<
|
|
258
|
-
|
|
259
|
-
ConfigError.ConfigError
|
|
260
|
-
ReadonlyArray<A>
|
|
255
|
+
ReadonlyArray<A>,
|
|
256
|
+
ConfigError.ConfigError
|
|
261
257
|
>
|
|
262
258
|
}
|
|
263
259
|
case OpCodes.OP_FALLBACK: {
|
|
@@ -272,13 +268,12 @@ const fromFlatLoop = <A>(
|
|
|
272
268
|
}
|
|
273
269
|
return core.fail(error1)
|
|
274
270
|
})
|
|
275
|
-
) as unknown as Effect.Effect<
|
|
271
|
+
) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
276
272
|
}
|
|
277
273
|
case OpCodes.OP_LAZY: {
|
|
278
274
|
return core.suspend(() => fromFlatLoop(flat, prefix, op.config(), split)) as Effect.Effect<
|
|
279
|
-
|
|
280
|
-
ConfigError.ConfigError
|
|
281
|
-
ReadonlyArray<A>
|
|
275
|
+
ReadonlyArray<A>,
|
|
276
|
+
ConfigError.ConfigError
|
|
282
277
|
>
|
|
283
278
|
}
|
|
284
279
|
case OpCodes.OP_MAP_OR_FAIL: {
|
|
@@ -294,7 +289,7 @@ const fromFlatLoop = <A>(
|
|
|
294
289
|
)
|
|
295
290
|
)
|
|
296
291
|
)
|
|
297
|
-
) as unknown as Effect.Effect<
|
|
292
|
+
) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
298
293
|
}
|
|
299
294
|
case OpCodes.OP_NESTED: {
|
|
300
295
|
return core.suspend(() =>
|
|
@@ -304,7 +299,7 @@ const fromFlatLoop = <A>(
|
|
|
304
299
|
op.config,
|
|
305
300
|
split
|
|
306
301
|
)
|
|
307
|
-
) as unknown as Effect.Effect<
|
|
302
|
+
) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
308
303
|
}
|
|
309
304
|
case OpCodes.OP_PRIMITIVE: {
|
|
310
305
|
return pipe(
|
|
@@ -321,7 +316,7 @@ const fromFlatLoop = <A>(
|
|
|
321
316
|
})
|
|
322
317
|
)
|
|
323
318
|
)
|
|
324
|
-
) as unknown as Effect.Effect<
|
|
319
|
+
) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
325
320
|
}
|
|
326
321
|
case OpCodes.OP_SEQUENCE: {
|
|
327
322
|
return pipe(
|
|
@@ -334,7 +329,7 @@ const fromFlatLoop = <A>(
|
|
|
334
329
|
if (indices.length === 0) {
|
|
335
330
|
return core.suspend(() =>
|
|
336
331
|
core.map(fromFlatLoop(flat, patchedPrefix, op.config, true), ReadonlyArray.of)
|
|
337
|
-
) as unknown as Effect.Effect<
|
|
332
|
+
) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
338
333
|
}
|
|
339
334
|
return pipe(
|
|
340
335
|
core.forEachSequential(
|
|
@@ -348,7 +343,7 @@ const fromFlatLoop = <A>(
|
|
|
348
343
|
}
|
|
349
344
|
return ReadonlyArray.of(flattened)
|
|
350
345
|
})
|
|
351
|
-
) as unknown as Effect.Effect<
|
|
346
|
+
) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
352
347
|
})
|
|
353
348
|
)
|
|
354
349
|
)
|
|
@@ -389,7 +384,7 @@ const fromFlatLoop = <A>(
|
|
|
389
384
|
)
|
|
390
385
|
)
|
|
391
386
|
)
|
|
392
|
-
) as unknown as Effect.Effect<
|
|
387
|
+
) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
393
388
|
}
|
|
394
389
|
case OpCodes.OP_ZIP_WITH: {
|
|
395
390
|
return core.suspend(() =>
|
|
@@ -437,7 +432,7 @@ const fromFlatLoop = <A>(
|
|
|
437
432
|
)
|
|
438
433
|
)
|
|
439
434
|
)
|
|
440
|
-
) as unknown as Effect.Effect<
|
|
435
|
+
) as unknown as Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError>
|
|
441
436
|
}
|
|
442
437
|
}
|
|
443
438
|
}
|
|
@@ -610,7 +605,7 @@ const parsePrimitive = <A>(
|
|
|
610
605
|
primitive: Config.Config.Primitive<A>,
|
|
611
606
|
delimiter: string,
|
|
612
607
|
split: boolean
|
|
613
|
-
): Effect.Effect<
|
|
608
|
+
): Effect.Effect<ReadonlyArray<A>, ConfigError.ConfigError> => {
|
|
614
609
|
if (!split) {
|
|
615
610
|
return pipe(
|
|
616
611
|
primitive.parse(text),
|
|
@@ -631,11 +626,9 @@ const transpose = <A>(array: ReadonlyArray<ReadonlyArray<A>>): ReadonlyArray<Rea
|
|
|
631
626
|
return Object.keys(array[0]).map((column) => array.map((row) => row[column as any]))
|
|
632
627
|
}
|
|
633
628
|
|
|
634
|
-
const escapeRegex = (string: string): string => {
|
|
635
|
-
return string.replace(/[/\-\\^$*+?.()|[\]{}]/g, "\\$&")
|
|
636
|
-
}
|
|
629
|
+
const escapeRegex = (string: string): string => string.replace(/[/\-\\^$*+?.()|[\]{}]/g, "\\$&")
|
|
637
630
|
|
|
638
|
-
const indicesFrom = (quotedIndices: HashSet.HashSet<string>): Effect.Effect<
|
|
631
|
+
const indicesFrom = (quotedIndices: HashSet.HashSet<string>): Effect.Effect<ReadonlyArray<number>> =>
|
|
639
632
|
pipe(
|
|
640
633
|
core.forEachSequential(quotedIndices, parseQuotedIndex),
|
|
641
634
|
core.mapBoth({
|
package/src/internal/console.ts
CHANGED
|
@@ -11,13 +11,13 @@ import * as fiberRuntime from "./fiberRuntime.js"
|
|
|
11
11
|
import * as layer from "./layer.js"
|
|
12
12
|
|
|
13
13
|
/** @internal */
|
|
14
|
-
export const console: Effect.Effect<
|
|
14
|
+
export const console: Effect.Effect<Console.Console> = core.map(
|
|
15
15
|
core.fiberRefGet(defaultServices.currentServices),
|
|
16
16
|
Context.get(defaultConsole.consoleTag)
|
|
17
17
|
)
|
|
18
18
|
|
|
19
19
|
/** @internal */
|
|
20
|
-
export const consoleWith = <
|
|
20
|
+
export const consoleWith = <A, E, R>(f: (console: Console.Console) => Effect.Effect<A, E, R>) =>
|
|
21
21
|
core.fiberRefGetWith(
|
|
22
22
|
defaultServices.currentServices,
|
|
23
23
|
(services) => f(Context.get(services, defaultConsole.consoleTag))
|
|
@@ -25,8 +25,8 @@ export const consoleWith = <R, E, A>(f: (console: Console.Console) => Effect.Eff
|
|
|
25
25
|
|
|
26
26
|
/** @internal */
|
|
27
27
|
export const withConsole = dual<
|
|
28
|
-
<
|
|
29
|
-
<
|
|
28
|
+
<C extends Console.Console>(console: C) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
|
|
29
|
+
<A, E, R, C extends Console.Console>(effect: Effect.Effect<A, E, R>, console: C) => Effect.Effect<A, E, R>
|
|
30
30
|
>(2, (effect, value) =>
|
|
31
31
|
core.fiberRefLocallyWith(
|
|
32
32
|
effect,
|
|
@@ -35,14 +35,14 @@ export const withConsole = dual<
|
|
|
35
35
|
))
|
|
36
36
|
|
|
37
37
|
/** @internal */
|
|
38
|
-
export const withConsoleScoped = <A extends Console.Console>(console: A): Effect.Effect<
|
|
38
|
+
export const withConsoleScoped = <A extends Console.Console>(console: A): Effect.Effect<void, never, Scope.Scope> =>
|
|
39
39
|
fiberRuntime.fiberRefLocallyScopedWith(
|
|
40
40
|
defaultServices.currentServices,
|
|
41
41
|
Context.add(defaultConsole.consoleTag, console)
|
|
42
42
|
)
|
|
43
43
|
|
|
44
44
|
/** @internal */
|
|
45
|
-
export const setConsole = <A extends Console.Console>(console: A): Layer.Layer<never
|
|
45
|
+
export const setConsole = <A extends Console.Console>(console: A): Layer.Layer<never> =>
|
|
46
46
|
layer.scopedDiscard(
|
|
47
47
|
fiberRuntime.fiberRefLocallyScopedWith(
|
|
48
48
|
defaultServices.currentServices,
|
|
@@ -122,14 +122,14 @@ export const withGroup = dual<
|
|
|
122
122
|
readonly label?: string | undefined
|
|
123
123
|
readonly collapsed?: boolean | undefined
|
|
124
124
|
}
|
|
125
|
-
) => <
|
|
126
|
-
<
|
|
127
|
-
self: Effect.Effect<
|
|
125
|
+
) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
|
|
126
|
+
<A, E, R>(
|
|
127
|
+
self: Effect.Effect<A, E, R>,
|
|
128
128
|
options?: {
|
|
129
129
|
readonly label?: string | undefined
|
|
130
130
|
readonly collapsed?: boolean | undefined
|
|
131
131
|
}
|
|
132
|
-
) => Effect.Effect<
|
|
132
|
+
) => Effect.Effect<A, E, R>
|
|
133
133
|
>((args) => core.isEffect(args[0]), (self, options) =>
|
|
134
134
|
consoleWith((_) =>
|
|
135
135
|
core.acquireUseRelease(
|
|
@@ -141,8 +141,8 @@ export const withGroup = dual<
|
|
|
141
141
|
|
|
142
142
|
/** @internal */
|
|
143
143
|
export const withTime = dual<
|
|
144
|
-
(label?: string) => <
|
|
145
|
-
<
|
|
144
|
+
(label?: string) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
|
|
145
|
+
<A, E, R>(self: Effect.Effect<A, E, R>, label?: string) => Effect.Effect<A, E, R>
|
|
146
146
|
>((args) => core.isEffect(args[0]), (self, label) =>
|
|
147
147
|
consoleWith((_) =>
|
|
148
148
|
core.acquireUseRelease(
|
package/src/internal/context.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type * as C from "../Context.js"
|
|
2
2
|
import * as Equal from "../Equal.js"
|
|
3
3
|
import { dual } from "../Function.js"
|
|
4
|
-
import { globalValue } from "../GlobalValue.js"
|
|
5
4
|
import * as Hash from "../Hash.js"
|
|
6
5
|
import { format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
|
|
7
6
|
import type * as O from "../Option.js"
|
|
@@ -23,7 +22,7 @@ export const STMTypeId: STM.STMTypeId = Symbol.for(
|
|
|
23
22
|
) as STM.STMTypeId
|
|
24
23
|
|
|
25
24
|
/** @internal */
|
|
26
|
-
export const TagProto:
|
|
25
|
+
export const TagProto: any = {
|
|
27
26
|
...EffectPrototype,
|
|
28
27
|
_tag: "Tag",
|
|
29
28
|
_op: "Tag",
|
|
@@ -38,7 +37,7 @@ export const TagProto: C.Tag<unknown, unknown> = {
|
|
|
38
37
|
toJSON<I, A>(this: C.Tag<I, A>) {
|
|
39
38
|
return {
|
|
40
39
|
_id: "Tag",
|
|
41
|
-
|
|
40
|
+
key: this.key,
|
|
42
41
|
stack: this.stack
|
|
43
42
|
}
|
|
44
43
|
},
|
|
@@ -56,13 +55,8 @@ export const TagProto: C.Tag<unknown, unknown> = {
|
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
|
|
59
|
-
const tagRegistry = globalValue("effect/Context/Tag/tagRegistry", () => new Map<any, C.Tag<any, any>>())
|
|
60
|
-
|
|
61
58
|
/** @internal */
|
|
62
|
-
export const
|
|
63
|
-
if (identifier && tagRegistry.has(identifier)) {
|
|
64
|
-
return tagRegistry.get(identifier)!
|
|
65
|
-
}
|
|
59
|
+
export const makeGenericTag = <Identifier, Service = Identifier>(key: string): C.Tag<Identifier, Service> => {
|
|
66
60
|
const limit = Error.stackTraceLimit
|
|
67
61
|
Error.stackTraceLimit = 2
|
|
68
62
|
const creationError = new Error()
|
|
@@ -73,13 +67,28 @@ export const makeTag = <Identifier, Service = Identifier>(identifier?: unknown):
|
|
|
73
67
|
return creationError.stack
|
|
74
68
|
}
|
|
75
69
|
})
|
|
76
|
-
|
|
77
|
-
tag.identifier = identifier
|
|
78
|
-
tagRegistry.set(identifier, tag)
|
|
79
|
-
}
|
|
70
|
+
tag.key = key
|
|
80
71
|
return tag
|
|
81
72
|
}
|
|
82
73
|
|
|
74
|
+
/** @internal */
|
|
75
|
+
export const Tag = <const Id extends string>(id: Id) => <Self, Shape>(): C.TagClass<Self, Id, Shape> => {
|
|
76
|
+
const limit = Error.stackTraceLimit
|
|
77
|
+
Error.stackTraceLimit = 2
|
|
78
|
+
const creationError = new Error()
|
|
79
|
+
Error.stackTraceLimit = limit
|
|
80
|
+
|
|
81
|
+
function TagClass() {}
|
|
82
|
+
Object.setPrototypeOf(TagClass, TagProto)
|
|
83
|
+
TagClass.key = id
|
|
84
|
+
Object.defineProperty(TagClass, "stack", {
|
|
85
|
+
get() {
|
|
86
|
+
return creationError.stack
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
|
+
return TagClass as any
|
|
90
|
+
}
|
|
91
|
+
|
|
83
92
|
/** @internal */
|
|
84
93
|
export const TypeId: C.TypeId = Symbol.for("effect/Context") as C.TypeId
|
|
85
94
|
|
|
@@ -122,14 +131,14 @@ export const ContextProto: Omit<C.Context<unknown>, "unsafeMap"> = {
|
|
|
122
131
|
}
|
|
123
132
|
|
|
124
133
|
/** @internal */
|
|
125
|
-
export const makeContext = <Services>(unsafeMap: Map<
|
|
134
|
+
export const makeContext = <Services>(unsafeMap: Map<string, any>): C.Context<Services> => {
|
|
126
135
|
const context = Object.create(ContextProto)
|
|
127
136
|
context.unsafeMap = unsafeMap
|
|
128
137
|
return context
|
|
129
138
|
}
|
|
130
139
|
|
|
131
140
|
const serviceNotFoundError = (tag: C.Tag<any, any>) => {
|
|
132
|
-
const error = new Error(`Service not found${tag.
|
|
141
|
+
const error = new Error(`Service not found${tag.key ? `: ${String(tag.key)}` : ""}`)
|
|
133
142
|
if (tag.stack) {
|
|
134
143
|
const lines = tag.stack.split("\n")
|
|
135
144
|
if (lines.length > 2) {
|
|
@@ -162,7 +171,7 @@ export const empty = (): C.Context<never> => _empty
|
|
|
162
171
|
export const make = <T extends C.Tag<any, any>>(
|
|
163
172
|
tag: T,
|
|
164
173
|
service: C.Tag.Service<T>
|
|
165
|
-
): C.Context<C.Tag.Identifier<T>> => makeContext(new Map([[tag, service]]))
|
|
174
|
+
): C.Context<C.Tag.Identifier<T>> => makeContext(new Map([[tag.key, service]]))
|
|
166
175
|
|
|
167
176
|
/** @internal */
|
|
168
177
|
export const add = dual<
|
|
@@ -179,7 +188,7 @@ export const add = dual<
|
|
|
179
188
|
) => C.Context<Services | C.Tag.Identifier<T>>
|
|
180
189
|
>(3, (self, tag, service) => {
|
|
181
190
|
const map = new Map(self.unsafeMap)
|
|
182
|
-
map.set(tag
|
|
191
|
+
map.set(tag.key, service)
|
|
183
192
|
return makeContext(map)
|
|
184
193
|
})
|
|
185
194
|
|
|
@@ -188,10 +197,10 @@ export const unsafeGet = dual<
|
|
|
188
197
|
<S, I>(tag: C.Tag<I, S>) => <Services>(self: C.Context<Services>) => S,
|
|
189
198
|
<Services, S, I>(self: C.Context<Services>, tag: C.Tag<I, S>) => S
|
|
190
199
|
>(2, (self, tag) => {
|
|
191
|
-
if (!self.unsafeMap.has(tag)) {
|
|
200
|
+
if (!self.unsafeMap.has(tag.key)) {
|
|
192
201
|
throw serviceNotFoundError(tag as any)
|
|
193
202
|
}
|
|
194
|
-
return self.unsafeMap.get(tag)! as any
|
|
203
|
+
return self.unsafeMap.get(tag.key)! as any
|
|
195
204
|
})
|
|
196
205
|
|
|
197
206
|
/** @internal */
|
|
@@ -205,10 +214,10 @@ export const getOption = dual<
|
|
|
205
214
|
<S, I>(tag: C.Tag<I, S>) => <Services>(self: C.Context<Services>) => O.Option<S>,
|
|
206
215
|
<Services, S, I>(self: C.Context<Services>, tag: C.Tag<I, S>) => O.Option<S>
|
|
207
216
|
>(2, (self, tag) => {
|
|
208
|
-
if (!self.unsafeMap.has(tag)) {
|
|
217
|
+
if (!self.unsafeMap.has(tag.key)) {
|
|
209
218
|
return option.none
|
|
210
219
|
}
|
|
211
|
-
return option.some(self.unsafeMap.get(tag)! as any)
|
|
220
|
+
return option.some(self.unsafeMap.get(tag.key)! as any)
|
|
212
221
|
})
|
|
213
222
|
|
|
214
223
|
/** @internal */
|
|
@@ -229,7 +238,7 @@ export const pick =
|
|
|
229
238
|
(self: C.Context<Services>): C.Context<
|
|
230
239
|
{ [k in keyof S]: C.Tag.Identifier<S[k]> }[number]
|
|
231
240
|
> => {
|
|
232
|
-
const tagSet = new Set<
|
|
241
|
+
const tagSet = new Set<string>(tags.map((_) => _.key))
|
|
233
242
|
const newEnv = new Map()
|
|
234
243
|
for (const [tag, s] of self.unsafeMap.entries()) {
|
|
235
244
|
if (tagSet.has(tag)) {
|
|
@@ -247,7 +256,7 @@ export const omit =
|
|
|
247
256
|
> => {
|
|
248
257
|
const newEnv = new Map(self.unsafeMap)
|
|
249
258
|
for (const tag of tags) {
|
|
250
|
-
newEnv.delete(tag)
|
|
259
|
+
newEnv.delete(tag.key)
|
|
251
260
|
}
|
|
252
261
|
return makeContext(newEnv)
|
|
253
262
|
}
|