effect 2.3.7 → 2.4.0
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/dist/cjs/BigDecimal.js +1 -1
- package/dist/cjs/BigDecimal.js.map +1 -1
- package/dist/cjs/BigInt.js +14 -1
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Chunk.js +1 -1
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Cron.js +1 -1
- package/dist/cjs/Cron.js.map +1 -1
- package/dist/cjs/Duration.js +1 -1
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +16 -61
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +35 -6
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Equal.js +1 -1
- package/dist/cjs/Equal.js.map +1 -1
- package/dist/cjs/Exit.js +1 -1
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/Hash.js +29 -1
- package/dist/cjs/Hash.js.map +1 -1
- package/dist/cjs/List.js +3 -2
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/Number.js +25 -1
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/ReadonlyArray.js +2 -2
- package/dist/cjs/ReadonlyArray.js.map +1 -1
- package/dist/cjs/ReadonlyRecord.js +71 -76
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/SortedMap.js +1 -1
- package/dist/cjs/SortedMap.js.map +1 -1
- package/dist/cjs/SortedSet.js +1 -1
- package/dist/cjs/SortedSet.js.map +1 -1
- package/dist/cjs/Stream.js +3 -23
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/Struct.js +3 -1
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +1 -1
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/internal/cache.js +1 -1
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/cause.js +1 -1
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js +5 -5
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/channelState.js +5 -5
- package/dist/cjs/internal/channel/channelState.js.map +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js +3 -4
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/context.js +1 -1
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +6 -23
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core.js +15 -31
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js +1 -1
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +5 -6
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +2 -2
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/either.js +1 -1
- package/dist/cjs/internal/either.js.map +1 -1
- package/dist/cjs/internal/fiberId.js +2 -9
- package/dist/cjs/internal/fiberId.js.map +1 -1
- package/dist/cjs/internal/fiberStatus.js +4 -3
- package/dist/cjs/internal/fiberStatus.js.map +1 -1
- package/dist/cjs/internal/groupBy.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 +1 -1
- package/dist/cjs/internal/hashSet.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js +2 -2
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer.js +0 -2
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/metric/keyType.js +4 -4
- package/dist/cjs/internal/metric/keyType.js.map +1 -1
- package/dist/cjs/internal/metric/state.js +5 -9
- package/dist/cjs/internal/metric/state.js.map +1 -1
- package/dist/cjs/internal/option.js +1 -1
- package/dist/cjs/internal/option.js.map +1 -1
- package/dist/cjs/internal/pool.js +1 -1
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/redBlackTree.js +1 -1
- package/dist/cjs/internal/redBlackTree.js.map +1 -1
- package/dist/cjs/internal/runtime.js +12 -1
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js +4 -4
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/secret.js +1 -1
- package/dist/cjs/internal/secret.js.map +1 -1
- package/dist/cjs/internal/sink.js +0 -2
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js +1 -1
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/stm/stmState.js +6 -4
- package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tExit.js +7 -6
- package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js +1 -0
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stream.js +51 -64
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/trie.js +1 -1
- package/dist/cjs/internal/trie.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/BigDecimal.d.ts.map +1 -1
- package/dist/dts/BigInt.d.ts +7 -0
- package/dist/dts/BigInt.d.ts.map +1 -1
- package/dist/dts/Brand.d.ts +1 -1
- package/dist/dts/Brand.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +1 -1
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +11 -11
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +3 -3
- package/dist/dts/Config.d.ts +4 -4
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Cron.d.ts +1 -1
- package/dist/dts/Cron.d.ts.map +1 -1
- package/dist/dts/Differ.d.ts +2 -2
- package/dist/dts/Differ.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +52 -108
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +126 -83
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Encoding.d.ts +6 -6
- package/dist/dts/Encoding.d.ts.map +1 -1
- package/dist/dts/Equal.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +2 -2
- package/dist/dts/Fiber.d.ts +2 -2
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +4 -5
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +12 -12
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/Hash.d.ts +8 -0
- package/dist/dts/Hash.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +26 -26
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/List.d.ts +2 -2
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +4 -4
- package/dist/dts/Match.d.ts +2 -2
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +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 +13 -13
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +4 -4
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +8 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +11 -11
- package/dist/dts/ReadonlyArray.d.ts +9 -8
- package/dist/dts/ReadonlyArray.d.ts.map +1 -1
- package/dist/dts/ReadonlyRecord.d.ts +111 -94
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +4 -4
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +13 -13
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +1 -1
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +144 -139
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +171 -179
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +13 -13
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/SortedMap.d.ts.map +1 -1
- package/dist/dts/SortedSet.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +355 -366
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Struct.d.ts +3 -3
- package/dist/dts/Struct.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +2 -2
- package/dist/dts/TArray.d.ts +2 -2
- package/dist/dts/TDeferred.d.ts +3 -3
- package/dist/dts/TMap.d.ts +10 -10
- package/dist/dts/TSet.d.ts +4 -4
- package/dist/dts/Take.d.ts +2 -2
- package/dist/dts/TestAnnotation.d.ts +2 -2
- package/dist/dts/TestAnnotation.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/internal/metric/keyType.d.ts.map +1 -1
- package/dist/dts/internal/metric/state.d.ts.map +1 -1
- package/dist/dts/internal/stm/stm.d.ts +2 -15
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/esm/BigDecimal.js +1 -1
- package/dist/esm/BigDecimal.js.map +1 -1
- package/dist/esm/BigInt.js +12 -0
- package/dist/esm/BigInt.js.map +1 -1
- package/dist/esm/Chunk.js +1 -1
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Cron.js +1 -1
- package/dist/esm/Cron.js.map +1 -1
- package/dist/esm/Duration.js +1 -1
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +13 -58
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +42 -5
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Equal.js +1 -1
- package/dist/esm/Equal.js.map +1 -1
- package/dist/esm/Exit.js +1 -1
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/Hash.js +27 -0
- package/dist/esm/Hash.js.map +1 -1
- package/dist/esm/List.js +3 -2
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/Number.js +23 -0
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/ReadonlyArray.js +2 -2
- package/dist/esm/ReadonlyArray.js.map +1 -1
- package/dist/esm/ReadonlyRecord.js +70 -75
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/SortedMap.js +1 -1
- package/dist/esm/SortedMap.js.map +1 -1
- package/dist/esm/SortedSet.js +1 -1
- package/dist/esm/SortedSet.js.map +1 -1
- package/dist/esm/Stream.js +5 -22
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/Struct.js +3 -1
- package/dist/esm/Struct.js.map +1 -1
- package/dist/esm/TestAnnotation.js +1 -1
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/internal/cache.js +1 -1
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/cause.js +1 -1
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js +5 -5
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel/channelState.js +3 -3
- package/dist/esm/internal/channel/channelState.js.map +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/clock.js +3 -4
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/context.js +1 -1
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/core-effect.js +4 -20
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core.js +12 -26
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/data.js +1 -1
- package/dist/esm/internal/data.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +5 -6
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/effectable.js +2 -2
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/either.js +1 -1
- package/dist/esm/internal/either.js.map +1 -1
- package/dist/esm/internal/fiberId.js +2 -9
- package/dist/esm/internal/fiberId.js.map +1 -1
- package/dist/esm/internal/fiberStatus.js +4 -3
- package/dist/esm/internal/fiberStatus.js.map +1 -1
- package/dist/esm/internal/groupBy.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 +1 -1
- package/dist/esm/internal/hashSet.js.map +1 -1
- package/dist/esm/internal/keyedPool.js +2 -2
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer.js +0 -2
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/metric/keyType.js +4 -4
- package/dist/esm/internal/metric/keyType.js.map +1 -1
- package/dist/esm/internal/metric/state.js +5 -9
- package/dist/esm/internal/metric/state.js.map +1 -1
- package/dist/esm/internal/option.js +1 -1
- package/dist/esm/internal/option.js.map +1 -1
- package/dist/esm/internal/pool.js +1 -1
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/redBlackTree.js +1 -1
- package/dist/esm/internal/redBlackTree.js.map +1 -1
- package/dist/esm/internal/runtime.js +12 -1
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js +4 -4
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/secret.js +1 -1
- package/dist/esm/internal/secret.js.map +1 -1
- package/dist/esm/internal/sink.js +0 -2
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/core.js +1 -1
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/stm/stmState.js +5 -3
- package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
- package/dist/esm/internal/stm/stm/tExit.js +6 -5
- package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
- package/dist/esm/internal/stm/stm.js +1 -0
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stream.js +49 -59
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/trie.js +1 -1
- package/dist/esm/internal/trie.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +3 -2
- package/src/BigDecimal.ts +2 -1
- package/src/BigInt.ts +13 -0
- package/src/Brand.ts +4 -4
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +17 -17
- package/src/Chunk.ts +5 -5
- package/src/Config.ts +4 -4
- package/src/Cron.ts +4 -3
- package/src/Differ.ts +2 -2
- package/src/Duration.ts +2 -2
- package/src/Effect.ts +68 -145
- package/src/Either.ts +215 -133
- package/src/Encoding.ts +3 -3
- package/src/Equal.ts +1 -1
- package/src/Exit.ts +2 -2
- package/src/Fiber.ts +2 -2
- package/src/FiberMap.ts +0 -1
- package/src/GroupBy.ts +16 -16
- package/src/Hash.ts +31 -0
- package/src/Layer.ts +32 -32
- package/src/List.ts +6 -5
- package/src/Logger.ts +4 -4
- package/src/Match.ts +3 -3
- package/src/MergeDecision.ts +1 -1
- package/src/MergeState.ts +8 -8
- package/src/Metric.ts +13 -13
- package/src/MetricPolling.ts +9 -9
- package/src/Number.ts +26 -0
- package/src/Option.ts +17 -17
- package/src/ReadonlyArray.ts +23 -15
- package/src/ReadonlyRecord.ts +421 -265
- package/src/Reloadable.ts +4 -4
- package/src/RequestResolver.ts +19 -19
- package/src/Resource.ts +3 -3
- package/src/STM.ts +166 -213
- package/src/Schedule.ts +331 -361
- package/src/SingleProducerAsyncInput.ts +1 -1
- package/src/Sink.ts +19 -19
- package/src/SortedMap.ts +5 -1
- package/src/SortedSet.ts +5 -1
- package/src/Stream.ts +449 -456
- package/src/Struct.ts +8 -5
- package/src/SubscriptionRef.ts +2 -2
- package/src/TArray.ts +2 -2
- package/src/TDeferred.ts +4 -4
- package/src/TMap.ts +10 -10
- package/src/TSet.ts +4 -4
- package/src/Take.ts +4 -4
- package/src/TestAnnotation.ts +7 -9
- package/src/Types.ts +11 -0
- package/src/internal/blockedRequests.ts +2 -2
- package/src/internal/cache.ts +2 -1
- package/src/internal/cause.ts +4 -3
- package/src/internal/channel/channelExecutor.ts +26 -26
- package/src/internal/channel/channelState.ts +13 -13
- package/src/internal/channel/mergeDecision.ts +1 -1
- package/src/internal/channel/mergeState.ts +6 -6
- package/src/internal/channel/singleProducerAsyncInput.ts +5 -5
- package/src/internal/channel.ts +43 -43
- package/src/internal/clock.ts +3 -4
- package/src/internal/config.ts +7 -7
- package/src/internal/configError.ts +1 -1
- package/src/internal/configProvider/pathPatch.ts +2 -2
- package/src/internal/configProvider.ts +1 -1
- package/src/internal/context.ts +1 -1
- package/src/internal/core-effect.ts +28 -43
- package/src/internal/core.ts +19 -44
- package/src/internal/data.ts +1 -1
- package/src/internal/dataSource.ts +26 -26
- package/src/internal/differ/orPatch.ts +7 -7
- package/src/internal/differ.ts +2 -2
- package/src/internal/effect/circular.ts +10 -11
- package/src/internal/effectable.ts +3 -3
- package/src/internal/either.ts +23 -20
- package/src/internal/encoding/base64.ts +1 -1
- package/src/internal/encoding/base64Url.ts +1 -1
- package/src/internal/encoding/hex.ts +1 -1
- package/src/internal/fiber.ts +2 -2
- package/src/internal/fiberId.ts +7 -13
- package/src/internal/fiberRuntime.ts +9 -9
- package/src/internal/fiberStatus.ts +7 -6
- package/src/internal/groupBy.ts +40 -40
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/hashSet.ts +4 -1
- package/src/internal/keyedPool.ts +4 -2
- package/src/internal/layer/circular.ts +4 -4
- package/src/internal/layer.ts +52 -54
- package/src/internal/matcher.ts +5 -5
- package/src/internal/metric/keyType.ts +7 -5
- package/src/internal/metric/polling.ts +8 -8
- package/src/internal/metric/state.ts +11 -10
- package/src/internal/metric.ts +6 -6
- package/src/internal/option.ts +1 -1
- package/src/internal/pool.ts +2 -1
- package/src/internal/redBlackTree.ts +2 -2
- package/src/internal/reloadable.ts +4 -4
- package/src/internal/resource.ts +2 -2
- package/src/internal/runtime.ts +32 -19
- package/src/internal/schedule.ts +430 -500
- package/src/internal/secret.ts +2 -1
- package/src/internal/sink.ts +27 -29
- package/src/internal/stm/core.ts +24 -24
- package/src/internal/stm/stm/stmState.ts +16 -11
- package/src/internal/stm/stm/tExit.ts +15 -9
- package/src/internal/stm/stm.ts +158 -157
- package/src/internal/stm/tArray.ts +3 -3
- package/src/internal/stm/tDeferred.ts +5 -5
- package/src/internal/stm/tMap.ts +13 -13
- package/src/internal/stm/tSet.ts +4 -4
- package/src/internal/stream.ts +688 -723
- package/src/internal/subscriptionRef.ts +3 -3
- package/src/internal/take.ts +6 -6
- package/src/internal/trie.ts +2 -2
- package/src/internal/version.ts +1 -1
package/src/internal/layer.ts
CHANGED
|
@@ -504,10 +504,10 @@ export const failCauseSync = <E>(evaluate: LazyArg<Cause.Cause<E>>): Layer.Layer
|
|
|
504
504
|
|
|
505
505
|
/** @internal */
|
|
506
506
|
export const flatMap = dual<
|
|
507
|
-
<A,
|
|
507
|
+
<A, A2, E2, R2>(
|
|
508
508
|
f: (context: Context.Context<A>) => Layer.Layer<A2, E2, R2>
|
|
509
|
-
) => <
|
|
510
|
-
<
|
|
509
|
+
) => <E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A2, E | E2, R | R2>,
|
|
510
|
+
<A, E, R, A2, E2, R2>(
|
|
511
511
|
self: Layer.Layer<A, E, R>,
|
|
512
512
|
f: (context: Context.Context<A>) => Layer.Layer<A2, E2, R2>
|
|
513
513
|
) => Layer.Layer<A2, E | E2, R | R2>
|
|
@@ -515,12 +515,12 @@ export const flatMap = dual<
|
|
|
515
515
|
|
|
516
516
|
/** @internal */
|
|
517
517
|
export const flatten = dual<
|
|
518
|
-
<
|
|
518
|
+
<I, A, E2, R2>(
|
|
519
519
|
tag: Context.Tag<I, Layer.Layer<A, E2, R2>>
|
|
520
|
-
) => <
|
|
520
|
+
) => <E, R>(
|
|
521
521
|
self: Layer.Layer<I, E, R>
|
|
522
522
|
) => Layer.Layer<A, E | E2, R | R2>,
|
|
523
|
-
<
|
|
523
|
+
<I, E, R, A, E2, R2>(
|
|
524
524
|
self: Layer.Layer<I, E, R>,
|
|
525
525
|
tag: Context.Tag<I, Layer.Layer<A, E2, R2>>
|
|
526
526
|
) => Layer.Layer<A, E | E2, R | R2>
|
|
@@ -553,7 +553,7 @@ export const fromEffect = dual<
|
|
|
553
553
|
})
|
|
554
554
|
|
|
555
555
|
/** @internal */
|
|
556
|
-
export const fromEffectDiscard = <
|
|
556
|
+
export const fromEffectDiscard = <X, E, R>(effect: Effect.Effect<X, E, R>) =>
|
|
557
557
|
fromEffectContext(core.map(effect, () => Context.empty()))
|
|
558
558
|
|
|
559
559
|
/** @internal */
|
|
@@ -569,7 +569,7 @@ export function fromEffectContext<A, E, R>(
|
|
|
569
569
|
/** @internal */
|
|
570
570
|
export const fiberRefLocally = dual<
|
|
571
571
|
<X>(ref: FiberRef<X>, value: X) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E, R>,
|
|
572
|
-
<
|
|
572
|
+
<A, E, R, X>(self: Layer.Layer<A, E, R>, ref: FiberRef<X>, value: X) => Layer.Layer<A, E, R>
|
|
573
573
|
>(3, (self, ref, value) => locallyEffect(self, core.fiberRefLocally(ref, value)))
|
|
574
574
|
|
|
575
575
|
/** @internal */
|
|
@@ -592,7 +592,7 @@ export const locallyEffect = dual<
|
|
|
592
592
|
/** @internal */
|
|
593
593
|
export const fiberRefLocallyWith = dual<
|
|
594
594
|
<X>(ref: FiberRef<X>, value: (_: X) => X) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E, R>,
|
|
595
|
-
<
|
|
595
|
+
<A, E, R, X>(self: Layer.Layer<A, E, R>, ref: FiberRef<X>, value: (_: X) => X) => Layer.Layer<A, E, R>
|
|
596
596
|
>(3, (self, ref, value) => locallyEffect(self, core.fiberRefLocallyWith(ref, value)))
|
|
597
597
|
|
|
598
598
|
/** @internal */
|
|
@@ -624,8 +624,8 @@ export const launch = <RIn, E, ROut>(self: Layer.Layer<ROut, E, RIn>): Effect.Ef
|
|
|
624
624
|
export const map = dual<
|
|
625
625
|
<A, B>(
|
|
626
626
|
f: (context: Context.Context<A>) => Context.Context<B>
|
|
627
|
-
) => <
|
|
628
|
-
<
|
|
627
|
+
) => <E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<B, E, R>,
|
|
628
|
+
<A, E, R, B>(
|
|
629
629
|
self: Layer.Layer<A, E, R>,
|
|
630
630
|
f: (context: Context.Context<A>) => Context.Context<B>
|
|
631
631
|
) => Layer.Layer<B, E, R>
|
|
@@ -633,19 +633,19 @@ export const map = dual<
|
|
|
633
633
|
|
|
634
634
|
/** @internal */
|
|
635
635
|
export const mapError = dual<
|
|
636
|
-
<E, E2>(f: (error: E) => E2) => <
|
|
637
|
-
<
|
|
636
|
+
<E, E2>(f: (error: E) => E2) => <A, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E2, R>,
|
|
637
|
+
<A, E, R, E2>(self: Layer.Layer<A, E, R>, f: (error: E) => E2) => Layer.Layer<A, E2, R>
|
|
638
638
|
>(2, (self, f) => catchAll(self, (error) => failSync(() => f(error))))
|
|
639
639
|
|
|
640
640
|
/** @internal */
|
|
641
641
|
export const matchCause = dual<
|
|
642
|
-
<E,
|
|
642
|
+
<E, A2, E2, R2, A, A3, E3, R3>(
|
|
643
643
|
options: {
|
|
644
644
|
readonly onFailure: (cause: Cause.Cause<E>) => Layer.Layer<A2, E2, R2>
|
|
645
645
|
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<A3, E3, R3>
|
|
646
646
|
}
|
|
647
647
|
) => <R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A2 & A3, E2 | E3, R | R2 | R3>,
|
|
648
|
-
<
|
|
648
|
+
<A, E, R, A2, E2, R2, A3, E3, R3>(
|
|
649
649
|
self: Layer.Layer<A, E, R>,
|
|
650
650
|
options: {
|
|
651
651
|
readonly onFailure: (cause: Cause.Cause<E>) => Layer.Layer<A2, E2, R2>
|
|
@@ -663,13 +663,13 @@ export const matchCause = dual<
|
|
|
663
663
|
|
|
664
664
|
/** @internal */
|
|
665
665
|
export const match = dual<
|
|
666
|
-
<E,
|
|
666
|
+
<E, A2, E2, R2, A, A3, E3, R3>(
|
|
667
667
|
options: {
|
|
668
668
|
readonly onFailure: (error: E) => Layer.Layer<A2, E2, R2>
|
|
669
669
|
readonly onSuccess: (context: Context.Context<A>) => Layer.Layer<A3, E3, R3>
|
|
670
670
|
}
|
|
671
671
|
) => <R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A2 & A3, E2 | E3, R | R2 | R3>,
|
|
672
|
-
<
|
|
672
|
+
<A, E, R, A2, E2, R2, A3, E3, R3>(
|
|
673
673
|
self: Layer.Layer<A, E, R>,
|
|
674
674
|
options: {
|
|
675
675
|
readonly onFailure: (error: E) => Layer.Layer<A2, E2, R2>
|
|
@@ -740,10 +740,10 @@ export const orDie = <A, E, R>(self: Layer.Layer<A, E, R>): Layer.Layer<A, never
|
|
|
740
740
|
|
|
741
741
|
/** @internal */
|
|
742
742
|
export const orElse = dual<
|
|
743
|
-
<
|
|
743
|
+
<A2, E2, R2>(
|
|
744
744
|
that: LazyArg<Layer.Layer<A2, E2, R2>>
|
|
745
745
|
) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A & A2, E | E2, R | R2>,
|
|
746
|
-
<
|
|
746
|
+
<A, E, R, A2, E2, R2>(
|
|
747
747
|
self: Layer.Layer<A, E, R>,
|
|
748
748
|
that: LazyArg<Layer.Layer<A2, E2, R2>>
|
|
749
749
|
) => Layer.Layer<A & A2, E | E2, R | R2>
|
|
@@ -770,14 +770,14 @@ export const project = dual<
|
|
|
770
770
|
|
|
771
771
|
/** @internal */
|
|
772
772
|
export const retry = dual<
|
|
773
|
-
<
|
|
774
|
-
schedule: Schedule.Schedule<
|
|
775
|
-
) => <
|
|
773
|
+
<X, E, RIn2>(
|
|
774
|
+
schedule: Schedule.Schedule<X, E, RIn2>
|
|
775
|
+
) => <ROut, RIn>(
|
|
776
776
|
self: Layer.Layer<ROut, E, RIn>
|
|
777
777
|
) => Layer.Layer<ROut, E, RIn | RIn2>,
|
|
778
|
-
<
|
|
778
|
+
<ROut, E, RIn, X, RIn2>(
|
|
779
779
|
self: Layer.Layer<ROut, E, RIn>,
|
|
780
|
-
schedule: Schedule.Schedule<
|
|
780
|
+
schedule: Schedule.Schedule<X, E, RIn2>
|
|
781
781
|
) => Layer.Layer<ROut, E, RIn | RIn2>
|
|
782
782
|
>(2, (self, schedule) =>
|
|
783
783
|
suspend(() => {
|
|
@@ -790,10 +790,9 @@ export const retry = dual<
|
|
|
790
790
|
)
|
|
791
791
|
}))
|
|
792
792
|
|
|
793
|
-
|
|
794
|
-
const retryLoop = <RIn, E, ROut, RIn2, X>(
|
|
793
|
+
const retryLoop = <ROut, E, RIn, X, RIn2>(
|
|
795
794
|
self: Layer.Layer<ROut, E, RIn>,
|
|
796
|
-
schedule: Schedule.Schedule<
|
|
795
|
+
schedule: Schedule.Schedule<X, E, RIn2>,
|
|
797
796
|
stateTag: Context.Tag<{ state: unknown }, { state: unknown }>,
|
|
798
797
|
state: unknown
|
|
799
798
|
): Layer.Layer<ROut, E, RIn | RIn2> => {
|
|
@@ -808,9 +807,8 @@ const retryLoop = <RIn, E, ROut, RIn2, X>(
|
|
|
808
807
|
)
|
|
809
808
|
}
|
|
810
809
|
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
schedule: Schedule.Schedule<RIn, E, X>,
|
|
810
|
+
const retryUpdate = <X, E, RIn>(
|
|
811
|
+
schedule: Schedule.Schedule<X, E, RIn>,
|
|
814
812
|
stateTag: Context.Tag<{ state: unknown }, { state: unknown }>,
|
|
815
813
|
error: E,
|
|
816
814
|
state: unknown
|
|
@@ -840,10 +838,10 @@ const retryUpdate = <RIn, E, X>(
|
|
|
840
838
|
export const scoped = dual<
|
|
841
839
|
<T extends Context.Tag<any, any>>(
|
|
842
840
|
tag: T
|
|
843
|
-
) => <
|
|
841
|
+
) => <E, R>(
|
|
844
842
|
effect: Effect.Effect<Context.Tag.Service<T>, E, R>
|
|
845
843
|
) => Layer.Layer<Context.Tag.Identifier<T>, E, Exclude<R, Scope.Scope>>,
|
|
846
|
-
<T extends Context.Tag<any, any>,
|
|
844
|
+
<T extends Context.Tag<any, any>, E, R>(
|
|
847
845
|
tag: T,
|
|
848
846
|
effect: Effect.Effect<Context.Tag.Service<T>, E, R>
|
|
849
847
|
) => Layer.Layer<Context.Tag.Identifier<T>, E, Exclude<R, Scope.Scope>>
|
|
@@ -855,8 +853,8 @@ export const scoped = dual<
|
|
|
855
853
|
})
|
|
856
854
|
|
|
857
855
|
/** @internal */
|
|
858
|
-
export const scopedDiscard = <
|
|
859
|
-
effect: Effect.Effect<
|
|
856
|
+
export const scopedDiscard = <X, E, R>(
|
|
857
|
+
effect: Effect.Effect<X, E, R>
|
|
860
858
|
): Layer.Layer<never, E, Exclude<R, Scope.Scope>> => scopedContext(pipe(effect, core.as(Context.empty())))
|
|
861
859
|
|
|
862
860
|
/** @internal */
|
|
@@ -1054,11 +1052,11 @@ export const provideMerge = dual<
|
|
|
1054
1052
|
|
|
1055
1053
|
/** @internal */
|
|
1056
1054
|
export const zipWith = dual<
|
|
1057
|
-
<
|
|
1055
|
+
<B, E2, R2, A, C>(
|
|
1058
1056
|
that: Layer.Layer<B, E2, R2>,
|
|
1059
1057
|
f: (a: Context.Context<A>, b: Context.Context<B>) => Context.Context<C>
|
|
1060
|
-
) => <
|
|
1061
|
-
<
|
|
1058
|
+
) => <E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<C, E | E2, R | R2>,
|
|
1059
|
+
<A, E, R, B, E2, R2, C>(
|
|
1062
1060
|
self: Layer.Layer<A, E, R>,
|
|
1063
1061
|
that: Layer.Layer<B, E2, R2>,
|
|
1064
1062
|
f: (a: Context.Context<A>, b: Context.Context<B>) => Context.Context<C>
|
|
@@ -1074,7 +1072,7 @@ export const zipWith = dual<
|
|
|
1074
1072
|
}))
|
|
1075
1073
|
|
|
1076
1074
|
/** @internal */
|
|
1077
|
-
export const unwrapEffect = <
|
|
1075
|
+
export const unwrapEffect = <A, E1, R1, E, R>(
|
|
1078
1076
|
self: Effect.Effect<Layer.Layer<A, E1, R1>, E, R>
|
|
1079
1077
|
): Layer.Layer<A, E | E1, R | R1> => {
|
|
1080
1078
|
const tag = Context.GenericTag<Layer.Layer<A, E1, R1>>("effect/Layer/unwrapEffect/Layer.Layer<R1, E1, A>")
|
|
@@ -1082,7 +1080,7 @@ export const unwrapEffect = <R, E, R1, E1, A>(
|
|
|
1082
1080
|
}
|
|
1083
1081
|
|
|
1084
1082
|
/** @internal */
|
|
1085
|
-
export const unwrapScoped = <
|
|
1083
|
+
export const unwrapScoped = <A, E1, R1, E, R>(
|
|
1086
1084
|
self: Effect.Effect<Layer.Layer<A, E1, R1>, E, R>
|
|
1087
1085
|
): Layer.Layer<A, E | E1, R1 | Exclude<R, Scope.Scope>> => {
|
|
1088
1086
|
const tag = Context.GenericTag<Layer.Layer<A, E1, R1>>("effect/Layer/unwrapScoped/Layer.Layer<R1, E1, A>")
|
|
@@ -1139,10 +1137,10 @@ export const withParentSpan = dual<
|
|
|
1139
1137
|
// circular with Effect
|
|
1140
1138
|
|
|
1141
1139
|
const provideSomeLayer = dual<
|
|
1142
|
-
<
|
|
1140
|
+
<A2, E2, R2>(
|
|
1143
1141
|
layer: Layer.Layer<A2, E2, R2>
|
|
1144
1142
|
) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E2, R2 | Exclude<R, A2>>,
|
|
1145
|
-
<
|
|
1143
|
+
<A, E, R, A2, E2, R2>(
|
|
1146
1144
|
self: Effect.Effect<A, E, R>,
|
|
1147
1145
|
layer: Layer.Layer<A2, E2, R2>
|
|
1148
1146
|
) => Effect.Effect<A, E | E2, R2 | Exclude<R, A2>>
|
|
@@ -1188,9 +1186,9 @@ const provideSomeRuntime = dual<
|
|
|
1188
1186
|
/** @internal */
|
|
1189
1187
|
export const effect_provide = dual<
|
|
1190
1188
|
{
|
|
1191
|
-
<
|
|
1192
|
-
layer: Layer.Layer<
|
|
1193
|
-
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E2,
|
|
1189
|
+
<ROut, E2, RIn>(
|
|
1190
|
+
layer: Layer.Layer<ROut, E2, RIn>
|
|
1191
|
+
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E2, RIn | Exclude<R, ROut>>
|
|
1194
1192
|
<R2>(
|
|
1195
1193
|
context: Context.Context<R2>
|
|
1196
1194
|
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, R2>>
|
|
@@ -1199,28 +1197,28 @@ export const effect_provide = dual<
|
|
|
1199
1197
|
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, R2>>
|
|
1200
1198
|
},
|
|
1201
1199
|
{
|
|
1202
|
-
<A, E, R,
|
|
1200
|
+
<A, E, R, ROut, E2, RIn>(
|
|
1203
1201
|
self: Effect.Effect<A, E, R>,
|
|
1204
|
-
layer: Layer.Layer<
|
|
1205
|
-
): Effect.Effect<A, E | E2,
|
|
1206
|
-
<
|
|
1202
|
+
layer: Layer.Layer<ROut, E2, RIn>
|
|
1203
|
+
): Effect.Effect<A, E | E2, RIn | Exclude<R, ROut>>
|
|
1204
|
+
<A, E, R, R2>(
|
|
1207
1205
|
self: Effect.Effect<A, E, R>,
|
|
1208
1206
|
context: Context.Context<R2>
|
|
1209
1207
|
): Effect.Effect<A, E, Exclude<R, R2>>
|
|
1210
|
-
<
|
|
1208
|
+
<A, E, R, R2>(
|
|
1211
1209
|
self: Effect.Effect<A, E, R>,
|
|
1212
1210
|
runtime: Runtime.Runtime<R2>
|
|
1213
1211
|
): Effect.Effect<A, E, Exclude<R, R2>>
|
|
1214
1212
|
}
|
|
1215
1213
|
>(
|
|
1216
1214
|
2,
|
|
1217
|
-
<A, E, R,
|
|
1215
|
+
<A, E, R, ROut>(
|
|
1218
1216
|
self: Effect.Effect<A, E, R>,
|
|
1219
|
-
source: Layer.Layer<
|
|
1220
|
-
): Effect.Effect<any, any, Exclude<R,
|
|
1217
|
+
source: Layer.Layer<ROut, any, any> | Context.Context<ROut> | Runtime.Runtime<ROut>
|
|
1218
|
+
): Effect.Effect<any, any, Exclude<R, ROut>> =>
|
|
1221
1219
|
isLayer(source)
|
|
1222
|
-
? provideSomeLayer(self, source as Layer.Layer<
|
|
1220
|
+
? provideSomeLayer(self, source as Layer.Layer<ROut, any, any>)
|
|
1223
1221
|
: Context.isContext(source)
|
|
1224
1222
|
? core.provideSomeContext(self, source)
|
|
1225
|
-
: provideSomeRuntime(self, source as Runtime.Runtime<
|
|
1223
|
+
: provideSomeRuntime(self, source as Runtime.Runtime<ROut>)
|
|
1226
1224
|
)
|
package/src/internal/matcher.ts
CHANGED
|
@@ -87,7 +87,7 @@ const ValueMatcherProto: Omit<
|
|
|
87
87
|
|
|
88
88
|
function makeValueMatcher<I, R, RA, A, Pr>(
|
|
89
89
|
provided: Pr,
|
|
90
|
-
value: Either.Either<
|
|
90
|
+
value: Either.Either<Pr, RA>
|
|
91
91
|
): ValueMatcher<I, R, RA, A, Pr> {
|
|
92
92
|
const matcher = Object.create(ValueMatcherProto)
|
|
93
93
|
matcher.provided = provided
|
|
@@ -514,8 +514,8 @@ export const orElseAbsurd = <I, R, RA, A, Pr>(
|
|
|
514
514
|
/** @internal */
|
|
515
515
|
export const either: <I, F, R, A, Pr>(
|
|
516
516
|
self: Matcher<I, F, R, A, Pr>
|
|
517
|
-
) => [Pr] extends [never] ? (input: I) => Either.Either<
|
|
518
|
-
: Either.Either<
|
|
517
|
+
) => [Pr] extends [never] ? (input: I) => Either.Either<Unify<A>, R>
|
|
518
|
+
: Either.Either<Unify<A>, R> = (<I, R, RA, A>(self: Matcher<I, R, RA, A, I>) => {
|
|
519
519
|
if (self._tag === "ValueMatcher") {
|
|
520
520
|
return self.value
|
|
521
521
|
}
|
|
@@ -523,7 +523,7 @@ export const either: <I, F, R, A, Pr>(
|
|
|
523
523
|
const len = self.cases.length
|
|
524
524
|
if (len === 1) {
|
|
525
525
|
const _case = self.cases[0]
|
|
526
|
-
return (input: I): Either.Either<
|
|
526
|
+
return (input: I): Either.Either<A, RA> => {
|
|
527
527
|
if (_case._tag === "When" && _case.guard(input) === true) {
|
|
528
528
|
return Either.right(_case.evaluate(input))
|
|
529
529
|
} else if (_case._tag === "Not" && _case.guard(input) === false) {
|
|
@@ -532,7 +532,7 @@ export const either: <I, F, R, A, Pr>(
|
|
|
532
532
|
return Either.left(input as any)
|
|
533
533
|
}
|
|
534
534
|
}
|
|
535
|
-
return (input: I): Either.Either<
|
|
535
|
+
return (input: I): Either.Either<A, RA> => {
|
|
536
536
|
for (let i = 0; i < len; i++) {
|
|
537
537
|
const _case = self.cases[i]
|
|
538
538
|
if (_case._tag === "When" && _case.guard(input) === true) {
|
|
@@ -81,13 +81,14 @@ class CounterKeyType<A extends (number | bigint)> implements MetricKeyType.Metri
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
const FrequencyKeyTypeHash = Hash.string(FrequencyKeyTypeSymbolKey)
|
|
85
|
+
|
|
84
86
|
/** @internal */
|
|
85
87
|
class FrequencyKeyType implements MetricKeyType.MetricKeyType.Frequency {
|
|
86
88
|
readonly [MetricKeyTypeTypeId] = metricKeyTypeVariance
|
|
87
|
-
readonly [FrequencyKeyTypeTypeId]: MetricKeyType.FrequencyKeyTypeTypeId = FrequencyKeyTypeTypeId
|
|
88
|
-
readonly _hash = Hash.string(FrequencyKeyTypeSymbolKey);
|
|
89
|
+
readonly [FrequencyKeyTypeTypeId]: MetricKeyType.FrequencyKeyTypeTypeId = FrequencyKeyTypeTypeId;
|
|
89
90
|
[Hash.symbol](): number {
|
|
90
|
-
return
|
|
91
|
+
return FrequencyKeyTypeHash
|
|
91
92
|
}
|
|
92
93
|
[Equal.symbol](that: unknown): boolean {
|
|
93
94
|
return isFrequencyKey(that)
|
|
@@ -97,14 +98,15 @@ class FrequencyKeyType implements MetricKeyType.MetricKeyType.Frequency {
|
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
|
|
101
|
+
const GaugeKeyTypeHash = Hash.string(GaugeKeyTypeSymbolKey)
|
|
102
|
+
|
|
100
103
|
/** @internal */
|
|
101
104
|
class GaugeKeyType<A extends (number | bigint)> implements MetricKeyType.MetricKeyType.Gauge<A> {
|
|
102
105
|
readonly [MetricKeyTypeTypeId] = metricKeyTypeVariance
|
|
103
106
|
readonly [GaugeKeyTypeTypeId]: MetricKeyType.GaugeKeyTypeTypeId = GaugeKeyTypeTypeId
|
|
104
107
|
constructor(readonly bigint: boolean) {}
|
|
105
|
-
readonly _hash = Hash.string(GaugeKeyTypeSymbolKey);
|
|
106
108
|
[Hash.symbol](): number {
|
|
107
|
-
return
|
|
109
|
+
return GaugeKeyTypeHash
|
|
108
110
|
}
|
|
109
111
|
[Equal.symbol](that: unknown): boolean {
|
|
110
112
|
return isGaugeKey(that)
|
|
@@ -64,14 +64,14 @@ export const collectAll = <R, E, Out>(
|
|
|
64
64
|
|
|
65
65
|
/** @internal */
|
|
66
66
|
export const launch = dual<
|
|
67
|
-
<
|
|
68
|
-
schedule: Schedule.Schedule<
|
|
67
|
+
<A2, R2>(
|
|
68
|
+
schedule: Schedule.Schedule<A2, unknown, R2>
|
|
69
69
|
) => <Type, In, R, E, Out>(
|
|
70
70
|
self: MetricPolling.MetricPolling<Type, In, R, E, Out>
|
|
71
71
|
) => Effect.Effect<Fiber.Fiber<A2, E>, never, R | R2 | Scope.Scope>,
|
|
72
|
-
<Type, In, R, E, Out,
|
|
72
|
+
<Type, In, R, E, Out, A2, R2>(
|
|
73
73
|
self: MetricPolling.MetricPolling<Type, In, R, E, Out>,
|
|
74
|
-
schedule: Schedule.Schedule<
|
|
74
|
+
schedule: Schedule.Schedule<A2, unknown, R2>
|
|
75
75
|
) => Effect.Effect<Fiber.Fiber<A2, E>, never, R | R2 | Scope.Scope>
|
|
76
76
|
>(2, (self, schedule) =>
|
|
77
77
|
pipe(
|
|
@@ -92,14 +92,14 @@ export const pollAndUpdate = <Type, In, R, E, Out>(
|
|
|
92
92
|
|
|
93
93
|
/** @internal */
|
|
94
94
|
export const retry = dual<
|
|
95
|
-
<
|
|
96
|
-
policy: Schedule.Schedule<
|
|
95
|
+
<X, E, R2>(
|
|
96
|
+
policy: Schedule.Schedule<X, E, R2>
|
|
97
97
|
) => <Type, In, R, Out>(
|
|
98
98
|
self: MetricPolling.MetricPolling<Type, In, R, E, Out>
|
|
99
99
|
) => MetricPolling.MetricPolling<Type, In, R | R2, E, Out>,
|
|
100
|
-
<Type, In, R,
|
|
100
|
+
<Type, In, R, E, Out, X, R2>(
|
|
101
101
|
self: MetricPolling.MetricPolling<Type, In, R, E, Out>,
|
|
102
|
-
policy: Schedule.Schedule<
|
|
102
|
+
policy: Schedule.Schedule<X, E, R2>
|
|
103
103
|
) => MetricPolling.MetricPolling<Type, In, R | R2, E, Out>
|
|
104
104
|
>(2, (self, policy) => ({
|
|
105
105
|
[MetricPollingTypeId]: MetricPollingTypeId,
|
|
@@ -68,7 +68,8 @@ class CounterState<A extends (number | bigint)> implements MetricState.MetricSta
|
|
|
68
68
|
[Hash.symbol](): number {
|
|
69
69
|
return pipe(
|
|
70
70
|
Hash.hash(CounterStateSymbolKey),
|
|
71
|
-
Hash.combine(Hash.hash(this.count))
|
|
71
|
+
Hash.combine(Hash.hash(this.count)),
|
|
72
|
+
Hash.cached(this)
|
|
72
73
|
)
|
|
73
74
|
}
|
|
74
75
|
[Equal.symbol](that: unknown): boolean {
|
|
@@ -88,14 +89,11 @@ class FrequencyState implements MetricState.MetricState.Frequency {
|
|
|
88
89
|
constructor(readonly occurrences: ReadonlyMap<string, number>) {}
|
|
89
90
|
_hash: number | undefined;
|
|
90
91
|
[Hash.symbol](): number {
|
|
91
|
-
|
|
92
|
-
return this._hash
|
|
93
|
-
}
|
|
94
|
-
this._hash = pipe(
|
|
92
|
+
return pipe(
|
|
95
93
|
Hash.string(FrequencyStateSymbolKey),
|
|
96
|
-
Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.occurrences.entries())))
|
|
94
|
+
Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.occurrences.entries()))),
|
|
95
|
+
Hash.cached(this)
|
|
97
96
|
)
|
|
98
|
-
return this._hash
|
|
99
97
|
}
|
|
100
98
|
[Equal.symbol](that: unknown): boolean {
|
|
101
99
|
return isFrequencyState(that) && arrayEquals(
|
|
@@ -116,7 +114,8 @@ class GaugeState<A extends (number | bigint)> implements MetricState.MetricState
|
|
|
116
114
|
[Hash.symbol](): number {
|
|
117
115
|
return pipe(
|
|
118
116
|
Hash.hash(GaugeStateSymbolKey),
|
|
119
|
-
Hash.combine(Hash.hash(this.value))
|
|
117
|
+
Hash.combine(Hash.hash(this.value)),
|
|
118
|
+
Hash.cached(this)
|
|
120
119
|
)
|
|
121
120
|
}
|
|
122
121
|
[Equal.symbol](u: unknown): boolean {
|
|
@@ -145,7 +144,8 @@ export class HistogramState implements MetricState.MetricState.Histogram {
|
|
|
145
144
|
Hash.combine(Hash.hash(this.count)),
|
|
146
145
|
Hash.combine(Hash.hash(this.min)),
|
|
147
146
|
Hash.combine(Hash.hash(this.max)),
|
|
148
|
-
Hash.combine(Hash.hash(this.sum))
|
|
147
|
+
Hash.combine(Hash.hash(this.sum)),
|
|
148
|
+
Hash.cached(this)
|
|
149
149
|
)
|
|
150
150
|
}
|
|
151
151
|
[Equal.symbol](that: unknown): boolean {
|
|
@@ -181,7 +181,8 @@ export class SummaryState implements MetricState.MetricState.Summary {
|
|
|
181
181
|
Hash.combine(Hash.hash(this.count)),
|
|
182
182
|
Hash.combine(Hash.hash(this.min)),
|
|
183
183
|
Hash.combine(Hash.hash(this.max)),
|
|
184
|
-
Hash.combine(Hash.hash(this.sum))
|
|
184
|
+
Hash.combine(Hash.hash(this.sum)),
|
|
185
|
+
Hash.cached(this)
|
|
185
186
|
)
|
|
186
187
|
}
|
|
187
188
|
[Equal.symbol](that: unknown): boolean {
|
package/src/internal/metric.ts
CHANGED
|
@@ -425,12 +425,12 @@ export const trackDurationWith = dual<
|
|
|
425
425
|
export const trackError = dual<
|
|
426
426
|
<Type, In, Out>(
|
|
427
427
|
metric: Metric.Metric<Type, In, Out>
|
|
428
|
-
) => <
|
|
429
|
-
<
|
|
428
|
+
) => <A, E extends In, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
|
|
429
|
+
<A, E extends In, R, Type, In, Out>(
|
|
430
430
|
self: Effect.Effect<A, E, R>,
|
|
431
431
|
metric: Metric.Metric<Type, In, Out>
|
|
432
432
|
) => Effect.Effect<A, E, R>
|
|
433
|
-
>(2, <
|
|
433
|
+
>(2, <A, E extends In, R, Type, In, Out>(
|
|
434
434
|
self: Effect.Effect<A, E, R>,
|
|
435
435
|
metric: Metric.Metric<Type, In, Out>
|
|
436
436
|
) => trackErrorWith(self, metric, (a: In) => a))
|
|
@@ -440,13 +440,13 @@ export const trackErrorWith = dual<
|
|
|
440
440
|
<Type, In, Out, In2>(
|
|
441
441
|
metric: Metric.Metric<Type, In, Out>,
|
|
442
442
|
f: (error: In2) => In
|
|
443
|
-
) => <
|
|
444
|
-
<
|
|
443
|
+
) => <A, E extends In2, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
|
|
444
|
+
<A, E extends In2, R, Type, In, Out, In2>(
|
|
445
445
|
self: Effect.Effect<A, E, R>,
|
|
446
446
|
metric: Metric.Metric<Type, In, Out>,
|
|
447
447
|
f: (error: In2) => In
|
|
448
448
|
) => Effect.Effect<A, E, R>
|
|
449
|
-
>(3, <
|
|
449
|
+
>(3, <A, E extends In2, R, Type, In, Out, In2>(
|
|
450
450
|
self: Effect.Effect<A, E, R>,
|
|
451
451
|
metric: Metric.Metric<Type, In, Out>,
|
|
452
452
|
f: (error: In2) => In
|
package/src/internal/option.ts
CHANGED
|
@@ -31,7 +31,7 @@ const SomeProto = Object.assign(Object.create(CommonProto), {
|
|
|
31
31
|
return isOption(that) && isSome(that) && Equal.equals(that.value, this.value)
|
|
32
32
|
},
|
|
33
33
|
[Hash.symbol]<A>(this: Option.Some<A>) {
|
|
34
|
-
return Hash.combine(Hash.hash(this._tag))(Hash.hash(this.value))
|
|
34
|
+
return Hash.cached(this, Hash.combine(Hash.hash(this._tag))(Hash.hash(this.value)))
|
|
35
35
|
},
|
|
36
36
|
toJSON<A>(this: Option.Some<A>) {
|
|
37
37
|
return {
|
package/src/internal/pool.ts
CHANGED
|
@@ -155,7 +155,8 @@ class PoolImpl<in out A, in out E> implements Pool.Pool<A, E> {
|
|
|
155
155
|
Hash.combine(Hash.hash(this.state)),
|
|
156
156
|
Hash.combine(Hash.hash(this.items)),
|
|
157
157
|
Hash.combine(Hash.hash(this.invalidated)),
|
|
158
|
-
Hash.combine(Hash.hash(this.track))
|
|
158
|
+
Hash.combine(Hash.hash(this.track)),
|
|
159
|
+
Hash.cached(this)
|
|
159
160
|
)
|
|
160
161
|
}
|
|
161
162
|
|
|
@@ -33,12 +33,12 @@ const redBlackTreeVariance = {
|
|
|
33
33
|
|
|
34
34
|
const RedBlackTreeProto: RBT.RedBlackTree<unknown, unknown> = {
|
|
35
35
|
[RedBlackTreeTypeId]: redBlackTreeVariance,
|
|
36
|
-
[Hash.symbol](): number {
|
|
36
|
+
[Hash.symbol](this: RBT.RedBlackTree<unknown, unknown>): number {
|
|
37
37
|
let hash = Hash.hash(RedBlackTreeSymbolKey)
|
|
38
38
|
for (const item of this) {
|
|
39
39
|
hash ^= pipe(Hash.hash(item[0]), Hash.combine(Hash.hash(item[1])))
|
|
40
40
|
}
|
|
41
|
-
return hash
|
|
41
|
+
return Hash.cached(this, hash)
|
|
42
42
|
},
|
|
43
43
|
[Equal.symbol]<K, V>(this: RedBlackTreeImpl<K, V>, that: unknown): boolean {
|
|
44
44
|
if (isRedBlackTree(that)) {
|
|
@@ -25,11 +25,11 @@ const reloadableVariance = {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
/** @internal */
|
|
28
|
-
export const auto = <Out extends Context.Tag<any, any>,
|
|
28
|
+
export const auto = <Out extends Context.Tag<any, any>, E, In, R>(
|
|
29
29
|
tag: Out,
|
|
30
30
|
options: {
|
|
31
31
|
readonly layer: Layer.Layer<Context.Tag.Identifier<Out>, E, In>
|
|
32
|
-
readonly schedule: Schedule.Schedule<
|
|
32
|
+
readonly schedule: Schedule.Schedule<unknown, unknown, R>
|
|
33
33
|
}
|
|
34
34
|
): Layer.Layer<Reloadable.Reloadable<Context.Tag.Identifier<Out>>, E, R | In> =>
|
|
35
35
|
_layer.scoped(
|
|
@@ -52,11 +52,11 @@ export const auto = <Out extends Context.Tag<any, any>, In, E, R>(
|
|
|
52
52
|
)
|
|
53
53
|
|
|
54
54
|
/** @internal */
|
|
55
|
-
export const autoFromConfig = <Out extends Context.Tag<any, any>,
|
|
55
|
+
export const autoFromConfig = <Out extends Context.Tag<any, any>, E, In, R>(
|
|
56
56
|
tag: Out,
|
|
57
57
|
options: {
|
|
58
58
|
readonly layer: Layer.Layer<Context.Tag.Identifier<Out>, E, In>
|
|
59
|
-
readonly scheduleFromConfig: (context: Context.Context<In>) => Schedule.Schedule<
|
|
59
|
+
readonly scheduleFromConfig: (context: Context.Context<In>) => Schedule.Schedule<unknown, unknown, R>
|
|
60
60
|
}
|
|
61
61
|
): Layer.Layer<Reloadable.Reloadable<Context.Tag.Identifier<Out>>, E, R | In> =>
|
|
62
62
|
_layer.scoped(
|
package/src/internal/resource.ts
CHANGED
|
@@ -24,9 +24,9 @@ const resourceVariance = {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/** @internal */
|
|
27
|
-
export const auto = <A, E, R,
|
|
27
|
+
export const auto = <A, E, R, Out, R2>(
|
|
28
28
|
acquire: Effect.Effect<A, E, R>,
|
|
29
|
-
policy: Schedule.Schedule<
|
|
29
|
+
policy: Schedule.Schedule<Out, unknown, R2>
|
|
30
30
|
): Effect.Effect<Resource.Resource<A, E>, never, R | R2 | Scope.Scope> =>
|
|
31
31
|
core.tap(manual(acquire), (manual) =>
|
|
32
32
|
fiberRuntime.acquireRelease(
|
package/src/internal/runtime.ts
CHANGED
|
@@ -22,6 +22,7 @@ import * as core from "./core.js"
|
|
|
22
22
|
import * as executionStrategy from "./executionStrategy.js"
|
|
23
23
|
import * as FiberRuntime from "./fiberRuntime.js"
|
|
24
24
|
import * as fiberScope from "./fiberScope.js"
|
|
25
|
+
import { internalize } from "./internalize.js"
|
|
25
26
|
import * as OpCodes from "./opCodes/effect.js"
|
|
26
27
|
import * as runtimeFlags from "./runtimeFlags.js"
|
|
27
28
|
import * as _supervisor from "./supervisor.js"
|
|
@@ -450,22 +451,34 @@ export const unsafeRunSyncExitEffect = unsafeRunSyncExit(defaultRuntime)
|
|
|
450
451
|
// circular with Effect
|
|
451
452
|
|
|
452
453
|
/** @internal */
|
|
453
|
-
export const asyncEffect = <A, E, R,
|
|
454
|
-
register: (
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
454
|
+
export const asyncEffect = <A, E, R, R3, E2, R2>(
|
|
455
|
+
register: (
|
|
456
|
+
callback: (_: Effect.Effect<A, E, R>) => void
|
|
457
|
+
) => Effect.Effect<Effect.Effect<void, never, R3> | void, E2, R2>
|
|
458
|
+
): Effect.Effect<A, E | E2, R | R2 | R3> =>
|
|
459
|
+
core.suspend(() => {
|
|
460
|
+
internalize(register)
|
|
461
|
+
let cleanup: Effect.Effect<void, never, R3> | void = undefined
|
|
462
|
+
return core.flatMap(
|
|
463
|
+
core.deferredMake<A, E | E2>(),
|
|
464
|
+
(deferred) =>
|
|
465
|
+
core.flatMap(runtime<R | R2 | R3>(), (runtime) =>
|
|
466
|
+
core.uninterruptibleMask((restore) =>
|
|
467
|
+
core.zipRight(
|
|
468
|
+
FiberRuntime.fork(restore(
|
|
469
|
+
core.matchCauseEffect(
|
|
470
|
+
register((cb) => unsafeRunCallback(runtime)(core.intoDeferred(cb, deferred))),
|
|
471
|
+
{
|
|
472
|
+
onFailure: (cause) => core.deferredFailCause(deferred, cause),
|
|
473
|
+
onSuccess: (cleanup_) => {
|
|
474
|
+
cleanup = cleanup_
|
|
475
|
+
return core.unit
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
)
|
|
479
|
+
)),
|
|
480
|
+
restore(core.onInterrupt(core.deferredAwait(deferred), () => cleanup ?? core.unit))
|
|
481
|
+
)
|
|
482
|
+
))
|
|
483
|
+
)
|
|
484
|
+
})
|