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/STM.ts
CHANGED
|
@@ -30,7 +30,7 @@ export const STMTypeId: unique symbol = core.STMTypeId
|
|
|
30
30
|
export type STMTypeId = typeof STMTypeId
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
|
-
* `STM<
|
|
33
|
+
* `STM<A, E, R>` represents an effect that can be performed transactionally,
|
|
34
34
|
* resulting in a failure `E` or a value `A` that may require an environment
|
|
35
35
|
* `R` to execute.
|
|
36
36
|
*
|
|
@@ -66,7 +66,9 @@ export type STMTypeId = typeof STMTypeId
|
|
|
66
66
|
* @since 2.0.0
|
|
67
67
|
* @category models
|
|
68
68
|
*/
|
|
69
|
-
export interface STM<out
|
|
69
|
+
export interface STM<out A, out E = never, out R = never>
|
|
70
|
+
extends Effect.Effect<A, E, R>, STM.Variance<A, E, R>, Pipeable
|
|
71
|
+
{
|
|
70
72
|
[Unify.typeSymbol]?: unknown
|
|
71
73
|
[Unify.unifySymbol]?: STMUnify<this>
|
|
72
74
|
[Unify.ignoreSymbol]?: STMUnifyIgnore
|
|
@@ -77,7 +79,7 @@ export interface STM<out R, out E, out A> extends Effect.Effect<R, E, A>, STM.Va
|
|
|
77
79
|
* @category models
|
|
78
80
|
*/
|
|
79
81
|
export interface STMUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
|
|
80
|
-
STM?: () => A[Unify.typeSymbol] extends STM<infer
|
|
82
|
+
STM?: () => A[Unify.typeSymbol] extends STM<infer A0, infer E0, infer R0> | infer _ ? STM<R0, E0, A0> : never
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
/**
|
|
@@ -93,7 +95,7 @@ export interface STMUnifyIgnore extends Effect.EffectUnifyIgnore {
|
|
|
93
95
|
* @since 2.0.0
|
|
94
96
|
*/
|
|
95
97
|
export interface STMTypeLambda extends TypeLambda {
|
|
96
|
-
readonly type: STM<this["
|
|
98
|
+
readonly type: STM<this["Target"], this["Out1"], this["Out2"]>
|
|
97
99
|
}
|
|
98
100
|
|
|
99
101
|
/**
|
|
@@ -101,7 +103,7 @@ export interface STMTypeLambda extends TypeLambda {
|
|
|
101
103
|
* @category models
|
|
102
104
|
*/
|
|
103
105
|
declare module "./Context.js" {
|
|
104
|
-
interface Tag<Identifier, Service> extends STM<
|
|
106
|
+
interface Tag<Identifier, Service> extends STM<Service, never, Identifier> {}
|
|
105
107
|
}
|
|
106
108
|
|
|
107
109
|
/**
|
|
@@ -109,10 +111,10 @@ declare module "./Context.js" {
|
|
|
109
111
|
* @category models
|
|
110
112
|
*/
|
|
111
113
|
declare module "./Either.js" {
|
|
112
|
-
interface Left<E, A> extends STM<
|
|
114
|
+
interface Left<E, A> extends STM<A, E> {
|
|
113
115
|
readonly _tag: "Left"
|
|
114
116
|
}
|
|
115
|
-
interface Right<E, A> extends STM<
|
|
117
|
+
interface Right<E, A> extends STM<A, E> {
|
|
116
118
|
readonly _tag: "Right"
|
|
117
119
|
}
|
|
118
120
|
}
|
|
@@ -122,10 +124,10 @@ declare module "./Either.js" {
|
|
|
122
124
|
* @category models
|
|
123
125
|
*/
|
|
124
126
|
declare module "./Option.js" {
|
|
125
|
-
interface None<A> extends STM<
|
|
127
|
+
interface None<A> extends STM<A, Cause.NoSuchElementException> {
|
|
126
128
|
readonly _tag: "None"
|
|
127
129
|
}
|
|
128
|
-
interface Some<A> extends STM<
|
|
130
|
+
interface Some<A> extends STM<A, Cause.NoSuchElementException> {
|
|
129
131
|
readonly _tag: "Some"
|
|
130
132
|
}
|
|
131
133
|
}
|
|
@@ -138,11 +140,11 @@ export declare namespace STM {
|
|
|
138
140
|
* @since 2.0.0
|
|
139
141
|
* @category models
|
|
140
142
|
*/
|
|
141
|
-
export interface Variance<out
|
|
143
|
+
export interface Variance<out A, out E, out R> {
|
|
142
144
|
readonly [STMTypeId]: {
|
|
143
|
-
readonly _R: Covariant<R>
|
|
144
|
-
readonly _E: Covariant<E>
|
|
145
145
|
readonly _A: Covariant<A>
|
|
146
|
+
readonly _E: Covariant<E>
|
|
147
|
+
readonly _R: Covariant<R>
|
|
146
148
|
}
|
|
147
149
|
}
|
|
148
150
|
}
|
|
@@ -151,12 +153,12 @@ export declare namespace STM {
|
|
|
151
153
|
* @category models
|
|
152
154
|
* @since 2.0.0
|
|
153
155
|
*/
|
|
154
|
-
export interface STMGen<out
|
|
155
|
-
readonly _R: () => R
|
|
156
|
-
readonly _E: () => E
|
|
156
|
+
export interface STMGen<out A, out E, out R> {
|
|
157
157
|
readonly _A: () => A
|
|
158
|
-
readonly
|
|
159
|
-
|
|
158
|
+
readonly _E: () => E
|
|
159
|
+
readonly _R: () => R
|
|
160
|
+
readonly value: STM<A, E, R>
|
|
161
|
+
[Symbol.iterator](): Generator<STMGen<A, E, R>, A>
|
|
160
162
|
}
|
|
161
163
|
|
|
162
164
|
/**
|
|
@@ -178,16 +180,14 @@ export const isSTM: (u: unknown) => u is STM<unknown, unknown, unknown> = core.i
|
|
|
178
180
|
*/
|
|
179
181
|
export const acquireUseRelease: {
|
|
180
182
|
<A, R2, E2, A2, R3, E3, A3>(
|
|
181
|
-
use: (resource: A) => STM<
|
|
182
|
-
release: (resource: A) => STM<
|
|
183
|
-
): <R, E>(
|
|
184
|
-
acquire: STM<R, E, A>
|
|
185
|
-
) => Effect.Effect<R2 | R3 | R, E2 | E3 | E, A2>
|
|
183
|
+
use: (resource: A) => STM<A2, E2, R2>,
|
|
184
|
+
release: (resource: A) => STM<A3, E3, R3>
|
|
185
|
+
): <R, E>(acquire: STM<A, E, R>) => Effect.Effect<A2, E2 | E3 | E, R2 | R3 | R>
|
|
186
186
|
<R, E, A, R2, E2, A2, R3, E3, A3>(
|
|
187
|
-
acquire: STM<
|
|
188
|
-
use: (resource: A) => STM<
|
|
189
|
-
release: (resource: A) => STM<
|
|
190
|
-
): Effect.Effect<
|
|
187
|
+
acquire: STM<A, E, R>,
|
|
188
|
+
use: (resource: A) => STM<A2, E2, R2>,
|
|
189
|
+
release: (resource: A) => STM<A3, E3, R3>
|
|
190
|
+
): Effect.Effect<A2, E | E2 | E3, R | R2 | R3>
|
|
191
191
|
} = stm.acquireUseRelease
|
|
192
192
|
|
|
193
193
|
/**
|
|
@@ -198,29 +198,29 @@ export declare namespace All {
|
|
|
198
198
|
type STMAny = STM<any, any, any>
|
|
199
199
|
|
|
200
200
|
type ReturnTuple<T extends ReadonlyArray<STM<any, any, any>>, Discard extends boolean> = STM<
|
|
201
|
-
|
|
202
|
-
:
|
|
203
|
-
: never,
|
|
201
|
+
Discard extends true ? void
|
|
202
|
+
: T[number] extends never ? []
|
|
203
|
+
: { -readonly [K in keyof T]: [T[K]] extends [STM<infer A, infer _E, infer _R>] ? A : never },
|
|
204
204
|
T[number] extends never ? never
|
|
205
205
|
: [T[number]] extends [{ [STMTypeId]: { _E: (_: never) => infer E } }] ? E
|
|
206
206
|
: never,
|
|
207
|
-
|
|
208
|
-
: T[number] extends never ?
|
|
209
|
-
:
|
|
207
|
+
T[number] extends never ? never
|
|
208
|
+
: [T[number]] extends [{ [STMTypeId]: { _R: (_: never) => infer R } }] ? R
|
|
209
|
+
: never
|
|
210
210
|
> extends infer X ? X : never
|
|
211
211
|
|
|
212
212
|
type ReturnIterable<T extends Iterable<STMAny>, Discard extends boolean> = [T] extends
|
|
213
|
-
[Iterable<STM.Variance<infer
|
|
213
|
+
[Iterable<STM.Variance<infer A, infer E, infer R>>] ? STM<Discard extends true ? void : Array<A>, E, R> : never
|
|
214
214
|
|
|
215
215
|
type ReturnObject<T extends Record<string, STMAny>, Discard extends boolean> = STM<
|
|
216
|
-
|
|
217
|
-
: [
|
|
218
|
-
: never,
|
|
216
|
+
Discard extends true ? void
|
|
217
|
+
: { -readonly [K in keyof T]: [T[K]] extends [STM.Variance<infer A, infer _E, infer _R>] ? A : never },
|
|
219
218
|
keyof T extends never ? never
|
|
220
219
|
: [T[keyof T]] extends [{ [STMTypeId]: { _E: (_: never) => infer E } }] ? E
|
|
221
220
|
: never,
|
|
222
|
-
|
|
223
|
-
:
|
|
221
|
+
keyof T extends never ? never
|
|
222
|
+
: [T[keyof T]] extends [{ [STMTypeId]: { _R: (_: never) => infer R } }] ? R
|
|
223
|
+
: never
|
|
224
224
|
>
|
|
225
225
|
|
|
226
226
|
/**
|
|
@@ -267,8 +267,8 @@ export const all: All.Signature = stm.all
|
|
|
267
267
|
* @category mapping
|
|
268
268
|
*/
|
|
269
269
|
export const as: {
|
|
270
|
-
<A2>(value: A2): <
|
|
271
|
-
<R, E, A, A2>(self: STM<
|
|
270
|
+
<A2>(value: A2): <A, E, R>(self: STM<A, E, R>) => STM<A2, E, R>
|
|
271
|
+
<R, E, A, A2>(self: STM<A, E, R>, value: A2): STM<A2, E, R>
|
|
272
272
|
} = stm.as
|
|
273
273
|
|
|
274
274
|
/**
|
|
@@ -277,7 +277,7 @@ export const as: {
|
|
|
277
277
|
* @since 2.0.0
|
|
278
278
|
* @category mapping
|
|
279
279
|
*/
|
|
280
|
-
export const asSome: <
|
|
280
|
+
export const asSome: <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E, R> = stm.asSome
|
|
281
281
|
|
|
282
282
|
/**
|
|
283
283
|
* Maps the error value of this effect to an optional value.
|
|
@@ -285,7 +285,7 @@ export const asSome: <R, E, A>(self: STM<R, E, A>) => STM<R, E, Option.Option<A>
|
|
|
285
285
|
* @since 2.0.0
|
|
286
286
|
* @category mapping
|
|
287
287
|
*/
|
|
288
|
-
export const asSomeError: <
|
|
288
|
+
export const asSomeError: <A, E, R>(self: STM<A, E, R>) => STM<A, Option.Option<E>, R> = stm.asSomeError
|
|
289
289
|
|
|
290
290
|
/**
|
|
291
291
|
* This function maps the success value of an `STM` to `void`. If the original
|
|
@@ -295,7 +295,7 @@ export const asSomeError: <R, E, A>(self: STM<R, E, A>) => STM<R, Option.Option<
|
|
|
295
295
|
* @since 2.0.0
|
|
296
296
|
* @category mapping
|
|
297
297
|
*/
|
|
298
|
-
export const asUnit: <
|
|
298
|
+
export const asUnit: <A, E, R>(self: STM<A, E, R>) => STM<void, E, R> = stm.asUnit
|
|
299
299
|
|
|
300
300
|
/**
|
|
301
301
|
* Creates an `STM` value from a partial (but pure) function.
|
|
@@ -303,7 +303,7 @@ export const asUnit: <R, E, A>(self: STM<R, E, A>) => STM<R, E, void> = stm.asUn
|
|
|
303
303
|
* @since 2.0.0
|
|
304
304
|
* @category constructors
|
|
305
305
|
*/
|
|
306
|
-
export const attempt: <A>(evaluate: LazyArg<A>) => STM<
|
|
306
|
+
export const attempt: <A>(evaluate: LazyArg<A>) => STM<A, unknown> = stm.attempt
|
|
307
307
|
|
|
308
308
|
/**
|
|
309
309
|
* Recovers from all errors.
|
|
@@ -312,8 +312,8 @@ export const attempt: <A>(evaluate: LazyArg<A>) => STM<never, unknown, A> = stm.
|
|
|
312
312
|
* @category error handling
|
|
313
313
|
*/
|
|
314
314
|
export const catchAll: {
|
|
315
|
-
<E, R1, E1, B>(f: (e: E) => STM<
|
|
316
|
-
<R, A, E, R1, E1, B>(self: STM<
|
|
315
|
+
<E, R1, E1, B>(f: (e: E) => STM<B, E1, R1>): <R, A>(self: STM<A, E, R>) => STM<B | A, E1, R1 | R>
|
|
316
|
+
<R, A, E, R1, E1, B>(self: STM<A, E, R>, f: (e: E) => STM<B, E1, R1>): STM<A | B, E1, R | R1>
|
|
317
317
|
} = core.catchAll
|
|
318
318
|
|
|
319
319
|
/**
|
|
@@ -324,14 +324,14 @@ export const catchAll: {
|
|
|
324
324
|
*/
|
|
325
325
|
export const catchSome: {
|
|
326
326
|
<E, R2, E2, A2>(
|
|
327
|
-
pf: (error: E) => Option.Option<STM<
|
|
327
|
+
pf: (error: E) => Option.Option<STM<A2, E2, R2>>
|
|
328
328
|
): <R, A>(
|
|
329
|
-
self: STM<
|
|
330
|
-
) => STM<
|
|
329
|
+
self: STM<A, E, R>
|
|
330
|
+
) => STM<A2 | A, E | E2, R2 | R>
|
|
331
331
|
<R, A, E, R2, E2, A2>(
|
|
332
|
-
self: STM<
|
|
333
|
-
pf: (error: E) => Option.Option<STM<
|
|
334
|
-
): STM<
|
|
332
|
+
self: STM<A, E, R>,
|
|
333
|
+
pf: (error: E) => Option.Option<STM<A2, E2, R2>>
|
|
334
|
+
): STM<A | A2, E | E2, R | R2>
|
|
335
335
|
} = stm.catchSome
|
|
336
336
|
|
|
337
337
|
/**
|
|
@@ -343,13 +343,13 @@ export const catchSome: {
|
|
|
343
343
|
export const catchTag: {
|
|
344
344
|
<K extends E["_tag"] & string, E extends { _tag: string }, R1, E1, A1>(
|
|
345
345
|
k: K,
|
|
346
|
-
f: (e: Extract<E, { _tag: K }>) => STM<
|
|
347
|
-
): <R, A>(self: STM<
|
|
346
|
+
f: (e: Extract<E, { _tag: K }>) => STM<A1, E1, R1>
|
|
347
|
+
): <R, A>(self: STM<A, E, R>) => STM<A1 | A, E1 | Exclude<E, { _tag: K }>, R1 | R>
|
|
348
348
|
<R, E extends { _tag: string }, A, K extends E["_tag"] & string, R1, E1, A1>(
|
|
349
|
-
self: STM<
|
|
349
|
+
self: STM<A, E, R>,
|
|
350
350
|
k: K,
|
|
351
|
-
f: (e: Extract<E, { _tag: K }>) => STM<
|
|
352
|
-
): STM<
|
|
351
|
+
f: (e: Extract<E, { _tag: K }>) => STM<A1, E1, R1>
|
|
352
|
+
): STM<A | A1, E1 | Exclude<E, { _tag: K }>, R | R1>
|
|
353
353
|
} = stm.catchTag
|
|
354
354
|
|
|
355
355
|
/**
|
|
@@ -365,14 +365,14 @@ export const catchTags: {
|
|
|
365
365
|
>(
|
|
366
366
|
cases: Cases
|
|
367
367
|
): <R, A>(
|
|
368
|
-
self: STM<
|
|
368
|
+
self: STM<A, E, R>
|
|
369
369
|
) => STM<
|
|
370
|
-
|
|
|
371
|
-
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<infer
|
|
370
|
+
| A
|
|
371
|
+
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<infer A, any, any> ? A : never }[keyof Cases],
|
|
372
372
|
| Exclude<E, { _tag: keyof Cases }>
|
|
373
373
|
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, infer E, any> ? E : never }[keyof Cases],
|
|
374
|
-
|
|
|
375
|
-
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, any, infer
|
|
374
|
+
| R
|
|
375
|
+
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, any, infer R> ? R : never }[keyof Cases]
|
|
376
376
|
>
|
|
377
377
|
<
|
|
378
378
|
R,
|
|
@@ -380,15 +380,15 @@ export const catchTags: {
|
|
|
380
380
|
A,
|
|
381
381
|
Cases extends { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => STM<any, any, any>) }
|
|
382
382
|
>(
|
|
383
|
-
self: STM<
|
|
383
|
+
self: STM<A, E, R>,
|
|
384
384
|
cases: Cases
|
|
385
385
|
): STM<
|
|
386
|
-
|
|
|
387
|
-
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<infer
|
|
386
|
+
| A
|
|
387
|
+
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<infer A, any, any> ? A : never }[keyof Cases],
|
|
388
388
|
| Exclude<E, { _tag: keyof Cases }>
|
|
389
389
|
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, infer E, any> ? E : never }[keyof Cases],
|
|
390
|
-
|
|
|
391
|
-
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, any, infer
|
|
390
|
+
| R
|
|
391
|
+
| { [K in keyof Cases]: Cases[K] extends (...args: Array<any>) => STM<any, any, infer R> ? R : never }[keyof Cases]
|
|
392
392
|
>
|
|
393
393
|
} = stm.catchTags
|
|
394
394
|
|
|
@@ -398,7 +398,7 @@ export const catchTags: {
|
|
|
398
398
|
* @since 2.0.0
|
|
399
399
|
* @category constructors
|
|
400
400
|
*/
|
|
401
|
-
export const check: (predicate: LazyArg<boolean>) => STM<
|
|
401
|
+
export const check: (predicate: LazyArg<boolean>) => STM<void> = stm.check
|
|
402
402
|
|
|
403
403
|
/**
|
|
404
404
|
* Simultaneously filters and maps the value produced by this effect.
|
|
@@ -407,8 +407,8 @@ export const check: (predicate: LazyArg<boolean>) => STM<never, never, void> = s
|
|
|
407
407
|
* @category mutations
|
|
408
408
|
*/
|
|
409
409
|
export const collect: {
|
|
410
|
-
<A, A2>(pf: (a: A) => Option.Option<A2>): <R, E>(self: STM<
|
|
411
|
-
<R, E, A, A2>(self: STM<
|
|
410
|
+
<A, A2>(pf: (a: A) => Option.Option<A2>): <R, E>(self: STM<A, E, R>) => STM<A2, E, R>
|
|
411
|
+
<R, E, A, A2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<A2>): STM<A2, E, R>
|
|
412
412
|
} = stm.collect
|
|
413
413
|
|
|
414
414
|
/**
|
|
@@ -418,8 +418,8 @@ export const collect: {
|
|
|
418
418
|
* @category mutations
|
|
419
419
|
*/
|
|
420
420
|
export const collectSTM: {
|
|
421
|
-
<A, R2, E2, A2>(pf: (a: A) => Option.Option<STM<
|
|
422
|
-
<R, E, A, R2, E2, A2>(self: STM<
|
|
421
|
+
<A, R2, E2, A2>(pf: (a: A) => Option.Option<STM<A2, E2, R2>>): <R, E>(self: STM<A, E, R>) => STM<A2, E2 | E, R2 | R>
|
|
422
|
+
<R, E, A, R2, E2, A2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<STM<A2, E2, R2>>): STM<A2, E | E2, R | R2>
|
|
423
423
|
} = stm.collectSTM
|
|
424
424
|
|
|
425
425
|
/**
|
|
@@ -428,7 +428,7 @@ export const collectSTM: {
|
|
|
428
428
|
* @since 2.0.0
|
|
429
429
|
* @category destructors
|
|
430
430
|
*/
|
|
431
|
-
export const commit: <
|
|
431
|
+
export const commit: <A, E, R>(self: STM<A, E, R>) => Effect.Effect<A, E, R> = core.commit
|
|
432
432
|
|
|
433
433
|
/**
|
|
434
434
|
* Commits this transaction atomically, regardless of whether the transaction
|
|
@@ -437,7 +437,7 @@ export const commit: <R, E, A>(self: STM<R, E, A>) => Effect.Effect<R, E, A> = c
|
|
|
437
437
|
* @since 2.0.0
|
|
438
438
|
* @category destructors
|
|
439
439
|
*/
|
|
440
|
-
export const commitEither: <
|
|
440
|
+
export const commitEither: <A, E, R>(self: STM<A, E, R>) => Effect.Effect<A, E, R> = stm.commitEither
|
|
441
441
|
|
|
442
442
|
/**
|
|
443
443
|
* Similar to Either.cond, evaluate the predicate, return the given A as
|
|
@@ -446,8 +446,7 @@ export const commitEither: <R, E, A>(self: STM<R, E, A>) => Effect.Effect<R, E,
|
|
|
446
446
|
* @since 2.0.0
|
|
447
447
|
* @category constructors
|
|
448
448
|
*/
|
|
449
|
-
export const cond: <
|
|
450
|
-
stm.cond
|
|
449
|
+
export const cond: <A, E>(predicate: LazyArg<boolean>, error: LazyArg<E>, result: LazyArg<A>) => STM<A, E> = stm.cond
|
|
451
450
|
|
|
452
451
|
/**
|
|
453
452
|
* Retrieves the environment inside an stm.
|
|
@@ -455,7 +454,7 @@ export const cond: <E, A>(predicate: LazyArg<boolean>, error: LazyArg<E>, result
|
|
|
455
454
|
* @since 2.0.0
|
|
456
455
|
* @category constructors
|
|
457
456
|
*/
|
|
458
|
-
export const context: <R>() => STM<R
|
|
457
|
+
export const context: <R>() => STM<Context.Context<R>, never, R> = core.context
|
|
459
458
|
|
|
460
459
|
/**
|
|
461
460
|
* Accesses the environment of the transaction to perform a transaction.
|
|
@@ -463,7 +462,7 @@ export const context: <R>() => STM<R, never, Context.Context<R>> = core.context
|
|
|
463
462
|
* @since 2.0.0
|
|
464
463
|
* @category constructors
|
|
465
464
|
*/
|
|
466
|
-
export const contextWith: <R0, R>(f: (environment: Context.Context<R0>) => R) => STM<
|
|
465
|
+
export const contextWith: <R0, R>(f: (environment: Context.Context<R0>) => R) => STM<R, never, R0> = core.contextWith
|
|
467
466
|
|
|
468
467
|
/**
|
|
469
468
|
* Accesses the environment of the transaction to perform a transaction.
|
|
@@ -472,8 +471,8 @@ export const contextWith: <R0, R>(f: (environment: Context.Context<R0>) => R) =>
|
|
|
472
471
|
* @category constructors
|
|
473
472
|
*/
|
|
474
473
|
export const contextWithSTM: <R0, R, E, A>(
|
|
475
|
-
f: (environment: Context.Context<R0>) => STM<
|
|
476
|
-
) => STM<R0 | R
|
|
474
|
+
f: (environment: Context.Context<R0>) => STM<A, E, R>
|
|
475
|
+
) => STM<A, E, R0 | R> = core.contextWithSTM
|
|
477
476
|
|
|
478
477
|
/**
|
|
479
478
|
* Transforms the environment being provided to this effect with the specified
|
|
@@ -483,8 +482,8 @@ export const contextWithSTM: <R0, R, E, A>(
|
|
|
483
482
|
* @category context
|
|
484
483
|
*/
|
|
485
484
|
export const mapInputContext: {
|
|
486
|
-
<R0, R>(f: (context: Context.Context<R0>) => Context.Context<R>): <
|
|
487
|
-
<
|
|
485
|
+
<R0, R>(f: (context: Context.Context<R0>) => Context.Context<R>): <A, E>(self: STM<A, E, R>) => STM<A, E, R0>
|
|
486
|
+
<A, E, R0, R>(self: STM<A, E, R>, f: (context: Context.Context<R0>) => Context.Context<R>): STM<A, E, R0>
|
|
488
487
|
} = core.mapInputContext
|
|
489
488
|
|
|
490
489
|
/**
|
|
@@ -493,7 +492,7 @@ export const mapInputContext: {
|
|
|
493
492
|
* @since 2.0.0
|
|
494
493
|
* @category constructors
|
|
495
494
|
*/
|
|
496
|
-
export const die: (defect: unknown) => STM<never
|
|
495
|
+
export const die: (defect: unknown) => STM<never> = core.die
|
|
497
496
|
|
|
498
497
|
/**
|
|
499
498
|
* Kills the fiber running the effect with a `Cause.RuntimeException` that
|
|
@@ -502,7 +501,7 @@ export const die: (defect: unknown) => STM<never, never, never> = core.die
|
|
|
502
501
|
* @since 2.0.0
|
|
503
502
|
* @category constructors
|
|
504
503
|
*/
|
|
505
|
-
export const dieMessage: (message: string) => STM<never
|
|
504
|
+
export const dieMessage: (message: string) => STM<never> = core.dieMessage
|
|
506
505
|
|
|
507
506
|
/**
|
|
508
507
|
* Fails the transactional effect with the specified lazily evaluated defect.
|
|
@@ -510,7 +509,7 @@ export const dieMessage: (message: string) => STM<never, never, never> = core.di
|
|
|
510
509
|
* @since 2.0.0
|
|
511
510
|
* @category constructors
|
|
512
511
|
*/
|
|
513
|
-
export const dieSync: (evaluate: LazyArg<unknown>) => STM<never
|
|
512
|
+
export const dieSync: (evaluate: LazyArg<unknown>) => STM<never> = core.dieSync
|
|
514
513
|
|
|
515
514
|
/**
|
|
516
515
|
* Converts the failure channel into an `Either`.
|
|
@@ -518,7 +517,7 @@ export const dieSync: (evaluate: LazyArg<unknown>) => STM<never, never, never> =
|
|
|
518
517
|
* @since 2.0.0
|
|
519
518
|
* @category mutations
|
|
520
519
|
*/
|
|
521
|
-
export const either: <
|
|
520
|
+
export const either: <A, E, R>(self: STM<A, E, R>) => STM<Either.Either<E, A>, never, R> = stm.either
|
|
522
521
|
|
|
523
522
|
/**
|
|
524
523
|
* Executes the specified finalization transaction whether or not this effect
|
|
@@ -529,8 +528,8 @@ export const either: <R, E, A>(self: STM<R, E, A>) => STM<R, never, Either.Eithe
|
|
|
529
528
|
* @category finalization
|
|
530
529
|
*/
|
|
531
530
|
export const ensuring: {
|
|
532
|
-
<R1, B>(finalizer: STM<
|
|
533
|
-
<R, E, A, R1, B>(self: STM<
|
|
531
|
+
<R1, B>(finalizer: STM<B, never, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A, E, R1 | R>
|
|
532
|
+
<R, E, A, R1, B>(self: STM<A, E, R>, finalizer: STM<B, never, R1>): STM<A, E, R | R1>
|
|
534
533
|
} = core.ensuring
|
|
535
534
|
|
|
536
535
|
/**
|
|
@@ -540,7 +539,7 @@ export const ensuring: {
|
|
|
540
539
|
* @since 2.0.0
|
|
541
540
|
* @category mutations
|
|
542
541
|
*/
|
|
543
|
-
export const eventually: <
|
|
542
|
+
export const eventually: <A, E, R>(self: STM<A, E, R>) => STM<A, E, R> = stm.eventually
|
|
544
543
|
|
|
545
544
|
/**
|
|
546
545
|
* Determines whether all elements of the `Iterable<A>` satisfy the effectual
|
|
@@ -550,8 +549,8 @@ export const eventually: <R, E, A>(self: STM<R, E, A>) => STM<R, E, A> = stm.eve
|
|
|
550
549
|
* @category constructors
|
|
551
550
|
*/
|
|
552
551
|
export const every: {
|
|
553
|
-
<A, R, E>(predicate: (a: NoInfer<A>) => STM<
|
|
554
|
-
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<
|
|
552
|
+
<A, R, E>(predicate: (a: NoInfer<A>) => STM<boolean, E, R>): (iterable: Iterable<A>) => STM<boolean, E, R>
|
|
553
|
+
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<boolean, E, R>): STM<boolean, E, R>
|
|
555
554
|
} = stm.every
|
|
556
555
|
|
|
557
556
|
/**
|
|
@@ -562,8 +561,8 @@ export const every: {
|
|
|
562
561
|
* @category constructors
|
|
563
562
|
*/
|
|
564
563
|
export const exists: {
|
|
565
|
-
<A, R, E>(predicate: (a: NoInfer<A>) => STM<
|
|
566
|
-
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<
|
|
564
|
+
<A, R, E>(predicate: (a: NoInfer<A>) => STM<boolean, E, R>): (iterable: Iterable<A>) => STM<boolean, E, R>
|
|
565
|
+
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<boolean, E, R>): STM<boolean, E, R>
|
|
567
566
|
} = stm.exists
|
|
568
567
|
|
|
569
568
|
/**
|
|
@@ -572,7 +571,7 @@ export const exists: {
|
|
|
572
571
|
* @since 2.0.0
|
|
573
572
|
* @category constructors
|
|
574
573
|
*/
|
|
575
|
-
export const fail: <E>(error: E) => STM<never, E
|
|
574
|
+
export const fail: <E>(error: E) => STM<never, E> = core.fail
|
|
576
575
|
|
|
577
576
|
/**
|
|
578
577
|
* Fails the transactional effect with the specified lazily evaluated error.
|
|
@@ -580,7 +579,7 @@ export const fail: <E>(error: E) => STM<never, E, never> = core.fail
|
|
|
580
579
|
* @since 2.0.0
|
|
581
580
|
* @category constructors
|
|
582
581
|
*/
|
|
583
|
-
export const failSync: <E>(evaluate: LazyArg<E>) => STM<never, E
|
|
582
|
+
export const failSync: <E>(evaluate: LazyArg<E>) => STM<never, E> = core.failSync
|
|
584
583
|
|
|
585
584
|
/**
|
|
586
585
|
* Returns the fiber id of the fiber committing the transaction.
|
|
@@ -588,7 +587,7 @@ export const failSync: <E>(evaluate: LazyArg<E>) => STM<never, E, never> = core.
|
|
|
588
587
|
* @since 2.0.0
|
|
589
588
|
* @category constructors
|
|
590
589
|
*/
|
|
591
|
-
export const fiberId: STM<
|
|
590
|
+
export const fiberId: STM<FiberId.FiberId> = stm.fiberId
|
|
592
591
|
|
|
593
592
|
/**
|
|
594
593
|
* Filters the collection using the specified effectual predicate.
|
|
@@ -597,8 +596,8 @@ export const fiberId: STM<never, never, FiberId.FiberId> = stm.fiberId
|
|
|
597
596
|
* @category constructors
|
|
598
597
|
*/
|
|
599
598
|
export const filter: {
|
|
600
|
-
<A, R, E>(predicate: (a: NoInfer<A>) => STM<
|
|
601
|
-
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<
|
|
599
|
+
<A, R, E>(predicate: (a: NoInfer<A>) => STM<boolean, E, R>): (iterable: Iterable<A>) => STM<Array<A>, E, R>
|
|
600
|
+
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<boolean, E, R>): STM<Array<A>, E, R>
|
|
602
601
|
} = stm.filter
|
|
603
602
|
|
|
604
603
|
/**
|
|
@@ -609,8 +608,8 @@ export const filter: {
|
|
|
609
608
|
* @category constructors
|
|
610
609
|
*/
|
|
611
610
|
export const filterNot: {
|
|
612
|
-
<A, R, E>(predicate: (a: NoInfer<A>) => STM<
|
|
613
|
-
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<
|
|
611
|
+
<A, R, E>(predicate: (a: NoInfer<A>) => STM<boolean, E, R>): (iterable: Iterable<A>) => STM<Array<A>, E, R>
|
|
612
|
+
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<boolean, E, R>): STM<Array<A>, E, R>
|
|
614
613
|
} = stm.filterNot
|
|
615
614
|
|
|
616
615
|
/**
|
|
@@ -623,10 +622,10 @@ export const filterOrDie: {
|
|
|
623
622
|
<A, B extends A>(
|
|
624
623
|
refinement: Refinement<NoInfer<A>, B>,
|
|
625
624
|
defect: LazyArg<unknown>
|
|
626
|
-
): <R, E>(self: STM<
|
|
627
|
-
<A>(predicate: Predicate<NoInfer<A>>, defect: LazyArg<unknown>): <R, E>(self: STM<
|
|
628
|
-
<R, E, A, B extends A>(self: STM<
|
|
629
|
-
<
|
|
625
|
+
): <R, E>(self: STM<A, E, R>) => STM<B, E, R>
|
|
626
|
+
<A>(predicate: Predicate<NoInfer<A>>, defect: LazyArg<unknown>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>
|
|
627
|
+
<R, E, A, B extends A>(self: STM<A, E, R>, refinement: Refinement<A, B>, defect: LazyArg<unknown>): STM<B, E, R>
|
|
628
|
+
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>, defect: LazyArg<unknown>): STM<A, E, R>
|
|
630
629
|
} = stm.filterOrDie
|
|
631
630
|
|
|
632
631
|
/**
|
|
@@ -637,10 +636,10 @@ export const filterOrDie: {
|
|
|
637
636
|
* @category filtering
|
|
638
637
|
*/
|
|
639
638
|
export const filterOrDieMessage: {
|
|
640
|
-
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>, message: string): <R, E>(self: STM<
|
|
641
|
-
<A>(predicate: Predicate<NoInfer<A>>, message: string): <R, E>(self: STM<
|
|
642
|
-
<R, E, A, B extends A>(self: STM<
|
|
643
|
-
<
|
|
639
|
+
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>, message: string): <R, E>(self: STM<A, E, R>) => STM<B, E, R>
|
|
640
|
+
<A>(predicate: Predicate<NoInfer<A>>, message: string): <R, E>(self: STM<A, E, R>) => STM<A, E, R>
|
|
641
|
+
<R, E, A, B extends A>(self: STM<A, E, R>, refinement: Refinement<A, B>, message: string): STM<B, E, R>
|
|
642
|
+
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>, message: string): STM<A, E, R>
|
|
644
643
|
} = stm.filterOrDieMessage
|
|
645
644
|
|
|
646
645
|
/**
|
|
@@ -652,22 +651,22 @@ export const filterOrDieMessage: {
|
|
|
652
651
|
export const filterOrElse: {
|
|
653
652
|
<A, B extends A, R2, E2, C>(
|
|
654
653
|
refinement: Refinement<NoInfer<A>, B>,
|
|
655
|
-
orElse: (a: NoInfer<A>) => STM<
|
|
656
|
-
): <R, E>(self: STM<
|
|
654
|
+
orElse: (a: NoInfer<A>) => STM<C, E2, R2>
|
|
655
|
+
): <R, E>(self: STM<A, E, R>) => STM<B | C, E2 | E, R2 | R>
|
|
657
656
|
<A, R2, E2, B>(
|
|
658
657
|
predicate: Predicate<NoInfer<A>>,
|
|
659
|
-
orElse: (a: NoInfer<A>) => STM<
|
|
660
|
-
): <R, E>(self: STM<
|
|
658
|
+
orElse: (a: NoInfer<A>) => STM<B, E2, R2>
|
|
659
|
+
): <R, E>(self: STM<A, E, R>) => STM<A | B, E2 | E, R2 | R>
|
|
661
660
|
<R, E, A, B extends A, R2, E2, C>(
|
|
662
|
-
self: STM<
|
|
661
|
+
self: STM<A, E, R>,
|
|
663
662
|
refinement: Refinement<A, B>,
|
|
664
|
-
orElse: (a: A) => STM<
|
|
665
|
-
): STM<
|
|
663
|
+
orElse: (a: A) => STM<C, E2, R2>
|
|
664
|
+
): STM<B | C, E | E2, R | R2>
|
|
666
665
|
<R, E, A, R2, E2, B>(
|
|
667
|
-
self: STM<
|
|
666
|
+
self: STM<A, E, R>,
|
|
668
667
|
predicate: Predicate<A>,
|
|
669
|
-
orElse: (a: A) => STM<
|
|
670
|
-
): STM<
|
|
668
|
+
orElse: (a: A) => STM<B, E2, R2>
|
|
669
|
+
): STM<A | B, E | E2, R | R2>
|
|
671
670
|
} = stm.filterOrElse
|
|
672
671
|
|
|
673
672
|
/**
|
|
@@ -680,17 +679,17 @@ export const filterOrFail: {
|
|
|
680
679
|
<A, B extends A, E2>(
|
|
681
680
|
refinement: Refinement<NoInfer<A>, B>,
|
|
682
681
|
orFailWith: (a: NoInfer<A>) => E2
|
|
683
|
-
): <R, E>(self: STM<
|
|
682
|
+
): <R, E>(self: STM<A, E, R>) => STM<B, E2 | E, R>
|
|
684
683
|
<A, E2>(
|
|
685
684
|
predicate: Predicate<NoInfer<A>>,
|
|
686
685
|
orFailWith: (a: NoInfer<A>) => E2
|
|
687
|
-
): <R, E>(self: STM<
|
|
686
|
+
): <R, E>(self: STM<A, E, R>) => STM<A, E2 | E, R>
|
|
688
687
|
<R, E, A, B extends A, E2>(
|
|
689
|
-
self: STM<
|
|
688
|
+
self: STM<A, E, R>,
|
|
690
689
|
refinement: Refinement<A, B>,
|
|
691
690
|
orFailWith: (a: A) => E2
|
|
692
|
-
): STM<
|
|
693
|
-
<R, E, A, E2>(self: STM<
|
|
691
|
+
): STM<B, E | E2, R>
|
|
692
|
+
<R, E, A, E2>(self: STM<A, E, R>, predicate: Predicate<A>, orFailWith: (a: A) => E2): STM<A, E | E2, R>
|
|
694
693
|
} = stm.filterOrFail
|
|
695
694
|
|
|
696
695
|
/**
|
|
@@ -701,8 +700,8 @@ export const filterOrFail: {
|
|
|
701
700
|
* @category sequencing
|
|
702
701
|
*/
|
|
703
702
|
export const flatMap: {
|
|
704
|
-
<A, R1, E1, A2>(f: (a: A) => STM<
|
|
705
|
-
<R, E, A, R1, E1, A2>(self: STM<
|
|
703
|
+
<A, R1, E1, A2>(f: (a: A) => STM<A2, E1, R1>): <R, E>(self: STM<A, E, R>) => STM<A2, E1 | E, R1 | R>
|
|
704
|
+
<R, E, A, R1, E1, A2>(self: STM<A, E, R>, f: (a: A) => STM<A2, E1, R1>): STM<A2, E | E1, R | R1>
|
|
706
705
|
} = core.flatMap
|
|
707
706
|
|
|
708
707
|
/**
|
|
@@ -711,7 +710,7 @@ export const flatMap: {
|
|
|
711
710
|
* @since 2.0.0
|
|
712
711
|
* @category sequencing
|
|
713
712
|
*/
|
|
714
|
-
export const flatten: <R, E, R2, E2, A>(self: STM<
|
|
713
|
+
export const flatten: <R, E, R2, E2, A>(self: STM<STM<A, E2, R2>, E, R>) => STM<A, E | E2, R | R2> = stm.flatten
|
|
715
714
|
|
|
716
715
|
/**
|
|
717
716
|
* Flips the success and failure channels of this transactional effect. This
|
|
@@ -721,7 +720,7 @@ export const flatten: <R, E, R2, E2, A>(self: STM<R, E, STM<R2, E2, A>>) => STM<
|
|
|
721
720
|
* @since 2.0.0
|
|
722
721
|
* @category mutations
|
|
723
722
|
*/
|
|
724
|
-
export const flip: <
|
|
723
|
+
export const flip: <A, E, R>(self: STM<A, E, R>) => STM<E, A, R> = stm.flip
|
|
725
724
|
|
|
726
725
|
/**
|
|
727
726
|
* Swaps the error/value parameters, applies the function `f` and flips the
|
|
@@ -731,8 +730,8 @@ export const flip: <R, E, A>(self: STM<R, E, A>) => STM<R, A, E> = stm.flip
|
|
|
731
730
|
* @category mutations
|
|
732
731
|
*/
|
|
733
732
|
export const flipWith: {
|
|
734
|
-
<R, A, E, R2, A2, E2>(f: (stm: STM<
|
|
735
|
-
<R, A, E, R2, A2, E2>(self: STM<
|
|
733
|
+
<R, A, E, R2, A2, E2>(f: (stm: STM<E, A, R>) => STM<E2, A2, R2>): (self: STM<A, E, R>) => STM<A | A2, E | E2, R | R2>
|
|
734
|
+
<R, A, E, R2, A2, E2>(self: STM<A, E, R>, f: (stm: STM<E, A, R>) => STM<E2, A2, R2>): STM<A | A2, E | E2, R | R2>
|
|
736
735
|
} = stm.flipWith
|
|
737
736
|
|
|
738
737
|
/**
|
|
@@ -748,14 +747,14 @@ export const match: {
|
|
|
748
747
|
readonly onFailure: (error: E) => A2
|
|
749
748
|
readonly onSuccess: (value: A) => A3
|
|
750
749
|
}
|
|
751
|
-
): <R>(self: STM<
|
|
750
|
+
): <R>(self: STM<A, E, R>) => STM<A2 | A3, never, R>
|
|
752
751
|
<R, E, A2, A, A3>(
|
|
753
|
-
self: STM<
|
|
752
|
+
self: STM<A, E, R>,
|
|
754
753
|
options: {
|
|
755
754
|
readonly onFailure: (error: E) => A2
|
|
756
755
|
readonly onSuccess: (value: A) => A3
|
|
757
756
|
}
|
|
758
|
-
): STM<
|
|
757
|
+
): STM<A2 | A3, never, R>
|
|
759
758
|
} = stm.match
|
|
760
759
|
|
|
761
760
|
/**
|
|
@@ -767,17 +766,17 @@ export const match: {
|
|
|
767
766
|
export const matchSTM: {
|
|
768
767
|
<E, R1, E1, A1, A, R2, E2, A2>(
|
|
769
768
|
options: {
|
|
770
|
-
readonly onFailure: (e: E) => STM<
|
|
771
|
-
readonly onSuccess: (a: A) => STM<
|
|
769
|
+
readonly onFailure: (e: E) => STM<A1, E1, R1>
|
|
770
|
+
readonly onSuccess: (a: A) => STM<A2, E2, R2>
|
|
772
771
|
}
|
|
773
|
-
): <R>(self: STM<
|
|
772
|
+
): <R>(self: STM<A, E, R>) => STM<A1 | A2, E1 | E2, R1 | R2 | R>
|
|
774
773
|
<R, E, R1, E1, A1, A, R2, E2, A2>(
|
|
775
|
-
self: STM<
|
|
774
|
+
self: STM<A, E, R>,
|
|
776
775
|
options: {
|
|
777
|
-
readonly onFailure: (e: E) => STM<
|
|
778
|
-
readonly onSuccess: (a: A) => STM<
|
|
776
|
+
readonly onFailure: (e: E) => STM<A1, E1, R1>
|
|
777
|
+
readonly onSuccess: (a: A) => STM<A2, E2, R2>
|
|
779
778
|
}
|
|
780
|
-
): STM<
|
|
779
|
+
): STM<A1 | A2, E1 | E2, R | R1 | R2>
|
|
781
780
|
} = core.matchSTM
|
|
782
781
|
|
|
783
782
|
/**
|
|
@@ -789,27 +788,27 @@ export const matchSTM: {
|
|
|
789
788
|
*/
|
|
790
789
|
export const forEach: {
|
|
791
790
|
<A, R, E, A2>(
|
|
792
|
-
f: (a: A) => STM<
|
|
791
|
+
f: (a: A) => STM<A2, E, R>,
|
|
793
792
|
options?: {
|
|
794
793
|
readonly discard?: false | undefined
|
|
795
794
|
}
|
|
796
|
-
): (elements: Iterable<A>) => STM<
|
|
795
|
+
): (elements: Iterable<A>) => STM<Array<A2>, E, R>
|
|
797
796
|
<A, R, E, A2>(
|
|
798
|
-
f: (a: A) => STM<
|
|
797
|
+
f: (a: A) => STM<A2, E, R>,
|
|
799
798
|
options: {
|
|
800
799
|
readonly discard: true
|
|
801
800
|
}
|
|
802
|
-
): (elements: Iterable<A>) => STM<
|
|
801
|
+
): (elements: Iterable<A>) => STM<void, E, R>
|
|
803
802
|
<A, R, E, A2>(
|
|
804
803
|
elements: Iterable<A>,
|
|
805
|
-
f: (a: A) => STM<
|
|
804
|
+
f: (a: A) => STM<A2, E, R>,
|
|
806
805
|
options?: {
|
|
807
806
|
readonly discard?: false | undefined
|
|
808
807
|
}
|
|
809
|
-
): STM<
|
|
810
|
-
<A, R, E, A2>(elements: Iterable<A>, f: (a: A) => STM<
|
|
808
|
+
): STM<Array<A2>, E, R>
|
|
809
|
+
<A, R, E, A2>(elements: Iterable<A>, f: (a: A) => STM<A2, E, R>, options: {
|
|
811
810
|
readonly discard: true
|
|
812
|
-
}): STM<
|
|
811
|
+
}): STM<void, E, R>
|
|
813
812
|
} = stm.forEach
|
|
814
813
|
|
|
815
814
|
/**
|
|
@@ -818,7 +817,7 @@ export const forEach: {
|
|
|
818
817
|
* @since 2.0.0
|
|
819
818
|
* @category constructors
|
|
820
819
|
*/
|
|
821
|
-
export const fromEither: <E, A>(either: Either.Either<E, A>) => STM<
|
|
820
|
+
export const fromEither: <E, A>(either: Either.Either<E, A>) => STM<A, E> = stm.fromEither
|
|
822
821
|
|
|
823
822
|
/**
|
|
824
823
|
* Lifts an `Option` into a `STM`.
|
|
@@ -826,32 +825,32 @@ export const fromEither: <E, A>(either: Either.Either<E, A>) => STM<never, E, A>
|
|
|
826
825
|
* @since 2.0.0
|
|
827
826
|
* @category constructors
|
|
828
827
|
*/
|
|
829
|
-
export const fromOption: <A>(option: Option.Option<A>) => STM<
|
|
828
|
+
export const fromOption: <A>(option: Option.Option<A>) => STM<A, Option.Option<never>> = stm.fromOption
|
|
830
829
|
|
|
831
830
|
/**
|
|
832
831
|
* @since 2.0.0
|
|
833
832
|
* @category models
|
|
834
833
|
*/
|
|
835
834
|
export interface Adapter {
|
|
836
|
-
<
|
|
837
|
-
<A, _R, _E, _A>(a: A, ab: (a: A) => STM<
|
|
838
|
-
<A, B, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => STM<
|
|
839
|
-
<A, B, C, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => STM<
|
|
835
|
+
<A, E, R>(self: STM<A, E, R>): STMGen<A, E, R>
|
|
836
|
+
<A, _R, _E, _A>(a: A, ab: (a: A) => STM<_A, _E, _R>): STMGen<_A, _E, _R>
|
|
837
|
+
<A, B, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => STM<_A, _E, _R>): STMGen<_A, _E, _R>
|
|
838
|
+
<A, B, C, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => STM<_A, _E, _R>): STMGen<_A, _E, _R>
|
|
840
839
|
<A, B, C, D, _R, _E, _A>(
|
|
841
840
|
a: A,
|
|
842
841
|
ab: (a: A) => B,
|
|
843
842
|
bc: (b: B) => C,
|
|
844
843
|
cd: (c: C) => D,
|
|
845
|
-
de: (d: D) => STM<
|
|
846
|
-
): STMGen<
|
|
844
|
+
de: (d: D) => STM<_A, _E, _R>
|
|
845
|
+
): STMGen<_A, _E, _R>
|
|
847
846
|
<A, B, C, D, E, _R, _E, _A>(
|
|
848
847
|
a: A,
|
|
849
848
|
ab: (a: A) => B,
|
|
850
849
|
bc: (b: B) => C,
|
|
851
850
|
cd: (c: C) => D,
|
|
852
851
|
de: (d: D) => E,
|
|
853
|
-
ef: (e: E) => STM<
|
|
854
|
-
): STMGen<
|
|
852
|
+
ef: (e: E) => STM<_A, _E, _R>
|
|
853
|
+
): STMGen<_A, _E, _R>
|
|
855
854
|
<A, B, C, D, E, F, _R, _E, _A>(
|
|
856
855
|
a: A,
|
|
857
856
|
ab: (a: A) => B,
|
|
@@ -859,8 +858,8 @@ export interface Adapter {
|
|
|
859
858
|
cd: (c: C) => D,
|
|
860
859
|
de: (d: D) => E,
|
|
861
860
|
ef: (e: E) => F,
|
|
862
|
-
fg: (f: F) => STM<
|
|
863
|
-
): STMGen<
|
|
861
|
+
fg: (f: F) => STM<_A, _E, _R>
|
|
862
|
+
): STMGen<_A, _E, _R>
|
|
864
863
|
<A, B, C, D, E, F, G, _R, _E, _A>(
|
|
865
864
|
a: A,
|
|
866
865
|
ab: (a: A) => B,
|
|
@@ -869,8 +868,8 @@ export interface Adapter {
|
|
|
869
868
|
de: (d: D) => E,
|
|
870
869
|
ef: (e: E) => F,
|
|
871
870
|
fg: (f: F) => G,
|
|
872
|
-
gh: (g: F) => STM<
|
|
873
|
-
): STMGen<
|
|
871
|
+
gh: (g: F) => STM<_A, _E, _R>
|
|
872
|
+
): STMGen<_A, _E, _R>
|
|
874
873
|
<A, B, C, D, E, F, G, H, _R, _E, _A>(
|
|
875
874
|
a: A,
|
|
876
875
|
ab: (a: A) => B,
|
|
@@ -880,8 +879,8 @@ export interface Adapter {
|
|
|
880
879
|
ef: (e: E) => F,
|
|
881
880
|
fg: (f: F) => G,
|
|
882
881
|
gh: (g: G) => H,
|
|
883
|
-
hi: (g: H) => STM<
|
|
884
|
-
): STMGen<
|
|
882
|
+
hi: (g: H) => STM<_A, _E, _R>
|
|
883
|
+
): STMGen<_A, _E, _R>
|
|
885
884
|
<A, B, C, D, E, F, G, H, I, _R, _E, _A>(
|
|
886
885
|
a: A,
|
|
887
886
|
ab: (a: A) => B,
|
|
@@ -892,8 +891,8 @@ export interface Adapter {
|
|
|
892
891
|
fg: (f: F) => G,
|
|
893
892
|
gh: (g: G) => H,
|
|
894
893
|
hi: (h: H) => I,
|
|
895
|
-
ij: (i: I) => STM<
|
|
896
|
-
): STMGen<
|
|
894
|
+
ij: (i: I) => STM<_A, _E, _R>
|
|
895
|
+
): STMGen<_A, _E, _R>
|
|
897
896
|
<A, B, C, D, E, F, G, H, I, J, _R, _E, _A>(
|
|
898
897
|
a: A,
|
|
899
898
|
ab: (a: A) => B,
|
|
@@ -905,8 +904,8 @@ export interface Adapter {
|
|
|
905
904
|
gh: (g: G) => H,
|
|
906
905
|
hi: (h: H) => I,
|
|
907
906
|
ij: (i: I) => J,
|
|
908
|
-
jk: (j: J) => STM<
|
|
909
|
-
): STMGen<
|
|
907
|
+
jk: (j: J) => STM<_A, _E, _R>
|
|
908
|
+
): STMGen<_A, _E, _R>
|
|
910
909
|
<A, B, C, D, E, F, G, H, I, J, K, _R, _E, _A>(
|
|
911
910
|
a: A,
|
|
912
911
|
ab: (a: A) => B,
|
|
@@ -919,8 +918,8 @@ export interface Adapter {
|
|
|
919
918
|
hi: (h: H) => I,
|
|
920
919
|
ij: (i: I) => J,
|
|
921
920
|
jk: (j: J) => K,
|
|
922
|
-
kl: (k: K) => STM<
|
|
923
|
-
): STMGen<
|
|
921
|
+
kl: (k: K) => STM<_A, _E, _R>
|
|
922
|
+
): STMGen<_A, _E, _R>
|
|
924
923
|
<A, B, C, D, E, F, G, H, I, J, K, L, _R, _E, _A>(
|
|
925
924
|
a: A,
|
|
926
925
|
ab: (a: A) => B,
|
|
@@ -934,8 +933,8 @@ export interface Adapter {
|
|
|
934
933
|
ij: (i: I) => J,
|
|
935
934
|
jk: (j: J) => K,
|
|
936
935
|
kl: (k: K) => L,
|
|
937
|
-
lm: (l: L) => STM<
|
|
938
|
-
): STMGen<
|
|
936
|
+
lm: (l: L) => STM<_A, _E, _R>
|
|
937
|
+
): STMGen<_A, _E, _R>
|
|
939
938
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, _R, _E, _A>(
|
|
940
939
|
a: A,
|
|
941
940
|
ab: (a: A) => B,
|
|
@@ -950,8 +949,8 @@ export interface Adapter {
|
|
|
950
949
|
jk: (j: J) => K,
|
|
951
950
|
kl: (k: K) => L,
|
|
952
951
|
lm: (l: L) => M,
|
|
953
|
-
mn: (m: M) => STM<
|
|
954
|
-
): STMGen<
|
|
952
|
+
mn: (m: M) => STM<_A, _E, _R>
|
|
953
|
+
): STMGen<_A, _E, _R>
|
|
955
954
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, _R, _E, _A>(
|
|
956
955
|
a: A,
|
|
957
956
|
ab: (a: A) => B,
|
|
@@ -967,8 +966,8 @@ export interface Adapter {
|
|
|
967
966
|
kl: (k: K) => L,
|
|
968
967
|
lm: (l: L) => M,
|
|
969
968
|
mn: (m: M) => N,
|
|
970
|
-
no: (n: N) => STM<
|
|
971
|
-
): STMGen<
|
|
969
|
+
no: (n: N) => STM<_A, _E, _R>
|
|
970
|
+
): STMGen<_A, _E, _R>
|
|
972
971
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, _R, _E, _A>(
|
|
973
972
|
a: A,
|
|
974
973
|
ab: (a: A) => B,
|
|
@@ -985,8 +984,8 @@ export interface Adapter {
|
|
|
985
984
|
lm: (l: L) => M,
|
|
986
985
|
mn: (m: M) => N,
|
|
987
986
|
no: (n: N) => O,
|
|
988
|
-
op: (o: O) => STM<
|
|
989
|
-
): STMGen<
|
|
987
|
+
op: (o: O) => STM<_A, _E, _R>
|
|
988
|
+
): STMGen<_A, _E, _R>
|
|
990
989
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, _R, _E, _A>(
|
|
991
990
|
a: A,
|
|
992
991
|
ab: (a: A) => B,
|
|
@@ -1004,8 +1003,8 @@ export interface Adapter {
|
|
|
1004
1003
|
mn: (m: M) => N,
|
|
1005
1004
|
no: (n: N) => O,
|
|
1006
1005
|
op: (o: O) => P,
|
|
1007
|
-
pq: (p: P) => STM<
|
|
1008
|
-
): STMGen<
|
|
1006
|
+
pq: (p: P) => STM<_A, _E, _R>
|
|
1007
|
+
): STMGen<_A, _E, _R>
|
|
1009
1008
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, _R, _E, _A>(
|
|
1010
1009
|
a: A,
|
|
1011
1010
|
ab: (a: A) => B,
|
|
@@ -1024,8 +1023,8 @@ export interface Adapter {
|
|
|
1024
1023
|
no: (n: N) => O,
|
|
1025
1024
|
op: (o: O) => P,
|
|
1026
1025
|
pq: (p: P) => Q,
|
|
1027
|
-
qr: (q: Q) => STM<
|
|
1028
|
-
): STMGen<
|
|
1026
|
+
qr: (q: Q) => STM<_A, _E, _R>
|
|
1027
|
+
): STMGen<_A, _E, _R>
|
|
1029
1028
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, _R, _E, _A>(
|
|
1030
1029
|
a: A,
|
|
1031
1030
|
ab: (a: A) => B,
|
|
@@ -1045,8 +1044,8 @@ export interface Adapter {
|
|
|
1045
1044
|
op: (o: O) => P,
|
|
1046
1045
|
pq: (p: P) => Q,
|
|
1047
1046
|
qr: (q: Q) => R,
|
|
1048
|
-
rs: (r: R) => STM<
|
|
1049
|
-
): STMGen<
|
|
1047
|
+
rs: (r: R) => STM<_A, _E, _R>
|
|
1048
|
+
): STMGen<_A, _E, _R>
|
|
1050
1049
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, _R, _E, _A>(
|
|
1051
1050
|
a: A,
|
|
1052
1051
|
ab: (a: A) => B,
|
|
@@ -1067,8 +1066,8 @@ export interface Adapter {
|
|
|
1067
1066
|
pq: (p: P) => Q,
|
|
1068
1067
|
qr: (q: Q) => R,
|
|
1069
1068
|
rs: (r: R) => S,
|
|
1070
|
-
st: (s: S) => STM<
|
|
1071
|
-
): STMGen<
|
|
1069
|
+
st: (s: S) => STM<_A, _E, _R>
|
|
1070
|
+
): STMGen<_A, _E, _R>
|
|
1072
1071
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, _R, _E, _A>(
|
|
1073
1072
|
a: A,
|
|
1074
1073
|
ab: (a: A) => B,
|
|
@@ -1090,8 +1089,8 @@ export interface Adapter {
|
|
|
1090
1089
|
qr: (q: Q) => R,
|
|
1091
1090
|
rs: (r: R) => S,
|
|
1092
1091
|
st: (s: S) => T,
|
|
1093
|
-
tu: (s: T) => STM<
|
|
1094
|
-
): STMGen<
|
|
1092
|
+
tu: (s: T) => STM<_A, _E, _R>
|
|
1093
|
+
): STMGen<_A, _E, _R>
|
|
1095
1094
|
}
|
|
1096
1095
|
|
|
1097
1096
|
/**
|
|
@@ -1101,9 +1100,9 @@ export interface Adapter {
|
|
|
1101
1100
|
export const gen: <Eff extends STMGen<any, any, any>, AEff>(
|
|
1102
1101
|
f: (resume: Adapter) => Generator<Eff, AEff, any>
|
|
1103
1102
|
) => STM<
|
|
1104
|
-
|
|
1103
|
+
AEff,
|
|
1105
1104
|
[Eff] extends [never] ? never : [Eff] extends [STMGen<any, infer E, any>] ? E : never,
|
|
1106
|
-
|
|
1105
|
+
[Eff] extends [never] ? never : [Eff] extends [STMGen<any, any, infer R>] ? R : never
|
|
1107
1106
|
> = stm.gen
|
|
1108
1107
|
|
|
1109
1108
|
/**
|
|
@@ -1113,29 +1112,29 @@ export const gen: <Eff extends STMGen<any, any, any>, AEff>(
|
|
|
1113
1112
|
* @since 2.0.0
|
|
1114
1113
|
* @category getters
|
|
1115
1114
|
*/
|
|
1116
|
-
export const head: <
|
|
1115
|
+
export const head: <A, E, R>(self: STM<Iterable<A>, E, R>) => STM<A, Option.Option<E>, R> = stm.head
|
|
1117
1116
|
|
|
1118
1117
|
const if_: {
|
|
1119
1118
|
<R1, R2, E1, E2, A, A1>(
|
|
1120
1119
|
options: {
|
|
1121
|
-
readonly onTrue: STM<
|
|
1122
|
-
readonly onFalse: STM<
|
|
1120
|
+
readonly onTrue: STM<A, E1, R1>
|
|
1121
|
+
readonly onFalse: STM<A1, E2, R2>
|
|
1123
1122
|
}
|
|
1124
|
-
): <R = never, E = never>(self: boolean | STM<
|
|
1123
|
+
): <R = never, E = never>(self: boolean | STM<boolean, E, R>) => STM<A | A1, E1 | E2 | E, R1 | R2 | R>
|
|
1125
1124
|
<R, E, R1, R2, E1, E2, A, A1>(
|
|
1126
1125
|
self: boolean,
|
|
1127
1126
|
options: {
|
|
1128
|
-
readonly onTrue: STM<
|
|
1129
|
-
readonly onFalse: STM<
|
|
1127
|
+
readonly onTrue: STM<A, E1, R1>
|
|
1128
|
+
readonly onFalse: STM<A1, E2, R2>
|
|
1130
1129
|
}
|
|
1131
|
-
): STM<
|
|
1130
|
+
): STM<A | A1, E | E1 | E2, R | R1 | R2>
|
|
1132
1131
|
<R, E, R1, R2, E1, E2, A, A1>(
|
|
1133
|
-
self: STM<
|
|
1132
|
+
self: STM<boolean, E, R>,
|
|
1134
1133
|
options: {
|
|
1135
|
-
readonly onTrue: STM<
|
|
1136
|
-
readonly onFalse: STM<
|
|
1134
|
+
readonly onTrue: STM<A, E1, R1>
|
|
1135
|
+
readonly onFalse: STM<A1, E2, R2>
|
|
1137
1136
|
}
|
|
1138
|
-
): STM<
|
|
1137
|
+
): STM<A | A1, E | E1 | E2, R | R1 | R2>
|
|
1139
1138
|
} = stm.if_
|
|
1140
1139
|
|
|
1141
1140
|
export {
|
|
@@ -1154,7 +1153,7 @@ export {
|
|
|
1154
1153
|
* @since 2.0.0
|
|
1155
1154
|
* @category mutations
|
|
1156
1155
|
*/
|
|
1157
|
-
export const ignore: <
|
|
1156
|
+
export const ignore: <A, E, R>(self: STM<A, E, R>) => STM<void, never, R> = stm.ignore
|
|
1158
1157
|
|
|
1159
1158
|
/**
|
|
1160
1159
|
* Interrupts the fiber running the effect.
|
|
@@ -1162,7 +1161,7 @@ export const ignore: <R, E, A>(self: STM<R, E, A>) => STM<R, never, void> = stm.
|
|
|
1162
1161
|
* @since 2.0.0
|
|
1163
1162
|
* @category constructors
|
|
1164
1163
|
*/
|
|
1165
|
-
export const interrupt: STM<never
|
|
1164
|
+
export const interrupt: STM<never> = core.interrupt
|
|
1166
1165
|
|
|
1167
1166
|
/**
|
|
1168
1167
|
* Interrupts the fiber running the effect with the specified `FiberId`.
|
|
@@ -1170,7 +1169,7 @@ export const interrupt: STM<never, never, never> = core.interrupt
|
|
|
1170
1169
|
* @since 2.0.0
|
|
1171
1170
|
* @category constructors
|
|
1172
1171
|
*/
|
|
1173
|
-
export const interruptAs: (fiberId: FiberId.FiberId) => STM<never
|
|
1172
|
+
export const interruptAs: (fiberId: FiberId.FiberId) => STM<never> = core.interruptAs
|
|
1174
1173
|
|
|
1175
1174
|
/**
|
|
1176
1175
|
* Returns whether this transactional effect is a failure.
|
|
@@ -1178,7 +1177,7 @@ export const interruptAs: (fiberId: FiberId.FiberId) => STM<never, never, never>
|
|
|
1178
1177
|
* @since 2.0.0
|
|
1179
1178
|
* @category getters
|
|
1180
1179
|
*/
|
|
1181
|
-
export const isFailure: <
|
|
1180
|
+
export const isFailure: <A, E, R>(self: STM<A, E, R>) => STM<boolean, never, R> = stm.isFailure
|
|
1182
1181
|
|
|
1183
1182
|
/**
|
|
1184
1183
|
* Returns whether this transactional effect is a success.
|
|
@@ -1186,7 +1185,7 @@ export const isFailure: <R, E, A>(self: STM<R, E, A>) => STM<R, never, boolean>
|
|
|
1186
1185
|
* @since 2.0.0
|
|
1187
1186
|
* @category getters
|
|
1188
1187
|
*/
|
|
1189
|
-
export const isSuccess: <
|
|
1188
|
+
export const isSuccess: <A, E, R>(self: STM<A, E, R>) => STM<boolean, never, R> = stm.isSuccess
|
|
1190
1189
|
|
|
1191
1190
|
/**
|
|
1192
1191
|
* Iterates with the specified transactional function. The moral equivalent
|
|
@@ -1209,9 +1208,9 @@ export const iterate: <R, E, Z>(
|
|
|
1209
1208
|
initial: Z,
|
|
1210
1209
|
options: {
|
|
1211
1210
|
readonly while: Predicate<Z>
|
|
1212
|
-
readonly body: (z: Z) => STM<
|
|
1211
|
+
readonly body: (z: Z) => STM<Z, E, R>
|
|
1213
1212
|
}
|
|
1214
|
-
) => STM<
|
|
1213
|
+
) => STM<Z, E, R> = stm.iterate
|
|
1215
1214
|
|
|
1216
1215
|
/**
|
|
1217
1216
|
* Loops with the specified transactional function, collecting the results
|
|
@@ -1238,19 +1237,19 @@ export const loop: {
|
|
|
1238
1237
|
options: {
|
|
1239
1238
|
readonly while: Predicate<Z>
|
|
1240
1239
|
readonly step: (z: Z) => Z
|
|
1241
|
-
readonly body: (z: Z) => STM<
|
|
1240
|
+
readonly body: (z: Z) => STM<A, E, R>
|
|
1242
1241
|
readonly discard?: false | undefined
|
|
1243
1242
|
}
|
|
1244
|
-
): STM<
|
|
1243
|
+
): STM<Array<A>, E, R>
|
|
1245
1244
|
<Z, R, E, A>(
|
|
1246
1245
|
initial: Z,
|
|
1247
1246
|
options: {
|
|
1248
1247
|
readonly while: Predicate<Z>
|
|
1249
1248
|
readonly step: (z: Z) => Z
|
|
1250
|
-
readonly body: (z: Z) => STM<
|
|
1249
|
+
readonly body: (z: Z) => STM<A, E, R>
|
|
1251
1250
|
readonly discard: true
|
|
1252
1251
|
}
|
|
1253
|
-
): STM<
|
|
1252
|
+
): STM<void, E, R>
|
|
1254
1253
|
} = stm.loop
|
|
1255
1254
|
|
|
1256
1255
|
/**
|
|
@@ -1260,8 +1259,8 @@ export const loop: {
|
|
|
1260
1259
|
* @category mapping
|
|
1261
1260
|
*/
|
|
1262
1261
|
export const map: {
|
|
1263
|
-
<A, B>(f: (a: A) => B): <R, E>(self: STM<
|
|
1264
|
-
<R, E, A, B>(self: STM<
|
|
1262
|
+
<A, B>(f: (a: A) => B): <R, E>(self: STM<A, E, R>) => STM<B, E, R>
|
|
1263
|
+
<R, E, A, B>(self: STM<A, E, R>, f: (a: A) => B): STM<B, E, R>
|
|
1265
1264
|
} = core.map
|
|
1266
1265
|
|
|
1267
1266
|
/**
|
|
@@ -1273,8 +1272,8 @@ export const map: {
|
|
|
1273
1272
|
* @category mapping
|
|
1274
1273
|
*/
|
|
1275
1274
|
export const mapAttempt: {
|
|
1276
|
-
<A, B>(f: (a: A) => B): <R, E>(self: STM<
|
|
1277
|
-
<R, E, A, B>(self: STM<
|
|
1275
|
+
<A, B>(f: (a: A) => B): <R, E>(self: STM<A, E, R>) => STM<B, unknown, R>
|
|
1276
|
+
<R, E, A, B>(self: STM<A, E, R>, f: (a: A) => B): STM<B, unknown, R>
|
|
1278
1277
|
} = stm.mapAttempt
|
|
1279
1278
|
|
|
1280
1279
|
/**
|
|
@@ -1290,14 +1289,14 @@ export const mapBoth: {
|
|
|
1290
1289
|
readonly onFailure: (error: E) => E2
|
|
1291
1290
|
readonly onSuccess: (value: A) => A2
|
|
1292
1291
|
}
|
|
1293
|
-
): <R>(self: STM<
|
|
1292
|
+
): <R>(self: STM<A, E, R>) => STM<A2, E2, R>
|
|
1294
1293
|
<R, E, E2, A, A2>(
|
|
1295
|
-
self: STM<
|
|
1294
|
+
self: STM<A, E, R>,
|
|
1296
1295
|
options: {
|
|
1297
1296
|
readonly onFailure: (error: E) => E2
|
|
1298
1297
|
readonly onSuccess: (value: A) => A2
|
|
1299
1298
|
}
|
|
1300
|
-
): STM<
|
|
1299
|
+
): STM<A2, E2, R>
|
|
1301
1300
|
} = stm.mapBoth
|
|
1302
1301
|
|
|
1303
1302
|
/**
|
|
@@ -1307,8 +1306,8 @@ export const mapBoth: {
|
|
|
1307
1306
|
* @category mapping
|
|
1308
1307
|
*/
|
|
1309
1308
|
export const mapError: {
|
|
1310
|
-
<E, E2>(f: (error: E) => E2): <R, A>(self: STM<
|
|
1311
|
-
<R, A, E, E2>(self: STM<
|
|
1309
|
+
<E, E2>(f: (error: E) => E2): <R, A>(self: STM<A, E, R>) => STM<A, E2, R>
|
|
1310
|
+
<R, A, E, E2>(self: STM<A, E, R>, f: (error: E) => E2): STM<A, E2, R>
|
|
1312
1311
|
} = stm.mapError
|
|
1313
1312
|
|
|
1314
1313
|
/**
|
|
@@ -1318,7 +1317,7 @@ export const mapError: {
|
|
|
1318
1317
|
* @since 2.0.0
|
|
1319
1318
|
* @category mutations
|
|
1320
1319
|
*/
|
|
1321
|
-
export const merge: <
|
|
1320
|
+
export const merge: <A, E, R>(self: STM<A, E, R>) => STM<E | A, never, R> = stm.merge
|
|
1322
1321
|
|
|
1323
1322
|
/**
|
|
1324
1323
|
* Merges an `Iterable<STM>` to a single `STM`, working sequentially.
|
|
@@ -1327,8 +1326,8 @@ export const merge: <R, E, A>(self: STM<R, E, A>) => STM<R, never, E | A> = stm.
|
|
|
1327
1326
|
* @category constructors
|
|
1328
1327
|
*/
|
|
1329
1328
|
export const mergeAll: {
|
|
1330
|
-
<A2, A>(zero: A2, f: (a2: A2, a: A) => A2): <R, E>(iterable: Iterable<STM<
|
|
1331
|
-
<R, E, A2, A>(iterable: Iterable<STM<
|
|
1329
|
+
<A2, A>(zero: A2, f: (a2: A2, a: A) => A2): <R, E>(iterable: Iterable<STM<A, E, R>>) => STM<A2, E, R>
|
|
1330
|
+
<R, E, A2, A>(iterable: Iterable<STM<A, E, R>>, zero: A2, f: (a2: A2, a: A) => A2): STM<A2, E, R>
|
|
1332
1331
|
} = stm.mergeAll
|
|
1333
1332
|
|
|
1334
1333
|
/**
|
|
@@ -1337,7 +1336,7 @@ export const mergeAll: {
|
|
|
1337
1336
|
* @since 2.0.0
|
|
1338
1337
|
* @category mutations
|
|
1339
1338
|
*/
|
|
1340
|
-
export const negate: <R, E>(self: STM<
|
|
1339
|
+
export const negate: <R, E>(self: STM<boolean, E, R>) => STM<boolean, E, R> = stm.negate
|
|
1341
1340
|
|
|
1342
1341
|
/**
|
|
1343
1342
|
* Requires the option produced by this value to be `None`.
|
|
@@ -1345,7 +1344,7 @@ export const negate: <R, E>(self: STM<R, E, boolean>) => STM<R, E, boolean> = st
|
|
|
1345
1344
|
* @since 2.0.0
|
|
1346
1345
|
* @category mutations
|
|
1347
1346
|
*/
|
|
1348
|
-
export const none: <
|
|
1347
|
+
export const none: <A, E, R>(self: STM<Option.Option<A>, E, R>) => STM<void, Option.Option<E>, R> = stm.none
|
|
1349
1348
|
|
|
1350
1349
|
/**
|
|
1351
1350
|
* Converts the failure channel into an `Option`.
|
|
@@ -1353,7 +1352,7 @@ export const none: <R, E, A>(self: STM<R, E, Option.Option<A>>) => STM<R, Option
|
|
|
1353
1352
|
* @since 2.0.0
|
|
1354
1353
|
* @category mutations
|
|
1355
1354
|
*/
|
|
1356
|
-
export const option: <
|
|
1355
|
+
export const option: <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, never, R> = stm.option
|
|
1357
1356
|
|
|
1358
1357
|
/**
|
|
1359
1358
|
* Translates `STM` effect failure into death of the fiber, making all
|
|
@@ -1362,7 +1361,7 @@ export const option: <R, E, A>(self: STM<R, E, A>) => STM<R, never, Option.Optio
|
|
|
1362
1361
|
* @since 2.0.0
|
|
1363
1362
|
* @category error handling
|
|
1364
1363
|
*/
|
|
1365
|
-
export const orDie: <
|
|
1364
|
+
export const orDie: <A, E, R>(self: STM<A, E, R>) => STM<A, never, R> = stm.orDie
|
|
1366
1365
|
|
|
1367
1366
|
/**
|
|
1368
1367
|
* Keeps none of the errors, and terminates the fiber running the `STM` effect
|
|
@@ -1372,8 +1371,8 @@ export const orDie: <R, E, A>(self: STM<R, E, A>) => STM<R, never, A> = stm.orDi
|
|
|
1372
1371
|
* @category error handling
|
|
1373
1372
|
*/
|
|
1374
1373
|
export const orDieWith: {
|
|
1375
|
-
<E>(f: (error: E) => unknown): <R, A>(self: STM<
|
|
1376
|
-
<R, A, E>(self: STM<
|
|
1374
|
+
<E>(f: (error: E) => unknown): <R, A>(self: STM<A, E, R>) => STM<A, never, R>
|
|
1375
|
+
<R, A, E>(self: STM<A, E, R>, f: (error: E) => unknown): STM<A, never, R>
|
|
1377
1376
|
} = stm.orDieWith
|
|
1378
1377
|
|
|
1379
1378
|
/**
|
|
@@ -1384,8 +1383,8 @@ export const orDieWith: {
|
|
|
1384
1383
|
* @category error handling
|
|
1385
1384
|
*/
|
|
1386
1385
|
export const orElse: {
|
|
1387
|
-
<R2, E2, A2>(that: LazyArg<STM<
|
|
1388
|
-
<R, E, A, R2, E2, A2>(self: STM<
|
|
1386
|
+
<R2, E2, A2>(that: LazyArg<STM<A2, E2, R2>>): <A, E, R>(self: STM<A, E, R>) => STM<A2 | A, E2, R2 | R>
|
|
1387
|
+
<R, E, A, R2, E2, A2>(self: STM<A, E, R>, that: LazyArg<STM<A2, E2, R2>>): STM<A | A2, E2, R | R2>
|
|
1389
1388
|
} = stm.orElse
|
|
1390
1389
|
|
|
1391
1390
|
/**
|
|
@@ -1397,8 +1396,8 @@ export const orElse: {
|
|
|
1397
1396
|
* @category error handling
|
|
1398
1397
|
*/
|
|
1399
1398
|
export const orElseEither: {
|
|
1400
|
-
<R2, E2, A2>(that: LazyArg<STM<
|
|
1401
|
-
<R, E, A, R2, E2, A2>(self: STM<
|
|
1399
|
+
<R2, E2, A2>(that: LazyArg<STM<A2, E2, R2>>): <A, E, R>(self: STM<A, E, R>) => STM<Either.Either<A, A2>, E2, R2 | R>
|
|
1400
|
+
<R, E, A, R2, E2, A2>(self: STM<A, E, R>, that: LazyArg<STM<A2, E2, R2>>): STM<Either.Either<A, A2>, E2, R | R2>
|
|
1402
1401
|
} = stm.orElseEither
|
|
1403
1402
|
|
|
1404
1403
|
/**
|
|
@@ -1409,8 +1408,8 @@ export const orElseEither: {
|
|
|
1409
1408
|
* @category error handling
|
|
1410
1409
|
*/
|
|
1411
1410
|
export const orElseFail: {
|
|
1412
|
-
<E2>(error: LazyArg<E2>): <
|
|
1413
|
-
<R, E, A, E2>(self: STM<
|
|
1411
|
+
<E2>(error: LazyArg<E2>): <A, E, R>(self: STM<A, E, R>) => STM<A, E2, R>
|
|
1412
|
+
<R, E, A, E2>(self: STM<A, E, R>, error: LazyArg<E2>): STM<A, E2, R>
|
|
1414
1413
|
} = stm.orElseFail
|
|
1415
1414
|
|
|
1416
1415
|
/**
|
|
@@ -1423,14 +1422,14 @@ export const orElseFail: {
|
|
|
1423
1422
|
*/
|
|
1424
1423
|
export const orElseOptional: {
|
|
1425
1424
|
<R2, E2, A2>(
|
|
1426
|
-
that: LazyArg<STM<
|
|
1427
|
-
): <
|
|
1428
|
-
self: STM<
|
|
1429
|
-
) => STM<
|
|
1425
|
+
that: LazyArg<STM<A2, Option.Option<E2>, R2>>
|
|
1426
|
+
): <A, E, R>(
|
|
1427
|
+
self: STM<A, Option.Option<E>, R>
|
|
1428
|
+
) => STM<A2 | A, Option.Option<E2 | E>, R2 | R>
|
|
1430
1429
|
<R, E, A, R2, E2, A2>(
|
|
1431
|
-
self: STM<
|
|
1432
|
-
that: LazyArg<STM<
|
|
1433
|
-
): STM<
|
|
1430
|
+
self: STM<A, Option.Option<E>, R>,
|
|
1431
|
+
that: LazyArg<STM<A2, Option.Option<E2>, R2>>
|
|
1432
|
+
): STM<A | A2, Option.Option<E | E2>, R | R2>
|
|
1434
1433
|
} = stm.orElseOptional
|
|
1435
1434
|
|
|
1436
1435
|
/**
|
|
@@ -1441,8 +1440,8 @@ export const orElseOptional: {
|
|
|
1441
1440
|
* @category error handling
|
|
1442
1441
|
*/
|
|
1443
1442
|
export const orElseSucceed: {
|
|
1444
|
-
<A2>(value: LazyArg<A2>): <
|
|
1445
|
-
<R, E, A, A2>(self: STM<
|
|
1443
|
+
<A2>(value: LazyArg<A2>): <A, E, R>(self: STM<A, E, R>) => STM<A2 | A, never, R>
|
|
1444
|
+
<R, E, A, A2>(self: STM<A, E, R>, value: LazyArg<A2>): STM<A | A2, never, R>
|
|
1446
1445
|
} = stm.orElseSucceed
|
|
1447
1446
|
|
|
1448
1447
|
/**
|
|
@@ -1453,8 +1452,8 @@ export const orElseSucceed: {
|
|
|
1453
1452
|
* @category error handling
|
|
1454
1453
|
*/
|
|
1455
1454
|
export const orTry: {
|
|
1456
|
-
<R1, E1, A1>(that: LazyArg<STM<
|
|
1457
|
-
<R, E, A, R1, E1, A1>(self: STM<
|
|
1455
|
+
<R1, E1, A1>(that: LazyArg<STM<A1, E1, R1>>): <A, E, R>(self: STM<A, E, R>) => STM<A1 | A, E1 | E, R1 | R>
|
|
1456
|
+
<R, E, A, R1, E1, A1>(self: STM<A, E, R>, that: LazyArg<STM<A1, E1, R1>>): STM<A | A1, E | E1, R | R1>
|
|
1458
1457
|
} = core.orTry
|
|
1459
1458
|
|
|
1460
1459
|
/**
|
|
@@ -1466,12 +1465,12 @@ export const orTry: {
|
|
|
1466
1465
|
*/
|
|
1467
1466
|
export const partition: {
|
|
1468
1467
|
<R, E, A, A2>(
|
|
1469
|
-
f: (a: A) => STM<
|
|
1470
|
-
): (elements: Iterable<A>) => STM<
|
|
1468
|
+
f: (a: A) => STM<A2, E, R>
|
|
1469
|
+
): (elements: Iterable<A>) => STM<[excluded: Array<E>, satisfying: Array<A2>], never, R>
|
|
1471
1470
|
<R, E, A, A2>(
|
|
1472
1471
|
elements: Iterable<A>,
|
|
1473
|
-
f: (a: A) => STM<
|
|
1474
|
-
): STM<
|
|
1472
|
+
f: (a: A) => STM<A2, E, R>
|
|
1473
|
+
): STM<[excluded: Array<E>, satisfying: Array<A2>], never, R>
|
|
1475
1474
|
} = stm.partition
|
|
1476
1475
|
|
|
1477
1476
|
/**
|
|
@@ -1482,8 +1481,8 @@ export const partition: {
|
|
|
1482
1481
|
* @category context
|
|
1483
1482
|
*/
|
|
1484
1483
|
export const provideContext: {
|
|
1485
|
-
<R>(env: Context.Context<R>): <
|
|
1486
|
-
<
|
|
1484
|
+
<R>(env: Context.Context<R>): <A, E>(self: STM<A, E, R>) => STM<A, E>
|
|
1485
|
+
<A, E, R>(self: STM<A, E, R>, env: Context.Context<R>): STM<A, E>
|
|
1487
1486
|
} = stm.provideContext
|
|
1488
1487
|
|
|
1489
1488
|
/**
|
|
@@ -1494,8 +1493,8 @@ export const provideContext: {
|
|
|
1494
1493
|
* @category context
|
|
1495
1494
|
*/
|
|
1496
1495
|
export const provideSomeContext: {
|
|
1497
|
-
<R>(context: Context.Context<R>): <R1, E, A>(self: STM<
|
|
1498
|
-
<R, R1, E, A>(self: STM<
|
|
1496
|
+
<R>(context: Context.Context<R>): <R1, E, A>(self: STM<A, E, R1>) => STM<A, E, Exclude<R1, R>>
|
|
1497
|
+
<R, R1, E, A>(self: STM<A, E, R1>, context: Context.Context<R>): STM<A, E, Exclude<R1, R>>
|
|
1499
1498
|
} = stm.provideSomeContext
|
|
1500
1499
|
|
|
1501
1500
|
/**
|
|
@@ -1509,12 +1508,12 @@ export const provideService: {
|
|
|
1509
1508
|
<T extends Context.Tag<any, any>>(
|
|
1510
1509
|
tag: T,
|
|
1511
1510
|
resource: Context.Tag.Service<T>
|
|
1512
|
-
): <
|
|
1511
|
+
): <A, E, R>(self: STM<A, E, R>) => STM<A, E, Exclude<R, Context.Tag.Identifier<T>>>
|
|
1513
1512
|
<R, E, A, T extends Context.Tag<any, any>>(
|
|
1514
|
-
self: STM<
|
|
1513
|
+
self: STM<A, E, R>,
|
|
1515
1514
|
tag: T,
|
|
1516
1515
|
resource: Context.Tag.Service<T>
|
|
1517
|
-
): STM<Exclude<R, Context.Tag.Identifier<T
|
|
1516
|
+
): STM<A, E, Exclude<R, Context.Tag.Identifier<T>>>
|
|
1518
1517
|
} = stm.provideService
|
|
1519
1518
|
|
|
1520
1519
|
/**
|
|
@@ -1527,13 +1526,13 @@ export const provideService: {
|
|
|
1527
1526
|
export const provideServiceSTM: {
|
|
1528
1527
|
<T extends Context.Tag<any, any>, R1, E1>(
|
|
1529
1528
|
tag: T,
|
|
1530
|
-
stm: STM<
|
|
1531
|
-
): <
|
|
1529
|
+
stm: STM<Context.Tag.Service<T>, E1, R1>
|
|
1530
|
+
): <A, E, R>(self: STM<A, E, R>) => STM<A, E1 | E, R1 | Exclude<R, Context.Tag.Identifier<T>>>
|
|
1532
1531
|
<R, E, A, T extends Context.Tag<any, any>, R1, E1>(
|
|
1533
|
-
self: STM<
|
|
1532
|
+
self: STM<A, E, R>,
|
|
1534
1533
|
tag: T,
|
|
1535
|
-
stm: STM<
|
|
1536
|
-
): STM<R1 | Exclude<R, Context.Tag.Identifier<T
|
|
1534
|
+
stm: STM<Context.Tag.Service<T>, E1, R1>
|
|
1535
|
+
): STM<A, E | E1, R1 | Exclude<R, Context.Tag.Identifier<T>>>
|
|
1537
1536
|
} = stm.provideServiceSTM
|
|
1538
1537
|
|
|
1539
1538
|
/**
|
|
@@ -1544,8 +1543,8 @@ export const provideServiceSTM: {
|
|
|
1544
1543
|
* @category constructors
|
|
1545
1544
|
*/
|
|
1546
1545
|
export const reduce: {
|
|
1547
|
-
<S, A, R, E>(zero: S, f: (s: S, a: A) => STM<
|
|
1548
|
-
<S, A, R, E>(iterable: Iterable<A>, zero: S, f: (s: S, a: A) => STM<
|
|
1546
|
+
<S, A, R, E>(zero: S, f: (s: S, a: A) => STM<S, E, R>): (iterable: Iterable<A>) => STM<S, E, R>
|
|
1547
|
+
<S, A, R, E>(iterable: Iterable<A>, zero: S, f: (s: S, a: A) => STM<S, E, R>): STM<S, E, R>
|
|
1549
1548
|
} = stm.reduce
|
|
1550
1549
|
|
|
1551
1550
|
/**
|
|
@@ -1556,16 +1555,16 @@ export const reduce: {
|
|
|
1556
1555
|
*/
|
|
1557
1556
|
export const reduceAll: {
|
|
1558
1557
|
<R2, E2, A>(
|
|
1559
|
-
initial: STM<
|
|
1558
|
+
initial: STM<A, E2, R2>,
|
|
1560
1559
|
f: (x: A, y: A) => A
|
|
1561
1560
|
): <R, E>(
|
|
1562
|
-
iterable: Iterable<STM<
|
|
1563
|
-
) => STM<
|
|
1561
|
+
iterable: Iterable<STM<A, E, R>>
|
|
1562
|
+
) => STM<A, E2 | E, R2 | R>
|
|
1564
1563
|
<R, E, R2, E2, A>(
|
|
1565
|
-
iterable: Iterable<STM<
|
|
1566
|
-
initial: STM<
|
|
1564
|
+
iterable: Iterable<STM<A, E, R>>,
|
|
1565
|
+
initial: STM<A, E2, R2>,
|
|
1567
1566
|
f: (x: A, y: A) => A
|
|
1568
|
-
): STM<
|
|
1567
|
+
): STM<A, E | E2, R | R2>
|
|
1569
1568
|
} = stm.reduceAll
|
|
1570
1569
|
|
|
1571
1570
|
/**
|
|
@@ -1576,8 +1575,8 @@ export const reduceAll: {
|
|
|
1576
1575
|
* @category constructors
|
|
1577
1576
|
*/
|
|
1578
1577
|
export const reduceRight: {
|
|
1579
|
-
<S, A, R, E>(zero: S, f: (s: S, a: A) => STM<
|
|
1580
|
-
<S, A, R, E>(iterable: Iterable<A>, zero: S, f: (s: S, a: A) => STM<
|
|
1578
|
+
<S, A, R, E>(zero: S, f: (s: S, a: A) => STM<S, E, R>): (iterable: Iterable<A>) => STM<S, E, R>
|
|
1579
|
+
<S, A, R, E>(iterable: Iterable<A>, zero: S, f: (s: S, a: A) => STM<S, E, R>): STM<S, E, R>
|
|
1581
1580
|
} = stm.reduceRight
|
|
1582
1581
|
|
|
1583
1582
|
/**
|
|
@@ -1587,8 +1586,8 @@ export const reduceRight: {
|
|
|
1587
1586
|
* @category mutations
|
|
1588
1587
|
*/
|
|
1589
1588
|
export const refineOrDie: {
|
|
1590
|
-
<E, E2>(pf: (error: E) => Option.Option<E2>): <R, A>(self: STM<
|
|
1591
|
-
<R, A, E, E2>(self: STM<
|
|
1589
|
+
<E, E2>(pf: (error: E) => Option.Option<E2>): <R, A>(self: STM<A, E, R>) => STM<A, E2, R>
|
|
1590
|
+
<R, A, E, E2>(self: STM<A, E, R>, pf: (error: E) => Option.Option<E2>): STM<A, E2, R>
|
|
1592
1591
|
} = stm.refineOrDie
|
|
1593
1592
|
|
|
1594
1593
|
/**
|
|
@@ -1599,8 +1598,8 @@ export const refineOrDie: {
|
|
|
1599
1598
|
* @category mutations
|
|
1600
1599
|
*/
|
|
1601
1600
|
export const refineOrDieWith: {
|
|
1602
|
-
<E, E2>(pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): <R, A>(self: STM<
|
|
1603
|
-
<R, A, E, E2>(self: STM<
|
|
1601
|
+
<E, E2>(pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): <R, A>(self: STM<A, E, R>) => STM<A, E2, R>
|
|
1602
|
+
<R, A, E, E2>(self: STM<A, E, R>, pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): STM<A, E2, R>
|
|
1604
1603
|
} = stm.refineOrDieWith
|
|
1605
1604
|
|
|
1606
1605
|
/**
|
|
@@ -1611,8 +1610,8 @@ export const refineOrDieWith: {
|
|
|
1611
1610
|
* @category mutations
|
|
1612
1611
|
*/
|
|
1613
1612
|
export const reject: {
|
|
1614
|
-
<A, E2>(pf: (a: A) => Option.Option<E2>): <R, E>(self: STM<
|
|
1615
|
-
<R, E, A, E2>(self: STM<
|
|
1613
|
+
<A, E2>(pf: (a: A) => Option.Option<E2>): <R, E>(self: STM<A, E, R>) => STM<A, E2 | E, R>
|
|
1614
|
+
<R, E, A, E2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<E2>): STM<A, E | E2, R>
|
|
1616
1615
|
} = stm.reject
|
|
1617
1616
|
|
|
1618
1617
|
/**
|
|
@@ -1624,8 +1623,8 @@ export const reject: {
|
|
|
1624
1623
|
* @category mutations
|
|
1625
1624
|
*/
|
|
1626
1625
|
export const rejectSTM: {
|
|
1627
|
-
<A, R2, E2>(pf: (a: A) => Option.Option<STM<
|
|
1628
|
-
<R, E, A, R2, E2>(self: STM<
|
|
1626
|
+
<A, R2, E2>(pf: (a: A) => Option.Option<STM<E2, E2, R2>>): <R, E>(self: STM<A, E, R>) => STM<A, E2 | E, R2 | R>
|
|
1627
|
+
<R, E, A, R2, E2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<STM<E2, E2, R2>>): STM<A, E | E2, R | R2>
|
|
1629
1628
|
} = stm.rejectSTM
|
|
1630
1629
|
|
|
1631
1630
|
/**
|
|
@@ -1644,8 +1643,8 @@ export const rejectSTM: {
|
|
|
1644
1643
|
* @category mutations
|
|
1645
1644
|
*/
|
|
1646
1645
|
export const repeatUntil: {
|
|
1647
|
-
<A>(predicate: Predicate<A>): <R, E>(self: STM<
|
|
1648
|
-
<
|
|
1646
|
+
<A>(predicate: Predicate<A>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>
|
|
1647
|
+
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>
|
|
1649
1648
|
} = stm.repeatUntil
|
|
1650
1649
|
|
|
1651
1650
|
/**
|
|
@@ -1665,8 +1664,8 @@ export const repeatUntil: {
|
|
|
1665
1664
|
* @category mutations
|
|
1666
1665
|
*/
|
|
1667
1666
|
export const repeatWhile: {
|
|
1668
|
-
<A>(predicate: Predicate<A>): <R, E>(self: STM<
|
|
1669
|
-
<
|
|
1667
|
+
<A>(predicate: Predicate<A>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>
|
|
1668
|
+
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>
|
|
1670
1669
|
} = stm.repeatWhile
|
|
1671
1670
|
|
|
1672
1671
|
/**
|
|
@@ -1677,8 +1676,8 @@ export const repeatWhile: {
|
|
|
1677
1676
|
* @category constructors
|
|
1678
1677
|
*/
|
|
1679
1678
|
export const replicate: {
|
|
1680
|
-
(n: number): <
|
|
1681
|
-
<
|
|
1679
|
+
(n: number): <A, E, R>(self: STM<A, E, R>) => Array<STM<A, E, R>>
|
|
1680
|
+
<A, E, R>(self: STM<A, E, R>, n: number): Array<STM<A, E, R>>
|
|
1682
1681
|
} = stm.replicate
|
|
1683
1682
|
|
|
1684
1683
|
/**
|
|
@@ -1689,8 +1688,8 @@ export const replicate: {
|
|
|
1689
1688
|
* @category constructors
|
|
1690
1689
|
*/
|
|
1691
1690
|
export const replicateSTM: {
|
|
1692
|
-
(n: number): <
|
|
1693
|
-
<
|
|
1691
|
+
(n: number): <A, E, R>(self: STM<A, E, R>) => STM<Array<A>, E, R>
|
|
1692
|
+
<A, E, R>(self: STM<A, E, R>, n: number): STM<Array<A>, E, R>
|
|
1694
1693
|
} = stm.replicateSTM
|
|
1695
1694
|
|
|
1696
1695
|
/**
|
|
@@ -1701,8 +1700,8 @@ export const replicateSTM: {
|
|
|
1701
1700
|
* @category constructors
|
|
1702
1701
|
*/
|
|
1703
1702
|
export const replicateSTMDiscard: {
|
|
1704
|
-
(n: number): <
|
|
1705
|
-
<
|
|
1703
|
+
(n: number): <A, E, R>(self: STM<A, E, R>) => STM<void, E, R>
|
|
1704
|
+
<A, E, R>(self: STM<A, E, R>, n: number): STM<void, E, R>
|
|
1706
1705
|
} = stm.replicateSTMDiscard
|
|
1707
1706
|
|
|
1708
1707
|
/**
|
|
@@ -1712,7 +1711,7 @@ export const replicateSTMDiscard: {
|
|
|
1712
1711
|
* @since 2.0.0
|
|
1713
1712
|
* @category error handling
|
|
1714
1713
|
*/
|
|
1715
|
-
export const retry: STM<never
|
|
1714
|
+
export const retry: STM<never> = core.retry
|
|
1716
1715
|
|
|
1717
1716
|
/**
|
|
1718
1717
|
* Filters the value produced by this effect, retrying the transaction until
|
|
@@ -1722,10 +1721,10 @@ export const retry: STM<never, never, never> = core.retry
|
|
|
1722
1721
|
* @category mutations
|
|
1723
1722
|
*/
|
|
1724
1723
|
export const retryUntil: {
|
|
1725
|
-
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <R, E>(self: STM<
|
|
1726
|
-
<A>(predicate: Predicate<A>): <R, E>(self: STM<
|
|
1727
|
-
<R, E, A, B extends A>(self: STM<
|
|
1728
|
-
<
|
|
1724
|
+
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <R, E>(self: STM<A, E, R>) => STM<B, E, R>
|
|
1725
|
+
<A>(predicate: Predicate<A>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>
|
|
1726
|
+
<R, E, A, B extends A>(self: STM<A, E, R>, refinement: Refinement<A, B>): STM<B, E, R>
|
|
1727
|
+
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>
|
|
1729
1728
|
} = stm.retryUntil
|
|
1730
1729
|
|
|
1731
1730
|
/**
|
|
@@ -1736,8 +1735,8 @@ export const retryUntil: {
|
|
|
1736
1735
|
* @category mutations
|
|
1737
1736
|
*/
|
|
1738
1737
|
export const retryWhile: {
|
|
1739
|
-
<A>(predicate: Predicate<A>): <R, E>(self: STM<
|
|
1740
|
-
<
|
|
1738
|
+
<A>(predicate: Predicate<A>): <R, E>(self: STM<A, E, R>) => STM<A, E, R>
|
|
1739
|
+
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>
|
|
1741
1740
|
} = stm.retryWhile
|
|
1742
1741
|
|
|
1743
1742
|
/**
|
|
@@ -1746,7 +1745,7 @@ export const retryWhile: {
|
|
|
1746
1745
|
* @since 2.0.0
|
|
1747
1746
|
* @category getters
|
|
1748
1747
|
*/
|
|
1749
|
-
export const some: <
|
|
1748
|
+
export const some: <A, E, R>(self: STM<Option.Option<A>, E, R>) => STM<A, Option.Option<E>, R> = stm.some
|
|
1750
1749
|
|
|
1751
1750
|
/**
|
|
1752
1751
|
* Returns an `STM` effect that succeeds with the specified value.
|
|
@@ -1754,7 +1753,7 @@ export const some: <R, E, A>(self: STM<R, E, Option.Option<A>>) => STM<R, Option
|
|
|
1754
1753
|
* @since 2.0.0
|
|
1755
1754
|
* @category constructors
|
|
1756
1755
|
*/
|
|
1757
|
-
export const succeed: <A>(value: A) => STM<
|
|
1756
|
+
export const succeed: <A>(value: A) => STM<A> = core.succeed
|
|
1758
1757
|
|
|
1759
1758
|
/**
|
|
1760
1759
|
* Returns an effect with the empty value.
|
|
@@ -1762,7 +1761,7 @@ export const succeed: <A>(value: A) => STM<never, never, A> = core.succeed
|
|
|
1762
1761
|
* @since 2.0.0
|
|
1763
1762
|
* @category constructors
|
|
1764
1763
|
*/
|
|
1765
|
-
export const succeedNone: STM<
|
|
1764
|
+
export const succeedNone: STM<Option.Option<never>> = stm.succeedNone
|
|
1766
1765
|
|
|
1767
1766
|
/**
|
|
1768
1767
|
* Returns an effect with the optional value.
|
|
@@ -1770,7 +1769,7 @@ export const succeedNone: STM<never, never, Option.Option<never>> = stm.succeedN
|
|
|
1770
1769
|
* @since 2.0.0
|
|
1771
1770
|
* @category constructors
|
|
1772
1771
|
*/
|
|
1773
|
-
export const succeedSome: <A>(value: A) => STM<
|
|
1772
|
+
export const succeedSome: <A>(value: A) => STM<Option.Option<A>> = stm.succeedSome
|
|
1774
1773
|
|
|
1775
1774
|
/**
|
|
1776
1775
|
* Summarizes a `STM` effect by computing a provided value before and after
|
|
@@ -1782,16 +1781,16 @@ export const succeedSome: <A>(value: A) => STM<never, never, Option.Option<A>> =
|
|
|
1782
1781
|
*/
|
|
1783
1782
|
export const summarized: {
|
|
1784
1783
|
<R2, E2, A2, A3>(
|
|
1785
|
-
summary: STM<
|
|
1784
|
+
summary: STM<A2, E2, R2>,
|
|
1786
1785
|
f: (before: A2, after: A2) => A3
|
|
1787
|
-
): <
|
|
1788
|
-
self: STM<
|
|
1789
|
-
) => STM<
|
|
1786
|
+
): <A, E, R>(
|
|
1787
|
+
self: STM<A, E, R>
|
|
1788
|
+
) => STM<[A3, A], E2 | E, R2 | R>
|
|
1790
1789
|
<R, E, A, R2, E2, A2, A3>(
|
|
1791
|
-
self: STM<
|
|
1792
|
-
summary: STM<
|
|
1790
|
+
self: STM<A, E, R>,
|
|
1791
|
+
summary: STM<A2, E2, R2>,
|
|
1793
1792
|
f: (before: A2, after: A2) => A3
|
|
1794
|
-
): STM<
|
|
1793
|
+
): STM<[A3, A], E | E2, R | R2>
|
|
1795
1794
|
} = stm.summarized
|
|
1796
1795
|
|
|
1797
1796
|
/**
|
|
@@ -1800,7 +1799,7 @@ export const summarized: {
|
|
|
1800
1799
|
* @since 2.0.0
|
|
1801
1800
|
* @category constructors
|
|
1802
1801
|
*/
|
|
1803
|
-
export const suspend: <
|
|
1802
|
+
export const suspend: <A, E, R>(evaluate: LazyArg<STM<A, E, R>>) => STM<A, E, R> = stm.suspend
|
|
1804
1803
|
|
|
1805
1804
|
/**
|
|
1806
1805
|
* Returns an `STM` effect that succeeds with the specified lazily evaluated
|
|
@@ -1809,7 +1808,7 @@ export const suspend: <R, E, A>(evaluate: LazyArg<STM<R, E, A>>) => STM<R, E, A>
|
|
|
1809
1808
|
* @since 2.0.0
|
|
1810
1809
|
* @category constructors
|
|
1811
1810
|
*/
|
|
1812
|
-
export const sync: <A>(evaluate: () => A) => STM<
|
|
1811
|
+
export const sync: <A>(evaluate: () => A) => STM<A> = core.sync
|
|
1813
1812
|
|
|
1814
1813
|
/**
|
|
1815
1814
|
* "Peeks" at the success of transactional effect.
|
|
@@ -1818,8 +1817,8 @@ export const sync: <A>(evaluate: () => A) => STM<never, never, A> = core.sync
|
|
|
1818
1817
|
* @category sequencing
|
|
1819
1818
|
*/
|
|
1820
1819
|
export const tap: {
|
|
1821
|
-
<A, R2, E2, _>(f: (a: A) => STM<
|
|
1822
|
-
<R, E, A, R2, E2, _>(self: STM<
|
|
1820
|
+
<A, R2, E2, _>(f: (a: A) => STM<_, E2, R2>): <R, E>(self: STM<A, E, R>) => STM<A, E2 | E, R2 | R>
|
|
1821
|
+
<R, E, A, R2, E2, _>(self: STM<A, E, R>, f: (a: A) => STM<_, E2, R2>): STM<A, E | E2, R | R2>
|
|
1823
1822
|
} = stm.tap
|
|
1824
1823
|
|
|
1825
1824
|
/**
|
|
@@ -1831,17 +1830,17 @@ export const tap: {
|
|
|
1831
1830
|
export const tapBoth: {
|
|
1832
1831
|
<E, XE extends E, R2, E2, A2, A, XA extends A, R3, E3, A3>(
|
|
1833
1832
|
options: {
|
|
1834
|
-
readonly onFailure: (error: XE) => STM<
|
|
1835
|
-
readonly onSuccess: (value: XA) => STM<
|
|
1833
|
+
readonly onFailure: (error: XE) => STM<A2, E2, R2>
|
|
1834
|
+
readonly onSuccess: (value: XA) => STM<A3, E3, R3>
|
|
1836
1835
|
}
|
|
1837
|
-
): <R>(self: STM<
|
|
1836
|
+
): <R>(self: STM<A, E, R>) => STM<A, E | E2 | E3, R2 | R3 | R>
|
|
1838
1837
|
<R, E, XE extends E, R2, E2, A2, A, XA extends A, R3, E3, A3>(
|
|
1839
|
-
self: STM<
|
|
1838
|
+
self: STM<A, E, R>,
|
|
1840
1839
|
options: {
|
|
1841
|
-
readonly onFailure: (error: XE) => STM<
|
|
1842
|
-
readonly onSuccess: (value: XA) => STM<
|
|
1840
|
+
readonly onFailure: (error: XE) => STM<A2, E2, R2>
|
|
1841
|
+
readonly onSuccess: (value: XA) => STM<A3, E3, R3>
|
|
1843
1842
|
}
|
|
1844
|
-
): STM<
|
|
1843
|
+
): STM<A, E | E2 | E3, R | R2 | R3>
|
|
1845
1844
|
} = stm.tapBoth
|
|
1846
1845
|
|
|
1847
1846
|
/**
|
|
@@ -1851,16 +1850,16 @@ export const tapBoth: {
|
|
|
1851
1850
|
* @category sequencing
|
|
1852
1851
|
*/
|
|
1853
1852
|
export const tapError: {
|
|
1854
|
-
<E, R2, E2, _>(f: (error: NoInfer<E>) => STM<
|
|
1855
|
-
<R, A, E, R2, E2, _>(self: STM<
|
|
1853
|
+
<E, R2, E2, _>(f: (error: NoInfer<E>) => STM<_, E2, R2>): <R, A>(self: STM<A, E, R>) => STM<A, E | E2, R2 | R>
|
|
1854
|
+
<R, A, E, R2, E2, _>(self: STM<A, E, R>, f: (error: E) => STM<_, E2, R2>): STM<A, E | E2, R | R2>
|
|
1856
1855
|
} = stm.tapError
|
|
1857
1856
|
|
|
1858
1857
|
const try_: {
|
|
1859
1858
|
<A, E>(options: {
|
|
1860
1859
|
readonly try: LazyArg<A>
|
|
1861
1860
|
readonly catch: (u: unknown) => E
|
|
1862
|
-
}): STM<
|
|
1863
|
-
<A>(try_: LazyArg<A>): STM<
|
|
1861
|
+
}): STM<A, E>
|
|
1862
|
+
<A>(try_: LazyArg<A>): STM<A, unknown>
|
|
1864
1863
|
} = stm.try_
|
|
1865
1864
|
export {
|
|
1866
1865
|
/**
|
|
@@ -1880,8 +1879,8 @@ export {
|
|
|
1880
1879
|
* @category mutations
|
|
1881
1880
|
*/
|
|
1882
1881
|
export const unless: {
|
|
1883
|
-
(predicate: LazyArg<boolean>): <
|
|
1884
|
-
<
|
|
1882
|
+
(predicate: LazyArg<boolean>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E, R>
|
|
1883
|
+
<A, E, R>(self: STM<A, E, R>, predicate: LazyArg<boolean>): STM<Option.Option<A>, E, R>
|
|
1885
1884
|
} = stm.unless
|
|
1886
1885
|
|
|
1887
1886
|
/**
|
|
@@ -1891,8 +1890,8 @@ export const unless: {
|
|
|
1891
1890
|
* @category mutations
|
|
1892
1891
|
*/
|
|
1893
1892
|
export const unlessSTM: {
|
|
1894
|
-
<R2, E2>(predicate: STM<
|
|
1895
|
-
<R, E, A, R2, E2>(self: STM<
|
|
1893
|
+
<R2, E2>(predicate: STM<boolean, E2, R2>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E2 | E, R2 | R>
|
|
1894
|
+
<R, E, A, R2, E2>(self: STM<A, E, R>, predicate: STM<boolean, E2, R2>): STM<Option.Option<A>, E | E2, R | R2>
|
|
1896
1895
|
} = stm.unlessSTM
|
|
1897
1896
|
|
|
1898
1897
|
/**
|
|
@@ -1901,7 +1900,7 @@ export const unlessSTM: {
|
|
|
1901
1900
|
* @since 2.0.0
|
|
1902
1901
|
* @category getters
|
|
1903
1902
|
*/
|
|
1904
|
-
export const unsome: <
|
|
1903
|
+
export const unsome: <A, E, R>(self: STM<A, Option.Option<E>, R>) => STM<Option.Option<A>, E, R> = stm.unsome
|
|
1905
1904
|
|
|
1906
1905
|
/**
|
|
1907
1906
|
* Returns an `STM` effect that succeeds with `Unit`.
|
|
@@ -1909,7 +1908,7 @@ export const unsome: <R, E, A>(self: STM<R, Option.Option<E>, A>) => STM<R, E, O
|
|
|
1909
1908
|
* @since 2.0.0
|
|
1910
1909
|
* @category constructors
|
|
1911
1910
|
*/
|
|
1912
|
-
export const unit: STM<
|
|
1911
|
+
export const unit: STM<void> = stm.unit
|
|
1913
1912
|
|
|
1914
1913
|
/**
|
|
1915
1914
|
* Feeds elements of type `A` to `f` and accumulates all errors in error
|
|
@@ -1922,8 +1921,8 @@ export const unit: STM<never, never, void> = stm.unit
|
|
|
1922
1921
|
* @category mutations
|
|
1923
1922
|
*/
|
|
1924
1923
|
export const validateAll: {
|
|
1925
|
-
<R, E, A, B>(f: (a: A) => STM<
|
|
1926
|
-
<R, E, A, B>(elements: Iterable<A>, f: (a: A) => STM<
|
|
1924
|
+
<R, E, A, B>(f: (a: A) => STM<B, E, R>): (elements: Iterable<A>) => STM<Array<B>, [E, ...Array<E>], R>
|
|
1925
|
+
<R, E, A, B>(elements: Iterable<A>, f: (a: A) => STM<B, E, R>): STM<Array<B>, [E, ...Array<E>], R>
|
|
1927
1926
|
} = stm.validateAll
|
|
1928
1927
|
|
|
1929
1928
|
/**
|
|
@@ -1934,8 +1933,8 @@ export const validateAll: {
|
|
|
1934
1933
|
* @category mutations
|
|
1935
1934
|
*/
|
|
1936
1935
|
export const validateFirst: {
|
|
1937
|
-
<R, E, A, B>(f: (a: A) => STM<
|
|
1938
|
-
<R, E, A, B>(elements: Iterable<A>, f: (a: A) => STM<
|
|
1936
|
+
<R, E, A, B>(f: (a: A) => STM<B, E, R>): (elements: Iterable<A>) => STM<B, Array<E>, R>
|
|
1937
|
+
<R, E, A, B>(elements: Iterable<A>, f: (a: A) => STM<B, E, R>): STM<B, Array<E>, R>
|
|
1939
1938
|
} = stm.validateFirst
|
|
1940
1939
|
|
|
1941
1940
|
/**
|
|
@@ -1945,8 +1944,8 @@ export const validateFirst: {
|
|
|
1945
1944
|
* @category mutations
|
|
1946
1945
|
*/
|
|
1947
1946
|
export const when: {
|
|
1948
|
-
(predicate: LazyArg<boolean>): <
|
|
1949
|
-
<
|
|
1947
|
+
(predicate: LazyArg<boolean>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E, R>
|
|
1948
|
+
<A, E, R>(self: STM<A, E, R>, predicate: LazyArg<boolean>): STM<Option.Option<A>, E, R>
|
|
1950
1949
|
} = stm.when
|
|
1951
1950
|
|
|
1952
1951
|
/**
|
|
@@ -1956,8 +1955,8 @@ export const when: {
|
|
|
1956
1955
|
* @category mutations
|
|
1957
1956
|
*/
|
|
1958
1957
|
export const whenSTM: {
|
|
1959
|
-
<R2, E2>(predicate: STM<
|
|
1960
|
-
<R, E, A, R2, E2>(self: STM<
|
|
1958
|
+
<R2, E2>(predicate: STM<boolean, E2, R2>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E2 | E, R2 | R>
|
|
1959
|
+
<R, E, A, R2, E2>(self: STM<A, E, R>, predicate: STM<boolean, E2, R2>): STM<Option.Option<A>, E | E2, R | R2>
|
|
1961
1960
|
} = stm.whenSTM
|
|
1962
1961
|
|
|
1963
1962
|
/**
|
|
@@ -1967,8 +1966,8 @@ export const whenSTM: {
|
|
|
1967
1966
|
* @category zipping
|
|
1968
1967
|
*/
|
|
1969
1968
|
export const zip: {
|
|
1970
|
-
<R1, E1, A1>(that: STM<
|
|
1971
|
-
<R, E, A, R1, E1, A1>(self: STM<
|
|
1969
|
+
<R1, E1, A1>(that: STM<A1, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<[A, A1], E1 | E, R1 | R>
|
|
1970
|
+
<R, E, A, R1, E1, A1>(self: STM<A, E, R>, that: STM<A1, E1, R1>): STM<[A, A1], E | E1, R | R1>
|
|
1972
1971
|
} = core.zip
|
|
1973
1972
|
|
|
1974
1973
|
/**
|
|
@@ -1979,8 +1978,8 @@ export const zip: {
|
|
|
1979
1978
|
* @category zipping
|
|
1980
1979
|
*/
|
|
1981
1980
|
export const zipLeft: {
|
|
1982
|
-
<R1, E1, A1>(that: STM<
|
|
1983
|
-
<R, E, A, R1, E1, A1>(self: STM<
|
|
1981
|
+
<R1, E1, A1>(that: STM<A1, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A, E1 | E, R1 | R>
|
|
1982
|
+
<R, E, A, R1, E1, A1>(self: STM<A, E, R>, that: STM<A1, E1, R1>): STM<A, E | E1, R | R1>
|
|
1984
1983
|
} = core.zipLeft
|
|
1985
1984
|
|
|
1986
1985
|
/**
|
|
@@ -1991,8 +1990,8 @@ export const zipLeft: {
|
|
|
1991
1990
|
* @category zipping
|
|
1992
1991
|
*/
|
|
1993
1992
|
export const zipRight: {
|
|
1994
|
-
<R1, E1, A1>(that: STM<
|
|
1995
|
-
<R, E, A, R1, E1, A1>(self: STM<
|
|
1993
|
+
<R1, E1, A1>(that: STM<A1, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A1, E1 | E, R1 | R>
|
|
1994
|
+
<R, E, A, R1, E1, A1>(self: STM<A, E, R>, that: STM<A1, E1, R1>): STM<A1, E | E1, R | R1>
|
|
1996
1995
|
} = core.zipRight
|
|
1997
1996
|
|
|
1998
1997
|
/**
|
|
@@ -2004,16 +2003,16 @@ export const zipRight: {
|
|
|
2004
2003
|
*/
|
|
2005
2004
|
export const zipWith: {
|
|
2006
2005
|
<R1, E1, A1, A, A2>(
|
|
2007
|
-
that: STM<
|
|
2006
|
+
that: STM<A1, E1, R1>,
|
|
2008
2007
|
f: (a: A, b: A1) => A2
|
|
2009
2008
|
): <R, E>(
|
|
2010
|
-
self: STM<
|
|
2011
|
-
) => STM<
|
|
2009
|
+
self: STM<A, E, R>
|
|
2010
|
+
) => STM<A2, E1 | E, R1 | R>
|
|
2012
2011
|
<R, E, R1, E1, A1, A, A2>(
|
|
2013
|
-
self: STM<
|
|
2014
|
-
that: STM<
|
|
2012
|
+
self: STM<A, E, R>,
|
|
2013
|
+
that: STM<A1, E1, R1>,
|
|
2015
2014
|
f: (a: A, b: A1) => A2
|
|
2016
|
-
): STM<
|
|
2015
|
+
): STM<A2, E | E1, R | R1>
|
|
2017
2016
|
} = core.zipWith
|
|
2018
2017
|
|
|
2019
2018
|
/**
|
|
@@ -2035,8 +2034,8 @@ export const zipWith: {
|
|
|
2035
2034
|
* @since 2.0.0
|
|
2036
2035
|
* @category elements
|
|
2037
2036
|
*/
|
|
2038
|
-
export const firstSuccessOf = <
|
|
2039
|
-
suspend<
|
|
2037
|
+
export const firstSuccessOf = <A, E, R>(effects: Iterable<STM<A, E, R>>): STM<A, E, R> =>
|
|
2038
|
+
suspend<A, E, R>(() => {
|
|
2040
2039
|
const list = Chunk.fromIterable(effects)
|
|
2041
2040
|
if (!Chunk.isNonEmpty(list)) {
|
|
2042
2041
|
return dieSync(() => new Cause.IllegalArgumentException(`Received an empty collection of effects`))
|
|
@@ -2052,7 +2051,7 @@ export const firstSuccessOf = <R, E, A>(effects: Iterable<STM<R, E, A>>): STM<R,
|
|
|
2052
2051
|
* @category do notation
|
|
2053
2052
|
* @since 2.0.0
|
|
2054
2053
|
*/
|
|
2055
|
-
export const Do: STM<
|
|
2054
|
+
export const Do: STM<{}> = succeed({})
|
|
2056
2055
|
|
|
2057
2056
|
/**
|
|
2058
2057
|
* @category do notation
|
|
@@ -2061,25 +2060,25 @@ export const Do: STM<never, never, {}> = succeed({})
|
|
|
2061
2060
|
export const bind: {
|
|
2062
2061
|
<N extends string, K, R2, E2, A>(
|
|
2063
2062
|
tag: Exclude<N, keyof K>,
|
|
2064
|
-
f: (_: K) => STM<
|
|
2065
|
-
): <R, E>(self: STM<
|
|
2063
|
+
f: (_: K) => STM<A, E2, R2>
|
|
2064
|
+
): <R, E>(self: STM<K, E, R>) => STM<Effect.MergeRecord<K, { [k in N]: A }>, E2 | E, R2 | R>
|
|
2066
2065
|
<R, E, N extends string, K, R2, E2, A>(
|
|
2067
|
-
self: STM<
|
|
2066
|
+
self: STM<K, E, R>,
|
|
2068
2067
|
tag: Exclude<N, keyof K>,
|
|
2069
|
-
f: (_: K) => STM<
|
|
2070
|
-
): STM<
|
|
2068
|
+
f: (_: K) => STM<A, E2, R2>
|
|
2069
|
+
): STM<Effect.MergeRecord<K, { [k in N]: A }>, E | E2, R | R2>
|
|
2071
2070
|
} = stm.bind
|
|
2072
2071
|
|
|
2073
2072
|
const let_: {
|
|
2074
2073
|
<N extends string, K, A>(
|
|
2075
2074
|
tag: Exclude<N, keyof K>,
|
|
2076
2075
|
f: (_: K) => A
|
|
2077
|
-
): <R, E>(self: STM<
|
|
2076
|
+
): <R, E>(self: STM<K, E, R>) => STM<Effect.MergeRecord<K, { [k in N]: A }>, E, R>
|
|
2078
2077
|
<R, E, K, N extends string, A>(
|
|
2079
|
-
self: STM<
|
|
2078
|
+
self: STM<K, E, R>,
|
|
2080
2079
|
tag: Exclude<N, keyof K>,
|
|
2081
2080
|
f: (_: K) => A
|
|
2082
|
-
): STM<
|
|
2081
|
+
): STM<Effect.MergeRecord<K, { [k in N]: A }>, E, R>
|
|
2083
2082
|
} = stm.let_
|
|
2084
2083
|
export {
|
|
2085
2084
|
/**
|
|
@@ -2094,6 +2093,6 @@ export {
|
|
|
2094
2093
|
* @since 2.0.0
|
|
2095
2094
|
*/
|
|
2096
2095
|
export const bindTo: {
|
|
2097
|
-
<N extends string>(tag: N): <
|
|
2098
|
-
<R, E, A, N extends string>(self: STM<
|
|
2096
|
+
<N extends string>(tag: N): <A, E, R>(self: STM<A, E, R>) => STM<Record<N, A>, E, R>
|
|
2097
|
+
<R, E, A, N extends string>(self: STM<A, E, R>, tag: N): STM<Record<N, A>, E, R>
|
|
2099
2098
|
} = stm.bindTo
|