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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.zipRight = exports.zipLeft = exports.zip = exports.writeChunk = exports.writeAll = exports.withSpan = exports.updateService = exports.unwrapScoped = exports.unwrap = exports.toQueue = exports.toPull = exports.toPubSub = exports.splitLines = exports.serviceWithEffect = exports.serviceWithChannel = exports.serviceWith = exports.service = exports.scoped = exports.runDrain = exports.runCollect = exports.run = exports.repeated = exports.read = exports.provideSomeLayer = exports.provideService = exports.provideLayer = exports.pipeToOrFail = exports.orElse = exports.orDieWith = exports.orDie = exports.never = exports.mergeWith = exports.mergeOutWith = exports.mergeOut = exports.mergeMap = exports.mergeAllWith = exports.mergeAllUnboundedWith = exports.mergeAllUnbounded = exports.mergeAll = exports.mapOutEffectPar = exports.mapOutEffect = exports.mapOut = exports.mapInputInEffect = exports.mapInputIn = exports.mapInputErrorEffect = exports.mapInputError = exports.mapInputEffect = exports.mapInputContext = exports.mapInput = exports.mapErrorCause = exports.mapError = exports.mapEffect = exports.map = exports.isChannelException = exports.interruptWhenDeferred = exports.interruptWhen = exports.identityChannel = exports.fromQueue = exports.fromPubSubScoped = exports.fromPubSub = exports.fromOption = exports.fromInput = exports.fromEither = exports.foldChannel = exports.flatten = exports.ensuring = exports.emitCollect = exports.drain = exports.doneCollect = exports.contextWithEffect = exports.contextWithChannel = exports.contextWith = exports.context = exports.concatOut = exports.concatMap = exports.collect = exports.catchAll = exports.bufferChunk = exports.buffer = exports.asVoid = exports.as = exports.acquireUseRelease = exports.ChannelExceptionTypeId = exports.ChannelException = void 0;
|
|
6
|
+
exports.zipRight = exports.zipLeft = exports.zip = exports.writeChunk = exports.writeAll = exports.withSpan = exports.updateService = exports.unwrapScopedWith = exports.unwrapScoped = exports.unwrap = exports.toQueue = exports.toPullIn = exports.toPull = exports.toPubSub = exports.splitLines = exports.serviceWithEffect = exports.serviceWithChannel = exports.serviceWith = exports.service = exports.scopedWith = exports.scoped = exports.runScoped = exports.runDrain = exports.runCollect = exports.run = exports.repeated = exports.read = exports.provideSomeLayer = exports.provideService = exports.provideLayer = exports.pipeToOrFail = exports.orElse = exports.orDieWith = exports.orDie = exports.never = exports.mergeWith = exports.mergeOutWith = exports.mergeOut = exports.mergeMap = exports.mergeAllWith = exports.mergeAllUnboundedWith = exports.mergeAllUnbounded = exports.mergeAll = exports.mapOutEffectPar = exports.mapOutEffect = exports.mapOut = exports.mapInputInEffect = exports.mapInputIn = exports.mapInputErrorEffect = exports.mapInputError = exports.mapInputEffect = exports.mapInputContext = exports.mapInput = exports.mapErrorCause = exports.mapError = exports.mapEffect = exports.map = exports.isChannelException = exports.interruptWhenDeferred = exports.interruptWhen = exports.identityChannel = exports.fromQueue = exports.fromPubSubScoped = exports.fromPubSub = exports.fromOption = exports.fromInput = exports.fromEither = exports.foldChannel = exports.flatten = exports.ensuring = exports.emitCollect = exports.drain = exports.doneCollect = exports.contextWithEffect = exports.contextWithChannel = exports.contextWith = exports.context = exports.concatOut = exports.concatMap = exports.collect = exports.catchAll = exports.bufferChunk = exports.buffer = exports.asVoid = exports.as = exports.acquireUseRelease = exports.ChannelExceptionTypeId = exports.ChannelException = void 0;
|
|
7
7
|
var Cause = _interopRequireWildcard(require("../Cause.js"));
|
|
8
8
|
var Chunk = _interopRequireWildcard(require("../Chunk.js"));
|
|
9
9
|
var Context = _interopRequireWildcard(require("../Context.js"));
|
|
@@ -273,31 +273,27 @@ const mapOutEffect = exports.mapOutEffect = /*#__PURE__*/(0, _Function.dual)(2,
|
|
|
273
273
|
return core.pipeTo(self, reader);
|
|
274
274
|
});
|
|
275
275
|
/** @internal */
|
|
276
|
-
const mapOutEffectPar = exports.mapOutEffectPar = /*#__PURE__*/(0, _Function.dual)(3, (self, f, n) => (
|
|
277
|
-
const
|
|
278
|
-
const
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
yield*
|
|
276
|
+
const mapOutEffectPar = exports.mapOutEffectPar = /*#__PURE__*/(0, _Function.dual)(3, (self, f, n) => unwrapScopedWith(scope => Effect.gen(function* () {
|
|
277
|
+
const input = yield* singleProducerAsyncInput.make();
|
|
278
|
+
const queueReader = fromInput(input);
|
|
279
|
+
const queue = yield* Queue.bounded(n);
|
|
280
|
+
yield* Scope.addFinalizer(scope, Queue.shutdown(queue));
|
|
281
|
+
const errorSignal = yield* Deferred.make();
|
|
282
|
+
const withPermits = n === Number.POSITIVE_INFINITY ? _ => _Function.identity : (yield* Effect.makeSemaphore(n)).withPermits;
|
|
283
|
+
const pull = yield* queueReader.pipe(core.pipeTo(self), toPullIn(scope));
|
|
284
|
+
yield* pull.pipe(Effect.matchCauseEffect({
|
|
282
285
|
onFailure: cause => Queue.offer(queue, Effect.failCause(cause)),
|
|
283
|
-
onSuccess:
|
|
284
|
-
onLeft: outDone =>
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
yield* $(Effect.asVoid(Queue.offer(queue, Effect.map(Deferred.await(deferred), Either.right))));
|
|
292
|
-
yield* $(Deferred.succeed(latch, void 0), Effect.zipRight((0, _Function.pipe)(Effect.uninterruptibleMask(restore => (0, _Function.pipe)(Effect.exit(restore(Deferred.await(errorSignal))), Effect.raceFirst(Effect.exit(restore(f(outElem)))),
|
|
293
|
-
// TODO: remove
|
|
294
|
-
Effect.flatMap(exit => Effect.suspend(() => exit)))), Effect.tapErrorCause(cause => Deferred.failCause(errorSignal, cause)), Effect.intoDeferred(deferred))), withPermits(1), Effect.forkScoped);
|
|
295
|
-
yield* $(Deferred.await(latch));
|
|
286
|
+
onSuccess: Either.match({
|
|
287
|
+
onLeft: outDone => Effect.zipRight(Effect.interruptible(withPermits(n)(Effect.void)), Effect.asVoid(Queue.offer(queue, Effect.succeed(Either.left(outDone))))),
|
|
288
|
+
onRight: outElem => Effect.gen(function* () {
|
|
289
|
+
const deferred = yield* Deferred.make();
|
|
290
|
+
const latch = yield* Deferred.make();
|
|
291
|
+
yield* Queue.offer(queue, Effect.map(Deferred.await(deferred), Either.right));
|
|
292
|
+
yield* Deferred.succeed(latch, void 0).pipe(Effect.zipRight(Effect.uninterruptibleMask(restore => Effect.exit(restore(Deferred.await(errorSignal))).pipe(Effect.raceFirst(Effect.exit(restore(f(outElem)))), Effect.flatMap(_Function.identity))).pipe(Effect.tapErrorCause(cause => Deferred.failCause(errorSignal, cause)), Effect.intoDeferred(deferred))), withPermits(1), Effect.forkIn(scope));
|
|
293
|
+
yield* Deferred.await(latch);
|
|
296
294
|
})
|
|
297
295
|
})
|
|
298
|
-
}), Effect.forever, Effect.interruptible, Effect.
|
|
299
|
-
return queue;
|
|
300
|
-
}), Effect.map(queue => {
|
|
296
|
+
}), Effect.forever, Effect.interruptible, Effect.forkIn(scope));
|
|
301
297
|
const consumer = unwrap(Effect.matchCause(Effect.flatten(Queue.take(queue)), {
|
|
302
298
|
onFailure: core.failCause,
|
|
303
299
|
onSuccess: Either.match({
|
|
@@ -305,8 +301,8 @@ const mapOutEffectPar = exports.mapOutEffectPar = /*#__PURE__*/(0, _Function.dua
|
|
|
305
301
|
onRight: outElem => core.flatMap(core.write(outElem), () => consumer)
|
|
306
302
|
})
|
|
307
303
|
}));
|
|
308
|
-
return consumer;
|
|
309
|
-
})
|
|
304
|
+
return core.embedInput(consumer, input);
|
|
305
|
+
})));
|
|
310
306
|
/** @internal */
|
|
311
307
|
const mergeAll = options => {
|
|
312
308
|
return channels => mergeAllWith(options)(channels, _Function.constVoid);
|
|
@@ -327,63 +323,65 @@ const mergeAllWith = ({
|
|
|
327
323
|
bufferSize = 16,
|
|
328
324
|
concurrency,
|
|
329
325
|
mergeStrategy = _mergeStrategy.BackPressure()
|
|
330
|
-
}) => (channels, f) => (
|
|
326
|
+
}) => (channels, f) => unwrapScopedWith(scope => Effect.gen(function* () {
|
|
331
327
|
const concurrencyN = concurrency === "unbounded" ? Number.MAX_SAFE_INTEGER : concurrency;
|
|
332
|
-
const input = yield*
|
|
328
|
+
const input = yield* singleProducerAsyncInput.make();
|
|
333
329
|
const queueReader = fromInput(input);
|
|
334
|
-
const queue = yield*
|
|
335
|
-
|
|
336
|
-
const
|
|
337
|
-
|
|
338
|
-
const
|
|
339
|
-
const
|
|
340
|
-
const
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
330
|
+
const queue = yield* Queue.bounded(bufferSize);
|
|
331
|
+
yield* Scope.addFinalizer(scope, Queue.shutdown(queue));
|
|
332
|
+
const cancelers = yield* Queue.unbounded();
|
|
333
|
+
yield* Scope.addFinalizer(scope, Queue.shutdown(cancelers));
|
|
334
|
+
const lastDone = yield* Ref.make(Option.none());
|
|
335
|
+
const errorSignal = yield* Deferred.make();
|
|
336
|
+
const withPermits = (yield* Effect.makeSemaphore(concurrencyN)).withPermits;
|
|
337
|
+
const pull = yield* toPullIn(core.pipeTo(queueReader, channels), scope);
|
|
338
|
+
function evaluatePull(pull) {
|
|
339
|
+
return pull.pipe(Effect.flatMap(Either.match({
|
|
340
|
+
onLeft: done => Effect.succeed(Option.some(done)),
|
|
341
|
+
onRight: outElem => Effect.as(Queue.offer(queue, Effect.succeed(Either.right(outElem))), Option.none())
|
|
342
|
+
})), Effect.repeat({
|
|
343
|
+
until: _ => Option.isSome(_)
|
|
344
|
+
}), Effect.flatMap(outDone => Ref.update(lastDone, Option.match({
|
|
345
|
+
onNone: () => Option.some(outDone.value),
|
|
346
|
+
onSome: lastDone => Option.some(f(lastDone, outDone.value))
|
|
347
|
+
}))), Effect.catchAllCause(cause => Cause.isInterrupted(cause) ? Effect.failCause(cause) : Queue.offer(queue, Effect.failCause(cause)).pipe(Effect.zipRight(Deferred.succeed(errorSignal, void 0)), Effect.asVoid)));
|
|
348
|
+
}
|
|
349
|
+
yield* pull.pipe(Effect.matchCauseEffect({
|
|
350
|
+
onFailure: cause => Queue.offer(queue, Effect.failCause(cause)).pipe(Effect.zipRight(Effect.succeed(false))),
|
|
351
351
|
onSuccess: Either.match({
|
|
352
352
|
onLeft: outDone => Effect.raceWith(Effect.interruptible(Deferred.await(errorSignal)), Effect.interruptible(withPermits(concurrencyN)(Effect.void)), {
|
|
353
353
|
onSelfDone: (_, permitAcquisition) => Effect.as(Fiber.interrupt(permitAcquisition), false),
|
|
354
|
-
onOtherDone: (_, failureAwait) => Effect.zipRight(Fiber.interrupt(failureAwait),
|
|
354
|
+
onOtherDone: (_, failureAwait) => Effect.zipRight(Fiber.interrupt(failureAwait), Ref.get(lastDone).pipe(Effect.flatMap(Option.match({
|
|
355
355
|
onNone: () => Queue.offer(queue, Effect.succeed(Either.left(outDone))),
|
|
356
356
|
onSome: lastDone => Queue.offer(queue, Effect.succeed(Either.left(f(lastDone, outDone))))
|
|
357
357
|
})), Effect.as(false)))
|
|
358
358
|
}),
|
|
359
359
|
onRight: channel => _mergeStrategy.match(mergeStrategy, {
|
|
360
|
-
onBackPressure: () => Effect.gen(function* (
|
|
361
|
-
const latch = yield*
|
|
362
|
-
const raceEffects = (
|
|
363
|
-
yield*
|
|
364
|
-
yield*
|
|
365
|
-
const errored = yield*
|
|
360
|
+
onBackPressure: () => Effect.gen(function* () {
|
|
361
|
+
const latch = yield* Deferred.make();
|
|
362
|
+
const raceEffects = Effect.scopedWith(scope => toPullIn(core.pipeTo(queueReader, channel), scope).pipe(Effect.flatMap(pull => Effect.race(Effect.exit(evaluatePull(pull)), Effect.exit(Effect.interruptible(Deferred.await(errorSignal))))), Effect.flatMap(_Function.identity)));
|
|
363
|
+
yield* Deferred.succeed(latch, void 0).pipe(Effect.zipRight(raceEffects), withPermits(1), Effect.forkIn(scope));
|
|
364
|
+
yield* Deferred.await(latch);
|
|
365
|
+
const errored = yield* Deferred.isDone(errorSignal);
|
|
366
366
|
return !errored;
|
|
367
367
|
}),
|
|
368
|
-
onBufferSliding: () => Effect.gen(function* (
|
|
369
|
-
const canceler = yield*
|
|
370
|
-
const latch = yield*
|
|
371
|
-
const size = yield*
|
|
372
|
-
yield*
|
|
373
|
-
yield*
|
|
374
|
-
const raceEffects = (
|
|
375
|
-
yield*
|
|
376
|
-
yield*
|
|
377
|
-
const errored = yield*
|
|
368
|
+
onBufferSliding: () => Effect.gen(function* () {
|
|
369
|
+
const canceler = yield* Deferred.make();
|
|
370
|
+
const latch = yield* Deferred.make();
|
|
371
|
+
const size = yield* Queue.size(cancelers);
|
|
372
|
+
yield* Queue.take(cancelers).pipe(Effect.flatMap(canceler => Deferred.succeed(canceler, void 0)), Effect.when(() => size >= concurrencyN));
|
|
373
|
+
yield* Queue.offer(cancelers, canceler);
|
|
374
|
+
const raceEffects = Effect.scopedWith(scope => toPullIn(core.pipeTo(queueReader, channel), scope).pipe(Effect.flatMap(pull => Effect.exit(evaluatePull(pull)).pipe(Effect.race(Effect.exit(Effect.interruptible(Deferred.await(errorSignal)))), Effect.race(Effect.exit(Effect.interruptible(Deferred.await(canceler)))))), Effect.flatMap(_Function.identity)));
|
|
375
|
+
yield* Deferred.succeed(latch, void 0).pipe(Effect.zipRight(raceEffects), withPermits(1), Effect.forkIn(scope));
|
|
376
|
+
yield* Deferred.await(latch);
|
|
377
|
+
const errored = yield* Deferred.isDone(errorSignal);
|
|
378
378
|
return !errored;
|
|
379
379
|
})
|
|
380
380
|
})
|
|
381
381
|
})
|
|
382
382
|
}), Effect.repeat({
|
|
383
383
|
while: _ => _
|
|
384
|
-
}), Effect.
|
|
385
|
-
return [queue, input];
|
|
386
|
-
}), Effect.map(([queue, input]) => {
|
|
384
|
+
}), Effect.forkIn(scope));
|
|
387
385
|
const consumer = (0, _Function.pipe)(Queue.take(queue), Effect.flatten, Effect.matchCause({
|
|
388
386
|
onFailure: core.failCause,
|
|
389
387
|
onSuccess: Either.match({
|
|
@@ -392,7 +390,7 @@ const mergeAllWith = ({
|
|
|
392
390
|
})
|
|
393
391
|
}), unwrap);
|
|
394
392
|
return core.embedInput(consumer, input);
|
|
395
|
-
})
|
|
393
|
+
}));
|
|
396
394
|
/** @internal */
|
|
397
395
|
exports.mergeAllWith = mergeAllWith;
|
|
398
396
|
const mergeMap = exports.mergeMap = /*#__PURE__*/(0, _Function.dual)(3, (self, f, options) => mergeAll(options)(mapOut(self, f)));
|
|
@@ -405,67 +403,84 @@ const mergeOutWith = exports.mergeOutWith = /*#__PURE__*/(0, _Function.dual)(3,
|
|
|
405
403
|
concurrency: n
|
|
406
404
|
})(mapOut(self, _Function.identity), f));
|
|
407
405
|
/** @internal */
|
|
408
|
-
const mergeWith = exports.mergeWith = /*#__PURE__*/(0, _Function.dual)(2, (self, options) =>
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
const
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
};
|
|
425
|
-
return Exit.match(exit, {
|
|
426
|
-
onFailure: cause => onDecision(done(Exit.failCause(cause))),
|
|
427
|
-
onSuccess: Either.match({
|
|
428
|
-
onLeft: z => onDecision(done(Exit.succeed(z))),
|
|
429
|
-
onRight: elem => Effect.succeed(core.flatMap(core.write(elem), () => core.flatMap(core.fromEffect(Effect.forkIn(Effect.interruptible(pull), scope)), leftFiber => go(both(leftFiber, fiber)))))
|
|
430
|
-
})
|
|
431
|
-
});
|
|
432
|
-
};
|
|
433
|
-
const go = state => {
|
|
434
|
-
switch (state._tag) {
|
|
435
|
-
case MergeStateOpCodes.OP_BOTH_RUNNING:
|
|
436
|
-
{
|
|
437
|
-
const leftJoin = Effect.interruptible(Fiber.join(state.left));
|
|
438
|
-
const rightJoin = Effect.interruptible(Fiber.join(state.right));
|
|
439
|
-
return unwrap(Effect.raceWith(leftJoin, rightJoin, {
|
|
440
|
-
onSelfDone: (leftExit, rf) => Effect.zipRight(Fiber.interrupt(rf), handleSide(leftExit, state.right, pullL)(options.onSelfDone, mergeState.BothRunning, f => mergeState.LeftDone(f))),
|
|
441
|
-
onOtherDone: (rightExit, lf) => Effect.zipRight(Fiber.interrupt(lf), handleSide(rightExit, state.left, pullR)(options.onOtherDone, (left, right) => mergeState.BothRunning(right, left), f => mergeState.RightDone(f)))
|
|
442
|
-
}));
|
|
443
|
-
}
|
|
444
|
-
case MergeStateOpCodes.OP_LEFT_DONE:
|
|
445
|
-
{
|
|
446
|
-
return unwrap(Effect.map(Effect.exit(pullR), Exit.match({
|
|
447
|
-
onFailure: cause => core.fromEffect(state.f(Exit.failCause(cause))),
|
|
448
|
-
onSuccess: Either.match({
|
|
449
|
-
onLeft: done => core.fromEffect(state.f(Exit.succeed(done))),
|
|
450
|
-
onRight: elem => core.flatMap(core.write(elem), () => go(mergeState.LeftDone(state.f)))
|
|
451
|
-
})
|
|
452
|
-
})));
|
|
453
|
-
}
|
|
454
|
-
case MergeStateOpCodes.OP_RIGHT_DONE:
|
|
455
|
-
{
|
|
456
|
-
return unwrap(Effect.map(Effect.exit(pullL), Exit.match({
|
|
457
|
-
onFailure: cause => core.fromEffect(state.f(Exit.failCause(cause))),
|
|
406
|
+
const mergeWith = exports.mergeWith = /*#__PURE__*/(0, _Function.dual)(2, (self, options) => {
|
|
407
|
+
function merge(scope) {
|
|
408
|
+
return Effect.gen(function* () {
|
|
409
|
+
const input = yield* singleProducerAsyncInput.make();
|
|
410
|
+
const queueReader = fromInput(input);
|
|
411
|
+
const pullL = yield* toPullIn(core.pipeTo(queueReader, self), scope);
|
|
412
|
+
const pullR = yield* toPullIn(core.pipeTo(queueReader, options.other), scope);
|
|
413
|
+
function handleSide(exit, fiber, pull) {
|
|
414
|
+
return (done, both, single) => {
|
|
415
|
+
function onDecision(decision) {
|
|
416
|
+
const op = decision;
|
|
417
|
+
if (op._tag === MergeDecisionOpCodes.OP_DONE) {
|
|
418
|
+
return Effect.succeed(core.fromEffect(Effect.zipRight(Fiber.interrupt(fiber), op.effect)));
|
|
419
|
+
}
|
|
420
|
+
return Effect.map(Fiber.await(fiber), Exit.match({
|
|
421
|
+
onFailure: cause => core.fromEffect(op.f(Exit.failCause(cause))),
|
|
458
422
|
onSuccess: Either.match({
|
|
459
|
-
onLeft: done => core.fromEffect(
|
|
460
|
-
onRight: elem =>
|
|
423
|
+
onLeft: done => core.fromEffect(op.f(Exit.succeed(done))),
|
|
424
|
+
onRight: elem => zipRight(core.write(elem), go(single(op.f)))
|
|
461
425
|
})
|
|
462
|
-
}))
|
|
426
|
+
}));
|
|
463
427
|
}
|
|
428
|
+
return Exit.match(exit, {
|
|
429
|
+
onFailure: cause => onDecision(done(Exit.failCause(cause))),
|
|
430
|
+
onSuccess: Either.match({
|
|
431
|
+
onLeft: z => onDecision(done(Exit.succeed(z))),
|
|
432
|
+
onRight: elem => Effect.succeed(core.flatMap(core.write(elem), () => core.flatMap(core.fromEffect(Effect.forkIn(Effect.interruptible(pull), scope)), leftFiber => go(both(leftFiber, fiber)))))
|
|
433
|
+
})
|
|
434
|
+
});
|
|
435
|
+
};
|
|
464
436
|
}
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
437
|
+
function go(state) {
|
|
438
|
+
switch (state._tag) {
|
|
439
|
+
case MergeStateOpCodes.OP_BOTH_RUNNING:
|
|
440
|
+
{
|
|
441
|
+
const leftJoin = Effect.interruptible(Fiber.join(state.left));
|
|
442
|
+
const rightJoin = Effect.interruptible(Fiber.join(state.right));
|
|
443
|
+
return unwrap(Effect.raceWith(leftJoin, rightJoin, {
|
|
444
|
+
onSelfDone: (leftExit, rf) => Effect.zipRight(Fiber.interrupt(rf), handleSide(leftExit, state.right, pullL)(options.onSelfDone, mergeState.BothRunning, f => mergeState.LeftDone(f))),
|
|
445
|
+
onOtherDone: (rightExit, lf) => Effect.zipRight(Fiber.interrupt(lf), handleSide(rightExit, state.left, pullR)(options.onOtherDone, (left, right) => mergeState.BothRunning(right, left), f => mergeState.RightDone(f)))
|
|
446
|
+
}));
|
|
447
|
+
}
|
|
448
|
+
case MergeStateOpCodes.OP_LEFT_DONE:
|
|
449
|
+
{
|
|
450
|
+
return unwrap(Effect.map(Effect.exit(pullR), Exit.match({
|
|
451
|
+
onFailure: cause => core.fromEffect(state.f(Exit.failCause(cause))),
|
|
452
|
+
onSuccess: Either.match({
|
|
453
|
+
onLeft: done => core.fromEffect(state.f(Exit.succeed(done))),
|
|
454
|
+
onRight: elem => core.flatMap(core.write(elem), () => go(mergeState.LeftDone(state.f)))
|
|
455
|
+
})
|
|
456
|
+
})));
|
|
457
|
+
}
|
|
458
|
+
case MergeStateOpCodes.OP_RIGHT_DONE:
|
|
459
|
+
{
|
|
460
|
+
return unwrap(Effect.map(Effect.exit(pullL), Exit.match({
|
|
461
|
+
onFailure: cause => core.fromEffect(state.f(Exit.failCause(cause))),
|
|
462
|
+
onSuccess: Either.match({
|
|
463
|
+
onLeft: done => core.fromEffect(state.f(Exit.succeed(done))),
|
|
464
|
+
onRight: elem => core.flatMap(core.write(elem), () => go(mergeState.RightDone(state.f)))
|
|
465
|
+
})
|
|
466
|
+
})));
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
return core.fromEffect(Effect.withFiberRuntime(parent => {
|
|
471
|
+
const inherit = Effect.withFiberRuntime(state => {
|
|
472
|
+
;
|
|
473
|
+
state.transferChildren(parent.scope());
|
|
474
|
+
return Effect.void;
|
|
475
|
+
});
|
|
476
|
+
const leftFiber = Effect.interruptible(pullL).pipe(Effect.ensuring(inherit), Effect.forkIn(scope));
|
|
477
|
+
const rightFiber = Effect.interruptible(pullR).pipe(Effect.ensuring(inherit), Effect.forkIn(scope));
|
|
478
|
+
return Effect.zipWith(leftFiber, rightFiber, (left, right) => mergeState.BothRunning(left, right));
|
|
479
|
+
})).pipe(core.flatMap(go), core.embedInput(input));
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
return unwrapScopedWith(merge);
|
|
483
|
+
});
|
|
469
484
|
/** @internal */
|
|
470
485
|
const never = exports.never = /*#__PURE__*/core.fromEffect(Effect.never);
|
|
471
486
|
/** @internal */
|
|
@@ -499,7 +514,7 @@ const provideService = exports.provideService = /*#__PURE__*/(0, _Function.dual)
|
|
|
499
514
|
return core.flatMap(context(), context => core.provideContext(self, Context.add(context, tag, service)));
|
|
500
515
|
});
|
|
501
516
|
/** @internal */
|
|
502
|
-
const provideLayer = exports.provideLayer = /*#__PURE__*/(0, _Function.dual)(2, (self, layer) =>
|
|
517
|
+
const provideLayer = exports.provideLayer = /*#__PURE__*/(0, _Function.dual)(2, (self, layer) => unwrapScopedWith(scope => Effect.map(Layer.buildWithScope(layer, scope), context => core.provideContext(self, context))));
|
|
503
518
|
/** @internal */
|
|
504
519
|
const mapInputContext = exports.mapInputContext = /*#__PURE__*/(0, _Function.dual)(2, (self, f) => contextWithChannel(context => core.provideContext(self, f(context))));
|
|
505
520
|
/** @internal */
|
|
@@ -513,18 +528,24 @@ exports.read = read;
|
|
|
513
528
|
const repeated = self => core.flatMap(self, () => repeated(self));
|
|
514
529
|
/** @internal */
|
|
515
530
|
exports.repeated = repeated;
|
|
516
|
-
const run = self => Effect.
|
|
531
|
+
const run = self => Effect.scopedWith(scope => executor.runIn(self, scope));
|
|
517
532
|
/** @internal */
|
|
518
533
|
exports.run = run;
|
|
519
|
-
const runCollect = self =>
|
|
534
|
+
const runCollect = self => run(core.collectElements(self));
|
|
520
535
|
/** @internal */
|
|
521
536
|
exports.runCollect = runCollect;
|
|
522
|
-
const runDrain = self =>
|
|
537
|
+
const runDrain = self => run(drain(self));
|
|
523
538
|
/** @internal */
|
|
524
539
|
exports.runDrain = runDrain;
|
|
540
|
+
const runScoped = self => Effect.scopeWith(scope => executor.runIn(self, scope));
|
|
541
|
+
/** @internal */
|
|
542
|
+
exports.runScoped = runScoped;
|
|
525
543
|
const scoped = effect => unwrap(Effect.uninterruptibleMask(restore => Effect.map(Scope.make(), scope => core.acquireReleaseOut(Effect.tapErrorCause(restore(Scope.extend(effect, scope)), cause => Scope.close(scope, Exit.failCause(cause))), (_, exit) => Scope.close(scope, exit)))));
|
|
526
544
|
/** @internal */
|
|
527
545
|
exports.scoped = scoped;
|
|
546
|
+
const scopedWith = f => unwrapScoped(Effect.map(Effect.scope, scope => core.flatMap(core.fromEffect(f(scope)), core.write)));
|
|
547
|
+
/** @internal */
|
|
548
|
+
exports.scopedWith = scopedWith;
|
|
528
549
|
const service = tag => core.fromEffect(tag);
|
|
529
550
|
/** @internal */
|
|
530
551
|
exports.service = service;
|
|
@@ -614,12 +635,14 @@ exports.splitLines = splitLines;
|
|
|
614
635
|
const toPubSub = pubsub => toQueue(pubsub);
|
|
615
636
|
/** @internal */
|
|
616
637
|
exports.toPubSub = toPubSub;
|
|
617
|
-
const toPull = self => Effect.
|
|
618
|
-
const finalize = exec.close(exit);
|
|
619
|
-
return finalize === undefined ? Effect.void : finalize;
|
|
620
|
-
}), exec => Effect.suspend(() => interpretToPull(exec.run(), exec)));
|
|
638
|
+
const toPull = self => Effect.flatMap(Effect.scope, scope => toPullIn(self, scope));
|
|
621
639
|
/** @internal */
|
|
622
640
|
exports.toPull = toPull;
|
|
641
|
+
const toPullIn = exports.toPullIn = /*#__PURE__*/(0, _Function.dual)(2, (self, scope) => Effect.zip(Effect.sync(() => new executor.ChannelExecutor(self, void 0, _Function.identity)), Effect.runtime()).pipe(Effect.tap(([executor, runtime]) => Scope.addFinalizerExit(scope, exit => {
|
|
642
|
+
const finalizer = executor.close(exit);
|
|
643
|
+
return finalizer !== undefined ? Effect.provide(finalizer, runtime) : Effect.void;
|
|
644
|
+
})), Effect.uninterruptible, Effect.map(([executor]) => Effect.suspend(() => interpretToPull(executor.run(), executor)))));
|
|
645
|
+
/** @internal */
|
|
623
646
|
const interpretToPull = (channelState, exec) => {
|
|
624
647
|
const state = channelState;
|
|
625
648
|
switch (state._tag) {
|
|
@@ -662,6 +685,9 @@ exports.unwrap = unwrap;
|
|
|
662
685
|
const unwrapScoped = self => core.concatAllWith(scoped(self), (d, _) => d, (d, _) => d);
|
|
663
686
|
/** @internal */
|
|
664
687
|
exports.unwrapScoped = unwrapScoped;
|
|
688
|
+
const unwrapScopedWith = f => core.concatAllWith(scopedWith(f), (d, _) => d, (d, _) => d);
|
|
689
|
+
/** @internal */
|
|
690
|
+
exports.unwrapScopedWith = unwrapScopedWith;
|
|
665
691
|
const updateService = exports.updateService = /*#__PURE__*/(0, _Function.dual)(3, (self, tag, f) => mapInputContext(self, context => Context.merge(context, Context.make(tag, f(Context.unsafeGet(context, tag))))));
|
|
666
692
|
/** @internal */
|
|
667
693
|
const withSpan = function () {
|