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/core.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as Array from "../Array.js"
|
|
1
2
|
import type * as Cause from "../Cause.js"
|
|
2
3
|
import * as Chunk from "../Chunk.js"
|
|
3
4
|
import * as Context from "../Context.js"
|
|
@@ -27,7 +28,6 @@ import * as MutableRef from "../MutableRef.js"
|
|
|
27
28
|
import * as Option from "../Option.js"
|
|
28
29
|
import { pipeArguments } from "../Pipeable.js"
|
|
29
30
|
import { hasProperty, isObject, isPromiseLike, isString, type Predicate, type Refinement } from "../Predicate.js"
|
|
30
|
-
import * as ReadonlyArray from "../ReadonlyArray.js"
|
|
31
31
|
import type * as Request from "../Request.js"
|
|
32
32
|
import type * as BlockedRequests from "../RequestBlock.js"
|
|
33
33
|
import type * as RequestResolver from "../RequestResolver.js"
|
|
@@ -35,12 +35,13 @@ import type * as RuntimeFlags from "../RuntimeFlags.js"
|
|
|
35
35
|
import * as RuntimeFlagsPatch from "../RuntimeFlagsPatch.js"
|
|
36
36
|
import type * as Scope from "../Scope.js"
|
|
37
37
|
import type * as Tracer from "../Tracer.js"
|
|
38
|
-
import type {
|
|
38
|
+
import type { NotFunction } from "../Types.js"
|
|
39
39
|
import * as _blockedRequests from "./blockedRequests.js"
|
|
40
40
|
import * as internalCause from "./cause.js"
|
|
41
41
|
import * as deferred from "./deferred.js"
|
|
42
42
|
import * as internalDiffer from "./differ.js"
|
|
43
43
|
import { effectVariance, StructuralCommitPrototype } from "./effectable.js"
|
|
44
|
+
import { getBugErrorMessage } from "./errors.js"
|
|
44
45
|
import type * as FiberRuntime from "./fiberRuntime.js"
|
|
45
46
|
import type * as fiberScope from "./fiberScope.js"
|
|
46
47
|
import * as DeferredOpCodes from "./opCodes/deferred.js"
|
|
@@ -429,7 +430,7 @@ export const as: {
|
|
|
429
430
|
)
|
|
430
431
|
|
|
431
432
|
/* @internal */
|
|
432
|
-
export const
|
|
433
|
+
export const asVoid = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<void, E, R> => as(self, void 0)
|
|
433
434
|
|
|
434
435
|
/* @internal */
|
|
435
436
|
export const custom: {
|
|
@@ -469,7 +470,7 @@ export const custom: {
|
|
|
469
470
|
break
|
|
470
471
|
}
|
|
471
472
|
default: {
|
|
472
|
-
throw new Error("
|
|
473
|
+
throw new Error(getBugErrorMessage("you're not supposed to end up here"))
|
|
473
474
|
}
|
|
474
475
|
}
|
|
475
476
|
return wrapper
|
|
@@ -514,7 +515,7 @@ export const async = <A, E = never, R = never>(
|
|
|
514
515
|
if (controllerRef) {
|
|
515
516
|
controllerRef.abort()
|
|
516
517
|
}
|
|
517
|
-
return cancelerRef ??
|
|
518
|
+
return cancelerRef ?? void_
|
|
518
519
|
}) :
|
|
519
520
|
effect
|
|
520
521
|
})
|
|
@@ -885,8 +886,8 @@ export const forEachSequential: {
|
|
|
885
886
|
2,
|
|
886
887
|
<A, B, E, R>(self: Iterable<A>, f: (a: A, i: number) => Effect.Effect<B, E, R>): Effect.Effect<Array<B>, E, R> =>
|
|
887
888
|
suspend(() => {
|
|
888
|
-
const arr =
|
|
889
|
-
const ret =
|
|
889
|
+
const arr = Array.fromIterable(self)
|
|
890
|
+
const ret = Array.allocate<B>(arr.length)
|
|
890
891
|
let i = 0
|
|
891
892
|
return as(
|
|
892
893
|
whileLoop({
|
|
@@ -896,7 +897,7 @@ export const forEachSequential: {
|
|
|
896
897
|
ret[i++] = b
|
|
897
898
|
}
|
|
898
899
|
}),
|
|
899
|
-
ret
|
|
900
|
+
ret as Array<B>
|
|
900
901
|
)
|
|
901
902
|
})
|
|
902
903
|
)
|
|
@@ -909,7 +910,7 @@ export const forEachSequentialDiscard: {
|
|
|
909
910
|
2,
|
|
910
911
|
<A, B, E, R>(self: Iterable<A>, f: (a: A, i: number) => Effect.Effect<B, E, R>): Effect.Effect<void, E, R> =>
|
|
911
912
|
suspend(() => {
|
|
912
|
-
const arr =
|
|
913
|
+
const arr = Array.fromIterable(self)
|
|
913
914
|
let i = 0
|
|
914
915
|
return whileLoop({
|
|
915
916
|
while: () => i < arr.length,
|
|
@@ -925,35 +926,33 @@ export const forEachSequentialDiscard: {
|
|
|
925
926
|
export const if_ = dual<
|
|
926
927
|
<A1, E1, R1, A2, E2, R2>(
|
|
927
928
|
options: {
|
|
928
|
-
readonly onTrue: Effect.Effect<A1, E1, R1
|
|
929
|
-
readonly onFalse: Effect.Effect<A2, E2, R2
|
|
929
|
+
readonly onTrue: LazyArg<Effect.Effect<A1, E1, R1>>
|
|
930
|
+
readonly onFalse: LazyArg<Effect.Effect<A2, E2, R2>>
|
|
930
931
|
}
|
|
931
932
|
) => <E = never, R = never>(
|
|
932
933
|
self: Effect.Effect<boolean, E, R> | boolean
|
|
933
934
|
) => Effect.Effect<A1 | A2, E | E1 | E2, R | R1 | R2>,
|
|
934
|
-
|
|
935
|
-
<
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
): Effect.Effect<A1 | A2, E1 | E2, R1 | R2>
|
|
942
|
-
<E, R, A1, E1, R1, A2, E2, R2>(
|
|
943
|
-
self: Effect.Effect<boolean, E, R>,
|
|
944
|
-
options: {
|
|
945
|
-
readonly onTrue: Effect.Effect<A1, E1, R1>
|
|
946
|
-
readonly onFalse: Effect.Effect<A2, E2, R2>
|
|
947
|
-
}
|
|
948
|
-
): Effect.Effect<A1 | A2, E1 | E2 | E, R1 | R2 | R>
|
|
949
|
-
}
|
|
935
|
+
<A1, E1, R1, A2, E2, R2, E = never, R = never>(
|
|
936
|
+
self: Effect.Effect<boolean, E, R> | boolean,
|
|
937
|
+
options: {
|
|
938
|
+
readonly onTrue: LazyArg<Effect.Effect<A1, E1, R1>>
|
|
939
|
+
readonly onFalse: LazyArg<Effect.Effect<A2, E2, R2>>
|
|
940
|
+
}
|
|
941
|
+
) => Effect.Effect<A1 | A2, E1 | E2 | E, R1 | R2 | R>
|
|
950
942
|
>(
|
|
951
943
|
(args) => typeof args[0] === "boolean" || isEffect(args[0]),
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
944
|
+
<A1, E1, R1, A2, E2, R2, E = never, R = never>(
|
|
945
|
+
self: Effect.Effect<boolean, E, R> | boolean,
|
|
946
|
+
options: {
|
|
947
|
+
readonly onTrue: LazyArg<Effect.Effect<A1, E1, R1>>
|
|
948
|
+
readonly onFalse: LazyArg<Effect.Effect<A2, E2, R2>>
|
|
949
|
+
}
|
|
950
|
+
): Effect.Effect<A1 | A2, E1 | E2 | E, R1 | R2 | R> =>
|
|
951
|
+
isEffect(self)
|
|
952
|
+
? flatMap(self, (b): Effect.Effect<A1 | A2, E1 | E2, R1 | R2> => (b ? options.onTrue() : options.onFalse()))
|
|
953
|
+
: self
|
|
954
|
+
? options.onTrue()
|
|
955
|
+
: options.onFalse()
|
|
957
956
|
)
|
|
958
957
|
|
|
959
958
|
/* @internal */
|
|
@@ -1064,7 +1063,7 @@ export const onError: {
|
|
|
1064
1063
|
self: Effect.Effect<A, E, R>,
|
|
1065
1064
|
cleanup: (cause: Cause.Cause<E>) => Effect.Effect<X, never, R2>
|
|
1066
1065
|
): Effect.Effect<A, E, R2 | R> =>
|
|
1067
|
-
onExit(self, (exit) => exitIsSuccess(exit) ?
|
|
1066
|
+
onExit(self, (exit) => exitIsSuccess(exit) ? void_ : cleanup(exit.effect_instruction_i0)))
|
|
1068
1067
|
|
|
1069
1068
|
/* @internal */
|
|
1070
1069
|
export const onExit: {
|
|
@@ -1113,9 +1112,9 @@ export const onInterrupt: {
|
|
|
1113
1112
|
exitMatch({
|
|
1114
1113
|
onFailure: (cause) =>
|
|
1115
1114
|
internalCause.isInterruptedOnly(cause)
|
|
1116
|
-
?
|
|
1117
|
-
:
|
|
1118
|
-
onSuccess: () =>
|
|
1115
|
+
? asVoid(cleanup(internalCause.interruptors(cause)))
|
|
1116
|
+
: void_,
|
|
1117
|
+
onSuccess: () => void_
|
|
1119
1118
|
})
|
|
1120
1119
|
))
|
|
1121
1120
|
|
|
@@ -1157,7 +1156,7 @@ export const partitionMap = <A, A1, A2>(
|
|
|
1157
1156
|
elements: Iterable<A>,
|
|
1158
1157
|
f: (a: A) => Either.Either<A2, A1>
|
|
1159
1158
|
): [left: Array<A1>, right: Array<A2>] =>
|
|
1160
|
-
|
|
1159
|
+
Array.fromIterable(elements).reduceRight(
|
|
1161
1160
|
([lefts, rights], current) => {
|
|
1162
1161
|
const either = f(current)
|
|
1163
1162
|
switch (either._tag) {
|
|
@@ -1169,7 +1168,7 @@ export const partitionMap = <A, A1, A2>(
|
|
|
1169
1168
|
}
|
|
1170
1169
|
}
|
|
1171
1170
|
},
|
|
1172
|
-
[
|
|
1171
|
+
[Array.empty<A1>(), Array.empty<A2>()]
|
|
1173
1172
|
)
|
|
1174
1173
|
|
|
1175
1174
|
/* @internal */
|
|
@@ -1301,8 +1300,11 @@ export const uninterruptibleMask = <A, E, R>(
|
|
|
1301
1300
|
return effect
|
|
1302
1301
|
})
|
|
1303
1302
|
|
|
1304
|
-
|
|
1305
|
-
export
|
|
1303
|
+
const void_: Effect.Effect<void> = succeed(void 0)
|
|
1304
|
+
export {
|
|
1305
|
+
/* @internal */
|
|
1306
|
+
void_ as void
|
|
1307
|
+
}
|
|
1306
1308
|
|
|
1307
1309
|
/* @internal */
|
|
1308
1310
|
export const updateRuntimeFlags = (patch: RuntimeFlagsPatch.RuntimeFlagsPatch): Effect.Effect<void> => {
|
|
@@ -1667,7 +1669,7 @@ export const fiberRefSet = dual<
|
|
|
1667
1669
|
export const fiberRefDelete = <A>(self: FiberRef.FiberRef<A>): Effect.Effect<void> =>
|
|
1668
1670
|
withFiberRuntime((state) => {
|
|
1669
1671
|
state.unsafeDeleteFiberRef(self)
|
|
1670
|
-
return
|
|
1672
|
+
return void_
|
|
1671
1673
|
})
|
|
1672
1674
|
|
|
1673
1675
|
/* @internal */
|
|
@@ -1998,7 +2000,7 @@ export const withUnhandledErrorLogLevel = dual<
|
|
|
1998
2000
|
/** @internal */
|
|
1999
2001
|
export const currentMetricLabels: FiberRef.FiberRef<ReadonlyArray<MetricLabel.MetricLabel>> = globalValue(
|
|
2000
2002
|
Symbol.for("effect/FiberRef/currentMetricLabels"),
|
|
2001
|
-
() => fiberRefUnsafeMakeReadonlyArray(
|
|
2003
|
+
() => fiberRefUnsafeMakeReadonlyArray(Array.empty())
|
|
2002
2004
|
)
|
|
2003
2005
|
|
|
2004
2006
|
/* @internal */
|
|
@@ -2066,7 +2068,7 @@ export const CloseableScopeTypeId: Scope.CloseableScopeTypeId = Symbol.for(
|
|
|
2066
2068
|
export const scopeAddFinalizer = (
|
|
2067
2069
|
self: Scope.Scope,
|
|
2068
2070
|
finalizer: Effect.Effect<unknown>
|
|
2069
|
-
): Effect.Effect<void> => self.addFinalizer(() =>
|
|
2071
|
+
): Effect.Effect<void> => self.addFinalizer(() => asVoid(finalizer))
|
|
2070
2072
|
|
|
2071
2073
|
/* @internal */
|
|
2072
2074
|
export const scopeAddFinalizerExit = (
|
|
@@ -2086,143 +2088,6 @@ export const scopeFork = (
|
|
|
2086
2088
|
strategy: ExecutionStrategy.ExecutionStrategy
|
|
2087
2089
|
): Effect.Effect<Scope.Scope.Closeable> => self.fork(strategy)
|
|
2088
2090
|
|
|
2089
|
-
// -----------------------------------------------------------------------------
|
|
2090
|
-
// ReleaseMap
|
|
2091
|
-
// -----------------------------------------------------------------------------
|
|
2092
|
-
|
|
2093
|
-
/** @internal */
|
|
2094
|
-
export type ReleaseMapState = {
|
|
2095
|
-
_tag: "Exited"
|
|
2096
|
-
nextKey: number
|
|
2097
|
-
exit: Exit.Exit<unknown, unknown>
|
|
2098
|
-
update: (finalizer: Scope.Scope.Finalizer) => Scope.Scope.Finalizer
|
|
2099
|
-
} | {
|
|
2100
|
-
_tag: "Running"
|
|
2101
|
-
nextKey: number
|
|
2102
|
-
finalizers: Map<number, Scope.Scope.Finalizer>
|
|
2103
|
-
update: (finalizer: Scope.Scope.Finalizer) => Scope.Scope.Finalizer
|
|
2104
|
-
}
|
|
2105
|
-
|
|
2106
|
-
/** @internal */
|
|
2107
|
-
export interface ReleaseMap {
|
|
2108
|
-
state: ReleaseMapState // mutable by design
|
|
2109
|
-
}
|
|
2110
|
-
|
|
2111
|
-
/* @internal */
|
|
2112
|
-
export const releaseMapAdd = dual<
|
|
2113
|
-
(finalizer: Scope.Scope.Finalizer) => (self: ReleaseMap) => Effect.Effect<Scope.Scope.Finalizer>,
|
|
2114
|
-
(self: ReleaseMap, finalizer: Scope.Scope.Finalizer) => Effect.Effect<Scope.Scope.Finalizer>
|
|
2115
|
-
>(2, (self, finalizer) =>
|
|
2116
|
-
map(
|
|
2117
|
-
releaseMapAddIfOpen(self, finalizer),
|
|
2118
|
-
Option.match({
|
|
2119
|
-
onNone: (): Scope.Scope.Finalizer => () => unit,
|
|
2120
|
-
onSome: (key): Scope.Scope.Finalizer => (exit) => releaseMapRelease(key, exit)(self)
|
|
2121
|
-
})
|
|
2122
|
-
))
|
|
2123
|
-
|
|
2124
|
-
/* @internal */
|
|
2125
|
-
export const releaseMapRelease = dual<
|
|
2126
|
-
(key: number, exit: Exit.Exit<unknown, unknown>) => (self: ReleaseMap) => Effect.Effect<void>,
|
|
2127
|
-
(self: ReleaseMap, key: number, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>
|
|
2128
|
-
>(3, (self, key, exit) =>
|
|
2129
|
-
suspend(() => {
|
|
2130
|
-
switch (self.state._tag) {
|
|
2131
|
-
case "Exited": {
|
|
2132
|
-
return unit
|
|
2133
|
-
}
|
|
2134
|
-
case "Running": {
|
|
2135
|
-
const finalizer = self.state.finalizers.get(key)
|
|
2136
|
-
self.state.finalizers.delete(key)
|
|
2137
|
-
if (finalizer != null) {
|
|
2138
|
-
return self.state.update(finalizer)(exit)
|
|
2139
|
-
}
|
|
2140
|
-
return unit
|
|
2141
|
-
}
|
|
2142
|
-
}
|
|
2143
|
-
}))
|
|
2144
|
-
|
|
2145
|
-
/* @internal */
|
|
2146
|
-
export const releaseMapAddIfOpen = dual<
|
|
2147
|
-
(finalizer: Scope.Scope.Finalizer) => (self: ReleaseMap) => Effect.Effect<Option.Option<number>>,
|
|
2148
|
-
(self: ReleaseMap, finalizer: Scope.Scope.Finalizer) => Effect.Effect<Option.Option<number>>
|
|
2149
|
-
>(2, (self, finalizer) =>
|
|
2150
|
-
suspend(() => {
|
|
2151
|
-
switch (self.state._tag) {
|
|
2152
|
-
case "Exited": {
|
|
2153
|
-
self.state.nextKey += 1
|
|
2154
|
-
return as(finalizer(self.state.exit), Option.none())
|
|
2155
|
-
}
|
|
2156
|
-
case "Running": {
|
|
2157
|
-
const key = self.state.nextKey
|
|
2158
|
-
self.state.finalizers.set(key, finalizer)
|
|
2159
|
-
self.state.nextKey += 1
|
|
2160
|
-
return succeed(Option.some(key))
|
|
2161
|
-
}
|
|
2162
|
-
}
|
|
2163
|
-
}))
|
|
2164
|
-
|
|
2165
|
-
/* @internal */
|
|
2166
|
-
export const releaseMapGet = dual<
|
|
2167
|
-
(key: number) => (self: ReleaseMap) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>,
|
|
2168
|
-
(self: ReleaseMap, key: number) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>
|
|
2169
|
-
>(
|
|
2170
|
-
2,
|
|
2171
|
-
(self, key) =>
|
|
2172
|
-
sync((): Option.Option<Scope.Scope.Finalizer> =>
|
|
2173
|
-
self.state._tag === "Running" ? Option.fromNullable(self.state.finalizers.get(key)) : Option.none()
|
|
2174
|
-
)
|
|
2175
|
-
)
|
|
2176
|
-
|
|
2177
|
-
/* @internal */
|
|
2178
|
-
export const releaseMapReplace = dual<
|
|
2179
|
-
(
|
|
2180
|
-
key: number,
|
|
2181
|
-
finalizer: Scope.Scope.Finalizer
|
|
2182
|
-
) => (self: ReleaseMap) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>,
|
|
2183
|
-
(
|
|
2184
|
-
self: ReleaseMap,
|
|
2185
|
-
key: number,
|
|
2186
|
-
finalizer: Scope.Scope.Finalizer
|
|
2187
|
-
) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>
|
|
2188
|
-
>(3, (self, key, finalizer) =>
|
|
2189
|
-
suspend(() => {
|
|
2190
|
-
switch (self.state._tag) {
|
|
2191
|
-
case "Exited": {
|
|
2192
|
-
return as(finalizer(self.state.exit), Option.none())
|
|
2193
|
-
}
|
|
2194
|
-
case "Running": {
|
|
2195
|
-
const fin = Option.fromNullable(self.state.finalizers.get(key))
|
|
2196
|
-
self.state.finalizers.set(key, finalizer)
|
|
2197
|
-
return succeed(fin)
|
|
2198
|
-
}
|
|
2199
|
-
}
|
|
2200
|
-
}))
|
|
2201
|
-
|
|
2202
|
-
/* @internal */
|
|
2203
|
-
export const releaseMapRemove = dual<
|
|
2204
|
-
(key: number) => (self: ReleaseMap) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>,
|
|
2205
|
-
(self: ReleaseMap, key: number) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>
|
|
2206
|
-
>(2, (self, key) =>
|
|
2207
|
-
sync(() => {
|
|
2208
|
-
if (self.state._tag === "Exited") {
|
|
2209
|
-
return Option.none()
|
|
2210
|
-
}
|
|
2211
|
-
const fin = Option.fromNullable(self.state.finalizers.get(key))
|
|
2212
|
-
self.state.finalizers.delete(key)
|
|
2213
|
-
return fin
|
|
2214
|
-
}))
|
|
2215
|
-
|
|
2216
|
-
/* @internal */
|
|
2217
|
-
export const releaseMapMake: Effect.Effect<ReleaseMap> = sync((): ReleaseMap => ({
|
|
2218
|
-
state: {
|
|
2219
|
-
_tag: "Running",
|
|
2220
|
-
nextKey: 0,
|
|
2221
|
-
finalizers: new Map(),
|
|
2222
|
-
update: identity
|
|
2223
|
-
}
|
|
2224
|
-
}))
|
|
2225
|
-
|
|
2226
2091
|
// -----------------------------------------------------------------------------
|
|
2227
2092
|
// Cause
|
|
2228
2093
|
// -----------------------------------------------------------------------------
|
|
@@ -2245,8 +2110,8 @@ export const causeSquashWith = dual<
|
|
|
2245
2110
|
Chunk.head,
|
|
2246
2111
|
Option.match({
|
|
2247
2112
|
onNone: () => {
|
|
2248
|
-
const interrupts = Array.
|
|
2249
|
-
Array.
|
|
2113
|
+
const interrupts = Array.fromIterable(internalCause.interruptors(self)).flatMap((fiberId) =>
|
|
2114
|
+
Array.fromIterable(FiberId.ids(fiberId)).map((id) => `#${id}`)
|
|
2250
2115
|
)
|
|
2251
2116
|
return new InterruptedException(interrupts ? `Interrupted by fibers: ${interrupts.join(", ")}` : void 0)
|
|
2252
2117
|
},
|
|
@@ -2446,7 +2311,7 @@ export const exitAs = dual<
|
|
|
2446
2311
|
})
|
|
2447
2312
|
|
|
2448
2313
|
/** @internal */
|
|
2449
|
-
export const
|
|
2314
|
+
export const exitAsVoid = <A, E>(self: Exit.Exit<A, E>): Exit.Exit<void, E> => exitAs(self, void 0)
|
|
2450
2315
|
|
|
2451
2316
|
/** @internal */
|
|
2452
2317
|
export const exitCauseOption = <A, E>(self: Exit.Exit<A, E>): Option.Option<Cause.Cause<E>> => {
|
|
@@ -2714,7 +2579,7 @@ export const exitSucceed = <A>(value: A): Exit.Exit<A> => {
|
|
|
2714
2579
|
}
|
|
2715
2580
|
|
|
2716
2581
|
/** @internal */
|
|
2717
|
-
export const
|
|
2582
|
+
export const exitVoid: Exit.Exit<void> = exitSucceed(void 0)
|
|
2718
2583
|
|
|
2719
2584
|
/** @internal */
|
|
2720
2585
|
export const exitZip = dual<
|
|
@@ -2829,7 +2694,7 @@ const exitCollectAllInternal = <A, E>(
|
|
|
2829
2694
|
}
|
|
2830
2695
|
return pipe(
|
|
2831
2696
|
Chunk.tailNonEmpty(list),
|
|
2832
|
-
|
|
2697
|
+
Array.reduce(
|
|
2833
2698
|
pipe(Chunk.headNonEmpty(list), exitMap<A, Chunk.Chunk<A>>(Chunk.of)),
|
|
2834
2699
|
(accumulator, current) =>
|
|
2835
2700
|
pipe(
|
|
@@ -2841,7 +2706,7 @@ const exitCollectAllInternal = <A, E>(
|
|
|
2841
2706
|
)
|
|
2842
2707
|
),
|
|
2843
2708
|
exitMap(Chunk.reverse),
|
|
2844
|
-
exitMap((chunk) =>
|
|
2709
|
+
exitMap((chunk) => Chunk.toReadonlyArray(chunk) as Array<A>),
|
|
2845
2710
|
Option.some
|
|
2846
2711
|
)
|
|
2847
2712
|
}
|
|
@@ -2877,10 +2742,8 @@ export const deferredAwait = <A, E>(self: Deferred.Deferred<A, E>): Effect.Effec
|
|
|
2877
2742
|
return resume(state.effect)
|
|
2878
2743
|
}
|
|
2879
2744
|
case DeferredOpCodes.OP_STATE_PENDING: {
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
MutableRef.set(deferred.pending([resume, ...state.joiners]))
|
|
2883
|
-
)
|
|
2745
|
+
// we can push here as the internal state is mutable
|
|
2746
|
+
state.joiners.push(resume)
|
|
2884
2747
|
return deferredInterruptJoiner(self, resume)
|
|
2885
2748
|
}
|
|
2886
2749
|
}
|
|
@@ -2908,8 +2771,8 @@ export const deferredCompleteWith = dual<
|
|
|
2908
2771
|
return false
|
|
2909
2772
|
}
|
|
2910
2773
|
case DeferredOpCodes.OP_STATE_PENDING: {
|
|
2911
|
-
|
|
2912
|
-
for (let i = 0
|
|
2774
|
+
MutableRef.set(self.state, deferred.done(effect))
|
|
2775
|
+
for (let i = 0, len = state.joiners.length; i < len; i++) {
|
|
2913
2776
|
state.joiners[i](effect)
|
|
2914
2777
|
}
|
|
2915
2778
|
return true
|
|
@@ -3005,8 +2868,8 @@ export const deferredSync = dual<
|
|
|
3005
2868
|
export const deferredUnsafeDone = <A, E>(self: Deferred.Deferred<A, E>, effect: Effect.Effect<A, E>): void => {
|
|
3006
2869
|
const state = MutableRef.get(self.state)
|
|
3007
2870
|
if (state._tag === DeferredOpCodes.OP_STATE_PENDING) {
|
|
3008
|
-
|
|
3009
|
-
for (let i = state.joiners.length
|
|
2871
|
+
MutableRef.set(self.state, deferred.done(effect))
|
|
2872
|
+
for (let i = 0, len = state.joiners.length; i < len; i++) {
|
|
3010
2873
|
state.joiners[i](effect)
|
|
3011
2874
|
}
|
|
3012
2875
|
}
|
|
@@ -3019,10 +2882,11 @@ const deferredInterruptJoiner = <A, E>(
|
|
|
3019
2882
|
sync(() => {
|
|
3020
2883
|
const state = MutableRef.get(self.state)
|
|
3021
2884
|
if (state._tag === DeferredOpCodes.OP_STATE_PENDING) {
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
2885
|
+
const index = state.joiners.indexOf(joiner)
|
|
2886
|
+
if (index >= 0) {
|
|
2887
|
+
// we can splice here as the internal state is mutable
|
|
2888
|
+
state.joiners.splice(index, 1)
|
|
2889
|
+
}
|
|
3026
2890
|
}
|
|
3027
2891
|
})
|
|
3028
2892
|
|
|
@@ -3086,7 +2950,7 @@ export const mapInputContext = dual<
|
|
|
3086
2950
|
/** @internal */
|
|
3087
2951
|
export const currentSpanFromFiber = <A, E>(fiber: Fiber.RuntimeFiber<A, E>): Option.Option<Tracer.Span> => {
|
|
3088
2952
|
const span = fiber.getFiberRef(currentContext).unsafeMap.get(internalTracer.spanTag.key) as
|
|
3089
|
-
| Tracer.
|
|
2953
|
+
| Tracer.AnySpan
|
|
3090
2954
|
| undefined
|
|
3091
2955
|
return span !== undefined && span._tag === "Span" ? Option.some(span) : Option.none()
|
|
3092
2956
|
}
|
|
@@ -3103,7 +2967,7 @@ const NoopSpanProto: Tracer.Span = {
|
|
|
3103
2967
|
_tag: "Ended",
|
|
3104
2968
|
startTime: BigInt(0),
|
|
3105
2969
|
endTime: BigInt(0),
|
|
3106
|
-
exit:
|
|
2970
|
+
exit: exitVoid
|
|
3107
2971
|
},
|
|
3108
2972
|
attributes: new Map(),
|
|
3109
2973
|
links: [],
|
|
@@ -1,13 +1,12 @@
|
|
|
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 type * as Context from "../Context.js"
|
|
4
5
|
import * as Effect from "../Effect.js"
|
|
5
6
|
import type * as Either from "../Either.js"
|
|
6
7
|
import { dual, pipe } from "../Function.js"
|
|
7
|
-
import * as RA from "../ReadonlyArray.js"
|
|
8
8
|
import type * as Request from "../Request.js"
|
|
9
9
|
import type * as RequestResolver from "../RequestResolver.js"
|
|
10
|
-
import type { NoInfer } from "../Types.js"
|
|
11
10
|
import * as core from "./core.js"
|
|
12
11
|
import { invokeWithInterrupt, zipWithOptions } from "./fiberRuntime.js"
|
|
13
12
|
import { complete } from "./request.js"
|
|
@@ -28,24 +27,24 @@ export const makeBatched = <A extends Request.Request<any, any>, R>(
|
|
|
28
27
|
run: (requests: Array<A>) => Effect.Effect<void, never, R>
|
|
29
28
|
): RequestResolver.RequestResolver<A, R> =>
|
|
30
29
|
new core.RequestResolverImpl<A, R>(
|
|
31
|
-
(requests) =>
|
|
32
|
-
requests.length > 1
|
|
33
|
-
core.forEachSequentialDiscard(requests, (block) =>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
30
|
+
(requests) => {
|
|
31
|
+
if (requests.length > 1) {
|
|
32
|
+
return core.forEachSequentialDiscard(requests, (block) => {
|
|
33
|
+
const filtered = block.filter((_) => !_.state.completed).map((_) => _.request)
|
|
34
|
+
if (filtered.length === 0) {
|
|
35
|
+
return core.void
|
|
36
|
+
}
|
|
37
|
+
return invokeWithInterrupt(run(filtered), block)
|
|
38
|
+
})
|
|
39
|
+
} else if (requests.length === 1) {
|
|
40
|
+
const filtered = requests[0].filter((_) => !_.state.completed).map((_) => _.request)
|
|
41
|
+
if (filtered.length === 0) {
|
|
42
|
+
return core.void
|
|
43
|
+
}
|
|
44
|
+
return run(filtered)
|
|
45
|
+
}
|
|
46
|
+
return core.void
|
|
47
|
+
}
|
|
49
48
|
)
|
|
50
49
|
|
|
51
50
|
/** @internal */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import * as Array from "../../Array.js"
|
|
1
2
|
import type * as Differ from "../../Differ.js"
|
|
2
3
|
import * as Equal from "../../Equal.js"
|
|
3
4
|
import * as Dual from "../../Function.js"
|
|
4
|
-
import * as ReadonlyArray from "../../ReadonlyArray.js"
|
|
5
5
|
import * as Data from "../data.js"
|
|
6
6
|
|
|
7
7
|
/** @internal */
|
|
@@ -135,7 +135,7 @@ export const diff = <Value, Patch>(
|
|
|
135
135
|
patch = combine(patch, makeSlice(0, i))
|
|
136
136
|
}
|
|
137
137
|
if (i < options.newValue.length) {
|
|
138
|
-
patch = combine(patch, makeAppend(
|
|
138
|
+
patch = combine(patch, makeAppend(Array.drop(i)(options.newValue)))
|
|
139
139
|
}
|
|
140
140
|
return patch
|
|
141
141
|
}
|
|
@@ -173,10 +173,10 @@ export const patch = Dual.dual<
|
|
|
173
173
|
return oldValue
|
|
174
174
|
}
|
|
175
175
|
let readonlyArray = oldValue.slice()
|
|
176
|
-
let patches: Array<Differ.Differ.ReadonlyArray.Patch<Value, Patch>> =
|
|
177
|
-
while (
|
|
178
|
-
const head: Instruction =
|
|
179
|
-
const tail =
|
|
176
|
+
let patches: Array<Differ.Differ.ReadonlyArray.Patch<Value, Patch>> = Array.of(self)
|
|
177
|
+
while (Array.isNonEmptyArray(patches)) {
|
|
178
|
+
const head: Instruction = Array.headNonEmpty(patches) as Instruction
|
|
179
|
+
const tail = Array.tailNonEmpty(patches)
|
|
180
180
|
switch (head._tag) {
|
|
181
181
|
case "Empty": {
|
|
182
182
|
patches = tail
|
|
@@ -15,6 +15,7 @@ import * as MutableHashMap from "../../MutableHashMap.js"
|
|
|
15
15
|
import * as Option from "../../Option.js"
|
|
16
16
|
import { pipeArguments } from "../../Pipeable.js"
|
|
17
17
|
import * as Predicate from "../../Predicate.js"
|
|
18
|
+
import * as Readable from "../../Readable.js"
|
|
18
19
|
import type * as Ref from "../../Ref.js"
|
|
19
20
|
import type * as Schedule from "../../Schedule.js"
|
|
20
21
|
import { currentScheduler } from "../../Scheduler.js"
|
|
@@ -288,8 +289,8 @@ export const forkIn = dual<
|
|
|
288
289
|
child.addFinalizer(() =>
|
|
289
290
|
core.fiberIdWith((fiberId) =>
|
|
290
291
|
Equal.equals(fiberId, fiber.id()) ?
|
|
291
|
-
core.
|
|
292
|
-
core.
|
|
292
|
+
core.void :
|
|
293
|
+
core.asVoid(core.interruptFiber(fiber))
|
|
293
294
|
)
|
|
294
295
|
)
|
|
295
296
|
)
|
|
@@ -556,10 +557,15 @@ export const synchronizedVariance = {
|
|
|
556
557
|
class SynchronizedImpl<in out A> implements Synchronized.SynchronizedRef<A> {
|
|
557
558
|
readonly [SynchronizedTypeId] = synchronizedVariance
|
|
558
559
|
readonly [internalRef.RefTypeId] = internalRef.refVariance
|
|
560
|
+
readonly [Readable.TypeId]: Readable.TypeId
|
|
559
561
|
constructor(
|
|
560
562
|
readonly ref: Ref.Ref<A>,
|
|
561
563
|
readonly withLock: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
562
|
-
) {
|
|
564
|
+
) {
|
|
565
|
+
this[Readable.TypeId] = Readable.TypeId
|
|
566
|
+
this.get = internalRef.get(this.ref)
|
|
567
|
+
}
|
|
568
|
+
readonly get: Effect.Effect<A>
|
|
563
569
|
modify<B>(f: (a: A) => readonly [B, A]): Effect.Effect<B> {
|
|
564
570
|
return this.modifyEffect((a) => core.succeed(f(a)))
|
|
565
571
|
}
|
|
@@ -46,27 +46,29 @@ export const isParallelN = (self: ExecutionStrategy.ExecutionStrategy): self is
|
|
|
46
46
|
|
|
47
47
|
/** @internal */
|
|
48
48
|
export const match = dual<
|
|
49
|
-
<A>(
|
|
50
|
-
onSequential: LazyArg<A
|
|
51
|
-
onParallel: LazyArg<A
|
|
52
|
-
onParallelN: (n: number) => A
|
|
53
|
-
) => (self: ExecutionStrategy.ExecutionStrategy) => A,
|
|
49
|
+
<A>(options: {
|
|
50
|
+
readonly onSequential: LazyArg<A>
|
|
51
|
+
readonly onParallel: LazyArg<A>
|
|
52
|
+
readonly onParallelN: (n: number) => A
|
|
53
|
+
}) => (self: ExecutionStrategy.ExecutionStrategy) => A,
|
|
54
54
|
<A>(
|
|
55
55
|
self: ExecutionStrategy.ExecutionStrategy,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
options: {
|
|
57
|
+
readonly onSequential: LazyArg<A>
|
|
58
|
+
readonly onParallel: LazyArg<A>
|
|
59
|
+
readonly onParallelN: (n: number) => A
|
|
60
|
+
}
|
|
59
61
|
) => A
|
|
60
|
-
>(
|
|
62
|
+
>(2, (self, options) => {
|
|
61
63
|
switch (self._tag) {
|
|
62
64
|
case OP_SEQUENTIAL: {
|
|
63
|
-
return onSequential()
|
|
65
|
+
return options.onSequential()
|
|
64
66
|
}
|
|
65
67
|
case OP_PARALLEL: {
|
|
66
|
-
return onParallel()
|
|
68
|
+
return options.onParallel()
|
|
67
69
|
}
|
|
68
70
|
case OP_PARALLEL_N: {
|
|
69
|
-
return onParallelN(self.parallelism)
|
|
71
|
+
return options.onParallelN(self.parallelism)
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
})
|