effect 2.0.0-next.55 → 2.0.0-next.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -9
- package/dist/cjs/Cache.js.map +1 -1
- package/dist/cjs/Cause.js +53 -18
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/ChildExecutorDecision.js.map +1 -1
- package/dist/cjs/Chunk.js +5 -5
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Data.js +11 -20
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Duration.js +4 -0
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +11 -4
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +9 -2
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/KeyedPool.js.map +1 -1
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/MergeState.js.map +1 -1
- package/dist/cjs/MetricPolling.js +2 -2
- package/dist/cjs/MetricPolling.js.map +1 -1
- package/dist/cjs/MetricState.js.map +1 -1
- package/dist/cjs/NonEmptyIterable.js.map +1 -1
- package/dist/cjs/Option.js +2 -2
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Pipeable.js.map +1 -1
- package/dist/cjs/Predicate.js +17 -1
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/PrimaryKey.js +15 -0
- package/dist/cjs/PrimaryKey.js.map +1 -0
- package/dist/cjs/Queue.js +6 -1
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/ReadonlyArray.js +2 -0
- package/dist/cjs/ReadonlyArray.js.map +1 -1
- package/dist/cjs/ReadonlyRecord.js +2 -2
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/RedBlackTree.js.map +1 -1
- package/dist/cjs/Request.js +35 -1
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/STM.js +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/SortedMap.js +4 -1
- package/dist/cjs/SortedMap.js.map +1 -1
- package/dist/cjs/SortedSet.js +2 -2
- package/dist/cjs/SortedSet.js.map +1 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +3 -1
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/UpstreamPullRequest.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/cause.js +4 -103
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/channel/continuation.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +13 -1
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +7 -7
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core-stream.js.map +1 -1
- package/dist/cjs/internal/core.js +159 -11
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js +4 -22
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/dataSource.js +1 -1
- package/dist/cjs/internal/dataSource.js.map +1 -1
- package/dist/cjs/internal/deferred.js.map +1 -1
- package/dist/cjs/internal/differ/orPatch.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +21 -3
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/fiberMessage.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +9 -10
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/hashMap.js +1 -1
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/hashSet.js +2 -2
- package/dist/cjs/internal/hashSet.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/metric/polling.js +7 -7
- package/dist/cjs/internal/metric/polling.js.map +1 -1
- package/dist/cjs/internal/metric.js +4 -0
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +24 -23
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/queue.js +10 -1
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/redBlackTree.js +5 -1
- package/dist/cjs/internal/redBlackTree.js.map +1 -1
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/request.js +29 -15
- package/dist/cjs/internal/request.js.map +1 -1
- package/dist/cjs/internal/resource.js +2 -2
- package/dist/cjs/internal/resource.js.map +1 -1
- package/dist/cjs/internal/runtime.js +2 -3
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js +6 -7
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/scopedCache.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/sink.js +1 -1
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js +2 -2
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/tArray.js.map +1 -1
- package/dist/cjs/internal/stm/tDeferred.js.map +1 -1
- package/dist/cjs/internal/stm/tMap.js.map +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js +17 -14
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js +6 -7
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tSemaphore.js +2 -2
- package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
- package/dist/cjs/internal/stm/tSet.js.map +1 -1
- package/dist/cjs/internal/stream.js +4 -4
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/take.js +1 -1
- package/dist/cjs/internal/take.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Brand.d.ts +4 -4
- package/dist/dts/Brand.d.ts.map +1 -1
- package/dist/dts/Cache.d.ts +15 -14
- package/dist/dts/Cache.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +92 -25
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +4 -4
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +26 -24
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Clock.d.ts +4 -4
- package/dist/dts/Clock.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +4 -4
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/ConfigError.d.ts +7 -7
- package/dist/dts/ConfigError.d.ts.map +1 -1
- package/dist/dts/ConfigProvider.d.ts +3 -3
- package/dist/dts/ConfigProvider.d.ts.map +1 -1
- package/dist/dts/ConfigProviderPathPatch.d.ts +1 -1
- package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
- package/dist/dts/Console.d.ts +36 -36
- package/dist/dts/Console.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +4 -4
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +3 -17
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Deferred.d.ts +4 -4
- package/dist/dts/Deferred.d.ts.map +1 -1
- package/dist/dts/Differ.d.ts +9 -9
- package/dist/dts/Differ.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +1 -1
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +34 -20
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +15 -3
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Equal.d.ts +1 -1
- package/dist/dts/Equal.d.ts.map +1 -1
- package/dist/dts/Equivalence.d.ts +1 -1
- package/dist/dts/Equivalence.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +5 -3
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/Fiber.d.ts +12 -12
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +3 -3
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +2 -2
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/Hash.d.ts +1 -1
- package/dist/dts/Hash.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +6 -4
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/HashSet.d.ts +9 -9
- package/dist/dts/HashSet.d.ts.map +1 -1
- package/dist/dts/Inspectable.d.ts +3 -3
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/KeyedPool.d.ts +5 -5
- package/dist/dts/KeyedPool.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +2 -2
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/List.d.ts +16 -16
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +4 -4
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Match.d.ts +11 -11
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +2 -2
- package/dist/dts/MergeDecision.d.ts.map +1 -1
- package/dist/dts/MergeState.d.ts +5 -5
- package/dist/dts/MergeState.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +5 -5
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricHook.d.ts +4 -4
- package/dist/dts/MetricHook.d.ts.map +1 -1
- package/dist/dts/MetricKey.d.ts +2 -2
- package/dist/dts/MetricKey.d.ts.map +1 -1
- package/dist/dts/MetricKeyType.d.ts +2 -2
- package/dist/dts/MetricKeyType.d.ts.map +1 -1
- package/dist/dts/MetricPair.d.ts +2 -2
- package/dist/dts/MetricPair.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +16 -16
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/MetricRegistry.d.ts +7 -7
- package/dist/dts/MetricRegistry.d.ts.map +1 -1
- package/dist/dts/MetricState.d.ts +4 -4
- package/dist/dts/MetricState.d.ts.map +1 -1
- package/dist/dts/MutableHashMap.d.ts +1 -1
- package/dist/dts/MutableHashMap.d.ts.map +1 -1
- package/dist/dts/MutableHashSet.d.ts +1 -1
- package/dist/dts/MutableHashSet.d.ts.map +1 -1
- package/dist/dts/MutableList.d.ts +1 -1
- package/dist/dts/MutableList.d.ts.map +1 -1
- package/dist/dts/MutableQueue.d.ts +1 -1
- package/dist/dts/MutableQueue.d.ts.map +1 -1
- package/dist/dts/MutableRef.d.ts +1 -1
- package/dist/dts/MutableRef.d.ts.map +1 -1
- package/dist/dts/NonEmptyIterable.d.ts +2 -2
- package/dist/dts/NonEmptyIterable.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +13 -11
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts +1 -1
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/Pipeable.d.ts +21 -23
- package/dist/dts/Pipeable.d.ts.map +1 -1
- package/dist/dts/Pool.d.ts +4 -4
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/Predicate.d.ts +17 -2
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/PrimaryKey.d.ts +16 -0
- package/dist/dts/PrimaryKey.d.ts.map +1 -0
- package/dist/dts/PubSub.d.ts +3 -3
- package/dist/dts/PubSub.d.ts.map +1 -1
- package/dist/dts/Queue.d.ts +46 -27
- package/dist/dts/Queue.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +3 -3
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/ReadonlyArray.d.ts +36 -36
- package/dist/dts/ReadonlyArray.d.ts.map +1 -1
- package/dist/dts/ReadonlyRecord.d.ts +13 -11
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/RedBlackTree.d.ts +5 -2
- package/dist/dts/RedBlackTree.d.ts.map +1 -1
- package/dist/dts/Ref.d.ts +3 -3
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +3 -3
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +49 -8
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestBlock.d.ts +8 -8
- package/dist/dts/RequestBlock.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +5 -5
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +4 -4
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +3 -3
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +9 -9
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +6 -6
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/Scheduler.d.ts +3 -3
- package/dist/dts/Scheduler.d.ts.map +1 -1
- package/dist/dts/ScopedCache.d.ts +9 -9
- package/dist/dts/ScopedCache.d.ts.map +1 -1
- package/dist/dts/ScopedRef.d.ts +3 -3
- package/dist/dts/ScopedRef.d.ts.map +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts +7 -7
- package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +7 -4
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/SortedMap.d.ts +5 -2
- package/dist/dts/SortedMap.d.ts.map +1 -1
- package/dist/dts/SortedSet.d.ts +6 -12
- package/dist/dts/SortedSet.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +27 -19
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/StreamEmit.d.ts +12 -12
- package/dist/dts/StreamEmit.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +3 -3
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/Supervisor.d.ts +9 -9
- package/dist/dts/Supervisor.d.ts.map +1 -1
- package/dist/dts/SynchronizedRef.d.ts +4 -4
- package/dist/dts/SynchronizedRef.d.ts.map +1 -1
- package/dist/dts/TArray.d.ts +3 -3
- package/dist/dts/TArray.d.ts.map +1 -1
- package/dist/dts/TDeferred.d.ts +4 -4
- package/dist/dts/TDeferred.d.ts.map +1 -1
- package/dist/dts/TMap.d.ts +4 -4
- package/dist/dts/TMap.d.ts.map +1 -1
- package/dist/dts/TPriorityQueue.d.ts +3 -3
- package/dist/dts/TPriorityQueue.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +4 -1
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +9 -9
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TRandom.d.ts +3 -3
- package/dist/dts/TRandom.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +3 -3
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSet.d.ts +3 -3
- package/dist/dts/TSet.d.ts.map +1 -1
- package/dist/dts/Take.d.ts +2 -2
- package/dist/dts/Take.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts +5 -3
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestAnnotations.d.ts +2 -2
- package/dist/dts/TestAnnotations.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts +3 -3
- package/dist/dts/TestClock.d.ts.map +1 -1
- package/dist/dts/TestLive.d.ts +1 -1
- package/dist/dts/TestLive.d.ts.map +1 -1
- package/dist/dts/TestSized.d.ts +1 -1
- package/dist/dts/TestSized.d.ts.map +1 -1
- package/dist/dts/Tracer.d.ts +5 -5
- package/dist/dts/Tracer.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +7 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/UpstreamPullRequest.d.ts +2 -2
- package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
- package/dist/dts/UpstreamPullStrategy.d.ts +3 -3
- package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts +1 -1
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/core-stream.d.ts.map +1 -1
- package/dist/dts/internal/fiberScope.d.ts +1 -1
- package/dist/dts/internal/fiberScope.d.ts.map +1 -1
- package/dist/dts/internal/stream/handoffSignal.d.ts +1 -1
- package/dist/dts/internal/stream/handoffSignal.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/Cache.js.map +1 -1
- package/dist/esm/Cause.js +52 -17
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/ChildExecutorDecision.js.map +1 -1
- package/dist/esm/Chunk.js +5 -5
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Data.js +10 -19
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Duration.js +4 -0
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +7 -0
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +8 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/KeyedPool.js.map +1 -1
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/MergeState.js.map +1 -1
- package/dist/esm/MetricPolling.js +1 -1
- package/dist/esm/MetricPolling.js.map +1 -1
- package/dist/esm/MetricState.js.map +1 -1
- package/dist/esm/NonEmptyIterable.js.map +1 -1
- package/dist/esm/Option.js +2 -2
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Pipeable.js.map +1 -1
- package/dist/esm/Predicate.js +15 -0
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/PrimaryKey.js +9 -0
- package/dist/esm/PrimaryKey.js.map +1 -0
- package/dist/esm/Queue.js +5 -0
- package/dist/esm/Queue.js.map +1 -1
- package/dist/esm/ReadonlyArray.js +2 -0
- package/dist/esm/ReadonlyArray.js.map +1 -1
- package/dist/esm/ReadonlyRecord.js +2 -2
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/RedBlackTree.js.map +1 -1
- package/dist/esm/Request.js +34 -0
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/STM.js +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/SortedMap.js +4 -1
- package/dist/esm/SortedMap.js.map +1 -1
- package/dist/esm/SortedSet.js +2 -2
- package/dist/esm/SortedSet.js.map +1 -1
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TestAnnotation.js +3 -1
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/UpstreamPullRequest.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/cause.js +3 -96
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/channel/continuation.js.map +1 -1
- package/dist/esm/internal/configProvider.js +13 -1
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/core-effect.js +7 -7
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core-stream.js.map +1 -1
- package/dist/esm/internal/core.js +151 -10
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/data.js +3 -21
- package/dist/esm/internal/data.js.map +1 -1
- package/dist/esm/internal/dataSource.js +1 -1
- package/dist/esm/internal/dataSource.js.map +1 -1
- package/dist/esm/internal/deferred.js.map +1 -1
- package/dist/esm/internal/differ/orPatch.js.map +1 -1
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/effectable.js +20 -2
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/fiberMessage.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +9 -10
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/hashMap.js +1 -1
- package/dist/esm/internal/hashMap.js.map +1 -1
- package/dist/esm/internal/hashSet.js +2 -2
- package/dist/esm/internal/hashSet.js.map +1 -1
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/metric/polling.js +6 -6
- package/dist/esm/internal/metric/polling.js.map +1 -1
- package/dist/esm/internal/metric.js +4 -0
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/pubsub.js +24 -23
- package/dist/esm/internal/pubsub.js.map +1 -1
- package/dist/esm/internal/queue.js +9 -0
- package/dist/esm/internal/queue.js.map +1 -1
- package/dist/esm/internal/redBlackTree.js +5 -1
- package/dist/esm/internal/redBlackTree.js.map +1 -1
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/request.js +27 -14
- package/dist/esm/internal/request.js.map +1 -1
- package/dist/esm/internal/resource.js +2 -2
- package/dist/esm/internal/resource.js.map +1 -1
- package/dist/esm/internal/runtime.js +1 -2
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js +6 -7
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/scopedCache.js.map +1 -1
- package/dist/esm/internal/scopedRef.js.map +1 -1
- package/dist/esm/internal/sink.js +1 -1
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/core.js +2 -2
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/tArray.js.map +1 -1
- package/dist/esm/internal/stm/tDeferred.js.map +1 -1
- package/dist/esm/internal/stm/tMap.js.map +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/esm/internal/stm/tPubSub.js +17 -14
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js +6 -7
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tSemaphore.js +2 -2
- package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
- package/dist/esm/internal/stm/tSet.js.map +1 -1
- package/dist/esm/internal/stream.js +4 -4
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/subscriptionRef.js.map +1 -1
- package/dist/esm/internal/take.js +1 -1
- package/dist/esm/internal/take.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/dist/esm/package.json +1 -1
- package/package.json +10 -2
- package/src/Brand.ts +4 -4
- package/src/Cache.ts +15 -17
- package/src/Cause.ts +124 -40
- package/src/Channel.ts +4 -4
- package/src/ChildExecutorDecision.ts +10 -2
- package/src/Chunk.ts +44 -36
- package/src/Clock.ts +4 -4
- package/src/Config.ts +4 -4
- package/src/ConfigError.ts +8 -8
- package/src/ConfigProvider.ts +5 -5
- package/src/ConfigProviderPathPatch.ts +1 -1
- package/src/Console.ts +36 -36
- package/src/Context.ts +4 -4
- package/src/Data.ts +13 -44
- package/src/Deferred.ts +4 -4
- package/src/Differ.ts +9 -9
- package/src/Duration.ts +5 -0
- package/src/Effect.ts +88 -26
- package/src/Either.ts +28 -5
- package/src/Equal.ts +1 -1
- package/src/Equivalence.ts +1 -1
- package/src/Exit.ts +21 -7
- package/src/Fiber.ts +20 -14
- package/src/FiberRef.ts +7 -7
- package/src/GroupBy.ts +2 -2
- package/src/Hash.ts +1 -1
- package/src/HashMap.ts +6 -4
- package/src/HashSet.ts +11 -11
- package/src/Inspectable.ts +3 -3
- package/src/KeyedPool.ts +13 -7
- package/src/Layer.ts +2 -2
- package/src/List.ts +24 -22
- package/src/Logger.ts +4 -4
- package/src/Match.ts +11 -11
- package/src/MergeDecision.ts +2 -2
- package/src/MergeState.ts +11 -5
- package/src/Metric.ts +5 -5
- package/src/MetricHook.ts +4 -4
- package/src/MetricKey.ts +2 -2
- package/src/MetricKeyType.ts +2 -2
- package/src/MetricPair.ts +2 -2
- package/src/MetricPolling.ts +22 -22
- package/src/MetricRegistry.ts +9 -9
- package/src/MetricState.ts +6 -4
- package/src/MutableHashMap.ts +1 -1
- package/src/MutableHashSet.ts +1 -1
- package/src/MutableList.ts +1 -1
- package/src/MutableQueue.ts +1 -1
- package/src/MutableRef.ts +1 -1
- package/src/NonEmptyIterable.ts +2 -2
- package/src/Option.ts +18 -15
- package/src/Order.ts +1 -1
- package/src/Pipeable.ts +275 -277
- package/src/Pool.ts +4 -4
- package/src/Predicate.ts +21 -2
- package/src/PrimaryKey.ts +17 -0
- package/src/PubSub.ts +3 -3
- package/src/Queue.ts +52 -30
- package/src/Random.ts +3 -3
- package/src/ReadonlyArray.ts +51 -66
- package/src/ReadonlyRecord.ts +37 -35
- package/src/RedBlackTree.ts +5 -2
- package/src/Ref.ts +3 -3
- package/src/Reloadable.ts +3 -3
- package/src/Request.ts +53 -8
- package/src/RequestBlock.ts +9 -9
- package/src/RequestResolver.ts +5 -5
- package/src/Resource.ts +4 -4
- package/src/Runtime.ts +3 -3
- package/src/STM.ts +23 -12
- package/src/Schedule.ts +7 -7
- package/src/Scheduler.ts +3 -3
- package/src/Scope.ts +3 -3
- package/src/ScopedCache.ts +9 -9
- package/src/ScopedRef.ts +3 -3
- package/src/SingleProducerAsyncInput.ts +7 -7
- package/src/Sink.ts +23 -9
- package/src/SortedMap.ts +9 -3
- package/src/SortedSet.ts +26 -41
- package/src/Stream.ts +70 -29
- package/src/StreamEmit.ts +12 -12
- package/src/SubscriptionRef.ts +5 -3
- package/src/Supervisor.ts +10 -10
- package/src/SynchronizedRef.ts +4 -4
- package/src/TArray.ts +4 -4
- package/src/TDeferred.ts +5 -5
- package/src/TMap.ts +5 -5
- package/src/TPriorityQueue.ts +4 -4
- package/src/TPubSub.ts +6 -3
- package/src/TQueue.ts +9 -9
- package/src/TRandom.ts +3 -3
- package/src/TRef.ts +4 -4
- package/src/TSet.ts +4 -4
- package/src/Take.ts +2 -2
- package/src/TestAnnotation.ts +8 -4
- package/src/TestAnnotations.ts +2 -2
- package/src/TestClock.ts +3 -5
- package/src/TestLive.ts +1 -1
- package/src/TestSized.ts +1 -1
- package/src/Tracer.ts +6 -6
- package/src/Types.ts +8 -0
- package/src/UpstreamPullRequest.ts +10 -4
- package/src/UpstreamPullStrategy.ts +3 -3
- package/src/Utils.ts +1 -1
- package/src/index.ts +5 -0
- package/src/internal/blockedRequests.ts +6 -6
- package/src/internal/cache.ts +12 -12
- package/src/internal/cause.ts +14 -138
- package/src/internal/channel/channelExecutor.ts +1 -1
- package/src/internal/channel/channelState.ts +5 -5
- package/src/internal/channel/continuation.ts +52 -32
- package/src/internal/channel/mergeDecision.ts +1 -1
- package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
- package/src/internal/channel/subexecutor.ts +7 -7
- package/src/internal/config.ts +6 -6
- package/src/internal/configProvider.ts +14 -1
- package/src/internal/core-effect.ts +49 -38
- package/src/internal/core-stream.ts +18 -21
- package/src/internal/core.ts +286 -38
- package/src/internal/data.ts +3 -22
- package/src/internal/dataSource.ts +1 -1
- package/src/internal/deferred.ts +5 -5
- package/src/internal/differ/contextPatch.ts +5 -5
- package/src/internal/differ/orPatch.ts +18 -6
- package/src/internal/effect/circular.ts +3 -3
- package/src/internal/effectable.ts +23 -4
- package/src/internal/fiberMessage.ts +1 -4
- package/src/internal/fiberRuntime.ts +14 -15
- package/src/internal/fiberScope.ts +1 -1
- package/src/internal/groupBy.ts +1 -1
- package/src/internal/hashMap/node.ts +5 -5
- package/src/internal/hashMap.ts +23 -22
- package/src/internal/hashSet.ts +18 -20
- package/src/internal/keyedPool.ts +4 -4
- package/src/internal/layer.ts +6 -12
- package/src/internal/metric/key.ts +1 -1
- package/src/internal/metric/polling.ts +26 -26
- package/src/internal/metric.ts +4 -0
- package/src/internal/pool.ts +2 -2
- package/src/internal/pubsub.ts +64 -61
- package/src/internal/queue.ts +20 -6
- package/src/internal/redBlackTree/iterator.ts +1 -1
- package/src/internal/redBlackTree/node.ts +1 -1
- package/src/internal/redBlackTree.ts +7 -2
- package/src/internal/ref.ts +1 -1
- package/src/internal/reloadable.ts +1 -1
- package/src/internal/request.ts +39 -13
- package/src/internal/resource.ts +4 -4
- package/src/internal/ringBuffer.ts +1 -1
- package/src/internal/runtime.ts +2 -3
- package/src/internal/schedule.ts +6 -7
- package/src/internal/scopedCache.ts +7 -5
- package/src/internal/scopedRef.ts +1 -1
- package/src/internal/sink.ts +6 -3
- package/src/internal/stack.ts +1 -1
- package/src/internal/stm/core.ts +3 -3
- package/src/internal/stm/stm/stmState.ts +1 -1
- package/src/internal/stm/stm/tExit.ts +3 -3
- package/src/internal/stm/stm/tryCommit.ts +1 -1
- package/src/internal/stm/stm/versioned.ts +1 -1
- package/src/internal/stm/stm.ts +2 -2
- package/src/internal/stm/tArray.ts +2 -2
- package/src/internal/stm/tDeferred.ts +3 -3
- package/src/internal/stm/tMap.ts +3 -3
- package/src/internal/stm/tPriorityQueue.ts +2 -2
- package/src/internal/stm/tPubSub.ts +43 -38
- package/src/internal/stm/tQueue.ts +7 -8
- package/src/internal/stm/tReentrantLock.ts +2 -2
- package/src/internal/stm/tRef.ts +1 -1
- package/src/internal/stm/tSemaphore.ts +2 -2
- package/src/internal/stm/tSet.ts +2 -2
- package/src/internal/stream/debounceState.ts +2 -2
- package/src/internal/stream/handoff.ts +3 -3
- package/src/internal/stream/handoffSignal.ts +2 -2
- package/src/internal/stream/pull.ts +1 -1
- package/src/internal/stream.ts +66 -33
- package/src/internal/subscriptionRef.ts +2 -2
- package/src/internal/supervisor.ts +3 -3
- package/src/internal/take.ts +2 -2
- package/src/internal/version.ts +1 -1
package/src/internal/core.ts
CHANGED
|
@@ -26,7 +26,7 @@ import type * as MetricLabel from "../MetricLabel.js"
|
|
|
26
26
|
import * as MutableRef from "../MutableRef.js"
|
|
27
27
|
import * as Option from "../Option.js"
|
|
28
28
|
import { pipeArguments } from "../Pipeable.js"
|
|
29
|
-
import { hasProperty, isObject, type Predicate, type Refinement } from "../Predicate.js"
|
|
29
|
+
import { hasProperty, isObject, isPromise, isString, type Predicate, type Refinement } from "../Predicate.js"
|
|
30
30
|
import * as ReadonlyArray from "../ReadonlyArray.js"
|
|
31
31
|
import type * as Request from "../Request.js"
|
|
32
32
|
import type * as BlockedRequests from "../RequestBlock.js"
|
|
@@ -35,11 +35,12 @@ import type * as RuntimeFlags from "../RuntimeFlags.js"
|
|
|
35
35
|
import * as RuntimeFlagsPatch from "../RuntimeFlagsPatch.js"
|
|
36
36
|
import type * as Scope from "../Scope.js"
|
|
37
37
|
import type * as Tracer from "../Tracer.js"
|
|
38
|
+
import type { NoInfer } from "../Types.js"
|
|
38
39
|
import * as _blockedRequests from "./blockedRequests.js"
|
|
39
40
|
import * as internalCause from "./cause.js"
|
|
40
41
|
import * as deferred from "./deferred.js"
|
|
41
42
|
import * as internalDiffer from "./differ.js"
|
|
42
|
-
import { effectVariance } from "./effectable.js"
|
|
43
|
+
import { effectVariance, StructuralCommitPrototype } from "./effectable.js"
|
|
43
44
|
import type * as FiberRuntime from "./fiberRuntime.js"
|
|
44
45
|
import type * as fiberScope from "./fiberScope.js"
|
|
45
46
|
import * as DeferredOpCodes from "./opCodes/deferred.js"
|
|
@@ -61,7 +62,7 @@ export const EffectErrorTypeId = Symbol.for(EffectErrorSymbolKey)
|
|
|
61
62
|
export type EffectErrorTypeId = typeof EffectErrorTypeId
|
|
62
63
|
|
|
63
64
|
/** @internal */
|
|
64
|
-
export interface EffectError<E> {
|
|
65
|
+
export interface EffectError<out E> {
|
|
65
66
|
readonly [EffectErrorTypeId]: EffectErrorTypeId
|
|
66
67
|
readonly _tag: "EffectError"
|
|
67
68
|
readonly cause: Cause.Cause<E>
|
|
@@ -262,13 +263,13 @@ export type Op<Tag extends string, Body = {}> = Effect.Effect<never, never, neve
|
|
|
262
263
|
/** @internal */
|
|
263
264
|
export interface Async extends
|
|
264
265
|
Op<OpCodes.OP_ASYNC, {
|
|
265
|
-
|
|
266
|
+
i0(resume: (effect: Primitive) => void): void
|
|
266
267
|
readonly i1: FiberId.FiberId
|
|
267
268
|
}>
|
|
268
269
|
{}
|
|
269
270
|
|
|
270
271
|
/** @internal */
|
|
271
|
-
export interface Blocked<R = any, E = any, A = any> extends
|
|
272
|
+
export interface Blocked<out R = any, out E = any, out A = any> extends
|
|
272
273
|
Op<"Blocked", {
|
|
273
274
|
readonly i0: BlockedRequests.RequestBlock<R>
|
|
274
275
|
readonly i1: Effect.Effect<R, E, A>
|
|
@@ -276,7 +277,7 @@ export interface Blocked<R = any, E = any, A = any> extends
|
|
|
276
277
|
{}
|
|
277
278
|
|
|
278
279
|
/** @internal */
|
|
279
|
-
export interface RunBlocked<R = any> extends
|
|
280
|
+
export interface RunBlocked<out R = any> extends
|
|
280
281
|
Op<"RunBlocked", {
|
|
281
282
|
readonly i0: BlockedRequests.RequestBlock<R>
|
|
282
283
|
}>
|
|
@@ -295,7 +296,7 @@ export interface OpTag extends Op<OpCodes.OP_TAG, {}> {}
|
|
|
295
296
|
/** @internal */
|
|
296
297
|
export interface Commit extends
|
|
297
298
|
Op<OpCodes.OP_COMMIT, {
|
|
298
|
-
|
|
299
|
+
commit(): Effect.Effect<unknown, unknown, unknown>
|
|
299
300
|
}>
|
|
300
301
|
{}
|
|
301
302
|
|
|
@@ -303,7 +304,7 @@ export interface Commit extends
|
|
|
303
304
|
export interface OnFailure extends
|
|
304
305
|
Op<OpCodes.OP_ON_FAILURE, {
|
|
305
306
|
readonly i0: Primitive
|
|
306
|
-
|
|
307
|
+
i1(a: Cause.Cause<unknown>): Primitive
|
|
307
308
|
}>
|
|
308
309
|
{}
|
|
309
310
|
|
|
@@ -311,7 +312,7 @@ export interface OnFailure extends
|
|
|
311
312
|
export interface OnSuccess extends
|
|
312
313
|
Op<OpCodes.OP_ON_SUCCESS, {
|
|
313
314
|
readonly i0: Primitive
|
|
314
|
-
|
|
315
|
+
i1(a: unknown): Primitive
|
|
315
316
|
}>
|
|
316
317
|
{}
|
|
317
318
|
|
|
@@ -319,7 +320,7 @@ export interface OnSuccess extends
|
|
|
319
320
|
export interface OnStep extends
|
|
320
321
|
Op<"OnStep", {
|
|
321
322
|
readonly i0: Primitive
|
|
322
|
-
|
|
323
|
+
i1(result: Exit.Exit<any, any> | Blocked): Primitive
|
|
323
324
|
}>
|
|
324
325
|
{}
|
|
325
326
|
|
|
@@ -327,8 +328,8 @@ export interface OnStep extends
|
|
|
327
328
|
export interface OnSuccessAndFailure extends
|
|
328
329
|
Op<OpCodes.OP_ON_SUCCESS_AND_FAILURE, {
|
|
329
330
|
readonly i0: Primitive
|
|
330
|
-
|
|
331
|
-
|
|
331
|
+
i1(a: Cause.Cause<unknown>): Primitive
|
|
332
|
+
i2(a: unknown): Primitive
|
|
332
333
|
}>
|
|
333
334
|
{}
|
|
334
335
|
|
|
@@ -342,7 +343,7 @@ export interface Success extends
|
|
|
342
343
|
/** @internal */
|
|
343
344
|
export interface Sync extends
|
|
344
345
|
Op<OpCodes.OP_SYNC, {
|
|
345
|
-
|
|
346
|
+
i0(): unknown
|
|
346
347
|
}>
|
|
347
348
|
{}
|
|
348
349
|
|
|
@@ -357,16 +358,16 @@ export interface UpdateRuntimeFlags extends
|
|
|
357
358
|
/** @internal */
|
|
358
359
|
export interface While extends
|
|
359
360
|
Op<OpCodes.OP_WHILE, {
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
361
|
+
i0(): boolean
|
|
362
|
+
i1(): Primitive
|
|
363
|
+
i2(a: unknown): void
|
|
363
364
|
}>
|
|
364
365
|
{}
|
|
365
366
|
|
|
366
367
|
/** @internal */
|
|
367
368
|
export interface WithRuntime extends
|
|
368
369
|
Op<OpCodes.OP_WITH_RUNTIME, {
|
|
369
|
-
|
|
370
|
+
i0(fiber: FiberRuntime.FiberRuntime<unknown, unknown>, status: FiberStatus.Running): Primitive
|
|
370
371
|
}>
|
|
371
372
|
{}
|
|
372
373
|
|
|
@@ -641,7 +642,7 @@ export const die = (defect: unknown): Effect.Effect<never, never, never> =>
|
|
|
641
642
|
|
|
642
643
|
/* @internal */
|
|
643
644
|
export const dieMessage = (message: string): Effect.Effect<never, never, never> =>
|
|
644
|
-
failCauseSync(() => internalCause.die(
|
|
645
|
+
failCauseSync(() => internalCause.die(new RuntimeException(message)))
|
|
645
646
|
|
|
646
647
|
/* @internal */
|
|
647
648
|
export const dieSync = (evaluate: LazyArg<unknown>): Effect.Effect<never, never, never> => flatMap(sync(evaluate), die)
|
|
@@ -707,6 +708,51 @@ export const flatMap = dual<
|
|
|
707
708
|
return effect
|
|
708
709
|
})
|
|
709
710
|
|
|
711
|
+
/* @internal */
|
|
712
|
+
export const andThen = dual<
|
|
713
|
+
{
|
|
714
|
+
<A, X>(
|
|
715
|
+
f: (a: NoInfer<A>) => X
|
|
716
|
+
): <R, E>(
|
|
717
|
+
self: Effect.Effect<R, E, A>
|
|
718
|
+
) => [X] extends [Effect.Effect<infer R1, infer E1, infer A1>] ? Effect.Effect<R | R1, E | E1, A1>
|
|
719
|
+
: [X] extends [Promise<infer A1>] ? Effect.Effect<R, E | Cause.UnknownException, A1>
|
|
720
|
+
: Effect.Effect<R, E, X>
|
|
721
|
+
<X>(
|
|
722
|
+
f: X
|
|
723
|
+
): <R, E, A>(
|
|
724
|
+
self: Effect.Effect<R, E, A>
|
|
725
|
+
) => [X] extends [Effect.Effect<infer R1, infer E1, infer A1>] ? Effect.Effect<R | R1, E | E1, A1>
|
|
726
|
+
: [X] extends [Promise<infer A1>] ? Effect.Effect<R, E | Cause.UnknownException, A1>
|
|
727
|
+
: Effect.Effect<R, E, X>
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
<A, R, E, X>(
|
|
731
|
+
self: Effect.Effect<R, E, A>,
|
|
732
|
+
f: (a: NoInfer<A>) => X
|
|
733
|
+
): [X] extends [Effect.Effect<infer R1, infer E1, infer A1>] ? Effect.Effect<R | R1, E | E1, A1>
|
|
734
|
+
: [X] extends [Promise<infer A1>] ? Effect.Effect<R, E | Cause.UnknownException, A1>
|
|
735
|
+
: Effect.Effect<R, E, X>
|
|
736
|
+
<A, R, E, X>(
|
|
737
|
+
self: Effect.Effect<R, E, A>,
|
|
738
|
+
f: X
|
|
739
|
+
): [X] extends [Effect.Effect<infer R1, infer E1, infer A1>] ? Effect.Effect<R | R1, E | E1, A1>
|
|
740
|
+
: [X] extends [Promise<infer A1>] ? Effect.Effect<R, E | Cause.UnknownException, A1>
|
|
741
|
+
: Effect.Effect<R, E, X>
|
|
742
|
+
}
|
|
743
|
+
>(2, (self, f) =>
|
|
744
|
+
flatMap(self, (a) => {
|
|
745
|
+
const b = typeof f === "function" ? (f as any)(a) : f
|
|
746
|
+
if (isEffect(b)) {
|
|
747
|
+
return b
|
|
748
|
+
} else if (isPromise(b)) {
|
|
749
|
+
return async<never, Cause.UnknownException, any>((resume) => {
|
|
750
|
+
b.then((a) => resume(succeed(a))).catch((e) => resume(fail(new UnknownException(e))))
|
|
751
|
+
})
|
|
752
|
+
}
|
|
753
|
+
return succeed(b)
|
|
754
|
+
}))
|
|
755
|
+
|
|
710
756
|
/* @internal */
|
|
711
757
|
export const step = <R, E, A>(
|
|
712
758
|
self: Effect.Effect<R, E, A>
|
|
@@ -1062,7 +1108,7 @@ export const orDieWith = dual<
|
|
|
1062
1108
|
export const partitionMap = <A, A1, A2>(
|
|
1063
1109
|
elements: Iterable<A>,
|
|
1064
1110
|
f: (a: A) => Either.Either<A1, A2>
|
|
1065
|
-
): [Array<A1>, Array<A2>] =>
|
|
1111
|
+
): [left: Array<A1>, right: Array<A2>] =>
|
|
1066
1112
|
ReadonlyArray.fromIterable(elements).reduceRight(
|
|
1067
1113
|
([lefts, rights], current) => {
|
|
1068
1114
|
const either = f(current)
|
|
@@ -1105,14 +1151,48 @@ export const sync = <A>(evaluate: LazyArg<A>): Effect.Effect<never, never, A> =>
|
|
|
1105
1151
|
|
|
1106
1152
|
/* @internal */
|
|
1107
1153
|
export const tap = dual<
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1154
|
+
{
|
|
1155
|
+
<A, X>(
|
|
1156
|
+
f: (a: NoInfer<A>) => X
|
|
1157
|
+
): <R, E>(
|
|
1158
|
+
self: Effect.Effect<R, E, A>
|
|
1159
|
+
) => [X] extends [Effect.Effect<infer R1, infer E1, infer _A1>] ? Effect.Effect<R | R1, E | E1, A>
|
|
1160
|
+
: [X] extends [Promise<infer _A1>] ? Effect.Effect<R, E | Cause.UnknownException, A>
|
|
1161
|
+
: Effect.Effect<R, E, A>
|
|
1162
|
+
<X>(
|
|
1163
|
+
f: X
|
|
1164
|
+
): <R, E, A>(
|
|
1165
|
+
self: Effect.Effect<R, E, A>
|
|
1166
|
+
) => [X] extends [Effect.Effect<infer R1, infer E1, infer _A1>] ? Effect.Effect<R | R1, E | E1, A>
|
|
1167
|
+
: [X] extends [Promise<infer _A1>] ? Effect.Effect<R, E | Cause.UnknownException, A>
|
|
1168
|
+
: Effect.Effect<R, E, A>
|
|
1169
|
+
},
|
|
1170
|
+
{
|
|
1171
|
+
<A, R, E, X>(
|
|
1172
|
+
self: Effect.Effect<R, E, A>,
|
|
1173
|
+
f: (a: NoInfer<A>) => X
|
|
1174
|
+
): [X] extends [Effect.Effect<infer R1, infer E1, infer _A1>] ? Effect.Effect<R | R1, E | E1, A>
|
|
1175
|
+
: [X] extends [Promise<infer _A1>] ? Effect.Effect<R, E | Cause.UnknownException, A>
|
|
1176
|
+
: Effect.Effect<R, E, A>
|
|
1177
|
+
<A, R, E, X>(
|
|
1178
|
+
self: Effect.Effect<R, E, A>,
|
|
1179
|
+
f: X
|
|
1180
|
+
): [X] extends [Effect.Effect<infer R1, infer E1, infer _A1>] ? Effect.Effect<R | R1, E | E1, A>
|
|
1181
|
+
: [X] extends [Promise<infer _A1>] ? Effect.Effect<R, E | Cause.UnknownException, A>
|
|
1182
|
+
: Effect.Effect<R, E, A>
|
|
1183
|
+
}
|
|
1184
|
+
>(2, (self, f) =>
|
|
1185
|
+
flatMap(self, (a) => {
|
|
1186
|
+
const b = typeof f === "function" ? (f as any)(a) : f
|
|
1187
|
+
if (isEffect(b)) {
|
|
1188
|
+
return as(b, a)
|
|
1189
|
+
} else if (isPromise(b)) {
|
|
1190
|
+
return async<never, Cause.UnknownException, any>((resume) => {
|
|
1191
|
+
b.then((_) => resume(succeed(a))).catch((e) => resume(fail(new UnknownException(e))))
|
|
1192
|
+
})
|
|
1193
|
+
}
|
|
1194
|
+
return succeed(a)
|
|
1195
|
+
}))
|
|
1116
1196
|
|
|
1117
1197
|
/* @internal */
|
|
1118
1198
|
export const transplant = <R, E, A>(
|
|
@@ -1479,7 +1559,7 @@ export const FiberRefTypeId: FiberRef.FiberRefTypeId = Symbol.for(
|
|
|
1479
1559
|
|
|
1480
1560
|
/** @internal */
|
|
1481
1561
|
const fiberRefVariance = {
|
|
1482
|
-
_A: (_:
|
|
1562
|
+
_A: (_: any) => _
|
|
1483
1563
|
}
|
|
1484
1564
|
|
|
1485
1565
|
/* @internal */
|
|
@@ -1594,14 +1674,14 @@ export const RequestResolverTypeId: RequestResolver.RequestResolverTypeId = Symb
|
|
|
1594
1674
|
RequestResolverSymbolKey
|
|
1595
1675
|
) as RequestResolver.RequestResolverTypeId
|
|
1596
1676
|
|
|
1597
|
-
const
|
|
1598
|
-
|
|
1599
|
-
|
|
1677
|
+
const requestResolverVariance = {
|
|
1678
|
+
_A: (_: unknown) => _,
|
|
1679
|
+
_R: (_: never) => _
|
|
1600
1680
|
}
|
|
1601
1681
|
|
|
1602
1682
|
/** @internal */
|
|
1603
|
-
export class RequestResolverImpl<R, A> implements RequestResolver.RequestResolver<A, R> {
|
|
1604
|
-
readonly [RequestResolverTypeId] =
|
|
1683
|
+
export class RequestResolverImpl<out R, in A> implements RequestResolver.RequestResolver<A, R> {
|
|
1684
|
+
readonly [RequestResolverTypeId] = requestResolverVariance
|
|
1605
1685
|
constructor(
|
|
1606
1686
|
readonly runAll: (
|
|
1607
1687
|
requests: Array<Array<Request.Entry<A>>>
|
|
@@ -2071,6 +2151,172 @@ export const releaseMapMake: Effect.Effect<never, never, ReleaseMap> = sync(():
|
|
|
2071
2151
|
}
|
|
2072
2152
|
}))
|
|
2073
2153
|
|
|
2154
|
+
// -----------------------------------------------------------------------------
|
|
2155
|
+
// Cause
|
|
2156
|
+
// -----------------------------------------------------------------------------
|
|
2157
|
+
|
|
2158
|
+
/** @internal */
|
|
2159
|
+
export const causeSquash = <E>(self: Cause.Cause<E>): unknown => {
|
|
2160
|
+
return causeSquashWith(identity)(self)
|
|
2161
|
+
}
|
|
2162
|
+
|
|
2163
|
+
/** @internal */
|
|
2164
|
+
export const causeSquashWith = dual<
|
|
2165
|
+
<E>(f: (error: E) => unknown) => (self: Cause.Cause<E>) => unknown,
|
|
2166
|
+
<E>(self: Cause.Cause<E>, f: (error: E) => unknown) => unknown
|
|
2167
|
+
>(2, (self, f) => {
|
|
2168
|
+
const option = pipe(self, internalCause.failureOption, Option.map(f))
|
|
2169
|
+
switch (option._tag) {
|
|
2170
|
+
case "None": {
|
|
2171
|
+
return pipe(
|
|
2172
|
+
internalCause.defects(self),
|
|
2173
|
+
Chunk.head,
|
|
2174
|
+
Option.match({
|
|
2175
|
+
onNone: () => {
|
|
2176
|
+
const interrupts = Array.from(internalCause.interruptors(self)).flatMap((fiberId) =>
|
|
2177
|
+
Array.from(FiberId.ids(fiberId)).map((id) => `#${id}`)
|
|
2178
|
+
)
|
|
2179
|
+
return new InterruptedException(interrupts ? `Interrupted by fibers: ${interrupts.join(", ")}` : void 0)
|
|
2180
|
+
},
|
|
2181
|
+
onSome: identity
|
|
2182
|
+
})
|
|
2183
|
+
)
|
|
2184
|
+
}
|
|
2185
|
+
case "Some": {
|
|
2186
|
+
return option.value
|
|
2187
|
+
}
|
|
2188
|
+
}
|
|
2189
|
+
})
|
|
2190
|
+
|
|
2191
|
+
// -----------------------------------------------------------------------------
|
|
2192
|
+
// Errors
|
|
2193
|
+
// -----------------------------------------------------------------------------
|
|
2194
|
+
|
|
2195
|
+
/** @internal */
|
|
2196
|
+
export const YieldableError: new(message?: string) => Cause.YieldableError = (function() {
|
|
2197
|
+
class YieldableError extends globalThis.Error {
|
|
2198
|
+
commit() {
|
|
2199
|
+
return fail(this)
|
|
2200
|
+
}
|
|
2201
|
+
toString() {
|
|
2202
|
+
return this.stack ?? `${this.name}: ${this.message}`
|
|
2203
|
+
}
|
|
2204
|
+
toJSON() {
|
|
2205
|
+
return { ...this }
|
|
2206
|
+
}
|
|
2207
|
+
[NodeInspectSymbol](): string {
|
|
2208
|
+
return this.toString()
|
|
2209
|
+
}
|
|
2210
|
+
}
|
|
2211
|
+
Object.assign(YieldableError.prototype, StructuralCommitPrototype)
|
|
2212
|
+
return YieldableError as any
|
|
2213
|
+
})()
|
|
2214
|
+
|
|
2215
|
+
const makeException = <T extends { _tag: string; message?: string }>(
|
|
2216
|
+
proto: Omit<T, keyof Cause.YieldableError | "_tag">,
|
|
2217
|
+
tag: T["_tag"]
|
|
2218
|
+
): new(message?: string | undefined) => T => {
|
|
2219
|
+
class Base extends YieldableError {
|
|
2220
|
+
readonly _tag = tag
|
|
2221
|
+
}
|
|
2222
|
+
Object.assign(Base.prototype, proto)
|
|
2223
|
+
;(Base.prototype as any).name = tag
|
|
2224
|
+
return Base as any
|
|
2225
|
+
}
|
|
2226
|
+
|
|
2227
|
+
/** @internal */
|
|
2228
|
+
export const RuntimeExceptionTypeId: Cause.RuntimeExceptionTypeId = Symbol.for(
|
|
2229
|
+
"effect/Cause/errors/RuntimeException"
|
|
2230
|
+
) as Cause.RuntimeExceptionTypeId
|
|
2231
|
+
|
|
2232
|
+
/** @internal */
|
|
2233
|
+
export const RuntimeException = makeException<Cause.RuntimeException>({
|
|
2234
|
+
[RuntimeExceptionTypeId]: RuntimeExceptionTypeId
|
|
2235
|
+
}, "RuntimeException")
|
|
2236
|
+
|
|
2237
|
+
/** @internal */
|
|
2238
|
+
export const isRuntimeException = (u: unknown): u is Cause.RuntimeException => hasProperty(u, RuntimeExceptionTypeId)
|
|
2239
|
+
|
|
2240
|
+
/** @internal */
|
|
2241
|
+
export const InterruptedExceptionTypeId: Cause.InterruptedExceptionTypeId = Symbol.for(
|
|
2242
|
+
"effect/Cause/errors/InterruptedException"
|
|
2243
|
+
) as Cause.InterruptedExceptionTypeId
|
|
2244
|
+
|
|
2245
|
+
/** @internal */
|
|
2246
|
+
export const InterruptedException = makeException<Cause.InterruptedException>({
|
|
2247
|
+
[InterruptedExceptionTypeId]: InterruptedExceptionTypeId
|
|
2248
|
+
}, "InterruptedException")
|
|
2249
|
+
|
|
2250
|
+
/** @internal */
|
|
2251
|
+
export const isInterruptedException = (u: unknown): u is Cause.InterruptedException =>
|
|
2252
|
+
hasProperty(u, InterruptedExceptionTypeId)
|
|
2253
|
+
|
|
2254
|
+
/** @internal */
|
|
2255
|
+
export const IllegalArgumentExceptionTypeId: Cause.IllegalArgumentExceptionTypeId = Symbol.for(
|
|
2256
|
+
"effect/Cause/errors/IllegalArgument"
|
|
2257
|
+
) as Cause.IllegalArgumentExceptionTypeId
|
|
2258
|
+
|
|
2259
|
+
/** @internal */
|
|
2260
|
+
export const IllegalArgumentException = makeException<Cause.IllegalArgumentException>({
|
|
2261
|
+
[IllegalArgumentExceptionTypeId]: IllegalArgumentExceptionTypeId
|
|
2262
|
+
}, "IllegalArgumentException")
|
|
2263
|
+
|
|
2264
|
+
/** @internal */
|
|
2265
|
+
export const isIllegalArgumentException = (u: unknown): u is Cause.IllegalArgumentException =>
|
|
2266
|
+
hasProperty(u, IllegalArgumentExceptionTypeId)
|
|
2267
|
+
|
|
2268
|
+
/** @internal */
|
|
2269
|
+
export const NoSuchElementExceptionTypeId: Cause.NoSuchElementExceptionTypeId = Symbol.for(
|
|
2270
|
+
"effect/Cause/errors/NoSuchElement"
|
|
2271
|
+
) as Cause.NoSuchElementExceptionTypeId
|
|
2272
|
+
|
|
2273
|
+
/** @internal */
|
|
2274
|
+
export const NoSuchElementException = makeException<Cause.NoSuchElementException>({
|
|
2275
|
+
[NoSuchElementExceptionTypeId]: NoSuchElementExceptionTypeId
|
|
2276
|
+
}, "NoSuchElementException")
|
|
2277
|
+
|
|
2278
|
+
/** @internal */
|
|
2279
|
+
export const isNoSuchElementException = (u: unknown): u is Cause.NoSuchElementException =>
|
|
2280
|
+
hasProperty(u, NoSuchElementExceptionTypeId)
|
|
2281
|
+
|
|
2282
|
+
/** @internal */
|
|
2283
|
+
export const InvalidPubSubCapacityExceptionTypeId: Cause.InvalidPubSubCapacityExceptionTypeId = Symbol.for(
|
|
2284
|
+
"effect/Cause/errors/InvalidPubSubCapacityException"
|
|
2285
|
+
) as Cause.InvalidPubSubCapacityExceptionTypeId
|
|
2286
|
+
|
|
2287
|
+
/** @internal */
|
|
2288
|
+
export const InvalidPubSubCapacityException = makeException<Cause.InvalidPubSubCapacityException>({
|
|
2289
|
+
[InvalidPubSubCapacityExceptionTypeId]: InvalidPubSubCapacityExceptionTypeId
|
|
2290
|
+
}, "InvalidPubSubCapacityException")
|
|
2291
|
+
|
|
2292
|
+
/** @internal */
|
|
2293
|
+
export const isInvalidCapacityError = (u: unknown): u is Cause.InvalidPubSubCapacityException =>
|
|
2294
|
+
hasProperty(u, InvalidPubSubCapacityExceptionTypeId)
|
|
2295
|
+
|
|
2296
|
+
/** @internal */
|
|
2297
|
+
export const UnknownExceptionTypeId: Cause.UnknownExceptionTypeId = Symbol.for(
|
|
2298
|
+
"effect/Cause/errors/UnknownException"
|
|
2299
|
+
) as Cause.UnknownExceptionTypeId
|
|
2300
|
+
|
|
2301
|
+
/** @internal */
|
|
2302
|
+
export const UnknownException: new(error: unknown, message?: string | undefined) => Cause.UnknownException =
|
|
2303
|
+
(function() {
|
|
2304
|
+
class UnknownException extends YieldableError {
|
|
2305
|
+
readonly _tag = "UnknownException"
|
|
2306
|
+
constructor(readonly error: unknown, message?: string) {
|
|
2307
|
+
super(message ?? (hasProperty(error, "message") && isString(error.message) ? error.message : void 0))
|
|
2308
|
+
}
|
|
2309
|
+
}
|
|
2310
|
+
Object.assign(UnknownException.prototype, {
|
|
2311
|
+
[UnknownExceptionTypeId]: UnknownExceptionTypeId,
|
|
2312
|
+
name: "UnknownException"
|
|
2313
|
+
})
|
|
2314
|
+
return UnknownException as any
|
|
2315
|
+
})()
|
|
2316
|
+
|
|
2317
|
+
/** @internal */
|
|
2318
|
+
export const isUnknownException = (u: unknown): u is Cause.UnknownException => hasProperty(u, UnknownExceptionTypeId)
|
|
2319
|
+
|
|
2074
2320
|
// -----------------------------------------------------------------------------
|
|
2075
2321
|
// Exit
|
|
2076
2322
|
// -----------------------------------------------------------------------------
|
|
@@ -2142,16 +2388,18 @@ export const exitDie = (defect: unknown): Exit.Exit<never, never> =>
|
|
|
2142
2388
|
exitFailCause(internalCause.die(defect)) as Exit.Exit<never, never>
|
|
2143
2389
|
|
|
2144
2390
|
/** @internal */
|
|
2145
|
-
export const exitExists
|
|
2146
|
-
<A>(
|
|
2147
|
-
<
|
|
2148
|
-
|
|
2391
|
+
export const exitExists: {
|
|
2392
|
+
<A, B extends A>(refinement: Refinement<A, B>): <E>(self: Exit.Exit<E, A>) => self is Exit.Exit<never, B>
|
|
2393
|
+
<A>(predicate: Predicate<A>): <E>(self: Exit.Exit<E, A>) => boolean
|
|
2394
|
+
<E, A, B extends A>(self: Exit.Exit<E, A>, refinement: Refinement<A, B>): self is Exit.Exit<never, B>
|
|
2395
|
+
<E, A>(self: Exit.Exit<E, A>, predicate: Predicate<A>): boolean
|
|
2396
|
+
} = dual(2, <E, A, B extends A>(self: Exit.Exit<E, A>, refinement: Refinement<A, B>): self is Exit.Exit<never, B> => {
|
|
2149
2397
|
switch (self._tag) {
|
|
2150
2398
|
case OpCodes.OP_FAILURE: {
|
|
2151
2399
|
return false
|
|
2152
2400
|
}
|
|
2153
2401
|
case OpCodes.OP_SUCCESS: {
|
|
2154
|
-
return
|
|
2402
|
+
return refinement(self.i0)
|
|
2155
2403
|
}
|
|
2156
2404
|
}
|
|
2157
2405
|
})
|
package/src/internal/data.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type * as Data from "../Data.js"
|
|
|
2
2
|
import * as Equal from "../Equal.js"
|
|
3
3
|
import * as Hash from "../Hash.js"
|
|
4
4
|
import type * as Types from "../Types.js"
|
|
5
|
+
import { StructuralPrototype } from "./effectable.js"
|
|
5
6
|
|
|
6
7
|
/** @internal */
|
|
7
8
|
export const ArrayProto: Equal.Equal = Object.assign(Object.create(Array.prototype), {
|
|
@@ -17,26 +18,6 @@ export const ArrayProto: Equal.Equal = Object.assign(Object.create(Array.prototy
|
|
|
17
18
|
}
|
|
18
19
|
})
|
|
19
20
|
|
|
20
|
-
/** @internal */
|
|
21
|
-
export const StructProto: Equal.Equal = {
|
|
22
|
-
[Hash.symbol](this: Equal.Equal) {
|
|
23
|
-
return Hash.structure(this)
|
|
24
|
-
},
|
|
25
|
-
[Equal.symbol](this: Equal.Equal, that: Equal.Equal) {
|
|
26
|
-
const selfKeys = Object.keys(this)
|
|
27
|
-
const thatKeys = Object.keys(that as object)
|
|
28
|
-
if (selfKeys.length !== thatKeys.length) {
|
|
29
|
-
return false
|
|
30
|
-
}
|
|
31
|
-
for (const key of selfKeys) {
|
|
32
|
-
if (!(key in (that as object) && Equal.equals((this as any)[key], (that as any)[key]))) {
|
|
33
|
-
return false
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return true
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
21
|
/** @internal */
|
|
41
22
|
export const Structural: new<A>(
|
|
42
23
|
args: Types.Equals<Omit<A, keyof Equal.Equal>, {}> extends true ? void
|
|
@@ -47,10 +28,10 @@ export const Structural: new<A>(
|
|
|
47
28
|
Object.assign(this, args)
|
|
48
29
|
}
|
|
49
30
|
}
|
|
50
|
-
Structural.prototype =
|
|
31
|
+
Structural.prototype = StructuralPrototype
|
|
51
32
|
return Structural as any
|
|
52
33
|
})()
|
|
53
34
|
|
|
54
35
|
/** @internal */
|
|
55
36
|
export const struct = <As extends Readonly<Record<string, any>>>(as: As): Data.Data<As> =>
|
|
56
|
-
Object.assign(Object.create(
|
|
37
|
+
Object.assign(Object.create(StructuralPrototype), as)
|
|
@@ -87,7 +87,7 @@ export const batchN = dual<
|
|
|
87
87
|
new core.RequestResolverImpl(
|
|
88
88
|
(requests) => {
|
|
89
89
|
return n < 1
|
|
90
|
-
? core.die(Cause.IllegalArgumentException("RequestResolver.batchN: n must be at least 1"))
|
|
90
|
+
? core.die(new Cause.IllegalArgumentException("RequestResolver.batchN: n must be at least 1"))
|
|
91
91
|
: self.runAll(
|
|
92
92
|
Array.from(Chunk.map(
|
|
93
93
|
RA.reduce(
|
package/src/internal/deferred.ts
CHANGED
|
@@ -12,21 +12,21 @@ export const DeferredTypeId: Deferred.DeferredTypeId = Symbol.for(
|
|
|
12
12
|
|
|
13
13
|
/** @internal */
|
|
14
14
|
export const deferredVariance = {
|
|
15
|
-
_E: (_:
|
|
16
|
-
_A: (_:
|
|
15
|
+
_E: (_: any) => _,
|
|
16
|
+
_A: (_: any) => _
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/** @internal */
|
|
20
|
-
export type State
|
|
20
|
+
export type State</* in out */ E, /* in out */ A> = Pending<E, A> | Done<E, A>
|
|
21
21
|
|
|
22
22
|
/** @internal */
|
|
23
|
-
export interface Pending<E, A> {
|
|
23
|
+
export interface Pending<in E, in A> {
|
|
24
24
|
readonly _tag: "Pending"
|
|
25
25
|
readonly joiners: Array<(effect: Effect.Effect<never, E, A>) => void>
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
/** @internal */
|
|
29
|
-
export interface Done<E, A> {
|
|
29
|
+
export interface Done<out E, out A> {
|
|
30
30
|
readonly _tag: "Done"
|
|
31
31
|
readonly effect: Effect.Effect<never, E, A>
|
|
32
32
|
}
|
|
@@ -40,7 +40,7 @@ const _empty = Object.create(EmptyProto)
|
|
|
40
40
|
export const empty = <Input, Output>(): Differ.Context.Patch<Input, Output> => _empty
|
|
41
41
|
|
|
42
42
|
/** @internal */
|
|
43
|
-
export interface AndThen<Input, Output, Output2> extends Differ.Context.Patch<Input, Output2> {
|
|
43
|
+
export interface AndThen<in out Input, in out Output, in out Output2> extends Differ.Context.Patch<Input, Output2> {
|
|
44
44
|
readonly _tag: "AndThen"
|
|
45
45
|
readonly first: Differ.Context.Patch<Input, Output>
|
|
46
46
|
readonly second: Differ.Context.Patch<Output, Output2>
|
|
@@ -61,7 +61,7 @@ const makeAndThen = <Input, Output, Output2>(
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/** @internal */
|
|
64
|
-
export interface AddService<Env, T, I> extends Differ.Context.Patch<Env, Env | I> {
|
|
64
|
+
export interface AddService<in out Env, in out T, in out I> extends Differ.Context.Patch<Env, Env | I> {
|
|
65
65
|
readonly _tag: "AddService"
|
|
66
66
|
readonly tag: Tag<T, I>
|
|
67
67
|
readonly service: T
|
|
@@ -82,7 +82,7 @@ const makeAddService = <Env, I, T>(
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/** @internal */
|
|
85
|
-
export interface RemoveService<Env, T, I> extends Differ.Context.Patch<Env, Exclude<Env, I>> {
|
|
85
|
+
export interface RemoveService<in out Env, in out T, in out I> extends Differ.Context.Patch<Env, Exclude<Env, I>> {
|
|
86
86
|
readonly _tag: "RemoveService"
|
|
87
87
|
readonly tag: Tag<T, I>
|
|
88
88
|
}
|
|
@@ -100,10 +100,10 @@ const makeRemoveService = <Env, I, T>(
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/** @internal */
|
|
103
|
-
export interface UpdateService<Env, T, I> extends Differ.Context.Patch<Env | I, Env | I> {
|
|
103
|
+
export interface UpdateService<in out Env, in out T, in out I> extends Differ.Context.Patch<Env | I, Env | I> {
|
|
104
104
|
readonly _tag: "UpdateService"
|
|
105
105
|
readonly tag: Tag<T, I>
|
|
106
|
-
|
|
106
|
+
update(service: T): T
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
const UpdateServiceProto = Object.assign(Object.create(PatchProto), {
|
|
@@ -24,7 +24,9 @@ const PatchProto = {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/** @internal */
|
|
27
|
-
export interface Empty<Value, Value2,
|
|
27
|
+
export interface Empty<in out Value, in out Value2, in out Patch, in out Patch2>
|
|
28
|
+
extends Differ.Or.Patch<Value, Value2, Patch, Patch2>
|
|
29
|
+
{
|
|
28
30
|
readonly _tag: "Empty"
|
|
29
31
|
}
|
|
30
32
|
|
|
@@ -43,7 +45,9 @@ export const empty = <Value, Value2, Patch, Patch2>(): Differ.Or.Patch<
|
|
|
43
45
|
> => _empty
|
|
44
46
|
|
|
45
47
|
/** @internal */
|
|
46
|
-
export interface AndThen<
|
|
48
|
+
export interface AndThen<in out Value, in out Value2, in out Patch, Patch2>
|
|
49
|
+
extends Differ.Or.Patch<Value, Value2, Patch, Patch2>
|
|
50
|
+
{
|
|
47
51
|
readonly _tag: "AndThen"
|
|
48
52
|
readonly first: Differ.Or.Patch<Value, Value2, Patch, Patch2>
|
|
49
53
|
readonly second: Differ.Or.Patch<Value, Value2, Patch, Patch2>
|
|
@@ -70,7 +74,9 @@ export const makeAndThen = <Value, Value2, Patch, Patch2>(
|
|
|
70
74
|
}
|
|
71
75
|
|
|
72
76
|
/** @internal */
|
|
73
|
-
export interface SetLeft<
|
|
77
|
+
export interface SetLeft<in out Value, in out Value2, in out Patch, Patch2>
|
|
78
|
+
extends Differ.Or.Patch<Value, Value2, Patch, Patch2>
|
|
79
|
+
{
|
|
74
80
|
readonly _tag: "SetLeft"
|
|
75
81
|
readonly value: Value
|
|
76
82
|
}
|
|
@@ -94,7 +100,9 @@ export const makeSetLeft = <Value, Value2, Patch, Patch2>(
|
|
|
94
100
|
}
|
|
95
101
|
|
|
96
102
|
/** @internal */
|
|
97
|
-
export interface SetRight<Value, Value2,
|
|
103
|
+
export interface SetRight<in out Value, in out Value2, in out Patch, in out Patch2>
|
|
104
|
+
extends Differ.Or.Patch<Value, Value2, Patch, Patch2>
|
|
105
|
+
{
|
|
98
106
|
readonly _tag: "SetRight"
|
|
99
107
|
readonly value: Value2
|
|
100
108
|
}
|
|
@@ -118,7 +126,9 @@ export const makeSetRight = <Value, Value2, Patch, Patch2>(
|
|
|
118
126
|
}
|
|
119
127
|
|
|
120
128
|
/** @internal */
|
|
121
|
-
export interface UpdateLeft<Value, Value2,
|
|
129
|
+
export interface UpdateLeft<in out Value, in out Value2, in out Patch, in out Patch2>
|
|
130
|
+
extends Differ.Or.Patch<Value, Value2, Patch, Patch2>
|
|
131
|
+
{
|
|
122
132
|
readonly _tag: "UpdateLeft"
|
|
123
133
|
readonly patch: Patch
|
|
124
134
|
}
|
|
@@ -142,7 +152,9 @@ export const makeUpdateLeft = <Value, Value2, Patch, Patch2>(
|
|
|
142
152
|
}
|
|
143
153
|
|
|
144
154
|
/** @internal */
|
|
145
|
-
export interface UpdateRight<Value, Value2,
|
|
155
|
+
export interface UpdateRight<in out Value, in out Value2, in out Patch, in out Patch2>
|
|
156
|
+
extends Differ.Or.Patch<Value, Value2, Patch, Patch2>
|
|
157
|
+
{
|
|
146
158
|
readonly _tag: "UpdateRight"
|
|
147
159
|
readonly patch: Patch2
|
|
148
160
|
}
|