effect 3.10.18 → 3.11.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/dist/cjs/Array.js +206 -0
- package/dist/cjs/Array.js.map +1 -1
- package/dist/cjs/BigDecimal.js +181 -24
- package/dist/cjs/BigDecimal.js.map +1 -1
- package/dist/cjs/BigInt.js +54 -0
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Boolean.js +24 -0
- package/dist/cjs/Boolean.js.map +1 -1
- package/dist/cjs/Brand.js +4 -0
- package/dist/cjs/Brand.js.map +1 -1
- package/dist/cjs/Channel.js +44 -4
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/Chunk.js +8 -0
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Config.js +10 -1
- package/dist/cjs/Config.js.map +1 -1
- package/dist/cjs/Context.js +50 -1
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Cron.js +81 -67
- package/dist/cjs/Cron.js.map +1 -1
- package/dist/cjs/Data.js +14 -0
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/DateTime.js +178 -664
- package/dist/cjs/DateTime.js.map +1 -1
- package/dist/cjs/Duration.js +2 -0
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +296 -4
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +38 -2
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/FiberHandle.js +6 -0
- package/dist/cjs/FiberHandle.js.map +1 -1
- package/dist/cjs/FiberMap.js +6 -0
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberSet.js +6 -0
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/Function.js +34 -0
- package/dist/cjs/Function.js.map +1 -1
- package/dist/cjs/GlobalValue.js +2 -0
- package/dist/cjs/GlobalValue.js.map +1 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/Inspectable.js +8 -4
- package/dist/cjs/Inspectable.js.map +1 -1
- package/dist/cjs/Iterable.js +18 -0
- package/dist/cjs/Iterable.js.map +1 -1
- package/dist/cjs/JSONSchema.js.map +1 -1
- package/dist/cjs/List.js +4 -0
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/Logger.js +26 -0
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Mailbox.js +2 -0
- package/dist/cjs/Mailbox.js.map +1 -1
- package/dist/cjs/ManagedRuntime.js +2 -0
- package/dist/cjs/ManagedRuntime.js.map +1 -1
- package/dist/cjs/Metric.js +10 -0
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/Micro.js +1104 -1069
- package/dist/cjs/Micro.js.map +1 -1
- package/dist/cjs/Number.js +44 -0
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js +70 -0
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Order.js +2 -0
- package/dist/cjs/Order.js.map +1 -1
- package/dist/cjs/Ordering.js +4 -0
- package/dist/cjs/Ordering.js.map +1 -1
- package/dist/cjs/Predicate.js +68 -0
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/Random.js +4 -0
- package/dist/cjs/Random.js.map +1 -1
- package/dist/cjs/RateLimiter.js +4 -0
- package/dist/cjs/RateLimiter.js.map +1 -1
- package/dist/cjs/RcMap.js +2 -0
- package/dist/cjs/RcMap.js.map +1 -1
- package/dist/cjs/RcRef.js +2 -0
- package/dist/cjs/RcRef.js.map +1 -1
- package/dist/cjs/Record.js +56 -0
- package/dist/cjs/Record.js.map +1 -1
- package/dist/cjs/Redacted.js +8 -0
- package/dist/cjs/Redacted.js.map +1 -1
- package/dist/cjs/RegExp.js +4 -0
- package/dist/cjs/RegExp.js.map +1 -1
- package/dist/cjs/Request.js +4 -0
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestResolver.js +2 -0
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Runtime.js +6 -0
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schema.js +91 -8
- package/dist/cjs/Schema.js.map +1 -1
- package/dist/cjs/Sink.js +9 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js +179 -7
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/String.js +62 -0
- package/dist/cjs/String.js.map +1 -1
- package/dist/cjs/Struct.js +12 -0
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/Symbol.js +2 -0
- package/dist/cjs/Symbol.js.map +1 -1
- package/dist/cjs/Trie.js +56 -0
- package/dist/cjs/Trie.js.map +1 -1
- package/dist/cjs/Tuple.js +18 -0
- package/dist/cjs/Tuple.js.map +1 -1
- package/dist/cjs/Utils.js +7 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js +5 -9
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel.js +156 -130
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/config.js +13 -4
- package/dist/cjs/internal/config.js.map +1 -1
- package/dist/cjs/internal/context.js +46 -3
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/dateTime.js +747 -0
- package/dist/cjs/internal/dateTime.js.map +1 -0
- package/dist/cjs/internal/fiberRuntime.js +34 -11
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js +9 -3
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/layer.js +1 -1
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/mailbox.js +1 -1
- package/dist/cjs/internal/mailbox.js.map +1 -1
- package/dist/cjs/internal/sink.js +25 -21
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stream.js +70 -71
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/cjs/internal/version.js.map +1 -1
- package/dist/dts/Array.d.ts +534 -0
- package/dist/dts/Array.d.ts.map +1 -1
- package/dist/dts/BigDecimal.d.ts +172 -1
- package/dist/dts/BigDecimal.d.ts.map +1 -1
- package/dist/dts/BigInt.d.ts +114 -0
- package/dist/dts/BigInt.d.ts.map +1 -1
- package/dist/dts/Boolean.d.ts +56 -0
- package/dist/dts/Boolean.d.ts.map +1 -1
- package/dist/dts/Brand.d.ts +6 -0
- package/dist/dts/Brand.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +66 -5
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +30 -0
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +25 -1
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +155 -0
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Cron.d.ts +21 -6
- package/dist/dts/Cron.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +26 -0
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/DateTime.d.ts +192 -49
- package/dist/dts/DateTime.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +2 -0
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +658 -1
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +84 -2
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/FiberHandle.d.ts +6 -0
- package/dist/dts/FiberHandle.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +6 -0
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +6 -0
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/Function.d.ts +50 -0
- package/dist/dts/Function.d.ts.map +1 -1
- package/dist/dts/GlobalValue.d.ts +2 -0
- package/dist/dts/GlobalValue.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +6 -0
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/Iterable.d.ts +26 -0
- package/dist/dts/Iterable.d.ts.map +1 -1
- package/dist/dts/JSONSchema.d.ts +1 -0
- package/dist/dts/JSONSchema.d.ts.map +1 -1
- package/dist/dts/List.d.ts +20 -0
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +34 -0
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Mailbox.d.ts +2 -0
- package/dist/dts/Mailbox.d.ts.map +1 -1
- package/dist/dts/ManagedRuntime.d.ts +2 -0
- package/dist/dts/ManagedRuntime.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +18 -0
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/Micro.d.ts +880 -863
- package/dist/dts/Micro.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +104 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +142 -0
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts +2 -0
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/Ordering.d.ts +8 -0
- package/dist/dts/Ordering.d.ts.map +1 -1
- package/dist/dts/Predicate.d.ts +104 -0
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +4 -0
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/RateLimiter.d.ts +4 -0
- package/dist/dts/RateLimiter.d.ts.map +1 -1
- package/dist/dts/RcMap.d.ts +6 -0
- package/dist/dts/RcMap.d.ts.map +1 -1
- package/dist/dts/RcRef.d.ts +2 -0
- package/dist/dts/RcRef.d.ts.map +1 -1
- package/dist/dts/Record.d.ts +136 -0
- package/dist/dts/Record.d.ts.map +1 -1
- package/dist/dts/Redacted.d.ts +8 -0
- package/dist/dts/Redacted.d.ts.map +1 -1
- package/dist/dts/RegExp.d.ts +4 -0
- package/dist/dts/RegExp.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +4 -0
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +6 -0
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +18 -0
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +2 -0
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schema.d.ts +90 -0
- package/dist/dts/Schema.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +8 -0
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +394 -32
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/String.d.ts +94 -0
- package/dist/dts/String.d.ts.map +1 -1
- package/dist/dts/Struct.d.ts +24 -0
- package/dist/dts/Struct.d.ts.map +1 -1
- package/dist/dts/Symbol.d.ts +2 -0
- package/dist/dts/Symbol.d.ts.map +1 -1
- package/dist/dts/Trie.d.ts +132 -0
- package/dist/dts/Trie.d.ts.map +1 -1
- package/dist/dts/Tuple.d.ts +42 -0
- package/dist/dts/Tuple.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +24 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts +4 -0
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/internal/context.d.ts +1 -1
- package/dist/dts/internal/context.d.ts.map +1 -1
- package/dist/dts/internal/dateTime.d.ts +2 -0
- package/dist/dts/internal/dateTime.d.ts.map +1 -0
- package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
- package/dist/dts/internal/stream.d.ts.map +1 -1
- package/dist/esm/Array.js +208 -0
- package/dist/esm/Array.js.map +1 -1
- package/dist/esm/BigDecimal.js +175 -20
- package/dist/esm/BigDecimal.js.map +1 -1
- package/dist/esm/BigInt.js +54 -0
- package/dist/esm/BigInt.js.map +1 -1
- package/dist/esm/Boolean.js +24 -0
- package/dist/esm/Boolean.js.map +1 -1
- package/dist/esm/Brand.js +4 -0
- package/dist/esm/Brand.js.map +1 -1
- package/dist/esm/Channel.js +42 -2
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Chunk.js +8 -0
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Config.js +9 -0
- package/dist/esm/Config.js.map +1 -1
- package/dist/esm/Context.js +49 -0
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Cron.js +81 -67
- package/dist/esm/Cron.js.map +1 -1
- package/dist/esm/Data.js +16 -0
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/DateTime.js +176 -627
- package/dist/esm/DateTime.js.map +1 -1
- package/dist/esm/Duration.js +2 -0
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +297 -0
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +40 -2
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/FiberHandle.js +6 -0
- package/dist/esm/FiberHandle.js.map +1 -1
- package/dist/esm/FiberMap.js +6 -0
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/FiberSet.js +6 -0
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/Function.js +34 -0
- package/dist/esm/Function.js.map +1 -1
- package/dist/esm/GlobalValue.js +2 -0
- package/dist/esm/GlobalValue.js.map +1 -1
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/Inspectable.js +8 -4
- package/dist/esm/Inspectable.js.map +1 -1
- package/dist/esm/Iterable.js +18 -0
- package/dist/esm/Iterable.js.map +1 -1
- package/dist/esm/JSONSchema.js.map +1 -1
- package/dist/esm/List.js +4 -0
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/Logger.js +26 -0
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Mailbox.js +2 -0
- package/dist/esm/Mailbox.js.map +1 -1
- package/dist/esm/ManagedRuntime.js +2 -0
- package/dist/esm/ManagedRuntime.js.map +1 -1
- package/dist/esm/Metric.js +10 -0
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/Micro.js +1077 -1037
- package/dist/esm/Micro.js.map +1 -1
- package/dist/esm/Number.js +44 -0
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js +72 -0
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Order.js +2 -0
- package/dist/esm/Order.js.map +1 -1
- package/dist/esm/Ordering.js +4 -0
- package/dist/esm/Ordering.js.map +1 -1
- package/dist/esm/Predicate.js +68 -0
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/Random.js +4 -0
- package/dist/esm/Random.js.map +1 -1
- package/dist/esm/RateLimiter.js +4 -0
- package/dist/esm/RateLimiter.js.map +1 -1
- package/dist/esm/RcMap.js +2 -0
- package/dist/esm/RcMap.js.map +1 -1
- package/dist/esm/RcRef.js +2 -0
- package/dist/esm/RcRef.js.map +1 -1
- package/dist/esm/Record.js +56 -0
- package/dist/esm/Record.js.map +1 -1
- package/dist/esm/Redacted.js +8 -0
- package/dist/esm/Redacted.js.map +1 -1
- package/dist/esm/RegExp.js +4 -0
- package/dist/esm/RegExp.js.map +1 -1
- package/dist/esm/Request.js +4 -0
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestResolver.js +2 -0
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Runtime.js +6 -0
- package/dist/esm/Runtime.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schema.js +88 -0
- package/dist/esm/Schema.js.map +1 -1
- package/dist/esm/Sink.js +8 -0
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js +183 -5
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/String.js +62 -0
- package/dist/esm/String.js.map +1 -1
- package/dist/esm/Struct.js +12 -0
- package/dist/esm/Struct.js.map +1 -1
- package/dist/esm/Symbol.js +2 -0
- package/dist/esm/Symbol.js.map +1 -1
- package/dist/esm/Trie.js +56 -0
- package/dist/esm/Trie.js.map +1 -1
- package/dist/esm/Tuple.js +22 -0
- package/dist/esm/Tuple.js.map +1 -1
- package/dist/esm/Utils.js +5 -0
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js +5 -7
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel.js +152 -129
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/config.js +11 -3
- package/dist/esm/internal/config.js.map +1 -1
- package/dist/esm/internal/context.js +42 -2
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/dateTime.js +704 -0
- package/dist/esm/internal/dateTime.js.map +1 -0
- package/dist/esm/internal/fiberRuntime.js +31 -9
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js +9 -3
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/layer.js +1 -1
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/mailbox.js +1 -1
- package/dist/esm/internal/mailbox.js.map +1 -1
- package/dist/esm/internal/sink.js +23 -20
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stream.js +66 -69
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/dist/esm/internal/version.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +534 -0
- package/src/BigDecimal.ts +247 -21
- package/src/BigInt.ts +114 -0
- package/src/Boolean.ts +56 -0
- package/src/Brand.ts +6 -0
- package/src/Channel.ts +81 -5
- package/src/Chunk.ts +32 -0
- package/src/Config.ts +26 -1
- package/src/Context.ts +163 -0
- package/src/Cron.ts +91 -68
- package/src/Data.ts +26 -0
- package/src/DateTime.ts +307 -757
- package/src/Duration.ts +2 -0
- package/src/Effect.ts +910 -1
- package/src/Either.ts +84 -2
- package/src/FiberHandle.ts +6 -0
- package/src/FiberMap.ts +6 -0
- package/src/FiberSet.ts +6 -0
- package/src/Function.ts +50 -0
- package/src/GlobalValue.ts +2 -0
- package/src/HashMap.ts +6 -0
- package/src/Inspectable.ts +11 -7
- package/src/Iterable.ts +26 -0
- package/src/JSONSchema.ts +1 -0
- package/src/List.ts +24 -0
- package/src/Logger.ts +34 -0
- package/src/Mailbox.ts +2 -0
- package/src/ManagedRuntime.ts +2 -0
- package/src/Metric.ts +18 -0
- package/src/Micro.ts +2007 -1745
- package/src/Number.ts +104 -0
- package/src/Option.ts +142 -0
- package/src/Order.ts +2 -0
- package/src/Ordering.ts +8 -0
- package/src/Predicate.ts +104 -0
- package/src/Random.ts +4 -0
- package/src/RateLimiter.ts +4 -0
- package/src/RcMap.ts +6 -0
- package/src/RcRef.ts +2 -0
- package/src/Record.ts +136 -0
- package/src/Redacted.ts +8 -0
- package/src/RegExp.ts +4 -0
- package/src/Request.ts +4 -0
- package/src/RequestResolver.ts +6 -0
- package/src/Runtime.ts +18 -0
- package/src/STM.ts +2 -0
- package/src/Schema.ts +124 -0
- package/src/Sink.ts +11 -0
- package/src/Stream.ts +399 -44
- package/src/String.ts +94 -0
- package/src/Struct.ts +24 -0
- package/src/Symbol.ts +2 -0
- package/src/Trie.ts +132 -0
- package/src/Tuple.ts +42 -0
- package/src/Types.ts +24 -0
- package/src/Utils.ts +8 -0
- package/src/internal/channel/channelExecutor.ts +37 -33
- package/src/internal/channel.ts +504 -467
- package/src/internal/config.ts +18 -6
- package/src/internal/context.ts +56 -4
- package/src/internal/dateTime.ts +1126 -0
- package/src/internal/fiberRuntime.ts +35 -16
- package/src/internal/groupBy.ts +13 -22
- package/src/internal/layer.ts +5 -8
- package/src/internal/mailbox.ts +6 -4
- package/src/internal/sink.ts +55 -35
- package/src/internal/stream.ts +299 -299
- package/src/internal/version.ts +1 -1
|
@@ -620,6 +620,27 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
|
|
|
620
620
|
this.getChildren().delete(child)
|
|
621
621
|
}
|
|
622
622
|
|
|
623
|
+
/**
|
|
624
|
+
* Transfers all children of this fiber that are currently running to the
|
|
625
|
+
* specified fiber scope.
|
|
626
|
+
*
|
|
627
|
+
* **NOTE**: This method must be invoked by the fiber itself after it has
|
|
628
|
+
* evaluated the effects but prior to exiting.
|
|
629
|
+
*/
|
|
630
|
+
transferChildren(scope: fiberScope.FiberScope) {
|
|
631
|
+
const children = this._children
|
|
632
|
+
// Clear the children of the current fiber
|
|
633
|
+
this._children = null
|
|
634
|
+
if (children !== null && children.size > 0) {
|
|
635
|
+
for (const child of children) {
|
|
636
|
+
// If the child is still running, add it to the scope
|
|
637
|
+
if (child._exitValue === null) {
|
|
638
|
+
scope.add(this.currentRuntimeFlags, child)
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
|
|
623
644
|
/**
|
|
624
645
|
* On the current thread, executes all messages in the fiber's inbox. This
|
|
625
646
|
* method may return before all work is done, in the event the fiber executes
|
|
@@ -1093,23 +1114,21 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
|
|
|
1093
1114
|
|
|
1094
1115
|
["Micro"](op: Micro.Micro<any, any, never> & { _op: "Micro" }) {
|
|
1095
1116
|
return core.unsafeAsync<any, any>((microResume) => {
|
|
1096
|
-
const env = Micro.envUnsafeMakeEmpty().pipe(
|
|
1097
|
-
Micro.envSet(Micro.currentContext, this.getFiberRef(core.currentContext))
|
|
1098
|
-
)
|
|
1099
1117
|
let resume = microResume
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1118
|
+
const fiber = Micro.runFork(Micro.provideContext(op, this.currentContext))
|
|
1119
|
+
fiber.addObserver((exit) => {
|
|
1120
|
+
if (exit._tag === "Success") {
|
|
1121
|
+
return resume(core.exitSucceed(exit.value))
|
|
1103
1122
|
}
|
|
1104
|
-
switch (
|
|
1123
|
+
switch (exit.cause._tag) {
|
|
1105
1124
|
case "Interrupt": {
|
|
1106
1125
|
return resume(core.exitFailCause(internalCause.interrupt(FiberId.none)))
|
|
1107
1126
|
}
|
|
1108
1127
|
case "Fail": {
|
|
1109
|
-
return resume(core.fail(
|
|
1128
|
+
return resume(core.fail(exit.cause.error))
|
|
1110
1129
|
}
|
|
1111
1130
|
case "Die": {
|
|
1112
|
-
return resume(core.die(
|
|
1131
|
+
return resume(core.die(exit.cause.defect))
|
|
1113
1132
|
}
|
|
1114
1133
|
}
|
|
1115
1134
|
})
|
|
@@ -1117,7 +1136,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
|
|
|
1117
1136
|
resume = (_: any) => {
|
|
1118
1137
|
abortResume(core.void)
|
|
1119
1138
|
}
|
|
1120
|
-
|
|
1139
|
+
fiber.unsafeInterrupt()
|
|
1121
1140
|
})
|
|
1122
1141
|
})
|
|
1123
1142
|
}
|
|
@@ -2835,6 +2854,11 @@ export const scopeWith = <A, E, R>(
|
|
|
2835
2854
|
f: (scope: Scope.Scope) => Effect.Effect<A, E, R>
|
|
2836
2855
|
): Effect.Effect<A, E, R | Scope.Scope> => core.flatMap(scopeTag, f)
|
|
2837
2856
|
|
|
2857
|
+
/** @internal */
|
|
2858
|
+
export const scopedWith = <A, E, R>(
|
|
2859
|
+
f: (scope: Scope.Scope) => Effect.Effect<A, E, R>
|
|
2860
|
+
): Effect.Effect<A, E, R> => core.flatMap(scopeMake(), (scope) => core.onExit(f(scope), (exit) => scope.close(exit)))
|
|
2861
|
+
|
|
2838
2862
|
/* @internal */
|
|
2839
2863
|
export const scopedEffect = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, Exclude<R, Scope.Scope>> =>
|
|
2840
2864
|
core.flatMap(scopeMake(), (scope) => scopeUse(effect, scope))
|
|
@@ -2878,12 +2902,7 @@ export const using = dual<
|
|
|
2878
2902
|
self: Effect.Effect<A, E, R>,
|
|
2879
2903
|
use: (a: A) => Effect.Effect<A2, E2, R2>
|
|
2880
2904
|
) => Effect.Effect<A2, E | E2, Exclude<R, Scope.Scope> | R2>
|
|
2881
|
-
>(2, (self, use) =>
|
|
2882
|
-
core.acquireUseRelease(
|
|
2883
|
-
scopeMake(),
|
|
2884
|
-
(scope) => core.flatMap(scopeExtend(self, scope), use),
|
|
2885
|
-
(scope, exit) => core.scopeClose(scope, exit)
|
|
2886
|
-
))
|
|
2905
|
+
>(2, (self, use) => scopedWith((scope) => core.flatMap(scopeExtend(self, scope), use)))
|
|
2887
2906
|
|
|
2888
2907
|
/** @internal */
|
|
2889
2908
|
export const validate = dual<
|
package/src/internal/groupBy.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { pipeArguments } from "../Pipeable.js"
|
|
|
12
12
|
import { hasProperty, type Predicate } from "../Predicate.js"
|
|
13
13
|
import * as Queue from "../Queue.js"
|
|
14
14
|
import * as Ref from "../Ref.js"
|
|
15
|
+
import * as Scope from "../Scope.js"
|
|
15
16
|
import type * as Stream from "../Stream.js"
|
|
16
17
|
import type * as Take from "../Take.js"
|
|
17
18
|
import type { NoInfer } from "../Types.js"
|
|
@@ -487,29 +488,19 @@ export const groupByKey = dual<
|
|
|
487
488
|
)
|
|
488
489
|
)
|
|
489
490
|
})
|
|
490
|
-
return make(stream.
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
self,
|
|
502
|
-
stream.toChannel,
|
|
503
|
-
core.pipeTo(loop(map, queue)),
|
|
504
|
-
channel.drain,
|
|
505
|
-
channelExecutor.runScoped,
|
|
506
|
-
Effect.forkScoped,
|
|
507
|
-
Effect.as(stream.flattenTake(stream.fromQueue(queue, { shutdown: true })))
|
|
508
|
-
)
|
|
509
|
-
)
|
|
510
|
-
)
|
|
491
|
+
return make(stream.unwrapScopedWith((scope) =>
|
|
492
|
+
Effect.gen(function*() {
|
|
493
|
+
const map = new Map<K, Queue.Queue<Take.Take<A, E>>>()
|
|
494
|
+
const queue = yield* Queue.unbounded<Take.Take<readonly [K, Queue.Queue<Take.Take<A, E>>], E>>()
|
|
495
|
+
yield* Scope.addFinalizer(scope, Queue.shutdown(queue))
|
|
496
|
+
return yield* stream.toChannel(self).pipe(
|
|
497
|
+
core.pipeTo(loop(map, queue)),
|
|
498
|
+
channel.drain,
|
|
499
|
+
channelExecutor.runIn(scope),
|
|
500
|
+
Effect.forkIn(scope),
|
|
501
|
+
Effect.as(stream.flattenTake(stream.fromQueue(queue, { shutdown: true })))
|
|
511
502
|
)
|
|
512
|
-
)
|
|
503
|
+
})
|
|
513
504
|
))
|
|
514
505
|
}
|
|
515
506
|
)
|
package/src/internal/layer.ts
CHANGED
|
@@ -1274,14 +1274,11 @@ const provideSomeLayer = dual<
|
|
|
1274
1274
|
layer: Layer.Layer<A2, E2, R2>
|
|
1275
1275
|
) => Effect.Effect<A, E | E2, R2 | Exclude<R, A2>>
|
|
1276
1276
|
>(2, (self, layer) =>
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
core.
|
|
1281
|
-
|
|
1282
|
-
(context) => core.provideSomeContext(self, context)
|
|
1283
|
-
),
|
|
1284
|
-
(scope, exit) => core.scopeClose(scope, exit)
|
|
1277
|
+
fiberRuntime.scopedWith((scope) =>
|
|
1278
|
+
core.flatMap(
|
|
1279
|
+
buildWithScope(layer, scope),
|
|
1280
|
+
(context) => core.provideSomeContext(self, context)
|
|
1281
|
+
)
|
|
1285
1282
|
))
|
|
1286
1283
|
|
|
1287
1284
|
const provideSomeRuntime = dual<
|
package/src/internal/mailbox.ts
CHANGED
|
@@ -547,10 +547,12 @@ export const fromStream: {
|
|
|
547
547
|
onFailure: (cause: Cause<E>) => mailbox.failCause(cause),
|
|
548
548
|
onDone: () => mailbox.end
|
|
549
549
|
})
|
|
550
|
-
return
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
550
|
+
return channel.unwrapScopedWith((scope) =>
|
|
551
|
+
stream.toChannel(self).pipe(
|
|
552
|
+
coreChannel.pipeTo(writer),
|
|
553
|
+
channelExecutor.runIn(scope),
|
|
554
|
+
circular.forkIn(scope)
|
|
555
|
+
)
|
|
554
556
|
)
|
|
555
557
|
}
|
|
556
558
|
))
|
package/src/internal/sink.ts
CHANGED
|
@@ -19,7 +19,7 @@ import { hasProperty, type Predicate, type Refinement } from "../Predicate.js"
|
|
|
19
19
|
import * as PubSub from "../PubSub.js"
|
|
20
20
|
import * as Queue from "../Queue.js"
|
|
21
21
|
import * as Ref from "../Ref.js"
|
|
22
|
-
import
|
|
22
|
+
import * as Scope from "../Scope.js"
|
|
23
23
|
import type * as Sink from "../Sink.js"
|
|
24
24
|
import * as channel from "./channel.js"
|
|
25
25
|
import * as mergeDecision from "./channel/mergeDecision.js"
|
|
@@ -1656,38 +1656,43 @@ export const raceWith = dual<
|
|
|
1656
1656
|
readonly capacity?: number | undefined
|
|
1657
1657
|
}
|
|
1658
1658
|
): Sink.Sink<A3 | A4, In & In2, L2 | L, E2 | E, R2 | R> => {
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1659
|
+
function race(scope: Scope.Scope) {
|
|
1660
|
+
return Effect.gen(function*() {
|
|
1661
|
+
const pubsub = yield* PubSub.bounded<
|
|
1662
|
+
Either.Either<Chunk.Chunk<In & In2>, Exit.Exit<unknown>>
|
|
1663
|
+
>(options?.capacity ?? 16)
|
|
1664
|
+
const subscription1 = yield* Scope.extend(PubSub.subscribe(pubsub), scope)
|
|
1665
|
+
const subscription2 = yield* Scope.extend(PubSub.subscribe(pubsub), scope)
|
|
1666
|
+
const reader = channel.toPubSub(pubsub)
|
|
1667
|
+
const writer = channel.fromQueue(subscription1).pipe(
|
|
1668
|
+
core.pipeTo(toChannel(self)),
|
|
1669
|
+
channel.zipLeft(core.fromEffect(Queue.shutdown(subscription1))),
|
|
1670
|
+
channel.mergeWith({
|
|
1671
|
+
other: channel.fromQueue(subscription2).pipe(
|
|
1672
|
+
core.pipeTo(toChannel(options.other)),
|
|
1673
|
+
channel.zipLeft(core.fromEffect(Queue.shutdown(subscription2)))
|
|
1674
|
+
),
|
|
1675
|
+
onSelfDone: options.onSelfDone,
|
|
1676
|
+
onOtherDone: options.onOtherDone
|
|
1677
|
+
})
|
|
1678
|
+
)
|
|
1679
|
+
const racedChannel = channel.mergeWith(reader, {
|
|
1680
|
+
other: writer,
|
|
1681
|
+
onSelfDone: () => mergeDecision.Await(identity),
|
|
1682
|
+
onOtherDone: (exit) => mergeDecision.Done(exit)
|
|
1683
|
+
}) as Channel.Channel<
|
|
1684
|
+
Chunk.Chunk<L | L2>,
|
|
1685
|
+
Chunk.Chunk<In & In2>,
|
|
1686
|
+
E | E2,
|
|
1687
|
+
never,
|
|
1688
|
+
A3 | A4,
|
|
1689
|
+
unknown,
|
|
1690
|
+
R | R2
|
|
1691
|
+
>
|
|
1692
|
+
return new SinkImpl(racedChannel)
|
|
1687
1693
|
})
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
return unwrapScoped(scoped)
|
|
1694
|
+
}
|
|
1695
|
+
return unwrapScopedWith(race)
|
|
1691
1696
|
}
|
|
1692
1697
|
)
|
|
1693
1698
|
|
|
@@ -1923,9 +1928,24 @@ export const unwrap = <A, In, L, E2, R2, E, R>(
|
|
|
1923
1928
|
/** @internal */
|
|
1924
1929
|
export const unwrapScoped = <A, In, L, E, R>(
|
|
1925
1930
|
effect: Effect.Effect<Sink.Sink<A, In, L, E, R>, E, R>
|
|
1926
|
-
): Sink.Sink<A, In, L, E, Exclude<R, Scope.Scope>> =>
|
|
1927
|
-
|
|
1928
|
-
|
|
1931
|
+
): Sink.Sink<A, In, L, E, Exclude<R, Scope.Scope>> =>
|
|
1932
|
+
new SinkImpl(
|
|
1933
|
+
channel.unwrapScoped(effect.pipe(
|
|
1934
|
+
Effect.map((sink) => toChannel(sink))
|
|
1935
|
+
))
|
|
1936
|
+
)
|
|
1937
|
+
|
|
1938
|
+
/** @internal */
|
|
1939
|
+
export const unwrapScopedWith = <A, In, L, E, R>(
|
|
1940
|
+
f: (scope: Scope.Scope) => Effect.Effect<Sink.Sink<A, In, L, E, R>, E, R>
|
|
1941
|
+
): Sink.Sink<A, In, L, E, R> =>
|
|
1942
|
+
new SinkImpl(
|
|
1943
|
+
channel.unwrapScopedWith((scope) =>
|
|
1944
|
+
f(scope).pipe(
|
|
1945
|
+
Effect.map((sink) => toChannel(sink))
|
|
1946
|
+
)
|
|
1947
|
+
)
|
|
1948
|
+
)
|
|
1929
1949
|
|
|
1930
1950
|
/** @internal */
|
|
1931
1951
|
export const withDuration = <A, In, L, E, R>(
|