effect 2.4.19 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +306 -0
- package/dist/cjs/FiberHandle.js.map +1 -0
- package/dist/cjs/FiberMap.js +105 -28
- 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 +47 -48
- 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} +42 -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 +265 -0
- package/dist/esm/FiberHandle.js.map +1 -0
- package/dist/esm/FiberMap.js +103 -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 +47 -48
- 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} +50 -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 +433 -0
- package/src/FiberMap.ts +200 -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 +50 -53
- 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
package/src/internal/layer.ts
CHANGED
|
@@ -203,7 +203,7 @@ class MemoMapImpl implements Layer.MemoMap {
|
|
|
203
203
|
acquire as Effect.Effect<readonly [FiberRefsPatch.FiberRefsPatch, Context.Context<ROut>], E>,
|
|
204
204
|
core.flatMap(([patch, b]) => pipe(effect.patchFiberRefs(patch), core.as(b))),
|
|
205
205
|
core.onExit(core.exitMatch({
|
|
206
|
-
onFailure: () => core.
|
|
206
|
+
onFailure: () => core.void,
|
|
207
207
|
onSuccess: () => core.scopeAddFinalizerExit(scope, release)
|
|
208
208
|
}))
|
|
209
209
|
)
|
|
@@ -216,7 +216,7 @@ class MemoMapImpl implements Layer.MemoMap {
|
|
|
216
216
|
core.deferredMake<readonly [FiberRefsPatch.FiberRefsPatch, Context.Context<ROut>], E>(),
|
|
217
217
|
core.flatMap((deferred) =>
|
|
218
218
|
pipe(
|
|
219
|
-
ref.make<Scope.Scope.Finalizer>(() => core.
|
|
219
|
+
ref.make<Scope.Scope.Finalizer>(() => core.void),
|
|
220
220
|
core.map((finalizerRef) => {
|
|
221
221
|
const resource = core.uninterruptibleMask((restore) =>
|
|
222
222
|
pipe(
|
|
@@ -245,7 +245,7 @@ class MemoMapImpl implements Layer.MemoMap {
|
|
|
245
245
|
core.whenEffect(
|
|
246
246
|
ref.modify(observers, (n) => [n === 1, n - 1] as const)
|
|
247
247
|
),
|
|
248
|
-
core.
|
|
248
|
+
core.asVoid
|
|
249
249
|
)),
|
|
250
250
|
core.zipRight(ref.update(observers, (n) => n + 1)),
|
|
251
251
|
core.zipRight(
|
|
@@ -270,7 +270,7 @@ class MemoMapImpl implements Layer.MemoMap {
|
|
|
270
270
|
pipe(
|
|
271
271
|
core.deferredAwait(deferred),
|
|
272
272
|
core.onExit(core.exitMatchEffect({
|
|
273
|
-
onFailure: () => core.
|
|
273
|
+
onFailure: () => core.void,
|
|
274
274
|
onSuccess: () => ref.update(observers, (n) => n + 1)
|
|
275
275
|
}))
|
|
276
276
|
),
|
|
@@ -1117,7 +1117,7 @@ export const withSpan = dual<
|
|
|
1117
1117
|
(name: string, options?: {
|
|
1118
1118
|
readonly attributes?: Record<string, unknown> | undefined
|
|
1119
1119
|
readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
|
|
1120
|
-
readonly parent?: Tracer.
|
|
1120
|
+
readonly parent?: Tracer.AnySpan | undefined
|
|
1121
1121
|
readonly root?: boolean | undefined
|
|
1122
1122
|
readonly context?: Context.Context<never> | undefined
|
|
1123
1123
|
readonly onEnd?:
|
|
@@ -1127,7 +1127,7 @@ export const withSpan = dual<
|
|
|
1127
1127
|
<A, E, R>(self: Layer.Layer<A, E, R>, name: string, options?: {
|
|
1128
1128
|
readonly attributes?: Record<string, unknown> | undefined
|
|
1129
1129
|
readonly links?: ReadonlyArray<Tracer.SpanLink> | undefined
|
|
1130
|
-
readonly parent?: Tracer.
|
|
1130
|
+
readonly parent?: Tracer.AnySpan | undefined
|
|
1131
1131
|
readonly root?: boolean | undefined
|
|
1132
1132
|
readonly context?: Context.Context<never> | undefined
|
|
1133
1133
|
readonly onEnd?:
|
|
@@ -1150,9 +1150,9 @@ export const withSpan = dual<
|
|
|
1150
1150
|
/** @internal */
|
|
1151
1151
|
export const withParentSpan = dual<
|
|
1152
1152
|
(
|
|
1153
|
-
span: Tracer.
|
|
1153
|
+
span: Tracer.AnySpan
|
|
1154
1154
|
) => <A, E, R>(self: Layer.Layer<A, E, R>) => Layer.Layer<A, E, Exclude<R, Tracer.ParentSpan>>,
|
|
1155
|
-
<A, E, R>(self: Layer.Layer<A, E, R>, span: Tracer.
|
|
1155
|
+
<A, E, R>(self: Layer.Layer<A, E, R>, span: Tracer.AnySpan) => Layer.Layer<A, E, Exclude<R, Tracer.ParentSpan>>
|
|
1156
1156
|
>(2, (self, span) => provide(self, succeedContext(Context.make(tracer.spanTag, span))))
|
|
1157
1157
|
|
|
1158
1158
|
// circular with Effect
|
|
@@ -1197,7 +1197,7 @@ const provideSomeRuntime = dual<
|
|
|
1197
1197
|
core.withFiberRuntime((fiber) => {
|
|
1198
1198
|
fiber.setFiberRefs(FiberRefsPatch.patch(fiber.id(), fiber.getFiberRefs())(rollbackRefs))
|
|
1199
1199
|
fiber._runtimeFlags = runtimeFlags.patch(rollbackFlags)(fiber._runtimeFlags)
|
|
1200
|
-
return core.
|
|
1200
|
+
return core.void
|
|
1201
1201
|
})
|
|
1202
1202
|
)
|
|
1203
1203
|
})
|
package/src/internal/logger.ts
CHANGED
|
@@ -168,11 +168,21 @@ export const stringLogger: Logger.Logger<unknown, string> = makeLogger<unknown,
|
|
|
168
168
|
]
|
|
169
169
|
|
|
170
170
|
let output = outputArray.join(" ")
|
|
171
|
-
const stringMessage = Inspectable.toStringUnknown(message)
|
|
172
171
|
|
|
173
|
-
if (
|
|
174
|
-
|
|
175
|
-
|
|
172
|
+
if (Array.isArray(message)) {
|
|
173
|
+
for (let i = 0; i < message.length; i++) {
|
|
174
|
+
const stringMessage = Inspectable.toStringUnknown(message[i])
|
|
175
|
+
if (stringMessage.length > 0) {
|
|
176
|
+
output = output + " message="
|
|
177
|
+
output = appendQuoted(stringMessage, output)
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
} else {
|
|
181
|
+
const stringMessage = Inspectable.toStringUnknown(message)
|
|
182
|
+
if (stringMessage.length > 0) {
|
|
183
|
+
output = output + " message="
|
|
184
|
+
output = appendQuoted(stringMessage, output)
|
|
185
|
+
}
|
|
176
186
|
}
|
|
177
187
|
|
|
178
188
|
if (cause != null && cause._tag !== "Empty") {
|
|
@@ -235,11 +245,21 @@ export const logfmtLogger = makeLogger<unknown, string>(
|
|
|
235
245
|
]
|
|
236
246
|
|
|
237
247
|
let output = outputArray.join(" ")
|
|
238
|
-
const stringMessage = Inspectable.toStringUnknown(message, 0)
|
|
239
248
|
|
|
240
|
-
if (
|
|
241
|
-
|
|
242
|
-
|
|
249
|
+
if (Array.isArray(message)) {
|
|
250
|
+
for (let i = 0; i < message.length; i++) {
|
|
251
|
+
const stringMessage = Inspectable.toStringUnknown(message[i], 0)
|
|
252
|
+
if (stringMessage.length > 0) {
|
|
253
|
+
output = output + " message="
|
|
254
|
+
output = appendQuotedLogfmt(stringMessage, output)
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
} else {
|
|
258
|
+
const stringMessage = Inspectable.toStringUnknown(message, 0)
|
|
259
|
+
if (stringMessage.length > 0) {
|
|
260
|
+
output = output + " message="
|
|
261
|
+
output = appendQuotedLogfmt(stringMessage, output)
|
|
262
|
+
}
|
|
243
263
|
}
|
|
244
264
|
|
|
245
265
|
if (cause != null && cause._tag !== "Empty") {
|
|
@@ -71,7 +71,7 @@ export const make = <R, ER>(
|
|
|
71
71
|
disposeEffect: core.suspend(() => {
|
|
72
72
|
;(self as any).runtime = core.die("ManagedRuntime disposed")
|
|
73
73
|
self.cachedRuntime = undefined
|
|
74
|
-
return Scope.close(self.scope, core.
|
|
74
|
+
return Scope.close(self.scope, core.exitVoid)
|
|
75
75
|
}),
|
|
76
76
|
runFork<A, E>(effect: Effect.Effect<A, E, R>, options?: Runtime.RunForkOptions): Fiber.RuntimeFiber<A, E | ER> {
|
|
77
77
|
return self.cachedRuntime === undefined ?
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Arr from "../../Array.js"
|
|
1
2
|
import * as Chunk from "../../Chunk.js"
|
|
2
3
|
import * as Equal from "../../Equal.js"
|
|
3
4
|
import { pipe } from "../../Function.js"
|
|
@@ -5,7 +6,6 @@ import * as Hash from "../../Hash.js"
|
|
|
5
6
|
import type * as MetricBoundaries from "../../MetricBoundaries.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 MetricBoundariesSymbolKey = "effect/MetricBoundaries"
|
|
@@ -44,8 +44,8 @@ export const isMetricBoundaries = (u: unknown): u is MetricBoundaries.MetricBoun
|
|
|
44
44
|
export const fromIterable = (iterable: Iterable<number>): MetricBoundaries.MetricBoundaries => {
|
|
45
45
|
const values = pipe(
|
|
46
46
|
iterable,
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
Arr.appendAll(Chunk.of(Number.POSITIVE_INFINITY)),
|
|
48
|
+
Arr.dedupe
|
|
49
49
|
)
|
|
50
50
|
return new MetricBoundariesImpl(values)
|
|
51
51
|
}
|
|
@@ -57,7 +57,7 @@ export const linear = (options: {
|
|
|
57
57
|
readonly count: number
|
|
58
58
|
}): MetricBoundaries.MetricBoundaries =>
|
|
59
59
|
pipe(
|
|
60
|
-
|
|
60
|
+
Arr.makeBy(options.count - 1, (i) => options.start + i * options.width),
|
|
61
61
|
Chunk.unsafeFromArray,
|
|
62
62
|
fromIterable
|
|
63
63
|
)
|
|
@@ -69,7 +69,7 @@ export const exponential = (options: {
|
|
|
69
69
|
readonly count: number
|
|
70
70
|
}): MetricBoundaries.MetricBoundaries =>
|
|
71
71
|
pipe(
|
|
72
|
-
|
|
72
|
+
Arr.makeBy(options.count - 1, (i) => options.start * Math.pow(options.factor, i)),
|
|
73
73
|
Chunk.unsafeFromArray,
|
|
74
74
|
fromIterable
|
|
75
75
|
)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Arr 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
|
+
Arr.sort(number.Order),
|
|
127
|
+
Arr.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]> =
|
|
165
|
+
const builder: Array<readonly [number, number]> = Arr.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 =
|
|
192
|
+
const sortedQuantiles = pipe(quantiles, Arr.sort(number.Order))
|
|
193
|
+
const values = Arr.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
|
+
Arr.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 (!Arr.isNonEmptyReadonlyArray(sortedQuantiles)) {
|
|
295
|
+
return Arr.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 = Arr.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 Arr.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 (!Arr.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(Arr.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 = Arr.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 = Arr.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 = Arr.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 = Arr.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 Arr 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 = Arr.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, Arr.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 Arr 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 = Arr.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(Arr.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
|
+
Arr.fromIterable(this.occurrences.entries()),
|
|
101
|
+
Arr.fromIterable(that.occurrences.entries())
|
|
102
102
|
)
|
|
103
103
|
}
|
|
104
104
|
pipe() {
|
package/src/internal/metric.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Arr 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
|
+
Arr.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, Arr.union(extraTags, extraTags1)),
|
|
298
|
+
(extraTags1) => self.unsafeValue(Arr.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
|
|