effect 2.4.19 → 3.0.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/Array/package.json +6 -0
- package/FiberHandle/package.json +6 -0
- package/Record/package.json +6 -0
- package/dist/cjs/{ReadonlyArray.js → Array.js} +46 -23
- package/dist/cjs/Array.js.map +1 -0
- package/dist/cjs/Brand.js +2 -2
- package/dist/cjs/Brand.js.map +1 -1
- package/dist/cjs/Channel.js +4 -8
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/Chunk.js +5 -1
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/ConfigError.js.map +1 -1
- package/dist/cjs/Cron.js +13 -13
- package/dist/cjs/Cron.js.map +1 -1
- package/dist/cjs/Effect.js +14 -10
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +4 -1
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/ExecutionStrategy.js.map +1 -1
- package/dist/cjs/Exit.js +3 -9
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js +2 -8
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/FiberHandle.js +288 -0
- package/dist/cjs/FiberHandle.js.map +1 -0
- package/dist/cjs/FiberMap.js +86 -27
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberRefs.js.map +1 -1
- package/dist/cjs/FiberSet.js +51 -15
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/HashSet.js.map +1 -1
- package/dist/cjs/Iterable.js +40 -5
- package/dist/cjs/Iterable.js.map +1 -1
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/List.js +3 -3
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/Metric.js +3 -1
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/MetricKey.js.map +1 -1
- package/dist/cjs/MetricKeyType.js.map +1 -1
- package/dist/cjs/MutableHashMap.js +0 -4
- package/dist/cjs/MutableHashMap.js.map +1 -1
- package/dist/cjs/Option.js +3 -6
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/{ReadonlyRecord.js → Record.js} +29 -29
- package/dist/cjs/Record.js.map +1 -0
- package/dist/cjs/STM.js +4 -10
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js +2 -2
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/ScopedCache.js.map +1 -1
- package/dist/cjs/Stream.js +3 -9
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/StreamHaltStrategy.js +2 -0
- package/dist/cjs/StreamHaltStrategy.js.map +1 -1
- package/dist/cjs/String.js +44 -2
- package/dist/cjs/String.js.map +1 -1
- package/dist/cjs/TestAnnotations.js +1 -1
- package/dist/cjs/TestAnnotations.js.map +1 -1
- package/dist/cjs/TestClock.js +3 -3
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/Tracer.js.map +1 -1
- package/dist/cjs/index.js +8 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/{readonlyArray.js → array.js} +1 -1
- package/dist/cjs/internal/array.js.map +1 -0
- package/dist/cjs/internal/cache.js +3 -3
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/cause.js +3 -3
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js +15 -15
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/channelState.js +1 -1
- package/dist/cjs/internal/channel/channelState.js.map +1 -1
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js +1 -1
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/internal/channel.js +10 -10
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js +2 -2
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/configError.js +20 -19
- package/dist/cjs/internal/configError.js.map +1 -1
- package/dist/cjs/internal/configProvider/pathPatch.js +1 -1
- package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +46 -47
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +42 -28
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core-stream.js +2 -3
- package/dist/cjs/internal/core-stream.js.map +1 -1
- package/dist/cjs/internal/core.js +27 -31
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/dataSource.js +19 -2
- package/dist/cjs/internal/dataSource.js.map +1 -1
- package/dist/cjs/internal/differ/readonlyArrayPatch.js +6 -6
- package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +1 -1
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/executionStrategy.js +4 -4
- package/dist/cjs/internal/executionStrategy.js.map +1 -1
- package/dist/cjs/internal/fiber.js +5 -6
- package/dist/cjs/internal/fiber.js.map +1 -1
- package/dist/cjs/internal/fiberRefs/patch.js +1 -1
- package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
- package/dist/cjs/internal/fiberRefs.js +1 -1
- package/dist/cjs/internal/fiberRefs.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +33 -33
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js +3 -3
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/hashSet.js.map +1 -1
- package/dist/cjs/internal/layer/circular.js.map +1 -1
- package/dist/cjs/internal/layer.js +5 -5
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logger.js +28 -8
- package/dist/cjs/internal/logger.js.map +1 -1
- package/dist/cjs/internal/managedRuntime.js +1 -1
- package/dist/cjs/internal/managedRuntime.js.map +1 -1
- package/dist/cjs/internal/metric/boundaries.js +4 -4
- package/dist/cjs/internal/metric/boundaries.js.map +1 -1
- package/dist/cjs/internal/metric/hook.js +20 -17
- package/dist/cjs/internal/metric/hook.js.map +1 -1
- package/dist/cjs/internal/metric/key.js +4 -4
- package/dist/cjs/internal/metric/key.js.map +1 -1
- package/dist/cjs/internal/metric/keyType.js +6 -1
- package/dist/cjs/internal/metric/keyType.js.map +1 -1
- package/dist/cjs/internal/metric/state.js +4 -4
- package/dist/cjs/internal/metric/state.js.map +1 -1
- package/dist/cjs/internal/metric.js +4 -4
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/pool.js +11 -11
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +5 -5
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/query.js +2 -2
- package/dist/cjs/internal/query.js.map +1 -1
- package/dist/cjs/internal/queue.js +9 -9
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/rateLimiter.js +1 -1
- package/dist/cjs/internal/rateLimiter.js.map +1 -1
- package/dist/cjs/internal/redBlackTree/iterator.js +2 -2
- package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
- package/dist/cjs/internal/reloadable.js +1 -1
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/runtime.js +4 -4
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js +5 -5
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/scopedCache.js +7 -7
- package/dist/cjs/internal/scopedCache.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js +4 -4
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/secret.js +2 -2
- package/dist/cjs/internal/secret.js.map +1 -1
- package/dist/cjs/internal/sink.js +10 -10
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tExit.js +2 -4
- package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js +11 -11
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stm/tMap.js +3 -3
- package/dist/cjs/internal/stm/tMap.js.map +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js +11 -11
- package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js +3 -3
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js +3 -3
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tSet.js +1 -1
- package/dist/cjs/internal/stm/tSet.js.map +1 -1
- package/dist/cjs/internal/stream/haltStrategy.js +5 -5
- package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
- package/dist/cjs/internal/stream.js +84 -85
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/supervisor.js +1 -1
- package/dist/cjs/internal/supervisor.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/tracer.js.map +1 -1
- package/dist/cjs/internal/trie.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/cjs/internal/version.js.map +1 -1
- package/dist/dts/{ReadonlyArray.d.ts → Array.d.ts} +39 -18
- package/dist/dts/Array.d.ts.map +1 -0
- package/dist/dts/BigDecimal.d.ts.map +1 -1
- package/dist/dts/BigInt.d.ts.map +1 -1
- package/dist/dts/Brand.d.ts +1 -19
- package/dist/dts/Brand.d.ts.map +1 -1
- package/dist/dts/Cache.d.ts +10 -10
- package/dist/dts/Cache.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 +6 -4
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +1 -4
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/ConfigError.d.ts +7 -6
- package/dist/dts/ConfigError.d.ts.map +1 -1
- package/dist/dts/Cron.d.ts +0 -5
- package/dist/dts/Cron.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +38 -33
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +5 -2
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Encoding.d.ts.map +1 -1
- package/dist/dts/Equivalence.d.ts.map +1 -1
- package/dist/dts/ExecutionStrategy.d.ts +10 -2
- package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +4 -3
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/Fiber.d.ts +4 -2
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberHandle.d.ts +189 -0
- package/dist/dts/FiberHandle.d.ts.map +1 -0
- package/dist/dts/FiberMap.d.ts +48 -12
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberRefs.d.ts +1 -1
- package/dist/dts/FiberRefs.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +9 -5
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/Function.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +1 -1
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +0 -1
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/HashSet.d.ts +0 -1
- package/dist/dts/HashSet.d.ts.map +1 -1
- package/dist/dts/Iterable.d.ts +12 -5
- package/dist/dts/Iterable.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +6 -6
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/List.d.ts +0 -11
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +2 -2
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +7 -2
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricKey.d.ts +4 -1
- package/dist/dts/MetricKey.d.ts.map +1 -1
- package/dist/dts/MetricKeyType.d.ts +4 -1
- package/dist/dts/MetricKeyType.d.ts.map +1 -1
- package/dist/dts/MutableHashMap.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +5 -3
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/{ReadonlyRecord.d.ts → Record.d.ts} +29 -30
- package/dist/dts/Record.d.ts.map +1 -0
- package/dist/dts/Request.d.ts +1 -1
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +2 -2
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +6 -4
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +1 -1
- 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/SortedMap.d.ts.map +1 -1
- package/dist/dts/SortedSet.d.ts +1 -1
- package/dist/dts/SortedSet.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +8 -6
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/StreamHaltStrategy.d.ts +14 -2
- package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
- package/dist/dts/String.d.ts +25 -1
- package/dist/dts/String.d.ts.map +1 -1
- package/dist/dts/Subscribable.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
- package/dist/dts/TestAnnotations.d.ts +0 -3
- package/dist/dts/TestAnnotations.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts.map +1 -1
- package/dist/dts/TestLive.d.ts.map +1 -1
- package/dist/dts/TestServices.d.ts.map +1 -1
- package/dist/dts/TestSized.d.ts.map +1 -1
- package/dist/dts/Tracer.d.ts +12 -5
- package/dist/dts/Tracer.d.ts.map +1 -1
- package/dist/dts/Trie.d.ts +1 -1
- package/dist/dts/Trie.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +0 -7
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/index.d.ts +11 -7
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/array.d.ts +5 -0
- package/dist/dts/internal/array.d.ts.map +1 -0
- package/dist/dts/internal/core-stream.d.ts +4 -0
- package/dist/dts/internal/core-stream.d.ts.map +1 -1
- package/dist/dts/internal/core.d.ts +3 -1
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/fiber.d.ts +5 -1
- package/dist/dts/internal/fiber.d.ts.map +1 -1
- package/dist/dts/internal/hashMap.d.ts.map +1 -1
- package/dist/dts/internal/logger.d.ts.map +1 -1
- package/dist/dts/internal/metric/keyType.d.ts +3 -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/random.d.ts.map +1 -1
- package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
- package/dist/dts/internal/stm/stm/tExit.d.ts +4 -1
- package/dist/dts/internal/stm/stm/tExit.d.ts.map +1 -1
- package/dist/dts/internal/stm/stm.d.ts +3 -0
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/dts/internal/stream.d.ts +5 -1
- package/dist/dts/internal/stream.d.ts.map +1 -1
- package/dist/esm/{ReadonlyArray.js → Array.js} +42 -20
- package/dist/esm/Array.js.map +1 -0
- package/dist/esm/Brand.js +2 -2
- package/dist/esm/Brand.js.map +1 -1
- package/dist/esm/Channel.js +4 -2
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Chunk.js +4 -1
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/ConfigError.js.map +1 -1
- package/dist/esm/Cron.js +13 -13
- package/dist/esm/Cron.js.map +1 -1
- package/dist/esm/Effect.js +11 -2
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +4 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/ExecutionStrategy.js.map +1 -1
- package/dist/esm/Exit.js +4 -2
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/Fiber.js +3 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/FiberHandle.js +247 -0
- package/dist/esm/FiberHandle.js.map +1 -0
- package/dist/esm/FiberMap.js +85 -26
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/FiberRefs.js.map +1 -1
- package/dist/esm/FiberSet.js +51 -15
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/HashSet.js.map +1 -1
- package/dist/esm/Iterable.js +39 -4
- package/dist/esm/Iterable.js.map +1 -1
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/List.js +3 -3
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/Metric.js +3 -1
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/MetricKey.js.map +1 -1
- package/dist/esm/MetricKeyType.js.map +1 -1
- package/dist/esm/MutableHashMap.js +0 -3
- package/dist/esm/MutableHashMap.js.map +1 -1
- package/dist/esm/Option.js +4 -2
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/{ReadonlyRecord.js → Record.js} +29 -29
- package/dist/esm/Record.js.map +1 -0
- package/dist/esm/STM.js +5 -3
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/ScopedCache.js.map +1 -1
- package/dist/esm/Stream.js +5 -3
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/StreamHaltStrategy.js +2 -0
- package/dist/esm/StreamHaltStrategy.js.map +1 -1
- package/dist/esm/String.js +37 -1
- package/dist/esm/String.js.map +1 -1
- package/dist/esm/TestAnnotations.js +1 -1
- package/dist/esm/TestAnnotations.js.map +1 -1
- package/dist/esm/TestClock.js +3 -3
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/Tracer.js.map +1 -1
- package/dist/esm/index.js +11 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/{readonlyArray.js → array.js} +1 -1
- package/dist/esm/internal/array.js.map +1 -0
- package/dist/esm/internal/cache.js +3 -3
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/cause.js +3 -3
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js +15 -15
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel/channelState.js +1 -1
- package/dist/esm/internal/channel/channelState.js.map +1 -1
- package/dist/esm/internal/channel/singleProducerAsyncInput.js +1 -1
- package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/esm/internal/channel.js +8 -8
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/clock.js +2 -2
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/configError.js +20 -19
- package/dist/esm/internal/configError.js.map +1 -1
- package/dist/esm/internal/configProvider/pathPatch.js +1 -1
- package/dist/esm/internal/configProvider/pathPatch.js.map +1 -1
- package/dist/esm/internal/configProvider.js +46 -47
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/core-effect.js +39 -26
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core-stream.js +3 -2
- package/dist/esm/internal/core-stream.js.map +1 -1
- package/dist/esm/internal/core.js +24 -26
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/dataSource.js +19 -2
- package/dist/esm/internal/dataSource.js.map +1 -1
- package/dist/esm/internal/differ/readonlyArrayPatch.js +6 -6
- package/dist/esm/internal/differ/readonlyArrayPatch.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +1 -1
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/executionStrategy.js +4 -4
- package/dist/esm/internal/executionStrategy.js.map +1 -1
- package/dist/esm/internal/fiber.js +6 -5
- package/dist/esm/internal/fiber.js.map +1 -1
- package/dist/esm/internal/fiberRefs/patch.js +1 -1
- package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
- package/dist/esm/internal/fiberRefs.js +1 -1
- package/dist/esm/internal/fiberRefs.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +33 -33
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js +3 -3
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/hashMap.js.map +1 -1
- package/dist/esm/internal/hashSet.js.map +1 -1
- package/dist/esm/internal/layer/circular.js.map +1 -1
- package/dist/esm/internal/layer.js +5 -5
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/logger.js +28 -8
- package/dist/esm/internal/logger.js.map +1 -1
- package/dist/esm/internal/managedRuntime.js +1 -1
- package/dist/esm/internal/managedRuntime.js.map +1 -1
- package/dist/esm/internal/metric/boundaries.js +4 -4
- package/dist/esm/internal/metric/boundaries.js.map +1 -1
- package/dist/esm/internal/metric/hook.js +20 -17
- package/dist/esm/internal/metric/hook.js.map +1 -1
- package/dist/esm/internal/metric/key.js +4 -4
- package/dist/esm/internal/metric/key.js.map +1 -1
- package/dist/esm/internal/metric/keyType.js +5 -1
- package/dist/esm/internal/metric/keyType.js.map +1 -1
- package/dist/esm/internal/metric/state.js +4 -4
- package/dist/esm/internal/metric/state.js.map +1 -1
- package/dist/esm/internal/metric.js +4 -4
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/pool.js +11 -11
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/pubsub.js +5 -5
- package/dist/esm/internal/pubsub.js.map +1 -1
- package/dist/esm/internal/query.js +2 -2
- package/dist/esm/internal/query.js.map +1 -1
- package/dist/esm/internal/queue.js +9 -9
- package/dist/esm/internal/queue.js.map +1 -1
- package/dist/esm/internal/rateLimiter.js +1 -1
- package/dist/esm/internal/rateLimiter.js.map +1 -1
- package/dist/esm/internal/redBlackTree/iterator.js +2 -2
- package/dist/esm/internal/redBlackTree/iterator.js.map +1 -1
- package/dist/esm/internal/reloadable.js +1 -1
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/runtime.js +4 -4
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js +3 -3
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/scopedCache.js +7 -7
- package/dist/esm/internal/scopedCache.js.map +1 -1
- package/dist/esm/internal/scopedRef.js +4 -4
- package/dist/esm/internal/scopedRef.js.map +1 -1
- package/dist/esm/internal/secret.js +2 -2
- package/dist/esm/internal/secret.js.map +1 -1
- package/dist/esm/internal/sink.js +10 -10
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/stm/tExit.js +3 -2
- package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
- package/dist/esm/internal/stm/stm.js +11 -9
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stm/tMap.js +3 -3
- package/dist/esm/internal/stm/tMap.js.map +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js +11 -11
- package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/esm/internal/stm/tPubSub.js +3 -3
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js +3 -3
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tSet.js +1 -1
- package/dist/esm/internal/stm/tSet.js.map +1 -1
- package/dist/esm/internal/stream/haltStrategy.js +5 -5
- package/dist/esm/internal/stream/haltStrategy.js.map +1 -1
- package/dist/esm/internal/stream.js +85 -84
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/supervisor.js +1 -1
- package/dist/esm/internal/supervisor.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/tracer.js.map +1 -1
- package/dist/esm/internal/trie.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/dist/esm/internal/version.js.map +1 -1
- package/package.json +23 -15
- package/src/{ReadonlyArray.ts → Array.ts} +47 -24
- package/src/Brand.ts +3 -3
- package/src/Cache.ts +12 -10
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +12 -9
- package/src/Chunk.ts +3 -3
- package/src/ConfigError.ts +7 -6
- package/src/Cron.ts +17 -17
- package/src/Effect.ts +46 -57
- package/src/Either.ts +7 -7
- package/src/ExecutionStrategy.ts +10 -2
- package/src/Exit.ts +11 -9
- package/src/Fiber.ts +11 -8
- package/src/FiberHandle.ts +414 -0
- package/src/FiberMap.ts +181 -73
- package/src/FiberRefs.ts +1 -1
- package/src/FiberSet.ts +96 -36
- package/src/GroupBy.ts +1 -1
- package/src/HashMap.ts +0 -1
- package/src/HashSet.ts +0 -1
- package/src/Iterable.ts +48 -10
- package/src/Layer.ts +6 -6
- package/src/List.ts +3 -4
- package/src/Logger.ts +2 -2
- package/src/Metric.ts +9 -2
- package/src/MetricKey.ts +9 -1
- package/src/MetricKeyType.ts +6 -1
- package/src/MutableHashMap.ts +1 -1
- package/src/Option.ts +9 -6
- package/src/{ReadonlyRecord.ts → Record.ts} +28 -29
- package/src/Request.ts +1 -1
- package/src/RequestResolver.ts +4 -4
- package/src/STM.ts +12 -9
- package/src/Schedule.ts +1 -1
- package/src/ScopedCache.ts +11 -9
- package/src/SortedSet.ts +1 -1
- package/src/Stream.ts +14 -11
- package/src/StreamHaltStrategy.ts +14 -2
- package/src/String.ts +45 -2
- package/src/TestAnnotations.ts +1 -1
- package/src/TestClock.ts +3 -3
- package/src/Tracer.ts +13 -5
- package/src/Trie.ts +1 -1
- package/src/Types.ts +0 -8
- package/src/index.ts +13 -8
- package/src/internal/{readonlyArray.ts → array.ts} +1 -1
- package/src/internal/cache.ts +40 -40
- package/src/internal/cause.ts +5 -6
- package/src/internal/channel/channelExecutor.ts +15 -15
- package/src/internal/channel/channelState.ts +1 -1
- package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
- package/src/internal/channel.ts +11 -11
- package/src/internal/clock.ts +2 -2
- package/src/internal/configError.ts +22 -21
- package/src/internal/configProvider/pathPatch.ts +1 -1
- package/src/internal/configProvider.ts +49 -52
- package/src/internal/core-effect.ts +73 -70
- package/src/internal/core-stream.ts +5 -2
- package/src/internal/core.ts +51 -50
- package/src/internal/dataSource.ts +19 -20
- package/src/internal/differ/readonlyArrayPatch.ts +6 -6
- package/src/internal/effect/circular.ts +2 -2
- package/src/internal/executionStrategy.ts +14 -12
- package/src/internal/fiber.ts +8 -5
- package/src/internal/fiberRefs/patch.ts +1 -1
- package/src/internal/fiberRefs.ts +1 -1
- package/src/internal/fiberRuntime.ts +45 -45
- package/src/internal/groupBy.ts +4 -4
- package/src/internal/hashMap.ts +0 -1
- package/src/internal/hashSet.ts +0 -1
- package/src/internal/layer/circular.ts +2 -2
- package/src/internal/layer.ts +9 -9
- package/src/internal/logger.ts +28 -8
- package/src/internal/managedRuntime.ts +1 -1
- package/src/internal/metric/boundaries.ts +5 -5
- package/src/internal/metric/hook.ts +21 -18
- package/src/internal/metric/key.ts +8 -5
- package/src/internal/metric/keyType.ts +5 -2
- package/src/internal/metric/state.ts +5 -5
- package/src/internal/metric.ts +8 -6
- package/src/internal/pool.ts +11 -11
- package/src/internal/pubsub.ts +6 -6
- package/src/internal/query.ts +4 -4
- package/src/internal/queue.ts +11 -11
- package/src/internal/rateLimiter.ts +1 -1
- package/src/internal/redBlackTree/iterator.ts +2 -2
- package/src/internal/reloadable.ts +1 -1
- package/src/internal/runtime.ts +5 -5
- package/src/internal/schedule.ts +8 -9
- package/src/internal/scopedCache.ts +53 -53
- package/src/internal/scopedRef.ts +4 -4
- package/src/internal/secret.ts +2 -2
- package/src/internal/sink.ts +10 -10
- package/src/internal/stm/stm/tExit.ts +5 -2
- package/src/internal/stm/stm.ts +13 -9
- package/src/internal/stm/tMap.ts +3 -3
- package/src/internal/stm/tPriorityQueue.ts +11 -11
- package/src/internal/stm/tPubSub.ts +3 -3
- package/src/internal/stm/tQueue.ts +3 -3
- package/src/internal/stm/tSet.ts +1 -1
- package/src/internal/stream/haltStrategy.ts +23 -14
- package/src/internal/stream.ts +91 -88
- package/src/internal/supervisor.ts +1 -1
- package/src/internal/take.ts +1 -1
- package/src/internal/tracer.ts +2 -2
- package/src/internal/trie.ts +0 -1
- package/src/internal/version.ts +1 -1
- package/ReadonlyArray/package.json +0 -6
- package/ReadonlyRecord/package.json +0 -6
- package/dist/cjs/ReadonlyArray.js.map +0 -1
- package/dist/cjs/ReadonlyRecord.js.map +0 -1
- package/dist/cjs/internal/Iterable.js +0 -61
- package/dist/cjs/internal/Iterable.js.map +0 -1
- package/dist/cjs/internal/readonlyArray.js.map +0 -1
- package/dist/dts/ReadonlyArray.d.ts.map +0 -1
- package/dist/dts/ReadonlyRecord.d.ts.map +0 -1
- package/dist/dts/internal/Iterable.d.ts +0 -2
- package/dist/dts/internal/Iterable.d.ts.map +0 -1
- package/dist/dts/internal/readonlyArray.d.ts +0 -5
- package/dist/dts/internal/readonlyArray.d.ts.map +0 -1
- package/dist/esm/ReadonlyArray.js.map +0 -1
- package/dist/esm/ReadonlyRecord.js.map +0 -1
- package/dist/esm/internal/Iterable.js +0 -53
- package/dist/esm/internal/Iterable.js.map +0 -1
- package/dist/esm/internal/readonlyArray.js.map +0 -1
- package/src/internal/Iterable.ts +0 -54
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Array from "../../Array.js"
|
|
1
2
|
import * as Duration from "../../Duration.js"
|
|
2
3
|
import type { LazyArg } from "../../Function.js"
|
|
3
4
|
import { dual, pipe } from "../../Function.js"
|
|
@@ -7,7 +8,6 @@ import type * as MetricState from "../../MetricState.js"
|
|
|
7
8
|
import * as number from "../../Number.js"
|
|
8
9
|
import * as Option from "../../Option.js"
|
|
9
10
|
import { pipeArguments } from "../../Pipeable.js"
|
|
10
|
-
import * as ReadonlyArray from "../../ReadonlyArray.js"
|
|
11
11
|
import * as metricState from "./state.js"
|
|
12
12
|
|
|
13
13
|
/** @internal */
|
|
@@ -78,8 +78,11 @@ export const counter = <A extends (number | bigint)>(
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/** @internal */
|
|
81
|
-
export const frequency = (
|
|
81
|
+
export const frequency = (key: MetricKey.MetricKey.Frequency): MetricHook.MetricHook.Frequency => {
|
|
82
82
|
const values = new Map<string, number>()
|
|
83
|
+
for (const word of key.keyType.preregisteredWords) {
|
|
84
|
+
values.set(word, 0)
|
|
85
|
+
}
|
|
83
86
|
const update = (word: string) => {
|
|
84
87
|
const slotCount = values.get(word) ?? 0
|
|
85
88
|
values.set(word, slotCount + 1)
|
|
@@ -120,8 +123,8 @@ export const histogram = (key: MetricKey.MetricKey.Histogram): MetricHook.Metric
|
|
|
120
123
|
|
|
121
124
|
pipe(
|
|
122
125
|
bounds,
|
|
123
|
-
|
|
124
|
-
|
|
126
|
+
Array.sort(number.Order),
|
|
127
|
+
Array.map((n, i) => {
|
|
125
128
|
boundaries[i] = n
|
|
126
129
|
})
|
|
127
130
|
)
|
|
@@ -159,7 +162,7 @@ export const histogram = (key: MetricKey.MetricKey.Histogram): MetricHook.Metric
|
|
|
159
162
|
}
|
|
160
163
|
|
|
161
164
|
const getBuckets = (): ReadonlyArray<readonly [number, number]> => {
|
|
162
|
-
const builder: Array<readonly [number, number]> = Array(size)
|
|
165
|
+
const builder: Array<readonly [number, number]> = Array.allocate(size) as any
|
|
163
166
|
let cumulated = 0
|
|
164
167
|
for (let i = 0; i < size; i++) {
|
|
165
168
|
const boundary = boundaries[i]
|
|
@@ -186,8 +189,8 @@ export const histogram = (key: MetricKey.MetricKey.Histogram): MetricHook.Metric
|
|
|
186
189
|
/** @internal */
|
|
187
190
|
export const summary = (key: MetricKey.MetricKey.Summary): MetricHook.MetricHook.Summary => {
|
|
188
191
|
const { error, maxAge, maxSize, quantiles } = key.keyType
|
|
189
|
-
const sortedQuantiles = pipe(quantiles,
|
|
190
|
-
const values = Array<readonly [number, number]>(maxSize)
|
|
192
|
+
const sortedQuantiles = pipe(quantiles, Array.sort(number.Order))
|
|
193
|
+
const values = Array.allocate<readonly [number, number]>(maxSize)
|
|
191
194
|
|
|
192
195
|
let head = 0
|
|
193
196
|
let count = 0
|
|
@@ -225,7 +228,7 @@ export const summary = (key: MetricKey.MetricKey.Summary): MetricHook.MetricHook
|
|
|
225
228
|
return calculateQuantiles(
|
|
226
229
|
error,
|
|
227
230
|
sortedQuantiles,
|
|
228
|
-
|
|
231
|
+
Array.sort(builder, number.Order)
|
|
229
232
|
)
|
|
230
233
|
}
|
|
231
234
|
|
|
@@ -288,8 +291,8 @@ const calculateQuantiles = (
|
|
|
288
291
|
): ReadonlyArray<readonly [number, Option.Option<number>]> => {
|
|
289
292
|
// The number of samples examined
|
|
290
293
|
const sampleCount = sortedSamples.length
|
|
291
|
-
if (!
|
|
292
|
-
return
|
|
294
|
+
if (!Array.isNonEmptyReadonlyArray(sortedQuantiles)) {
|
|
295
|
+
return Array.empty()
|
|
293
296
|
}
|
|
294
297
|
const head = sortedQuantiles[0]
|
|
295
298
|
const tail = sortedQuantiles.slice(1)
|
|
@@ -301,7 +304,7 @@ const calculateQuantiles = (
|
|
|
301
304
|
head,
|
|
302
305
|
sortedSamples
|
|
303
306
|
)
|
|
304
|
-
const resolved =
|
|
307
|
+
const resolved = Array.of(resolvedHead)
|
|
305
308
|
tail.forEach((quantile) => {
|
|
306
309
|
resolved.push(
|
|
307
310
|
resolveQuantile(
|
|
@@ -314,7 +317,7 @@ const calculateQuantiles = (
|
|
|
314
317
|
)
|
|
315
318
|
)
|
|
316
319
|
})
|
|
317
|
-
return
|
|
320
|
+
return Array.map(resolved, (rq) => [rq.quantile, rq.value] as const)
|
|
318
321
|
}
|
|
319
322
|
|
|
320
323
|
/** @internal */
|
|
@@ -341,7 +344,7 @@ const resolveQuantile = (
|
|
|
341
344
|
// eslint-disable-next-line no-constant-condition
|
|
342
345
|
while (1) {
|
|
343
346
|
// If the remaining list of samples is empty, there is nothing more to resolve
|
|
344
|
-
if (!
|
|
347
|
+
if (!Array.isNonEmptyReadonlyArray(rest_1)) {
|
|
345
348
|
return {
|
|
346
349
|
quantile: quantile_1,
|
|
347
350
|
value: Option.none(),
|
|
@@ -354,14 +357,14 @@ const resolveQuantile = (
|
|
|
354
357
|
if (quantile_1 === 1) {
|
|
355
358
|
return {
|
|
356
359
|
quantile: quantile_1,
|
|
357
|
-
value: Option.some(
|
|
360
|
+
value: Option.some(Array.lastNonEmpty(rest_1)),
|
|
358
361
|
consumed: consumed_1 + rest_1.length,
|
|
359
362
|
rest: []
|
|
360
363
|
}
|
|
361
364
|
}
|
|
362
365
|
// Split into two chunks - the first chunk contains all elements of the same
|
|
363
366
|
// value as the chunk head
|
|
364
|
-
const sameHead =
|
|
367
|
+
const sameHead = Array.span(rest_1, (n) => n <= rest_1[0])
|
|
365
368
|
// How many elements do we want to accept for this quantile
|
|
366
369
|
const desired = quantile_1 * sampleCount_1
|
|
367
370
|
// The error margin
|
|
@@ -375,7 +378,7 @@ const resolveQuantile = (
|
|
|
375
378
|
if (candConsumed < desired - allowedError) {
|
|
376
379
|
error_2 = error_1
|
|
377
380
|
sampleCount_2 = sampleCount_1
|
|
378
|
-
current_2 =
|
|
381
|
+
current_2 = Array.head(rest_1)
|
|
379
382
|
consumed_2 = candConsumed
|
|
380
383
|
quantile_2 = quantile_1
|
|
381
384
|
rest_2 = sameHead[1]
|
|
@@ -403,7 +406,7 @@ const resolveQuantile = (
|
|
|
403
406
|
case "None": {
|
|
404
407
|
error_2 = error_1
|
|
405
408
|
sampleCount_2 = sampleCount_1
|
|
406
|
-
current_2 =
|
|
409
|
+
current_2 = Array.head(rest_1)
|
|
407
410
|
consumed_2 = candConsumed
|
|
408
411
|
quantile_2 = quantile_1
|
|
409
412
|
rest_2 = sameHead[1]
|
|
@@ -420,7 +423,7 @@ const resolveQuantile = (
|
|
|
420
423
|
if (candError < prevError) {
|
|
421
424
|
error_2 = error_1
|
|
422
425
|
sampleCount_2 = sampleCount_1
|
|
423
|
-
current_2 =
|
|
426
|
+
current_2 = Array.head(rest_1)
|
|
424
427
|
consumed_2 = candConsumed
|
|
425
428
|
quantile_2 = quantile_1
|
|
426
429
|
rest_2 = sameHead[1]
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Array from "../../Array.js"
|
|
1
2
|
import type * as Duration from "../../Duration.js"
|
|
2
3
|
import * as Equal from "../../Equal.js"
|
|
3
4
|
import { dual, pipe } from "../../Function.js"
|
|
@@ -9,7 +10,6 @@ import type * as MetricLabel from "../../MetricLabel.js"
|
|
|
9
10
|
import * as Option from "../../Option.js"
|
|
10
11
|
import { pipeArguments } from "../../Pipeable.js"
|
|
11
12
|
import { hasProperty } from "../../Predicate.js"
|
|
12
|
-
import * as ReadonlyArray from "../../ReadonlyArray.js"
|
|
13
13
|
import * as metricKeyType from "./keyType.js"
|
|
14
14
|
import * as metricLabel from "./label.js"
|
|
15
15
|
|
|
@@ -26,7 +26,7 @@ const metricKeyVariance = {
|
|
|
26
26
|
_Type: (_: never) => _
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const arrayEquivilence =
|
|
29
|
+
const arrayEquivilence = Array.getEquivalence(Equal.equals)
|
|
30
30
|
|
|
31
31
|
/** @internal */
|
|
32
32
|
class MetricKeyImpl<out Type extends MetricKeyType.MetricKeyType<any, any>> implements MetricKey.MetricKey<Type> {
|
|
@@ -83,8 +83,11 @@ export const counter: {
|
|
|
83
83
|
)
|
|
84
84
|
|
|
85
85
|
/** @internal */
|
|
86
|
-
export const frequency = (name: string,
|
|
87
|
-
|
|
86
|
+
export const frequency = (name: string, options?: {
|
|
87
|
+
readonly description?: string | undefined
|
|
88
|
+
readonly preregisteredWords?: ReadonlyArray<string> | undefined
|
|
89
|
+
}): MetricKey.MetricKey.Frequency =>
|
|
90
|
+
new MetricKeyImpl(name, metricKeyType.frequency(options), Option.fromNullable(options?.description))
|
|
88
91
|
|
|
89
92
|
/** @internal */
|
|
90
93
|
export const gauge: {
|
|
@@ -161,4 +164,4 @@ export const taggedWithLabels = dual<
|
|
|
161
164
|
>(2, (self, extraTags) =>
|
|
162
165
|
extraTags.length === 0
|
|
163
166
|
? self
|
|
164
|
-
: new MetricKeyImpl(self.name, self.keyType, self.description,
|
|
167
|
+
: new MetricKeyImpl(self.name, self.keyType, self.description, Array.union(self.tags, extraTags)))
|
|
@@ -86,7 +86,8 @@ const FrequencyKeyTypeHash = Hash.string(FrequencyKeyTypeSymbolKey)
|
|
|
86
86
|
/** @internal */
|
|
87
87
|
class FrequencyKeyType implements MetricKeyType.MetricKeyType.Frequency {
|
|
88
88
|
readonly [MetricKeyTypeTypeId] = metricKeyTypeVariance
|
|
89
|
-
readonly [FrequencyKeyTypeTypeId]: MetricKeyType.FrequencyKeyTypeTypeId = FrequencyKeyTypeTypeId
|
|
89
|
+
readonly [FrequencyKeyTypeTypeId]: MetricKeyType.FrequencyKeyTypeTypeId = FrequencyKeyTypeTypeId
|
|
90
|
+
constructor(readonly preregisteredWords: ReadonlyArray<string>) {}
|
|
90
91
|
[Hash.symbol](): number {
|
|
91
92
|
return FrequencyKeyTypeHash
|
|
92
93
|
}
|
|
@@ -192,7 +193,9 @@ export const counter: <A extends number | bigint>(options?: {
|
|
|
192
193
|
* @since 2.0.0
|
|
193
194
|
* @category constructors
|
|
194
195
|
*/
|
|
195
|
-
export const frequency
|
|
196
|
+
export const frequency = (options?: {
|
|
197
|
+
readonly preregisteredWords?: ReadonlyArray<string> | undefined
|
|
198
|
+
}): MetricKeyType.MetricKeyType.Frequency => new FrequencyKeyType(options?.preregisteredWords ?? [])
|
|
196
199
|
|
|
197
200
|
/**
|
|
198
201
|
* @since 2.0.0
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Array from "../../Array.js"
|
|
1
2
|
import * as Equal from "../../Equal.js"
|
|
2
3
|
import { pipe } from "../../Function.js"
|
|
3
4
|
import * as Hash from "../../Hash.js"
|
|
@@ -5,7 +6,6 @@ import type * as MetricState from "../../MetricState.js"
|
|
|
5
6
|
import type * as Option from "../../Option.js"
|
|
6
7
|
import { pipeArguments } from "../../Pipeable.js"
|
|
7
8
|
import { hasProperty } from "../../Predicate.js"
|
|
8
|
-
import * as ReadonlyArray from "../../ReadonlyArray.js"
|
|
9
9
|
|
|
10
10
|
/** @internal */
|
|
11
11
|
const MetricStateSymbolKey = "effect/MetricState"
|
|
@@ -80,7 +80,7 @@ class CounterState<A extends (number | bigint)> implements MetricState.MetricSta
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
const arrayEquals =
|
|
83
|
+
const arrayEquals = Array.getEquivalence(Equal.equals)
|
|
84
84
|
|
|
85
85
|
/** @internal */
|
|
86
86
|
class FrequencyState implements MetricState.MetricState.Frequency {
|
|
@@ -91,14 +91,14 @@ class FrequencyState implements MetricState.MetricState.Frequency {
|
|
|
91
91
|
[Hash.symbol](): number {
|
|
92
92
|
return pipe(
|
|
93
93
|
Hash.string(FrequencyStateSymbolKey),
|
|
94
|
-
Hash.combine(Hash.array(
|
|
94
|
+
Hash.combine(Hash.array(Array.fromIterable(this.occurrences.entries()))),
|
|
95
95
|
Hash.cached(this)
|
|
96
96
|
)
|
|
97
97
|
}
|
|
98
98
|
[Equal.symbol](that: unknown): boolean {
|
|
99
99
|
return isFrequencyState(that) && arrayEquals(
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
Array.fromIterable(this.occurrences.entries()),
|
|
101
|
+
Array.fromIterable(that.occurrences.entries())
|
|
102
102
|
)
|
|
103
103
|
}
|
|
104
104
|
pipe() {
|
package/src/internal/metric.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Array from "../Array.js"
|
|
1
2
|
import * as Clock from "../Clock.js"
|
|
2
3
|
import * as Duration from "../Duration.js"
|
|
3
4
|
import type * as Effect from "../Effect.js"
|
|
@@ -14,7 +15,6 @@ import type * as MetricPair from "../MetricPair.js"
|
|
|
14
15
|
import type * as MetricRegistry from "../MetricRegistry.js"
|
|
15
16
|
import type * as MetricState from "../MetricState.js"
|
|
16
17
|
import { pipeArguments } from "../Pipeable.js"
|
|
17
|
-
import * as ReadonlyArray from "../ReadonlyArray.js"
|
|
18
18
|
import * as Cause from "./cause.js"
|
|
19
19
|
import * as _effect from "./core-effect.js"
|
|
20
20
|
import * as core from "./core.js"
|
|
@@ -98,8 +98,10 @@ export const counter: {
|
|
|
98
98
|
} = (name, options) => fromMetricKey(metricKey.counter(name, options as any)) as any
|
|
99
99
|
|
|
100
100
|
/** @internal */
|
|
101
|
-
export const frequency = (name: string,
|
|
102
|
-
|
|
101
|
+
export const frequency = (name: string, options?: {
|
|
102
|
+
readonly description?: string | undefined
|
|
103
|
+
readonly preregisteredWords?: ReadonlyArray<string> | undefined
|
|
104
|
+
}): Metric.Metric.Frequency<string> => fromMetricKey(metricKey.frequency(name, options))
|
|
103
105
|
|
|
104
106
|
/** @internal */
|
|
105
107
|
export const withConstantInput = dual<
|
|
@@ -273,7 +275,7 @@ export const taggedWithLabelsInput = dual<
|
|
|
273
275
|
(input, extraTags) =>
|
|
274
276
|
self.unsafeUpdate(
|
|
275
277
|
input,
|
|
276
|
-
|
|
278
|
+
Array.union(f(input), extraTags)
|
|
277
279
|
),
|
|
278
280
|
self.unsafeValue
|
|
279
281
|
),
|
|
@@ -292,8 +294,8 @@ export const taggedWithLabels = dual<
|
|
|
292
294
|
>(2, (self, extraTags) => {
|
|
293
295
|
return make(
|
|
294
296
|
self.keyType,
|
|
295
|
-
(input, extraTags1) => self.unsafeUpdate(input,
|
|
296
|
-
(extraTags1) => self.unsafeValue(
|
|
297
|
+
(input, extraTags1) => self.unsafeUpdate(input, Array.union(extraTags, extraTags1)),
|
|
298
|
+
(extraTags1) => self.unsafeValue(Array.union(extraTags, extraTags1))
|
|
297
299
|
)
|
|
298
300
|
})
|
|
299
301
|
|
package/src/internal/pool.ts
CHANGED
|
@@ -75,13 +75,13 @@ interface Strategy<S, R, E, A> {
|
|
|
75
75
|
*/
|
|
76
76
|
class NoneStrategy implements Strategy<unknown, never, never, never> {
|
|
77
77
|
initial(): Effect.Effect<void> {
|
|
78
|
-
return core.
|
|
78
|
+
return core.void
|
|
79
79
|
}
|
|
80
80
|
track(): Effect.Effect<void> {
|
|
81
|
-
return core.
|
|
81
|
+
return core.void
|
|
82
82
|
}
|
|
83
83
|
run(): Effect.Effect<void> {
|
|
84
|
-
return core.
|
|
84
|
+
return core.void
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
|
|
@@ -100,7 +100,7 @@ class TimeToLiveStrategy implements Strategy<readonly [Clock.Clock, Ref.Ref<numb
|
|
|
100
100
|
)))
|
|
101
101
|
}
|
|
102
102
|
track(state: readonly [Clock.Clock, Ref.Ref<number>]): Effect.Effect<void> {
|
|
103
|
-
return core.
|
|
103
|
+
return core.asVoid(core.flatMap(
|
|
104
104
|
state[0].currentTimeMillis,
|
|
105
105
|
(now) => ref.set(state[1], now)
|
|
106
106
|
))
|
|
@@ -222,7 +222,7 @@ class PoolImpl<in out A, in out E> implements Pool.Pool<A, E> {
|
|
|
222
222
|
if (state.size <= this.min) {
|
|
223
223
|
return [allocateUinterruptible(this), { ...state, free: state.free + 1 }] as const
|
|
224
224
|
}
|
|
225
|
-
return [core.
|
|
225
|
+
return [core.void, { ...state, size: state.size - 1 }] as const
|
|
226
226
|
})),
|
|
227
227
|
onSuccess: (item) =>
|
|
228
228
|
core.flatMap(ref.get(this.invalidated), (set) => {
|
|
@@ -303,7 +303,7 @@ const finalizeInvalid = <A, E>(
|
|
|
303
303
|
if (state.size <= self.min) {
|
|
304
304
|
return [allocateUinterruptible(self), { ...state, free: state.free + 1 }] as const
|
|
305
305
|
}
|
|
306
|
-
return [core.
|
|
306
|
+
return [core.void, { ...state, size: state.size - 1 }] as const
|
|
307
307
|
}))
|
|
308
308
|
)
|
|
309
309
|
)
|
|
@@ -317,7 +317,7 @@ const getAndShutdown = <A, E>(self: PoolImpl<A, E>): Effect.Effect<void> =>
|
|
|
317
317
|
if (state.free > 0) {
|
|
318
318
|
return [
|
|
319
319
|
core.matchCauseEffect(queue.take(self.items), {
|
|
320
|
-
onFailure: () => core.
|
|
320
|
+
onFailure: () => core.void,
|
|
321
321
|
onSuccess: (attempted) =>
|
|
322
322
|
pipe(
|
|
323
323
|
forEach(attempted, (a) => ref.update(self.invalidated, HashSet.remove(a))),
|
|
@@ -330,7 +330,7 @@ const getAndShutdown = <A, E>(self: PoolImpl<A, E>): Effect.Effect<void> =>
|
|
|
330
330
|
] as const
|
|
331
331
|
}
|
|
332
332
|
if (state.size > 0) {
|
|
333
|
-
return [core.
|
|
333
|
+
return [core.void, state] as const
|
|
334
334
|
}
|
|
335
335
|
return [queue.shutdown(self.items), { ...state, size: state.size - 1 }] as const
|
|
336
336
|
}))
|
|
@@ -348,7 +348,7 @@ const initialize = <A, E>(self: PoolImpl<A, E>): Effect.Effect<void> =>
|
|
|
348
348
|
{ size: state.size + 1, free: state.free + 1 }
|
|
349
349
|
] as const
|
|
350
350
|
}
|
|
351
|
-
return [core.
|
|
351
|
+
return [core.void, state] as const
|
|
352
352
|
}))
|
|
353
353
|
),
|
|
354
354
|
self.min,
|
|
@@ -376,7 +376,7 @@ const shrink = <A, E>(self: PoolImpl<A, E>): Effect.Effect<void> =>
|
|
|
376
376
|
{ ...state, free: state.free - 1 }
|
|
377
377
|
] as const
|
|
378
378
|
}
|
|
379
|
-
return [core.
|
|
379
|
+
return [core.void, state] as const
|
|
380
380
|
}))
|
|
381
381
|
)
|
|
382
382
|
|
|
@@ -393,7 +393,7 @@ const forEach = <E, A, E2, R>(
|
|
|
393
393
|
f: (a: A) => Effect.Effect<unknown, E2, R>
|
|
394
394
|
): Effect.Effect<unknown, E2, R> =>
|
|
395
395
|
core.exitMatch(self.result, {
|
|
396
|
-
onFailure: () => core.
|
|
396
|
+
onFailure: () => core.void,
|
|
397
397
|
onSuccess: f
|
|
398
398
|
})
|
|
399
399
|
|
package/src/internal/pubsub.ts
CHANGED
|
@@ -885,7 +885,7 @@ class SubscriptionImpl<in out A> implements Queue.Dequeue<A> {
|
|
|
885
885
|
this.strategy.unsafeOnPubSubEmptySpace(this.pubsub, this.subscribers)
|
|
886
886
|
})),
|
|
887
887
|
core.whenEffect(core.deferredSucceed(this.shutdownHook, void 0)),
|
|
888
|
-
core.
|
|
888
|
+
core.asVoid
|
|
889
889
|
)
|
|
890
890
|
})
|
|
891
891
|
)
|
|
@@ -1053,7 +1053,7 @@ class PubSubImpl<in out A> implements PubSub.PubSub<A> {
|
|
|
1053
1053
|
this.scope.close(core.exitInterrupt(state.id())),
|
|
1054
1054
|
core.zipRight(this.strategy.shutdown),
|
|
1055
1055
|
core.whenEffect(core.deferredSucceed(this.shutdownHook, void 0)),
|
|
1056
|
-
core.
|
|
1056
|
+
core.asVoid
|
|
1057
1057
|
)
|
|
1058
1058
|
}))
|
|
1059
1059
|
}
|
|
@@ -1298,8 +1298,8 @@ class BackPressureStrategy<in out A> implements PubSubStrategy<A> {
|
|
|
1298
1298
|
publishers,
|
|
1299
1299
|
([_, deferred, last]) =>
|
|
1300
1300
|
last ?
|
|
1301
|
-
pipe(core.deferredInterruptWith(deferred, fiberId), core.
|
|
1302
|
-
core.
|
|
1301
|
+
pipe(core.deferredInterruptWith(deferred, fiberId), core.asVoid) :
|
|
1302
|
+
core.void,
|
|
1303
1303
|
false,
|
|
1304
1304
|
false
|
|
1305
1305
|
)
|
|
@@ -1408,7 +1408,7 @@ class BackPressureStrategy<in out A> implements PubSubStrategy<A> {
|
|
|
1408
1408
|
*/
|
|
1409
1409
|
export class DroppingStrategy<in out A> implements PubSubStrategy<A> {
|
|
1410
1410
|
get shutdown(): Effect.Effect<void> {
|
|
1411
|
-
return core.
|
|
1411
|
+
return core.void
|
|
1412
1412
|
}
|
|
1413
1413
|
|
|
1414
1414
|
handleSurplus(
|
|
@@ -1452,7 +1452,7 @@ export class DroppingStrategy<in out A> implements PubSubStrategy<A> {
|
|
|
1452
1452
|
*/
|
|
1453
1453
|
export class SlidingStrategy<in out A> implements PubSubStrategy<A> {
|
|
1454
1454
|
get shutdown(): Effect.Effect<void> {
|
|
1455
|
-
return core.
|
|
1455
|
+
return core.void
|
|
1456
1456
|
}
|
|
1457
1457
|
|
|
1458
1458
|
handleSurplus(
|
package/src/internal/query.ts
CHANGED
|
@@ -12,7 +12,7 @@ import * as core from "./core.js"
|
|
|
12
12
|
import { ensuring } from "./fiberRuntime.js"
|
|
13
13
|
import { Listeners } from "./request.js"
|
|
14
14
|
|
|
15
|
-
type RequestCache = Cache.Cache<Request.Request<any, any>,
|
|
15
|
+
type RequestCache = Cache.Cache<Request.Request<any, any>, {
|
|
16
16
|
listeners: Request.Listeners
|
|
17
17
|
handle: Deferred<any, any>
|
|
18
18
|
}>
|
|
@@ -21,7 +21,7 @@ type RequestCache = Cache.Cache<Request.Request<any, any>, never, {
|
|
|
21
21
|
export const currentCache = globalValue(
|
|
22
22
|
Symbol.for("effect/FiberRef/currentCache"),
|
|
23
23
|
() =>
|
|
24
|
-
core.fiberRefUnsafeMake<RequestCache>(unsafeMakeWith<Request.Request<any, any>,
|
|
24
|
+
core.fiberRefUnsafeMake<RequestCache>(unsafeMakeWith<Request.Request<any, any>, {
|
|
25
25
|
listeners: Request.Listeners
|
|
26
26
|
handle: Deferred<any, any>
|
|
27
27
|
}>(
|
|
@@ -153,7 +153,7 @@ export const cacheRequest = <A extends Request.Request<any, any>>(
|
|
|
153
153
|
core.flatMap(cache.getEither(request), (orNew) => {
|
|
154
154
|
switch (orNew._tag) {
|
|
155
155
|
case "Left": {
|
|
156
|
-
return core.
|
|
156
|
+
return core.void
|
|
157
157
|
}
|
|
158
158
|
case "Right": {
|
|
159
159
|
return core.deferredComplete(orNew.right.handle, result)
|
|
@@ -161,7 +161,7 @@ export const cacheRequest = <A extends Request.Request<any, any>>(
|
|
|
161
161
|
}
|
|
162
162
|
}))
|
|
163
163
|
}
|
|
164
|
-
return core.
|
|
164
|
+
return core.void
|
|
165
165
|
})
|
|
166
166
|
}
|
|
167
167
|
|
package/src/internal/queue.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Array from "../Array.js"
|
|
1
2
|
import * as Chunk from "../Chunk.js"
|
|
2
3
|
import type * as Deferred from "../Deferred.js"
|
|
3
4
|
import type * as Effect from "../Effect.js"
|
|
@@ -8,7 +9,6 @@ import * as Option from "../Option.js"
|
|
|
8
9
|
import { pipeArguments } from "../Pipeable.js"
|
|
9
10
|
import { hasProperty } from "../Predicate.js"
|
|
10
11
|
import type * as Queue from "../Queue.js"
|
|
11
|
-
import * as ReadonlyArray from "../ReadonlyArray.js"
|
|
12
12
|
import * as core from "./core.js"
|
|
13
13
|
import * as fiberRuntime from "./fiberRuntime.js"
|
|
14
14
|
|
|
@@ -125,7 +125,7 @@ class QueueImpl<in out A> implements Queue.Queue<A> {
|
|
|
125
125
|
),
|
|
126
126
|
core.zipRight(this.strategy.shutdown),
|
|
127
127
|
core.whenEffect(core.deferredSucceed(this.shutdownHook, void 0)),
|
|
128
|
-
core.
|
|
128
|
+
core.asVoid
|
|
129
129
|
)
|
|
130
130
|
})
|
|
131
131
|
)
|
|
@@ -208,11 +208,11 @@ class QueueImpl<in out A> implements Queue.Queue<A> {
|
|
|
208
208
|
if (MutableRef.get(this.shutdownFlag)) {
|
|
209
209
|
return core.interrupt
|
|
210
210
|
}
|
|
211
|
-
const values =
|
|
211
|
+
const values = Array.fromIterable(iterable)
|
|
212
212
|
const pTakers = this.queue.length() === 0
|
|
213
|
-
?
|
|
214
|
-
:
|
|
215
|
-
const [forTakers, remaining] = pipe(values,
|
|
213
|
+
? Array.fromIterable(unsafePollN(this.takers, values.length))
|
|
214
|
+
: Array.empty
|
|
215
|
+
const [forTakers, remaining] = pipe(values, Array.splitAt(pTakers.length))
|
|
216
216
|
for (let i = 0; i < pTakers.length; i++) {
|
|
217
217
|
const taker = (pTakers as any)[i]
|
|
218
218
|
const item = forTakers[i]
|
|
@@ -548,9 +548,9 @@ class BackPressureStrategy<in out A> implements Queue.Strategy<A> {
|
|
|
548
548
|
isLastItem ?
|
|
549
549
|
pipe(
|
|
550
550
|
core.deferredInterruptWith(deferred, fiberId),
|
|
551
|
-
core.
|
|
551
|
+
core.asVoid
|
|
552
552
|
) :
|
|
553
|
-
core.
|
|
553
|
+
core.void,
|
|
554
554
|
false,
|
|
555
555
|
false
|
|
556
556
|
)
|
|
@@ -602,7 +602,7 @@ class BackPressureStrategy<in out A> implements Queue.Strategy<A> {
|
|
|
602
602
|
}
|
|
603
603
|
|
|
604
604
|
unsafeOffer(iterable: Iterable<A>, deferred: Deferred.Deferred<boolean>): void {
|
|
605
|
-
const stuff = Array.
|
|
605
|
+
const stuff = Array.fromIterable(iterable)
|
|
606
606
|
for (let i = 0; i < stuff.length; i++) {
|
|
607
607
|
const value = stuff[i]
|
|
608
608
|
if (i === stuff.length - 1) {
|
|
@@ -630,7 +630,7 @@ class DroppingStrategy<in out A> implements Queue.Strategy<A> {
|
|
|
630
630
|
}
|
|
631
631
|
|
|
632
632
|
get shutdown(): Effect.Effect<void> {
|
|
633
|
-
return core.
|
|
633
|
+
return core.void
|
|
634
634
|
}
|
|
635
635
|
|
|
636
636
|
onCompleteTakersWithEmptyQueue(): void {
|
|
@@ -662,7 +662,7 @@ class SlidingStrategy<in out A> implements Queue.Strategy<A> {
|
|
|
662
662
|
}
|
|
663
663
|
|
|
664
664
|
get shutdown(): Effect.Effect<void> {
|
|
665
|
-
return core.
|
|
665
|
+
return core.void
|
|
666
666
|
}
|
|
667
667
|
|
|
668
668
|
onCompleteTakersWithEmptyQueue(): void {
|
|
@@ -38,7 +38,7 @@ const tokenBucket = (limit: number, window: DurationInput): Effect.Effect<
|
|
|
38
38
|
const refill: Effect.Effect<void> = Effect.sleep(millisPerToken).pipe(
|
|
39
39
|
Effect.zipRight(latch.releaseAll),
|
|
40
40
|
Effect.zipRight(semaphore.release(1)),
|
|
41
|
-
Effect.flatMap((free) => free === limit ? Effect.
|
|
41
|
+
Effect.flatMap((free) => free === limit ? Effect.void : refill)
|
|
42
42
|
)
|
|
43
43
|
yield* _(
|
|
44
44
|
latch.take(1),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import * as Array from "../../Array.js"
|
|
1
2
|
import * as Option from "../../Option.js"
|
|
2
|
-
import * as ReadonlyArray from "../../ReadonlyArray.js"
|
|
3
3
|
import type * as RBT from "../../RedBlackTree.js"
|
|
4
4
|
import type { RedBlackTreeImpl } from "../redBlackTree.js"
|
|
5
5
|
import type * as Node from "./node.js"
|
|
@@ -83,7 +83,7 @@ export class RedBlackTreeIterator<in out K, out V> implements Iterator<[K, V]> {
|
|
|
83
83
|
* Returns the key
|
|
84
84
|
*/
|
|
85
85
|
get entry(): Option.Option<[K, V]> {
|
|
86
|
-
return Option.map(
|
|
86
|
+
return Option.map(Array.last(this.stack), (node) => [node.key, node.value])
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
/**
|
package/src/internal/runtime.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { equals } from "effect/Equal"
|
|
2
|
+
import type * as ReadonlyArray from "../Array.js"
|
|
2
3
|
import type * as Cause from "../Cause.js"
|
|
3
4
|
import * as Context from "../Context.js"
|
|
4
5
|
import type * as Effect from "../Effect.js"
|
|
@@ -12,7 +13,6 @@ import * as Inspectable from "../Inspectable.js"
|
|
|
12
13
|
import * as Option from "../Option.js"
|
|
13
14
|
import { pipeArguments } from "../Pipeable.js"
|
|
14
15
|
import * as Predicate from "../Predicate.js"
|
|
15
|
-
import type * as ReadonlyArray from "../ReadonlyArray.js"
|
|
16
16
|
import type * as Runtime from "../Runtime.js"
|
|
17
17
|
import type * as RuntimeFlags from "../RuntimeFlags.js"
|
|
18
18
|
import * as _scheduler from "../Scheduler.js"
|
|
@@ -66,7 +66,7 @@ export const unsafeFork = <R>(runtime: Runtime.Runtime<R>) =>
|
|
|
66
66
|
core.scopeAddFinalizer(
|
|
67
67
|
closeableScope,
|
|
68
68
|
core.fiberIdWith((id) =>
|
|
69
|
-
equals(id, fiberRuntime.id()) ? core.
|
|
69
|
+
equals(id, fiberRuntime.id()) ? core.void : core.interruptAsFiber(fiberRuntime, id)
|
|
70
70
|
)
|
|
71
71
|
),
|
|
72
72
|
core.onExit(self, (exit) => _scope.close(closeableScope, exit))
|
|
@@ -135,7 +135,7 @@ class AsyncFiberExceptionImpl<A, E = never> extends Error implements Runtime.Asy
|
|
|
135
135
|
readonly _tag = "AsyncFiberException"
|
|
136
136
|
constructor(readonly fiber: Fiber.RuntimeFiber<A, E>) {
|
|
137
137
|
super(
|
|
138
|
-
`Fiber #${fiber.id().id} cannot be
|
|
138
|
+
`Fiber #${fiber.id().id} cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work`
|
|
139
139
|
)
|
|
140
140
|
this.name = this._tag
|
|
141
141
|
this.stack = this.message
|
|
@@ -483,12 +483,12 @@ export const asyncEffect = <A, E, R, R3, E2, R2>(
|
|
|
483
483
|
onFailure: (cause) => core.deferredFailCause(deferred, cause),
|
|
484
484
|
onSuccess: (cleanup_) => {
|
|
485
485
|
cleanup = cleanup_
|
|
486
|
-
return core.
|
|
486
|
+
return core.void
|
|
487
487
|
}
|
|
488
488
|
}
|
|
489
489
|
)
|
|
490
490
|
)),
|
|
491
|
-
restore(core.onInterrupt(core.deferredAwait(deferred), () => cleanup ?? core.
|
|
491
|
+
restore(core.onInterrupt(core.deferredAwait(deferred), () => cleanup ?? core.void))
|
|
492
492
|
)
|
|
493
493
|
))
|
|
494
494
|
)
|
package/src/internal/schedule.ts
CHANGED
|
@@ -18,7 +18,6 @@ import type * as Schedule from "../Schedule.js"
|
|
|
18
18
|
import * as ScheduleDecision from "../ScheduleDecision.js"
|
|
19
19
|
import * as Interval from "../ScheduleInterval.js"
|
|
20
20
|
import * as Intervals from "../ScheduleIntervals.js"
|
|
21
|
-
import type * as Types from "../Types.js"
|
|
22
21
|
import * as internalCause from "./cause.js"
|
|
23
22
|
import * as effect from "./core-effect.js"
|
|
24
23
|
import * as core from "./core.js"
|
|
@@ -247,7 +246,7 @@ export const as = dual<
|
|
|
247
246
|
>(2, (self, out) => map(self, () => out))
|
|
248
247
|
|
|
249
248
|
/** @internal */
|
|
250
|
-
export const
|
|
249
|
+
export const asVoid = <Out, In, R>(
|
|
251
250
|
self: Schedule.Schedule<Out, In, R>
|
|
252
251
|
): Schedule.Schedule<void, In, R> => map(self, constVoid)
|
|
253
252
|
|
|
@@ -1903,7 +1902,7 @@ export const retry_combined: {
|
|
|
1903
1902
|
self: Effect.Effect<A, E, R>
|
|
1904
1903
|
) => Effect.Retry.Return<R, E, A, O>
|
|
1905
1904
|
<B, E, R1>(
|
|
1906
|
-
policy: Schedule.Schedule<B,
|
|
1905
|
+
policy: Schedule.Schedule<B, NoInfer<E>, R1>
|
|
1907
1906
|
): <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R1 | R>
|
|
1908
1907
|
<A, E, R, O extends Effect.Retry.Options<E>>(
|
|
1909
1908
|
self: Effect.Effect<A, E, R>,
|
|
@@ -1949,13 +1948,13 @@ export const retry_combined: {
|
|
|
1949
1948
|
/** @internal */
|
|
1950
1949
|
export const retryOrElse_Effect = dual<
|
|
1951
1950
|
<A1, E, R1, A2, E2, R2>(
|
|
1952
|
-
policy: Schedule.Schedule<A1,
|
|
1953
|
-
orElse: (e:
|
|
1951
|
+
policy: Schedule.Schedule<A1, NoInfer<E>, R1>,
|
|
1952
|
+
orElse: (e: NoInfer<E>, out: A1) => Effect.Effect<A2, E2, R2>
|
|
1954
1953
|
) => <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A | A2, E2, R | R1 | R2>,
|
|
1955
1954
|
<A, E, R, A1, R1, A2, E2, R2>(
|
|
1956
1955
|
self: Effect.Effect<A, E, R>,
|
|
1957
|
-
policy: Schedule.Schedule<A1,
|
|
1958
|
-
orElse: (e:
|
|
1956
|
+
policy: Schedule.Schedule<A1, NoInfer<E>, R1>,
|
|
1957
|
+
orElse: (e: NoInfer<E>, out: A1) => Effect.Effect<A2, E2, R2>
|
|
1959
1958
|
) => Effect.Effect<A | A2, E2, R | R1 | R2>
|
|
1960
1959
|
>(3, (self, policy, orElse) =>
|
|
1961
1960
|
core.flatMap(
|
|
@@ -2060,7 +2059,7 @@ export const elapsed: Schedule.Schedule<Duration.Duration> = makeWithState(
|
|
|
2060
2059
|
export const forever: Schedule.Schedule<number> = unfold(0, (n) => n + 1)
|
|
2061
2060
|
|
|
2062
2061
|
/** @internal */
|
|
2063
|
-
export const once: Schedule.Schedule<void> =
|
|
2062
|
+
export const once: Schedule.Schedule<void> = asVoid(recurs(1))
|
|
2064
2063
|
|
|
2065
2064
|
/** @internal */
|
|
2066
|
-
export const stop: Schedule.Schedule<void> =
|
|
2065
|
+
export const stop: Schedule.Schedule<void> = asVoid(recurs(0))
|