effect 2.4.18 → 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/Readable/package.json +6 -0
- package/Record/package.json +6 -0
- package/RegExp/package.json +6 -0
- package/Subscribable/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/Duration.js +39 -2
- package/dist/cjs/Duration.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 +8 -7
- 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/Readable.js +79 -0
- package/dist/cjs/Readable.js.map +1 -0
- package/dist/cjs/{ReadonlyRecord.js → Record.js} +29 -29
- package/dist/cjs/Record.js.map +1 -0
- package/dist/cjs/RegExp.js +24 -0
- package/dist/cjs/RegExp.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/Subscribable.js +91 -0
- package/dist/cjs/Subscribable.js.map +1 -0
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/TestAnnotation.js +2 -1
- package/dist/cjs/TestAnnotation.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 +14 -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 +6 -5
- 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 +48 -49
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +68 -40
- 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 +41 -114
- 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 +6 -1
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/errors.js +13 -0
- package/dist/cjs/internal/errors.js.map +1 -0
- 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 +106 -66
- 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 +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/matcher.js +5 -4
- package/dist/cjs/internal/matcher.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/ref.js +6 -1
- package/dist/cjs/internal/ref.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/intervals.js +2 -1
- package/dist/cjs/internal/schedule/intervals.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/subscriptionRef.js +8 -0
- package/dist/cjs/internal/subscriptionRef.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 +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 +16 -0
- 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/Readable.d.ts +55 -0
- package/dist/dts/Readable.d.ts.map +1 -0
- package/dist/dts/{ReadonlyRecord.d.ts → Record.d.ts} +29 -30
- package/dist/dts/Record.d.ts.map +1 -0
- package/dist/dts/Ref.d.ts +2 -2
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/RegExp.d.ts +17 -0
- package/dist/dts/RegExp.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 +59 -0
- package/dist/dts/Subscribable.d.ts.map +1 -0
- package/dist/dts/SubscriptionRef.d.ts +2 -2
- package/dist/dts/SubscriptionRef.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 +22 -4
- 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/errors.d.ts +5 -0
- package/dist/dts/internal/errors.d.ts.map +1 -0
- 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/Duration.js +38 -1
- package/dist/esm/Duration.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 +7 -6
- 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/Readable.js +45 -0
- package/dist/esm/Readable.js.map +1 -0
- package/dist/esm/{ReadonlyRecord.js → Record.js} +29 -29
- package/dist/esm/Record.js.map +1 -0
- package/dist/esm/RegExp.js +17 -0
- package/dist/esm/RegExp.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/Subscribable.js +56 -0
- package/dist/esm/Subscribable.js.map +1 -0
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/TestAnnotation.js +2 -1
- package/dist/esm/TestAnnotation.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 +22 -4
- 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 +6 -5
- 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 +48 -49
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/core-effect.js +64 -38
- 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 +37 -108
- 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 +6 -1
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/errors.js +6 -0
- package/dist/esm/internal/errors.js.map +1 -0
- 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 +104 -63
- 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 +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/matcher.js +4 -3
- package/dist/esm/internal/matcher.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/ref.js +6 -1
- package/dist/esm/internal/ref.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/intervals.js +2 -1
- package/dist/esm/internal/schedule/intervals.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/subscriptionRef.js +8 -0
- package/dist/esm/internal/subscriptionRef.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 +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 +45 -13
- 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/Duration.ts +54 -1
- 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 +8 -7
- 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/Readable.ts +92 -0
- package/src/{ReadonlyRecord.ts → Record.ts} +28 -29
- package/src/Ref.ts +2 -2
- package/src/RegExp.ts +17 -0
- 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/Subscribable.ts +99 -0
- package/src/SubscriptionRef.ts +2 -2
- package/src/TestAnnotation.ts +2 -1
- 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 +26 -4
- package/src/internal/{readonlyArray.ts → array.ts} +1 -1
- package/src/internal/cache.ts +40 -40
- package/src/internal/cause.ts +8 -8
- 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 +51 -55
- package/src/internal/core-effect.ts +149 -134
- package/src/internal/core-stream.ts +5 -2
- package/src/internal/core.ts +64 -200
- package/src/internal/dataSource.ts +19 -20
- package/src/internal/differ/readonlyArrayPatch.ts +6 -6
- package/src/internal/effect/circular.ts +9 -3
- package/src/internal/errors.ts +7 -0
- 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 +157 -123
- package/src/internal/groupBy.ts +4 -4
- package/src/internal/hashMap.ts +1 -2
- 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/matcher.ts +5 -3
- 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/ref.ts +8 -2
- package/src/internal/reloadable.ts +1 -1
- package/src/internal/runtime.ts +5 -5
- package/src/internal/schedule/intervals.ts +2 -1
- 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/subscriptionRef.ts +8 -0
- 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 +1 -2
- 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/queue.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Array from "../Array.js"
|
|
1
2
|
import * as Chunk from "../Chunk.js"
|
|
2
3
|
import type * as Deferred from "../Deferred.js"
|
|
3
4
|
import type * as Effect from "../Effect.js"
|
|
@@ -8,7 +9,6 @@ import * as Option from "../Option.js"
|
|
|
8
9
|
import { pipeArguments } from "../Pipeable.js"
|
|
9
10
|
import { hasProperty } from "../Predicate.js"
|
|
10
11
|
import type * as Queue from "../Queue.js"
|
|
11
|
-
import * as ReadonlyArray from "../ReadonlyArray.js"
|
|
12
12
|
import * as core from "./core.js"
|
|
13
13
|
import * as fiberRuntime from "./fiberRuntime.js"
|
|
14
14
|
|
|
@@ -125,7 +125,7 @@ class QueueImpl<in out A> implements Queue.Queue<A> {
|
|
|
125
125
|
),
|
|
126
126
|
core.zipRight(this.strategy.shutdown),
|
|
127
127
|
core.whenEffect(core.deferredSucceed(this.shutdownHook, void 0)),
|
|
128
|
-
core.
|
|
128
|
+
core.asVoid
|
|
129
129
|
)
|
|
130
130
|
})
|
|
131
131
|
)
|
|
@@ -208,11 +208,11 @@ class QueueImpl<in out A> implements Queue.Queue<A> {
|
|
|
208
208
|
if (MutableRef.get(this.shutdownFlag)) {
|
|
209
209
|
return core.interrupt
|
|
210
210
|
}
|
|
211
|
-
const values =
|
|
211
|
+
const values = Array.fromIterable(iterable)
|
|
212
212
|
const pTakers = this.queue.length() === 0
|
|
213
|
-
?
|
|
214
|
-
:
|
|
215
|
-
const [forTakers, remaining] = pipe(values,
|
|
213
|
+
? Array.fromIterable(unsafePollN(this.takers, values.length))
|
|
214
|
+
: Array.empty
|
|
215
|
+
const [forTakers, remaining] = pipe(values, Array.splitAt(pTakers.length))
|
|
216
216
|
for (let i = 0; i < pTakers.length; i++) {
|
|
217
217
|
const taker = (pTakers as any)[i]
|
|
218
218
|
const item = forTakers[i]
|
|
@@ -548,9 +548,9 @@ class BackPressureStrategy<in out A> implements Queue.Strategy<A> {
|
|
|
548
548
|
isLastItem ?
|
|
549
549
|
pipe(
|
|
550
550
|
core.deferredInterruptWith(deferred, fiberId),
|
|
551
|
-
core.
|
|
551
|
+
core.asVoid
|
|
552
552
|
) :
|
|
553
|
-
core.
|
|
553
|
+
core.void,
|
|
554
554
|
false,
|
|
555
555
|
false
|
|
556
556
|
)
|
|
@@ -602,7 +602,7 @@ class BackPressureStrategy<in out A> implements Queue.Strategy<A> {
|
|
|
602
602
|
}
|
|
603
603
|
|
|
604
604
|
unsafeOffer(iterable: Iterable<A>, deferred: Deferred.Deferred<boolean>): void {
|
|
605
|
-
const stuff = Array.
|
|
605
|
+
const stuff = Array.fromIterable(iterable)
|
|
606
606
|
for (let i = 0; i < stuff.length; i++) {
|
|
607
607
|
const value = stuff[i]
|
|
608
608
|
if (i === stuff.length - 1) {
|
|
@@ -630,7 +630,7 @@ class DroppingStrategy<in out A> implements Queue.Strategy<A> {
|
|
|
630
630
|
}
|
|
631
631
|
|
|
632
632
|
get shutdown(): Effect.Effect<void> {
|
|
633
|
-
return core.
|
|
633
|
+
return core.void
|
|
634
634
|
}
|
|
635
635
|
|
|
636
636
|
onCompleteTakersWithEmptyQueue(): void {
|
|
@@ -662,7 +662,7 @@ class SlidingStrategy<in out A> implements Queue.Strategy<A> {
|
|
|
662
662
|
}
|
|
663
663
|
|
|
664
664
|
get shutdown(): Effect.Effect<void> {
|
|
665
|
-
return core.
|
|
665
|
+
return core.void
|
|
666
666
|
}
|
|
667
667
|
|
|
668
668
|
onCompleteTakersWithEmptyQueue(): void {
|
|
@@ -38,7 +38,7 @@ const tokenBucket = (limit: number, window: DurationInput): Effect.Effect<
|
|
|
38
38
|
const refill: Effect.Effect<void> = Effect.sleep(millisPerToken).pipe(
|
|
39
39
|
Effect.zipRight(latch.releaseAll),
|
|
40
40
|
Effect.zipRight(semaphore.release(1)),
|
|
41
|
-
Effect.flatMap((free) => free === limit ? Effect.
|
|
41
|
+
Effect.flatMap((free) => free === limit ? Effect.void : refill)
|
|
42
42
|
)
|
|
43
43
|
yield* _(
|
|
44
44
|
latch.take(1),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import * as Array from "../../Array.js"
|
|
1
2
|
import * as Option from "../../Option.js"
|
|
2
|
-
import * as ReadonlyArray from "../../ReadonlyArray.js"
|
|
3
3
|
import type * as RBT from "../../RedBlackTree.js"
|
|
4
4
|
import type { RedBlackTreeImpl } from "../redBlackTree.js"
|
|
5
5
|
import type * as Node from "./node.js"
|
|
@@ -83,7 +83,7 @@ export class RedBlackTreeIterator<in out K, out V> implements Iterator<[K, V]> {
|
|
|
83
83
|
* Returns the key
|
|
84
84
|
*/
|
|
85
85
|
get entry(): Option.Option<[K, V]> {
|
|
86
|
-
return Option.map(
|
|
86
|
+
return Option.map(Array.last(this.stack), (node) => [node.key, node.value])
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
/**
|
package/src/internal/ref.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { dual } from "../Function.js"
|
|
|
3
3
|
import * as MutableRef from "../MutableRef.js"
|
|
4
4
|
import * as Option from "../Option.js"
|
|
5
5
|
import { pipeArguments } from "../Pipeable.js"
|
|
6
|
+
import * as Readable from "../Readable.js"
|
|
6
7
|
import type * as Ref from "../Ref.js"
|
|
7
8
|
import * as core from "./core.js"
|
|
8
9
|
|
|
@@ -17,7 +18,12 @@ export const refVariance = {
|
|
|
17
18
|
|
|
18
19
|
class RefImpl<in out A> implements Ref.Ref<A> {
|
|
19
20
|
readonly [RefTypeId] = refVariance
|
|
20
|
-
|
|
21
|
+
readonly [Readable.TypeId]: Readable.TypeId
|
|
22
|
+
constructor(readonly ref: MutableRef.MutableRef<A>) {
|
|
23
|
+
this[Readable.TypeId] = Readable.TypeId
|
|
24
|
+
this.get = core.sync(() => MutableRef.get(this.ref))
|
|
25
|
+
}
|
|
26
|
+
readonly get: Effect.Effect<A>
|
|
21
27
|
modify<B>(f: (a: A) => readonly [B, A]): Effect.Effect<B> {
|
|
22
28
|
return core.sync(() => {
|
|
23
29
|
const current = MutableRef.get(this.ref)
|
|
@@ -40,7 +46,7 @@ export const unsafeMake = <A>(value: A): Ref.Ref<A> => new RefImpl(MutableRef.ma
|
|
|
40
46
|
export const make = <A>(value: A): Effect.Effect<Ref.Ref<A>> => core.sync(() => unsafeMake(value))
|
|
41
47
|
|
|
42
48
|
/** @internal */
|
|
43
|
-
export const get = <A>(self: Ref.Ref<A>) => self.
|
|
49
|
+
export const get = <A>(self: Ref.Ref<A>) => self.get
|
|
44
50
|
|
|
45
51
|
/** @internal */
|
|
46
52
|
export const set = dual<
|
package/src/internal/runtime.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { equals } from "effect/Equal"
|
|
2
|
+
import type * as ReadonlyArray from "../Array.js"
|
|
2
3
|
import type * as Cause from "../Cause.js"
|
|
3
4
|
import * as Context from "../Context.js"
|
|
4
5
|
import type * as Effect from "../Effect.js"
|
|
@@ -12,7 +13,6 @@ import * as Inspectable from "../Inspectable.js"
|
|
|
12
13
|
import * as Option from "../Option.js"
|
|
13
14
|
import { pipeArguments } from "../Pipeable.js"
|
|
14
15
|
import * as Predicate from "../Predicate.js"
|
|
15
|
-
import type * as ReadonlyArray from "../ReadonlyArray.js"
|
|
16
16
|
import type * as Runtime from "../Runtime.js"
|
|
17
17
|
import type * as RuntimeFlags from "../RuntimeFlags.js"
|
|
18
18
|
import * as _scheduler from "../Scheduler.js"
|
|
@@ -66,7 +66,7 @@ export const unsafeFork = <R>(runtime: Runtime.Runtime<R>) =>
|
|
|
66
66
|
core.scopeAddFinalizer(
|
|
67
67
|
closeableScope,
|
|
68
68
|
core.fiberIdWith((id) =>
|
|
69
|
-
equals(id, fiberRuntime.id()) ? core.
|
|
69
|
+
equals(id, fiberRuntime.id()) ? core.void : core.interruptAsFiber(fiberRuntime, id)
|
|
70
70
|
)
|
|
71
71
|
),
|
|
72
72
|
core.onExit(self, (exit) => _scope.close(closeableScope, exit))
|
|
@@ -135,7 +135,7 @@ class AsyncFiberExceptionImpl<A, E = never> extends Error implements Runtime.Asy
|
|
|
135
135
|
readonly _tag = "AsyncFiberException"
|
|
136
136
|
constructor(readonly fiber: Fiber.RuntimeFiber<A, E>) {
|
|
137
137
|
super(
|
|
138
|
-
`Fiber #${fiber.id().id} cannot be
|
|
138
|
+
`Fiber #${fiber.id().id} cannot be resolved synchronously. This is caused by using runSync on an effect that performs async work`
|
|
139
139
|
)
|
|
140
140
|
this.name = this._tag
|
|
141
141
|
this.stack = this.message
|
|
@@ -483,12 +483,12 @@ export const asyncEffect = <A, E, R, R3, E2, R2>(
|
|
|
483
483
|
onFailure: (cause) => core.deferredFailCause(deferred, cause),
|
|
484
484
|
onSuccess: (cleanup_) => {
|
|
485
485
|
cleanup = cleanup_
|
|
486
|
-
return core.
|
|
486
|
+
return core.void
|
|
487
487
|
}
|
|
488
488
|
}
|
|
489
489
|
)
|
|
490
490
|
)),
|
|
491
|
-
restore(core.onInterrupt(core.deferredAwait(deferred), () => cleanup ?? core.
|
|
491
|
+
restore(core.onInterrupt(core.deferredAwait(deferred), () => cleanup ?? core.void))
|
|
492
492
|
)
|
|
493
493
|
))
|
|
494
494
|
)
|
|
@@ -3,6 +3,7 @@ import { dual, pipe } from "../../Function.js"
|
|
|
3
3
|
import * as Option from "../../Option.js"
|
|
4
4
|
import * as Interval from "../../ScheduleInterval.js"
|
|
5
5
|
import type * as Intervals from "../../ScheduleIntervals.js"
|
|
6
|
+
import { getBugErrorMessage } from "../errors.js"
|
|
6
7
|
|
|
7
8
|
/** @internal */
|
|
8
9
|
const IntervalsSymbolKey = "effect/ScheduleIntervals"
|
|
@@ -109,7 +110,7 @@ const unionLoop = (
|
|
|
109
110
|
that = Chunk.tailNonEmpty(that)
|
|
110
111
|
}
|
|
111
112
|
} else {
|
|
112
|
-
throw new Error("
|
|
113
|
+
throw new Error(getBugErrorMessage("Intervals.unionLoop"))
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
return make(pipe(acc, Chunk.prepend(interval), Chunk.reverse))
|
package/src/internal/schedule.ts
CHANGED
|
@@ -18,7 +18,6 @@ import type * as Schedule from "../Schedule.js"
|
|
|
18
18
|
import * as ScheduleDecision from "../ScheduleDecision.js"
|
|
19
19
|
import * as Interval from "../ScheduleInterval.js"
|
|
20
20
|
import * as Intervals from "../ScheduleIntervals.js"
|
|
21
|
-
import type * as Types from "../Types.js"
|
|
22
21
|
import * as internalCause from "./cause.js"
|
|
23
22
|
import * as effect from "./core-effect.js"
|
|
24
23
|
import * as core from "./core.js"
|
|
@@ -247,7 +246,7 @@ export const as = dual<
|
|
|
247
246
|
>(2, (self, out) => map(self, () => out))
|
|
248
247
|
|
|
249
248
|
/** @internal */
|
|
250
|
-
export const
|
|
249
|
+
export const asVoid = <Out, In, R>(
|
|
251
250
|
self: Schedule.Schedule<Out, In, R>
|
|
252
251
|
): Schedule.Schedule<void, In, R> => map(self, constVoid)
|
|
253
252
|
|
|
@@ -1903,7 +1902,7 @@ export const retry_combined: {
|
|
|
1903
1902
|
self: Effect.Effect<A, E, R>
|
|
1904
1903
|
) => Effect.Retry.Return<R, E, A, O>
|
|
1905
1904
|
<B, E, R1>(
|
|
1906
|
-
policy: Schedule.Schedule<B,
|
|
1905
|
+
policy: Schedule.Schedule<B, NoInfer<E>, R1>
|
|
1907
1906
|
): <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R1 | R>
|
|
1908
1907
|
<A, E, R, O extends Effect.Retry.Options<E>>(
|
|
1909
1908
|
self: Effect.Effect<A, E, R>,
|
|
@@ -1949,13 +1948,13 @@ export const retry_combined: {
|
|
|
1949
1948
|
/** @internal */
|
|
1950
1949
|
export const retryOrElse_Effect = dual<
|
|
1951
1950
|
<A1, E, R1, A2, E2, R2>(
|
|
1952
|
-
policy: Schedule.Schedule<A1,
|
|
1953
|
-
orElse: (e:
|
|
1951
|
+
policy: Schedule.Schedule<A1, NoInfer<E>, R1>,
|
|
1952
|
+
orElse: (e: NoInfer<E>, out: A1) => Effect.Effect<A2, E2, R2>
|
|
1954
1953
|
) => <A, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A | A2, E2, R | R1 | R2>,
|
|
1955
1954
|
<A, E, R, A1, R1, A2, E2, R2>(
|
|
1956
1955
|
self: Effect.Effect<A, E, R>,
|
|
1957
|
-
policy: Schedule.Schedule<A1,
|
|
1958
|
-
orElse: (e:
|
|
1956
|
+
policy: Schedule.Schedule<A1, NoInfer<E>, R1>,
|
|
1957
|
+
orElse: (e: NoInfer<E>, out: A1) => Effect.Effect<A2, E2, R2>
|
|
1959
1958
|
) => Effect.Effect<A | A2, E2, R | R1 | R2>
|
|
1960
1959
|
>(3, (self, policy, orElse) =>
|
|
1961
1960
|
core.flatMap(
|
|
@@ -2060,7 +2059,7 @@ export const elapsed: Schedule.Schedule<Duration.Duration> = makeWithState(
|
|
|
2060
2059
|
export const forever: Schedule.Schedule<number> = unfold(0, (n) => n + 1)
|
|
2061
2060
|
|
|
2062
2061
|
/** @internal */
|
|
2063
|
-
export const once: Schedule.Schedule<void> =
|
|
2062
|
+
export const once: Schedule.Schedule<void> = asVoid(recurs(1))
|
|
2064
2063
|
|
|
2065
2064
|
/** @internal */
|
|
2066
|
-
export const stop: Schedule.Schedule<void> =
|
|
2065
|
+
export const stop: Schedule.Schedule<void> = asVoid(recurs(0))
|
|
@@ -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 => {
|