effect 2.0.0-next.55 → 2.0.0-next.56
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/README.md +14 -9
- package/dist/cjs/Cache.js.map +1 -1
- package/dist/cjs/Cause.js +53 -18
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/ChildExecutorDecision.js.map +1 -1
- package/dist/cjs/Chunk.js +5 -5
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Data.js +11 -20
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Duration.js +4 -0
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +11 -4
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +9 -2
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/KeyedPool.js.map +1 -1
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/MergeState.js.map +1 -1
- package/dist/cjs/MetricPolling.js +2 -2
- package/dist/cjs/MetricPolling.js.map +1 -1
- package/dist/cjs/MetricState.js.map +1 -1
- package/dist/cjs/NonEmptyIterable.js.map +1 -1
- package/dist/cjs/Option.js +2 -2
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Pipeable.js.map +1 -1
- package/dist/cjs/Predicate.js +17 -1
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/PrimaryKey.js +15 -0
- package/dist/cjs/PrimaryKey.js.map +1 -0
- package/dist/cjs/Queue.js +6 -1
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/ReadonlyArray.js +2 -0
- package/dist/cjs/ReadonlyArray.js.map +1 -1
- package/dist/cjs/ReadonlyRecord.js +2 -2
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/RedBlackTree.js.map +1 -1
- package/dist/cjs/Request.js +35 -1
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/STM.js +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/SortedMap.js +4 -1
- package/dist/cjs/SortedMap.js.map +1 -1
- package/dist/cjs/SortedSet.js +2 -2
- package/dist/cjs/SortedSet.js.map +1 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +3 -1
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/UpstreamPullRequest.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/cause.js +4 -103
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/channel/continuation.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +13 -1
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +7 -7
- 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 +159 -11
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js +4 -22
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/dataSource.js +1 -1
- package/dist/cjs/internal/dataSource.js.map +1 -1
- package/dist/cjs/internal/deferred.js.map +1 -1
- package/dist/cjs/internal/differ/orPatch.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +21 -3
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/fiberMessage.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +9 -10
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/hashMap.js +1 -1
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/hashSet.js +2 -2
- package/dist/cjs/internal/hashSet.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/metric/polling.js +7 -7
- package/dist/cjs/internal/metric/polling.js.map +1 -1
- package/dist/cjs/internal/metric.js +4 -0
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +24 -23
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/queue.js +10 -1
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/redBlackTree.js +5 -1
- package/dist/cjs/internal/redBlackTree.js.map +1 -1
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/request.js +29 -15
- package/dist/cjs/internal/request.js.map +1 -1
- package/dist/cjs/internal/resource.js +2 -2
- package/dist/cjs/internal/resource.js.map +1 -1
- package/dist/cjs/internal/runtime.js +2 -3
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js +6 -7
- 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 +1 -1
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js +2 -2
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/tArray.js.map +1 -1
- 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 +17 -14
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js +6 -7
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tSemaphore.js +2 -2
- 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.js +4 -4
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/take.js +1 -1
- package/dist/cjs/internal/take.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Brand.d.ts +4 -4
- package/dist/dts/Brand.d.ts.map +1 -1
- package/dist/dts/Cache.d.ts +15 -14
- package/dist/dts/Cache.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +92 -25
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +4 -4
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +26 -24
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Clock.d.ts +4 -4
- package/dist/dts/Clock.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +4 -4
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/ConfigError.d.ts +7 -7
- package/dist/dts/ConfigError.d.ts.map +1 -1
- package/dist/dts/ConfigProvider.d.ts +3 -3
- package/dist/dts/ConfigProvider.d.ts.map +1 -1
- package/dist/dts/ConfigProviderPathPatch.d.ts +1 -1
- package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
- package/dist/dts/Console.d.ts +36 -36
- package/dist/dts/Console.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +4 -4
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +3 -17
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Deferred.d.ts +4 -4
- package/dist/dts/Deferred.d.ts.map +1 -1
- package/dist/dts/Differ.d.ts +9 -9
- package/dist/dts/Differ.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +1 -1
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +34 -20
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +15 -3
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Equal.d.ts +1 -1
- package/dist/dts/Equal.d.ts.map +1 -1
- package/dist/dts/Equivalence.d.ts +1 -1
- package/dist/dts/Equivalence.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +5 -3
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/Fiber.d.ts +12 -12
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +3 -3
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +2 -2
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/Hash.d.ts +1 -1
- package/dist/dts/Hash.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +6 -4
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/HashSet.d.ts +9 -9
- package/dist/dts/HashSet.d.ts.map +1 -1
- package/dist/dts/Inspectable.d.ts +3 -3
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/KeyedPool.d.ts +5 -5
- package/dist/dts/KeyedPool.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +2 -2
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/List.d.ts +16 -16
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +4 -4
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Match.d.ts +11 -11
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +2 -2
- package/dist/dts/MergeDecision.d.ts.map +1 -1
- package/dist/dts/MergeState.d.ts +5 -5
- package/dist/dts/MergeState.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +5 -5
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricHook.d.ts +4 -4
- package/dist/dts/MetricHook.d.ts.map +1 -1
- package/dist/dts/MetricKey.d.ts +2 -2
- package/dist/dts/MetricKey.d.ts.map +1 -1
- package/dist/dts/MetricKeyType.d.ts +2 -2
- package/dist/dts/MetricKeyType.d.ts.map +1 -1
- package/dist/dts/MetricPair.d.ts +2 -2
- package/dist/dts/MetricPair.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +16 -16
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/MetricRegistry.d.ts +7 -7
- package/dist/dts/MetricRegistry.d.ts.map +1 -1
- package/dist/dts/MetricState.d.ts +4 -4
- package/dist/dts/MetricState.d.ts.map +1 -1
- package/dist/dts/MutableHashMap.d.ts +1 -1
- package/dist/dts/MutableHashMap.d.ts.map +1 -1
- package/dist/dts/MutableHashSet.d.ts +1 -1
- package/dist/dts/MutableHashSet.d.ts.map +1 -1
- package/dist/dts/MutableList.d.ts +1 -1
- package/dist/dts/MutableList.d.ts.map +1 -1
- package/dist/dts/MutableQueue.d.ts +1 -1
- package/dist/dts/MutableQueue.d.ts.map +1 -1
- package/dist/dts/MutableRef.d.ts +1 -1
- package/dist/dts/MutableRef.d.ts.map +1 -1
- package/dist/dts/NonEmptyIterable.d.ts +2 -2
- package/dist/dts/NonEmptyIterable.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +13 -11
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts +1 -1
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/Pipeable.d.ts +21 -23
- package/dist/dts/Pipeable.d.ts.map +1 -1
- package/dist/dts/Pool.d.ts +4 -4
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/Predicate.d.ts +17 -2
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/PrimaryKey.d.ts +16 -0
- package/dist/dts/PrimaryKey.d.ts.map +1 -0
- package/dist/dts/PubSub.d.ts +3 -3
- package/dist/dts/PubSub.d.ts.map +1 -1
- package/dist/dts/Queue.d.ts +46 -27
- package/dist/dts/Queue.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +3 -3
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/ReadonlyArray.d.ts +36 -36
- package/dist/dts/ReadonlyArray.d.ts.map +1 -1
- package/dist/dts/ReadonlyRecord.d.ts +13 -11
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/RedBlackTree.d.ts +5 -2
- package/dist/dts/RedBlackTree.d.ts.map +1 -1
- package/dist/dts/Ref.d.ts +3 -3
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +3 -3
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +49 -8
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestBlock.d.ts +8 -8
- package/dist/dts/RequestBlock.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +5 -5
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +4 -4
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +3 -3
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +9 -9
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +6 -6
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/Scheduler.d.ts +3 -3
- package/dist/dts/Scheduler.d.ts.map +1 -1
- package/dist/dts/ScopedCache.d.ts +9 -9
- package/dist/dts/ScopedCache.d.ts.map +1 -1
- package/dist/dts/ScopedRef.d.ts +3 -3
- package/dist/dts/ScopedRef.d.ts.map +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts +7 -7
- package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +7 -4
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/SortedMap.d.ts +5 -2
- package/dist/dts/SortedMap.d.ts.map +1 -1
- package/dist/dts/SortedSet.d.ts +6 -12
- package/dist/dts/SortedSet.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +27 -19
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/StreamEmit.d.ts +12 -12
- package/dist/dts/StreamEmit.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +3 -3
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/Supervisor.d.ts +9 -9
- package/dist/dts/Supervisor.d.ts.map +1 -1
- package/dist/dts/SynchronizedRef.d.ts +4 -4
- package/dist/dts/SynchronizedRef.d.ts.map +1 -1
- package/dist/dts/TArray.d.ts +3 -3
- package/dist/dts/TArray.d.ts.map +1 -1
- package/dist/dts/TDeferred.d.ts +4 -4
- package/dist/dts/TDeferred.d.ts.map +1 -1
- package/dist/dts/TMap.d.ts +4 -4
- package/dist/dts/TMap.d.ts.map +1 -1
- package/dist/dts/TPriorityQueue.d.ts +3 -3
- package/dist/dts/TPriorityQueue.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +4 -1
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +9 -9
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TRandom.d.ts +3 -3
- package/dist/dts/TRandom.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +3 -3
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSet.d.ts +3 -3
- package/dist/dts/TSet.d.ts.map +1 -1
- package/dist/dts/Take.d.ts +2 -2
- package/dist/dts/Take.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts +5 -3
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestAnnotations.d.ts +2 -2
- package/dist/dts/TestAnnotations.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts +3 -3
- package/dist/dts/TestClock.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/TestSized.d.ts +1 -1
- package/dist/dts/TestSized.d.ts.map +1 -1
- package/dist/dts/Tracer.d.ts +5 -5
- package/dist/dts/Tracer.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +7 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/UpstreamPullRequest.d.ts +2 -2
- package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
- package/dist/dts/UpstreamPullStrategy.d.ts +3 -3
- package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts +1 -1
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/core-stream.d.ts.map +1 -1
- package/dist/dts/internal/fiberScope.d.ts +1 -1
- package/dist/dts/internal/fiberScope.d.ts.map +1 -1
- package/dist/dts/internal/stream/handoffSignal.d.ts +1 -1
- package/dist/dts/internal/stream/handoffSignal.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/Cache.js.map +1 -1
- package/dist/esm/Cause.js +52 -17
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/ChildExecutorDecision.js.map +1 -1
- package/dist/esm/Chunk.js +5 -5
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Data.js +10 -19
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Duration.js +4 -0
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +7 -0
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +8 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/KeyedPool.js.map +1 -1
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/MergeState.js.map +1 -1
- package/dist/esm/MetricPolling.js +1 -1
- package/dist/esm/MetricPolling.js.map +1 -1
- package/dist/esm/MetricState.js.map +1 -1
- package/dist/esm/NonEmptyIterable.js.map +1 -1
- package/dist/esm/Option.js +2 -2
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Pipeable.js.map +1 -1
- package/dist/esm/Predicate.js +15 -0
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/PrimaryKey.js +9 -0
- package/dist/esm/PrimaryKey.js.map +1 -0
- package/dist/esm/Queue.js +5 -0
- package/dist/esm/Queue.js.map +1 -1
- package/dist/esm/ReadonlyArray.js +2 -0
- package/dist/esm/ReadonlyArray.js.map +1 -1
- package/dist/esm/ReadonlyRecord.js +2 -2
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/RedBlackTree.js.map +1 -1
- package/dist/esm/Request.js +34 -0
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/STM.js +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/SortedMap.js +4 -1
- package/dist/esm/SortedMap.js.map +1 -1
- package/dist/esm/SortedSet.js +2 -2
- package/dist/esm/SortedSet.js.map +1 -1
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TestAnnotation.js +3 -1
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/UpstreamPullRequest.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/cause.js +3 -96
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/channel/continuation.js.map +1 -1
- package/dist/esm/internal/configProvider.js +13 -1
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/core-effect.js +7 -7
- 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 +151 -10
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/data.js +3 -21
- package/dist/esm/internal/data.js.map +1 -1
- package/dist/esm/internal/dataSource.js +1 -1
- package/dist/esm/internal/dataSource.js.map +1 -1
- package/dist/esm/internal/deferred.js.map +1 -1
- package/dist/esm/internal/differ/orPatch.js.map +1 -1
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/effectable.js +20 -2
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/fiberMessage.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +9 -10
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/hashMap.js +1 -1
- package/dist/esm/internal/hashMap.js.map +1 -1
- package/dist/esm/internal/hashSet.js +2 -2
- package/dist/esm/internal/hashSet.js.map +1 -1
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/metric/polling.js +6 -6
- package/dist/esm/internal/metric/polling.js.map +1 -1
- package/dist/esm/internal/metric.js +4 -0
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/pubsub.js +24 -23
- package/dist/esm/internal/pubsub.js.map +1 -1
- package/dist/esm/internal/queue.js +9 -0
- package/dist/esm/internal/queue.js.map +1 -1
- package/dist/esm/internal/redBlackTree.js +5 -1
- package/dist/esm/internal/redBlackTree.js.map +1 -1
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/request.js +27 -14
- package/dist/esm/internal/request.js.map +1 -1
- package/dist/esm/internal/resource.js +2 -2
- package/dist/esm/internal/resource.js.map +1 -1
- package/dist/esm/internal/runtime.js +1 -2
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js +6 -7
- 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 +1 -1
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/core.js +2 -2
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/tArray.js.map +1 -1
- 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 +17 -14
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js +6 -7
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tSemaphore.js +2 -2
- 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.js +4 -4
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/subscriptionRef.js.map +1 -1
- package/dist/esm/internal/take.js +1 -1
- package/dist/esm/internal/take.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/dist/esm/package.json +1 -1
- package/package.json +10 -2
- package/src/Brand.ts +4 -4
- package/src/Cache.ts +15 -17
- package/src/Cause.ts +124 -40
- package/src/Channel.ts +4 -4
- package/src/ChildExecutorDecision.ts +10 -2
- package/src/Chunk.ts +44 -36
- package/src/Clock.ts +4 -4
- package/src/Config.ts +4 -4
- package/src/ConfigError.ts +8 -8
- package/src/ConfigProvider.ts +5 -5
- package/src/ConfigProviderPathPatch.ts +1 -1
- package/src/Console.ts +36 -36
- package/src/Context.ts +4 -4
- package/src/Data.ts +13 -44
- package/src/Deferred.ts +4 -4
- package/src/Differ.ts +9 -9
- package/src/Duration.ts +5 -0
- package/src/Effect.ts +88 -26
- package/src/Either.ts +28 -5
- package/src/Equal.ts +1 -1
- package/src/Equivalence.ts +1 -1
- package/src/Exit.ts +21 -7
- package/src/Fiber.ts +20 -14
- package/src/FiberRef.ts +7 -7
- package/src/GroupBy.ts +2 -2
- package/src/Hash.ts +1 -1
- package/src/HashMap.ts +6 -4
- package/src/HashSet.ts +11 -11
- package/src/Inspectable.ts +3 -3
- package/src/KeyedPool.ts +13 -7
- package/src/Layer.ts +2 -2
- package/src/List.ts +24 -22
- package/src/Logger.ts +4 -4
- package/src/Match.ts +11 -11
- package/src/MergeDecision.ts +2 -2
- package/src/MergeState.ts +11 -5
- package/src/Metric.ts +5 -5
- package/src/MetricHook.ts +4 -4
- package/src/MetricKey.ts +2 -2
- package/src/MetricKeyType.ts +2 -2
- package/src/MetricPair.ts +2 -2
- package/src/MetricPolling.ts +22 -22
- package/src/MetricRegistry.ts +9 -9
- package/src/MetricState.ts +6 -4
- package/src/MutableHashMap.ts +1 -1
- package/src/MutableHashSet.ts +1 -1
- package/src/MutableList.ts +1 -1
- package/src/MutableQueue.ts +1 -1
- package/src/MutableRef.ts +1 -1
- package/src/NonEmptyIterable.ts +2 -2
- package/src/Option.ts +18 -15
- package/src/Order.ts +1 -1
- package/src/Pipeable.ts +275 -277
- package/src/Pool.ts +4 -4
- package/src/Predicate.ts +21 -2
- package/src/PrimaryKey.ts +17 -0
- package/src/PubSub.ts +3 -3
- package/src/Queue.ts +52 -30
- package/src/Random.ts +3 -3
- package/src/ReadonlyArray.ts +51 -66
- package/src/ReadonlyRecord.ts +37 -35
- package/src/RedBlackTree.ts +5 -2
- package/src/Ref.ts +3 -3
- package/src/Reloadable.ts +3 -3
- package/src/Request.ts +53 -8
- package/src/RequestBlock.ts +9 -9
- package/src/RequestResolver.ts +5 -5
- package/src/Resource.ts +4 -4
- package/src/Runtime.ts +3 -3
- package/src/STM.ts +23 -12
- package/src/Schedule.ts +7 -7
- package/src/Scheduler.ts +3 -3
- package/src/Scope.ts +3 -3
- package/src/ScopedCache.ts +9 -9
- package/src/ScopedRef.ts +3 -3
- package/src/SingleProducerAsyncInput.ts +7 -7
- package/src/Sink.ts +23 -9
- package/src/SortedMap.ts +9 -3
- package/src/SortedSet.ts +26 -41
- package/src/Stream.ts +70 -29
- package/src/StreamEmit.ts +12 -12
- package/src/SubscriptionRef.ts +5 -3
- package/src/Supervisor.ts +10 -10
- package/src/SynchronizedRef.ts +4 -4
- package/src/TArray.ts +4 -4
- package/src/TDeferred.ts +5 -5
- package/src/TMap.ts +5 -5
- package/src/TPriorityQueue.ts +4 -4
- package/src/TPubSub.ts +6 -3
- package/src/TQueue.ts +9 -9
- package/src/TRandom.ts +3 -3
- package/src/TRef.ts +4 -4
- package/src/TSet.ts +4 -4
- package/src/Take.ts +2 -2
- package/src/TestAnnotation.ts +8 -4
- package/src/TestAnnotations.ts +2 -2
- package/src/TestClock.ts +3 -5
- package/src/TestLive.ts +1 -1
- package/src/TestSized.ts +1 -1
- package/src/Tracer.ts +6 -6
- package/src/Types.ts +8 -0
- package/src/UpstreamPullRequest.ts +10 -4
- package/src/UpstreamPullStrategy.ts +3 -3
- package/src/Utils.ts +1 -1
- package/src/index.ts +5 -0
- package/src/internal/blockedRequests.ts +6 -6
- package/src/internal/cache.ts +12 -12
- package/src/internal/cause.ts +14 -138
- package/src/internal/channel/channelExecutor.ts +1 -1
- package/src/internal/channel/channelState.ts +5 -5
- package/src/internal/channel/continuation.ts +52 -32
- package/src/internal/channel/mergeDecision.ts +1 -1
- package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
- package/src/internal/channel/subexecutor.ts +7 -7
- package/src/internal/config.ts +6 -6
- package/src/internal/configProvider.ts +14 -1
- package/src/internal/core-effect.ts +49 -38
- package/src/internal/core-stream.ts +18 -21
- package/src/internal/core.ts +286 -38
- package/src/internal/data.ts +3 -22
- package/src/internal/dataSource.ts +1 -1
- package/src/internal/deferred.ts +5 -5
- package/src/internal/differ/contextPatch.ts +5 -5
- package/src/internal/differ/orPatch.ts +18 -6
- package/src/internal/effect/circular.ts +3 -3
- package/src/internal/effectable.ts +23 -4
- package/src/internal/fiberMessage.ts +1 -4
- package/src/internal/fiberRuntime.ts +14 -15
- package/src/internal/fiberScope.ts +1 -1
- package/src/internal/groupBy.ts +1 -1
- package/src/internal/hashMap/node.ts +5 -5
- package/src/internal/hashMap.ts +23 -22
- package/src/internal/hashSet.ts +18 -20
- package/src/internal/keyedPool.ts +4 -4
- package/src/internal/layer.ts +6 -12
- package/src/internal/metric/key.ts +1 -1
- package/src/internal/metric/polling.ts +26 -26
- package/src/internal/metric.ts +4 -0
- package/src/internal/pool.ts +2 -2
- package/src/internal/pubsub.ts +64 -61
- package/src/internal/queue.ts +20 -6
- package/src/internal/redBlackTree/iterator.ts +1 -1
- package/src/internal/redBlackTree/node.ts +1 -1
- package/src/internal/redBlackTree.ts +7 -2
- package/src/internal/ref.ts +1 -1
- package/src/internal/reloadable.ts +1 -1
- package/src/internal/request.ts +39 -13
- package/src/internal/resource.ts +4 -4
- package/src/internal/ringBuffer.ts +1 -1
- package/src/internal/runtime.ts +2 -3
- package/src/internal/schedule.ts +6 -7
- package/src/internal/scopedCache.ts +7 -5
- package/src/internal/scopedRef.ts +1 -1
- package/src/internal/sink.ts +6 -3
- package/src/internal/stack.ts +1 -1
- package/src/internal/stm/core.ts +3 -3
- package/src/internal/stm/stm/stmState.ts +1 -1
- package/src/internal/stm/stm/tExit.ts +3 -3
- package/src/internal/stm/stm/tryCommit.ts +1 -1
- package/src/internal/stm/stm/versioned.ts +1 -1
- package/src/internal/stm/stm.ts +2 -2
- package/src/internal/stm/tArray.ts +2 -2
- package/src/internal/stm/tDeferred.ts +3 -3
- package/src/internal/stm/tMap.ts +3 -3
- package/src/internal/stm/tPriorityQueue.ts +2 -2
- package/src/internal/stm/tPubSub.ts +43 -38
- package/src/internal/stm/tQueue.ts +7 -8
- package/src/internal/stm/tReentrantLock.ts +2 -2
- package/src/internal/stm/tRef.ts +1 -1
- package/src/internal/stm/tSemaphore.ts +2 -2
- package/src/internal/stm/tSet.ts +2 -2
- package/src/internal/stream/debounceState.ts +2 -2
- package/src/internal/stream/handoff.ts +3 -3
- package/src/internal/stream/handoffSignal.ts +2 -2
- package/src/internal/stream/pull.ts +1 -1
- package/src/internal/stream.ts +66 -33
- package/src/internal/subscriptionRef.ts +2 -2
- package/src/internal/supervisor.ts +3 -3
- package/src/internal/take.ts +2 -2
- package/src/internal/version.ts +1 -1
package/src/internal/pubsub.ts
CHANGED
|
@@ -9,31 +9,33 @@ import { pipeArguments } from "../Pipeable.js"
|
|
|
9
9
|
import type * as PubSub from "../PubSub.js"
|
|
10
10
|
import type * as Queue from "../Queue.js"
|
|
11
11
|
import type * as Scope from "../Scope.js"
|
|
12
|
-
import * as cause from "./cause.js"
|
|
13
12
|
import * as core from "./core.js"
|
|
14
13
|
import * as executionStrategy from "./executionStrategy.js"
|
|
15
14
|
import * as fiberRuntime from "./fiberRuntime.js"
|
|
16
15
|
import * as queue from "./queue.js"
|
|
17
16
|
|
|
17
|
+
const AbsentValue = Symbol.for("effect/PubSub/AbsentValue")
|
|
18
|
+
type AbsentValue = typeof AbsentValue
|
|
19
|
+
|
|
18
20
|
/** @internal */
|
|
19
|
-
export interface AtomicPubSub<A> {
|
|
21
|
+
export interface AtomicPubSub<in out A> {
|
|
20
22
|
readonly capacity: number
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
isEmpty(): boolean
|
|
24
|
+
isFull(): boolean
|
|
25
|
+
size(): number
|
|
26
|
+
publish(value: A): boolean
|
|
27
|
+
publishAll(elements: Iterable<A>): Chunk.Chunk<A>
|
|
28
|
+
slide(): void
|
|
29
|
+
subscribe(): Subscription<A>
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
/** @internal */
|
|
31
|
-
interface Subscription<A> {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
interface Subscription<out A> {
|
|
34
|
+
isEmpty(): boolean
|
|
35
|
+
size(): number
|
|
36
|
+
poll<D>(default_: D): A | D
|
|
37
|
+
pollUpTo(n: number): Chunk.Chunk<A>
|
|
38
|
+
unsubscribe(): void
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
/** @internal */
|
|
@@ -190,7 +192,7 @@ export const unsafeMakeSubscription = <A>(
|
|
|
190
192
|
}
|
|
191
193
|
|
|
192
194
|
/** @internal */
|
|
193
|
-
class BoundedPubSubArb<A> implements AtomicPubSub<A> {
|
|
195
|
+
class BoundedPubSubArb<in out A> implements AtomicPubSub<A> {
|
|
194
196
|
array: Array<A>
|
|
195
197
|
publisherIndex = 0
|
|
196
198
|
subscribers: Array<number>
|
|
@@ -254,7 +256,7 @@ class BoundedPubSubArb<A> implements AtomicPubSub<A> {
|
|
|
254
256
|
slide(): void {
|
|
255
257
|
if (this.subscribersIndex !== this.publisherIndex) {
|
|
256
258
|
const index = this.subscribersIndex % this.capacity
|
|
257
|
-
this.array[index] =
|
|
259
|
+
this.array[index] = AbsentValue as unknown as A
|
|
258
260
|
this.subscribers[index] = 0
|
|
259
261
|
this.subscribersIndex += 1
|
|
260
262
|
}
|
|
@@ -266,7 +268,7 @@ class BoundedPubSubArb<A> implements AtomicPubSub<A> {
|
|
|
266
268
|
}
|
|
267
269
|
}
|
|
268
270
|
|
|
269
|
-
class BoundedPubSubArbSubscription<A> implements Subscription<A> {
|
|
271
|
+
class BoundedPubSubArbSubscription<in out A> implements Subscription<A> {
|
|
270
272
|
constructor(
|
|
271
273
|
private self: BoundedPubSubArb<A>,
|
|
272
274
|
private subscriberIndex: number,
|
|
@@ -299,7 +301,7 @@ class BoundedPubSubArbSubscription<A> implements Subscription<A> {
|
|
|
299
301
|
const elem = this.self.array[index]!
|
|
300
302
|
this.self.subscribers[index] -= 1
|
|
301
303
|
if (this.self.subscribers[index] === 0) {
|
|
302
|
-
this.self.array[index] =
|
|
304
|
+
this.self.array[index] = AbsentValue as unknown as A
|
|
303
305
|
this.self.subscribersIndex += 1
|
|
304
306
|
}
|
|
305
307
|
this.subscriberIndex += 1
|
|
@@ -325,7 +327,7 @@ class BoundedPubSubArbSubscription<A> implements Subscription<A> {
|
|
|
325
327
|
const a = this.self.array[index] as A
|
|
326
328
|
this.self.subscribers[index] -= 1
|
|
327
329
|
if (this.self.subscribers[index] === 0) {
|
|
328
|
-
this.self.array[index] =
|
|
330
|
+
this.self.array[index] = AbsentValue as unknown as A
|
|
329
331
|
this.self.subscribersIndex += 1
|
|
330
332
|
}
|
|
331
333
|
builder.push(a)
|
|
@@ -344,7 +346,7 @@ class BoundedPubSubArbSubscription<A> implements Subscription<A> {
|
|
|
344
346
|
const index = this.subscriberIndex % this.self.capacity
|
|
345
347
|
this.self.subscribers[index] -= 1
|
|
346
348
|
if (this.self.subscribers[index] === 0) {
|
|
347
|
-
this.self.array[index] =
|
|
349
|
+
this.self.array[index] = AbsentValue as unknown as A
|
|
348
350
|
this.self.subscribersIndex += 1
|
|
349
351
|
}
|
|
350
352
|
this.subscriberIndex += 1
|
|
@@ -354,7 +356,7 @@ class BoundedPubSubArbSubscription<A> implements Subscription<A> {
|
|
|
354
356
|
}
|
|
355
357
|
|
|
356
358
|
/** @internal */
|
|
357
|
-
class BoundedPubSubPow2<A> implements AtomicPubSub<A> {
|
|
359
|
+
class BoundedPubSubPow2<in out A> implements AtomicPubSub<A> {
|
|
358
360
|
array: Array<A>
|
|
359
361
|
mask: number
|
|
360
362
|
publisherIndex = 0
|
|
@@ -420,7 +422,7 @@ class BoundedPubSubPow2<A> implements AtomicPubSub<A> {
|
|
|
420
422
|
slide(): void {
|
|
421
423
|
if (this.subscribersIndex !== this.publisherIndex) {
|
|
422
424
|
const index = this.subscribersIndex & this.mask
|
|
423
|
-
this.array[index] =
|
|
425
|
+
this.array[index] = AbsentValue as unknown as A
|
|
424
426
|
this.subscribers[index] = 0
|
|
425
427
|
this.subscribersIndex += 1
|
|
426
428
|
}
|
|
@@ -433,7 +435,7 @@ class BoundedPubSubPow2<A> implements AtomicPubSub<A> {
|
|
|
433
435
|
}
|
|
434
436
|
|
|
435
437
|
/** @internal */
|
|
436
|
-
class BoundedPubSubPow2Subscription<A> implements Subscription<A> {
|
|
438
|
+
class BoundedPubSubPow2Subscription<in out A> implements Subscription<A> {
|
|
437
439
|
constructor(
|
|
438
440
|
private self: BoundedPubSubPow2<A>,
|
|
439
441
|
private subscriberIndex: number,
|
|
@@ -466,7 +468,7 @@ class BoundedPubSubPow2Subscription<A> implements Subscription<A> {
|
|
|
466
468
|
const elem = this.self.array[index]!
|
|
467
469
|
this.self.subscribers[index] -= 1
|
|
468
470
|
if (this.self.subscribers[index] === 0) {
|
|
469
|
-
this.self.array[index] =
|
|
471
|
+
this.self.array[index] = AbsentValue as unknown as A
|
|
470
472
|
this.self.subscribersIndex += 1
|
|
471
473
|
}
|
|
472
474
|
this.subscriberIndex += 1
|
|
@@ -492,7 +494,7 @@ class BoundedPubSubPow2Subscription<A> implements Subscription<A> {
|
|
|
492
494
|
const elem = this.self.array[index] as A
|
|
493
495
|
this.self.subscribers[index] -= 1
|
|
494
496
|
if (this.self.subscribers[index] === 0) {
|
|
495
|
-
this.self.array[index] =
|
|
497
|
+
this.self.array[index] = AbsentValue as unknown as A
|
|
496
498
|
this.self.subscribersIndex += 1
|
|
497
499
|
}
|
|
498
500
|
builder.push(elem)
|
|
@@ -510,7 +512,7 @@ class BoundedPubSubPow2Subscription<A> implements Subscription<A> {
|
|
|
510
512
|
const index = this.subscriberIndex & this.self.mask
|
|
511
513
|
this.self.subscribers[index] -= 1
|
|
512
514
|
if (this.self.subscribers[index] === 0) {
|
|
513
|
-
this.self.array[index] =
|
|
515
|
+
this.self.array[index] = AbsentValue as unknown as A
|
|
514
516
|
this.self.subscribersIndex += 1
|
|
515
517
|
}
|
|
516
518
|
this.subscriberIndex += 1
|
|
@@ -520,11 +522,11 @@ class BoundedPubSubPow2Subscription<A> implements Subscription<A> {
|
|
|
520
522
|
}
|
|
521
523
|
|
|
522
524
|
/** @internal */
|
|
523
|
-
class BoundedPubSubSingle<A> implements AtomicPubSub<A> {
|
|
525
|
+
class BoundedPubSubSingle<in out A> implements AtomicPubSub<A> {
|
|
524
526
|
publisherIndex = 0
|
|
525
527
|
subscriberCount = 0
|
|
526
528
|
subscribers = 0
|
|
527
|
-
value: A =
|
|
529
|
+
value: A = AbsentValue as unknown as A
|
|
528
530
|
|
|
529
531
|
readonly capacity = 1
|
|
530
532
|
|
|
@@ -571,7 +573,7 @@ class BoundedPubSubSingle<A> implements AtomicPubSub<A> {
|
|
|
571
573
|
slide(): void {
|
|
572
574
|
if (this.isFull()) {
|
|
573
575
|
this.subscribers = 0
|
|
574
|
-
this.value =
|
|
576
|
+
this.value = AbsentValue as unknown as A
|
|
575
577
|
}
|
|
576
578
|
}
|
|
577
579
|
|
|
@@ -582,7 +584,7 @@ class BoundedPubSubSingle<A> implements AtomicPubSub<A> {
|
|
|
582
584
|
}
|
|
583
585
|
|
|
584
586
|
/** @internal */
|
|
585
|
-
class BoundedPubSubSingleSubscription<A> implements Subscription<A> {
|
|
587
|
+
class BoundedPubSubSingleSubscription<in out A> implements Subscription<A> {
|
|
586
588
|
constructor(
|
|
587
589
|
private self: BoundedPubSubSingle<A>,
|
|
588
590
|
private subscriberIndex: number,
|
|
@@ -609,7 +611,7 @@ class BoundedPubSubSingleSubscription<A> implements Subscription<A> {
|
|
|
609
611
|
const elem = this.self.value
|
|
610
612
|
this.self.subscribers -= 1
|
|
611
613
|
if (this.self.subscribers === 0) {
|
|
612
|
-
this.self.value =
|
|
614
|
+
this.self.value = AbsentValue as unknown as A
|
|
613
615
|
}
|
|
614
616
|
this.subscriberIndex += 1
|
|
615
617
|
return elem
|
|
@@ -622,7 +624,7 @@ class BoundedPubSubSingleSubscription<A> implements Subscription<A> {
|
|
|
622
624
|
const a = this.self.value
|
|
623
625
|
this.self.subscribers -= 1
|
|
624
626
|
if (this.self.subscribers === 0) {
|
|
625
|
-
this.self.value =
|
|
627
|
+
this.self.value = AbsentValue as unknown as A
|
|
626
628
|
}
|
|
627
629
|
this.subscriberIndex += 1
|
|
628
630
|
return Chunk.of(a)
|
|
@@ -635,7 +637,7 @@ class BoundedPubSubSingleSubscription<A> implements Subscription<A> {
|
|
|
635
637
|
if (this.subscriberIndex !== this.self.publisherIndex) {
|
|
636
638
|
this.self.subscribers -= 1
|
|
637
639
|
if (this.self.subscribers === 0) {
|
|
638
|
-
this.self.value =
|
|
640
|
+
this.self.value = AbsentValue as unknown as A
|
|
639
641
|
}
|
|
640
642
|
}
|
|
641
643
|
}
|
|
@@ -643,9 +645,9 @@ class BoundedPubSubSingleSubscription<A> implements Subscription<A> {
|
|
|
643
645
|
}
|
|
644
646
|
|
|
645
647
|
/** @internal */
|
|
646
|
-
class Node<A> {
|
|
648
|
+
class Node<out A> {
|
|
647
649
|
constructor(
|
|
648
|
-
public value: A |
|
|
650
|
+
public value: A | AbsentValue,
|
|
649
651
|
public subscribers: number,
|
|
650
652
|
public next: Node<A> | null
|
|
651
653
|
) {
|
|
@@ -653,8 +655,8 @@ class Node<A> {
|
|
|
653
655
|
}
|
|
654
656
|
|
|
655
657
|
/** @internal */
|
|
656
|
-
class UnboundedPubSub<A> implements AtomicPubSub<A> {
|
|
657
|
-
publisherHead = new Node<A>(
|
|
658
|
+
class UnboundedPubSub<in out A> implements AtomicPubSub<A> {
|
|
659
|
+
publisherHead = new Node<A>(AbsentValue, 0, null)
|
|
658
660
|
publisherIndex = 0
|
|
659
661
|
publisherTail: Node<A>
|
|
660
662
|
subscribersIndex = 0
|
|
@@ -697,7 +699,7 @@ class UnboundedPubSub<A> implements AtomicPubSub<A> {
|
|
|
697
699
|
slide(): void {
|
|
698
700
|
if (this.publisherHead !== this.publisherTail) {
|
|
699
701
|
this.publisherHead = this.publisherHead.next!
|
|
700
|
-
this.publisherHead.value =
|
|
702
|
+
this.publisherHead.value = AbsentValue
|
|
701
703
|
this.subscribersIndex += 1
|
|
702
704
|
}
|
|
703
705
|
}
|
|
@@ -714,7 +716,7 @@ class UnboundedPubSub<A> implements AtomicPubSub<A> {
|
|
|
714
716
|
}
|
|
715
717
|
|
|
716
718
|
/** @internal */
|
|
717
|
-
class UnboundedPubSubSubscription<A> implements Subscription<A> {
|
|
719
|
+
class UnboundedPubSubSubscription<in out A> implements Subscription<A> {
|
|
718
720
|
constructor(
|
|
719
721
|
private self: UnboundedPubSub<A>,
|
|
720
722
|
private subscriberHead: Node<A>,
|
|
@@ -733,7 +735,7 @@ class UnboundedPubSubSubscription<A> implements Subscription<A> {
|
|
|
733
735
|
if (this.subscriberHead === this.self.publisherTail) {
|
|
734
736
|
loop = false
|
|
735
737
|
} else {
|
|
736
|
-
if (this.subscriberHead.next!.value !==
|
|
738
|
+
if (this.subscriberHead.next!.value !== AbsentValue) {
|
|
737
739
|
empty = false
|
|
738
740
|
loop = false
|
|
739
741
|
} else {
|
|
@@ -763,12 +765,12 @@ class UnboundedPubSubSubscription<A> implements Subscription<A> {
|
|
|
763
765
|
loop = false
|
|
764
766
|
} else {
|
|
765
767
|
const elem = this.subscriberHead.next!.value
|
|
766
|
-
if (elem !==
|
|
768
|
+
if (elem !== AbsentValue) {
|
|
767
769
|
polled = elem
|
|
768
770
|
this.subscriberHead.subscribers -= 1
|
|
769
771
|
if (this.subscriberHead.subscribers === 0) {
|
|
770
772
|
this.self.publisherHead = this.self.publisherHead.next!
|
|
771
|
-
this.self.publisherHead.value =
|
|
773
|
+
this.self.publisherHead.value = AbsentValue
|
|
772
774
|
this.self.subscribersIndex += 1
|
|
773
775
|
}
|
|
774
776
|
loop = false
|
|
@@ -782,7 +784,7 @@ class UnboundedPubSubSubscription<A> implements Subscription<A> {
|
|
|
782
784
|
|
|
783
785
|
pollUpTo(n: number): Chunk.Chunk<A> {
|
|
784
786
|
const builder: Array<A> = []
|
|
785
|
-
const default_ =
|
|
787
|
+
const default_ = AbsentValue
|
|
786
788
|
let i = 0
|
|
787
789
|
while (i !== n) {
|
|
788
790
|
const a = this.poll(default_ as unknown as A)
|
|
@@ -801,11 +803,11 @@ class UnboundedPubSubSubscription<A> implements Subscription<A> {
|
|
|
801
803
|
this.unsubscribed = true
|
|
802
804
|
this.self.publisherTail.subscribers -= 1
|
|
803
805
|
while (this.subscriberHead !== this.self.publisherTail) {
|
|
804
|
-
if (this.subscriberHead.next!.value !==
|
|
806
|
+
if (this.subscriberHead.next!.value !== AbsentValue) {
|
|
805
807
|
this.subscriberHead.subscribers -= 1
|
|
806
808
|
if (this.subscriberHead.subscribers === 0) {
|
|
807
809
|
this.self.publisherHead = this.self.publisherHead.next!
|
|
808
|
-
this.self.publisherHead.value =
|
|
810
|
+
this.self.publisherHead.value = AbsentValue
|
|
809
811
|
this.self.subscribersIndex += 1
|
|
810
812
|
}
|
|
811
813
|
}
|
|
@@ -816,7 +818,7 @@ class UnboundedPubSubSubscription<A> implements Subscription<A> {
|
|
|
816
818
|
}
|
|
817
819
|
|
|
818
820
|
/** @internal */
|
|
819
|
-
class SubscriptionImpl<A> implements Queue.Dequeue<A> {
|
|
821
|
+
class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
|
|
820
822
|
[queue.DequeueTypeId] = queue.dequeueVariance
|
|
821
823
|
|
|
822
824
|
constructor(
|
|
@@ -993,8 +995,9 @@ const takeRemainderLoop = <A>(
|
|
|
993
995
|
}
|
|
994
996
|
|
|
995
997
|
/** @internal */
|
|
996
|
-
class PubSubImpl<A> implements PubSub.PubSub<A> {
|
|
998
|
+
class PubSubImpl<in out A> implements PubSub.PubSub<A> {
|
|
997
999
|
readonly [queue.EnqueueTypeId] = queue.enqueueVariance
|
|
1000
|
+
readonly [queue.DequeueTypeId] = queue.dequeueVariance
|
|
998
1001
|
|
|
999
1002
|
constructor(
|
|
1000
1003
|
readonly pubsub: AtomicPubSub<A>,
|
|
@@ -1176,7 +1179,7 @@ const nextPow2 = (n: number): number => {
|
|
|
1176
1179
|
/** @internal */
|
|
1177
1180
|
const ensureCapacity = (capacity: number): void => {
|
|
1178
1181
|
if (capacity <= 0) {
|
|
1179
|
-
throw
|
|
1182
|
+
throw new core.InvalidPubSubCapacityException(`Cannot construct PubSub with capacity of ${capacity}`)
|
|
1180
1183
|
}
|
|
1181
1184
|
}
|
|
1182
1185
|
|
|
@@ -1228,7 +1231,7 @@ const unsafeRemove = <A>(queue: MutableQueue.MutableQueue<A>, value: A): void =>
|
|
|
1228
1231
|
*
|
|
1229
1232
|
* @internal
|
|
1230
1233
|
*/
|
|
1231
|
-
export interface PubSubStrategy<A> {
|
|
1234
|
+
export interface PubSubStrategy<in out A> {
|
|
1232
1235
|
/**
|
|
1233
1236
|
* Describes any finalization logic associated with this strategy.
|
|
1234
1237
|
*/
|
|
@@ -1238,42 +1241,42 @@ export interface PubSubStrategy<A> {
|
|
|
1238
1241
|
* Describes how publishers should signal to subscribers that they are
|
|
1239
1242
|
* waiting for space to become available in the `PubSub`.
|
|
1240
1243
|
*/
|
|
1241
|
-
|
|
1244
|
+
handleSurplus(
|
|
1242
1245
|
pubsub: AtomicPubSub<A>,
|
|
1243
1246
|
subscribers: Subscribers<A>,
|
|
1244
1247
|
elements: Iterable<A>,
|
|
1245
1248
|
isShutdown: MutableRef.MutableRef<boolean>
|
|
1246
|
-
)
|
|
1249
|
+
): Effect.Effect<never, never, boolean>
|
|
1247
1250
|
|
|
1248
1251
|
/**
|
|
1249
1252
|
* Describes how subscribers should signal to publishers waiting for space
|
|
1250
1253
|
* to become available in the `PubSub` that space may be available.
|
|
1251
1254
|
*/
|
|
1252
|
-
|
|
1255
|
+
unsafeOnPubSubEmptySpace(
|
|
1253
1256
|
pubsub: AtomicPubSub<A>,
|
|
1254
1257
|
subscribers: Subscribers<A>
|
|
1255
|
-
)
|
|
1258
|
+
): void
|
|
1256
1259
|
|
|
1257
1260
|
/**
|
|
1258
1261
|
* Describes how subscribers waiting for additional values from the `PubSub`
|
|
1259
1262
|
* should take those values and signal to publishers that they are no
|
|
1260
1263
|
* longer waiting for additional values.
|
|
1261
1264
|
*/
|
|
1262
|
-
|
|
1265
|
+
unsafeCompletePollers(
|
|
1263
1266
|
pubsub: AtomicPubSub<A>,
|
|
1264
1267
|
subscribers: Subscribers<A>,
|
|
1265
1268
|
subscription: Subscription<A>,
|
|
1266
1269
|
pollers: MutableQueue.MutableQueue<Deferred.Deferred<never, A>>
|
|
1267
|
-
)
|
|
1270
|
+
): void
|
|
1268
1271
|
|
|
1269
1272
|
/**
|
|
1270
1273
|
* Describes how publishers should signal to subscribers waiting for
|
|
1271
1274
|
* additional values from the `PubSub` that new values are available.
|
|
1272
1275
|
*/
|
|
1273
|
-
|
|
1276
|
+
unsafeCompleteSubscribers(
|
|
1274
1277
|
pubsub: AtomicPubSub<A>,
|
|
1275
1278
|
subscribers: Subscribers<A>
|
|
1276
|
-
)
|
|
1279
|
+
): void
|
|
1277
1280
|
}
|
|
1278
1281
|
|
|
1279
1282
|
/**
|
|
@@ -1285,7 +1288,7 @@ export interface PubSubStrategy<A> {
|
|
|
1285
1288
|
*
|
|
1286
1289
|
* @internal
|
|
1287
1290
|
*/
|
|
1288
|
-
class BackPressureStrategy<A> implements PubSubStrategy<A> {
|
|
1291
|
+
class BackPressureStrategy<in out A> implements PubSubStrategy<A> {
|
|
1289
1292
|
publishers: MutableQueue.MutableQueue<
|
|
1290
1293
|
readonly [
|
|
1291
1294
|
A,
|
|
@@ -1410,7 +1413,7 @@ class BackPressureStrategy<A> implements PubSubStrategy<A> {
|
|
|
1410
1413
|
*
|
|
1411
1414
|
* @internal
|
|
1412
1415
|
*/
|
|
1413
|
-
export class DroppingStrategy<A> implements PubSubStrategy<A> {
|
|
1416
|
+
export class DroppingStrategy<in out A> implements PubSubStrategy<A> {
|
|
1414
1417
|
get shutdown(): Effect.Effect<never, never, void> {
|
|
1415
1418
|
return core.unit
|
|
1416
1419
|
}
|
|
@@ -1454,7 +1457,7 @@ export class DroppingStrategy<A> implements PubSubStrategy<A> {
|
|
|
1454
1457
|
*
|
|
1455
1458
|
* @internal
|
|
1456
1459
|
*/
|
|
1457
|
-
export class SlidingStrategy<A> implements PubSubStrategy<A> {
|
|
1460
|
+
export class SlidingStrategy<in out A> implements PubSubStrategy<A> {
|
|
1458
1461
|
get shutdown(): Effect.Effect<never, never, void> {
|
|
1459
1462
|
return core.unit
|
|
1460
1463
|
}
|
package/src/internal/queue.ts
CHANGED
|
@@ -32,9 +32,22 @@ export const QueueStrategyTypeId: Queue.QueueStrategyTypeId = Symbol.for(
|
|
|
32
32
|
QueueStrategySymbolKey
|
|
33
33
|
) as Queue.QueueStrategyTypeId
|
|
34
34
|
|
|
35
|
+
/** @internal */
|
|
36
|
+
const BackingQueueSymbolKey = "effect/BackingQueue"
|
|
37
|
+
|
|
38
|
+
/** @internal */
|
|
39
|
+
export const BackingQueueTypeId: Queue.BackingQueueTypeId = Symbol.for(
|
|
40
|
+
BackingQueueSymbolKey
|
|
41
|
+
) as Queue.BackingQueueTypeId
|
|
42
|
+
|
|
35
43
|
/** @internal */
|
|
36
44
|
const queueStrategyVariance = {
|
|
37
|
-
_A: (_:
|
|
45
|
+
_A: (_: any) => _
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** @internal */
|
|
49
|
+
const backingQueueVariance = {
|
|
50
|
+
_A: (_: any) => _
|
|
38
51
|
}
|
|
39
52
|
|
|
40
53
|
/** @internal */
|
|
@@ -48,7 +61,7 @@ export const dequeueVariance = {
|
|
|
48
61
|
}
|
|
49
62
|
|
|
50
63
|
/** @internal */
|
|
51
|
-
class QueueImpl<A> implements Queue.Queue<A> {
|
|
64
|
+
class QueueImpl<in out A> implements Queue.Queue<A> {
|
|
52
65
|
readonly [EnqueueTypeId] = enqueueVariance
|
|
53
66
|
readonly [DequeueTypeId] = dequeueVariance
|
|
54
67
|
|
|
@@ -386,7 +399,8 @@ export const make = <A>(
|
|
|
386
399
|
)
|
|
387
400
|
|
|
388
401
|
/** @internal */
|
|
389
|
-
export class BackingQueueFromMutableQueue<A> implements Queue.BackingQueue<A> {
|
|
402
|
+
export class BackingQueueFromMutableQueue<in out A> implements Queue.BackingQueue<A> {
|
|
403
|
+
readonly [BackingQueueTypeId] = backingQueueVariance
|
|
390
404
|
constructor(readonly mutable: MutableQueue.MutableQueue<A>) {}
|
|
391
405
|
poll<Def>(def: Def): A | Def {
|
|
392
406
|
return MutableQueue.poll(this.mutable, def)
|
|
@@ -503,7 +517,7 @@ export const droppingStrategy = <A>(): Queue.Strategy<A> => new DroppingStrategy
|
|
|
503
517
|
export const slidingStrategy = <A>(): Queue.Strategy<A> => new SlidingStrategy()
|
|
504
518
|
|
|
505
519
|
/** @internal */
|
|
506
|
-
class BackPressureStrategy<A> implements Queue.Strategy<A> {
|
|
520
|
+
class BackPressureStrategy<in out A> implements Queue.Strategy<A> {
|
|
507
521
|
readonly [QueueStrategyTypeId] = queueStrategyVariance
|
|
508
522
|
|
|
509
523
|
readonly putters = MutableQueue.unbounded<readonly [A, Deferred.Deferred<never, boolean>, boolean]>()
|
|
@@ -605,7 +619,7 @@ class BackPressureStrategy<A> implements Queue.Strategy<A> {
|
|
|
605
619
|
}
|
|
606
620
|
|
|
607
621
|
/** @internal */
|
|
608
|
-
class DroppingStrategy<A> implements Queue.Strategy<A> {
|
|
622
|
+
class DroppingStrategy<in out A> implements Queue.Strategy<A> {
|
|
609
623
|
readonly [QueueStrategyTypeId] = queueStrategyVariance
|
|
610
624
|
|
|
611
625
|
surplusSize(): number {
|
|
@@ -637,7 +651,7 @@ class DroppingStrategy<A> implements Queue.Strategy<A> {
|
|
|
637
651
|
}
|
|
638
652
|
|
|
639
653
|
/** @internal */
|
|
640
|
-
class SlidingStrategy<A> implements Queue.Strategy<A> {
|
|
654
|
+
class SlidingStrategy<in out A> implements Queue.Strategy<A> {
|
|
641
655
|
readonly [QueueStrategyTypeId] = queueStrategyVariance
|
|
642
656
|
|
|
643
657
|
surplusSize(): number {
|
|
@@ -11,7 +11,7 @@ export const Direction = {
|
|
|
11
11
|
} as const
|
|
12
12
|
|
|
13
13
|
/** @internal */
|
|
14
|
-
export class RedBlackTreeIterator<K, V> implements Iterator<[K, V]> {
|
|
14
|
+
export class RedBlackTreeIterator<in out K, out V> implements Iterator<[K, V]> {
|
|
15
15
|
private count = 0
|
|
16
16
|
|
|
17
17
|
constructor(
|
|
@@ -19,13 +19,18 @@ const RedBlackTreeSymbolKey = "effect/RedBlackTree"
|
|
|
19
19
|
export const RedBlackTreeTypeId: RBT.TypeId = Symbol.for(RedBlackTreeSymbolKey) as RBT.TypeId
|
|
20
20
|
|
|
21
21
|
/** @internal */
|
|
22
|
-
export interface RedBlackTreeImpl<K, V> extends RBT.RedBlackTree<K, V> {
|
|
22
|
+
export interface RedBlackTreeImpl<in out K, out V> extends RBT.RedBlackTree<K, V> {
|
|
23
23
|
readonly _ord: Order.Order<K>
|
|
24
24
|
readonly _root: Node.Node<K, V> | undefined
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
const redBlackTreeVariance = {
|
|
28
|
+
_Key: (_: any) => _,
|
|
29
|
+
_Value: (_: never) => _
|
|
30
|
+
}
|
|
31
|
+
|
|
27
32
|
const RedBlackTreeProto: RBT.RedBlackTree<unknown, unknown> = {
|
|
28
|
-
[RedBlackTreeTypeId]:
|
|
33
|
+
[RedBlackTreeTypeId]: redBlackTreeVariance,
|
|
29
34
|
[Hash.symbol](): number {
|
|
30
35
|
let hash = Hash.hash(RedBlackTreeSymbolKey)
|
|
31
36
|
for (const item of this) {
|
package/src/internal/ref.ts
CHANGED
|
@@ -14,7 +14,7 @@ export const refVariance = {
|
|
|
14
14
|
_A: (_: any) => _
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
class RefImpl<A> implements Ref.Ref<A> {
|
|
17
|
+
class RefImpl<in out A> implements Ref.Ref<A> {
|
|
18
18
|
readonly [RefTypeId] = refVariance
|
|
19
19
|
constructor(readonly ref: MutableRef.MutableRef<A>) {}
|
|
20
20
|
modify<B>(f: (a: A) => readonly [B, A]): Effect.Effect<never, never, B> {
|
package/src/internal/request.ts
CHANGED
|
@@ -2,9 +2,10 @@ import type * as Effect from "../Effect.js"
|
|
|
2
2
|
import { dual } from "../Function.js"
|
|
3
3
|
import { hasProperty } from "../Predicate.js"
|
|
4
4
|
import type * as Request from "../Request.js"
|
|
5
|
+
import type * as Types from "../Types.js"
|
|
5
6
|
import * as completedRequestMap from "./completedRequestMap.js"
|
|
6
7
|
import * as core from "./core.js"
|
|
7
|
-
import
|
|
8
|
+
import { StructuralPrototype } from "./effectable.js"
|
|
8
9
|
|
|
9
10
|
/** @internal */
|
|
10
11
|
const RequestSymbolKey = "effect/Request"
|
|
@@ -20,28 +21,53 @@ const requestVariance = {
|
|
|
20
21
|
_A: (_: never) => _
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
const RequestPrototype = {
|
|
25
|
+
...StructuralPrototype,
|
|
26
|
+
[RequestTypeId]: requestVariance
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
/** @internal */
|
|
24
30
|
export const isRequest = (u: unknown): u is Request.Request<unknown, unknown> => hasProperty(u, RequestTypeId)
|
|
25
31
|
|
|
26
32
|
/** @internal */
|
|
27
33
|
export const of = <R extends Request.Request<any, any>>(): Request.Request.Constructor<R> => (args) =>
|
|
28
|
-
|
|
29
|
-
Data.struct({
|
|
30
|
-
[RequestTypeId]: requestVariance,
|
|
31
|
-
...args
|
|
32
|
-
})
|
|
34
|
+
Object.assign(Object.create(RequestPrototype), args)
|
|
33
35
|
|
|
34
36
|
/** @internal */
|
|
35
37
|
export const tagged = <R extends Request.Request<any, any> & { _tag: string }>(
|
|
36
38
|
tag: R["_tag"]
|
|
37
39
|
): Request.Request.Constructor<R, "_tag"> =>
|
|
38
|
-
(args) =>
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
(args) => {
|
|
41
|
+
const request = Object.assign(Object.create(RequestPrototype), args)
|
|
42
|
+
request._tag = tag
|
|
43
|
+
return request
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** @internal */
|
|
47
|
+
export const Class: new<Error, Success, A extends Record<string, any>>(
|
|
48
|
+
args: Types.Equals<Omit<A, keyof Request.Request<unknown, unknown>>, {}> extends true ? void
|
|
49
|
+
: { readonly [P in keyof A as P extends keyof Request.Request<unknown, unknown> ? never : P]: A[P] }
|
|
50
|
+
) => Request.Request<Error, Success> & Readonly<A> = (function() {
|
|
51
|
+
function Class(this: any, args: any) {
|
|
52
|
+
if (args) {
|
|
53
|
+
Object.assign(this, args)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
Class.prototype = RequestPrototype
|
|
57
|
+
return Class as any
|
|
58
|
+
})()
|
|
59
|
+
|
|
60
|
+
/** @internal */
|
|
61
|
+
export const TaggedClass = <Tag extends string>(
|
|
62
|
+
tag: Tag
|
|
63
|
+
): new<Error, Success, A extends Record<string, any>>(
|
|
64
|
+
args: Types.Equals<Omit<A, keyof Request.Request<unknown, unknown>>, {}> extends true ? void
|
|
65
|
+
: { readonly [P in keyof A as P extends "_tag" | keyof Request.Request<unknown, unknown> ? never : P]: A[P] }
|
|
66
|
+
) => Request.Request<Error, Success> & Readonly<A> & { readonly _tag: Tag } => {
|
|
67
|
+
return class TaggedClass extends Class<any, any, any> {
|
|
68
|
+
readonly _tag = tag
|
|
69
|
+
} as any
|
|
70
|
+
}
|
|
45
71
|
|
|
46
72
|
/** @internal */
|
|
47
73
|
export const complete = dual<
|
package/src/internal/resource.ts
CHANGED
|
@@ -17,9 +17,9 @@ export const ResourceTypeId: Resource.ResourceTypeId = Symbol.for(
|
|
|
17
17
|
) as Resource.ResourceTypeId
|
|
18
18
|
|
|
19
19
|
/** @internal */
|
|
20
|
-
const
|
|
21
|
-
_E: (_:
|
|
22
|
-
_A: (_:
|
|
20
|
+
const resourceVariance = {
|
|
21
|
+
_E: (_: any) => _,
|
|
22
|
+
_A: (_: any) => _
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/** @internal */
|
|
@@ -46,7 +46,7 @@ export const manual = <R, E, A>(
|
|
|
46
46
|
pipe(
|
|
47
47
|
scopedRef.fromAcquire(core.exit(acquire)),
|
|
48
48
|
core.map((ref) => ({
|
|
49
|
-
[ResourceTypeId]:
|
|
49
|
+
[ResourceTypeId]: resourceVariance,
|
|
50
50
|
scopedRef: ref,
|
|
51
51
|
acquire: core.provideContext(acquire, env)
|
|
52
52
|
}))
|
package/src/internal/runtime.ts
CHANGED
|
@@ -14,7 +14,6 @@ import * as Predicate from "../Predicate.js"
|
|
|
14
14
|
import type * as Runtime from "../Runtime.js"
|
|
15
15
|
import type * as RuntimeFlags from "../RuntimeFlags.js"
|
|
16
16
|
import * as _scheduler from "../Scheduler.js"
|
|
17
|
-
import { NoSuchElementException } from "./cause.js"
|
|
18
17
|
import * as InternalCause from "./cause.js"
|
|
19
18
|
import * as core from "./core.js"
|
|
20
19
|
import * as FiberRuntime from "./fiberRuntime.js"
|
|
@@ -208,7 +207,7 @@ const fastPath = <R, E, A>(effect: Effect.Effect<R, E, A>): Exit.Exit<E, A> | un
|
|
|
208
207
|
}
|
|
209
208
|
case "None": {
|
|
210
209
|
// @ts-expect-error
|
|
211
|
-
return core.exitFail(NoSuchElementException())
|
|
210
|
+
return core.exitFail(core.NoSuchElementException())
|
|
212
211
|
}
|
|
213
212
|
}
|
|
214
213
|
}
|
|
@@ -258,7 +257,7 @@ export const unsafeRunPromiseExit =
|
|
|
258
257
|
})
|
|
259
258
|
|
|
260
259
|
/** @internal */
|
|
261
|
-
export class RuntimeImpl<R> implements Runtime.Runtime<R> {
|
|
260
|
+
export class RuntimeImpl<in R> implements Runtime.Runtime<R> {
|
|
262
261
|
constructor(
|
|
263
262
|
readonly context: Context.Context<R>,
|
|
264
263
|
readonly runtimeFlags: RuntimeFlags.RuntimeFlags,
|