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/schedule.ts
CHANGED
|
@@ -17,7 +17,6 @@ import type * as Schedule from "../Schedule.js"
|
|
|
17
17
|
import * as ScheduleDecision from "../ScheduleDecision.js"
|
|
18
18
|
import * as Interval from "../ScheduleInterval.js"
|
|
19
19
|
import * as Intervals from "../ScheduleIntervals.js"
|
|
20
|
-
import * as internalCause from "./cause.js"
|
|
21
20
|
import * as effect from "./core-effect.js"
|
|
22
21
|
import * as core from "./core.js"
|
|
23
22
|
import * as ref from "./ref.js"
|
|
@@ -85,7 +84,7 @@ class ScheduleDriverImpl<Env, In, Out> implements Schedule.ScheduleDriver<Env, I
|
|
|
85
84
|
return core.flatMap(ref.get(this.ref), ([element, _]) => {
|
|
86
85
|
switch (element._tag) {
|
|
87
86
|
case "None": {
|
|
88
|
-
return core.failSync(() =>
|
|
87
|
+
return core.failSync(() => new core.NoSuchElementException())
|
|
89
88
|
}
|
|
90
89
|
case "Some": {
|
|
91
90
|
return core.succeed(element.value)
|
|
@@ -422,7 +421,7 @@ export const dayOfMonth = (day: number): Schedule.Schedule<never, unknown, numbe
|
|
|
422
421
|
(now, _, state) => {
|
|
423
422
|
if (!Number.isInteger(day) || day < 1 || 31 < day) {
|
|
424
423
|
return core.dieSync(() =>
|
|
425
|
-
|
|
424
|
+
new core.IllegalArgumentException(
|
|
426
425
|
`Invalid argument in: dayOfMonth(${day}). Must be in range 1...31`
|
|
427
426
|
)
|
|
428
427
|
)
|
|
@@ -451,7 +450,7 @@ export const dayOfWeek = (day: number): Schedule.Schedule<never, unknown, number
|
|
|
451
450
|
(now, _, state) => {
|
|
452
451
|
if (!Number.isInteger(day) || day < 1 || 7 < day) {
|
|
453
452
|
return core.dieSync(() =>
|
|
454
|
-
|
|
453
|
+
new core.IllegalArgumentException(
|
|
455
454
|
`Invalid argument in: dayOfWeek(${day}). Must be in range 1 (Monday)...7 (Sunday)`
|
|
456
455
|
)
|
|
457
456
|
)
|
|
@@ -745,7 +744,7 @@ export const hourOfDay = (hour: number): Schedule.Schedule<never, unknown, numbe
|
|
|
745
744
|
(now, _, state) => {
|
|
746
745
|
if (!Number.isInteger(hour) || hour < 0 || 23 < hour) {
|
|
747
746
|
return core.dieSync(() =>
|
|
748
|
-
|
|
747
|
+
new core.IllegalArgumentException(
|
|
749
748
|
`Invalid argument in: hourOfDay(${hour}). Must be in range 0...23`
|
|
750
749
|
)
|
|
751
750
|
)
|
|
@@ -1001,7 +1000,7 @@ export const minuteOfHour = (minute: number): Schedule.Schedule<never, unknown,
|
|
|
1001
1000
|
(now, _, state) => {
|
|
1002
1001
|
if (!Number.isInteger(minute) || minute < 0 || 59 < minute) {
|
|
1003
1002
|
return core.dieSync(() =>
|
|
1004
|
-
|
|
1003
|
+
new core.IllegalArgumentException(
|
|
1005
1004
|
`Invalid argument in: minuteOfHour(${minute}). Must be in range 0...59`
|
|
1006
1005
|
)
|
|
1007
1006
|
)
|
|
@@ -1314,7 +1313,7 @@ export const secondOfMinute = (second: number): Schedule.Schedule<never, unknown
|
|
|
1314
1313
|
(now, _, state) => {
|
|
1315
1314
|
if (!Number.isInteger(second) || second < 0 || 59 < second) {
|
|
1316
1315
|
return core.dieSync(() =>
|
|
1317
|
-
|
|
1316
|
+
new core.IllegalArgumentException(
|
|
1318
1317
|
`Invalid argument in: secondOfMinute(${second}). Must be in range 0...59`
|
|
1319
1318
|
)
|
|
1320
1319
|
)
|
|
@@ -25,7 +25,7 @@ import * as fiberRuntime from "./fiberRuntime.js"
|
|
|
25
25
|
*
|
|
26
26
|
* @internal
|
|
27
27
|
*/
|
|
28
|
-
export interface CacheState<Key, Error, Value> {
|
|
28
|
+
export interface CacheState<in out Key, out Error, out Value> {
|
|
29
29
|
map: MutableHashMap.MutableHashMap<Key, MapValue<Key, Error, Value>> // mutable by design
|
|
30
30
|
keys: _cache.KeySet<Key> // mutable by design
|
|
31
31
|
accesses: MutableQueue.MutableQueue<_cache.MapKey<Key>> // mutable by design
|
|
@@ -80,7 +80,7 @@ export type MapValue<Key, Error, Value> =
|
|
|
80
80
|
| Refreshing<Key, Error, Value>
|
|
81
81
|
|
|
82
82
|
/** @internal */
|
|
83
|
-
export interface Complete<Key, Error, Value> {
|
|
83
|
+
export interface Complete<out Key, out Error, out Value> {
|
|
84
84
|
readonly _tag: "Complete"
|
|
85
85
|
readonly key: _cache.MapKey<Key>
|
|
86
86
|
readonly exit: Exit.Exit<Error, readonly [Value, Scope.Scope.Finalizer]>
|
|
@@ -90,14 +90,14 @@ export interface Complete<Key, Error, Value> {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
/** @internal */
|
|
93
|
-
export interface Pending<Key, Error, Value> {
|
|
93
|
+
export interface Pending<out Key, out Error, out Value> {
|
|
94
94
|
readonly _tag: "Pending"
|
|
95
95
|
readonly key: _cache.MapKey<Key>
|
|
96
96
|
readonly scoped: Effect.Effect<never, never, Effect.Effect<Scope.Scope, Error, Value>>
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
/** @internal */
|
|
100
|
-
export interface Refreshing<Key, Error, Value> {
|
|
100
|
+
export interface Refreshing<out Key, out Error, out Value> {
|
|
101
101
|
readonly _tag: "Refreshing"
|
|
102
102
|
readonly scoped: Effect.Effect<never, never, Effect.Effect<Scope.Scope, Error, Value>>
|
|
103
103
|
readonly complete: Complete<Key, Error, Value>
|
|
@@ -182,7 +182,9 @@ const scopedCacheVariance = {
|
|
|
182
182
|
_Value: (_: never) => _
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
-
class ScopedCacheImpl<Key, Environment, Error,
|
|
185
|
+
class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value>
|
|
186
|
+
implements ScopedCache.ScopedCache<Key, Error, Value>
|
|
187
|
+
{
|
|
186
188
|
readonly [ScopedCacheTypeId] = scopedCacheVariance
|
|
187
189
|
readonly cacheState: CacheState<Key, Error, Value>
|
|
188
190
|
constructor(
|
package/src/internal/sink.ts
CHANGED
|
@@ -38,7 +38,7 @@ const sinkVariance = {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/** @internal */
|
|
41
|
-
export class SinkImpl<R, E, In, L, Z> implements Sink.Sink<R, E, In, L, Z> {
|
|
41
|
+
export class SinkImpl<out R, out E, in In, out L, out Z> implements Sink.Sink<R, E, In, L, Z> {
|
|
42
42
|
readonly [SinkTypeId] = sinkVariance
|
|
43
43
|
constructor(
|
|
44
44
|
readonly channel: Channel.Channel<R, never, Chunk.Chunk<In>, unknown, E, Chunk.Chunk<L>, Z>
|
|
@@ -195,7 +195,10 @@ export const collectAllUntilEffect = <In, R, E>(p: (input: In) => Effect.Effect<
|
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
/** @internal */
|
|
198
|
-
export const collectAllWhile
|
|
198
|
+
export const collectAllWhile: {
|
|
199
|
+
<In, Out extends In>(refinement: Refinement<In, Out>): Sink.Sink<never, never, In, In, Chunk.Chunk<Out>>
|
|
200
|
+
<In>(predicate: Predicate<In>): Sink.Sink<never, never, In, In, Chunk.Chunk<In>>
|
|
201
|
+
} = <In>(predicate: Predicate<In>): Sink.Sink<never, never, In, In, Chunk.Chunk<In>> =>
|
|
199
202
|
fromChannel(collectAllWhileReader(predicate, Chunk.empty()))
|
|
200
203
|
|
|
201
204
|
/** @internal */
|
|
@@ -432,7 +435,7 @@ export const die = (defect: unknown): Sink.Sink<never, never, unknown, never, ne
|
|
|
432
435
|
|
|
433
436
|
/** @internal */
|
|
434
437
|
export const dieMessage = (message: string): Sink.Sink<never, never, unknown, never, never> =>
|
|
435
|
-
failCause(Cause.die(Cause.RuntimeException(message)))
|
|
438
|
+
failCause(Cause.die(new Cause.RuntimeException(message)))
|
|
436
439
|
|
|
437
440
|
/** @internal */
|
|
438
441
|
export const dieSync = (evaluate: LazyArg<unknown>): Sink.Sink<never, never, unknown, never, never> =>
|
package/src/internal/stack.ts
CHANGED
package/src/internal/stm/core.ts
CHANGED
|
@@ -417,7 +417,7 @@ export const contextWithSTM = <R0, R, E, A>(
|
|
|
417
417
|
): STM.STM<R0 | R, E, A> => flatMap(context<R0>(), f)
|
|
418
418
|
|
|
419
419
|
/** @internal */
|
|
420
|
-
export class STMDriver<R, E, A> {
|
|
420
|
+
export class STMDriver<in out R, out E, out A> {
|
|
421
421
|
private contStack: Array<Continuation> = []
|
|
422
422
|
private env: Context.Context<unknown>
|
|
423
423
|
|
|
@@ -483,7 +483,7 @@ export class STMDriver<R, E, A> {
|
|
|
483
483
|
break
|
|
484
484
|
}
|
|
485
485
|
case "None": {
|
|
486
|
-
curr = fail(Cause.NoSuchElementException()) as Primitive
|
|
486
|
+
curr = fail(new Cause.NoSuchElementException()) as Primitive
|
|
487
487
|
break
|
|
488
488
|
}
|
|
489
489
|
case "Right": {
|
|
@@ -616,7 +616,7 @@ export const die = (defect: unknown): STM.STM<never, never, never> => dieSync(()
|
|
|
616
616
|
|
|
617
617
|
/** @internal */
|
|
618
618
|
export const dieMessage = (message: string): STM.STM<never, never, never> =>
|
|
619
|
-
dieSync(() => Cause.RuntimeException(message))
|
|
619
|
+
dieSync(() => new Cause.RuntimeException(message))
|
|
620
620
|
|
|
621
621
|
/** @internal */
|
|
622
622
|
export const dieSync = (evaluate: LazyArg<unknown>): STM.STM<never, never, never> => {
|
|
@@ -20,7 +20,7 @@ export type STMStateTypeId = typeof STMStateTypeId
|
|
|
20
20
|
export type STMState<E, A> = Done<E, A> | Interrupted | Running
|
|
21
21
|
|
|
22
22
|
/** @internal */
|
|
23
|
-
export interface Done<E, A> extends Equal.Equal {
|
|
23
|
+
export interface Done<out E, out A> extends Equal.Equal {
|
|
24
24
|
readonly [STMStateTypeId]: STMStateTypeId
|
|
25
25
|
readonly _tag: OpCodes.OP_DONE
|
|
26
26
|
readonly exit: Exit.Exit<E, A>
|
|
@@ -20,7 +20,7 @@ export type TExit<E, A> = Fail<E> | Die | Interrupt | Succeed<A> | Retry
|
|
|
20
20
|
/** @internal */
|
|
21
21
|
export declare namespace TExit {
|
|
22
22
|
/** @internal */
|
|
23
|
-
export interface Variance<E, A> {
|
|
23
|
+
export interface Variance<out E, out A> {
|
|
24
24
|
readonly [TExitTypeId]: {
|
|
25
25
|
readonly _E: (_: never) => E
|
|
26
26
|
readonly _A: (_: never) => A
|
|
@@ -35,7 +35,7 @@ const variance = {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/** @internal */
|
|
38
|
-
export interface Fail<E> extends TExit.Variance<E, never>, Equal.Equal {
|
|
38
|
+
export interface Fail<out E> extends TExit.Variance<E, never>, Equal.Equal {
|
|
39
39
|
readonly _tag: OpCodes.OP_FAIL
|
|
40
40
|
readonly error: E
|
|
41
41
|
}
|
|
@@ -53,7 +53,7 @@ export interface Interrupt extends TExit.Variance<never, never>, Equal.Equal {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/** @internal */
|
|
56
|
-
export interface Succeed<A> extends TExit.Variance<never, A>, Equal.Equal {
|
|
56
|
+
export interface Succeed<out A> extends TExit.Variance<never, A>, Equal.Equal {
|
|
57
57
|
readonly _tag: OpCodes.OP_SUCCEED
|
|
58
58
|
readonly value: A
|
|
59
59
|
}
|
package/src/internal/stm/stm.ts
CHANGED
|
@@ -1250,11 +1250,11 @@ export const partition = dual<
|
|
|
1250
1250
|
f: (a: A) => STM.STM<R, E, A2>
|
|
1251
1251
|
) => (
|
|
1252
1252
|
elements: Iterable<A>
|
|
1253
|
-
) => STM.STM<R, never, [Array<E>, Array<A2>]>,
|
|
1253
|
+
) => STM.STM<R, never, [excluded: Array<E>, satisfying: Array<A2>]>,
|
|
1254
1254
|
<R, E, A, A2>(
|
|
1255
1255
|
elements: Iterable<A>,
|
|
1256
1256
|
f: (a: A) => STM.STM<R, E, A2>
|
|
1257
|
-
) => STM.STM<R, never, [Array<E>, Array<A2>]>
|
|
1257
|
+
) => STM.STM<R, never, [excluded: Array<E>, satisfying: Array<A2>]>
|
|
1258
1258
|
>(2, (elements, f) =>
|
|
1259
1259
|
pipe(
|
|
1260
1260
|
forEach(elements, (a) => either(f(a))),
|
|
@@ -18,11 +18,11 @@ export const TArrayTypeId: TArray.TArrayTypeId = Symbol.for(TArraySymbolKey) as
|
|
|
18
18
|
|
|
19
19
|
/** @internal */
|
|
20
20
|
const tArrayVariance = {
|
|
21
|
-
_A: (_:
|
|
21
|
+
_A: (_: any) => _
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/** @internal */
|
|
25
|
-
export class TArrayImpl<A> implements TArray.TArray<A> {
|
|
25
|
+
export class TArrayImpl<in out A> implements TArray.TArray<A> {
|
|
26
26
|
readonly [TArrayTypeId] = tArrayVariance
|
|
27
27
|
constructor(readonly chunk: Array<TRef.TRef<A>>) {}
|
|
28
28
|
}
|
|
@@ -18,12 +18,12 @@ export const TDeferredTypeId: TDeferred.TDeferredTypeId = Symbol.for(
|
|
|
18
18
|
|
|
19
19
|
/** @internal */
|
|
20
20
|
const tDeferredVariance = {
|
|
21
|
-
_E: (_:
|
|
22
|
-
_A: (_:
|
|
21
|
+
_E: (_: any) => _,
|
|
22
|
+
_A: (_: any) => _
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/** @internal */
|
|
26
|
-
class TDeferredImpl<E, A> implements TDeferred.TDeferred<E, A> {
|
|
26
|
+
class TDeferredImpl<in out E, in out A> implements TDeferred.TDeferred<E, A> {
|
|
27
27
|
readonly [TDeferredTypeId] = tDeferredVariance
|
|
28
28
|
constructor(readonly ref: TRef.TRef<Option.Option<Either.Either<E, A>>>) {}
|
|
29
29
|
}
|
package/src/internal/stm/tMap.ts
CHANGED
|
@@ -27,12 +27,12 @@ export const TMapTypeId: TMap.TMapTypeId = Symbol.for(
|
|
|
27
27
|
|
|
28
28
|
/** @internal */
|
|
29
29
|
const tMapVariance = {
|
|
30
|
-
_K: (_:
|
|
31
|
-
_V: (_:
|
|
30
|
+
_K: (_: any) => _,
|
|
31
|
+
_V: (_: any) => _
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/** @internal */
|
|
35
|
-
class TMapImpl<K, V> implements TMap.TMap<K, V> {
|
|
35
|
+
class TMapImpl<in out K, in out V> implements TMap.TMap<K, V> {
|
|
36
36
|
readonly [TMapTypeId] = tMapVariance
|
|
37
37
|
constructor(
|
|
38
38
|
readonly tBuckets: TRef.TRef<TArray.TArray<Chunk.Chunk<readonly [K, V]>>>,
|
|
@@ -21,11 +21,11 @@ export const TPriorityQueueTypeId: TPriorityQueue.TPriorityQueueTypeId = Symbol.
|
|
|
21
21
|
|
|
22
22
|
/** @internal */
|
|
23
23
|
const tPriorityQueueVariance = {
|
|
24
|
-
_A: (_:
|
|
24
|
+
_A: (_: any) => _
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
/** @internal */
|
|
28
|
-
export class TPriorityQueueImpl<A> implements TPriorityQueue.TPriorityQueue<A> {
|
|
28
|
+
export class TPriorityQueueImpl<in out A> implements TPriorityQueue.TPriorityQueue<A> {
|
|
29
29
|
readonly [TPriorityQueueTypeId] = tPriorityQueueVariance
|
|
30
30
|
constructor(readonly ref: TRef.TRef<SortedMap.SortedMap<A, [A, ...Array<A>]>>) {}
|
|
31
31
|
}
|
|
@@ -20,16 +20,19 @@ const TPubSubSymbolKey = "effect/TPubSub"
|
|
|
20
20
|
/** @internal */
|
|
21
21
|
export const TPubSubTypeId: TPubSub.TPubSubTypeId = Symbol.for(TPubSubSymbolKey) as TPubSub.TPubSubTypeId
|
|
22
22
|
|
|
23
|
+
const AbsentValue = Symbol.for("effect/TPubSub/AbsentValue")
|
|
24
|
+
type AbsentValue = typeof AbsentValue
|
|
25
|
+
|
|
23
26
|
/** @internal */
|
|
24
|
-
export interface Node<A> {
|
|
25
|
-
readonly head: A
|
|
27
|
+
export interface Node<in out A> {
|
|
28
|
+
readonly head: A | AbsentValue
|
|
26
29
|
readonly subscribers: number
|
|
27
30
|
readonly tail: TRef.TRef<Node<A> | undefined>
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
/** @internal */
|
|
31
34
|
export const makeNode = <A>(
|
|
32
|
-
head: A,
|
|
35
|
+
head: A | AbsentValue,
|
|
33
36
|
subscribers: number,
|
|
34
37
|
tail: TRef.TRef<Node<A> | undefined>
|
|
35
38
|
): Node<A> => ({
|
|
@@ -39,8 +42,10 @@ export const makeNode = <A>(
|
|
|
39
42
|
})
|
|
40
43
|
|
|
41
44
|
/** @internal */
|
|
42
|
-
class TPubSubImpl<A> implements TPubSub.TPubSub<A> {
|
|
43
|
-
readonly [TPubSubTypeId]
|
|
45
|
+
class TPubSubImpl<in out A> implements TPubSub.TPubSub<A> {
|
|
46
|
+
readonly [TPubSubTypeId] = {
|
|
47
|
+
_A: (_: any) => _
|
|
48
|
+
}
|
|
44
49
|
readonly [tQueue.TEnqueueTypeId] = tQueue.tEnqueueVariance
|
|
45
50
|
constructor(
|
|
46
51
|
readonly pubsubSize: TRef.TRef<number>,
|
|
@@ -122,9 +127,9 @@ class TPubSubImpl<A> implements TPubSub.TPubSub<A> {
|
|
|
122
127
|
}
|
|
123
128
|
const head = node.head
|
|
124
129
|
const tail = node.tail
|
|
125
|
-
if (head !==
|
|
126
|
-
const updatedNode = makeNode(
|
|
127
|
-
tRef.unsafeSet<Node<A
|
|
130
|
+
if (head !== AbsentValue) {
|
|
131
|
+
const updatedNode = makeNode<A>(AbsentValue, node.subscribers, node.tail as any)
|
|
132
|
+
tRef.unsafeSet<Node<A> | undefined>(
|
|
128
133
|
currentPublisherHead as any,
|
|
129
134
|
updatedNode as any,
|
|
130
135
|
runtime.journal
|
|
@@ -171,14 +176,14 @@ class TPubSubImpl<A> implements TPubSub.TPubSub<A> {
|
|
|
171
176
|
}
|
|
172
177
|
|
|
173
178
|
/** @internal */
|
|
174
|
-
class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
179
|
+
class TPubSubSubscriptionImpl<in out A> implements TQueue.TDequeue<A> {
|
|
175
180
|
readonly [TPubSubTypeId]: TPubSub.TPubSubTypeId = TPubSubTypeId
|
|
176
181
|
readonly [tQueue.TDequeueTypeId] = tQueue.tDequeueVariance
|
|
177
182
|
constructor(
|
|
178
183
|
readonly pubsubSize: TRef.TRef<number>,
|
|
179
184
|
readonly publisherHead: TRef.TRef<TRef.TRef<Node<A> | undefined>>,
|
|
180
185
|
readonly requestedCapacity: number,
|
|
181
|
-
readonly subscriberHead: TRef.TRef<TRef.TRef<Node<A
|
|
186
|
+
readonly subscriberHead: TRef.TRef<TRef.TRef<Node<A> | undefined> | undefined>,
|
|
182
187
|
readonly subscriberCount: TRef.TRef<number>,
|
|
183
188
|
readonly subscribers: TRef.TRef<HashSet.HashSet<TRef.TRef<TRef.TRef<Node<A>> | undefined>>>
|
|
184
189
|
) {}
|
|
@@ -209,8 +214,8 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
209
214
|
loop = false
|
|
210
215
|
} else {
|
|
211
216
|
const head = node.head
|
|
212
|
-
const tail: TRef.TRef<Node<A
|
|
213
|
-
if (head !==
|
|
217
|
+
const tail: TRef.TRef<Node<A> | undefined> = node.tail
|
|
218
|
+
if (head !== AbsentValue) {
|
|
214
219
|
size = size + 1
|
|
215
220
|
if (size >= Number.MAX_SAFE_INTEGER) {
|
|
216
221
|
loop = false
|
|
@@ -231,7 +236,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
231
236
|
if (currentSubscriberHead === undefined) {
|
|
232
237
|
return core.interruptAs(runtime.fiberId)
|
|
233
238
|
}
|
|
234
|
-
let value: A |
|
|
239
|
+
let value: A | AbsentValue = AbsentValue
|
|
235
240
|
let loop = true
|
|
236
241
|
while (loop) {
|
|
237
242
|
const node = tRef.unsafeGet(currentSubscriberHead, runtime.journal)
|
|
@@ -239,15 +244,15 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
239
244
|
return core.retry
|
|
240
245
|
}
|
|
241
246
|
const head = node.head
|
|
242
|
-
const tail: TRef.TRef<Node<A
|
|
243
|
-
if (head !==
|
|
247
|
+
const tail: TRef.TRef<Node<A> | undefined> = node.tail
|
|
248
|
+
if (head !== AbsentValue) {
|
|
244
249
|
value = head
|
|
245
250
|
loop = false
|
|
246
251
|
} else {
|
|
247
252
|
currentSubscriberHead = tail
|
|
248
253
|
}
|
|
249
254
|
}
|
|
250
|
-
return core.succeed(value
|
|
255
|
+
return core.succeed(value as A)
|
|
251
256
|
})
|
|
252
257
|
|
|
253
258
|
peekOption: STM.STM<never, never, Option.Option<A>> = core.withSTMRuntime((runtime) => {
|
|
@@ -264,8 +269,8 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
264
269
|
loop = false
|
|
265
270
|
} else {
|
|
266
271
|
const head = node.head
|
|
267
|
-
const tail: TRef.TRef<Node<A
|
|
268
|
-
if (head !==
|
|
272
|
+
const tail: TRef.TRef<Node<A> | undefined> = node.tail
|
|
273
|
+
if (head !== AbsentValue) {
|
|
269
274
|
value = Option.some(head)
|
|
270
275
|
loop = false
|
|
271
276
|
} else {
|
|
@@ -279,7 +284,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
279
284
|
shutdown: STM.STM<never, never, void> = core.effect<never, void>((journal) => {
|
|
280
285
|
let currentSubscriberHead = tRef.unsafeGet(this.subscriberHead, journal)
|
|
281
286
|
if (currentSubscriberHead !== undefined) {
|
|
282
|
-
tRef.unsafeSet<TRef.TRef<Node<A
|
|
287
|
+
tRef.unsafeSet<TRef.TRef<Node<A> | undefined> | undefined>(this.subscriberHead, void 0, journal)
|
|
283
288
|
let loop = true
|
|
284
289
|
while (loop) {
|
|
285
290
|
const node = tRef.unsafeGet(currentSubscriberHead, journal)
|
|
@@ -287,18 +292,18 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
287
292
|
loop = false
|
|
288
293
|
} else {
|
|
289
294
|
const head = node.head
|
|
290
|
-
const tail: TRef.TRef<Node<A
|
|
291
|
-
if (head !==
|
|
295
|
+
const tail: TRef.TRef<Node<A> | undefined> = node.tail
|
|
296
|
+
if (head !== AbsentValue) {
|
|
292
297
|
const subscribers = node.subscribers
|
|
293
298
|
if (subscribers === 1) {
|
|
294
299
|
const size = tRef.unsafeGet(this.pubsubSize, journal)
|
|
295
|
-
const updatedNode = makeNode(
|
|
296
|
-
tRef.unsafeSet<Node<A
|
|
300
|
+
const updatedNode = makeNode<A>(AbsentValue, 0, tail)
|
|
301
|
+
tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, journal)
|
|
297
302
|
tRef.unsafeSet(this.publisherHead, tail as any, journal)
|
|
298
303
|
tRef.unsafeSet(this.pubsubSize, size - 1, journal)
|
|
299
304
|
} else {
|
|
300
305
|
const updatedNode = makeNode(head, subscribers - 1, tail)
|
|
301
|
-
tRef.unsafeSet<Node<A
|
|
306
|
+
tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, journal)
|
|
302
307
|
}
|
|
303
308
|
}
|
|
304
309
|
currentSubscriberHead = tail
|
|
@@ -322,7 +327,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
322
327
|
if (currentSubscriberHead === undefined) {
|
|
323
328
|
return core.interruptAs(runtime.fiberId)
|
|
324
329
|
}
|
|
325
|
-
let value: A |
|
|
330
|
+
let value: A | AbsentValue = AbsentValue
|
|
326
331
|
let loop = true
|
|
327
332
|
while (loop) {
|
|
328
333
|
const node = tRef.unsafeGet(currentSubscriberHead, runtime.journal)
|
|
@@ -330,20 +335,20 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
330
335
|
return core.retry
|
|
331
336
|
}
|
|
332
337
|
const head = node.head
|
|
333
|
-
const tail: TRef.TRef<Node<A
|
|
334
|
-
if (head !==
|
|
338
|
+
const tail: TRef.TRef<Node<A> | undefined> = node.tail
|
|
339
|
+
if (head !== AbsentValue) {
|
|
335
340
|
const subscribers = node.subscribers
|
|
336
341
|
if (subscribers === 1) {
|
|
337
342
|
const size = tRef.unsafeGet(this.pubsubSize, runtime.journal)
|
|
338
|
-
const updatedNode = makeNode(
|
|
339
|
-
tRef.unsafeSet<Node<A
|
|
343
|
+
const updatedNode = makeNode<A>(AbsentValue, 0, tail)
|
|
344
|
+
tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
|
|
340
345
|
tRef.unsafeSet(this.publisherHead, tail as any, runtime.journal)
|
|
341
346
|
tRef.unsafeSet(this.pubsubSize, size - 1, runtime.journal)
|
|
342
347
|
} else {
|
|
343
348
|
const updatedNode = makeNode(head, subscribers - 1, tail)
|
|
344
|
-
tRef.unsafeSet<Node<A
|
|
349
|
+
tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
|
|
345
350
|
}
|
|
346
|
-
tRef.unsafeSet<TRef.TRef<Node<A
|
|
351
|
+
tRef.unsafeSet<TRef.TRef<Node<A> | undefined> | undefined>(
|
|
347
352
|
this.subscriberHead,
|
|
348
353
|
tail,
|
|
349
354
|
runtime.journal
|
|
@@ -354,7 +359,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
354
359
|
currentSubscriberHead = tail
|
|
355
360
|
}
|
|
356
361
|
}
|
|
357
|
-
return core.succeed(value
|
|
362
|
+
return core.succeed(value as A)
|
|
358
363
|
})
|
|
359
364
|
|
|
360
365
|
takeAll: STM.STM<never, never, Array<A>> = this.takeUpTo(Number.POSITIVE_INFINITY)
|
|
@@ -373,18 +378,18 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
373
378
|
n = max
|
|
374
379
|
} else {
|
|
375
380
|
const head = node.head
|
|
376
|
-
const tail: TRef.TRef<Node<A
|
|
377
|
-
if (head !==
|
|
381
|
+
const tail: TRef.TRef<Node<A> | undefined> = node.tail
|
|
382
|
+
if (head !== AbsentValue) {
|
|
378
383
|
const subscribers = node.subscribers
|
|
379
384
|
if (subscribers === 1) {
|
|
380
385
|
const size = tRef.unsafeGet(this.pubsubSize, runtime.journal)
|
|
381
|
-
const updatedNode = makeNode(
|
|
382
|
-
tRef.unsafeSet<Node<A
|
|
386
|
+
const updatedNode = makeNode<A>(AbsentValue, 0, tail)
|
|
387
|
+
tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
|
|
383
388
|
tRef.unsafeSet(this.publisherHead, tail as any, runtime.journal)
|
|
384
389
|
tRef.unsafeSet(this.pubsubSize, size - 1, runtime.journal)
|
|
385
390
|
} else {
|
|
386
391
|
const updatedNode = makeNode(head, subscribers - 1, tail)
|
|
387
|
-
tRef.unsafeSet<Node<A
|
|
392
|
+
tRef.unsafeSet<Node<A> | undefined>(currentSubscriberHead, updatedNode, runtime.journal)
|
|
388
393
|
}
|
|
389
394
|
builder.push(head)
|
|
390
395
|
n = n + 1
|
|
@@ -392,7 +397,7 @@ class TPubSubSubscriptionImpl<A> implements TQueue.TDequeue<A> {
|
|
|
392
397
|
currentSubscriberHead = tail
|
|
393
398
|
}
|
|
394
399
|
}
|
|
395
|
-
tRef.unsafeSet<TRef.TRef<Node<A
|
|
400
|
+
tRef.unsafeSet<TRef.TRef<Node<A> | undefined> | undefined>(
|
|
396
401
|
this.subscriberHead,
|
|
397
402
|
currentSubscriberHead,
|
|
398
403
|
runtime.journal
|
|
@@ -81,7 +81,7 @@ export const tEnqueueVariance = {
|
|
|
81
81
|
_In: (_: unknown) => _
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
class TQueueImpl<A> implements TQueue.TQueue<A> {
|
|
84
|
+
class TQueueImpl<in out A> implements TQueue.TQueue<A> {
|
|
85
85
|
readonly [TDequeueTypeId] = tDequeueVariance
|
|
86
86
|
readonly [TEnqueueTypeId] = tEnqueueVariance
|
|
87
87
|
constructor(
|
|
@@ -140,10 +140,10 @@ class TQueueImpl<A> implements TQueue.TQueue<A> {
|
|
|
140
140
|
return core.succeed(false)
|
|
141
141
|
}
|
|
142
142
|
case OpCodes.OP_SLIDING_STRATEGY: {
|
|
143
|
-
|
|
144
|
-
if (dequeued === undefined) {
|
|
143
|
+
if (queue.length === 0) {
|
|
145
144
|
return core.succeed(true)
|
|
146
145
|
}
|
|
146
|
+
queue.shift()
|
|
147
147
|
queue.push(value)
|
|
148
148
|
tRef.unsafeSet(this.ref, queue, runtime.journal)
|
|
149
149
|
return core.succeed(true)
|
|
@@ -188,11 +188,10 @@ class TQueueImpl<A> implements TQueue.TQueue<A> {
|
|
|
188
188
|
if (queue === undefined) {
|
|
189
189
|
return core.interruptAs(runtime.fiberId)
|
|
190
190
|
}
|
|
191
|
-
|
|
192
|
-
if (head === undefined) {
|
|
191
|
+
if (queue.length === 0) {
|
|
193
192
|
return core.retry
|
|
194
193
|
}
|
|
195
|
-
return core.succeed(
|
|
194
|
+
return core.succeed(queue[0])
|
|
196
195
|
})
|
|
197
196
|
|
|
198
197
|
peekOption: STM.STM<never, never, Option.Option<A>> = core.withSTMRuntime((runtime) => {
|
|
@@ -208,10 +207,10 @@ class TQueueImpl<A> implements TQueue.TQueue<A> {
|
|
|
208
207
|
if (queue === undefined) {
|
|
209
208
|
return core.interruptAs(runtime.fiberId)
|
|
210
209
|
}
|
|
211
|
-
|
|
212
|
-
if (dequeued === undefined) {
|
|
210
|
+
if (queue.length === 0) {
|
|
213
211
|
return core.retry
|
|
214
212
|
}
|
|
213
|
+
const dequeued = queue.shift()!
|
|
215
214
|
tRef.unsafeSet(this.ref, queue, runtime.journal)
|
|
216
215
|
return core.succeed(dequeued)
|
|
217
216
|
})
|
|
@@ -44,11 +44,11 @@ export interface LockState {
|
|
|
44
44
|
/**
|
|
45
45
|
* Computes the number of read locks held by the specified fiber id.
|
|
46
46
|
*/
|
|
47
|
-
|
|
47
|
+
readLocksHeld(fiberId: FiberId.FiberId): number
|
|
48
48
|
/**
|
|
49
49
|
* Computes the number of write locks held by the specified fiber id.
|
|
50
50
|
*/
|
|
51
|
-
|
|
51
|
+
writeLocksHeld(fiberId: FiberId.FiberId): number
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
/**
|
package/src/internal/stm/tRef.ts
CHANGED
|
@@ -22,7 +22,7 @@ const tRefVariance = {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/** @internal */
|
|
25
|
-
export class TRefImpl<A> implements TRef.TRef<A> {
|
|
25
|
+
export class TRefImpl<in out A> implements TRef.TRef<A> {
|
|
26
26
|
readonly [TRefTypeId] = tRefVariance
|
|
27
27
|
/** @internal */
|
|
28
28
|
todos: Map<TxnId.TxnId, Journal.Todo>
|
|
@@ -36,7 +36,7 @@ export const acquireN = dual<
|
|
|
36
36
|
>(2, (self, n) =>
|
|
37
37
|
core.withSTMRuntime((driver) => {
|
|
38
38
|
if (n < 0) {
|
|
39
|
-
throw Cause.IllegalArgumentException(`Unexpected negative value ${n} passed to Semaphore.acquireN`)
|
|
39
|
+
throw new Cause.IllegalArgumentException(`Unexpected negative value ${n} passed to Semaphore.acquireN`)
|
|
40
40
|
}
|
|
41
41
|
const value = tRef.unsafeGet(self.permits, driver.journal)
|
|
42
42
|
if (value < n) {
|
|
@@ -59,7 +59,7 @@ export const releaseN = dual<
|
|
|
59
59
|
>(2, (self, n) =>
|
|
60
60
|
core.withSTMRuntime((driver) => {
|
|
61
61
|
if (n < 0) {
|
|
62
|
-
throw Cause.IllegalArgumentException(`Unexpected negative value ${n} passed to Semaphore.releaseN`)
|
|
62
|
+
throw new Cause.IllegalArgumentException(`Unexpected negative value ${n} passed to Semaphore.releaseN`)
|
|
63
63
|
}
|
|
64
64
|
const current = tRef.unsafeGet(self.permits, driver.journal)
|
|
65
65
|
return STM.succeed(tRef.unsafeSet(self.permits, current + n, driver.journal))
|
package/src/internal/stm/tSet.ts
CHANGED
|
@@ -20,11 +20,11 @@ export const TSetTypeId: TSet.TSetTypeId = Symbol.for(
|
|
|
20
20
|
|
|
21
21
|
/** @internal */
|
|
22
22
|
const tSetVariance = {
|
|
23
|
-
_A: (_:
|
|
23
|
+
_A: (_: any) => _
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/** @internal */
|
|
27
|
-
class TSetImpl<A> implements TSet.TSet<A> {
|
|
27
|
+
class TSetImpl<in out A> implements TSet.TSet<A> {
|
|
28
28
|
readonly [TSetTypeId] = tSetVariance
|
|
29
29
|
constructor(readonly tMap: TMap.TMap<A, void>) {}
|
|
30
30
|
}
|