effect 2.2.5 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RateLimiter/package.json +6 -0
- package/dist/cjs/Cause.js +14 -1
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/Clock.js.map +1 -1
- package/dist/cjs/Console.js.map +1 -1
- package/dist/cjs/Context.js +23 -25
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Data.js +3 -3
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Deferred.js +1 -1
- package/dist/cjs/Deferred.js.map +1 -1
- package/dist/cjs/Effect.js +9 -9
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Effectable.js.map +1 -1
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Exit.js +2 -2
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/FiberMap.js +3 -3
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/FiberRefs.js.map +1 -1
- package/dist/cjs/FiberSet.js +3 -3
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/GroupBy.js.map +1 -1
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/LogLevel.js.map +1 -1
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/Number.js +20 -1
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Pool.js.map +1 -1
- package/dist/cjs/PubSub.js.map +1 -1
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/Random.js.map +1 -1
- package/dist/cjs/RateLimiter.js +38 -0
- package/dist/cjs/RateLimiter.js.map +1 -0
- package/dist/cjs/ReadonlyRecord.js +45 -9
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/Ref.js.map +1 -1
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/cjs/Runtime.js +1 -4
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/RuntimeFlags.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/Scope.js.map +1 -1
- package/dist/cjs/ScopedRef.js.map +1 -1
- package/dist/cjs/SingleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/Supervisor.js.map +1 -1
- package/dist/cjs/SynchronizedRef.js.map +1 -1
- package/dist/cjs/TArray.js.map +1 -1
- package/dist/cjs/TDeferred.js.map +1 -1
- package/dist/cjs/TMap.js.map +1 -1
- package/dist/cjs/TPriorityQueue.js.map +1 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TQueue.js.map +1 -1
- package/dist/cjs/TRandom.js.map +1 -1
- package/dist/cjs/TReentrantLock.js.map +1 -1
- package/dist/cjs/TRef.js.map +1 -1
- package/dist/cjs/TSemaphore.js.map +1 -1
- package/dist/cjs/TSet.js.map +1 -1
- package/dist/cjs/Take.js +6 -6
- package/dist/cjs/Take.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +10 -13
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestAnnotations.js +1 -1
- package/dist/cjs/TestAnnotations.js.map +1 -1
- package/dist/cjs/TestClock.js +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/TestConfig.js +1 -1
- package/dist/cjs/TestConfig.js.map +1 -1
- package/dist/cjs/TestContext.js.map +1 -1
- package/dist/cjs/TestLive.js +1 -1
- package/dist/cjs/TestLive.js.map +1 -1
- package/dist/cjs/TestServices.js.map +1 -1
- package/dist/cjs/TestSized.js +1 -1
- package/dist/cjs/TestSized.js.map +1 -1
- package/dist/cjs/Utils.js +0 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/mergeDecision.js +2 -6
- package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/internal/channel.js +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +2 -4
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/console.js.map +1 -1
- package/dist/cjs/internal/context.js +31 -22
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +13 -27
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core-stream.js.map +1 -1
- package/dist/cjs/internal/core.js +61 -130
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/defaultServices/console.js +1 -1
- package/dist/cjs/internal/defaultServices/console.js.map +1 -1
- package/dist/cjs/internal/defaultServices.js.map +1 -1
- package/dist/cjs/internal/deferred.js.map +1 -1
- package/dist/cjs/internal/differ/contextPatch.js +9 -9
- package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +7 -10
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +4 -4
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/fiber.js +2 -6
- package/dist/cjs/internal/fiber.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +10 -19
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer/circular.js.map +1 -1
- package/dist/cjs/internal/layer.js +3 -3
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logSpan.js +3 -5
- package/dist/cjs/internal/logSpan.js.map +1 -1
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +2 -6
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/query.js.map +1 -1
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/random.js +1 -1
- package/dist/cjs/internal/random.js.map +1 -1
- package/dist/cjs/internal/rateLimiter.js +44 -0
- package/dist/cjs/internal/rateLimiter.js.map +1 -0
- package/dist/cjs/internal/ref.js.map +1 -1
- package/dist/cjs/internal/reloadable.js +1 -9
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/runtime.js +0 -1
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/scopedCache.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/sink.js +7 -7
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tExit.js +2 -2
- package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tryCommit.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stm/tArray.js.map +1 -1
- package/dist/cjs/internal/stm/tDeferred.js +4 -2
- package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
- package/dist/cjs/internal/stm/tMap.js.map +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tRandom.js +1 -1
- package/dist/cjs/internal/stm/tRandom.js.map +1 -1
- package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/cjs/internal/stm/tRef.js.map +1 -1
- package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
- package/dist/cjs/internal/stm/tSet.js.map +1 -1
- package/dist/cjs/internal/stream/debounceState.js.map +1 -1
- package/dist/cjs/internal/stream/handoff.js.map +1 -1
- package/dist/cjs/internal/stream/handoffSignal.js.map +1 -1
- package/dist/cjs/internal/stream/pull.js.map +1 -1
- package/dist/cjs/internal/stream.js +0 -2
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/supervisor.js.map +1 -1
- package/dist/cjs/internal/take.js +2 -2
- package/dist/cjs/internal/take.js.map +1 -1
- package/dist/cjs/internal/testing/sleep.js.map +1 -1
- package/dist/cjs/internal/tracer.js +2 -2
- package/dist/cjs/internal/tracer.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Cache.d.ts +20 -20
- package/dist/dts/Cache.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +33 -5
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +197 -194
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Clock.d.ts +7 -7
- package/dist/dts/Clock.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +1 -1
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/ConfigProvider.d.ts +6 -6
- package/dist/dts/ConfigProvider.d.ts.map +1 -1
- package/dist/dts/Console.d.ts +43 -43
- package/dist/dts/Console.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +44 -29
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +38 -57
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Deferred.d.ts +36 -36
- package/dist/dts/Deferred.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +732 -729
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Effectable.d.ts +8 -8
- package/dist/dts/Effectable.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +2 -3
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +74 -74
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/Fiber.d.ts +75 -75
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +22 -22
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +28 -28
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/FiberRefs.d.ts +1 -1
- package/dist/dts/FiberRefs.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +16 -16
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +6 -6
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/KeyedPool.d.ts +22 -22
- package/dist/dts/KeyedPool.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +126 -126
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/LogLevel.d.ts +2 -2
- package/dist/dts/LogLevel.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +14 -14
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +7 -7
- package/dist/dts/MergeState.d.ts +13 -13
- package/dist/dts/MergeState.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +32 -32
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +6 -6
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +15 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +2 -3
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Pool.d.ts +15 -16
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/PubSub.d.ts +18 -18
- package/dist/dts/PubSub.d.ts.map +1 -1
- package/dist/dts/Queue.d.ts +40 -40
- package/dist/dts/Queue.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +13 -13
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/RateLimiter.d.ts +31 -0
- package/dist/dts/RateLimiter.d.ts.map +1 -0
- package/dist/dts/ReadonlyArray.d.ts +3 -3
- package/dist/dts/ReadonlyRecord.d.ts +37 -8
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/Ref.d.ts +25 -25
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +9 -9
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +27 -28
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestBlock.d.ts +3 -3
- package/dist/dts/RequestBlock.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +16 -16
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +7 -7
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +13 -16
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/RuntimeFlags.d.ts +10 -10
- package/dist/dts/RuntimeFlags.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +303 -303
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +47 -47
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/Scope.d.ts +10 -10
- package/dist/dts/Scope.d.ts.map +1 -1
- package/dist/dts/ScopedCache.d.ts +14 -14
- package/dist/dts/ScopedCache.d.ts.map +1 -1
- package/dist/dts/ScopedRef.d.ts +5 -5
- package/dist/dts/ScopedRef.d.ts.map +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts +8 -8
- package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +214 -205
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +595 -592
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/StreamEmit.d.ts +5 -5
- package/dist/dts/StreamEmit.d.ts.map +1 -1
- package/dist/dts/Streamable.d.ts +2 -2
- package/dist/dts/Streamable.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +41 -41
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/Supervisor.d.ts +17 -17
- package/dist/dts/Supervisor.d.ts.map +1 -1
- package/dist/dts/SynchronizedRef.d.ts +41 -41
- package/dist/dts/SynchronizedRef.d.ts.map +1 -1
- package/dist/dts/TArray.d.ts +72 -72
- package/dist/dts/TArray.d.ts.map +1 -1
- package/dist/dts/TDeferred.d.ts +12 -12
- package/dist/dts/TDeferred.d.ts.map +1 -1
- package/dist/dts/TMap.d.ts +67 -67
- package/dist/dts/TMap.d.ts.map +1 -1
- package/dist/dts/TPriorityQueue.d.ts +23 -23
- package/dist/dts/TPriorityQueue.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +15 -15
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +40 -40
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TRandom.d.ts +13 -13
- package/dist/dts/TRandom.d.ts.map +1 -1
- package/dist/dts/TReentrantLock.d.ts +21 -21
- package/dist/dts/TReentrantLock.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +25 -25
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSemaphore.d.ts +15 -15
- package/dist/dts/TSemaphore.d.ts.map +1 -1
- package/dist/dts/TSet.d.ts +49 -49
- package/dist/dts/TSet.d.ts.map +1 -1
- package/dist/dts/Take.d.ts +41 -41
- package/dist/dts/Take.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts +1 -3
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestAnnotations.d.ts +3 -3
- package/dist/dts/TestAnnotations.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts +18 -18
- package/dist/dts/TestClock.d.ts.map +1 -1
- package/dist/dts/TestConfig.d.ts.map +1 -1
- package/dist/dts/TestContext.d.ts +2 -2
- package/dist/dts/TestContext.d.ts.map +1 -1
- package/dist/dts/TestLive.d.ts +1 -1
- package/dist/dts/TestLive.d.ts.map +1 -1
- package/dist/dts/TestServices.d.ts +31 -31
- package/dist/dts/TestServices.d.ts.map +1 -1
- package/dist/dts/TestSized.d.ts +2 -2
- package/dist/dts/TestSized.d.ts.map +1 -1
- package/dist/dts/Tracer.d.ts +1 -1
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/index.d.ts +12 -2
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/channel/channelExecutor.d.ts +1 -1
- package/dist/dts/internal/channel/channelExecutor.d.ts.map +1 -1
- package/dist/dts/internal/core-stream.d.ts +1 -1
- package/dist/dts/internal/core-stream.d.ts.map +1 -1
- package/dist/dts/internal/rateLimiter.d.ts +2 -0
- package/dist/dts/internal/rateLimiter.d.ts.map +1 -0
- package/dist/dts/internal/stm/stm.d.ts +6 -6
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/Cause.js +13 -0
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Clock.js.map +1 -1
- package/dist/esm/Console.js.map +1 -1
- package/dist/esm/Context.js +22 -24
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Data.js +4 -5
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Deferred.js +1 -1
- package/dist/esm/Deferred.js.map +1 -1
- package/dist/esm/Effect.js +9 -9
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Effectable.js.map +1 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Exit.js +2 -2
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/FiberMap.js +3 -3
- package/dist/esm/FiberRef.js.map +1 -1
- package/dist/esm/FiberRefs.js.map +1 -1
- package/dist/esm/FiberSet.js +3 -3
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/GroupBy.js.map +1 -1
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/LogLevel.js.map +1 -1
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/Number.js +18 -0
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Pool.js.map +1 -1
- package/dist/esm/PubSub.js.map +1 -1
- package/dist/esm/Queue.js.map +1 -1
- package/dist/esm/Random.js.map +1 -1
- package/dist/esm/RateLimiter.js +7 -0
- package/dist/esm/RateLimiter.js.map +1 -0
- package/dist/esm/ReadonlyRecord.js +44 -8
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/Ref.js.map +1 -1
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Resource.js.map +1 -1
- package/dist/esm/Runtime.js +1 -4
- package/dist/esm/Runtime.js.map +1 -1
- package/dist/esm/RuntimeFlags.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/Scope.js.map +1 -1
- package/dist/esm/ScopedRef.js.map +1 -1
- package/dist/esm/SingleProducerAsyncInput.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/Supervisor.js.map +1 -1
- package/dist/esm/SynchronizedRef.js.map +1 -1
- package/dist/esm/TArray.js.map +1 -1
- package/dist/esm/TDeferred.js.map +1 -1
- package/dist/esm/TMap.js.map +1 -1
- package/dist/esm/TPriorityQueue.js.map +1 -1
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TQueue.js.map +1 -1
- package/dist/esm/TRandom.js.map +1 -1
- package/dist/esm/TReentrantLock.js.map +1 -1
- package/dist/esm/TRef.js.map +1 -1
- package/dist/esm/TSemaphore.js.map +1 -1
- package/dist/esm/TSet.js.map +1 -1
- package/dist/esm/Take.js +6 -6
- package/dist/esm/Take.js.map +1 -1
- package/dist/esm/TestAnnotation.js +10 -13
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/TestAnnotations.js +1 -1
- package/dist/esm/TestAnnotations.js.map +1 -1
- package/dist/esm/TestClock.js +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/TestConfig.js +1 -1
- package/dist/esm/TestConfig.js.map +1 -1
- package/dist/esm/TestContext.js.map +1 -1
- package/dist/esm/TestLive.js +1 -1
- package/dist/esm/TestLive.js.map +1 -1
- package/dist/esm/TestServices.js.map +1 -1
- package/dist/esm/TestSized.js +1 -1
- package/dist/esm/TestSized.js.map +1 -1
- package/dist/esm/Utils.js +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/index.js +12 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel/mergeDecision.js +2 -6
- package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
- package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/esm/internal/channel.js +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/clock.js +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/configProvider.js +2 -4
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/console.js.map +1 -1
- package/dist/esm/internal/context.js +28 -20
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/core-effect.js +12 -26
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core-stream.js.map +1 -1
- package/dist/esm/internal/core.js +57 -127
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/data.js.map +1 -1
- package/dist/esm/internal/defaultServices/console.js +1 -1
- package/dist/esm/internal/defaultServices/console.js.map +1 -1
- package/dist/esm/internal/defaultServices.js.map +1 -1
- package/dist/esm/internal/deferred.js.map +1 -1
- package/dist/esm/internal/differ/contextPatch.js +9 -9
- package/dist/esm/internal/differ/contextPatch.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +5 -8
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/effectable.js +4 -4
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/fiber.js +2 -6
- package/dist/esm/internal/fiber.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +10 -19
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer/circular.js.map +1 -1
- package/dist/esm/internal/layer.js +3 -3
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/logSpan.js +3 -5
- package/dist/esm/internal/logSpan.js.map +1 -1
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/pubsub.js +1 -5
- package/dist/esm/internal/pubsub.js.map +1 -1
- package/dist/esm/internal/query.js.map +1 -1
- package/dist/esm/internal/queue.js.map +1 -1
- package/dist/esm/internal/random.js +1 -1
- package/dist/esm/internal/random.js.map +1 -1
- package/dist/esm/internal/rateLimiter.js +12 -0
- package/dist/esm/internal/rateLimiter.js.map +1 -0
- package/dist/esm/internal/ref.js.map +1 -1
- package/dist/esm/internal/reloadable.js +1 -9
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/runtime.js +0 -1
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/scopedCache.js.map +1 -1
- package/dist/esm/internal/scopedRef.js.map +1 -1
- package/dist/esm/internal/sink.js +7 -7
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
- package/dist/esm/internal/stm/stm/tExit.js +2 -2
- package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
- package/dist/esm/internal/stm/stm/tryCommit.js.map +1 -1
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stm/tArray.js.map +1 -1
- package/dist/esm/internal/stm/tDeferred.js +4 -2
- package/dist/esm/internal/stm/tDeferred.js.map +1 -1
- package/dist/esm/internal/stm/tMap.js.map +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tRandom.js +1 -1
- package/dist/esm/internal/stm/tRandom.js.map +1 -1
- package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/esm/internal/stm/tRef.js.map +1 -1
- package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
- package/dist/esm/internal/stm/tSet.js.map +1 -1
- package/dist/esm/internal/stream/debounceState.js.map +1 -1
- package/dist/esm/internal/stream/handoff.js.map +1 -1
- package/dist/esm/internal/stream/handoffSignal.js.map +1 -1
- package/dist/esm/internal/stream/pull.js.map +1 -1
- package/dist/esm/internal/stream.js +0 -2
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/subscriptionRef.js.map +1 -1
- package/dist/esm/internal/supervisor.js.map +1 -1
- package/dist/esm/internal/take.js +2 -2
- package/dist/esm/internal/take.js.map +1 -1
- package/dist/esm/internal/testing/sleep.js.map +1 -1
- package/dist/esm/internal/tracer.js +2 -2
- package/dist/esm/internal/tracer.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +9 -1
- package/src/Cache.ts +20 -20
- package/src/Cause.ts +37 -13
- package/src/Channel.ts +802 -794
- package/src/Clock.ts +7 -7
- package/src/Config.ts +1 -1
- package/src/ConfigProvider.ts +6 -6
- package/src/Console.ts +44 -48
- package/src/Context.ts +52 -30
- package/src/Data.ts +38 -61
- package/src/Deferred.ts +39 -41
- package/src/Effect.ts +1187 -1206
- package/src/Effectable.ts +8 -8
- package/src/Either.ts +2 -3
- package/src/Exit.ts +88 -105
- package/src/Fiber.ts +77 -83
- package/src/FiberMap.ts +77 -77
- package/src/FiberRef.ts +28 -28
- package/src/FiberRefs.ts +1 -1
- package/src/FiberSet.ts +61 -62
- package/src/GroupBy.ts +8 -12
- package/src/KeyedPool.ts +22 -22
- package/src/Layer.ts +187 -181
- package/src/LogLevel.ts +7 -6
- package/src/Logger.ts +18 -18
- package/src/MergeDecision.ts +7 -7
- package/src/MergeState.ts +16 -16
- package/src/Metric.ts +39 -39
- package/src/MetricPolling.ts +6 -6
- package/src/Number.ts +19 -0
- package/src/Option.ts +2 -3
- package/src/Pool.ts +15 -16
- package/src/PubSub.ts +18 -18
- package/src/Queue.ts +43 -46
- package/src/Random.ts +13 -15
- package/src/RateLimiter.ts +37 -0
- package/src/ReadonlyRecord.ts +49 -8
- package/src/Ref.ts +25 -25
- package/src/Reloadable.ts +10 -10
- package/src/Request.ts +31 -31
- package/src/RequestBlock.ts +3 -3
- package/src/RequestResolver.ts +21 -21
- package/src/Resource.ts +13 -13
- package/src/Runtime.ts +16 -19
- package/src/RuntimeFlags.ts +10 -10
- package/src/STM.ts +361 -362
- package/src/Schedule.ts +47 -47
- package/src/Scheduler.ts +2 -2
- package/src/Scope.ts +14 -15
- package/src/ScopedCache.ts +14 -14
- package/src/ScopedRef.ts +7 -7
- package/src/SingleProducerAsyncInput.ts +8 -9
- package/src/Sink.ts +357 -381
- package/src/Stream.ts +935 -1033
- package/src/StreamEmit.ts +5 -5
- package/src/Streamable.ts +2 -2
- package/src/SubscriptionRef.ts +51 -51
- package/src/Supervisor.ts +26 -26
- package/src/SynchronizedRef.ts +44 -44
- package/src/TArray.ts +74 -74
- package/src/TDeferred.ts +14 -14
- package/src/TMap.ts +72 -72
- package/src/TPriorityQueue.ts +23 -24
- package/src/TPubSub.ts +15 -15
- package/src/TQueue.ts +40 -40
- package/src/TRandom.ts +13 -13
- package/src/TReentrantLock.ts +21 -21
- package/src/TRef.ts +25 -25
- package/src/TSemaphore.ts +15 -15
- package/src/TSet.ts +49 -49
- package/src/Take.ts +51 -51
- package/src/TestAnnotation.ts +6 -17
- package/src/TestAnnotations.ts +7 -9
- package/src/TestClock.ts +39 -45
- package/src/TestConfig.ts +1 -3
- package/src/TestContext.ts +3 -3
- package/src/TestLive.ts +3 -5
- package/src/TestServices.ts +45 -47
- package/src/TestSized.ts +5 -5
- package/src/Tracer.ts +1 -1
- package/src/Utils.ts +8 -10
- package/src/index.ts +13 -2
- package/src/internal/blockedRequests.ts +2 -2
- package/src/internal/cache.ts +38 -38
- package/src/internal/channel/channelExecutor.ts +65 -73
- package/src/internal/channel/channelState.ts +11 -11
- package/src/internal/channel/continuation.ts +10 -10
- package/src/internal/channel/mergeDecision.ts +14 -16
- package/src/internal/channel/mergeState.ts +12 -12
- package/src/internal/channel/singleProducerAsyncInput.ts +15 -17
- package/src/internal/channel/subexecutor.ts +7 -7
- package/src/internal/channel.ts +901 -980
- package/src/internal/clock.ts +6 -6
- package/src/internal/concurrency.ts +9 -9
- package/src/internal/configProvider.ts +29 -36
- package/src/internal/console.ts +12 -12
- package/src/internal/context.ts +32 -23
- package/src/internal/core-effect.ts +655 -616
- package/src/internal/core-stream.ts +317 -325
- package/src/internal/core.ts +856 -790
- package/src/internal/data.ts +2 -3
- package/src/internal/dataSource.ts +14 -14
- package/src/internal/defaultServices/console.ts +3 -1
- package/src/internal/defaultServices.ts +21 -21
- package/src/internal/deferred.ts +9 -9
- package/src/internal/differ/contextPatch.ts +17 -17
- package/src/internal/effect/circular.ts +154 -159
- package/src/internal/effectable.ts +7 -7
- package/src/internal/fiber.ts +55 -59
- package/src/internal/fiberRefs.ts +1 -1
- package/src/internal/fiberRuntime.ts +426 -463
- package/src/internal/groupBy.ts +59 -62
- package/src/internal/keyedPool.ts +37 -37
- package/src/internal/layer/circular.ts +37 -37
- package/src/internal/layer.ts +235 -240
- package/src/internal/logSpan.ts +3 -5
- package/src/internal/metric/polling.ts +5 -5
- package/src/internal/metric.ts +54 -55
- package/src/internal/pool.ts +72 -72
- package/src/internal/pubsub.ts +75 -84
- package/src/internal/query.ts +25 -27
- package/src/internal/queue.ts +65 -70
- package/src/internal/random.ts +9 -9
- package/src/internal/rateLimiter.ts +30 -0
- package/src/internal/ref.ts +24 -24
- package/src/internal/reloadable.ts +11 -31
- package/src/internal/request.ts +14 -14
- package/src/internal/resource.ts +8 -8
- package/src/internal/runtime.ts +21 -22
- package/src/internal/schedule.ts +131 -134
- package/src/internal/scopedCache.ts +35 -32
- package/src/internal/scopedRef.ts +14 -14
- package/src/internal/sink.ts +507 -565
- package/src/internal/stm/core.ts +101 -102
- package/src/internal/stm/stm/stmState.ts +10 -10
- package/src/internal/stm/stm/tExit.ts +18 -18
- package/src/internal/stm/stm/tryCommit.ts +5 -5
- package/src/internal/stm/stm.ts +363 -374
- package/src/internal/stm/tArray.ts +92 -92
- package/src/internal/stm/tDeferred.ts +16 -14
- package/src/internal/stm/tMap.ts +83 -84
- package/src/internal/stm/tPriorityQueue.ts +24 -25
- package/src/internal/stm/tPubSub.ts +37 -38
- package/src/internal/stm/tQueue.ts +44 -48
- package/src/internal/stm/tRandom.ts +18 -18
- package/src/internal/stm/tReentrantLock.ts +28 -28
- package/src/internal/stm/tRef.ts +25 -25
- package/src/internal/stm/tSemaphore.ts +16 -16
- package/src/internal/stm/tSet.ts +51 -52
- package/src/internal/stream/debounceState.ts +7 -7
- package/src/internal/stream/emit.ts +4 -4
- package/src/internal/stream/handoff.ts +19 -19
- package/src/internal/stream/handoffSignal.ts +4 -4
- package/src/internal/stream/pull.ts +10 -11
- package/src/internal/stream.ts +1770 -1788
- package/src/internal/subscriptionRef.ts +17 -17
- package/src/internal/supervisor.ts +49 -56
- package/src/internal/synchronizedRef.ts +27 -27
- package/src/internal/take.ts +61 -61
- package/src/internal/testing/sleep.ts +2 -2
- package/src/internal/testing/suspendedWarningData.ts +2 -2
- package/src/internal/testing/warningData.ts +2 -2
- package/src/internal/tracer.ts +2 -6
- package/src/internal/version.ts +1 -1
package/src/internal/stm/tMap.ts
CHANGED
|
@@ -66,7 +66,7 @@ const indexOf = <K>(k: K, capacity: number): number => hash(k) & (capacity - 1)
|
|
|
66
66
|
const allocate = <K, V>(
|
|
67
67
|
capacity: number,
|
|
68
68
|
data: Chunk.Chunk<readonly [K, V]>
|
|
69
|
-
): STM.STM<
|
|
69
|
+
): STM.STM<TMap.TMap<K, V>> => {
|
|
70
70
|
const buckets = Array.from({ length: capacity }, () => Chunk.empty<readonly [K, V]>())
|
|
71
71
|
const distinct = new Map<K, V>(data)
|
|
72
72
|
let size = 0
|
|
@@ -92,17 +92,17 @@ const allocate = <K, V>(
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
/** @internal */
|
|
95
|
-
export const empty = <K, V>(): STM.STM<
|
|
95
|
+
export const empty = <K, V>(): STM.STM<TMap.TMap<K, V>> => fromIterable<K, V>([])
|
|
96
96
|
|
|
97
97
|
/** @internal */
|
|
98
98
|
export const find = dual<
|
|
99
99
|
<K, V, A>(
|
|
100
100
|
pf: (key: K, value: V) => Option.Option<A>
|
|
101
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
101
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<Option.Option<A>>,
|
|
102
102
|
<K, V, A>(
|
|
103
103
|
self: TMap.TMap<K, V>,
|
|
104
104
|
pf: (key: K, value: V) => Option.Option<A>
|
|
105
|
-
) => STM.STM<
|
|
105
|
+
) => STM.STM<Option.Option<A>>
|
|
106
106
|
>(2, (self, pf) =>
|
|
107
107
|
findSTM(self, (key, value) => {
|
|
108
108
|
const option = pf(key, value)
|
|
@@ -115,15 +115,15 @@ export const find = dual<
|
|
|
115
115
|
/** @internal */
|
|
116
116
|
export const findSTM = dual<
|
|
117
117
|
<K, V, R, E, A>(
|
|
118
|
-
f: (key: K, value: V) => STM.STM<
|
|
119
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
118
|
+
f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
119
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<Option.Option<A>, E, R>,
|
|
120
120
|
<K, V, R, E, A>(
|
|
121
121
|
self: TMap.TMap<K, V>,
|
|
122
|
-
f: (key: K, value: V) => STM.STM<
|
|
123
|
-
) => STM.STM<
|
|
122
|
+
f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
123
|
+
) => STM.STM<Option.Option<A>, E, R>
|
|
124
124
|
>(2, <K, V, R, E, A>(
|
|
125
125
|
self: TMap.TMap<K, V>,
|
|
126
|
-
f: (key: K, value: V) => STM.STM<
|
|
126
|
+
f: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
127
127
|
) =>
|
|
128
128
|
reduceSTM(self, Option.none<A>(), (acc, value, key) =>
|
|
129
129
|
Option.isNone(acc) ?
|
|
@@ -140,11 +140,11 @@ export const findSTM = dual<
|
|
|
140
140
|
export const findAll = dual<
|
|
141
141
|
<K, V, A>(
|
|
142
142
|
pf: (key: K, value: V) => Option.Option<A>
|
|
143
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
143
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<Array<A>>,
|
|
144
144
|
<K, V, A>(
|
|
145
145
|
self: TMap.TMap<K, V>,
|
|
146
146
|
pf: (key: K, value: V) => Option.Option<A>
|
|
147
|
-
) => STM.STM<
|
|
147
|
+
) => STM.STM<Array<A>>
|
|
148
148
|
>(2, (self, pf) =>
|
|
149
149
|
findAllSTM(self, (key, value) => {
|
|
150
150
|
const option = pf(key, value)
|
|
@@ -157,15 +157,15 @@ export const findAll = dual<
|
|
|
157
157
|
/** @internal */
|
|
158
158
|
export const findAllSTM = dual<
|
|
159
159
|
<K, V, R, E, A>(
|
|
160
|
-
pf: (key: K, value: V) => STM.STM<
|
|
161
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
160
|
+
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
161
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<Array<A>, E, R>,
|
|
162
162
|
<K, V, R, E, A>(
|
|
163
163
|
self: TMap.TMap<K, V>,
|
|
164
|
-
pf: (key: K, value: V) => STM.STM<
|
|
165
|
-
) => STM.STM<
|
|
164
|
+
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
165
|
+
) => STM.STM<Array<A>, E, R>
|
|
166
166
|
>(2, <K, V, R, E, A>(
|
|
167
167
|
self: TMap.TMap<K, V>,
|
|
168
|
-
pf: (key: K, value: V) => STM.STM<
|
|
168
|
+
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
169
169
|
) =>
|
|
170
170
|
core.map(
|
|
171
171
|
reduceSTM(self, Chunk.empty<A>(), (acc, value, key) =>
|
|
@@ -181,8 +181,8 @@ export const findAllSTM = dual<
|
|
|
181
181
|
|
|
182
182
|
/** @internal */
|
|
183
183
|
export const forEach = dual<
|
|
184
|
-
<K, V, R, E, _>(f: (key: K, value: V) => STM.STM<
|
|
185
|
-
<K, V, R, E, _>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<
|
|
184
|
+
<K, V, R, E, _>(f: (key: K, value: V) => STM.STM<_, E, R>) => (self: TMap.TMap<K, V>) => STM.STM<void, E, R>,
|
|
185
|
+
<K, V, R, E, _>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<_, E, R>) => STM.STM<void, E, R>
|
|
186
186
|
>(2, (self, f) =>
|
|
187
187
|
reduceSTM(
|
|
188
188
|
self,
|
|
@@ -191,7 +191,7 @@ export const forEach = dual<
|
|
|
191
191
|
))
|
|
192
192
|
|
|
193
193
|
/** @internal */
|
|
194
|
-
export const fromIterable = <K, V>(iterable: Iterable<readonly [K, V]>): STM.STM<
|
|
194
|
+
export const fromIterable = <K, V>(iterable: Iterable<readonly [K, V]>): STM.STM<TMap.TMap<K, V>> =>
|
|
195
195
|
stm.suspend(() => {
|
|
196
196
|
const data = Chunk.fromIterable(iterable)
|
|
197
197
|
const capacity = data.length < InitialCapacity
|
|
@@ -202,8 +202,8 @@ export const fromIterable = <K, V>(iterable: Iterable<readonly [K, V]>): STM.STM
|
|
|
202
202
|
|
|
203
203
|
/** @internal */
|
|
204
204
|
export const get = dual<
|
|
205
|
-
<K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<
|
|
206
|
-
<K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<
|
|
205
|
+
<K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<Option.Option<V>>,
|
|
206
|
+
<K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<Option.Option<V>>
|
|
207
207
|
>(2, <K, V>(self: TMap.TMap<K, V>, key: K) =>
|
|
208
208
|
core.effect<never, Option.Option<V>>((journal) => {
|
|
209
209
|
const buckets = tRef.unsafeGet(self.tBuckets, journal)
|
|
@@ -217,8 +217,8 @@ export const get = dual<
|
|
|
217
217
|
|
|
218
218
|
/** @internal */
|
|
219
219
|
export const getOrElse = dual<
|
|
220
|
-
<K, V>(key: K, fallback: LazyArg<V>) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
221
|
-
<K, V>(self: TMap.TMap<K, V>, key: K, fallback: LazyArg<V>) => STM.STM<
|
|
220
|
+
<K, V>(key: K, fallback: LazyArg<V>) => (self: TMap.TMap<K, V>) => STM.STM<V>,
|
|
221
|
+
<K, V>(self: TMap.TMap<K, V>, key: K, fallback: LazyArg<V>) => STM.STM<V>
|
|
222
222
|
>(3, (self, key, fallback) =>
|
|
223
223
|
core.map(
|
|
224
224
|
get(self, key),
|
|
@@ -227,26 +227,25 @@ export const getOrElse = dual<
|
|
|
227
227
|
|
|
228
228
|
/** @internal */
|
|
229
229
|
export const has = dual<
|
|
230
|
-
<K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<
|
|
231
|
-
<K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<
|
|
230
|
+
<K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<boolean>,
|
|
231
|
+
<K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<boolean>
|
|
232
232
|
>(2, (self, key) => core.map(get(self, key), Option.isSome))
|
|
233
233
|
|
|
234
234
|
/** @internal */
|
|
235
|
-
export const isEmpty = <K, V>(self: TMap.TMap<K, V>): STM.STM<
|
|
235
|
+
export const isEmpty = <K, V>(self: TMap.TMap<K, V>): STM.STM<boolean> =>
|
|
236
236
|
core.map(tRef.get(self.tSize), (size) => size === 0)
|
|
237
237
|
|
|
238
238
|
/** @internal */
|
|
239
|
-
export const keys = <K, V>(self: TMap.TMap<K, V>): STM.STM<
|
|
239
|
+
export const keys = <K, V>(self: TMap.TMap<K, V>): STM.STM<Array<K>> =>
|
|
240
240
|
core.map(toReadonlyArray(self), RA.map((entry) => entry[0]))
|
|
241
241
|
|
|
242
242
|
/** @internal */
|
|
243
|
-
export const make = <K, V>(...entries: Array<readonly [K, V]>): STM.STM<
|
|
244
|
-
fromIterable(entries)
|
|
243
|
+
export const make = <K, V>(...entries: Array<readonly [K, V]>): STM.STM<TMap.TMap<K, V>> => fromIterable(entries)
|
|
245
244
|
|
|
246
245
|
/** @internal */
|
|
247
246
|
export const merge = dual<
|
|
248
|
-
<K, V>(key: K, value: V, f: (x: V, y: V) => V) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
249
|
-
<K, V>(self: TMap.TMap<K, V>, key: K, value: V, f: (x: V, y: V) => V) => STM.STM<
|
|
247
|
+
<K, V>(key: K, value: V, f: (x: V, y: V) => V) => (self: TMap.TMap<K, V>) => STM.STM<V>,
|
|
248
|
+
<K, V>(self: TMap.TMap<K, V>, key: K, value: V, f: (x: V, y: V) => V) => STM.STM<V>
|
|
250
249
|
>(4, (self, key, value, f) =>
|
|
251
250
|
core.flatMap(
|
|
252
251
|
get(self, key),
|
|
@@ -261,8 +260,8 @@ export const merge = dual<
|
|
|
261
260
|
|
|
262
261
|
/** @internal */
|
|
263
262
|
export const reduce = dual<
|
|
264
|
-
<Z, K, V>(zero: Z, f: (acc: Z, value: V, key: K) => Z) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
265
|
-
<K, V, Z>(self: TMap.TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => Z) => STM.STM<
|
|
263
|
+
<Z, K, V>(zero: Z, f: (acc: Z, value: V, key: K) => Z) => (self: TMap.TMap<K, V>) => STM.STM<Z>,
|
|
264
|
+
<K, V, Z>(self: TMap.TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => Z) => STM.STM<Z>
|
|
266
265
|
>(
|
|
267
266
|
3,
|
|
268
267
|
<K, V, Z>(self: TMap.TMap<K, V>, zero: Z, f: (acc: Z, value: V, key: K) => Z) =>
|
|
@@ -284,13 +283,13 @@ export const reduce = dual<
|
|
|
284
283
|
export const reduceSTM = dual<
|
|
285
284
|
<Z, V, K, R, E>(
|
|
286
285
|
zero: Z,
|
|
287
|
-
f: (acc: Z, value: V, key: K) => STM.STM<
|
|
288
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
286
|
+
f: (acc: Z, value: V, key: K) => STM.STM<Z, E, R>
|
|
287
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<Z, E, R>,
|
|
289
288
|
<Z, V, K, R, E>(
|
|
290
289
|
self: TMap.TMap<K, V>,
|
|
291
290
|
zero: Z,
|
|
292
|
-
f: (acc: Z, value: V, key: K) => STM.STM<
|
|
293
|
-
) => STM.STM<
|
|
291
|
+
f: (acc: Z, value: V, key: K) => STM.STM<Z, E, R>
|
|
292
|
+
) => STM.STM<Z, E, R>
|
|
294
293
|
>(3, (self, zero, f) =>
|
|
295
294
|
core.flatMap(
|
|
296
295
|
toReadonlyArray(self),
|
|
@@ -299,8 +298,8 @@ export const reduceSTM = dual<
|
|
|
299
298
|
|
|
300
299
|
/** @internal */
|
|
301
300
|
export const remove = dual<
|
|
302
|
-
<K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<
|
|
303
|
-
<K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<
|
|
301
|
+
<K>(key: K) => <V>(self: TMap.TMap<K, V>) => STM.STM<void>,
|
|
302
|
+
<K, V>(self: TMap.TMap<K, V>, key: K) => STM.STM<void>
|
|
304
303
|
>(2, (self, key) =>
|
|
305
304
|
core.effect<never, void>((journal) => {
|
|
306
305
|
const buckets = tRef.unsafeGet(self.tBuckets, journal)
|
|
@@ -316,8 +315,8 @@ export const remove = dual<
|
|
|
316
315
|
|
|
317
316
|
/** @internal */
|
|
318
317
|
export const removeAll = dual<
|
|
319
|
-
<K>(keys: Iterable<K>) => <V>(self: TMap.TMap<K, V>) => STM.STM<
|
|
320
|
-
<K, V>(self: TMap.TMap<K, V>, keys: Iterable<K>) => STM.STM<
|
|
318
|
+
<K>(keys: Iterable<K>) => <V>(self: TMap.TMap<K, V>) => STM.STM<void>,
|
|
319
|
+
<K, V>(self: TMap.TMap<K, V>, keys: Iterable<K>) => STM.STM<void>
|
|
321
320
|
>(2, <K, V>(self: TMap.TMap<K, V>, keys: Iterable<K>) =>
|
|
322
321
|
core.effect<never, void>((journal) => {
|
|
323
322
|
const iterator = keys[Symbol.iterator]()
|
|
@@ -342,27 +341,27 @@ export const removeIf: {
|
|
|
342
341
|
options: {
|
|
343
342
|
readonly discard: true
|
|
344
343
|
}
|
|
345
|
-
): (self: TMap.TMap<K, V>) => STM.STM<
|
|
344
|
+
): (self: TMap.TMap<K, V>) => STM.STM<void>
|
|
346
345
|
<K, V>(
|
|
347
346
|
predicate: (key: K, value: V) => boolean,
|
|
348
347
|
options?: {
|
|
349
348
|
readonly discard: false
|
|
350
349
|
}
|
|
351
|
-
): (self: TMap.TMap<K, V>) => STM.STM<
|
|
350
|
+
): (self: TMap.TMap<K, V>) => STM.STM<Array<[K, V]>>
|
|
352
351
|
<K, V>(
|
|
353
352
|
self: TMap.TMap<K, V>,
|
|
354
353
|
predicate: (key: K, value: V) => boolean,
|
|
355
354
|
options: {
|
|
356
355
|
readonly discard: true
|
|
357
356
|
}
|
|
358
|
-
): STM.STM<
|
|
357
|
+
): STM.STM<void>
|
|
359
358
|
<K, V>(
|
|
360
359
|
self: TMap.TMap<K, V>,
|
|
361
360
|
predicate: (key: K, value: V) => boolean,
|
|
362
361
|
options?: {
|
|
363
362
|
readonly discard: false
|
|
364
363
|
}
|
|
365
|
-
): STM.STM<
|
|
364
|
+
): STM.STM<Array<[K, V]>>
|
|
366
365
|
} = dual((args) => isTMap(args[0]), <K, V>(
|
|
367
366
|
self: TMap.TMap<K, V>,
|
|
368
367
|
predicate: (key: K, value: V) => boolean,
|
|
@@ -409,27 +408,27 @@ export const retainIf: {
|
|
|
409
408
|
options: {
|
|
410
409
|
readonly discard: true
|
|
411
410
|
}
|
|
412
|
-
): (self: TMap.TMap<K, V>) => STM.STM<
|
|
411
|
+
): (self: TMap.TMap<K, V>) => STM.STM<void>
|
|
413
412
|
<K, V>(
|
|
414
413
|
predicate: (key: K, value: V) => boolean,
|
|
415
414
|
options?: {
|
|
416
415
|
readonly discard: false
|
|
417
416
|
}
|
|
418
|
-
): (self: TMap.TMap<K, V>) => STM.STM<
|
|
417
|
+
): (self: TMap.TMap<K, V>) => STM.STM<Array<[K, V]>>
|
|
419
418
|
<K, V>(
|
|
420
419
|
self: TMap.TMap<K, V>,
|
|
421
420
|
predicate: (key: K, value: V) => boolean,
|
|
422
421
|
options: {
|
|
423
422
|
readonly discard: true
|
|
424
423
|
}
|
|
425
|
-
): STM.STM<
|
|
424
|
+
): STM.STM<void>
|
|
426
425
|
<K, V>(
|
|
427
426
|
self: TMap.TMap<K, V>,
|
|
428
427
|
predicate: (key: K, value: V) => boolean,
|
|
429
428
|
options?: {
|
|
430
429
|
readonly discard: false
|
|
431
430
|
}
|
|
432
|
-
): STM.STM<
|
|
431
|
+
): STM.STM<Array<[K, V]>>
|
|
433
432
|
} = dual(
|
|
434
433
|
(args) => isTMap(args[0]),
|
|
435
434
|
(self, predicate, options) => removeIf(self, (key, value) => !predicate(key, value), options)
|
|
@@ -437,8 +436,8 @@ export const retainIf: {
|
|
|
437
436
|
|
|
438
437
|
/** @internal */
|
|
439
438
|
export const set = dual<
|
|
440
|
-
<K, V>(key: K, value: V) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
441
|
-
<K, V>(self: TMap.TMap<K, V>, key: K, value: V) => STM.STM<
|
|
439
|
+
<K, V>(key: K, value: V) => (self: TMap.TMap<K, V>) => STM.STM<void>,
|
|
440
|
+
<K, V>(self: TMap.TMap<K, V>, key: K, value: V) => STM.STM<void>
|
|
442
441
|
>(3, <K, V>(self: TMap.TMap<K, V>, key: K, value: V) => {
|
|
443
442
|
const resize = (journal: Journal.Journal, buckets: TArray.TArray<Chunk.Chunk<readonly [K, V]>>): void => {
|
|
444
443
|
const capacity = buckets.chunk.length
|
|
@@ -495,8 +494,8 @@ export const set = dual<
|
|
|
495
494
|
|
|
496
495
|
/** @internal */
|
|
497
496
|
export const setIfAbsent = dual<
|
|
498
|
-
<K, V>(key: K, value: V) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
499
|
-
<K, V>(self: TMap.TMap<K, V>, key: K, value: V) => STM.STM<
|
|
497
|
+
<K, V>(key: K, value: V) => (self: TMap.TMap<K, V>) => STM.STM<void>,
|
|
498
|
+
<K, V>(self: TMap.TMap<K, V>, key: K, value: V) => STM.STM<void>
|
|
500
499
|
>(3, (self, key, value) =>
|
|
501
500
|
core.flatMap(
|
|
502
501
|
get(self, key),
|
|
@@ -507,12 +506,12 @@ export const setIfAbsent = dual<
|
|
|
507
506
|
))
|
|
508
507
|
|
|
509
508
|
/** @internal */
|
|
510
|
-
export const size = <K, V>(self: TMap.TMap<K, V>): STM.STM<
|
|
509
|
+
export const size = <K, V>(self: TMap.TMap<K, V>): STM.STM<number> => tRef.get(self.tSize)
|
|
511
510
|
|
|
512
511
|
/** @internal */
|
|
513
512
|
export const takeFirst = dual<
|
|
514
|
-
<K, V, A>(pf: (key: K, value: V) => Option.Option<A>) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
515
|
-
<K, V, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>) => STM.STM<
|
|
513
|
+
<K, V, A>(pf: (key: K, value: V) => Option.Option<A>) => (self: TMap.TMap<K, V>) => STM.STM<A>,
|
|
514
|
+
<K, V, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>) => STM.STM<A>
|
|
516
515
|
>(2, <K, V, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>) =>
|
|
517
516
|
pipe(
|
|
518
517
|
core.effect<never, Option.Option<A>>((journal) => {
|
|
@@ -555,9 +554,9 @@ export const takeFirst = dual<
|
|
|
555
554
|
/** @internal */
|
|
556
555
|
export const takeFirstSTM = dual<
|
|
557
556
|
<K, V, R, E, A>(
|
|
558
|
-
pf: (key: K, value: V) => STM.STM<
|
|
559
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
560
|
-
<K, V, R, E, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => STM.STM<
|
|
557
|
+
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
558
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<A, E, R>,
|
|
559
|
+
<K, V, R, E, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>) => STM.STM<A, E, R>
|
|
561
560
|
>(2, (self, pf) =>
|
|
562
561
|
pipe(
|
|
563
562
|
findSTM(self, (key, value) => core.map(pf(key, value), (a) => [key, a] as const)),
|
|
@@ -569,11 +568,11 @@ export const takeFirstSTM = dual<
|
|
|
569
568
|
export const takeSome = dual<
|
|
570
569
|
<K, V, A>(
|
|
571
570
|
pf: (key: K, value: V) => Option.Option<A>
|
|
572
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
571
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<RA.NonEmptyArray<A>>,
|
|
573
572
|
<K, V, A>(
|
|
574
573
|
self: TMap.TMap<K, V>,
|
|
575
574
|
pf: (key: K, value: V) => Option.Option<A>
|
|
576
|
-
) => STM.STM<
|
|
575
|
+
) => STM.STM<RA.NonEmptyArray<A>>
|
|
577
576
|
>(2, <K, V, A>(self: TMap.TMap<K, V>, pf: (key: K, value: V) => Option.Option<A>) =>
|
|
578
577
|
pipe(
|
|
579
578
|
core.effect<never, Option.Option<RA.NonEmptyArray<A>>>((journal) => {
|
|
@@ -620,15 +619,15 @@ export const takeSome = dual<
|
|
|
620
619
|
/** @internal */
|
|
621
620
|
export const takeSomeSTM = dual<
|
|
622
621
|
<K, V, R, E, A>(
|
|
623
|
-
pf: (key: K, value: V) => STM.STM<
|
|
624
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
622
|
+
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
623
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<RA.NonEmptyArray<A>, E, R>,
|
|
625
624
|
<K, V, R, E, A>(
|
|
626
625
|
self: TMap.TMap<K, V>,
|
|
627
|
-
pf: (key: K, value: V) => STM.STM<
|
|
628
|
-
) => STM.STM<
|
|
626
|
+
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
627
|
+
) => STM.STM<RA.NonEmptyArray<A>, E, R>
|
|
629
628
|
>(2, <K, V, R, E, A>(
|
|
630
629
|
self: TMap.TMap<K, V>,
|
|
631
|
-
pf: (key: K, value: V) => STM.STM<
|
|
630
|
+
pf: (key: K, value: V) => STM.STM<A, Option.Option<E>, R>
|
|
632
631
|
) =>
|
|
633
632
|
pipe(
|
|
634
633
|
findAllSTM(
|
|
@@ -653,7 +652,7 @@ export const takeSomeSTM = dual<
|
|
|
653
652
|
)
|
|
654
653
|
))
|
|
655
654
|
|
|
656
|
-
const toReadonlyArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<
|
|
655
|
+
const toReadonlyArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<ReadonlyArray<readonly [K, V]>> =>
|
|
657
656
|
core.effect<never, Array<readonly [K, V]>>((journal) => {
|
|
658
657
|
const buckets = tRef.unsafeGet(self.tBuckets, journal)
|
|
659
658
|
const capacity = buckets.chunk.length
|
|
@@ -670,7 +669,7 @@ const toReadonlyArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Rea
|
|
|
670
669
|
})
|
|
671
670
|
|
|
672
671
|
/** @internal */
|
|
673
|
-
export const toChunk = <K, V>(self: TMap.TMap<K, V>): STM.STM<
|
|
672
|
+
export const toChunk = <K, V>(self: TMap.TMap<K, V>): STM.STM<Chunk.Chunk<[K, V]>> =>
|
|
674
673
|
reduce(
|
|
675
674
|
self,
|
|
676
675
|
Chunk.empty<[K, V]>(),
|
|
@@ -678,7 +677,7 @@ export const toChunk = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Chun
|
|
|
678
677
|
)
|
|
679
678
|
|
|
680
679
|
/** @internal */
|
|
681
|
-
export const toHashMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<
|
|
680
|
+
export const toHashMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<HashMap.HashMap<K, V>> =>
|
|
682
681
|
reduce(
|
|
683
682
|
self,
|
|
684
683
|
HashMap.empty<K, V>(),
|
|
@@ -686,7 +685,7 @@ export const toHashMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Ha
|
|
|
686
685
|
)
|
|
687
686
|
|
|
688
687
|
/** @internal */
|
|
689
|
-
export const toArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<
|
|
688
|
+
export const toArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<Array<[K, V]>> =>
|
|
690
689
|
reduce(
|
|
691
690
|
self,
|
|
692
691
|
[] as Array<[K, V]>,
|
|
@@ -697,7 +696,7 @@ export const toArray = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Arra
|
|
|
697
696
|
)
|
|
698
697
|
|
|
699
698
|
/** @internal */
|
|
700
|
-
export const toMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<
|
|
699
|
+
export const toMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<Map<K, V>> =>
|
|
701
700
|
reduce(
|
|
702
701
|
self,
|
|
703
702
|
new Map<K, V>(),
|
|
@@ -706,8 +705,8 @@ export const toMap = <K, V>(self: TMap.TMap<K, V>): STM.STM<never, never, Map<K,
|
|
|
706
705
|
|
|
707
706
|
/** @internal */
|
|
708
707
|
export const transform = dual<
|
|
709
|
-
<K, V>(f: (key: K, value: V) => readonly [K, V]) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
710
|
-
<K, V>(self: TMap.TMap<K, V>, f: (key: K, value: V) => readonly [K, V]) => STM.STM<
|
|
708
|
+
<K, V>(f: (key: K, value: V) => readonly [K, V]) => (self: TMap.TMap<K, V>) => STM.STM<void>,
|
|
709
|
+
<K, V>(self: TMap.TMap<K, V>, f: (key: K, value: V) => readonly [K, V]) => STM.STM<void>
|
|
711
710
|
>(
|
|
712
711
|
2,
|
|
713
712
|
<K, V>(self: TMap.TMap<K, V>, f: (key: K, value: V) => readonly [K, V]) =>
|
|
@@ -745,12 +744,12 @@ export const transform = dual<
|
|
|
745
744
|
/** @internal */
|
|
746
745
|
export const transformSTM = dual<
|
|
747
746
|
<K, V, R, E>(
|
|
748
|
-
f: (key: K, value: V) => STM.STM<
|
|
749
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
750
|
-
<K, V, R, E>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<
|
|
747
|
+
f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>
|
|
748
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<void, E, R>,
|
|
749
|
+
<K, V, R, E>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>) => STM.STM<void, E, R>
|
|
751
750
|
>(
|
|
752
751
|
2,
|
|
753
|
-
<K, V, R, E>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<
|
|
752
|
+
<K, V, R, E>(self: TMap.TMap<K, V>, f: (key: K, value: V) => STM.STM<readonly [K, V], E, R>) =>
|
|
754
753
|
pipe(
|
|
755
754
|
core.flatMap(
|
|
756
755
|
toReadonlyArray(self),
|
|
@@ -785,14 +784,14 @@ export const transformSTM = dual<
|
|
|
785
784
|
|
|
786
785
|
/** @internal */
|
|
787
786
|
export const transformValues = dual<
|
|
788
|
-
<V>(f: (value: V) => V) => <K>(self: TMap.TMap<K, V>) => STM.STM<
|
|
789
|
-
<K, V>(self: TMap.TMap<K, V>, f: (value: V) => V) => STM.STM<
|
|
787
|
+
<V>(f: (value: V) => V) => <K>(self: TMap.TMap<K, V>) => STM.STM<void>,
|
|
788
|
+
<K, V>(self: TMap.TMap<K, V>, f: (value: V) => V) => STM.STM<void>
|
|
790
789
|
>(2, (self, f) => transform(self, (key, value) => [key, f(value)]))
|
|
791
790
|
|
|
792
791
|
/** @internal */
|
|
793
792
|
export const transformValuesSTM = dual<
|
|
794
|
-
<V, R, E>(f: (value: V) => STM.STM<
|
|
795
|
-
<K, V, R, E>(self: TMap.TMap<K, V>, f: (value: V) => STM.STM<
|
|
793
|
+
<V, R, E>(f: (value: V) => STM.STM<V, E, R>) => <K>(self: TMap.TMap<K, V>) => STM.STM<void, E, R>,
|
|
794
|
+
<K, V, R, E>(self: TMap.TMap<K, V>, f: (value: V) => STM.STM<V, E, R>) => STM.STM<void, E, R>
|
|
796
795
|
>(2, (self, f) =>
|
|
797
796
|
transformSTM(
|
|
798
797
|
self,
|
|
@@ -804,12 +803,12 @@ export const updateWith = dual<
|
|
|
804
803
|
<K, V>(
|
|
805
804
|
key: K,
|
|
806
805
|
f: (value: Option.Option<V>) => Option.Option<V>
|
|
807
|
-
) => (self: TMap.TMap<K, V>) => STM.STM<
|
|
806
|
+
) => (self: TMap.TMap<K, V>) => STM.STM<Option.Option<V>>,
|
|
808
807
|
<K, V>(
|
|
809
808
|
self: TMap.TMap<K, V>,
|
|
810
809
|
key: K,
|
|
811
810
|
f: (value: Option.Option<V>) => Option.Option<V>
|
|
812
|
-
) => STM.STM<
|
|
811
|
+
) => STM.STM<Option.Option<V>>
|
|
813
812
|
>(3, (self, key, f) =>
|
|
814
813
|
core.flatMap(get(self, key), (option) =>
|
|
815
814
|
Option.match(
|
|
@@ -821,5 +820,5 @@ export const updateWith = dual<
|
|
|
821
820
|
)))
|
|
822
821
|
|
|
823
822
|
/** @internal */
|
|
824
|
-
export const values = <K, V>(self: TMap.TMap<K, V>): STM.STM<
|
|
823
|
+
export const values = <K, V>(self: TMap.TMap<K, V>): STM.STM<Array<V>> =>
|
|
825
824
|
core.map(toReadonlyArray(self), RA.map((entry) => entry[1]))
|
|
@@ -31,7 +31,7 @@ export class TPriorityQueueImpl<in out A> implements TPriorityQueue.TPriorityQue
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
/** @internal */
|
|
34
|
-
export const empty = <A>(order: Order.Order<A>): STM.STM<
|
|
34
|
+
export const empty = <A>(order: Order.Order<A>): STM.STM<TPriorityQueue.TPriorityQueue<A>> =>
|
|
35
35
|
pipe(
|
|
36
36
|
tRef.make(SortedMap.empty<A, [A, ...Array<A>]>(order)),
|
|
37
37
|
core.map((ref) => new TPriorityQueueImpl(ref))
|
|
@@ -39,7 +39,7 @@ export const empty = <A>(order: Order.Order<A>): STM.STM<never, never, TPriority
|
|
|
39
39
|
|
|
40
40
|
/** @internal */
|
|
41
41
|
export const fromIterable =
|
|
42
|
-
<A>(order: Order.Order<A>) => (iterable: Iterable<A>): STM.STM<
|
|
42
|
+
<A>(order: Order.Order<A>) => (iterable: Iterable<A>): STM.STM<TPriorityQueue.TPriorityQueue<A>> =>
|
|
43
43
|
pipe(
|
|
44
44
|
tRef.make(
|
|
45
45
|
Array.from(iterable).reduce(
|
|
@@ -65,22 +65,21 @@ export const fromIterable =
|
|
|
65
65
|
)
|
|
66
66
|
|
|
67
67
|
/** @internal */
|
|
68
|
-
export const isEmpty = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
68
|
+
export const isEmpty = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<boolean> =>
|
|
69
69
|
core.map(tRef.get(self.ref), SortedMap.isEmpty)
|
|
70
70
|
|
|
71
71
|
/** @internal */
|
|
72
|
-
export const isNonEmpty = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
72
|
+
export const isNonEmpty = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<boolean> =>
|
|
73
73
|
core.map(tRef.get(self.ref), SortedMap.isNonEmpty)
|
|
74
74
|
|
|
75
75
|
/** @internal */
|
|
76
|
-
export const make =
|
|
77
|
-
|
|
78
|
-
fromIterable(order)(elements)
|
|
76
|
+
export const make = <A>(order: Order.Order<A>) => (...elements: Array<A>): STM.STM<TPriorityQueue.TPriorityQueue<A>> =>
|
|
77
|
+
fromIterable(order)(elements)
|
|
79
78
|
|
|
80
79
|
/** @internal */
|
|
81
80
|
export const offer = dual<
|
|
82
|
-
<A>(value: A) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<
|
|
83
|
-
<A>(self: TPriorityQueue.TPriorityQueue<A>, value: A) => STM.STM<
|
|
81
|
+
<A>(value: A) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<void>,
|
|
82
|
+
<A>(self: TPriorityQueue.TPriorityQueue<A>, value: A) => STM.STM<void>
|
|
84
83
|
>(2, (self, value) =>
|
|
85
84
|
tRef.update(self.ref, (map) =>
|
|
86
85
|
SortedMap.set(
|
|
@@ -94,8 +93,8 @@ export const offer = dual<
|
|
|
94
93
|
|
|
95
94
|
/** @internal */
|
|
96
95
|
export const offerAll = dual<
|
|
97
|
-
<A>(values: Iterable<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<
|
|
98
|
-
<A>(self: TPriorityQueue.TPriorityQueue<A>, values: Iterable<A>) => STM.STM<
|
|
96
|
+
<A>(values: Iterable<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<void>,
|
|
97
|
+
<A>(self: TPriorityQueue.TPriorityQueue<A>, values: Iterable<A>) => STM.STM<void>
|
|
99
98
|
>(2, (self, values) =>
|
|
100
99
|
tRef.update(self.ref, (map) =>
|
|
101
100
|
Array.from(values).reduce(
|
|
@@ -112,7 +111,7 @@ export const offerAll = dual<
|
|
|
112
111
|
)))
|
|
113
112
|
|
|
114
113
|
/** @internal */
|
|
115
|
-
export const peek = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
114
|
+
export const peek = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<A> =>
|
|
116
115
|
core.withSTMRuntime((runtime) => {
|
|
117
116
|
const map = tRef.unsafeGet(self.ref, runtime.journal)
|
|
118
117
|
return Option.match(
|
|
@@ -125,7 +124,7 @@ export const peek = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never,
|
|
|
125
124
|
})
|
|
126
125
|
|
|
127
126
|
/** @internal */
|
|
128
|
-
export const peekOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
127
|
+
export const peekOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Option.Option<A>> =>
|
|
129
128
|
tRef.modify(self.ref, (map) => [
|
|
130
129
|
Option.map(SortedMap.headOption(map), (elements) => elements[0]),
|
|
131
130
|
map
|
|
@@ -133,14 +132,14 @@ export const peekOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<n
|
|
|
133
132
|
|
|
134
133
|
/** @internal */
|
|
135
134
|
export const removeIf = dual<
|
|
136
|
-
<A>(predicate: Predicate<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<
|
|
137
|
-
<A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) => STM.STM<
|
|
135
|
+
<A>(predicate: Predicate<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<void>,
|
|
136
|
+
<A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) => STM.STM<void>
|
|
138
137
|
>(2, (self, predicate) => retainIf(self, (a) => !predicate(a)))
|
|
139
138
|
|
|
140
139
|
/** @internal */
|
|
141
140
|
export const retainIf = dual<
|
|
142
|
-
<A>(predicate: Predicate<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<
|
|
143
|
-
<A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) => STM.STM<
|
|
141
|
+
<A>(predicate: Predicate<A>) => (self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<void>,
|
|
142
|
+
<A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) => STM.STM<void>
|
|
144
143
|
>(
|
|
145
144
|
2,
|
|
146
145
|
<A>(self: TPriorityQueue.TPriorityQueue<A>, predicate: Predicate<A>) =>
|
|
@@ -157,14 +156,14 @@ export const retainIf = dual<
|
|
|
157
156
|
)
|
|
158
157
|
|
|
159
158
|
/** @internal */
|
|
160
|
-
export const size = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
159
|
+
export const size = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<number> =>
|
|
161
160
|
tRef.modify(
|
|
162
161
|
self.ref,
|
|
163
162
|
(map) => [SortedMap.reduce(map, 0, (n, as) => n + as.length), map]
|
|
164
163
|
)
|
|
165
164
|
|
|
166
165
|
/** @internal */
|
|
167
|
-
export const take = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
166
|
+
export const take = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<A> =>
|
|
168
167
|
core.withSTMRuntime((runtime) => {
|
|
169
168
|
const map = tRef.unsafeGet(self.ref, runtime.journal)
|
|
170
169
|
return Option.match(SortedMap.headOption(map), {
|
|
@@ -185,7 +184,7 @@ export const take = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<never,
|
|
|
185
184
|
})
|
|
186
185
|
|
|
187
186
|
/** @internal */
|
|
188
|
-
export const takeAll = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
187
|
+
export const takeAll = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Array<A>> =>
|
|
189
188
|
tRef.modify(self.ref, (map) => {
|
|
190
189
|
const builder: Array<A> = []
|
|
191
190
|
for (const entry of map) {
|
|
@@ -197,7 +196,7 @@ export const takeAll = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<neve
|
|
|
197
196
|
})
|
|
198
197
|
|
|
199
198
|
/** @internal */
|
|
200
|
-
export const takeOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
199
|
+
export const takeOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Option.Option<A>> =>
|
|
201
200
|
core.effect<never, Option.Option<A>>((journal) => {
|
|
202
201
|
const map = pipe(self.ref, tRef.unsafeGet(journal))
|
|
203
202
|
return Option.match(SortedMap.headOption(map), {
|
|
@@ -218,8 +217,8 @@ export const takeOption = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<n
|
|
|
218
217
|
|
|
219
218
|
/** @internal */
|
|
220
219
|
export const takeUpTo = dual<
|
|
221
|
-
(n: number) => <A>(self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<
|
|
222
|
-
<A>(self: TPriorityQueue.TPriorityQueue<A>, n: number) => STM.STM<
|
|
220
|
+
(n: number) => <A>(self: TPriorityQueue.TPriorityQueue<A>) => STM.STM<Array<A>>,
|
|
221
|
+
<A>(self: TPriorityQueue.TPriorityQueue<A>, n: number) => STM.STM<Array<A>>
|
|
223
222
|
>(2, <A>(self: TPriorityQueue.TPriorityQueue<A>, n: number) =>
|
|
224
223
|
tRef.modify(self.ref, (map) => {
|
|
225
224
|
const builder: Array<A> = []
|
|
@@ -244,7 +243,7 @@ export const takeUpTo = dual<
|
|
|
244
243
|
}))
|
|
245
244
|
|
|
246
245
|
/** @internal */
|
|
247
|
-
export const toChunk = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
246
|
+
export const toChunk = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Chunk.Chunk<A>> =>
|
|
248
247
|
tRef.modify(self.ref, (map) => {
|
|
249
248
|
const builder: Array<A> = []
|
|
250
249
|
for (const entry of map) {
|
|
@@ -256,7 +255,7 @@ export const toChunk = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<neve
|
|
|
256
255
|
})
|
|
257
256
|
|
|
258
257
|
/** @internal */
|
|
259
|
-
export const toArray = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<
|
|
258
|
+
export const toArray = <A>(self: TPriorityQueue.TPriorityQueue<A>): STM.STM<Array<A>> =>
|
|
260
259
|
tRef.modify(self.ref, (map) => {
|
|
261
260
|
const builder: Array<A> = []
|
|
262
261
|
for (const entry of map) {
|