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
package/src/Either.ts
CHANGED
|
@@ -130,10 +130,12 @@ export const left: <L>(left: L) => Either<never, L> = either.left
|
|
|
130
130
|
* the provided default as a `Left`.
|
|
131
131
|
*
|
|
132
132
|
* @example
|
|
133
|
+
* ```ts
|
|
133
134
|
* import { Either } from "effect"
|
|
134
135
|
*
|
|
135
136
|
* assert.deepStrictEqual(Either.fromNullable(1, () => 'fallback'), Either.right(1))
|
|
136
137
|
* assert.deepStrictEqual(Either.fromNullable(null, () => 'fallback'), Either.left('fallback'))
|
|
138
|
+
* ```
|
|
137
139
|
*
|
|
138
140
|
* @category constructors
|
|
139
141
|
* @since 2.0.0
|
|
@@ -144,10 +146,12 @@ export const fromNullable: {
|
|
|
144
146
|
* the provided default as a `Left`.
|
|
145
147
|
*
|
|
146
148
|
* @example
|
|
149
|
+
* ```ts
|
|
147
150
|
* import { Either } from "effect"
|
|
148
151
|
*
|
|
149
152
|
* assert.deepStrictEqual(Either.fromNullable(1, () => 'fallback'), Either.right(1))
|
|
150
153
|
* assert.deepStrictEqual(Either.fromNullable(null, () => 'fallback'), Either.left('fallback'))
|
|
154
|
+
* ```
|
|
151
155
|
*
|
|
152
156
|
* @category constructors
|
|
153
157
|
* @since 2.0.0
|
|
@@ -158,10 +162,12 @@ export const fromNullable: {
|
|
|
158
162
|
* the provided default as a `Left`.
|
|
159
163
|
*
|
|
160
164
|
* @example
|
|
165
|
+
* ```ts
|
|
161
166
|
* import { Either } from "effect"
|
|
162
167
|
*
|
|
163
168
|
* assert.deepStrictEqual(Either.fromNullable(1, () => 'fallback'), Either.right(1))
|
|
164
169
|
* assert.deepStrictEqual(Either.fromNullable(null, () => 'fallback'), Either.left('fallback'))
|
|
170
|
+
* ```
|
|
165
171
|
*
|
|
166
172
|
* @category constructors
|
|
167
173
|
* @since 2.0.0
|
|
@@ -175,10 +181,12 @@ export const fromNullable: {
|
|
|
175
181
|
|
|
176
182
|
/**
|
|
177
183
|
* @example
|
|
184
|
+
* ```ts
|
|
178
185
|
* import { Either, Option } from "effect"
|
|
179
186
|
*
|
|
180
187
|
* assert.deepStrictEqual(Either.fromOption(Option.some(1), () => 'error'), Either.right(1))
|
|
181
188
|
* assert.deepStrictEqual(Either.fromOption(Option.none(), () => 'error'), Either.left('error'))
|
|
189
|
+
* ```
|
|
182
190
|
*
|
|
183
191
|
* @category constructors
|
|
184
192
|
* @since 2.0.0
|
|
@@ -186,10 +194,12 @@ export const fromNullable: {
|
|
|
186
194
|
export const fromOption: {
|
|
187
195
|
/**
|
|
188
196
|
* @example
|
|
197
|
+
* ```ts
|
|
189
198
|
* import { Either, Option } from "effect"
|
|
190
199
|
*
|
|
191
200
|
* assert.deepStrictEqual(Either.fromOption(Option.some(1), () => 'error'), Either.right(1))
|
|
192
201
|
* assert.deepStrictEqual(Either.fromOption(Option.none(), () => 'error'), Either.left('error'))
|
|
202
|
+
* ```
|
|
193
203
|
*
|
|
194
204
|
* @category constructors
|
|
195
205
|
* @since 2.0.0
|
|
@@ -197,10 +207,12 @@ export const fromOption: {
|
|
|
197
207
|
<L>(onNone: () => L): <R>(self: Option<R>) => Either<R, L>
|
|
198
208
|
/**
|
|
199
209
|
* @example
|
|
210
|
+
* ```ts
|
|
200
211
|
* import { Either, Option } from "effect"
|
|
201
212
|
*
|
|
202
213
|
* assert.deepStrictEqual(Either.fromOption(Option.some(1), () => 'error'), Either.right(1))
|
|
203
214
|
* assert.deepStrictEqual(Either.fromOption(Option.none(), () => 'error'), Either.left('error'))
|
|
215
|
+
* ```
|
|
204
216
|
*
|
|
205
217
|
* @category constructors
|
|
206
218
|
* @since 2.0.0
|
|
@@ -254,11 +266,13 @@ export {
|
|
|
254
266
|
* @param input - The value to test.
|
|
255
267
|
*
|
|
256
268
|
* @example
|
|
269
|
+
* ```ts
|
|
257
270
|
* import { Either } from "effect"
|
|
258
271
|
*
|
|
259
272
|
* assert.deepStrictEqual(Either.isEither(Either.right(1)), true)
|
|
260
273
|
* assert.deepStrictEqual(Either.isEither(Either.left("a")), true)
|
|
261
274
|
* assert.deepStrictEqual(Either.isEither({ right: 1 }), false)
|
|
275
|
+
* ```
|
|
262
276
|
*
|
|
263
277
|
* @category guards
|
|
264
278
|
* @since 2.0.0
|
|
@@ -271,10 +285,12 @@ export const isEither: (input: unknown) => input is Either<unknown, unknown> = e
|
|
|
271
285
|
* @param self - The `Either` to check.
|
|
272
286
|
*
|
|
273
287
|
* @example
|
|
288
|
+
* ```ts
|
|
274
289
|
* import { Either } from "effect"
|
|
275
290
|
*
|
|
276
291
|
* assert.deepStrictEqual(Either.isLeft(Either.right(1)), false)
|
|
277
292
|
* assert.deepStrictEqual(Either.isLeft(Either.left("a")), true)
|
|
293
|
+
* ```
|
|
278
294
|
*
|
|
279
295
|
* @category guards
|
|
280
296
|
* @since 2.0.0
|
|
@@ -287,10 +303,12 @@ export const isLeft: <R, L>(self: Either<R, L>) => self is Left<L, R> = either.i
|
|
|
287
303
|
* @param self - The `Either` to check.
|
|
288
304
|
*
|
|
289
305
|
* @example
|
|
306
|
+
* ```ts
|
|
290
307
|
* import { Either } from "effect"
|
|
291
308
|
*
|
|
292
309
|
* assert.deepStrictEqual(Either.isRight(Either.right(1)), true)
|
|
293
310
|
* assert.deepStrictEqual(Either.isRight(Either.left("a")), false)
|
|
311
|
+
* ```
|
|
294
312
|
*
|
|
295
313
|
* @category guards
|
|
296
314
|
* @since 2.0.0
|
|
@@ -300,13 +318,13 @@ export const isRight: <R, L>(self: Either<R, L>) => self is Right<L, R> = either
|
|
|
300
318
|
/**
|
|
301
319
|
* Converts a `Either` to an `Option` discarding the `Left`.
|
|
302
320
|
*
|
|
303
|
-
* Alias of {@link toOption}.
|
|
304
|
-
*
|
|
305
321
|
* @example
|
|
322
|
+
* ```ts
|
|
306
323
|
* import { Either, Option } from "effect"
|
|
307
324
|
*
|
|
308
325
|
* assert.deepStrictEqual(Either.getRight(Either.right('ok')), Option.some('ok'))
|
|
309
326
|
* assert.deepStrictEqual(Either.getRight(Either.left('err')), Option.none())
|
|
327
|
+
* ```
|
|
310
328
|
*
|
|
311
329
|
* @category getters
|
|
312
330
|
* @since 2.0.0
|
|
@@ -317,10 +335,12 @@ export const getRight: <R, L>(self: Either<R, L>) => Option<R> = either.getRight
|
|
|
317
335
|
* Converts a `Either` to an `Option` discarding the value.
|
|
318
336
|
*
|
|
319
337
|
* @example
|
|
338
|
+
* ```ts
|
|
320
339
|
* import { Either, Option } from "effect"
|
|
321
340
|
*
|
|
322
341
|
* assert.deepStrictEqual(Either.getLeft(Either.right('ok')), Option.none())
|
|
323
342
|
* assert.deepStrictEqual(Either.getLeft(Either.left('err')), Option.some('err'))
|
|
343
|
+
* ```
|
|
324
344
|
*
|
|
325
345
|
* @category getters
|
|
326
346
|
* @since 2.0.0
|
|
@@ -452,6 +472,7 @@ export const map: {
|
|
|
452
472
|
* if the value is a `Right` the inner value is applied to the `onRight` function.
|
|
453
473
|
*
|
|
454
474
|
* @example
|
|
475
|
+
* ```ts
|
|
455
476
|
* import { pipe, Either } from "effect"
|
|
456
477
|
*
|
|
457
478
|
* const onLeft = (strings: ReadonlyArray<string>): string => `strings: ${strings.join(', ')}`
|
|
@@ -463,6 +484,7 @@ export const map: {
|
|
|
463
484
|
* pipe(Either.left(['string 1', 'string 2']), Either.match({ onLeft, onRight })),
|
|
464
485
|
* 'strings: string 1, string 2'
|
|
465
486
|
* )
|
|
487
|
+
* ```
|
|
466
488
|
*
|
|
467
489
|
* @category pattern matching
|
|
468
490
|
* @since 2.0.0
|
|
@@ -473,6 +495,7 @@ export const match: {
|
|
|
473
495
|
* if the value is a `Right` the inner value is applied to the `onRight` function.
|
|
474
496
|
*
|
|
475
497
|
* @example
|
|
498
|
+
* ```ts
|
|
476
499
|
* import { pipe, Either } from "effect"
|
|
477
500
|
*
|
|
478
501
|
* const onLeft = (strings: ReadonlyArray<string>): string => `strings: ${strings.join(', ')}`
|
|
@@ -484,6 +507,7 @@ export const match: {
|
|
|
484
507
|
* pipe(Either.left(['string 1', 'string 2']), Either.match({ onLeft, onRight })),
|
|
485
508
|
* 'strings: string 1, string 2'
|
|
486
509
|
* )
|
|
510
|
+
* ```
|
|
487
511
|
*
|
|
488
512
|
* @category pattern matching
|
|
489
513
|
* @since 2.0.0
|
|
@@ -499,6 +523,7 @@ export const match: {
|
|
|
499
523
|
* if the value is a `Right` the inner value is applied to the `onRight` function.
|
|
500
524
|
*
|
|
501
525
|
* @example
|
|
526
|
+
* ```ts
|
|
502
527
|
* import { pipe, Either } from "effect"
|
|
503
528
|
*
|
|
504
529
|
* const onLeft = (strings: ReadonlyArray<string>): string => `strings: ${strings.join(', ')}`
|
|
@@ -510,6 +535,7 @@ export const match: {
|
|
|
510
535
|
* pipe(Either.left(['string 1', 'string 2']), Either.match({ onLeft, onRight })),
|
|
511
536
|
* 'strings: string 1, string 2'
|
|
512
537
|
* )
|
|
538
|
+
* ```
|
|
513
539
|
*
|
|
514
540
|
* @category pattern matching
|
|
515
541
|
* @since 2.0.0
|
|
@@ -536,6 +562,7 @@ export const match: {
|
|
|
536
562
|
* @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
|
|
537
563
|
*
|
|
538
564
|
* @example
|
|
565
|
+
* ```ts
|
|
539
566
|
* import { pipe, Either } from "effect"
|
|
540
567
|
*
|
|
541
568
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -554,6 +581,7 @@ export const match: {
|
|
|
554
581
|
* ),
|
|
555
582
|
* Either.left("0 is not positive")
|
|
556
583
|
* )
|
|
584
|
+
* ```
|
|
557
585
|
*
|
|
558
586
|
* @category lifting
|
|
559
587
|
* @since 3.4.0
|
|
@@ -566,6 +594,7 @@ export const liftPredicate: {
|
|
|
566
594
|
* @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
|
|
567
595
|
*
|
|
568
596
|
* @example
|
|
597
|
+
* ```ts
|
|
569
598
|
* import { pipe, Either } from "effect"
|
|
570
599
|
*
|
|
571
600
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -584,6 +613,7 @@ export const liftPredicate: {
|
|
|
584
613
|
* ),
|
|
585
614
|
* Either.left("0 is not positive")
|
|
586
615
|
* )
|
|
616
|
+
* ```
|
|
587
617
|
*
|
|
588
618
|
* @category lifting
|
|
589
619
|
* @since 3.4.0
|
|
@@ -596,6 +626,7 @@ export const liftPredicate: {
|
|
|
596
626
|
* @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
|
|
597
627
|
*
|
|
598
628
|
* @example
|
|
629
|
+
* ```ts
|
|
599
630
|
* import { pipe, Either } from "effect"
|
|
600
631
|
*
|
|
601
632
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -614,6 +645,7 @@ export const liftPredicate: {
|
|
|
614
645
|
* ),
|
|
615
646
|
* Either.left("0 is not positive")
|
|
616
647
|
* )
|
|
648
|
+
* ```
|
|
617
649
|
*
|
|
618
650
|
* @category lifting
|
|
619
651
|
* @since 3.4.0
|
|
@@ -626,6 +658,7 @@ export const liftPredicate: {
|
|
|
626
658
|
* @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
|
|
627
659
|
*
|
|
628
660
|
* @example
|
|
661
|
+
* ```ts
|
|
629
662
|
* import { pipe, Either } from "effect"
|
|
630
663
|
*
|
|
631
664
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -644,6 +677,7 @@ export const liftPredicate: {
|
|
|
644
677
|
* ),
|
|
645
678
|
* Either.left("0 is not positive")
|
|
646
679
|
* )
|
|
680
|
+
* ```
|
|
647
681
|
*
|
|
648
682
|
* @category lifting
|
|
649
683
|
* @since 3.4.0
|
|
@@ -656,6 +690,7 @@ export const liftPredicate: {
|
|
|
656
690
|
* @param predicate - A `Predicate` function that takes in a value of type `A` and returns a boolean.
|
|
657
691
|
*
|
|
658
692
|
* @example
|
|
693
|
+
* ```ts
|
|
659
694
|
* import { pipe, Either } from "effect"
|
|
660
695
|
*
|
|
661
696
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -674,6 +709,7 @@ export const liftPredicate: {
|
|
|
674
709
|
* ),
|
|
675
710
|
* Either.left("0 is not positive")
|
|
676
711
|
* )
|
|
712
|
+
* ```
|
|
677
713
|
*
|
|
678
714
|
* @category lifting
|
|
679
715
|
* @since 3.4.0
|
|
@@ -694,6 +730,7 @@ export const liftPredicate: {
|
|
|
694
730
|
* If the predicate fails, set the left value with the result of the provided function.
|
|
695
731
|
*
|
|
696
732
|
* @example
|
|
733
|
+
* ```ts
|
|
697
734
|
* import { pipe, Either } from "effect"
|
|
698
735
|
*
|
|
699
736
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -712,6 +749,7 @@ export const liftPredicate: {
|
|
|
712
749
|
* ),
|
|
713
750
|
* Either.left("0 is not positive")
|
|
714
751
|
* )
|
|
752
|
+
* ```
|
|
715
753
|
*
|
|
716
754
|
* @since 2.0.0
|
|
717
755
|
* @category filtering & conditionals
|
|
@@ -722,6 +760,7 @@ export const filterOrLeft: {
|
|
|
722
760
|
* If the predicate fails, set the left value with the result of the provided function.
|
|
723
761
|
*
|
|
724
762
|
* @example
|
|
763
|
+
* ```ts
|
|
725
764
|
* import { pipe, Either } from "effect"
|
|
726
765
|
*
|
|
727
766
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -740,6 +779,7 @@ export const filterOrLeft: {
|
|
|
740
779
|
* ),
|
|
741
780
|
* Either.left("0 is not positive")
|
|
742
781
|
* )
|
|
782
|
+
* ```
|
|
743
783
|
*
|
|
744
784
|
* @since 2.0.0
|
|
745
785
|
* @category filtering & conditionals
|
|
@@ -753,6 +793,7 @@ export const filterOrLeft: {
|
|
|
753
793
|
* If the predicate fails, set the left value with the result of the provided function.
|
|
754
794
|
*
|
|
755
795
|
* @example
|
|
796
|
+
* ```ts
|
|
756
797
|
* import { pipe, Either } from "effect"
|
|
757
798
|
*
|
|
758
799
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -771,6 +812,7 @@ export const filterOrLeft: {
|
|
|
771
812
|
* ),
|
|
772
813
|
* Either.left("0 is not positive")
|
|
773
814
|
* )
|
|
815
|
+
* ```
|
|
774
816
|
*
|
|
775
817
|
* @since 2.0.0
|
|
776
818
|
* @category filtering & conditionals
|
|
@@ -784,6 +826,7 @@ export const filterOrLeft: {
|
|
|
784
826
|
* If the predicate fails, set the left value with the result of the provided function.
|
|
785
827
|
*
|
|
786
828
|
* @example
|
|
829
|
+
* ```ts
|
|
787
830
|
* import { pipe, Either } from "effect"
|
|
788
831
|
*
|
|
789
832
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -802,6 +845,7 @@ export const filterOrLeft: {
|
|
|
802
845
|
* ),
|
|
803
846
|
* Either.left("0 is not positive")
|
|
804
847
|
* )
|
|
848
|
+
* ```
|
|
805
849
|
*
|
|
806
850
|
* @since 2.0.0
|
|
807
851
|
* @category filtering & conditionals
|
|
@@ -816,6 +860,7 @@ export const filterOrLeft: {
|
|
|
816
860
|
* If the predicate fails, set the left value with the result of the provided function.
|
|
817
861
|
*
|
|
818
862
|
* @example
|
|
863
|
+
* ```ts
|
|
819
864
|
* import { pipe, Either } from "effect"
|
|
820
865
|
*
|
|
821
866
|
* const isPositive = (n: number): boolean => n > 0
|
|
@@ -834,6 +879,7 @@ export const filterOrLeft: {
|
|
|
834
879
|
* ),
|
|
835
880
|
* Either.left("0 is not positive")
|
|
836
881
|
* )
|
|
882
|
+
* ```
|
|
837
883
|
*
|
|
838
884
|
* @since 2.0.0
|
|
839
885
|
* @category filtering & conditionals
|
|
@@ -858,10 +904,12 @@ export const merge: <R, L>(self: Either<R, L>) => L | R = match({
|
|
|
858
904
|
* Returns the wrapped value if it's a `Right` or a default value if is a `Left`.
|
|
859
905
|
*
|
|
860
906
|
* @example
|
|
907
|
+
* ```ts
|
|
861
908
|
* import { Either } from "effect"
|
|
862
909
|
*
|
|
863
910
|
* assert.deepStrictEqual(Either.getOrElse(Either.right(1), (error) => error + "!"), 1)
|
|
864
911
|
* assert.deepStrictEqual(Either.getOrElse(Either.left("not a number"), (error) => error + "!"), "not a number!")
|
|
912
|
+
* ```
|
|
865
913
|
*
|
|
866
914
|
* @category getters
|
|
867
915
|
* @since 2.0.0
|
|
@@ -871,10 +919,12 @@ export const getOrElse: {
|
|
|
871
919
|
* Returns the wrapped value if it's a `Right` or a default value if is a `Left`.
|
|
872
920
|
*
|
|
873
921
|
* @example
|
|
922
|
+
* ```ts
|
|
874
923
|
* import { Either } from "effect"
|
|
875
924
|
*
|
|
876
925
|
* assert.deepStrictEqual(Either.getOrElse(Either.right(1), (error) => error + "!"), 1)
|
|
877
926
|
* assert.deepStrictEqual(Either.getOrElse(Either.left("not a number"), (error) => error + "!"), "not a number!")
|
|
927
|
+
* ```
|
|
878
928
|
*
|
|
879
929
|
* @category getters
|
|
880
930
|
* @since 2.0.0
|
|
@@ -884,10 +934,12 @@ export const getOrElse: {
|
|
|
884
934
|
* Returns the wrapped value if it's a `Right` or a default value if is a `Left`.
|
|
885
935
|
*
|
|
886
936
|
* @example
|
|
937
|
+
* ```ts
|
|
887
938
|
* import { Either } from "effect"
|
|
888
939
|
*
|
|
889
940
|
* assert.deepStrictEqual(Either.getOrElse(Either.right(1), (error) => error + "!"), 1)
|
|
890
941
|
* assert.deepStrictEqual(Either.getOrElse(Either.left("not a number"), (error) => error + "!"), "not a number!")
|
|
942
|
+
* ```
|
|
891
943
|
*
|
|
892
944
|
* @category getters
|
|
893
945
|
* @since 2.0.0
|
|
@@ -900,10 +952,12 @@ export const getOrElse: {
|
|
|
900
952
|
|
|
901
953
|
/**
|
|
902
954
|
* @example
|
|
955
|
+
* ```ts
|
|
903
956
|
* import { Either } from "effect"
|
|
904
957
|
*
|
|
905
958
|
* assert.deepStrictEqual(Either.getOrNull(Either.right(1)), 1)
|
|
906
959
|
* assert.deepStrictEqual(Either.getOrNull(Either.left("a")), null)
|
|
960
|
+
* ```
|
|
907
961
|
*
|
|
908
962
|
* @category getters
|
|
909
963
|
* @since 2.0.0
|
|
@@ -912,10 +966,12 @@ export const getOrNull: <R, L>(self: Either<R, L>) => R | null = getOrElse(const
|
|
|
912
966
|
|
|
913
967
|
/**
|
|
914
968
|
* @example
|
|
969
|
+
* ```ts
|
|
915
970
|
* import { Either } from "effect"
|
|
916
971
|
*
|
|
917
972
|
* assert.deepStrictEqual(Either.getOrUndefined(Either.right(1)), 1)
|
|
918
973
|
* assert.deepStrictEqual(Either.getOrUndefined(Either.left("a")), undefined)
|
|
974
|
+
* ```
|
|
919
975
|
*
|
|
920
976
|
* @category getters
|
|
921
977
|
* @since 2.0.0
|
|
@@ -931,6 +987,7 @@ export const getOrUndefined: <R, L>(self: Either<R, L>) => R | undefined = getOr
|
|
|
931
987
|
* @param onLeft - A function that will be called if the `Either` is `Left`. It returns the error to be thrown.
|
|
932
988
|
*
|
|
933
989
|
* @example
|
|
990
|
+
* ```ts
|
|
934
991
|
* import { Either } from "effect"
|
|
935
992
|
*
|
|
936
993
|
* assert.deepStrictEqual(
|
|
@@ -938,6 +995,7 @@ export const getOrUndefined: <R, L>(self: Either<R, L>) => R | undefined = getOr
|
|
|
938
995
|
* 1
|
|
939
996
|
* )
|
|
940
997
|
* assert.throws(() => Either.getOrThrowWith(Either.left("error"), () => new Error('Unexpected Left')))
|
|
998
|
+
* ```
|
|
941
999
|
*
|
|
942
1000
|
* @category getters
|
|
943
1001
|
* @since 2.0.0
|
|
@@ -952,6 +1010,7 @@ export const getOrThrowWith: {
|
|
|
952
1010
|
* @param onLeft - A function that will be called if the `Either` is `Left`. It returns the error to be thrown.
|
|
953
1011
|
*
|
|
954
1012
|
* @example
|
|
1013
|
+
* ```ts
|
|
955
1014
|
* import { Either } from "effect"
|
|
956
1015
|
*
|
|
957
1016
|
* assert.deepStrictEqual(
|
|
@@ -959,6 +1018,7 @@ export const getOrThrowWith: {
|
|
|
959
1018
|
* 1
|
|
960
1019
|
* )
|
|
961
1020
|
* assert.throws(() => Either.getOrThrowWith(Either.left("error"), () => new Error('Unexpected Left')))
|
|
1021
|
+
* ```
|
|
962
1022
|
*
|
|
963
1023
|
* @category getters
|
|
964
1024
|
* @since 2.0.0
|
|
@@ -973,6 +1033,7 @@ export const getOrThrowWith: {
|
|
|
973
1033
|
* @param onLeft - A function that will be called if the `Either` is `Left`. It returns the error to be thrown.
|
|
974
1034
|
*
|
|
975
1035
|
* @example
|
|
1036
|
+
* ```ts
|
|
976
1037
|
* import { Either } from "effect"
|
|
977
1038
|
*
|
|
978
1039
|
* assert.deepStrictEqual(
|
|
@@ -980,6 +1041,7 @@ export const getOrThrowWith: {
|
|
|
980
1041
|
* 1
|
|
981
1042
|
* )
|
|
982
1043
|
* assert.throws(() => Either.getOrThrowWith(Either.left("error"), () => new Error('Unexpected Left')))
|
|
1044
|
+
* ```
|
|
983
1045
|
*
|
|
984
1046
|
* @category getters
|
|
985
1047
|
* @since 2.0.0
|
|
@@ -1001,10 +1063,12 @@ export const getOrThrowWith: {
|
|
|
1001
1063
|
* @throws `Error("getOrThrow called on a Left")`
|
|
1002
1064
|
*
|
|
1003
1065
|
* @example
|
|
1066
|
+
* ```ts
|
|
1004
1067
|
* import { Either } from "effect"
|
|
1005
1068
|
*
|
|
1006
1069
|
* assert.deepStrictEqual(Either.getOrThrow(Either.right(1)), 1)
|
|
1007
1070
|
* assert.throws(() => Either.getOrThrow(Either.left("error")))
|
|
1071
|
+
* ```
|
|
1008
1072
|
*
|
|
1009
1073
|
* @category getters
|
|
1010
1074
|
* @since 2.0.0
|
|
@@ -1194,11 +1258,13 @@ export const ap: {
|
|
|
1194
1258
|
* @param fields - the struct of `Either`s to be sequenced.
|
|
1195
1259
|
*
|
|
1196
1260
|
* @example
|
|
1261
|
+
* ```ts
|
|
1197
1262
|
* import { Either } from "effect"
|
|
1198
1263
|
*
|
|
1199
1264
|
* assert.deepStrictEqual(Either.all([Either.right(1), Either.right(2)]), Either.right([1, 2]))
|
|
1200
1265
|
* assert.deepStrictEqual(Either.all({ right: Either.right(1), b: Either.right("hello") }), Either.right({ right: 1, b: "hello" }))
|
|
1201
1266
|
* assert.deepStrictEqual(Either.all({ right: Either.right(1), b: Either.left("error") }), Either.left("error"))
|
|
1267
|
+
* ```
|
|
1202
1268
|
*
|
|
1203
1269
|
* @category combining
|
|
1204
1270
|
* @since 2.0.0
|
|
@@ -1309,6 +1375,7 @@ export const gen: Gen.Gen<EitherTypeLambda, Gen.Adapter<EitherTypeLambda>> = (..
|
|
|
1309
1375
|
* @see {@link let_ let}
|
|
1310
1376
|
*
|
|
1311
1377
|
* @example
|
|
1378
|
+
* ```ts
|
|
1312
1379
|
* import { Either, pipe } from "effect"
|
|
1313
1380
|
*
|
|
1314
1381
|
* const result = pipe(
|
|
@@ -1318,6 +1385,7 @@ export const gen: Gen.Gen<EitherTypeLambda, Gen.Adapter<EitherTypeLambda>> = (..
|
|
|
1318
1385
|
* Either.let("sum", ({ x, y }) => x + y)
|
|
1319
1386
|
* )
|
|
1320
1387
|
* assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
|
|
1388
|
+
* ```
|
|
1321
1389
|
*
|
|
1322
1390
|
* @category do notation
|
|
1323
1391
|
* @since 2.0.0
|
|
@@ -1339,6 +1407,7 @@ export const Do: Either<{}> = right({})
|
|
|
1339
1407
|
* @see {@link let_ let}
|
|
1340
1408
|
*
|
|
1341
1409
|
* @example
|
|
1410
|
+
* ```ts
|
|
1342
1411
|
* import { Either, pipe } from "effect"
|
|
1343
1412
|
*
|
|
1344
1413
|
* const result = pipe(
|
|
@@ -1348,6 +1417,7 @@ export const Do: Either<{}> = right({})
|
|
|
1348
1417
|
* Either.let("sum", ({ x, y }) => x + y)
|
|
1349
1418
|
* )
|
|
1350
1419
|
* assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
|
|
1420
|
+
* ```
|
|
1351
1421
|
*
|
|
1352
1422
|
* @category do notation
|
|
1353
1423
|
* @since 2.0.0
|
|
@@ -1368,6 +1438,7 @@ export const bind: {
|
|
|
1368
1438
|
* @see {@link let_ let}
|
|
1369
1439
|
*
|
|
1370
1440
|
* @example
|
|
1441
|
+
* ```ts
|
|
1371
1442
|
* import { Either, pipe } from "effect"
|
|
1372
1443
|
*
|
|
1373
1444
|
* const result = pipe(
|
|
@@ -1377,6 +1448,7 @@ export const bind: {
|
|
|
1377
1448
|
* Either.let("sum", ({ x, y }) => x + y)
|
|
1378
1449
|
* )
|
|
1379
1450
|
* assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
|
|
1451
|
+
* ```
|
|
1380
1452
|
*
|
|
1381
1453
|
* @category do notation
|
|
1382
1454
|
* @since 2.0.0
|
|
@@ -1400,6 +1472,7 @@ export const bind: {
|
|
|
1400
1472
|
* @see {@link let_ let}
|
|
1401
1473
|
*
|
|
1402
1474
|
* @example
|
|
1475
|
+
* ```ts
|
|
1403
1476
|
* import { Either, pipe } from "effect"
|
|
1404
1477
|
*
|
|
1405
1478
|
* const result = pipe(
|
|
@@ -1409,6 +1482,7 @@ export const bind: {
|
|
|
1409
1482
|
* Either.let("sum", ({ x, y }) => x + y)
|
|
1410
1483
|
* )
|
|
1411
1484
|
* assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
|
|
1485
|
+
* ```
|
|
1412
1486
|
*
|
|
1413
1487
|
* @category do notation
|
|
1414
1488
|
* @since 2.0.0
|
|
@@ -1435,6 +1509,7 @@ export const bind: {
|
|
|
1435
1509
|
* @see {@link let_ let}
|
|
1436
1510
|
*
|
|
1437
1511
|
* @example
|
|
1512
|
+
* ```ts
|
|
1438
1513
|
* import { Either, pipe } from "effect"
|
|
1439
1514
|
*
|
|
1440
1515
|
* const result = pipe(
|
|
@@ -1444,6 +1519,7 @@ export const bind: {
|
|
|
1444
1519
|
* Either.let("sum", ({ x, y }) => x + y)
|
|
1445
1520
|
* )
|
|
1446
1521
|
* assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
|
|
1522
|
+
* ```
|
|
1447
1523
|
*
|
|
1448
1524
|
* @category do notation
|
|
1449
1525
|
* @since 2.0.0
|
|
@@ -1464,6 +1540,7 @@ export const bindTo: {
|
|
|
1464
1540
|
* @see {@link let_ let}
|
|
1465
1541
|
*
|
|
1466
1542
|
* @example
|
|
1543
|
+
* ```ts
|
|
1467
1544
|
* import { Either, pipe } from "effect"
|
|
1468
1545
|
*
|
|
1469
1546
|
* const result = pipe(
|
|
@@ -1473,6 +1550,7 @@ export const bindTo: {
|
|
|
1473
1550
|
* Either.let("sum", ({ x, y }) => x + y)
|
|
1474
1551
|
* )
|
|
1475
1552
|
* assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
|
|
1553
|
+
* ```
|
|
1476
1554
|
*
|
|
1477
1555
|
* @category do notation
|
|
1478
1556
|
* @since 2.0.0
|
|
@@ -1493,6 +1571,7 @@ export const bindTo: {
|
|
|
1493
1571
|
* @see {@link let_ let}
|
|
1494
1572
|
*
|
|
1495
1573
|
* @example
|
|
1574
|
+
* ```ts
|
|
1496
1575
|
* import { Either, pipe } from "effect"
|
|
1497
1576
|
*
|
|
1498
1577
|
* const result = pipe(
|
|
@@ -1502,6 +1581,7 @@ export const bindTo: {
|
|
|
1502
1581
|
* Either.let("sum", ({ x, y }) => x + y)
|
|
1503
1582
|
* )
|
|
1504
1583
|
* assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
|
|
1584
|
+
* ```
|
|
1505
1585
|
*
|
|
1506
1586
|
* @category do notation
|
|
1507
1587
|
* @since 2.0.0
|
|
@@ -1537,6 +1617,7 @@ export {
|
|
|
1537
1617
|
* @see {@link bind}
|
|
1538
1618
|
*
|
|
1539
1619
|
* @example
|
|
1620
|
+
* ```ts
|
|
1540
1621
|
* import { Either, pipe } from "effect"
|
|
1541
1622
|
*
|
|
1542
1623
|
* const result = pipe(
|
|
@@ -1547,6 +1628,7 @@ export {
|
|
|
1547
1628
|
* )
|
|
1548
1629
|
* assert.deepStrictEqual(result, Either.right({ x: 2, y: 3, sum: 5 }))
|
|
1549
1630
|
*
|
|
1631
|
+
* ```
|
|
1550
1632
|
* @category do notation
|
|
1551
1633
|
* @since 2.0.0
|
|
1552
1634
|
*/
|
package/src/FiberHandle.ts
CHANGED
|
@@ -87,6 +87,7 @@ const unsafeMake = <A = unknown, E = unknown>(
|
|
|
87
87
|
* be automatically removed from the FiberHandle when it completes.
|
|
88
88
|
*
|
|
89
89
|
* @example
|
|
90
|
+
* ```ts
|
|
90
91
|
* import { Effect, FiberHandle } from "effect"
|
|
91
92
|
*
|
|
92
93
|
* Effect.gen(function*(_) {
|
|
@@ -101,6 +102,7 @@ const unsafeMake = <A = unknown, E = unknown>(
|
|
|
101
102
|
* }).pipe(
|
|
102
103
|
* Effect.scoped // The fiber will be interrupted when the scope is closed
|
|
103
104
|
* )
|
|
105
|
+
* ```
|
|
104
106
|
*
|
|
105
107
|
* @since 2.0.0
|
|
106
108
|
* @categories constructors
|
|
@@ -422,6 +424,7 @@ export const run: {
|
|
|
422
424
|
* Capture a Runtime and use it to fork Effect's, adding the forked fibers to the FiberHandle.
|
|
423
425
|
*
|
|
424
426
|
* @example
|
|
427
|
+
* ```ts
|
|
425
428
|
* import { Context, Effect, FiberHandle } from "effect"
|
|
426
429
|
*
|
|
427
430
|
* interface Users {
|
|
@@ -443,6 +446,7 @@ export const run: {
|
|
|
443
446
|
* }).pipe(
|
|
444
447
|
* Effect.scoped // The fiber will be interrupted when the scope is closed
|
|
445
448
|
* )
|
|
449
|
+
* ```
|
|
446
450
|
*
|
|
447
451
|
* @since 2.0.0
|
|
448
452
|
* @categories combinators
|
|
@@ -494,6 +498,7 @@ export const runtime: <A, E>(
|
|
|
494
498
|
* @since 2.0.0
|
|
495
499
|
* @categories combinators
|
|
496
500
|
* @example
|
|
501
|
+
* ```ts
|
|
497
502
|
* import { Effect, FiberHandle } from "effect";
|
|
498
503
|
*
|
|
499
504
|
* Effect.gen(function* (_) {
|
|
@@ -503,6 +508,7 @@ export const runtime: <A, E>(
|
|
|
503
508
|
* // parent fiber will fail with "error"
|
|
504
509
|
* yield* _(FiberHandle.join(handle));
|
|
505
510
|
* });
|
|
511
|
+
* ```
|
|
506
512
|
*/
|
|
507
513
|
export const join = <A, E>(self: FiberHandle<A, E>): Effect.Effect<void, E> =>
|
|
508
514
|
Deferred.await(self.deferred as Deferred.Deferred<void, E>)
|
package/src/FiberMap.ts
CHANGED
|
@@ -98,6 +98,7 @@ const unsafeMake = <K, A = unknown, E = unknown>(
|
|
|
98
98
|
* be automatically removed from the FiberMap when they complete.
|
|
99
99
|
*
|
|
100
100
|
* @example
|
|
101
|
+
* ```ts
|
|
101
102
|
* import { Effect, FiberMap } from "effect"
|
|
102
103
|
*
|
|
103
104
|
* Effect.gen(function*(_) {
|
|
@@ -111,6 +112,7 @@ const unsafeMake = <K, A = unknown, E = unknown>(
|
|
|
111
112
|
* }).pipe(
|
|
112
113
|
* Effect.scoped // The fibers will be interrupted when the scope is closed
|
|
113
114
|
* )
|
|
115
|
+
* ```
|
|
114
116
|
*
|
|
115
117
|
* @since 2.0.0
|
|
116
118
|
* @categories constructors
|
|
@@ -607,6 +609,7 @@ export const run: {
|
|
|
607
609
|
* Capture a Runtime and use it to fork Effect's, adding the forked fibers to the FiberMap.
|
|
608
610
|
*
|
|
609
611
|
* @example
|
|
612
|
+
* ```ts
|
|
610
613
|
* import { Context, Effect, FiberMap } from "effect"
|
|
611
614
|
*
|
|
612
615
|
* interface Users {
|
|
@@ -626,6 +629,7 @@ export const run: {
|
|
|
626
629
|
* }).pipe(
|
|
627
630
|
* Effect.scoped // The fibers will be interrupted when the scope is closed
|
|
628
631
|
* )
|
|
632
|
+
* ```
|
|
629
633
|
*
|
|
630
634
|
* @since 2.0.0
|
|
631
635
|
* @categories combinators
|
|
@@ -686,6 +690,7 @@ export const size = <K, A, E>(self: FiberMap<K, A, E>): Effect.Effect<number> =>
|
|
|
686
690
|
* @since 2.0.0
|
|
687
691
|
* @categories combinators
|
|
688
692
|
* @example
|
|
693
|
+
* ```ts
|
|
689
694
|
* import { Effect, FiberMap } from "effect";
|
|
690
695
|
*
|
|
691
696
|
* Effect.gen(function* (_) {
|
|
@@ -695,6 +700,7 @@ export const size = <K, A, E>(self: FiberMap<K, A, E>): Effect.Effect<number> =>
|
|
|
695
700
|
* // parent fiber will fail with "error"
|
|
696
701
|
* yield* _(FiberMap.join(map));
|
|
697
702
|
* });
|
|
703
|
+
* ```
|
|
698
704
|
*/
|
|
699
705
|
export const join = <K, A, E>(self: FiberMap<K, A, E>): Effect.Effect<void, E> =>
|
|
700
706
|
Deferred.await(self.deferred as Deferred.Deferred<void, E>)
|