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
|
@@ -25,8 +25,8 @@ import * as fiberRuntime from "./fiberRuntime.js"
|
|
|
25
25
|
*
|
|
26
26
|
* @internal
|
|
27
27
|
*/
|
|
28
|
-
export interface CacheState<in out Key, out
|
|
29
|
-
map: MutableHashMap.MutableHashMap<Key, MapValue<Key,
|
|
28
|
+
export interface CacheState<in out Key, out Value, out Error = never> {
|
|
29
|
+
map: MutableHashMap.MutableHashMap<Key, MapValue<Key, Value, Error>> // mutable by design
|
|
30
30
|
keys: _cache.KeySet<Key> // mutable by design
|
|
31
31
|
accesses: MutableQueue.MutableQueue<_cache.MapKey<Key>> // mutable by design
|
|
32
32
|
updating: MutableRef.MutableRef<boolean> // mutable by design
|
|
@@ -35,14 +35,14 @@ export interface CacheState<in out Key, out Error, out Value> {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/** @internal */
|
|
38
|
-
export const makeCacheState = <Key,
|
|
39
|
-
map: MutableHashMap.MutableHashMap<Key, MapValue<Key,
|
|
38
|
+
export const makeCacheState = <Key, Value, Error = never>(
|
|
39
|
+
map: MutableHashMap.MutableHashMap<Key, MapValue<Key, Value, Error>>,
|
|
40
40
|
keys: _cache.KeySet<Key>,
|
|
41
41
|
accesses: MutableQueue.MutableQueue<_cache.MapKey<Key>>,
|
|
42
42
|
updating: MutableRef.MutableRef<boolean>,
|
|
43
43
|
hits: number,
|
|
44
44
|
misses: number
|
|
45
|
-
): CacheState<Key,
|
|
45
|
+
): CacheState<Key, Value, Error> => ({
|
|
46
46
|
map,
|
|
47
47
|
keys,
|
|
48
48
|
accesses,
|
|
@@ -56,7 +56,7 @@ export const makeCacheState = <Key, Error, Value>(
|
|
|
56
56
|
*
|
|
57
57
|
* @internal
|
|
58
58
|
*/
|
|
59
|
-
export const initialCacheState = <Key,
|
|
59
|
+
export const initialCacheState = <Key, Value, Error = never>(): CacheState<Key, Value, Error> =>
|
|
60
60
|
makeCacheState(
|
|
61
61
|
MutableHashMap.empty(),
|
|
62
62
|
_cache.makeKeySet(),
|
|
@@ -74,13 +74,13 @@ export const initialCacheState = <Key, Error, Value>(): CacheState<Key, Error, V
|
|
|
74
74
|
*
|
|
75
75
|
* @internal
|
|
76
76
|
*/
|
|
77
|
-
export type MapValue<Key,
|
|
78
|
-
| Complete<Key,
|
|
79
|
-
| Pending<Key,
|
|
80
|
-
| Refreshing<Key,
|
|
77
|
+
export type MapValue<Key, Value, Error> =
|
|
78
|
+
| Complete<Key, Value, Error>
|
|
79
|
+
| Pending<Key, Value, Error>
|
|
80
|
+
| Refreshing<Key, Value, Error>
|
|
81
81
|
|
|
82
82
|
/** @internal */
|
|
83
|
-
export interface Complete<out Key, out
|
|
83
|
+
export interface Complete<out Key, out Value, out Error> {
|
|
84
84
|
readonly _tag: "Complete"
|
|
85
85
|
readonly key: _cache.MapKey<Key>
|
|
86
86
|
readonly exit: Exit.Exit<readonly [Value, Scope.Scope.Finalizer], Error>
|
|
@@ -90,27 +90,27 @@ export interface Complete<out Key, out Error, out Value> {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
/** @internal */
|
|
93
|
-
export interface Pending<out Key, out
|
|
93
|
+
export interface Pending<out Key, out Value, out Error> {
|
|
94
94
|
readonly _tag: "Pending"
|
|
95
95
|
readonly key: _cache.MapKey<Key>
|
|
96
96
|
readonly scoped: Effect.Effect<Effect.Effect<Value, Error, Scope.Scope>>
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
/** @internal */
|
|
100
|
-
export interface Refreshing<out Key, out
|
|
100
|
+
export interface Refreshing<out Key, out Value, out Error> {
|
|
101
101
|
readonly _tag: "Refreshing"
|
|
102
102
|
readonly scoped: Effect.Effect<Effect.Effect<Value, Error, Scope.Scope>>
|
|
103
|
-
readonly complete: Complete<Key,
|
|
103
|
+
readonly complete: Complete<Key, Value, Error>
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
/** @internal */
|
|
107
|
-
export const complete = <Key,
|
|
107
|
+
export const complete = <Key, Value, Error = never>(
|
|
108
108
|
key: _cache.MapKey<Key>,
|
|
109
109
|
exit: Exit.Exit<readonly [Value, Scope.Scope.Finalizer], Error>,
|
|
110
110
|
ownerCount: MutableRef.MutableRef<number>,
|
|
111
111
|
entryStats: Cache.EntryStats,
|
|
112
112
|
timeToLive: number
|
|
113
|
-
): Complete<Key,
|
|
113
|
+
): Complete<Key, Value, Error> =>
|
|
114
114
|
Data.struct({
|
|
115
115
|
_tag: "Complete",
|
|
116
116
|
key,
|
|
@@ -121,10 +121,10 @@ export const complete = <Key, Error, Value>(
|
|
|
121
121
|
})
|
|
122
122
|
|
|
123
123
|
/** @internal */
|
|
124
|
-
export const pending = <Key,
|
|
124
|
+
export const pending = <Key, Value, Error = never>(
|
|
125
125
|
key: _cache.MapKey<Key>,
|
|
126
126
|
scoped: Effect.Effect<Effect.Effect<Value, Error, Scope.Scope>>
|
|
127
|
-
): Pending<Key,
|
|
127
|
+
): Pending<Key, Value, Error> =>
|
|
128
128
|
Data.struct({
|
|
129
129
|
_tag: "Pending",
|
|
130
130
|
key,
|
|
@@ -132,10 +132,10 @@ export const pending = <Key, Error, Value>(
|
|
|
132
132
|
})
|
|
133
133
|
|
|
134
134
|
/** @internal */
|
|
135
|
-
export const refreshing = <Key,
|
|
135
|
+
export const refreshing = <Key, Value, Error = never>(
|
|
136
136
|
scoped: Effect.Effect<Effect.Effect<Value, Error, Scope.Scope>>,
|
|
137
|
-
complete: Complete<Key,
|
|
138
|
-
): Refreshing<Key,
|
|
137
|
+
complete: Complete<Key, Value, Error>
|
|
138
|
+
): Refreshing<Key, Value, Error> =>
|
|
139
139
|
Data.struct({
|
|
140
140
|
_tag: "Refreshing",
|
|
141
141
|
scoped,
|
|
@@ -143,8 +143,8 @@ export const refreshing = <Key, Error, Value>(
|
|
|
143
143
|
})
|
|
144
144
|
|
|
145
145
|
/** @internal */
|
|
146
|
-
export const toScoped = <Key,
|
|
147
|
-
self: Complete<Key,
|
|
146
|
+
export const toScoped = <Key, Value, Error = never>(
|
|
147
|
+
self: Complete<Key, Value, Error>
|
|
148
148
|
): Effect.Effect<Value, Error, Scope.Scope> =>
|
|
149
149
|
Exit.matchEffect(self.exit, {
|
|
150
150
|
onFailure: (cause) => core.failCause(cause),
|
|
@@ -156,15 +156,15 @@ export const toScoped = <Key, Error, Value>(
|
|
|
156
156
|
})
|
|
157
157
|
|
|
158
158
|
/** @internal */
|
|
159
|
-
export const releaseOwner = <Key,
|
|
160
|
-
self: Complete<Key,
|
|
159
|
+
export const releaseOwner = <Key, Value, Error = never>(
|
|
160
|
+
self: Complete<Key, Value, Error>
|
|
161
161
|
): Effect.Effect<void> =>
|
|
162
162
|
Exit.matchEffect(self.exit, {
|
|
163
|
-
onFailure: () => core.
|
|
163
|
+
onFailure: () => core.void,
|
|
164
164
|
onSuccess: ([, finalizer]) =>
|
|
165
165
|
core.flatMap(
|
|
166
166
|
core.sync(() => MutableRef.decrementAndGet(self.ownerCount)),
|
|
167
|
-
(numOwner) => effect.when(finalizer(Exit.
|
|
167
|
+
(numOwner) => effect.when(finalizer(Exit.void), () => numOwner === 0)
|
|
168
168
|
)
|
|
169
169
|
})
|
|
170
170
|
|
|
@@ -186,13 +186,13 @@ const scopedCacheVariance = {
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value>
|
|
189
|
-
implements ScopedCache.ScopedCache<Key,
|
|
189
|
+
implements ScopedCache.ScopedCache<Key, Value, Error>
|
|
190
190
|
{
|
|
191
191
|
readonly [ScopedCacheTypeId] = scopedCacheVariance
|
|
192
|
-
readonly cacheState: CacheState<Key,
|
|
192
|
+
readonly cacheState: CacheState<Key, Value, Error>
|
|
193
193
|
constructor(
|
|
194
194
|
readonly capacity: number,
|
|
195
|
-
readonly scopedLookup: ScopedCache.Lookup<Key,
|
|
195
|
+
readonly scopedLookup: ScopedCache.Lookup<Key, Value, Error, Environment>,
|
|
196
196
|
readonly clock: Clock.Clock,
|
|
197
197
|
readonly timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.Duration,
|
|
198
198
|
readonly context: Context.Context<Environment>
|
|
@@ -285,7 +285,7 @@ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value
|
|
|
285
285
|
this.resolveMapValue(value),
|
|
286
286
|
core.flatMap(Option.match({
|
|
287
287
|
onNone: () => {
|
|
288
|
-
const val = value as Complete<Key,
|
|
288
|
+
const val = value as Complete<Key, Value, Error>
|
|
289
289
|
const current = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, key))
|
|
290
290
|
if (Equal.equals(current, value)) {
|
|
291
291
|
MutableHashMap.remove(this.cacheState.map, key)
|
|
@@ -315,14 +315,14 @@ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value
|
|
|
315
315
|
return releaseOwner(mapValue)
|
|
316
316
|
}
|
|
317
317
|
case "Pending": {
|
|
318
|
-
return core.
|
|
318
|
+
return core.void
|
|
319
319
|
}
|
|
320
320
|
case "Refreshing": {
|
|
321
321
|
return releaseOwner(mapValue.complete)
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
|
-
return core.
|
|
325
|
+
return core.void
|
|
326
326
|
})
|
|
327
327
|
}
|
|
328
328
|
|
|
@@ -383,7 +383,7 @@ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value
|
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
385
|
}
|
|
386
|
-
return core.flatMap(finalScoped, (s) => fiberRuntime.scopedEffect(core.
|
|
386
|
+
return core.flatMap(finalScoped, (s) => fiberRuntime.scopedEffect(core.asVoid(s)))
|
|
387
387
|
})
|
|
388
388
|
)
|
|
389
389
|
}
|
|
@@ -393,7 +393,7 @@ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value
|
|
|
393
393
|
}
|
|
394
394
|
|
|
395
395
|
resolveMapValue(
|
|
396
|
-
value: MapValue<Key,
|
|
396
|
+
value: MapValue<Key, Value, Error>,
|
|
397
397
|
ignorePending = false
|
|
398
398
|
): Effect.Effect<Effect.Effect<Option.Option<Value>, Error, Scope.Scope>> {
|
|
399
399
|
switch (value._tag) {
|
|
@@ -459,14 +459,14 @@ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value
|
|
|
459
459
|
exit.value,
|
|
460
460
|
release
|
|
461
461
|
])
|
|
462
|
-
const completedResult = complete<Key,
|
|
462
|
+
const completedResult = complete<Key, Value, Error>(
|
|
463
463
|
_cache.makeMapKey(key),
|
|
464
464
|
exitWithFinalizer,
|
|
465
465
|
MutableRef.make(1),
|
|
466
466
|
_cache.makeEntryStats(now),
|
|
467
467
|
expiredAt
|
|
468
468
|
)
|
|
469
|
-
let previousValue: MapValue<Key,
|
|
469
|
+
let previousValue: MapValue<Key, Value, Error> | undefined = undefined
|
|
470
470
|
if (MutableHashMap.has(this.cacheState.map, key)) {
|
|
471
471
|
previousValue = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, key))
|
|
472
472
|
}
|
|
@@ -481,14 +481,14 @@ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value
|
|
|
481
481
|
)
|
|
482
482
|
}
|
|
483
483
|
case "Failure": {
|
|
484
|
-
const completedResult = complete<Key,
|
|
484
|
+
const completedResult = complete<Key, Value, Error>(
|
|
485
485
|
_cache.makeMapKey(key),
|
|
486
486
|
exit as Exit.Exit<readonly [Value, Scope.Scope.Finalizer], Error>,
|
|
487
487
|
MutableRef.make(0),
|
|
488
488
|
_cache.makeEntryStats(now),
|
|
489
489
|
expiredAt
|
|
490
490
|
)
|
|
491
|
-
let previousValue: MapValue<Key,
|
|
491
|
+
let previousValue: MapValue<Key, Value, Error> | undefined = undefined
|
|
492
492
|
if (MutableHashMap.has(this.cacheState.map, key)) {
|
|
493
493
|
previousValue = Option.getOrUndefined(MutableHashMap.get(this.cacheState.map, key))
|
|
494
494
|
}
|
|
@@ -524,8 +524,8 @@ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value
|
|
|
524
524
|
this.cacheState.misses = this.cacheState.misses + 1
|
|
525
525
|
}
|
|
526
526
|
|
|
527
|
-
trackAccess(key: _cache.MapKey<Key>): Array<MapValue<Key,
|
|
528
|
-
const cleanedKeys: Array<MapValue<Key,
|
|
527
|
+
trackAccess(key: _cache.MapKey<Key>): Array<MapValue<Key, Value, Error>> {
|
|
528
|
+
const cleanedKeys: Array<MapValue<Key, Value, Error>> = []
|
|
529
529
|
MutableQueue.offer(this.cacheState.accesses, key)
|
|
530
530
|
if (MutableRef.compareAndSet(this.cacheState.updating, false, true)) {
|
|
531
531
|
let loop = true
|
|
@@ -558,16 +558,16 @@ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value
|
|
|
558
558
|
return cleanedKeys
|
|
559
559
|
}
|
|
560
560
|
|
|
561
|
-
cleanMapValue(mapValue: MapValue<Key,
|
|
561
|
+
cleanMapValue(mapValue: MapValue<Key, Value, Error> | undefined): Effect.Effect<void> {
|
|
562
562
|
if (mapValue === undefined) {
|
|
563
|
-
return core.
|
|
563
|
+
return core.void
|
|
564
564
|
}
|
|
565
565
|
switch (mapValue._tag) {
|
|
566
566
|
case "Complete": {
|
|
567
567
|
return releaseOwner(mapValue)
|
|
568
568
|
}
|
|
569
569
|
case "Pending": {
|
|
570
|
-
return core.
|
|
570
|
+
return core.void
|
|
571
571
|
}
|
|
572
572
|
case "Refreshing": {
|
|
573
573
|
return releaseOwner(mapValue.complete)
|
|
@@ -586,13 +586,13 @@ class ScopedCacheImpl<in out Key, in out Environment, in out Error, in out Value
|
|
|
586
586
|
}
|
|
587
587
|
|
|
588
588
|
/** @internal */
|
|
589
|
-
export const make = <Key,
|
|
589
|
+
export const make = <Key, Value, Error = never, Environment = never>(
|
|
590
590
|
options: {
|
|
591
|
-
readonly lookup: ScopedCache.Lookup<Key,
|
|
591
|
+
readonly lookup: ScopedCache.Lookup<Key, Value, Error, Environment>
|
|
592
592
|
readonly capacity: number
|
|
593
593
|
readonly timeToLive: Duration.DurationInput
|
|
594
594
|
}
|
|
595
|
-
): Effect.Effect<ScopedCache.ScopedCache<Key,
|
|
595
|
+
): Effect.Effect<ScopedCache.ScopedCache<Key, Value, Error>, never, Environment | Scope.Scope> => {
|
|
596
596
|
const timeToLive = Duration.decode(options.timeToLive)
|
|
597
597
|
return makeWith({
|
|
598
598
|
capacity: options.capacity,
|
|
@@ -602,13 +602,13 @@ export const make = <Key, Environment, Error, Value>(
|
|
|
602
602
|
}
|
|
603
603
|
|
|
604
604
|
/** @internal */
|
|
605
|
-
export const makeWith = <Key,
|
|
605
|
+
export const makeWith = <Key, Value, Error = never, Environment = never>(
|
|
606
606
|
options: {
|
|
607
607
|
readonly capacity: number
|
|
608
|
-
readonly lookup: ScopedCache.Lookup<Key,
|
|
608
|
+
readonly lookup: ScopedCache.Lookup<Key, Value, Error, Environment>
|
|
609
609
|
readonly timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.DurationInput
|
|
610
610
|
}
|
|
611
|
-
): Effect.Effect<ScopedCache.ScopedCache<Key,
|
|
611
|
+
): Effect.Effect<ScopedCache.ScopedCache<Key, Value, Error>, never, Environment | Scope.Scope> =>
|
|
612
612
|
core.flatMap(
|
|
613
613
|
effect.clock,
|
|
614
614
|
(clock) =>
|
|
@@ -620,12 +620,12 @@ export const makeWith = <Key, Environment, Error, Value>(
|
|
|
620
620
|
)
|
|
621
621
|
)
|
|
622
622
|
|
|
623
|
-
const buildWith = <Key,
|
|
623
|
+
const buildWith = <Key, Value, Error = never, Environment = never>(
|
|
624
624
|
capacity: number,
|
|
625
|
-
scopedLookup: ScopedCache.Lookup<Key,
|
|
625
|
+
scopedLookup: ScopedCache.Lookup<Key, Value, Error, Environment>,
|
|
626
626
|
clock: Clock.Clock,
|
|
627
627
|
timeToLive: (exit: Exit.Exit<Value, Error>) => Duration.Duration
|
|
628
|
-
): Effect.Effect<ScopedCache.ScopedCache<Key,
|
|
628
|
+
): Effect.Effect<ScopedCache.ScopedCache<Key, Value, Error>, never, Environment | Scope.Scope> =>
|
|
629
629
|
fiberRuntime.acquireRelease(
|
|
630
630
|
core.flatMap(
|
|
631
631
|
core.context<Environment>(),
|
|
@@ -27,7 +27,7 @@ const scopedRefVariance = {
|
|
|
27
27
|
|
|
28
28
|
/** @internal */
|
|
29
29
|
const close = <A>(self: ScopedRef.ScopedRef<A>): Effect.Effect<void> =>
|
|
30
|
-
core.flatMap(ref.get(self.ref), (tuple) => tuple[0].close(core.
|
|
30
|
+
core.flatMap(ref.get(self.ref), (tuple) => tuple[0].close(core.exitVoid))
|
|
31
31
|
|
|
32
32
|
/** @internal */
|
|
33
33
|
export const fromAcquire = <A, E, R>(
|
|
@@ -83,14 +83,14 @@ export const set = dual<
|
|
|
83
83
|
core.flatten(
|
|
84
84
|
synchronized.modifyEffect(self.ref, ([oldScope, value]) =>
|
|
85
85
|
core.uninterruptible(
|
|
86
|
-
core.scopeClose(oldScope, core.
|
|
86
|
+
core.scopeClose(oldScope, core.exitVoid).pipe(
|
|
87
87
|
core.zipRight(fiberRuntime.scopeMake()),
|
|
88
88
|
core.flatMap((newScope) =>
|
|
89
89
|
core.exit(fiberRuntime.scopeExtend(acquire, newScope)).pipe(
|
|
90
90
|
core.flatMap((exit) =>
|
|
91
91
|
core.exitMatch(exit, {
|
|
92
92
|
onFailure: (cause) =>
|
|
93
|
-
core.scopeClose(newScope, core.
|
|
93
|
+
core.scopeClose(newScope, core.exitVoid).pipe(
|
|
94
94
|
core.as(
|
|
95
95
|
[
|
|
96
96
|
core.failCause(cause) as Effect.Effect<void, E>,
|
|
@@ -101,7 +101,7 @@ export const set = dual<
|
|
|
101
101
|
onSuccess: (value) =>
|
|
102
102
|
core.succeed(
|
|
103
103
|
[
|
|
104
|
-
core.
|
|
104
|
+
core.void as Effect.Effect<void, E>,
|
|
105
105
|
[newScope, value] as const
|
|
106
106
|
] as const
|
|
107
107
|
)
|
package/src/internal/secret.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
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"
|
|
4
5
|
import { hasProperty } from "../Predicate.js"
|
|
5
|
-
import * as ReadonlyArray from "../ReadonlyArray.js"
|
|
6
6
|
import type * as Secret from "../Secret.js"
|
|
7
7
|
|
|
8
8
|
/** @internal */
|
|
@@ -56,7 +56,7 @@ export const make = (bytes: Array<number>): Secret.Secret => {
|
|
|
56
56
|
|
|
57
57
|
/** @internal */
|
|
58
58
|
export const fromIterable = (iterable: Iterable<string>): Secret.Secret =>
|
|
59
|
-
make(
|
|
59
|
+
make(Array.fromIterable(iterable).map((char) => char.charCodeAt(0)))
|
|
60
60
|
|
|
61
61
|
/** @internal */
|
|
62
62
|
export const fromString = (text: string): Secret.Secret => {
|
package/src/internal/sink.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Array from "../Array.js"
|
|
1
2
|
import * as Cause from "../Cause.js"
|
|
2
3
|
import type * as Channel from "../Channel.js"
|
|
3
4
|
import * as Chunk from "../Chunk.js"
|
|
@@ -17,7 +18,6 @@ import { pipeArguments } from "../Pipeable.js"
|
|
|
17
18
|
import { hasProperty, type Predicate, type Refinement } from "../Predicate.js"
|
|
18
19
|
import * as PubSub from "../PubSub.js"
|
|
19
20
|
import * as Queue from "../Queue.js"
|
|
20
|
-
import * as ReadonlyArray from "../ReadonlyArray.js"
|
|
21
21
|
import * as Ref from "../Ref.js"
|
|
22
22
|
import type * as Scope from "../Scope.js"
|
|
23
23
|
import type * as Sink from "../Sink.js"
|
|
@@ -213,7 +213,7 @@ const collectAllWhileReader = <In>(
|
|
|
213
213
|
): Channel.Channel<Chunk.Chunk<In>, Chunk.Chunk<In>, never, never, Chunk.Chunk<In>, unknown> =>
|
|
214
214
|
core.readWith({
|
|
215
215
|
onInput: (input: Chunk.Chunk<In>) => {
|
|
216
|
-
const [collected, leftovers] = pipe(Chunk.toReadonlyArray(input),
|
|
216
|
+
const [collected, leftovers] = pipe(Chunk.toReadonlyArray(input), Array.span(predicate))
|
|
217
217
|
if (leftovers.length === 0) {
|
|
218
218
|
return collectAllWhileReader(
|
|
219
219
|
predicate,
|
|
@@ -565,7 +565,7 @@ const dropLoop = <In>(
|
|
|
565
565
|
)
|
|
566
566
|
},
|
|
567
567
|
onFailure: core.fail,
|
|
568
|
-
onDone: () => core.
|
|
568
|
+
onDone: () => core.void
|
|
569
569
|
})
|
|
570
570
|
|
|
571
571
|
/** @internal */
|
|
@@ -600,7 +600,7 @@ const dropUntilEffectReader = <In, R, E>(
|
|
|
600
600
|
channel.unwrap
|
|
601
601
|
),
|
|
602
602
|
onFailure: core.fail,
|
|
603
|
-
onDone: () => core.
|
|
603
|
+
onDone: () => core.void
|
|
604
604
|
})
|
|
605
605
|
|
|
606
606
|
/** @internal */
|
|
@@ -649,7 +649,7 @@ const dropWhileEffectReader = <In, R, E>(
|
|
|
649
649
|
channel.unwrap
|
|
650
650
|
),
|
|
651
651
|
onFailure: core.fail,
|
|
652
|
-
onDone: () => core.
|
|
652
|
+
onDone: () => core.void
|
|
653
653
|
})
|
|
654
654
|
|
|
655
655
|
/** @internal */
|
|
@@ -1346,7 +1346,7 @@ export const forEach = <In, X, E, R>(f: (input: In) => Effect.Effect<X, E, R>):
|
|
|
1346
1346
|
onInput: (input: Chunk.Chunk<In>) =>
|
|
1347
1347
|
pipe(core.fromEffect(Effect.forEach(input, (v) => f(v), { discard: true })), core.flatMap(() => process)),
|
|
1348
1348
|
onFailure: core.failCause,
|
|
1349
|
-
onDone: () => core.
|
|
1349
|
+
onDone: () => core.void
|
|
1350
1350
|
})
|
|
1351
1351
|
return new SinkImpl(process)
|
|
1352
1352
|
}
|
|
@@ -1358,7 +1358,7 @@ export const forEachChunk = <In, X, E, R>(
|
|
|
1358
1358
|
const process: Channel.Channel<never, Chunk.Chunk<In>, E, E, void, unknown, R> = core.readWithCause({
|
|
1359
1359
|
onInput: (input: Chunk.Chunk<In>) => pipe(core.fromEffect(f(input)), core.flatMap(() => process)),
|
|
1360
1360
|
onFailure: core.failCause,
|
|
1361
|
-
onDone: () => core.
|
|
1361
|
+
onDone: () => core.void
|
|
1362
1362
|
})
|
|
1363
1363
|
return new SinkImpl(process)
|
|
1364
1364
|
}
|
|
@@ -1370,7 +1370,7 @@ export const forEachWhile = <In, E, R>(
|
|
|
1370
1370
|
const process: Channel.Channel<Chunk.Chunk<In>, Chunk.Chunk<In>, E, E, void, unknown, R> = core.readWithCause({
|
|
1371
1371
|
onInput: (input: Chunk.Chunk<In>) => forEachWhileReader(f, input, 0, input.length, process),
|
|
1372
1372
|
onFailure: core.failCause,
|
|
1373
|
-
onDone: () => core.
|
|
1373
|
+
onDone: () => core.void
|
|
1374
1374
|
})
|
|
1375
1375
|
return new SinkImpl(process)
|
|
1376
1376
|
}
|
|
@@ -1405,10 +1405,10 @@ export const forEachChunkWhile = <In, E, R>(
|
|
|
1405
1405
|
onInput: (input: Chunk.Chunk<In>) =>
|
|
1406
1406
|
pipe(
|
|
1407
1407
|
core.fromEffect(f(input)),
|
|
1408
|
-
core.flatMap((cont) => cont ? reader : core.
|
|
1408
|
+
core.flatMap((cont) => cont ? reader : core.void)
|
|
1409
1409
|
),
|
|
1410
1410
|
onFailure: core.fail,
|
|
1411
|
-
onDone: () => core.
|
|
1411
|
+
onDone: () => core.void
|
|
1412
1412
|
})
|
|
1413
1413
|
return new SinkImpl(reader)
|
|
1414
1414
|
}
|
package/src/internal/stm/stm.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as RA from "../../Array.js"
|
|
1
2
|
import * as Cause from "../../Cause.js"
|
|
2
3
|
import * as Chunk from "../../Chunk.js"
|
|
3
4
|
import * as Context from "../../Context.js"
|
|
@@ -10,9 +11,8 @@ import { constFalse, constTrue, constVoid, dual, identity, pipe } from "../../Fu
|
|
|
10
11
|
import * as Option from "../../Option.js"
|
|
11
12
|
import type { Predicate, Refinement } from "../../Predicate.js"
|
|
12
13
|
import * as predicate from "../../Predicate.js"
|
|
13
|
-
import * as RA from "../../ReadonlyArray.js"
|
|
14
14
|
import type * as STM from "../../STM.js"
|
|
15
|
-
import type { MergeRecord
|
|
15
|
+
import type { MergeRecord } from "../../Types.js"
|
|
16
16
|
import * as effectCore from "../core.js"
|
|
17
17
|
import * as SingleShotGen from "../singleShotGen.js"
|
|
18
18
|
import * as core from "./core.js"
|
|
@@ -98,7 +98,7 @@ export const asSomeError = <A, E, R>(self: STM.STM<A, E, R>): STM.STM<A, Option.
|
|
|
98
98
|
pipe(self, mapError(Option.some))
|
|
99
99
|
|
|
100
100
|
/** @internal */
|
|
101
|
-
export const
|
|
101
|
+
export const asVoid = <A, E, R>(self: STM.STM<A, E, R>): STM.STM<void, E, R> => pipe(self, core.map(constVoid))
|
|
102
102
|
|
|
103
103
|
/** @internal */
|
|
104
104
|
export const attempt = <A>(evaluate: LazyArg<A>): STM.STM<A, unknown> =>
|
|
@@ -273,7 +273,7 @@ export const catchTags: {
|
|
|
273
273
|
}))
|
|
274
274
|
|
|
275
275
|
/** @internal */
|
|
276
|
-
export const check = (predicate: LazyArg<boolean>): STM.STM<void> => suspend(() => predicate() ?
|
|
276
|
+
export const check = (predicate: LazyArg<boolean>): STM.STM<void> => suspend(() => predicate() ? void_ : core.retry)
|
|
277
277
|
|
|
278
278
|
/** @internal */
|
|
279
279
|
export const collect = dual<
|
|
@@ -573,7 +573,7 @@ export const forEach = dual<
|
|
|
573
573
|
const loop: STM.STM<void, E, R> = suspend(() => {
|
|
574
574
|
const next = iterator.next()
|
|
575
575
|
if (next.done) {
|
|
576
|
-
return
|
|
576
|
+
return void_
|
|
577
577
|
}
|
|
578
578
|
return pipe(f(next.value), core.flatMap(() => loop))
|
|
579
579
|
})
|
|
@@ -713,7 +713,7 @@ export const if_ = dual<
|
|
|
713
713
|
|
|
714
714
|
/** @internal */
|
|
715
715
|
export const ignore = <A, E, R>(self: STM.STM<A, E, R>): STM.STM<void, never, R> =>
|
|
716
|
-
match(self, { onFailure: () =>
|
|
716
|
+
match(self, { onFailure: () => void_, onSuccess: () => void_ })
|
|
717
717
|
|
|
718
718
|
/** @internal */
|
|
719
719
|
export const isFailure = <A, E, R>(self: STM.STM<A, E, R>): STM.STM<boolean, never, R> =>
|
|
@@ -806,7 +806,7 @@ const loopDiscardLoop = <Z, R, E, X>(
|
|
|
806
806
|
core.flatMap(() => loopDiscardLoop(inc(initial), cont, inc, body))
|
|
807
807
|
)
|
|
808
808
|
}
|
|
809
|
-
return
|
|
809
|
+
return void_
|
|
810
810
|
}
|
|
811
811
|
|
|
812
812
|
/** @internal */
|
|
@@ -872,7 +872,7 @@ export const none = <A, E, R>(self: STM.STM<Option.Option<A>, E, R>): STM.STM<vo
|
|
|
872
872
|
core.matchSTM(self, {
|
|
873
873
|
onFailure: (e) => core.fail(Option.some(e)),
|
|
874
874
|
onSuccess: Option.match({
|
|
875
|
-
onNone: () =>
|
|
875
|
+
onNone: () => void_,
|
|
876
876
|
onSome: () => core.fail(Option.none())
|
|
877
877
|
})
|
|
878
878
|
})
|
|
@@ -1370,7 +1370,11 @@ export const try_: {
|
|
|
1370
1370
|
}
|
|
1371
1371
|
|
|
1372
1372
|
/** @internal */
|
|
1373
|
-
|
|
1373
|
+
const void_: STM.STM<void> = core.succeed(void 0)
|
|
1374
|
+
export {
|
|
1375
|
+
/** @internal */
|
|
1376
|
+
void_ as void
|
|
1377
|
+
}
|
|
1374
1378
|
|
|
1375
1379
|
/** @internal */
|
|
1376
1380
|
export const unless = dual<
|
package/src/internal/stm/tMap.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as RA from "../../Array.js"
|
|
1
2
|
import * as Chunk from "../../Chunk.js"
|
|
2
3
|
import * as Equal from "../../Equal.js"
|
|
3
4
|
import type { LazyArg } from "../../Function.js"
|
|
@@ -6,7 +7,6 @@ import * as Hash from "../../Hash.js"
|
|
|
6
7
|
import * as HashMap from "../../HashMap.js"
|
|
7
8
|
import * as Option from "../../Option.js"
|
|
8
9
|
import { hasProperty } from "../../Predicate.js"
|
|
9
|
-
import * as RA from "../../ReadonlyArray.js"
|
|
10
10
|
import * as STM from "../../STM.js"
|
|
11
11
|
import type * as TArray from "../../TArray.js"
|
|
12
12
|
import type * as TMap from "../../TMap.js"
|
|
@@ -187,7 +187,7 @@ export const forEach = dual<
|
|
|
187
187
|
reduceSTM(
|
|
188
188
|
self,
|
|
189
189
|
void 0 as void,
|
|
190
|
-
(_, value, key) => stm.
|
|
190
|
+
(_, value, key) => stm.asVoid(f(key, value))
|
|
191
191
|
))
|
|
192
192
|
|
|
193
193
|
/** @internal */
|
|
@@ -501,7 +501,7 @@ export const setIfAbsent = dual<
|
|
|
501
501
|
get(self, key),
|
|
502
502
|
Option.match({
|
|
503
503
|
onNone: () => set(self, key, value),
|
|
504
|
-
onSome: () => stm.
|
|
504
|
+
onSome: () => stm.void
|
|
505
505
|
})
|
|
506
506
|
))
|
|
507
507
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import * as Array from "../../Array.js"
|
|
1
2
|
import * as Chunk from "../../Chunk.js"
|
|
2
3
|
import { dual, pipe } from "../../Function.js"
|
|
3
4
|
import * as Option from "../../Option.js"
|
|
4
5
|
import type * as Order from "../../Order.js"
|
|
5
6
|
import type { Predicate } from "../../Predicate.js"
|
|
6
|
-
import * as ReadonlyArray from "../../ReadonlyArray.js"
|
|
7
7
|
import * as SortedMap from "../../SortedMap.js"
|
|
8
8
|
import type * as STM from "../../STM.js"
|
|
9
9
|
import type * as TPriorityQueue from "../../TPriorityQueue.js"
|
|
@@ -42,7 +42,7 @@ export const fromIterable =
|
|
|
42
42
|
<A>(order: Order.Order<A>) => (iterable: Iterable<A>): STM.STM<TPriorityQueue.TPriorityQueue<A>> =>
|
|
43
43
|
pipe(
|
|
44
44
|
tRef.make(
|
|
45
|
-
Array.
|
|
45
|
+
Array.fromIterable(iterable).reduce(
|
|
46
46
|
(map, value) =>
|
|
47
47
|
pipe(
|
|
48
48
|
map,
|
|
@@ -52,8 +52,8 @@ export const fromIterable =
|
|
|
52
52
|
map,
|
|
53
53
|
SortedMap.get(value),
|
|
54
54
|
Option.match({
|
|
55
|
-
onNone: () =>
|
|
56
|
-
onSome:
|
|
55
|
+
onNone: () => Array.of(value),
|
|
56
|
+
onSome: Array.prepend(value)
|
|
57
57
|
})
|
|
58
58
|
)
|
|
59
59
|
)
|
|
@@ -86,8 +86,8 @@ export const offer = dual<
|
|
|
86
86
|
map,
|
|
87
87
|
value,
|
|
88
88
|
Option.match(SortedMap.get(map, value), {
|
|
89
|
-
onNone: () =>
|
|
90
|
-
onSome:
|
|
89
|
+
onNone: () => Array.of(value),
|
|
90
|
+
onSome: Array.prepend(value)
|
|
91
91
|
})
|
|
92
92
|
)))
|
|
93
93
|
|
|
@@ -97,14 +97,14 @@ export const offerAll = dual<
|
|
|
97
97
|
<A>(self: TPriorityQueue.TPriorityQueue<A>, values: Iterable<A>) => STM.STM<void>
|
|
98
98
|
>(2, (self, values) =>
|
|
99
99
|
tRef.update(self.ref, (map) =>
|
|
100
|
-
Array.
|
|
100
|
+
Array.fromIterable(values).reduce(
|
|
101
101
|
(map, value) =>
|
|
102
102
|
SortedMap.set(
|
|
103
103
|
map,
|
|
104
104
|
value,
|
|
105
105
|
Option.match(SortedMap.get(map, value), {
|
|
106
|
-
onNone: () =>
|
|
107
|
-
onSome:
|
|
106
|
+
onNone: () => Array.of(value),
|
|
107
|
+
onSome: Array.prepend(value)
|
|
108
108
|
})
|
|
109
109
|
),
|
|
110
110
|
map
|
|
@@ -147,7 +147,7 @@ export const retainIf = dual<
|
|
|
147
147
|
self.ref,
|
|
148
148
|
(map) =>
|
|
149
149
|
SortedMap.reduce(map, SortedMap.empty(SortedMap.getOrder(map)), (map, value, key) => {
|
|
150
|
-
const filtered: ReadonlyArray<A> =
|
|
150
|
+
const filtered: ReadonlyArray<A> = Array.filter(value, predicate)
|
|
151
151
|
return filtered.length > 0 ?
|
|
152
152
|
SortedMap.set(map, key, filtered as [A, ...Array<A>]) :
|
|
153
153
|
SortedMap.remove(map, key)
|
|
@@ -228,7 +228,7 @@ export const takeUpTo = dual<
|
|
|
228
228
|
let next: IteratorResult<readonly [A, [A, ...Array<A>]], any>
|
|
229
229
|
while ((next = iterator.next()) && !next.done && index < n) {
|
|
230
230
|
const [key, value] = next.value
|
|
231
|
-
const [left, right] = pipe(value,
|
|
231
|
+
const [left, right] = pipe(value, Array.splitAt(n - index))
|
|
232
232
|
for (const value of left) {
|
|
233
233
|
builder.push(value)
|
|
234
234
|
}
|