effect 4.0.0-beta.101 → 4.0.0-beta.103
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/Array.d.ts +971 -1037
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +462 -412
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +433 -756
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +200 -325
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +207 -267
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +107 -135
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +146 -188
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +64 -84
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +405 -254
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +166 -101
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +167 -277
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +122 -176
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +729 -768
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +541 -449
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +834 -1173
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +326 -439
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +180 -49
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +96 -31
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +20 -33
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +18 -30
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +226 -174
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +339 -267
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +194 -68
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +122 -87
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +233 -33
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +232 -32
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +151 -274
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +171 -214
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +68 -77
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +57 -66
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +13 -15
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +9 -10
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +60 -80
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +18 -24
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +562 -660
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +307 -362
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +253 -256
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +104 -96
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +216 -308
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +132 -186
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2897 -3342
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1383 -1580
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +22 -40
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +22 -40
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +33 -37
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +29 -21
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +103 -105
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +77 -79
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +51 -27
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +50 -26
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +13 -55
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +7 -28
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +116 -192
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +82 -130
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +82 -146
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +48 -87
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +152 -105
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +109 -75
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +213 -168
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +114 -89
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +123 -81
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +85 -59
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +153 -264
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +42 -147
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +61 -33
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +26 -15
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +25 -33
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +48 -49
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +76 -145
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +40 -57
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +360 -714
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +168 -297
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +12 -6
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +47 -83
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +46 -68
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +319 -411
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +122 -166
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +1 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +177 -284
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +68 -109
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +12 -12
- package/dist/Inspectable.js +8 -8
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +620 -786
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +230 -307
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +11 -13
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +46 -103
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +8 -8
- package/dist/JsonPointer.js +8 -8
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +98 -44
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +300 -239
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +23 -35
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +16 -28
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +359 -260
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +195 -175
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +42 -29
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +31 -21
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +6 -2
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +6 -2
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +114 -214
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +41 -76
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +218 -467
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +207 -452
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +16 -5
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +10 -5
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +217 -252
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +150 -183
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +442 -993
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +202 -645
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +144 -173
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +68 -79
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +84 -89
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +44 -47
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +71 -370
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +59 -284
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +420 -243
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +209 -120
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +21 -14
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +15 -13
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +7 -137
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +5 -93
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +196 -233
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +90 -109
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +97 -189
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +190 -292
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +447 -812
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +213 -393
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +109 -109
- package/dist/Order.js +91 -91
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +20 -23
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +8 -9
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +1 -4
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +38 -41
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +3 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +6 -5
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +2 -2
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +4 -4
- package/dist/PlatformError.js +3 -3
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +4 -2
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +4 -2
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +200 -181
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +100 -108
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +7 -7
- package/dist/PrimaryKey.js +5 -5
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +425 -494
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +373 -362
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +24 -18
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +11 -9
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +200 -159
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +162 -132
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +49 -74
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +35 -54
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +121 -63
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +42 -21
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +24 -13
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +15 -9
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +361 -466
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +163 -216
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -2
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +7 -2
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +25 -25
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +19 -20
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +8 -15
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +6 -12
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +95 -165
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +75 -122
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +102 -213
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +102 -213
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +10 -14
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +10 -14
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +31 -21
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +25 -19
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +201 -90
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +87 -41
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +302 -470
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +135 -218
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +50 -75
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +39 -60
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +290 -1636
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +162 -803
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +5 -5
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +18 -6
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +1835 -1060
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2708 -1050
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +29 -52
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +537 -391
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaError.d.ts +7 -6
- package/dist/SchemaError.d.ts.map +1 -1
- package/dist/SchemaError.js +8 -7
- package/dist/SchemaError.js.map +1 -1
- package/dist/SchemaGetter.d.ts +230 -185
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +252 -209
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +62 -190
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +74 -266
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +2 -2
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +123 -86
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +398 -1513
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +290 -2854
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +116 -76
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +123 -88
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +123 -151
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +72 -92
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +3 -3
- package/dist/ScopedRef.js +2 -2
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +101 -13
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +78 -39
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +117 -107
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +107 -100
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +1 -1
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +2430 -2958
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1124 -1397
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +262 -308
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +184 -215
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +109 -114
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +46 -54
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +282 -250
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +104 -92
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +3 -3
- package/dist/Symbol.js +3 -3
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +2 -2
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +100 -54
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +41 -24
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +287 -679
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +109 -251
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +92 -127
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +42 -57
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +201 -121
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +85 -56
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +62 -46
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +30 -22
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +631 -779
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +268 -330
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +297 -236
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +130 -100
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +126 -95
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +74 -56
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +101 -88
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +87 -66
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +200 -180
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +160 -136
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +97 -66
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +67 -45
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +51 -32
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +23 -15
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +129 -95
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +85 -70
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +97 -70
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +44 -34
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +127 -70
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +45 -65
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +6 -9
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +23 -16
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +3 -7
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/internal/array.js.map +1 -1
- package/dist/internal/core.js +3 -2
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +4 -0
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/doNotation.js.map +1 -1
- package/dist/internal/effect.js +141 -61
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hashSet.js.map +1 -1
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/metric.js.map +1 -1
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/persistence.d.ts +2 -0
- package/dist/internal/persistence.d.ts.map +1 -0
- package/dist/internal/persistence.js +3 -0
- package/dist/internal/persistence.js.map +1 -0
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/record.d.ts +0 -3
- package/dist/internal/record.d.ts.map +1 -1
- package/dist/internal/record.js +10 -5
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/redacted.js.map +1 -1
- package/dist/internal/references.js +3 -4
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/result.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js +12 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/cause.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +745 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/fromRepresentation.d.ts +2 -0
- package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/fromRepresentation.js +245 -0
- package/dist/internal/schema/fromRepresentation.js.map +1 -0
- package/dist/internal/schema/parser.d.ts +14 -0
- package/dist/internal/schema/parser.d.ts.map +1 -0
- package/dist/internal/schema/parser.js +13 -0
- package/dist/internal/schema/parser.js.map +1 -0
- package/dist/internal/schema/schema.js +28 -40
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/{arbitrary.d.ts → toArbitrary.d.ts} +1 -1
- package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
- package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -9
- package/dist/internal/schema/toArbitrary.js.map +1 -0
- package/dist/internal/schema/toCodeDocument.d.ts +2 -0
- package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
- package/dist/internal/schema/toCodeDocument.js +438 -0
- package/dist/internal/schema/toCodeDocument.js.map +1 -0
- package/dist/internal/schema/toEquivalence.d.ts +2 -0
- package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
- package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
- package/dist/internal/schema/toEquivalence.js.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.js +508 -0
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/toRepresentation.d.ts +2 -0
- package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/toRepresentation.js +349 -0
- package/dist/internal/schema/toRepresentation.js.map +1 -0
- package/dist/internal/stackTraceLimit.js +3 -6
- package/dist/internal/stackTraceLimit.js.map +1 -1
- package/dist/internal/stream.js.map +1 -1
- package/dist/internal/tracer.js.map +1 -1
- package/dist/internal/trie.js +13 -9
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +8 -7
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +8 -7
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +57 -28
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +54 -19
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +32 -31
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +24 -22
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +29 -29
- package/dist/testing/TestSchema.js +25 -25
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +121 -144
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +99 -121
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +22 -7
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +87 -317
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +132 -97
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +55 -51
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +1 -1
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +32 -28
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +26 -21
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +111 -68
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +123 -81
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpProtocol.d.ts +30 -0
- package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/McpProtocol.js +20 -0
- package/dist/unstable/ai/McpProtocol.js.map +1 -0
- package/dist/unstable/ai/McpSchema.d.ts +316 -250
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +71 -63
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +71 -62
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +765 -245
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +8 -19
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +9 -20
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +33 -11
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +194 -378
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +112 -38
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +53 -17
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +47 -33
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +23 -18
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +46 -13
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +18 -7
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +14 -3
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +10 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +63 -44
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +59 -42
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +35 -9
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +32 -14
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +4 -0
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +4 -0
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js +15 -12
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
- package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
- package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
- package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
- package/dist/unstable/ai/internal/structured-output.js +315 -0
- package/dist/unstable/ai/internal/structured-output.js.map +1 -0
- package/dist/unstable/cli/Argument.d.ts +273 -69
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +111 -33
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliConfig.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +105 -74
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +98 -63
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +35 -54
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +26 -42
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +705 -107
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +252 -47
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +418 -138
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +197 -71
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +12 -4
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +292 -78
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +131 -49
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +370 -149
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +345 -137
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +23 -14
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +23 -14
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +3 -1
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +11 -4
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
- package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
- package/dist/unstable/cli/internal/config.d.ts +0 -48
- package/dist/unstable/cli/internal/config.d.ts.map +1 -1
- package/dist/unstable/cli/internal/config.js +8 -10
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/lexer.js +17 -7
- package/dist/unstable/cli/internal/lexer.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +2 -2
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
- package/dist/unstable/cluster/ClusterSchema.js +8 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +6 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -10
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +9 -9
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityId.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +4 -2
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/EntityType.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +5 -4
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +6 -4
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MachineId.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +9 -9
- package/dist/unstable/cluster/Message.js +6 -6
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
- package/dist/unstable/cluster/MessageStorage.js +5 -5
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +5 -5
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runner.js +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +1 -1
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +16 -16
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
- package/dist/unstable/cluster/RunnerStorage.js +1 -1
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +6 -6
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +19 -10
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js +1 -1
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +128 -26
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +13 -5
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +3 -3
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
- package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js +2 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/Singleton.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +1 -1
- package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +8 -8
- package/dist/unstable/cluster/Snowflake.js +8 -8
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +56 -25
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +127 -65
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +24 -12
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/hash.js.map +1 -1
- package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
- package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
- package/dist/unstable/cluster/internal/shardLock.js +4 -0
- package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +8 -5
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/devtools/index.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +6 -8
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +72 -8
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +58 -8
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +20 -20
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +16 -16
- package/dist/unstable/eventlog/EventJournal.js +14 -14
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +3 -3
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +18 -14
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogEncryption.js +2 -2
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +6 -6
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +9 -4
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
- package/dist/unstable/eventlog/EventLogRemote.js +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +45 -21
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +2 -2
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +2 -2
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +54 -40
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +1 -1
- package/dist/unstable/http/Etag.js +1 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +2 -2
- package/dist/unstable/http/Headers.js +10 -10
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +5 -3
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +11 -5
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +51 -44
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +46 -17
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +16 -0
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
- package/dist/unstable/http/HttpClientResponse.js +2 -2
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +6 -6
- package/dist/unstable/http/HttpEffect.js +3 -3
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +6 -9
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +6 -9
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +164 -39
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +76 -0
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +32 -0
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +88 -89
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +78 -79
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +13 -13
- package/dist/unstable/http/HttpServer.js +6 -6
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +2 -2
- package/dist/unstable/http/HttpServerError.js +2 -2
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +9 -8
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +10 -0
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +35 -7
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +6 -6
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +22 -20
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Template.js +1 -1
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +33 -63
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +14 -28
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +10 -18
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +26 -31
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/compression.d.ts +2 -0
- package/dist/unstable/http/internal/compression.d.ts.map +1 -0
- package/dist/unstable/http/internal/compression.js +155 -0
- package/dist/unstable/http/internal/compression.js.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +3 -3
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +16 -18
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
- package/dist/unstable/httpapi/HttpApiError.js +13 -13
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
- package/dist/unstable/httpapi/HttpApiGroup.js +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
- package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +50 -37
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/httpapi/index.js.map +1 -1
- package/dist/unstable/httpapi/internal/html.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +70 -1
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +84 -6
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +2 -2
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +11 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +5 -2
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +16 -7
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +21 -12
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +2 -2
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +10 -3
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
- package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +3 -0
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +22 -13
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +8 -8
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +2 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
- package/dist/unstable/persistence/PersistedQueue.js +6 -6
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +3 -3
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +91 -15
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +28 -17
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +26 -15
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +2 -2
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +3 -3
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/persistence/index.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +64 -21
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +14 -5
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +4 -2
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/process/index.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +14 -13
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +105 -19
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +44 -12
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +25 -4
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +4 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +1 -1
- package/dist/unstable/reactivity/Hydration.js +1 -1
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +35 -33
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +12 -12
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +14 -12
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
- package/dist/unstable/rpc/RpcGroup.js +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +6 -6
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
- package/dist/unstable/rpc/RpcMiddleware.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
- package/dist/unstable/rpc/RpcSchema.js +3 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +175 -96
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +13 -13
- package/dist/unstable/rpc/RpcServer.js +17 -13
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcTest.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +52 -50
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +35 -33
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +6 -7
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +15 -12
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +12 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +10 -5
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +2 -2
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlError.js +2 -2
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.js +2 -2
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +5 -5
- package/dist/unstable/sql/SqlResolver.js +2 -2
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +6 -6
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +22 -21
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +1 -1
- package/dist/unstable/workers/Transferable.js +1 -1
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +2 -2
- package/dist/unstable/workers/Worker.js +2 -2
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +7 -7
- package/dist/unstable/workers/WorkerError.js +6 -6
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
- package/dist/unstable/workers/WorkerRunner.js +1 -1
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workers/index.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +2 -2
- package/dist/unstable/workflow/Activity.js +2 -2
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +1 -1
- package/dist/unstable/workflow/DurableClock.js +1 -1
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
- package/dist/unstable/workflow/DurableDeferred.js +5 -5
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +22 -20
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +21 -21
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +13 -14
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +4 -2
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/dist/unstable/workflow/index.js.map +1 -1
- package/dist/unstable/workflow/internal/crypto.js.map +1 -1
- package/package.json +5 -6
- package/src/Array.ts +1068 -1070
- package/src/BigDecimal.ts +433 -756
- package/src/BigInt.ts +213 -269
- package/src/Boolean.ts +146 -188
- package/src/Cache.ts +409 -255
- package/src/Cause.ts +167 -277
- package/src/Channel.ts +923 -830
- package/src/ChannelSchema.ts +1 -1
- package/src/Chunk.ts +841 -1181
- package/src/Clock.ts +181 -49
- package/src/Combiner.ts +20 -33
- package/src/Config.ts +618 -334
- package/src/ConfigProvider.ts +221 -127
- package/src/Console.ts +289 -39
- package/src/Context.ts +319 -378
- package/src/Cron.ts +68 -77
- package/src/Crypto.ts +13 -15
- package/src/Data.ts +63 -82
- package/src/DateTime.ts +564 -660
- package/src/Deferred.ts +253 -256
- package/src/Duration.ts +216 -308
- package/src/Effect.ts +2958 -3390
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +49 -39
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +51 -27
- package/src/ExecutionPlan.ts +13 -55
- package/src/Exit.ts +116 -192
- package/src/Fiber.ts +81 -148
- package/src/FiberHandle.ts +155 -107
- package/src/FiberMap.ts +225 -174
- package/src/FiberSet.ts +124 -82
- package/src/FileSystem.ts +155 -263
- package/src/Filter.ts +61 -33
- package/src/Formatter.ts +54 -56
- package/src/Function.ts +76 -145
- package/src/Graph.ts +416 -770
- package/src/HKT.ts +12 -6
- package/src/Hash.ts +52 -83
- package/src/HashMap.ts +319 -411
- package/src/HashRing.ts +1 -0
- package/src/HashSet.ts +177 -284
- package/src/Inspectable.ts +12 -12
- package/src/Iterable.ts +622 -787
- package/src/JsonPatch.ts +60 -113
- package/src/JsonPointer.ts +8 -8
- package/src/JsonSchema.ts +405 -249
- package/src/Latch.ts +23 -35
- package/src/Layer.ts +359 -260
- package/src/LayerMap.ts +49 -29
- package/src/LayerRef.ts +6 -2
- package/src/LogLevel.ts +114 -214
- package/src/Logger.ts +347 -699
- package/src/ManagedRuntime.ts +20 -5
- package/src/Match.ts +217 -252
- package/src/Metric.ts +520 -1092
- package/src/MutableHashMap.ts +218 -255
- package/src/MutableHashSet.ts +84 -89
- package/src/MutableList.ts +73 -370
- package/src/MutableRef.ts +420 -243
- package/src/Newtype.ts +21 -14
- package/src/NonEmptyIterable.ts +7 -137
- package/src/Number.ts +196 -233
- package/src/Optic.ts +246 -385
- package/src/Option.ts +449 -813
- package/src/Order.ts +109 -109
- package/src/Ordering.ts +20 -23
- package/src/PartitionedSemaphore.ts +1 -4
- package/src/Path.ts +38 -41
- package/src/Pipeable.ts +6 -5
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +4 -2
- package/src/Predicate.ts +200 -181
- package/src/PrimaryKey.ts +7 -7
- package/src/PubSub.ts +526 -552
- package/src/Pull.ts +24 -18
- package/src/Queue.ts +200 -159
- package/src/Random.ts +49 -74
- package/src/RcMap.ts +121 -63
- package/src/RcRef.ts +24 -13
- package/src/Record.ts +387 -487
- package/src/Redactable.ts +10 -3
- package/src/Redacted.ts +25 -25
- package/src/Reducer.ts +8 -15
- package/src/Ref.ts +221 -361
- package/src/References.ts +102 -214
- package/src/RegExp.ts +10 -14
- package/src/Request.ts +36 -28
- package/src/RequestResolver.ts +202 -91
- package/src/Result.ts +314 -485
- package/src/Runtime.ts +50 -75
- package/src/Schedule.ts +308 -1734
- package/src/Scheduler.ts +20 -7
- package/src/Schema.ts +3156 -1634
- package/src/SchemaAST.ts +676 -489
- package/src/SchemaError.ts +8 -7
- package/src/SchemaGetter.ts +277 -218
- package/src/SchemaIssue.ts +90 -276
- package/src/SchemaParser.ts +179 -116
- package/src/SchemaRepresentation.ts +698 -3417
- package/src/SchemaTransformation.ts +132 -91
- package/src/Scope.ts +123 -151
- package/src/ScopedRef.ts +4 -4
- package/src/Semaphore.ts +157 -54
- package/src/Sink.ts +128 -113
- package/src/Stdio.ts +1 -1
- package/src/Stream.ts +2665 -3142
- package/src/String.ts +275 -312
- package/src/Struct.ts +114 -118
- package/src/SubscriptionRef.ts +284 -252
- package/src/Symbol.ts +3 -3
- package/src/Terminal.ts +2 -2
- package/src/Tracer.ts +102 -55
- package/src/Trie.ts +287 -679
- package/src/Tuple.ts +92 -127
- package/src/TxChunk.ts +201 -121
- package/src/TxDeferred.ts +62 -46
- package/src/TxHashMap.ts +645 -799
- package/src/TxHashSet.ts +443 -356
- package/src/TxPriorityQueue.ts +130 -98
- package/src/TxPubSub.ts +107 -80
- package/src/TxQueue.ts +214 -183
- package/src/TxReentrantLock.ts +97 -66
- package/src/TxRef.ts +51 -32
- package/src/TxSemaphore.ts +129 -95
- package/src/TxSubscriptionRef.ts +97 -70
- package/src/Types.ts +127 -70
- package/src/Unify.ts +45 -65
- package/src/Utils.ts +23 -16
- package/src/index.ts +0 -5
- package/src/internal/core.ts +5 -4
- package/src/internal/dateTime.ts +6 -0
- package/src/internal/effect.ts +160 -79
- package/src/internal/matcher.ts +1 -1
- package/src/internal/persistence.ts +2 -0
- package/src/internal/record.ts +11 -7
- package/src/internal/references.ts +3 -7
- package/src/internal/schema/annotations.ts +44 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +959 -0
- package/src/internal/schema/fromRepresentation.ts +339 -0
- package/src/internal/schema/parser.ts +22 -0
- package/src/internal/schema/schema.ts +45 -46
- package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +8 -10
- package/src/internal/schema/toCodeDocument.ts +572 -0
- package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
- package/src/internal/schema/toJsonSchemaDocument.ts +529 -0
- package/src/internal/schema/toRepresentation.ts +386 -0
- package/src/internal/stackTraceLimit.ts +3 -7
- package/src/internal/trie.ts +10 -11
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +73 -31
- package/src/testing/TestConsole.ts +32 -31
- package/src/testing/TestSchema.ts +29 -29
- package/src/unstable/ai/AiError.ts +100 -122
- package/src/unstable/ai/AnthropicStructuredOutput.ts +103 -334
- package/src/unstable/ai/Chat.ts +132 -97
- package/src/unstable/ai/EmbeddingModel.ts +1 -1
- package/src/unstable/ai/IdGenerator.ts +32 -28
- package/src/unstable/ai/LanguageModel.ts +137 -95
- package/src/unstable/ai/McpProtocol.ts +48 -0
- package/src/unstable/ai/McpSchema.ts +75 -65
- package/src/unstable/ai/McpServer.ts +1045 -303
- package/src/unstable/ai/Model.ts +9 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +231 -396
- package/src/unstable/ai/Prompt.ts +145 -43
- package/src/unstable/ai/Response.ts +52 -38
- package/src/unstable/ai/Telemetry.ts +46 -13
- package/src/unstable/ai/Tokenizer.ts +14 -3
- package/src/unstable/ai/Tool.ts +81 -48
- package/src/unstable/ai/Toolkit.ts +45 -15
- package/src/unstable/ai/index.ts +5 -0
- package/src/unstable/ai/internal/codec-transformer.ts +13 -7
- package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
- package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
- package/src/unstable/ai/internal/structured-output.ts +453 -0
- package/src/unstable/cli/Argument.ts +273 -69
- package/src/unstable/cli/CliError.ts +116 -77
- package/src/unstable/cli/CliOutput.ts +44 -58
- package/src/unstable/cli/Command.ts +709 -111
- package/src/unstable/cli/Flag.ts +418 -138
- package/src/unstable/cli/GlobalFlag.ts +1 -1
- package/src/unstable/cli/HelpDoc.ts +12 -4
- package/src/unstable/cli/Param.ts +295 -81
- package/src/unstable/cli/Primitive.ts +371 -150
- package/src/unstable/cli/Prompt.ts +28 -14
- package/src/unstable/cli/internal/command.ts +13 -5
- package/src/unstable/cli/internal/config.ts +8 -10
- package/src/unstable/cli/internal/lexer.ts +8 -2
- package/src/unstable/cli/internal/parser.ts +2 -2
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +8 -4
- package/src/unstable/cluster/Entity.ts +16 -17
- package/src/unstable/cluster/EntityProxy.ts +4 -2
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/Envelope.ts +5 -4
- package/src/unstable/cluster/HttpRunner.ts +6 -4
- package/src/unstable/cluster/Message.ts +9 -9
- package/src/unstable/cluster/MessageStorage.ts +15 -15
- package/src/unstable/cluster/Reply.ts +5 -7
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/RunnerHealth.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +41 -8
- package/src/unstable/cluster/RunnerStorage.ts +2 -2
- package/src/unstable/cluster/Runners.ts +23 -12
- package/src/unstable/cluster/ShardId.ts +1 -1
- package/src/unstable/cluster/Sharding.ts +168 -42
- package/src/unstable/cluster/ShardingConfig.ts +8 -4
- package/src/unstable/cluster/SingleRunner.ts +4 -2
- package/src/unstable/cluster/SingletonAddress.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +8 -8
- package/src/unstable/cluster/SqlMessageStorage.ts +84 -36
- package/src/unstable/cluster/SqlRunnerStorage.ts +205 -119
- package/src/unstable/cluster/internal/entityManager.ts +42 -25
- package/src/unstable/cluster/internal/shardLock.ts +9 -0
- package/src/unstable/devtools/DevToolsSchema.ts +10 -5
- package/src/unstable/encoding/Msgpack.ts +6 -8
- package/src/unstable/encoding/Sse.ts +98 -16
- package/src/unstable/eventlog/Event.ts +20 -20
- package/src/unstable/eventlog/EventGroup.ts +4 -4
- package/src/unstable/eventlog/EventJournal.ts +16 -16
- package/src/unstable/eventlog/EventLog.ts +24 -14
- package/src/unstable/eventlog/EventLogEncryption.ts +2 -2
- package/src/unstable/eventlog/EventLogMessage.ts +12 -5
- package/src/unstable/eventlog/EventLogRemote.ts +1 -1
- package/src/unstable/eventlog/EventLogServer.ts +41 -7
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/eventlog/SqlEventJournal.ts +2 -2
- package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
- package/src/unstable/http/Cookies.ts +64 -45
- package/src/unstable/http/Etag.ts +1 -1
- package/src/unstable/http/FetchHttpClient.ts +3 -1
- package/src/unstable/http/Headers.ts +10 -10
- package/src/unstable/http/HttpBody.ts +20 -5
- package/src/unstable/http/HttpClient.ts +83 -55
- package/src/unstable/http/HttpClientRequest.ts +59 -0
- package/src/unstable/http/HttpClientResponse.ts +4 -4
- package/src/unstable/http/HttpEffect.ts +8 -8
- package/src/unstable/http/HttpMethod.ts +6 -9
- package/src/unstable/http/HttpMiddleware.ts +202 -39
- package/src/unstable/http/HttpPlatform.ts +95 -0
- package/src/unstable/http/HttpRouter.ts +102 -98
- package/src/unstable/http/HttpServer.ts +13 -13
- package/src/unstable/http/HttpServerError.ts +2 -2
- package/src/unstable/http/HttpServerRequest.ts +9 -8
- package/src/unstable/http/HttpServerResponse.ts +30 -0
- package/src/unstable/http/HttpStaticServer.ts +35 -7
- package/src/unstable/http/Multipart.ts +22 -19
- package/src/unstable/http/Template.ts +1 -1
- package/src/unstable/http/Url.ts +33 -63
- package/src/unstable/http/UrlParams.ts +27 -32
- package/src/unstable/http/internal/compression.ts +196 -0
- package/src/unstable/httpapi/HttpApi.ts +3 -3
- package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
- package/src/unstable/httpapi/HttpApiClient.ts +19 -19
- package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
- package/src/unstable/httpapi/HttpApiError.ts +13 -13
- package/src/unstable/httpapi/HttpApiGroup.ts +16 -16
- package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
- package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
- package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
- package/src/unstable/httpapi/OpenApi.ts +65 -41
- package/src/unstable/observability/OtlpExporter.ts +126 -10
- package/src/unstable/observability/OtlpLogger.ts +5 -5
- package/src/unstable/observability/OtlpMetrics.ts +12 -5
- package/src/unstable/observability/OtlpResource.ts +26 -17
- package/src/unstable/observability/OtlpTracer.ts +8 -4
- package/src/unstable/observability/PrometheusMetrics.ts +13 -4
- package/src/unstable/observability/internal/otlpEnv.ts +1 -1
- package/src/unstable/observability/internal/protobuf.ts +3 -0
- package/src/unstable/persistence/KeyValueStore.ts +72 -49
- package/src/unstable/persistence/Persistable.ts +11 -10
- package/src/unstable/persistence/PersistedQueue.ts +6 -6
- package/src/unstable/persistence/Persistence.ts +126 -19
- package/src/unstable/persistence/RateLimiter.ts +28 -17
- package/src/unstable/persistence/Redis.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +64 -21
- package/src/unstable/process/ChildProcessSpawner.ts +22 -11
- package/src/unstable/reactivity/AsyncResult.ts +16 -16
- package/src/unstable/reactivity/Atom.ts +117 -22
- package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
- package/src/unstable/reactivity/AtomRegistry.ts +25 -4
- package/src/unstable/reactivity/AtomRpc.ts +5 -4
- package/src/unstable/reactivity/Hydration.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +35 -33
- package/src/unstable/rpc/RpcClient.ts +18 -16
- package/src/unstable/rpc/RpcGroup.ts +8 -8
- package/src/unstable/rpc/RpcMessage.ts +31 -30
- package/src/unstable/rpc/RpcMiddleware.ts +10 -10
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +167 -68
- package/src/unstable/rpc/RpcServer.ts +18 -15
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/schema/Model.ts +52 -50
- package/src/unstable/schema/VariantSchema.ts +19 -29
- package/src/unstable/socket/Socket.ts +18 -5
- package/src/unstable/sql/SqlClient.ts +5 -6
- package/src/unstable/sql/SqlError.ts +2 -2
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +5 -5
- package/src/unstable/sql/Statement.ts +31 -29
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +2 -2
- package/src/unstable/workers/WorkerError.ts +7 -7
- package/src/unstable/workers/WorkerRunner.ts +1 -1
- package/src/unstable/workflow/Activity.ts +2 -2
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +10 -10
- package/src/unstable/workflow/DurableQueue.ts +22 -20
- package/src/unstable/workflow/Workflow.ts +23 -23
- package/src/unstable/workflow/WorkflowEngine.ts +1 -1
- package/src/unstable/workflow/WorkflowProxy.ts +4 -2
- package/dist/SchemaUtils.d.ts +0 -28
- package/dist/SchemaUtils.d.ts.map +0 -1
- package/dist/SchemaUtils.js +0 -45
- package/dist/SchemaUtils.js.map +0 -1
- package/dist/internal/schema/arbitrary.d.ts.map +0 -1
- package/dist/internal/schema/arbitrary.js.map +0 -1
- package/dist/internal/schema/equivalence.d.ts +0 -2
- package/dist/internal/schema/equivalence.d.ts.map +0 -1
- package/dist/internal/schema/equivalence.js.map +0 -1
- package/dist/internal/schema/representation.d.ts +0 -2
- package/dist/internal/schema/representation.d.ts.map +0 -1
- package/dist/internal/schema/representation.js +0 -865
- package/dist/internal/schema/representation.js.map +0 -1
- package/dist/internal/version.d.ts +0 -3
- package/dist/internal/version.d.ts.map +0 -1
- package/dist/internal/version.js +0 -2
- package/dist/internal/version.js.map +0 -1
- package/src/SchemaUtils.ts +0 -51
- package/src/internal/schema/representation.ts +0 -795
- package/src/internal/version.ts +0 -2
package/src/Option.ts
CHANGED
|
@@ -20,6 +20,7 @@ import type { TypeLambda } from "./HKT.ts"
|
|
|
20
20
|
import type { Inspectable } from "./Inspectable.ts"
|
|
21
21
|
import * as doNotation from "./internal/doNotation.ts"
|
|
22
22
|
import * as option from "./internal/option.ts"
|
|
23
|
+
import * as InternalRecord from "./internal/record.ts"
|
|
23
24
|
import * as result from "./internal/result.ts"
|
|
24
25
|
import type { Order } from "./Order.ts"
|
|
25
26
|
import * as order from "./Order.ts"
|
|
@@ -177,17 +178,16 @@ export declare namespace Option {
|
|
|
177
178
|
*
|
|
178
179
|
* **Example** (Extracting the value type)
|
|
179
180
|
*
|
|
180
|
-
* ```ts
|
|
181
|
-
* import
|
|
182
|
-
*
|
|
183
|
-
* declare const myOption: Option.Option<string>
|
|
181
|
+
* ```ts import.meta.vitest
|
|
182
|
+
* import { Option } from "effect"
|
|
184
183
|
*
|
|
185
|
-
*
|
|
186
|
-
* // ▼
|
|
184
|
+
* const myOption: Option.Option<string> = Option.some("value")
|
|
187
185
|
* type MyType = Option.Option.Value<typeof myOption>
|
|
186
|
+
*
|
|
187
|
+
* const witness: MyType = "value"
|
|
188
188
|
* ```
|
|
189
189
|
*
|
|
190
|
-
* @category
|
|
190
|
+
* @category utility types
|
|
191
191
|
* @since 2.0.0
|
|
192
192
|
*/
|
|
193
193
|
export type Value<T extends Option<any>> = [T] extends [Option<infer _A>] ? _A : never
|
|
@@ -218,7 +218,7 @@ export interface OptionUnifyIgnore {}
|
|
|
218
218
|
* Use when defining higher-kinded abstractions that must accept optional-value
|
|
219
219
|
* types as one of their type-lambda inputs.
|
|
220
220
|
*
|
|
221
|
-
* @category
|
|
221
|
+
* @category utility types
|
|
222
222
|
* @since 2.0.0
|
|
223
223
|
*/
|
|
224
224
|
export interface OptionTypeLambda extends TypeLambda {
|
|
@@ -240,15 +240,12 @@ export interface OptionTypeLambda extends TypeLambda {
|
|
|
240
240
|
*
|
|
241
241
|
* **Example** (Creating an empty Option)
|
|
242
242
|
*
|
|
243
|
-
* ```ts
|
|
243
|
+
* ```ts import.meta.vitest
|
|
244
244
|
* import { Option } from "effect"
|
|
245
245
|
*
|
|
246
246
|
* // ┌─── Option<never>
|
|
247
247
|
* // ▼
|
|
248
|
-
* const noValue = Option.none()
|
|
249
|
-
*
|
|
250
|
-
* console.log(noValue)
|
|
251
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
248
|
+
* const noValue = Option.none() // => Option.none()
|
|
252
249
|
* ```
|
|
253
250
|
*
|
|
254
251
|
* @see {@link some} for the opposite operation.
|
|
@@ -273,15 +270,12 @@ export const none = <A = never>(): Option<A> => option.none
|
|
|
273
270
|
*
|
|
274
271
|
* **Example** (Wrapping a value)
|
|
275
272
|
*
|
|
276
|
-
* ```ts
|
|
273
|
+
* ```ts import.meta.vitest
|
|
277
274
|
* import { Option } from "effect"
|
|
278
275
|
*
|
|
279
276
|
* // ┌─── Option<number>
|
|
280
277
|
* // ▼
|
|
281
|
-
* const value = Option.some(1)
|
|
282
|
-
*
|
|
283
|
-
* console.log(value)
|
|
284
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 1 }
|
|
278
|
+
* const value = Option.some(1) // => Option.some(1)
|
|
285
279
|
* ```
|
|
286
280
|
*
|
|
287
281
|
* @see {@link none} for the opposite operation.
|
|
@@ -306,17 +300,12 @@ export const some: <A>(value: A) => Option<A> = option.some
|
|
|
306
300
|
*
|
|
307
301
|
* **Example** (Checking if a value is an Option)
|
|
308
302
|
*
|
|
309
|
-
* ```ts
|
|
303
|
+
* ```ts import.meta.vitest
|
|
310
304
|
* import { Option } from "effect"
|
|
311
305
|
*
|
|
312
|
-
*
|
|
313
|
-
* //
|
|
314
|
-
*
|
|
315
|
-
* console.log(Option.isOption(Option.none()))
|
|
316
|
-
* // Output: true
|
|
317
|
-
*
|
|
318
|
-
* console.log(Option.isOption({}))
|
|
319
|
-
* // Output: false
|
|
306
|
+
* Option.isOption(Option.some(1)) // => true
|
|
307
|
+
* Option.isOption(Option.none()) // => true
|
|
308
|
+
* Option.isOption({}) // => false
|
|
320
309
|
* ```
|
|
321
310
|
*
|
|
322
311
|
* @see {@link isNone} to check for `None` specifically
|
|
@@ -340,14 +329,11 @@ export const isOption: (input: unknown) => input is Option<unknown> = option.isO
|
|
|
340
329
|
*
|
|
341
330
|
* **Example** (Checking for None)
|
|
342
331
|
*
|
|
343
|
-
* ```ts
|
|
332
|
+
* ```ts import.meta.vitest
|
|
344
333
|
* import { Option } from "effect"
|
|
345
334
|
*
|
|
346
|
-
*
|
|
347
|
-
* //
|
|
348
|
-
*
|
|
349
|
-
* console.log(Option.isNone(Option.none()))
|
|
350
|
-
* // Output: true
|
|
335
|
+
* Option.isNone(Option.some(1)) // => false
|
|
336
|
+
* Option.isNone(Option.none()) // => true
|
|
351
337
|
* ```
|
|
352
338
|
*
|
|
353
339
|
* @see {@link isSome} for the opposite check.
|
|
@@ -370,14 +356,11 @@ export const isNone: <A>(self: Option<A>) => self is None<A> = option.isNone
|
|
|
370
356
|
*
|
|
371
357
|
* **Example** (Checking for Some)
|
|
372
358
|
*
|
|
373
|
-
* ```ts
|
|
359
|
+
* ```ts import.meta.vitest
|
|
374
360
|
* import { Option } from "effect"
|
|
375
361
|
*
|
|
376
|
-
*
|
|
377
|
-
* //
|
|
378
|
-
*
|
|
379
|
-
* console.log(Option.isSome(Option.none()))
|
|
380
|
-
* // Output: false
|
|
362
|
+
* Option.isSome(Option.some(1)) // => true
|
|
363
|
+
* Option.isSome(Option.none()) // => false
|
|
381
364
|
* ```
|
|
382
365
|
*
|
|
383
366
|
* @see {@link isNone} for the opposite check.
|
|
@@ -403,16 +386,13 @@ export const isSome: <A>(self: Option<A>) => self is Some<A> = option.isSome
|
|
|
403
386
|
*
|
|
404
387
|
* **Example** (Matching on an Option)
|
|
405
388
|
*
|
|
406
|
-
* ```ts
|
|
389
|
+
* ```ts import.meta.vitest
|
|
407
390
|
* import { Option } from "effect"
|
|
408
391
|
*
|
|
409
|
-
*
|
|
392
|
+
* Option.match(Option.some(1), {
|
|
410
393
|
* onNone: () => "Option is empty",
|
|
411
394
|
* onSome: (value) => `Option has a value: ${value}`
|
|
412
|
-
* })
|
|
413
|
-
*
|
|
414
|
-
* console.log(message)
|
|
415
|
-
* // Output: "Option has a value: 1"
|
|
395
|
+
* }) // => "Option has a value: 1"
|
|
416
396
|
* ```
|
|
417
397
|
*
|
|
418
398
|
* @see {@link getOrElse} for unwrapping with a default
|
|
@@ -437,16 +417,13 @@ export const match: {
|
|
|
437
417
|
*
|
|
438
418
|
* **Example** (Matching on an Option)
|
|
439
419
|
*
|
|
440
|
-
* ```ts
|
|
420
|
+
* ```ts import.meta.vitest
|
|
441
421
|
* import { Option } from "effect"
|
|
442
422
|
*
|
|
443
|
-
*
|
|
423
|
+
* Option.match(Option.some(1), {
|
|
444
424
|
* onNone: () => "Option is empty",
|
|
445
425
|
* onSome: (value) => `Option has a value: ${value}`
|
|
446
|
-
* })
|
|
447
|
-
*
|
|
448
|
-
* console.log(message)
|
|
449
|
-
* // Output: "Option has a value: 1"
|
|
426
|
+
* }) // => "Option has a value: 1"
|
|
450
427
|
* ```
|
|
451
428
|
*
|
|
452
429
|
* @see {@link getOrElse} for unwrapping with a default
|
|
@@ -476,16 +453,13 @@ export const match: {
|
|
|
476
453
|
*
|
|
477
454
|
* **Example** (Matching on an Option)
|
|
478
455
|
*
|
|
479
|
-
* ```ts
|
|
456
|
+
* ```ts import.meta.vitest
|
|
480
457
|
* import { Option } from "effect"
|
|
481
458
|
*
|
|
482
|
-
*
|
|
459
|
+
* Option.match(Option.some(1), {
|
|
483
460
|
* onNone: () => "Option is empty",
|
|
484
461
|
* onSome: (value) => `Option has a value: ${value}`
|
|
485
|
-
* })
|
|
486
|
-
*
|
|
487
|
-
* console.log(message)
|
|
488
|
-
* // Output: "Option has a value: 1"
|
|
462
|
+
* }) // => "Option has a value: 1"
|
|
489
463
|
* ```
|
|
490
464
|
*
|
|
491
465
|
* @see {@link getOrElse} for unwrapping with a default
|
|
@@ -524,7 +498,7 @@ export const match: {
|
|
|
524
498
|
*
|
|
525
499
|
* **Example** (Converting a parser to a type guard)
|
|
526
500
|
*
|
|
527
|
-
* ```ts
|
|
501
|
+
* ```ts import.meta.vitest
|
|
528
502
|
* import { Option } from "effect"
|
|
529
503
|
*
|
|
530
504
|
* type MyData = string | number
|
|
@@ -536,11 +510,8 @@ export const match: {
|
|
|
536
510
|
* // ▼
|
|
537
511
|
* const isString = Option.toRefinement(parseString)
|
|
538
512
|
*
|
|
539
|
-
*
|
|
540
|
-
* //
|
|
541
|
-
*
|
|
542
|
-
* console.log(isString(1))
|
|
543
|
-
* // Output: false
|
|
513
|
+
* isString("a") // => true
|
|
514
|
+
* isString(1) // => false
|
|
544
515
|
* ```
|
|
545
516
|
*
|
|
546
517
|
* @see {@link liftPredicate} for the reverse direction
|
|
@@ -566,14 +537,11 @@ export const toRefinement = <A, B extends A>(f: (a: A) => Option<B>): (a: A) =>
|
|
|
566
537
|
*
|
|
567
538
|
* **Example** (Getting the first element)
|
|
568
539
|
*
|
|
569
|
-
* ```ts
|
|
540
|
+
* ```ts import.meta.vitest
|
|
570
541
|
* import { Option } from "effect"
|
|
571
542
|
*
|
|
572
|
-
*
|
|
573
|
-
* //
|
|
574
|
-
*
|
|
575
|
-
* console.log(Option.fromIterable([]))
|
|
576
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
543
|
+
* Option.fromIterable([1, 2, 3]) // => Option.some(1)
|
|
544
|
+
* Option.fromIterable([]) // => Option.none()
|
|
577
545
|
* ```
|
|
578
546
|
*
|
|
579
547
|
* @see {@link toArray} for the inverse direction
|
|
@@ -603,14 +571,11 @@ export const fromIterable = <A>(collection: Iterable<A>): Option<A> => {
|
|
|
603
571
|
*
|
|
604
572
|
* **Example** (Extracting the success side)
|
|
605
573
|
*
|
|
606
|
-
* ```ts
|
|
574
|
+
* ```ts import.meta.vitest
|
|
607
575
|
* import { Option, Result } from "effect"
|
|
608
576
|
*
|
|
609
|
-
*
|
|
610
|
-
* //
|
|
611
|
-
*
|
|
612
|
-
* console.log(Option.getSuccess(Result.fail("err")))
|
|
613
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
577
|
+
* Option.getSuccess(Result.succeed("ok")) // => Option.some("ok")
|
|
578
|
+
* Option.getSuccess(Result.fail("err")) // => Option.none()
|
|
614
579
|
* ```
|
|
615
580
|
*
|
|
616
581
|
* @see {@link getFailure} for the opposite operation.
|
|
@@ -635,14 +600,11 @@ export const getSuccess: <A, E>(self: Result<A, E>) => Option<A> = result.getSuc
|
|
|
635
600
|
*
|
|
636
601
|
* **Example** (Extracting the failure side)
|
|
637
602
|
*
|
|
638
|
-
* ```ts
|
|
603
|
+
* ```ts import.meta.vitest
|
|
639
604
|
* import { Option, Result } from "effect"
|
|
640
605
|
*
|
|
641
|
-
*
|
|
642
|
-
* //
|
|
643
|
-
*
|
|
644
|
-
* console.log(Option.getFailure(Result.fail("err")))
|
|
645
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'err' }
|
|
606
|
+
* Option.getFailure(Result.succeed("ok")) // => Option.none()
|
|
607
|
+
* Option.getFailure(Result.fail("err")) // => Option.some("err")
|
|
646
608
|
* ```
|
|
647
609
|
*
|
|
648
610
|
* @see {@link getSuccess} for the opposite operation.
|
|
@@ -668,14 +630,11 @@ export const getFailure: <A, E>(self: Result<A, E>) => Option<E> = result.getFai
|
|
|
668
630
|
*
|
|
669
631
|
* **Example** (Unwrapping with a fallback)
|
|
670
632
|
*
|
|
671
|
-
* ```ts
|
|
633
|
+
* ```ts import.meta.vitest
|
|
672
634
|
* import { Option } from "effect"
|
|
673
635
|
*
|
|
674
|
-
*
|
|
675
|
-
* //
|
|
676
|
-
*
|
|
677
|
-
* console.log(Option.none().pipe(Option.getOrElse(() => 0)))
|
|
678
|
-
* // Output: 0
|
|
636
|
+
* Option.some(1).pipe(Option.getOrElse(() => 0)) // => 1
|
|
637
|
+
* Option.none().pipe(Option.getOrElse(() => 0)) // => 0
|
|
679
638
|
* ```
|
|
680
639
|
*
|
|
681
640
|
* @see {@link getOrNull} to fall back to `null`
|
|
@@ -702,14 +661,11 @@ export const getOrElse: {
|
|
|
702
661
|
*
|
|
703
662
|
* **Example** (Unwrapping with a fallback)
|
|
704
663
|
*
|
|
705
|
-
* ```ts
|
|
664
|
+
* ```ts import.meta.vitest
|
|
706
665
|
* import { Option } from "effect"
|
|
707
666
|
*
|
|
708
|
-
*
|
|
709
|
-
* //
|
|
710
|
-
*
|
|
711
|
-
* console.log(Option.none().pipe(Option.getOrElse(() => 0)))
|
|
712
|
-
* // Output: 0
|
|
667
|
+
* Option.some(1).pipe(Option.getOrElse(() => 0)) // => 1
|
|
668
|
+
* Option.none().pipe(Option.getOrElse(() => 0)) // => 0
|
|
713
669
|
* ```
|
|
714
670
|
*
|
|
715
671
|
* @see {@link getOrNull} to fall back to `null`
|
|
@@ -736,14 +692,11 @@ export const getOrElse: {
|
|
|
736
692
|
*
|
|
737
693
|
* **Example** (Unwrapping with a fallback)
|
|
738
694
|
*
|
|
739
|
-
* ```ts
|
|
695
|
+
* ```ts import.meta.vitest
|
|
740
696
|
* import { Option } from "effect"
|
|
741
697
|
*
|
|
742
|
-
*
|
|
743
|
-
* //
|
|
744
|
-
*
|
|
745
|
-
* console.log(Option.none().pipe(Option.getOrElse(() => 0)))
|
|
746
|
-
* // Output: 0
|
|
698
|
+
* Option.some(1).pipe(Option.getOrElse(() => 0)) // => 1
|
|
699
|
+
* Option.none().pipe(Option.getOrElse(() => 0)) // => 0
|
|
747
700
|
* ```
|
|
748
701
|
*
|
|
749
702
|
* @see {@link getOrNull} to fall back to `null`
|
|
@@ -775,14 +728,11 @@ export const getOrElse: {
|
|
|
775
728
|
*
|
|
776
729
|
* **Example** (Providing a fallback Option)
|
|
777
730
|
*
|
|
778
|
-
* ```ts
|
|
731
|
+
* ```ts import.meta.vitest
|
|
779
732
|
* import { Option } from "effect"
|
|
780
733
|
*
|
|
781
|
-
*
|
|
782
|
-
*
|
|
783
|
-
*
|
|
784
|
-
* console.log(Option.some("a").pipe(Option.orElse(() => Option.some("b"))))
|
|
785
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
|
|
734
|
+
* Option.none().pipe(Option.orElse(() => Option.some("b"))) // => Option.some("b")
|
|
735
|
+
* Option.some("a").pipe(Option.orElse(() => Option.some("b"))) // => Option.some("a")
|
|
786
736
|
* ```
|
|
787
737
|
*
|
|
788
738
|
* @see {@link orElseSome} to wrap the fallback value in `Some` automatically
|
|
@@ -808,14 +758,11 @@ export const orElse: {
|
|
|
808
758
|
*
|
|
809
759
|
* **Example** (Providing a fallback Option)
|
|
810
760
|
*
|
|
811
|
-
* ```ts
|
|
761
|
+
* ```ts import.meta.vitest
|
|
812
762
|
* import { Option } from "effect"
|
|
813
763
|
*
|
|
814
|
-
*
|
|
815
|
-
*
|
|
816
|
-
*
|
|
817
|
-
* console.log(Option.some("a").pipe(Option.orElse(() => Option.some("b"))))
|
|
818
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
|
|
764
|
+
* Option.none().pipe(Option.orElse(() => Option.some("b"))) // => Option.some("b")
|
|
765
|
+
* Option.some("a").pipe(Option.orElse(() => Option.some("b"))) // => Option.some("a")
|
|
819
766
|
* ```
|
|
820
767
|
*
|
|
821
768
|
* @see {@link orElseSome} to wrap the fallback value in `Some` automatically
|
|
@@ -841,14 +788,11 @@ export const orElse: {
|
|
|
841
788
|
*
|
|
842
789
|
* **Example** (Providing a fallback Option)
|
|
843
790
|
*
|
|
844
|
-
* ```ts
|
|
791
|
+
* ```ts import.meta.vitest
|
|
845
792
|
* import { Option } from "effect"
|
|
846
793
|
*
|
|
847
|
-
*
|
|
848
|
-
*
|
|
849
|
-
*
|
|
850
|
-
* console.log(Option.some("a").pipe(Option.orElse(() => Option.some("b"))))
|
|
851
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
|
|
794
|
+
* Option.none().pipe(Option.orElse(() => Option.some("b"))) // => Option.some("b")
|
|
795
|
+
* Option.some("a").pipe(Option.orElse(() => Option.some("b"))) // => Option.some("a")
|
|
852
796
|
* ```
|
|
853
797
|
*
|
|
854
798
|
* @see {@link orElseSome} to wrap the fallback value in `Some` automatically
|
|
@@ -878,14 +822,11 @@ export const orElse: {
|
|
|
878
822
|
*
|
|
879
823
|
* **Example** (Providing a fallback value)
|
|
880
824
|
*
|
|
881
|
-
* ```ts
|
|
825
|
+
* ```ts import.meta.vitest
|
|
882
826
|
* import { Option } from "effect"
|
|
883
827
|
*
|
|
884
|
-
*
|
|
885
|
-
*
|
|
886
|
-
*
|
|
887
|
-
* console.log(Option.some("a").pipe(Option.orElseSome(() => "b")))
|
|
888
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
|
|
828
|
+
* Option.none().pipe(Option.orElseSome(() => "b")) // => Option.some("b")
|
|
829
|
+
* Option.some("a").pipe(Option.orElseSome(() => "b")) // => Option.some("a")
|
|
889
830
|
* ```
|
|
890
831
|
*
|
|
891
832
|
* @see {@link orElse} when the fallback is itself an `Option`
|
|
@@ -909,14 +850,11 @@ export const orElseSome: {
|
|
|
909
850
|
*
|
|
910
851
|
* **Example** (Providing a fallback value)
|
|
911
852
|
*
|
|
912
|
-
* ```ts
|
|
853
|
+
* ```ts import.meta.vitest
|
|
913
854
|
* import { Option } from "effect"
|
|
914
855
|
*
|
|
915
|
-
*
|
|
916
|
-
*
|
|
917
|
-
*
|
|
918
|
-
* console.log(Option.some("a").pipe(Option.orElseSome(() => "b")))
|
|
919
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
|
|
856
|
+
* Option.none().pipe(Option.orElseSome(() => "b")) // => Option.some("b")
|
|
857
|
+
* Option.some("a").pipe(Option.orElseSome(() => "b")) // => Option.some("a")
|
|
920
858
|
* ```
|
|
921
859
|
*
|
|
922
860
|
* @see {@link orElse} when the fallback is itself an `Option`
|
|
@@ -940,14 +878,11 @@ export const orElseSome: {
|
|
|
940
878
|
*
|
|
941
879
|
* **Example** (Providing a fallback value)
|
|
942
880
|
*
|
|
943
|
-
* ```ts
|
|
881
|
+
* ```ts import.meta.vitest
|
|
944
882
|
* import { Option } from "effect"
|
|
945
883
|
*
|
|
946
|
-
*
|
|
947
|
-
*
|
|
948
|
-
*
|
|
949
|
-
* console.log(Option.some("a").pipe(Option.orElseSome(() => "b")))
|
|
950
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'a' }
|
|
884
|
+
* Option.none().pipe(Option.orElseSome(() => "b")) // => Option.some("b")
|
|
885
|
+
* Option.some("a").pipe(Option.orElseSome(() => "b")) // => Option.some("a")
|
|
951
886
|
* ```
|
|
952
887
|
*
|
|
953
888
|
* @see {@link orElse} when the fallback is itself an `Option`
|
|
@@ -977,14 +912,13 @@ export const orElseSome: {
|
|
|
977
912
|
*
|
|
978
913
|
* **Example** (Tracking value source)
|
|
979
914
|
*
|
|
980
|
-
* ```ts
|
|
981
|
-
* import { Option } from "effect"
|
|
915
|
+
* ```ts import.meta.vitest
|
|
916
|
+
* import { Option, Result } from "effect"
|
|
982
917
|
*
|
|
983
|
-
*
|
|
984
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: { _tag: 'Failure', value: 'primary' } }
|
|
918
|
+
* const fallback = () => Option.some("fallback")
|
|
985
919
|
*
|
|
986
|
-
*
|
|
987
|
-
*
|
|
920
|
+
* Option.orElseResult(Option.some("primary"), fallback) // => Option.some(Result.fail("primary"))
|
|
921
|
+
* Option.orElseResult(Option.none(), fallback) // => Option.some(Result.succeed("fallback"))
|
|
988
922
|
* ```
|
|
989
923
|
*
|
|
990
924
|
* @see {@link orElse} for the simpler variant without source tracking
|
|
@@ -1009,14 +943,13 @@ export const orElseResult: {
|
|
|
1009
943
|
*
|
|
1010
944
|
* **Example** (Tracking value source)
|
|
1011
945
|
*
|
|
1012
|
-
* ```ts
|
|
1013
|
-
* import { Option } from "effect"
|
|
946
|
+
* ```ts import.meta.vitest
|
|
947
|
+
* import { Option, Result } from "effect"
|
|
1014
948
|
*
|
|
1015
|
-
*
|
|
1016
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: { _tag: 'Failure', value: 'primary' } }
|
|
949
|
+
* const fallback = () => Option.some("fallback")
|
|
1017
950
|
*
|
|
1018
|
-
*
|
|
1019
|
-
*
|
|
951
|
+
* Option.orElseResult(Option.some("primary"), fallback) // => Option.some(Result.fail("primary"))
|
|
952
|
+
* Option.orElseResult(Option.none(), fallback) // => Option.some(Result.succeed("fallback"))
|
|
1020
953
|
* ```
|
|
1021
954
|
*
|
|
1022
955
|
* @see {@link orElse} for the simpler variant without source tracking
|
|
@@ -1041,14 +974,13 @@ export const orElseResult: {
|
|
|
1041
974
|
*
|
|
1042
975
|
* **Example** (Tracking value source)
|
|
1043
976
|
*
|
|
1044
|
-
* ```ts
|
|
1045
|
-
* import { Option } from "effect"
|
|
977
|
+
* ```ts import.meta.vitest
|
|
978
|
+
* import { Option, Result } from "effect"
|
|
1046
979
|
*
|
|
1047
|
-
*
|
|
1048
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: { _tag: 'Failure', value: 'primary' } }
|
|
980
|
+
* const fallback = () => Option.some("fallback")
|
|
1049
981
|
*
|
|
1050
|
-
*
|
|
1051
|
-
*
|
|
982
|
+
* Option.orElseResult(Option.some("primary"), fallback) // => Option.some(Result.fail("primary"))
|
|
983
|
+
* Option.orElseResult(Option.none(), fallback) // => Option.some(Result.succeed("fallback"))
|
|
1052
984
|
* ```
|
|
1053
985
|
*
|
|
1054
986
|
* @see {@link orElse} for the simpler variant without source tracking
|
|
@@ -1078,15 +1010,14 @@ export const orElseResult: {
|
|
|
1078
1010
|
*
|
|
1079
1011
|
* **Example** (Finding the first Some)
|
|
1080
1012
|
*
|
|
1081
|
-
* ```ts
|
|
1013
|
+
* ```ts import.meta.vitest
|
|
1082
1014
|
* import { Option } from "effect"
|
|
1083
1015
|
*
|
|
1084
|
-
*
|
|
1016
|
+
* Option.firstSomeOf([
|
|
1085
1017
|
* Option.none(),
|
|
1086
1018
|
* Option.some(1),
|
|
1087
1019
|
* Option.some(2)
|
|
1088
|
-
* ]))
|
|
1089
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 1 }
|
|
1020
|
+
* ]) // => Option.some(1)
|
|
1090
1021
|
* ```
|
|
1091
1022
|
*
|
|
1092
1023
|
* @see {@link orElse} for a two-option fallback
|
|
@@ -1121,17 +1052,12 @@ export const firstSomeOf = <T, C extends Iterable<Option<T>> = Iterable<Option<T
|
|
|
1121
1052
|
*
|
|
1122
1053
|
* **Example** (Converting nullable values to an Option)
|
|
1123
1054
|
*
|
|
1124
|
-
* ```ts
|
|
1055
|
+
* ```ts import.meta.vitest
|
|
1125
1056
|
* import { Option } from "effect"
|
|
1126
1057
|
*
|
|
1127
|
-
*
|
|
1128
|
-
* //
|
|
1129
|
-
*
|
|
1130
|
-
* console.log(Option.fromNullishOr(null))
|
|
1131
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1132
|
-
*
|
|
1133
|
-
* console.log(Option.fromNullishOr(1))
|
|
1134
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 1 }
|
|
1058
|
+
* Option.fromNullishOr(undefined) // => Option.none()
|
|
1059
|
+
* Option.fromNullishOr(null) // => Option.none()
|
|
1060
|
+
* Option.fromNullishOr(1) // => Option.some(1)
|
|
1135
1061
|
* ```
|
|
1136
1062
|
*
|
|
1137
1063
|
* @see {@link fromNullOr} to only treat `null` as absent
|
|
@@ -1161,17 +1087,12 @@ export const fromNullishOr = <A>(
|
|
|
1161
1087
|
*
|
|
1162
1088
|
* **Example** (Converting possibly undefined values to an Option)
|
|
1163
1089
|
*
|
|
1164
|
-
* ```ts
|
|
1090
|
+
* ```ts import.meta.vitest
|
|
1165
1091
|
* import { Option } from "effect"
|
|
1166
1092
|
*
|
|
1167
|
-
*
|
|
1168
|
-
* //
|
|
1169
|
-
*
|
|
1170
|
-
* console.log(Option.fromUndefinedOr(null))
|
|
1171
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: null }
|
|
1172
|
-
*
|
|
1173
|
-
* console.log(Option.fromUndefinedOr(42))
|
|
1174
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 42 }
|
|
1093
|
+
* Option.fromUndefinedOr(undefined) // => Option.none()
|
|
1094
|
+
* Option.fromUndefinedOr(null) // => Option.some(null)
|
|
1095
|
+
* Option.fromUndefinedOr(42) // => Option.some(42)
|
|
1175
1096
|
* ```
|
|
1176
1097
|
*
|
|
1177
1098
|
* @see {@link fromNullishOr} to treat both `null` and `undefined` as absent
|
|
@@ -1200,17 +1121,12 @@ export const fromUndefinedOr = <A>(
|
|
|
1200
1121
|
*
|
|
1201
1122
|
* **Example** (Converting possibly null values to an Option)
|
|
1202
1123
|
*
|
|
1203
|
-
* ```ts
|
|
1124
|
+
* ```ts import.meta.vitest
|
|
1204
1125
|
* import { Option } from "effect"
|
|
1205
1126
|
*
|
|
1206
|
-
*
|
|
1207
|
-
* //
|
|
1208
|
-
*
|
|
1209
|
-
* console.log(Option.fromNullOr(undefined))
|
|
1210
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: undefined }
|
|
1211
|
-
*
|
|
1212
|
-
* console.log(Option.fromNullOr(42))
|
|
1213
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 42 }
|
|
1127
|
+
* Option.fromNullOr(null) // => Option.none()
|
|
1128
|
+
* Option.fromNullOr(undefined) // => Option.some(undefined)
|
|
1129
|
+
* Option.fromNullOr(42) // => Option.some(42)
|
|
1214
1130
|
* ```
|
|
1215
1131
|
*
|
|
1216
1132
|
* @see {@link fromNullishOr} to treat both `null` and `undefined` as absent
|
|
@@ -1238,7 +1154,7 @@ export const fromNullOr = <A>(
|
|
|
1238
1154
|
*
|
|
1239
1155
|
* **Example** (Lifting a parser)
|
|
1240
1156
|
*
|
|
1241
|
-
* ```ts
|
|
1157
|
+
* ```ts import.meta.vitest
|
|
1242
1158
|
* import { Option } from "effect"
|
|
1243
1159
|
*
|
|
1244
1160
|
* const parse = (s: string): number | undefined => {
|
|
@@ -1248,11 +1164,8 @@ export const fromNullOr = <A>(
|
|
|
1248
1164
|
*
|
|
1249
1165
|
* const parseOption = Option.liftNullishOr(parse)
|
|
1250
1166
|
*
|
|
1251
|
-
*
|
|
1252
|
-
*
|
|
1253
|
-
*
|
|
1254
|
-
* console.log(parseOption("not a number"))
|
|
1255
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1167
|
+
* parseOption("1") // => Option.some(1)
|
|
1168
|
+
* parseOption("not a number") // => Option.none()
|
|
1256
1169
|
* ```
|
|
1257
1170
|
*
|
|
1258
1171
|
* @see {@link fromNullishOr} for converting a single value
|
|
@@ -1280,14 +1193,11 @@ export const liftNullishOr = <A extends ReadonlyArray<unknown>, B>(
|
|
|
1280
1193
|
*
|
|
1281
1194
|
* **Example** (Unwrapping to null)
|
|
1282
1195
|
*
|
|
1283
|
-
* ```ts
|
|
1196
|
+
* ```ts import.meta.vitest
|
|
1284
1197
|
* import { Option } from "effect"
|
|
1285
1198
|
*
|
|
1286
|
-
*
|
|
1287
|
-
* //
|
|
1288
|
-
*
|
|
1289
|
-
* console.log(Option.getOrNull(Option.none()))
|
|
1290
|
-
* // Output: null
|
|
1199
|
+
* Option.getOrNull(Option.some(1)) // => 1
|
|
1200
|
+
* Option.getOrNull(Option.none()) // => null
|
|
1291
1201
|
* ```
|
|
1292
1202
|
*
|
|
1293
1203
|
* @see {@link getOrUndefined} to return `undefined` instead
|
|
@@ -1313,14 +1223,11 @@ export const getOrNull: <A>(self: Option<A>) => A | null = getOrElse(constNull)
|
|
|
1313
1223
|
*
|
|
1314
1224
|
* **Example** (Unwrapping to undefined)
|
|
1315
1225
|
*
|
|
1316
|
-
* ```ts
|
|
1226
|
+
* ```ts import.meta.vitest
|
|
1317
1227
|
* import { Option } from "effect"
|
|
1318
1228
|
*
|
|
1319
|
-
*
|
|
1320
|
-
* //
|
|
1321
|
-
*
|
|
1322
|
-
* console.log(Option.getOrUndefined(Option.none()))
|
|
1323
|
-
* // Output: undefined
|
|
1229
|
+
* Option.getOrUndefined(Option.some(1)) // => 1
|
|
1230
|
+
* Option.getOrUndefined(Option.none()) // => undefined
|
|
1324
1231
|
* ```
|
|
1325
1232
|
*
|
|
1326
1233
|
* @see {@link getOrNull} to return `null` instead
|
|
@@ -1345,16 +1252,13 @@ export const getOrUndefined: <A>(self: Option<A>) => A | undefined = getOrElse(c
|
|
|
1345
1252
|
*
|
|
1346
1253
|
* **Example** (Lifting JSON.parse)
|
|
1347
1254
|
*
|
|
1348
|
-
* ```ts
|
|
1255
|
+
* ```ts import.meta.vitest
|
|
1349
1256
|
* import { Option } from "effect"
|
|
1350
1257
|
*
|
|
1351
1258
|
* const parse = Option.liftThrowable(JSON.parse)
|
|
1352
1259
|
*
|
|
1353
|
-
*
|
|
1354
|
-
* //
|
|
1355
|
-
*
|
|
1356
|
-
* console.log(parse(""))
|
|
1357
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1260
|
+
* parse("1") // => Option.some(1)
|
|
1261
|
+
* parse("") // => Option.none()
|
|
1358
1262
|
* ```
|
|
1359
1263
|
*
|
|
1360
1264
|
* @see {@link liftNullishOr} for nullable-returning functions
|
|
@@ -1388,14 +1292,16 @@ export const liftThrowable = <A extends ReadonlyArray<unknown>, B>(
|
|
|
1388
1292
|
*
|
|
1389
1293
|
* **Example** (Throwing a custom error)
|
|
1390
1294
|
*
|
|
1391
|
-
* ```ts
|
|
1392
|
-
* import { Option } from "effect"
|
|
1295
|
+
* ```ts import.meta.vitest
|
|
1296
|
+
* import { Option, Result } from "effect"
|
|
1393
1297
|
*
|
|
1394
|
-
*
|
|
1395
|
-
* // Output: 1
|
|
1298
|
+
* Option.getOrThrowWith(Option.some(1), () => new Error("missing")) // => 1
|
|
1396
1299
|
*
|
|
1397
|
-
*
|
|
1398
|
-
*
|
|
1300
|
+
* const failure = Result.try({
|
|
1301
|
+
* try: () => Option.getOrThrowWith(Option.none(), () => new Error("missing")),
|
|
1302
|
+
* catch: (error) => (error as Error).message
|
|
1303
|
+
* })
|
|
1304
|
+
* Result.getFailure(failure).pipe(Option.getOrElse(() => "no error")) // => "missing"
|
|
1399
1305
|
* ```
|
|
1400
1306
|
*
|
|
1401
1307
|
* @see {@link getOrThrow} for a version with a default error
|
|
@@ -1420,14 +1326,16 @@ export const getOrThrowWith: {
|
|
|
1420
1326
|
*
|
|
1421
1327
|
* **Example** (Throwing a custom error)
|
|
1422
1328
|
*
|
|
1423
|
-
* ```ts
|
|
1424
|
-
* import { Option } from "effect"
|
|
1329
|
+
* ```ts import.meta.vitest
|
|
1330
|
+
* import { Option, Result } from "effect"
|
|
1425
1331
|
*
|
|
1426
|
-
*
|
|
1427
|
-
* // Output: 1
|
|
1332
|
+
* Option.getOrThrowWith(Option.some(1), () => new Error("missing")) // => 1
|
|
1428
1333
|
*
|
|
1429
|
-
*
|
|
1430
|
-
*
|
|
1334
|
+
* const failure = Result.try({
|
|
1335
|
+
* try: () => Option.getOrThrowWith(Option.none(), () => new Error("missing")),
|
|
1336
|
+
* catch: (error) => (error as Error).message
|
|
1337
|
+
* })
|
|
1338
|
+
* Result.getFailure(failure).pipe(Option.getOrElse(() => "no error")) // => "missing"
|
|
1431
1339
|
* ```
|
|
1432
1340
|
*
|
|
1433
1341
|
* @see {@link getOrThrow} for a version with a default error
|
|
@@ -1452,14 +1360,16 @@ export const getOrThrowWith: {
|
|
|
1452
1360
|
*
|
|
1453
1361
|
* **Example** (Throwing a custom error)
|
|
1454
1362
|
*
|
|
1455
|
-
* ```ts
|
|
1456
|
-
* import { Option } from "effect"
|
|
1363
|
+
* ```ts import.meta.vitest
|
|
1364
|
+
* import { Option, Result } from "effect"
|
|
1457
1365
|
*
|
|
1458
|
-
*
|
|
1459
|
-
* // Output: 1
|
|
1366
|
+
* Option.getOrThrowWith(Option.some(1), () => new Error("missing")) // => 1
|
|
1460
1367
|
*
|
|
1461
|
-
*
|
|
1462
|
-
*
|
|
1368
|
+
* const failure = Result.try({
|
|
1369
|
+
* try: () => Option.getOrThrowWith(Option.none(), () => new Error("missing")),
|
|
1370
|
+
* catch: (error) => (error as Error).message
|
|
1371
|
+
* })
|
|
1372
|
+
* Result.getFailure(failure).pipe(Option.getOrElse(() => "no error")) // => "missing"
|
|
1463
1373
|
* ```
|
|
1464
1374
|
*
|
|
1465
1375
|
* @see {@link getOrThrow} for a version with a default error
|
|
@@ -1491,14 +1401,16 @@ export const getOrThrowWith: {
|
|
|
1491
1401
|
*
|
|
1492
1402
|
* **Example** (Throwing a default error)
|
|
1493
1403
|
*
|
|
1494
|
-
* ```ts
|
|
1495
|
-
* import { Option } from "effect"
|
|
1404
|
+
* ```ts import.meta.vitest
|
|
1405
|
+
* import { Option, Result } from "effect"
|
|
1496
1406
|
*
|
|
1497
|
-
*
|
|
1498
|
-
* // Output: 1
|
|
1407
|
+
* Option.getOrThrow(Option.some(1)) // => 1
|
|
1499
1408
|
*
|
|
1500
|
-
*
|
|
1501
|
-
*
|
|
1409
|
+
* const failure = Result.try({
|
|
1410
|
+
* try: () => Option.getOrThrow(Option.none()),
|
|
1411
|
+
* catch: (error) => (error as Error).message
|
|
1412
|
+
* })
|
|
1413
|
+
* Result.getFailure(failure).pipe(Option.getOrElse(() => "no error")) // => "getOrThrow called on a None"
|
|
1502
1414
|
* ```
|
|
1503
1415
|
*
|
|
1504
1416
|
* @see {@link getOrThrowWith} for a custom error
|
|
@@ -1525,14 +1437,11 @@ export const getOrThrow: <A>(self: Option<A>) => A = getOrThrowWith(() => new Er
|
|
|
1525
1437
|
*
|
|
1526
1438
|
* **Example** (Mapping over an Option)
|
|
1527
1439
|
*
|
|
1528
|
-
* ```ts
|
|
1440
|
+
* ```ts import.meta.vitest
|
|
1529
1441
|
* import { Option } from "effect"
|
|
1530
1442
|
*
|
|
1531
|
-
*
|
|
1532
|
-
*
|
|
1533
|
-
*
|
|
1534
|
-
* console.log(Option.map(Option.none(), (n: number) => n * 2))
|
|
1535
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1443
|
+
* Option.map(Option.some(2), (n) => n * 2) // => Option.some(4)
|
|
1444
|
+
* Option.map(Option.none(), (n: number) => n * 2) // => Option.none()
|
|
1536
1445
|
* ```
|
|
1537
1446
|
*
|
|
1538
1447
|
* @see {@link flatMap} when `f` returns an `Option`
|
|
@@ -1558,14 +1467,11 @@ export const map: {
|
|
|
1558
1467
|
*
|
|
1559
1468
|
* **Example** (Mapping over an Option)
|
|
1560
1469
|
*
|
|
1561
|
-
* ```ts
|
|
1470
|
+
* ```ts import.meta.vitest
|
|
1562
1471
|
* import { Option } from "effect"
|
|
1563
1472
|
*
|
|
1564
|
-
*
|
|
1565
|
-
*
|
|
1566
|
-
*
|
|
1567
|
-
* console.log(Option.map(Option.none(), (n: number) => n * 2))
|
|
1568
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1473
|
+
* Option.map(Option.some(2), (n) => n * 2) // => Option.some(4)
|
|
1474
|
+
* Option.map(Option.none(), (n: number) => n * 2) // => Option.none()
|
|
1569
1475
|
* ```
|
|
1570
1476
|
*
|
|
1571
1477
|
* @see {@link flatMap} when `f` returns an `Option`
|
|
@@ -1591,14 +1497,11 @@ export const map: {
|
|
|
1591
1497
|
*
|
|
1592
1498
|
* **Example** (Mapping over an Option)
|
|
1593
1499
|
*
|
|
1594
|
-
* ```ts
|
|
1500
|
+
* ```ts import.meta.vitest
|
|
1595
1501
|
* import { Option } from "effect"
|
|
1596
1502
|
*
|
|
1597
|
-
*
|
|
1598
|
-
*
|
|
1599
|
-
*
|
|
1600
|
-
* console.log(Option.map(Option.none(), (n: number) => n * 2))
|
|
1601
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1503
|
+
* Option.map(Option.some(2), (n) => n * 2) // => Option.some(4)
|
|
1504
|
+
* Option.map(Option.none(), (n: number) => n * 2) // => Option.none()
|
|
1602
1505
|
* ```
|
|
1603
1506
|
*
|
|
1604
1507
|
* @see {@link flatMap} when `f` returns an `Option`
|
|
@@ -1623,14 +1526,11 @@ export const map: {
|
|
|
1623
1526
|
*
|
|
1624
1527
|
* **Example** (Replacing a value)
|
|
1625
1528
|
*
|
|
1626
|
-
* ```ts
|
|
1529
|
+
* ```ts import.meta.vitest
|
|
1627
1530
|
* import { Option } from "effect"
|
|
1628
1531
|
*
|
|
1629
|
-
*
|
|
1630
|
-
*
|
|
1631
|
-
*
|
|
1632
|
-
* console.log(Option.as(Option.none(), "new value"))
|
|
1633
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1532
|
+
* Option.as(Option.some(42), "new value") // => Option.some("new value")
|
|
1533
|
+
* Option.as(Option.none(), "new value") // => Option.none()
|
|
1634
1534
|
* ```
|
|
1635
1535
|
*
|
|
1636
1536
|
* @see {@link asVoid} to replace with `undefined`
|
|
@@ -1650,14 +1550,11 @@ export const as: {
|
|
|
1650
1550
|
*
|
|
1651
1551
|
* **Example** (Replacing a value)
|
|
1652
1552
|
*
|
|
1653
|
-
* ```ts
|
|
1553
|
+
* ```ts import.meta.vitest
|
|
1654
1554
|
* import { Option } from "effect"
|
|
1655
1555
|
*
|
|
1656
|
-
*
|
|
1657
|
-
*
|
|
1658
|
-
*
|
|
1659
|
-
* console.log(Option.as(Option.none(), "new value"))
|
|
1660
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1556
|
+
* Option.as(Option.some(42), "new value") // => Option.some("new value")
|
|
1557
|
+
* Option.as(Option.none(), "new value") // => Option.none()
|
|
1661
1558
|
* ```
|
|
1662
1559
|
*
|
|
1663
1560
|
* @see {@link asVoid} to replace with `undefined`
|
|
@@ -1677,14 +1574,11 @@ export const as: {
|
|
|
1677
1574
|
*
|
|
1678
1575
|
* **Example** (Replacing a value)
|
|
1679
1576
|
*
|
|
1680
|
-
* ```ts
|
|
1577
|
+
* ```ts import.meta.vitest
|
|
1681
1578
|
* import { Option } from "effect"
|
|
1682
1579
|
*
|
|
1683
|
-
*
|
|
1684
|
-
*
|
|
1685
|
-
*
|
|
1686
|
-
* console.log(Option.as(Option.none(), "new value"))
|
|
1687
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1580
|
+
* Option.as(Option.some(42), "new value") // => Option.some("new value")
|
|
1581
|
+
* Option.as(Option.none(), "new value") // => Option.none()
|
|
1688
1582
|
* ```
|
|
1689
1583
|
*
|
|
1690
1584
|
* @see {@link asVoid} to replace with `undefined`
|
|
@@ -1707,14 +1601,11 @@ export const as: {
|
|
|
1707
1601
|
*
|
|
1708
1602
|
* **Example** (Voiding the value)
|
|
1709
1603
|
*
|
|
1710
|
-
* ```ts
|
|
1604
|
+
* ```ts import.meta.vitest
|
|
1711
1605
|
* import { Option } from "effect"
|
|
1712
1606
|
*
|
|
1713
|
-
*
|
|
1714
|
-
* //
|
|
1715
|
-
*
|
|
1716
|
-
* console.log(Option.asVoid(Option.none()))
|
|
1717
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1607
|
+
* Option.asVoid(Option.some(42)) // => Option.some(undefined)
|
|
1608
|
+
* Option.asVoid(Option.none()) // => Option.none()
|
|
1718
1609
|
* ```
|
|
1719
1610
|
*
|
|
1720
1611
|
* @see {@link as} to replace with a specific constant
|
|
@@ -1735,11 +1626,10 @@ export {
|
|
|
1735
1626
|
*
|
|
1736
1627
|
* **Example** (Referencing Option.void)
|
|
1737
1628
|
*
|
|
1738
|
-
* ```ts
|
|
1629
|
+
* ```ts import.meta.vitest
|
|
1739
1630
|
* import { Option } from "effect"
|
|
1740
1631
|
*
|
|
1741
|
-
*
|
|
1742
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: undefined }
|
|
1632
|
+
* Option.void // => Option.some(undefined)
|
|
1743
1633
|
* ```
|
|
1744
1634
|
*
|
|
1745
1635
|
* @see {@link asVoid} to convert an existing `Option` to `Option<void>`
|
|
@@ -1767,7 +1657,7 @@ export {
|
|
|
1767
1657
|
*
|
|
1768
1658
|
* **Example** (Chaining optional lookups)
|
|
1769
1659
|
*
|
|
1770
|
-
* ```ts
|
|
1660
|
+
* ```ts import.meta.vitest
|
|
1771
1661
|
* import { Option } from "effect"
|
|
1772
1662
|
*
|
|
1773
1663
|
* interface User {
|
|
@@ -1780,12 +1670,9 @@ export {
|
|
|
1780
1670
|
* address: Option.some({ street: Option.some("123 Main St") })
|
|
1781
1671
|
* }
|
|
1782
1672
|
*
|
|
1783
|
-
*
|
|
1673
|
+
* user.address.pipe(
|
|
1784
1674
|
* Option.flatMap((addr) => addr.street)
|
|
1785
|
-
* )
|
|
1786
|
-
*
|
|
1787
|
-
* console.log(street)
|
|
1788
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: '123 Main St' }
|
|
1675
|
+
* ) // => Option.some("123 Main St")
|
|
1789
1676
|
* ```
|
|
1790
1677
|
*
|
|
1791
1678
|
* @see {@link map} when `f` returns a plain value
|
|
@@ -1813,7 +1700,7 @@ export const flatMap: {
|
|
|
1813
1700
|
*
|
|
1814
1701
|
* **Example** (Chaining optional lookups)
|
|
1815
1702
|
*
|
|
1816
|
-
* ```ts
|
|
1703
|
+
* ```ts import.meta.vitest
|
|
1817
1704
|
* import { Option } from "effect"
|
|
1818
1705
|
*
|
|
1819
1706
|
* interface User {
|
|
@@ -1826,12 +1713,9 @@ export const flatMap: {
|
|
|
1826
1713
|
* address: Option.some({ street: Option.some("123 Main St") })
|
|
1827
1714
|
* }
|
|
1828
1715
|
*
|
|
1829
|
-
*
|
|
1716
|
+
* user.address.pipe(
|
|
1830
1717
|
* Option.flatMap((addr) => addr.street)
|
|
1831
|
-
* )
|
|
1832
|
-
*
|
|
1833
|
-
* console.log(street)
|
|
1834
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: '123 Main St' }
|
|
1718
|
+
* ) // => Option.some("123 Main St")
|
|
1835
1719
|
* ```
|
|
1836
1720
|
*
|
|
1837
1721
|
* @see {@link map} when `f` returns a plain value
|
|
@@ -1859,7 +1743,7 @@ export const flatMap: {
|
|
|
1859
1743
|
*
|
|
1860
1744
|
* **Example** (Chaining optional lookups)
|
|
1861
1745
|
*
|
|
1862
|
-
* ```ts
|
|
1746
|
+
* ```ts import.meta.vitest
|
|
1863
1747
|
* import { Option } from "effect"
|
|
1864
1748
|
*
|
|
1865
1749
|
* interface User {
|
|
@@ -1872,12 +1756,9 @@ export const flatMap: {
|
|
|
1872
1756
|
* address: Option.some({ street: Option.some("123 Main St") })
|
|
1873
1757
|
* }
|
|
1874
1758
|
*
|
|
1875
|
-
*
|
|
1759
|
+
* user.address.pipe(
|
|
1876
1760
|
* Option.flatMap((addr) => addr.street)
|
|
1877
|
-
* )
|
|
1878
|
-
*
|
|
1879
|
-
* console.log(street)
|
|
1880
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: '123 Main St' }
|
|
1761
|
+
* ) // => Option.some("123 Main St")
|
|
1881
1762
|
* ```
|
|
1882
1763
|
*
|
|
1883
1764
|
* @see {@link map} when `f` returns a plain value
|
|
@@ -1911,20 +1792,17 @@ export const flatMap: {
|
|
|
1911
1792
|
*
|
|
1912
1793
|
* **Example** (Chaining with andThen)
|
|
1913
1794
|
*
|
|
1914
|
-
* ```ts
|
|
1795
|
+
* ```ts import.meta.vitest
|
|
1915
1796
|
* import { Option } from "effect"
|
|
1916
1797
|
*
|
|
1917
1798
|
* // Chain with a function returning Option
|
|
1918
|
-
*
|
|
1919
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 10 }
|
|
1799
|
+
* Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
|
|
1920
1800
|
*
|
|
1921
1801
|
* // Chain with a static value
|
|
1922
|
-
*
|
|
1923
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
|
|
1802
|
+
* Option.andThen(Option.some(5), "hello") // => Option.some("hello")
|
|
1924
1803
|
*
|
|
1925
1804
|
* // Chain with None - skips
|
|
1926
|
-
*
|
|
1927
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1805
|
+
* Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
|
|
1928
1806
|
* ```
|
|
1929
1807
|
*
|
|
1930
1808
|
* @see {@link flatMap} for the standard monadic bind
|
|
@@ -1952,20 +1830,17 @@ export const andThen: {
|
|
|
1952
1830
|
*
|
|
1953
1831
|
* **Example** (Chaining with andThen)
|
|
1954
1832
|
*
|
|
1955
|
-
* ```ts
|
|
1833
|
+
* ```ts import.meta.vitest
|
|
1956
1834
|
* import { Option } from "effect"
|
|
1957
1835
|
*
|
|
1958
1836
|
* // Chain with a function returning Option
|
|
1959
|
-
*
|
|
1960
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 10 }
|
|
1837
|
+
* Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
|
|
1961
1838
|
*
|
|
1962
1839
|
* // Chain with a static value
|
|
1963
|
-
*
|
|
1964
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
|
|
1840
|
+
* Option.andThen(Option.some(5), "hello") // => Option.some("hello")
|
|
1965
1841
|
*
|
|
1966
1842
|
* // Chain with None - skips
|
|
1967
|
-
*
|
|
1968
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1843
|
+
* Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
|
|
1969
1844
|
* ```
|
|
1970
1845
|
*
|
|
1971
1846
|
* @see {@link flatMap} for the standard monadic bind
|
|
@@ -1993,20 +1868,17 @@ export const andThen: {
|
|
|
1993
1868
|
*
|
|
1994
1869
|
* **Example** (Chaining with andThen)
|
|
1995
1870
|
*
|
|
1996
|
-
* ```ts
|
|
1871
|
+
* ```ts import.meta.vitest
|
|
1997
1872
|
* import { Option } from "effect"
|
|
1998
1873
|
*
|
|
1999
1874
|
* // Chain with a function returning Option
|
|
2000
|
-
*
|
|
2001
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 10 }
|
|
1875
|
+
* Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
|
|
2002
1876
|
*
|
|
2003
1877
|
* // Chain with a static value
|
|
2004
|
-
*
|
|
2005
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
|
|
1878
|
+
* Option.andThen(Option.some(5), "hello") // => Option.some("hello")
|
|
2006
1879
|
*
|
|
2007
1880
|
* // Chain with None - skips
|
|
2008
|
-
*
|
|
2009
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1881
|
+
* Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
|
|
2010
1882
|
* ```
|
|
2011
1883
|
*
|
|
2012
1884
|
* @see {@link flatMap} for the standard monadic bind
|
|
@@ -2034,20 +1906,17 @@ export const andThen: {
|
|
|
2034
1906
|
*
|
|
2035
1907
|
* **Example** (Chaining with andThen)
|
|
2036
1908
|
*
|
|
2037
|
-
* ```ts
|
|
1909
|
+
* ```ts import.meta.vitest
|
|
2038
1910
|
* import { Option } from "effect"
|
|
2039
1911
|
*
|
|
2040
1912
|
* // Chain with a function returning Option
|
|
2041
|
-
*
|
|
2042
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 10 }
|
|
1913
|
+
* Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
|
|
2043
1914
|
*
|
|
2044
1915
|
* // Chain with a static value
|
|
2045
|
-
*
|
|
2046
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
|
|
1916
|
+
* Option.andThen(Option.some(5), "hello") // => Option.some("hello")
|
|
2047
1917
|
*
|
|
2048
1918
|
* // Chain with None - skips
|
|
2049
|
-
*
|
|
2050
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1919
|
+
* Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
|
|
2051
1920
|
* ```
|
|
2052
1921
|
*
|
|
2053
1922
|
* @see {@link flatMap} for the standard monadic bind
|
|
@@ -2075,20 +1944,17 @@ export const andThen: {
|
|
|
2075
1944
|
*
|
|
2076
1945
|
* **Example** (Chaining with andThen)
|
|
2077
1946
|
*
|
|
2078
|
-
* ```ts
|
|
1947
|
+
* ```ts import.meta.vitest
|
|
2079
1948
|
* import { Option } from "effect"
|
|
2080
1949
|
*
|
|
2081
1950
|
* // Chain with a function returning Option
|
|
2082
|
-
*
|
|
2083
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 10 }
|
|
1951
|
+
* Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
|
|
2084
1952
|
*
|
|
2085
1953
|
* // Chain with a static value
|
|
2086
|
-
*
|
|
2087
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
|
|
1954
|
+
* Option.andThen(Option.some(5), "hello") // => Option.some("hello")
|
|
2088
1955
|
*
|
|
2089
1956
|
* // Chain with None - skips
|
|
2090
|
-
*
|
|
2091
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1957
|
+
* Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
|
|
2092
1958
|
* ```
|
|
2093
1959
|
*
|
|
2094
1960
|
* @see {@link flatMap} for the standard monadic bind
|
|
@@ -2116,20 +1982,17 @@ export const andThen: {
|
|
|
2116
1982
|
*
|
|
2117
1983
|
* **Example** (Chaining with andThen)
|
|
2118
1984
|
*
|
|
2119
|
-
* ```ts
|
|
1985
|
+
* ```ts import.meta.vitest
|
|
2120
1986
|
* import { Option } from "effect"
|
|
2121
1987
|
*
|
|
2122
1988
|
* // Chain with a function returning Option
|
|
2123
|
-
*
|
|
2124
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 10 }
|
|
1989
|
+
* Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
|
|
2125
1990
|
*
|
|
2126
1991
|
* // Chain with a static value
|
|
2127
|
-
*
|
|
2128
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
|
|
1992
|
+
* Option.andThen(Option.some(5), "hello") // => Option.some("hello")
|
|
2129
1993
|
*
|
|
2130
1994
|
* // Chain with None - skips
|
|
2131
|
-
*
|
|
2132
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
1995
|
+
* Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
|
|
2133
1996
|
* ```
|
|
2134
1997
|
*
|
|
2135
1998
|
* @see {@link flatMap} for the standard monadic bind
|
|
@@ -2157,20 +2020,17 @@ export const andThen: {
|
|
|
2157
2020
|
*
|
|
2158
2021
|
* **Example** (Chaining with andThen)
|
|
2159
2022
|
*
|
|
2160
|
-
* ```ts
|
|
2023
|
+
* ```ts import.meta.vitest
|
|
2161
2024
|
* import { Option } from "effect"
|
|
2162
2025
|
*
|
|
2163
2026
|
* // Chain with a function returning Option
|
|
2164
|
-
*
|
|
2165
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 10 }
|
|
2027
|
+
* Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
|
|
2166
2028
|
*
|
|
2167
2029
|
* // Chain with a static value
|
|
2168
|
-
*
|
|
2169
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
|
|
2030
|
+
* Option.andThen(Option.some(5), "hello") // => Option.some("hello")
|
|
2170
2031
|
*
|
|
2171
2032
|
* // Chain with None - skips
|
|
2172
|
-
*
|
|
2173
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2033
|
+
* Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
|
|
2174
2034
|
* ```
|
|
2175
2035
|
*
|
|
2176
2036
|
* @see {@link flatMap} for the standard monadic bind
|
|
@@ -2198,20 +2058,17 @@ export const andThen: {
|
|
|
2198
2058
|
*
|
|
2199
2059
|
* **Example** (Chaining with andThen)
|
|
2200
2060
|
*
|
|
2201
|
-
* ```ts
|
|
2061
|
+
* ```ts import.meta.vitest
|
|
2202
2062
|
* import { Option } from "effect"
|
|
2203
2063
|
*
|
|
2204
2064
|
* // Chain with a function returning Option
|
|
2205
|
-
*
|
|
2206
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 10 }
|
|
2065
|
+
* Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
|
|
2207
2066
|
*
|
|
2208
2067
|
* // Chain with a static value
|
|
2209
|
-
*
|
|
2210
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
|
|
2068
|
+
* Option.andThen(Option.some(5), "hello") // => Option.some("hello")
|
|
2211
2069
|
*
|
|
2212
2070
|
* // Chain with None - skips
|
|
2213
|
-
*
|
|
2214
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2071
|
+
* Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
|
|
2215
2072
|
* ```
|
|
2216
2073
|
*
|
|
2217
2074
|
* @see {@link flatMap} for the standard monadic bind
|
|
@@ -2239,20 +2096,17 @@ export const andThen: {
|
|
|
2239
2096
|
*
|
|
2240
2097
|
* **Example** (Chaining with andThen)
|
|
2241
2098
|
*
|
|
2242
|
-
* ```ts
|
|
2099
|
+
* ```ts import.meta.vitest
|
|
2243
2100
|
* import { Option } from "effect"
|
|
2244
2101
|
*
|
|
2245
2102
|
* // Chain with a function returning Option
|
|
2246
|
-
*
|
|
2247
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 10 }
|
|
2103
|
+
* Option.andThen(Option.some(5), (x) => Option.some(x * 2)) // => Option.some(10)
|
|
2248
2104
|
*
|
|
2249
2105
|
* // Chain with a static value
|
|
2250
|
-
*
|
|
2251
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: "hello" }
|
|
2106
|
+
* Option.andThen(Option.some(5), "hello") // => Option.some("hello")
|
|
2252
2107
|
*
|
|
2253
2108
|
* // Chain with None - skips
|
|
2254
|
-
*
|
|
2255
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2109
|
+
* Option.andThen(Option.none(), (x) => Option.some(x * 2)) // => Option.none()
|
|
2256
2110
|
* ```
|
|
2257
2111
|
*
|
|
2258
2112
|
* @see {@link flatMap} for the standard monadic bind
|
|
@@ -2287,7 +2141,7 @@ export const andThen: {
|
|
|
2287
2141
|
*
|
|
2288
2142
|
* **Example** (Navigating optional properties)
|
|
2289
2143
|
*
|
|
2290
|
-
* ```ts
|
|
2144
|
+
* ```ts import.meta.vitest
|
|
2291
2145
|
* import { Option } from "effect"
|
|
2292
2146
|
*
|
|
2293
2147
|
* interface Employee {
|
|
@@ -2298,12 +2152,9 @@ export const andThen: {
|
|
|
2298
2152
|
* company: { address: { street: { name: "high street" } } }
|
|
2299
2153
|
* }
|
|
2300
2154
|
*
|
|
2301
|
-
*
|
|
2302
|
-
* Option.
|
|
2303
|
-
*
|
|
2304
|
-
* )
|
|
2305
|
-
* )
|
|
2306
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'high street' }
|
|
2155
|
+
* Option.some(emp).pipe(
|
|
2156
|
+
* Option.flatMapNullishOr((e) => e.company?.address?.street?.name)
|
|
2157
|
+
* ) // => Option.some("high street")
|
|
2307
2158
|
* ```
|
|
2308
2159
|
*
|
|
2309
2160
|
* @see {@link flatMap} when the function already returns `Option`
|
|
@@ -2329,7 +2180,7 @@ export const flatMapNullishOr: {
|
|
|
2329
2180
|
*
|
|
2330
2181
|
* **Example** (Navigating optional properties)
|
|
2331
2182
|
*
|
|
2332
|
-
* ```ts
|
|
2183
|
+
* ```ts import.meta.vitest
|
|
2333
2184
|
* import { Option } from "effect"
|
|
2334
2185
|
*
|
|
2335
2186
|
* interface Employee {
|
|
@@ -2340,12 +2191,9 @@ export const flatMapNullishOr: {
|
|
|
2340
2191
|
* company: { address: { street: { name: "high street" } } }
|
|
2341
2192
|
* }
|
|
2342
2193
|
*
|
|
2343
|
-
*
|
|
2344
|
-
* Option.
|
|
2345
|
-
*
|
|
2346
|
-
* )
|
|
2347
|
-
* )
|
|
2348
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'high street' }
|
|
2194
|
+
* Option.some(emp).pipe(
|
|
2195
|
+
* Option.flatMapNullishOr((e) => e.company?.address?.street?.name)
|
|
2196
|
+
* ) // => Option.some("high street")
|
|
2349
2197
|
* ```
|
|
2350
2198
|
*
|
|
2351
2199
|
* @see {@link flatMap} when the function already returns `Option`
|
|
@@ -2371,7 +2219,7 @@ export const flatMapNullishOr: {
|
|
|
2371
2219
|
*
|
|
2372
2220
|
* **Example** (Navigating optional properties)
|
|
2373
2221
|
*
|
|
2374
|
-
* ```ts
|
|
2222
|
+
* ```ts import.meta.vitest
|
|
2375
2223
|
* import { Option } from "effect"
|
|
2376
2224
|
*
|
|
2377
2225
|
* interface Employee {
|
|
@@ -2382,12 +2230,9 @@ export const flatMapNullishOr: {
|
|
|
2382
2230
|
* company: { address: { street: { name: "high street" } } }
|
|
2383
2231
|
* }
|
|
2384
2232
|
*
|
|
2385
|
-
*
|
|
2386
|
-
* Option.
|
|
2387
|
-
*
|
|
2388
|
-
* )
|
|
2389
|
-
* )
|
|
2390
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'high street' }
|
|
2233
|
+
* Option.some(emp).pipe(
|
|
2234
|
+
* Option.flatMapNullishOr((e) => e.company?.address?.street?.name)
|
|
2235
|
+
* ) // => Option.some("high street")
|
|
2391
2236
|
* ```
|
|
2392
2237
|
*
|
|
2393
2238
|
* @see {@link flatMap} when the function already returns `Option`
|
|
@@ -2418,14 +2263,11 @@ export const flatMapNullishOr: {
|
|
|
2418
2263
|
*
|
|
2419
2264
|
* **Example** (Flattening nested Options)
|
|
2420
2265
|
*
|
|
2421
|
-
* ```ts
|
|
2266
|
+
* ```ts import.meta.vitest
|
|
2422
2267
|
* import { Option } from "effect"
|
|
2423
2268
|
*
|
|
2424
|
-
*
|
|
2425
|
-
* //
|
|
2426
|
-
*
|
|
2427
|
-
* console.log(Option.flatten(Option.some(Option.none())))
|
|
2428
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2269
|
+
* Option.flatten(Option.some(Option.some("value"))) // => Option.some("value")
|
|
2270
|
+
* Option.flatten(Option.some(Option.none())) // => Option.none()
|
|
2429
2271
|
* ```
|
|
2430
2272
|
*
|
|
2431
2273
|
* @see {@link flatMap} which is `map` + `flatten`
|
|
@@ -2450,14 +2292,11 @@ export const flatten: <A>(self: Option<Option<A>>) => Option<A> = flatMap(identi
|
|
|
2450
2292
|
*
|
|
2451
2293
|
* **Example** (Keeping the second value)
|
|
2452
2294
|
*
|
|
2453
|
-
* ```ts
|
|
2295
|
+
* ```ts import.meta.vitest
|
|
2454
2296
|
* import { Option } from "effect"
|
|
2455
2297
|
*
|
|
2456
|
-
*
|
|
2457
|
-
*
|
|
2458
|
-
*
|
|
2459
|
-
* console.log(Option.zipRight(Option.none(), Option.some("hello")))
|
|
2460
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2298
|
+
* Option.zipRight(Option.some(1), Option.some("hello")) // => Option.some("hello")
|
|
2299
|
+
* Option.zipRight(Option.none(), Option.some("hello")) // => Option.none()
|
|
2461
2300
|
* ```
|
|
2462
2301
|
*
|
|
2463
2302
|
* @see {@link zipLeft} to keep the first value instead
|
|
@@ -2482,14 +2321,11 @@ export const zipRight: {
|
|
|
2482
2321
|
*
|
|
2483
2322
|
* **Example** (Keeping the second value)
|
|
2484
2323
|
*
|
|
2485
|
-
* ```ts
|
|
2324
|
+
* ```ts import.meta.vitest
|
|
2486
2325
|
* import { Option } from "effect"
|
|
2487
2326
|
*
|
|
2488
|
-
*
|
|
2489
|
-
*
|
|
2490
|
-
*
|
|
2491
|
-
* console.log(Option.zipRight(Option.none(), Option.some("hello")))
|
|
2492
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2327
|
+
* Option.zipRight(Option.some(1), Option.some("hello")) // => Option.some("hello")
|
|
2328
|
+
* Option.zipRight(Option.none(), Option.some("hello")) // => Option.none()
|
|
2493
2329
|
* ```
|
|
2494
2330
|
*
|
|
2495
2331
|
* @see {@link zipLeft} to keep the first value instead
|
|
@@ -2514,14 +2350,11 @@ export const zipRight: {
|
|
|
2514
2350
|
*
|
|
2515
2351
|
* **Example** (Keeping the second value)
|
|
2516
2352
|
*
|
|
2517
|
-
* ```ts
|
|
2353
|
+
* ```ts import.meta.vitest
|
|
2518
2354
|
* import { Option } from "effect"
|
|
2519
2355
|
*
|
|
2520
|
-
*
|
|
2521
|
-
*
|
|
2522
|
-
*
|
|
2523
|
-
* console.log(Option.zipRight(Option.none(), Option.some("hello")))
|
|
2524
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2356
|
+
* Option.zipRight(Option.some(1), Option.some("hello")) // => Option.some("hello")
|
|
2357
|
+
* Option.zipRight(Option.none(), Option.some("hello")) // => Option.none()
|
|
2525
2358
|
* ```
|
|
2526
2359
|
*
|
|
2527
2360
|
* @see {@link zipLeft} to keep the first value instead
|
|
@@ -2548,14 +2381,11 @@ export const zipRight: {
|
|
|
2548
2381
|
*
|
|
2549
2382
|
* **Example** (Keeping the first value)
|
|
2550
2383
|
*
|
|
2551
|
-
* ```ts
|
|
2384
|
+
* ```ts import.meta.vitest
|
|
2552
2385
|
* import { Option } from "effect"
|
|
2553
2386
|
*
|
|
2554
|
-
*
|
|
2555
|
-
*
|
|
2556
|
-
*
|
|
2557
|
-
* console.log(Option.zipLeft(Option.some("hello"), Option.none()))
|
|
2558
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2387
|
+
* Option.zipLeft(Option.some("hello"), Option.some(1)) // => Option.some("hello")
|
|
2388
|
+
* Option.zipLeft(Option.some("hello"), Option.none()) // => Option.none()
|
|
2559
2389
|
* ```
|
|
2560
2390
|
*
|
|
2561
2391
|
* @see {@link zipRight} to keep the second value instead
|
|
@@ -2580,14 +2410,11 @@ export const zipLeft: {
|
|
|
2580
2410
|
*
|
|
2581
2411
|
* **Example** (Keeping the first value)
|
|
2582
2412
|
*
|
|
2583
|
-
* ```ts
|
|
2413
|
+
* ```ts import.meta.vitest
|
|
2584
2414
|
* import { Option } from "effect"
|
|
2585
2415
|
*
|
|
2586
|
-
*
|
|
2587
|
-
*
|
|
2588
|
-
*
|
|
2589
|
-
* console.log(Option.zipLeft(Option.some("hello"), Option.none()))
|
|
2590
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2416
|
+
* Option.zipLeft(Option.some("hello"), Option.some(1)) // => Option.some("hello")
|
|
2417
|
+
* Option.zipLeft(Option.some("hello"), Option.none()) // => Option.none()
|
|
2591
2418
|
* ```
|
|
2592
2419
|
*
|
|
2593
2420
|
* @see {@link zipRight} to keep the second value instead
|
|
@@ -2612,14 +2439,11 @@ export const zipLeft: {
|
|
|
2612
2439
|
*
|
|
2613
2440
|
* **Example** (Keeping the first value)
|
|
2614
2441
|
*
|
|
2615
|
-
* ```ts
|
|
2442
|
+
* ```ts import.meta.vitest
|
|
2616
2443
|
* import { Option } from "effect"
|
|
2617
2444
|
*
|
|
2618
|
-
*
|
|
2619
|
-
*
|
|
2620
|
-
*
|
|
2621
|
-
* console.log(Option.zipLeft(Option.some("hello"), Option.none()))
|
|
2622
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2445
|
+
* Option.zipLeft(Option.some("hello"), Option.some(1)) // => Option.some("hello")
|
|
2446
|
+
* Option.zipLeft(Option.some("hello"), Option.none()) // => Option.none()
|
|
2623
2447
|
* ```
|
|
2624
2448
|
*
|
|
2625
2449
|
* @see {@link zipRight} to keep the second value instead
|
|
@@ -2647,7 +2471,7 @@ export const zipLeft: {
|
|
|
2647
2471
|
*
|
|
2648
2472
|
* **Example** (Composing parsers)
|
|
2649
2473
|
*
|
|
2650
|
-
* ```ts
|
|
2474
|
+
* ```ts import.meta.vitest
|
|
2651
2475
|
* import { Option } from "effect"
|
|
2652
2476
|
*
|
|
2653
2477
|
* const parse = (s: string): Option.Option<number> =>
|
|
@@ -2658,11 +2482,8 @@ export const zipLeft: {
|
|
|
2658
2482
|
*
|
|
2659
2483
|
* const parseAndDouble = Option.composeK(parse, double)
|
|
2660
2484
|
*
|
|
2661
|
-
*
|
|
2662
|
-
*
|
|
2663
|
-
*
|
|
2664
|
-
* console.log(parseAndDouble("not a number"))
|
|
2665
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2485
|
+
* parseAndDouble("42") // => Option.some(84)
|
|
2486
|
+
* parseAndDouble("not a number") // => Option.none()
|
|
2666
2487
|
* ```
|
|
2667
2488
|
*
|
|
2668
2489
|
* @see {@link flatMap} for single-step chaining
|
|
@@ -2687,7 +2508,7 @@ export const composeK: {
|
|
|
2687
2508
|
*
|
|
2688
2509
|
* **Example** (Composing parsers)
|
|
2689
2510
|
*
|
|
2690
|
-
* ```ts
|
|
2511
|
+
* ```ts import.meta.vitest
|
|
2691
2512
|
* import { Option } from "effect"
|
|
2692
2513
|
*
|
|
2693
2514
|
* const parse = (s: string): Option.Option<number> =>
|
|
@@ -2698,11 +2519,8 @@ export const composeK: {
|
|
|
2698
2519
|
*
|
|
2699
2520
|
* const parseAndDouble = Option.composeK(parse, double)
|
|
2700
2521
|
*
|
|
2701
|
-
*
|
|
2702
|
-
*
|
|
2703
|
-
*
|
|
2704
|
-
* console.log(parseAndDouble("not a number"))
|
|
2705
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2522
|
+
* parseAndDouble("42") // => Option.some(84)
|
|
2523
|
+
* parseAndDouble("not a number") // => Option.none()
|
|
2706
2524
|
* ```
|
|
2707
2525
|
*
|
|
2708
2526
|
* @see {@link flatMap} for single-step chaining
|
|
@@ -2727,7 +2545,7 @@ export const composeK: {
|
|
|
2727
2545
|
*
|
|
2728
2546
|
* **Example** (Composing parsers)
|
|
2729
2547
|
*
|
|
2730
|
-
* ```ts
|
|
2548
|
+
* ```ts import.meta.vitest
|
|
2731
2549
|
* import { Option } from "effect"
|
|
2732
2550
|
*
|
|
2733
2551
|
* const parse = (s: string): Option.Option<number> =>
|
|
@@ -2738,11 +2556,8 @@ export const composeK: {
|
|
|
2738
2556
|
*
|
|
2739
2557
|
* const parseAndDouble = Option.composeK(parse, double)
|
|
2740
2558
|
*
|
|
2741
|
-
*
|
|
2742
|
-
*
|
|
2743
|
-
*
|
|
2744
|
-
* console.log(parseAndDouble("not a number"))
|
|
2745
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2559
|
+
* parseAndDouble("42") // => Option.some(84)
|
|
2560
|
+
* parseAndDouble("not a number") // => Option.none()
|
|
2746
2561
|
* ```
|
|
2747
2562
|
*
|
|
2748
2563
|
* @see {@link flatMap} for single-step chaining
|
|
@@ -2770,17 +2585,14 @@ export const composeK: {
|
|
|
2770
2585
|
*
|
|
2771
2586
|
* **Example** (Validating without transforming)
|
|
2772
2587
|
*
|
|
2773
|
-
* ```ts
|
|
2588
|
+
* ```ts import.meta.vitest
|
|
2774
2589
|
* import { Option } from "effect"
|
|
2775
2590
|
*
|
|
2776
2591
|
* const getInteger = (n: number) =>
|
|
2777
2592
|
* Number.isInteger(n) ? Option.some(n) : Option.none()
|
|
2778
2593
|
*
|
|
2779
|
-
*
|
|
2780
|
-
*
|
|
2781
|
-
*
|
|
2782
|
-
* console.log(Option.tap(Option.some(1.14), getInteger))
|
|
2783
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2594
|
+
* Option.tap(Option.some(1), getInteger) // => Option.some(1)
|
|
2595
|
+
* Option.tap(Option.some(1.14), getInteger) // => Option.none()
|
|
2784
2596
|
* ```
|
|
2785
2597
|
*
|
|
2786
2598
|
* @see {@link flatMap} when you want to transform the value
|
|
@@ -2807,17 +2619,14 @@ export const tap: {
|
|
|
2807
2619
|
*
|
|
2808
2620
|
* **Example** (Validating without transforming)
|
|
2809
2621
|
*
|
|
2810
|
-
* ```ts
|
|
2622
|
+
* ```ts import.meta.vitest
|
|
2811
2623
|
* import { Option } from "effect"
|
|
2812
2624
|
*
|
|
2813
2625
|
* const getInteger = (n: number) =>
|
|
2814
2626
|
* Number.isInteger(n) ? Option.some(n) : Option.none()
|
|
2815
2627
|
*
|
|
2816
|
-
*
|
|
2817
|
-
*
|
|
2818
|
-
*
|
|
2819
|
-
* console.log(Option.tap(Option.some(1.14), getInteger))
|
|
2820
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2628
|
+
* Option.tap(Option.some(1), getInteger) // => Option.some(1)
|
|
2629
|
+
* Option.tap(Option.some(1.14), getInteger) // => Option.none()
|
|
2821
2630
|
* ```
|
|
2822
2631
|
*
|
|
2823
2632
|
* @see {@link flatMap} when you want to transform the value
|
|
@@ -2844,17 +2653,14 @@ export const tap: {
|
|
|
2844
2653
|
*
|
|
2845
2654
|
* **Example** (Validating without transforming)
|
|
2846
2655
|
*
|
|
2847
|
-
* ```ts
|
|
2656
|
+
* ```ts import.meta.vitest
|
|
2848
2657
|
* import { Option } from "effect"
|
|
2849
2658
|
*
|
|
2850
2659
|
* const getInteger = (n: number) =>
|
|
2851
2660
|
* Number.isInteger(n) ? Option.some(n) : Option.none()
|
|
2852
2661
|
*
|
|
2853
|
-
*
|
|
2854
|
-
*
|
|
2855
|
-
*
|
|
2856
|
-
* console.log(Option.tap(Option.some(1.14), getInteger))
|
|
2857
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2662
|
+
* Option.tap(Option.some(1), getInteger) // => Option.some(1)
|
|
2663
|
+
* Option.tap(Option.some(1.14), getInteger) // => Option.none()
|
|
2858
2664
|
* ```
|
|
2859
2665
|
*
|
|
2860
2666
|
* @see {@link flatMap} when you want to transform the value
|
|
@@ -2882,14 +2688,11 @@ export const tap: {
|
|
|
2882
2688
|
*
|
|
2883
2689
|
* **Example** (Pairing two Options)
|
|
2884
2690
|
*
|
|
2885
|
-
* ```ts
|
|
2691
|
+
* ```ts import.meta.vitest
|
|
2886
2692
|
* import { Option } from "effect"
|
|
2887
2693
|
*
|
|
2888
|
-
*
|
|
2889
|
-
*
|
|
2890
|
-
*
|
|
2891
|
-
* console.log(Option.product(Option.none(), Option.some(42)))
|
|
2892
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2694
|
+
* Option.product(Option.some("hello"), Option.some(42)) // => Option.some(["hello", 42])
|
|
2695
|
+
* Option.product(Option.none(), Option.some(42)) // => Option.none()
|
|
2893
2696
|
* ```
|
|
2894
2697
|
*
|
|
2895
2698
|
* @see {@link zipWith} to combine with a function instead of a tuple
|
|
@@ -2917,17 +2720,14 @@ export const product = <A, B>(self: Option<A>, that: Option<B>): Option<[A, B]>
|
|
|
2917
2720
|
*
|
|
2918
2721
|
* **Example** (Combining many Options)
|
|
2919
2722
|
*
|
|
2920
|
-
* ```ts
|
|
2723
|
+
* ```ts import.meta.vitest
|
|
2921
2724
|
* import { Option } from "effect"
|
|
2922
2725
|
*
|
|
2923
2726
|
* const first = Option.some(1)
|
|
2924
2727
|
* const rest = [Option.some(2), Option.some(3)]
|
|
2925
2728
|
*
|
|
2926
|
-
*
|
|
2927
|
-
*
|
|
2928
|
-
*
|
|
2929
|
-
* console.log(Option.productMany(first, [Option.some(2), Option.none()]))
|
|
2930
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
2729
|
+
* Option.productMany(first, rest) // => Option.some([1, 2, 3])
|
|
2730
|
+
* Option.productMany(first, [Option.some(2), Option.none()]) // => Option.none()
|
|
2931
2731
|
* ```
|
|
2932
2732
|
*
|
|
2933
2733
|
* @see {@link product} for combining exactly two
|
|
@@ -2971,7 +2771,7 @@ export const productMany = <A>(
|
|
|
2971
2771
|
*
|
|
2972
2772
|
* **Example** (Combining a tuple and a struct)
|
|
2973
2773
|
*
|
|
2974
|
-
* ```ts
|
|
2774
|
+
* ```ts import.meta.vitest
|
|
2975
2775
|
* import { Option } from "effect"
|
|
2976
2776
|
*
|
|
2977
2777
|
* const maybeName: Option.Option<string> = Option.some("John")
|
|
@@ -2979,17 +2779,11 @@ export const productMany = <A>(
|
|
|
2979
2779
|
*
|
|
2980
2780
|
* // ┌─── Option<[string, number]>
|
|
2981
2781
|
* // ▼
|
|
2982
|
-
* const tuple = Option.all([maybeName, maybeAge])
|
|
2983
|
-
* console.log(tuple)
|
|
2984
|
-
* // Output:
|
|
2985
|
-
* // { _id: 'Option', _tag: 'Some', value: [ 'John', 25 ] }
|
|
2782
|
+
* const tuple = Option.all([maybeName, maybeAge]) // => Option.some(["John", 25])
|
|
2986
2783
|
*
|
|
2987
2784
|
* // ┌─── Option<{ name: string; age: number; }>
|
|
2988
2785
|
* // ▼
|
|
2989
|
-
* const struct = Option.all({ name: maybeName, age: maybeAge })
|
|
2990
|
-
* console.log(struct)
|
|
2991
|
-
* // Output:
|
|
2992
|
-
* // { _id: 'Option', _tag: 'Some', value: { name: 'John', age: 25 } }
|
|
2786
|
+
* const struct = Option.all({ name: maybeName, age: maybeAge }) // => Option.some({ name: "John", age: 25 })
|
|
2993
2787
|
* ```
|
|
2994
2788
|
*
|
|
2995
2789
|
* @see {@link product} for combining exactly two
|
|
@@ -3025,7 +2819,7 @@ export const all: <const I extends Iterable<Option<any>> | Record<string, Option
|
|
|
3025
2819
|
if (isNone(o)) {
|
|
3026
2820
|
return none()
|
|
3027
2821
|
}
|
|
3028
|
-
out
|
|
2822
|
+
InternalRecord.assignProperty(out, key, o.value)
|
|
3029
2823
|
}
|
|
3030
2824
|
return some(out)
|
|
3031
2825
|
}
|
|
@@ -3045,18 +2839,14 @@ export const all: <const I extends Iterable<Option<any>> | Record<string, Option
|
|
|
3045
2839
|
*
|
|
3046
2840
|
* **Example** (Combining with a function)
|
|
3047
2841
|
*
|
|
3048
|
-
* ```ts
|
|
2842
|
+
* ```ts import.meta.vitest
|
|
3049
2843
|
* import { Option } from "effect"
|
|
3050
2844
|
*
|
|
3051
|
-
*
|
|
2845
|
+
* Option.zipWith(
|
|
3052
2846
|
* Option.some("John"),
|
|
3053
2847
|
* Option.some(25),
|
|
3054
2848
|
* (name, age) => ({ name: name.toUpperCase(), age })
|
|
3055
|
-
* )
|
|
3056
|
-
*
|
|
3057
|
-
* console.log(person)
|
|
3058
|
-
* // Output:
|
|
3059
|
-
* // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }
|
|
2849
|
+
* ) // => Option.some({ name: "JOHN", age: 25 })
|
|
3060
2850
|
* ```
|
|
3061
2851
|
*
|
|
3062
2852
|
* @see {@link product} to combine into a tuple instead
|
|
@@ -3081,18 +2871,14 @@ export const zipWith: {
|
|
|
3081
2871
|
*
|
|
3082
2872
|
* **Example** (Combining with a function)
|
|
3083
2873
|
*
|
|
3084
|
-
* ```ts
|
|
2874
|
+
* ```ts import.meta.vitest
|
|
3085
2875
|
* import { Option } from "effect"
|
|
3086
2876
|
*
|
|
3087
|
-
*
|
|
2877
|
+
* Option.zipWith(
|
|
3088
2878
|
* Option.some("John"),
|
|
3089
2879
|
* Option.some(25),
|
|
3090
2880
|
* (name, age) => ({ name: name.toUpperCase(), age })
|
|
3091
|
-
* )
|
|
3092
|
-
*
|
|
3093
|
-
* console.log(person)
|
|
3094
|
-
* // Output:
|
|
3095
|
-
* // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }
|
|
2881
|
+
* ) // => Option.some({ name: "JOHN", age: 25 })
|
|
3096
2882
|
* ```
|
|
3097
2883
|
*
|
|
3098
2884
|
* @see {@link product} to combine into a tuple instead
|
|
@@ -3117,18 +2903,14 @@ export const zipWith: {
|
|
|
3117
2903
|
*
|
|
3118
2904
|
* **Example** (Combining with a function)
|
|
3119
2905
|
*
|
|
3120
|
-
* ```ts
|
|
2906
|
+
* ```ts import.meta.vitest
|
|
3121
2907
|
* import { Option } from "effect"
|
|
3122
2908
|
*
|
|
3123
|
-
*
|
|
2909
|
+
* Option.zipWith(
|
|
3124
2910
|
* Option.some("John"),
|
|
3125
2911
|
* Option.some(25),
|
|
3126
2912
|
* (name, age) => ({ name: name.toUpperCase(), age })
|
|
3127
|
-
* )
|
|
3128
|
-
*
|
|
3129
|
-
* console.log(person)
|
|
3130
|
-
* // Output:
|
|
3131
|
-
* // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }
|
|
2913
|
+
* ) // => Option.some({ name: "JOHN", age: 25 })
|
|
3132
2914
|
* ```
|
|
3133
2915
|
*
|
|
3134
2916
|
* @see {@link product} to combine into a tuple instead
|
|
@@ -3160,16 +2942,15 @@ export const zipWith: {
|
|
|
3160
2942
|
*
|
|
3161
2943
|
* **Example** (Summing present values)
|
|
3162
2944
|
*
|
|
3163
|
-
* ```ts
|
|
2945
|
+
* ```ts import.meta.vitest
|
|
3164
2946
|
* import { Option, pipe } from "effect"
|
|
3165
2947
|
*
|
|
3166
2948
|
* const items = [Option.some(1), Option.none(), Option.some(2), Option.none()]
|
|
3167
2949
|
*
|
|
3168
|
-
*
|
|
3169
|
-
* // Output: 3
|
|
2950
|
+
* pipe(items, Option.reduceCompact(0, (b, a) => b + a)) // => 3
|
|
3170
2951
|
* ```
|
|
3171
2952
|
*
|
|
3172
|
-
* @category
|
|
2953
|
+
* @category folding
|
|
3173
2954
|
* @since 2.0.0
|
|
3174
2955
|
*/
|
|
3175
2956
|
export const reduceCompact: {
|
|
@@ -3189,16 +2970,15 @@ export const reduceCompact: {
|
|
|
3189
2970
|
*
|
|
3190
2971
|
* **Example** (Summing present values)
|
|
3191
2972
|
*
|
|
3192
|
-
* ```ts
|
|
2973
|
+
* ```ts import.meta.vitest
|
|
3193
2974
|
* import { Option, pipe } from "effect"
|
|
3194
2975
|
*
|
|
3195
2976
|
* const items = [Option.some(1), Option.none(), Option.some(2), Option.none()]
|
|
3196
2977
|
*
|
|
3197
|
-
*
|
|
3198
|
-
* // Output: 3
|
|
2978
|
+
* pipe(items, Option.reduceCompact(0, (b, a) => b + a)) // => 3
|
|
3199
2979
|
* ```
|
|
3200
2980
|
*
|
|
3201
|
-
* @category
|
|
2981
|
+
* @category folding
|
|
3202
2982
|
* @since 2.0.0
|
|
3203
2983
|
*/
|
|
3204
2984
|
<B, A>(b: B, f: (b: B, a: A) => B): (self: Iterable<Option<A>>) => B
|
|
@@ -3218,16 +2998,15 @@ export const reduceCompact: {
|
|
|
3218
2998
|
*
|
|
3219
2999
|
* **Example** (Summing present values)
|
|
3220
3000
|
*
|
|
3221
|
-
* ```ts
|
|
3001
|
+
* ```ts import.meta.vitest
|
|
3222
3002
|
* import { Option, pipe } from "effect"
|
|
3223
3003
|
*
|
|
3224
3004
|
* const items = [Option.some(1), Option.none(), Option.some(2), Option.none()]
|
|
3225
3005
|
*
|
|
3226
|
-
*
|
|
3227
|
-
* // Output: 3
|
|
3006
|
+
* pipe(items, Option.reduceCompact(0, (b, a) => b + a)) // => 3
|
|
3228
3007
|
* ```
|
|
3229
3008
|
*
|
|
3230
|
-
* @category
|
|
3009
|
+
* @category folding
|
|
3231
3010
|
* @since 2.0.0
|
|
3232
3011
|
*/
|
|
3233
3012
|
<A, B>(self: Iterable<Option<A>>, b: B, f: (b: B, a: A) => B): B
|
|
@@ -3259,14 +3038,11 @@ export const reduceCompact: {
|
|
|
3259
3038
|
*
|
|
3260
3039
|
* **Example** (Converting to an array)
|
|
3261
3040
|
*
|
|
3262
|
-
* ```ts
|
|
3041
|
+
* ```ts import.meta.vitest
|
|
3263
3042
|
* import { Option } from "effect"
|
|
3264
3043
|
*
|
|
3265
|
-
*
|
|
3266
|
-
* //
|
|
3267
|
-
*
|
|
3268
|
-
* console.log(Option.toArray(Option.none()))
|
|
3269
|
-
* // Output: []
|
|
3044
|
+
* Option.toArray(Option.some(1)) // => [1]
|
|
3045
|
+
* Option.toArray(Option.none()) // => []
|
|
3270
3046
|
* ```
|
|
3271
3047
|
*
|
|
3272
3048
|
* @see {@link fromIterable} for the inverse direction
|
|
@@ -3292,7 +3068,7 @@ export const toArray = <A>(self: Option<A>): Array<A> => isNone(self) ? [] : [se
|
|
|
3292
3068
|
*
|
|
3293
3069
|
* **Example** (Partitioning by Result)
|
|
3294
3070
|
*
|
|
3295
|
-
* ```ts
|
|
3071
|
+
* ```ts import.meta.vitest
|
|
3296
3072
|
* import { Option, Result } from "effect"
|
|
3297
3073
|
*
|
|
3298
3074
|
* const parseNumber = (s: string): Result.Result<number, string> => {
|
|
@@ -3300,14 +3076,9 @@ export const toArray = <A>(self: Option<A>): Array<A> => isNone(self) ? [] : [se
|
|
|
3300
3076
|
* return isNaN(n) ? Result.fail("Not a number") : Result.succeed(n)
|
|
3301
3077
|
* }
|
|
3302
3078
|
*
|
|
3303
|
-
*
|
|
3304
|
-
*
|
|
3305
|
-
*
|
|
3306
|
-
* console.log(Option.partitionMap(Option.some("abc"), parseNumber))
|
|
3307
|
-
* // Output: [{ _id: 'Option', _tag: 'Some', value: 'Not a number' }, { _id: 'Option', _tag: 'None' }]
|
|
3308
|
-
*
|
|
3309
|
-
* console.log(Option.partitionMap(Option.none(), parseNumber))
|
|
3310
|
-
* // Output: [{ _id: 'Option', _tag: 'None' }, { _id: 'Option', _tag: 'None' }]
|
|
3079
|
+
* Option.partitionMap(Option.some("42"), parseNumber) // => [Option.none(), Option.some(42)]
|
|
3080
|
+
* Option.partitionMap(Option.some("abc"), parseNumber) // => [Option.some("Not a number"), Option.none()]
|
|
3081
|
+
* Option.partitionMap(Option.none(), parseNumber) // => [Option.none(), Option.none()]
|
|
3311
3082
|
* ```
|
|
3312
3083
|
*
|
|
3313
3084
|
* @see {@link filter} for simple predicate-based filtering
|
|
@@ -3332,7 +3103,7 @@ export const partitionMap: {
|
|
|
3332
3103
|
*
|
|
3333
3104
|
* **Example** (Partitioning by Result)
|
|
3334
3105
|
*
|
|
3335
|
-
* ```ts
|
|
3106
|
+
* ```ts import.meta.vitest
|
|
3336
3107
|
* import { Option, Result } from "effect"
|
|
3337
3108
|
*
|
|
3338
3109
|
* const parseNumber = (s: string): Result.Result<number, string> => {
|
|
@@ -3340,14 +3111,9 @@ export const partitionMap: {
|
|
|
3340
3111
|
* return isNaN(n) ? Result.fail("Not a number") : Result.succeed(n)
|
|
3341
3112
|
* }
|
|
3342
3113
|
*
|
|
3343
|
-
*
|
|
3344
|
-
*
|
|
3345
|
-
*
|
|
3346
|
-
* console.log(Option.partitionMap(Option.some("abc"), parseNumber))
|
|
3347
|
-
* // Output: [{ _id: 'Option', _tag: 'Some', value: 'Not a number' }, { _id: 'Option', _tag: 'None' }]
|
|
3348
|
-
*
|
|
3349
|
-
* console.log(Option.partitionMap(Option.none(), parseNumber))
|
|
3350
|
-
* // Output: [{ _id: 'Option', _tag: 'None' }, { _id: 'Option', _tag: 'None' }]
|
|
3114
|
+
* Option.partitionMap(Option.some("42"), parseNumber) // => [Option.none(), Option.some(42)]
|
|
3115
|
+
* Option.partitionMap(Option.some("abc"), parseNumber) // => [Option.some("Not a number"), Option.none()]
|
|
3116
|
+
* Option.partitionMap(Option.none(), parseNumber) // => [Option.none(), Option.none()]
|
|
3351
3117
|
* ```
|
|
3352
3118
|
*
|
|
3353
3119
|
* @see {@link filter} for simple predicate-based filtering
|
|
@@ -3372,7 +3138,7 @@ export const partitionMap: {
|
|
|
3372
3138
|
*
|
|
3373
3139
|
* **Example** (Partitioning by Result)
|
|
3374
3140
|
*
|
|
3375
|
-
* ```ts
|
|
3141
|
+
* ```ts import.meta.vitest
|
|
3376
3142
|
* import { Option, Result } from "effect"
|
|
3377
3143
|
*
|
|
3378
3144
|
* const parseNumber = (s: string): Result.Result<number, string> => {
|
|
@@ -3380,14 +3146,9 @@ export const partitionMap: {
|
|
|
3380
3146
|
* return isNaN(n) ? Result.fail("Not a number") : Result.succeed(n)
|
|
3381
3147
|
* }
|
|
3382
3148
|
*
|
|
3383
|
-
*
|
|
3384
|
-
*
|
|
3385
|
-
*
|
|
3386
|
-
* console.log(Option.partitionMap(Option.some("abc"), parseNumber))
|
|
3387
|
-
* // Output: [{ _id: 'Option', _tag: 'Some', value: 'Not a number' }, { _id: 'Option', _tag: 'None' }]
|
|
3388
|
-
*
|
|
3389
|
-
* console.log(Option.partitionMap(Option.none(), parseNumber))
|
|
3390
|
-
* // Output: [{ _id: 'Option', _tag: 'None' }, { _id: 'Option', _tag: 'None' }]
|
|
3149
|
+
* Option.partitionMap(Option.some("42"), parseNumber) // => [Option.none(), Option.some(42)]
|
|
3150
|
+
* Option.partitionMap(Option.some("abc"), parseNumber) // => [Option.some("Not a number"), Option.none()]
|
|
3151
|
+
* Option.partitionMap(Option.none(), parseNumber) // => [Option.none(), Option.none()]
|
|
3391
3152
|
* ```
|
|
3392
3153
|
*
|
|
3393
3154
|
* @see {@link filter} for simple predicate-based filtering
|
|
@@ -3422,14 +3183,13 @@ export const partitionMap: {
|
|
|
3422
3183
|
*
|
|
3423
3184
|
* **Example** (Filtering and transforming)
|
|
3424
3185
|
*
|
|
3425
|
-
* ```ts
|
|
3186
|
+
* ```ts import.meta.vitest
|
|
3426
3187
|
* import { Option, Result } from "effect"
|
|
3427
3188
|
*
|
|
3428
|
-
*
|
|
3189
|
+
* Option.filterMap(
|
|
3429
3190
|
* Option.some(2),
|
|
3430
3191
|
* (n) => (n % 2 === 0 ? Result.succeed(`Even: ${n}`) : Result.failVoid)
|
|
3431
|
-
* ))
|
|
3432
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'Even: 2' }
|
|
3192
|
+
* ) // => Option.some("Even: 2")
|
|
3433
3193
|
* ```
|
|
3434
3194
|
*
|
|
3435
3195
|
* @see {@link filter} for predicate-based filtering
|
|
@@ -3453,14 +3213,13 @@ export const filterMap: {
|
|
|
3453
3213
|
*
|
|
3454
3214
|
* **Example** (Filtering and transforming)
|
|
3455
3215
|
*
|
|
3456
|
-
* ```ts
|
|
3216
|
+
* ```ts import.meta.vitest
|
|
3457
3217
|
* import { Option, Result } from "effect"
|
|
3458
3218
|
*
|
|
3459
|
-
*
|
|
3219
|
+
* Option.filterMap(
|
|
3460
3220
|
* Option.some(2),
|
|
3461
3221
|
* (n) => (n % 2 === 0 ? Result.succeed(`Even: ${n}`) : Result.failVoid)
|
|
3462
|
-
* ))
|
|
3463
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'Even: 2' }
|
|
3222
|
+
* ) // => Option.some("Even: 2")
|
|
3464
3223
|
* ```
|
|
3465
3224
|
*
|
|
3466
3225
|
* @see {@link filter} for predicate-based filtering
|
|
@@ -3484,14 +3243,13 @@ export const filterMap: {
|
|
|
3484
3243
|
*
|
|
3485
3244
|
* **Example** (Filtering and transforming)
|
|
3486
3245
|
*
|
|
3487
|
-
* ```ts
|
|
3246
|
+
* ```ts import.meta.vitest
|
|
3488
3247
|
* import { Option, Result } from "effect"
|
|
3489
3248
|
*
|
|
3490
|
-
*
|
|
3249
|
+
* Option.filterMap(
|
|
3491
3250
|
* Option.some(2),
|
|
3492
3251
|
* (n) => (n % 2 === 0 ? Result.succeed(`Even: ${n}`) : Result.failVoid)
|
|
3493
|
-
* ))
|
|
3494
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 'Even: 2' }
|
|
3252
|
+
* ) // => Option.some("Even: 2")
|
|
3495
3253
|
* ```
|
|
3496
3254
|
*
|
|
3497
3255
|
* @see {@link filter} for predicate-based filtering
|
|
@@ -3526,20 +3284,15 @@ export const filterMap: {
|
|
|
3526
3284
|
*
|
|
3527
3285
|
* **Example** (Filtering with a predicate)
|
|
3528
3286
|
*
|
|
3529
|
-
* ```ts
|
|
3287
|
+
* ```ts import.meta.vitest
|
|
3530
3288
|
* import { Option } from "effect"
|
|
3531
3289
|
*
|
|
3532
3290
|
* const removeEmpty = (input: Option.Option<string>) =>
|
|
3533
3291
|
* Option.filter(input, (value) => value !== "")
|
|
3534
3292
|
*
|
|
3535
|
-
*
|
|
3536
|
-
* //
|
|
3537
|
-
*
|
|
3538
|
-
* console.log(removeEmpty(Option.some("")))
|
|
3539
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3540
|
-
*
|
|
3541
|
-
* console.log(removeEmpty(Option.none()))
|
|
3542
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3293
|
+
* removeEmpty(Option.some("hello")) // => Option.some("hello")
|
|
3294
|
+
* removeEmpty(Option.some("")) // => Option.none()
|
|
3295
|
+
* removeEmpty(Option.none()) // => Option.none()
|
|
3543
3296
|
* ```
|
|
3544
3297
|
*
|
|
3545
3298
|
* @see {@link filterMap} to transform and filter simultaneously
|
|
@@ -3567,20 +3320,15 @@ export const filter: {
|
|
|
3567
3320
|
*
|
|
3568
3321
|
* **Example** (Filtering with a predicate)
|
|
3569
3322
|
*
|
|
3570
|
-
* ```ts
|
|
3323
|
+
* ```ts import.meta.vitest
|
|
3571
3324
|
* import { Option } from "effect"
|
|
3572
3325
|
*
|
|
3573
3326
|
* const removeEmpty = (input: Option.Option<string>) =>
|
|
3574
3327
|
* Option.filter(input, (value) => value !== "")
|
|
3575
3328
|
*
|
|
3576
|
-
*
|
|
3577
|
-
* //
|
|
3578
|
-
*
|
|
3579
|
-
* console.log(removeEmpty(Option.some("")))
|
|
3580
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3581
|
-
*
|
|
3582
|
-
* console.log(removeEmpty(Option.none()))
|
|
3583
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3329
|
+
* removeEmpty(Option.some("hello")) // => Option.some("hello")
|
|
3330
|
+
* removeEmpty(Option.some("")) // => Option.none()
|
|
3331
|
+
* removeEmpty(Option.none()) // => Option.none()
|
|
3584
3332
|
* ```
|
|
3585
3333
|
*
|
|
3586
3334
|
* @see {@link filterMap} to transform and filter simultaneously
|
|
@@ -3608,20 +3356,15 @@ export const filter: {
|
|
|
3608
3356
|
*
|
|
3609
3357
|
* **Example** (Filtering with a predicate)
|
|
3610
3358
|
*
|
|
3611
|
-
* ```ts
|
|
3359
|
+
* ```ts import.meta.vitest
|
|
3612
3360
|
* import { Option } from "effect"
|
|
3613
3361
|
*
|
|
3614
3362
|
* const removeEmpty = (input: Option.Option<string>) =>
|
|
3615
3363
|
* Option.filter(input, (value) => value !== "")
|
|
3616
3364
|
*
|
|
3617
|
-
*
|
|
3618
|
-
* //
|
|
3619
|
-
*
|
|
3620
|
-
* console.log(removeEmpty(Option.some("")))
|
|
3621
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3622
|
-
*
|
|
3623
|
-
* console.log(removeEmpty(Option.none()))
|
|
3624
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3365
|
+
* removeEmpty(Option.some("hello")) // => Option.some("hello")
|
|
3366
|
+
* removeEmpty(Option.some("")) // => Option.none()
|
|
3367
|
+
* removeEmpty(Option.none()) // => Option.none()
|
|
3625
3368
|
* ```
|
|
3626
3369
|
*
|
|
3627
3370
|
* @see {@link filterMap} to transform and filter simultaneously
|
|
@@ -3649,20 +3392,15 @@ export const filter: {
|
|
|
3649
3392
|
*
|
|
3650
3393
|
* **Example** (Filtering with a predicate)
|
|
3651
3394
|
*
|
|
3652
|
-
* ```ts
|
|
3395
|
+
* ```ts import.meta.vitest
|
|
3653
3396
|
* import { Option } from "effect"
|
|
3654
3397
|
*
|
|
3655
3398
|
* const removeEmpty = (input: Option.Option<string>) =>
|
|
3656
3399
|
* Option.filter(input, (value) => value !== "")
|
|
3657
3400
|
*
|
|
3658
|
-
*
|
|
3659
|
-
* //
|
|
3660
|
-
*
|
|
3661
|
-
* console.log(removeEmpty(Option.some("")))
|
|
3662
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3663
|
-
*
|
|
3664
|
-
* console.log(removeEmpty(Option.none()))
|
|
3665
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3401
|
+
* removeEmpty(Option.some("hello")) // => Option.some("hello")
|
|
3402
|
+
* removeEmpty(Option.some("")) // => Option.none()
|
|
3403
|
+
* removeEmpty(Option.none()) // => Option.none()
|
|
3666
3404
|
* ```
|
|
3667
3405
|
*
|
|
3668
3406
|
* @see {@link filterMap} to transform and filter simultaneously
|
|
@@ -3690,20 +3428,15 @@ export const filter: {
|
|
|
3690
3428
|
*
|
|
3691
3429
|
* **Example** (Filtering with a predicate)
|
|
3692
3430
|
*
|
|
3693
|
-
* ```ts
|
|
3431
|
+
* ```ts import.meta.vitest
|
|
3694
3432
|
* import { Option } from "effect"
|
|
3695
3433
|
*
|
|
3696
3434
|
* const removeEmpty = (input: Option.Option<string>) =>
|
|
3697
3435
|
* Option.filter(input, (value) => value !== "")
|
|
3698
3436
|
*
|
|
3699
|
-
*
|
|
3700
|
-
* //
|
|
3701
|
-
*
|
|
3702
|
-
* console.log(removeEmpty(Option.some("")))
|
|
3703
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3704
|
-
*
|
|
3705
|
-
* console.log(removeEmpty(Option.none()))
|
|
3706
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3437
|
+
* removeEmpty(Option.some("hello")) // => Option.some("hello")
|
|
3438
|
+
* removeEmpty(Option.some("")) // => Option.none()
|
|
3439
|
+
* removeEmpty(Option.none()) // => Option.none()
|
|
3707
3440
|
* ```
|
|
3708
3441
|
*
|
|
3709
3442
|
* @see {@link filterMap} to transform and filter simultaneously
|
|
@@ -3735,19 +3468,14 @@ export const filter: {
|
|
|
3735
3468
|
*
|
|
3736
3469
|
* **Example** (Comparing Options)
|
|
3737
3470
|
*
|
|
3738
|
-
* ```ts
|
|
3471
|
+
* ```ts import.meta.vitest
|
|
3739
3472
|
* import { Equivalence, Option } from "effect"
|
|
3740
3473
|
*
|
|
3741
3474
|
* const eq = Option.makeEquivalence(Equivalence.strictEqual<number>())
|
|
3742
3475
|
*
|
|
3743
|
-
*
|
|
3744
|
-
* //
|
|
3745
|
-
*
|
|
3746
|
-
* console.log(eq(Option.some(1), Option.some(2)))
|
|
3747
|
-
* // Output: false
|
|
3748
|
-
*
|
|
3749
|
-
* console.log(eq(Option.none(), Option.none()))
|
|
3750
|
-
* // Output: true
|
|
3476
|
+
* eq(Option.some(1), Option.some(1)) // => true
|
|
3477
|
+
* eq(Option.some(1), Option.some(2)) // => false
|
|
3478
|
+
* eq(Option.none(), Option.none()) // => true
|
|
3751
3479
|
* ```
|
|
3752
3480
|
*
|
|
3753
3481
|
* @category instances
|
|
@@ -3773,19 +3501,14 @@ export const makeEquivalence = <A>(isEquivalent: Equivalence.Equivalence<A>): Eq
|
|
|
3773
3501
|
*
|
|
3774
3502
|
* **Example** (Ordering Options)
|
|
3775
3503
|
*
|
|
3776
|
-
* ```ts
|
|
3504
|
+
* ```ts import.meta.vitest
|
|
3777
3505
|
* import { Number as N, Option } from "effect"
|
|
3778
3506
|
*
|
|
3779
3507
|
* const ord = Option.makeOrder(N.Order)
|
|
3780
3508
|
*
|
|
3781
|
-
*
|
|
3782
|
-
* //
|
|
3783
|
-
*
|
|
3784
|
-
* console.log(ord(Option.some(1), Option.none()))
|
|
3785
|
-
* // Output: 1
|
|
3786
|
-
*
|
|
3787
|
-
* console.log(ord(Option.some(1), Option.some(2)))
|
|
3788
|
-
* // Output: -1
|
|
3509
|
+
* ord(Option.none(), Option.some(1)) // => -1
|
|
3510
|
+
* ord(Option.some(1), Option.none()) // => 1
|
|
3511
|
+
* ord(Option.some(1), Option.some(2)) // => -1
|
|
3789
3512
|
* ```
|
|
3790
3513
|
*
|
|
3791
3514
|
* @category sorting
|
|
@@ -3809,16 +3532,13 @@ export const makeOrder = <A>(O: Order<A>): Order<Option<A>> =>
|
|
|
3809
3532
|
*
|
|
3810
3533
|
* **Example** (Lifting addition)
|
|
3811
3534
|
*
|
|
3812
|
-
* ```ts
|
|
3535
|
+
* ```ts import.meta.vitest
|
|
3813
3536
|
* import { Option } from "effect"
|
|
3814
3537
|
*
|
|
3815
3538
|
* const addOptions = Option.lift2((a: number, b: number) => a + b)
|
|
3816
3539
|
*
|
|
3817
|
-
*
|
|
3818
|
-
*
|
|
3819
|
-
*
|
|
3820
|
-
* console.log(addOptions(Option.some(2), Option.none()))
|
|
3821
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3540
|
+
* addOptions(Option.some(2), Option.some(3)) // => Option.some(5)
|
|
3541
|
+
* addOptions(Option.some(2), Option.none()) // => Option.none()
|
|
3822
3542
|
* ```
|
|
3823
3543
|
*
|
|
3824
3544
|
* @see {@link zipWith} for a non-lifted variant
|
|
@@ -3848,16 +3568,13 @@ export const lift2 = <A, B, C>(f: (a: A, b: B) => C): {
|
|
|
3848
3568
|
*
|
|
3849
3569
|
* **Example** (Validating positive numbers)
|
|
3850
3570
|
*
|
|
3851
|
-
* ```ts
|
|
3571
|
+
* ```ts import.meta.vitest
|
|
3852
3572
|
* import { Option } from "effect"
|
|
3853
3573
|
*
|
|
3854
3574
|
* const parsePositive = Option.liftPredicate((n: number) => n > 0)
|
|
3855
3575
|
*
|
|
3856
|
-
*
|
|
3857
|
-
* //
|
|
3858
|
-
*
|
|
3859
|
-
* console.log(parsePositive(-1))
|
|
3860
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3576
|
+
* parsePositive(1) // => Option.some(1)
|
|
3577
|
+
* parsePositive(-1) // => Option.none()
|
|
3861
3578
|
* ```
|
|
3862
3579
|
*
|
|
3863
3580
|
* @see {@link filter} to apply a predicate to an existing `Option`
|
|
@@ -3885,16 +3602,13 @@ export const liftPredicate: { // Note: I intentionally avoid using the NoInfer p
|
|
|
3885
3602
|
*
|
|
3886
3603
|
* **Example** (Validating positive numbers)
|
|
3887
3604
|
*
|
|
3888
|
-
* ```ts
|
|
3605
|
+
* ```ts import.meta.vitest
|
|
3889
3606
|
* import { Option } from "effect"
|
|
3890
3607
|
*
|
|
3891
3608
|
* const parsePositive = Option.liftPredicate((n: number) => n > 0)
|
|
3892
3609
|
*
|
|
3893
|
-
*
|
|
3894
|
-
* //
|
|
3895
|
-
*
|
|
3896
|
-
* console.log(parsePositive(-1))
|
|
3897
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3610
|
+
* parsePositive(1) // => Option.some(1)
|
|
3611
|
+
* parsePositive(-1) // => Option.none()
|
|
3898
3612
|
* ```
|
|
3899
3613
|
*
|
|
3900
3614
|
* @see {@link filter} to apply a predicate to an existing `Option`
|
|
@@ -3921,16 +3635,13 @@ export const liftPredicate: { // Note: I intentionally avoid using the NoInfer p
|
|
|
3921
3635
|
*
|
|
3922
3636
|
* **Example** (Validating positive numbers)
|
|
3923
3637
|
*
|
|
3924
|
-
* ```ts
|
|
3638
|
+
* ```ts import.meta.vitest
|
|
3925
3639
|
* import { Option } from "effect"
|
|
3926
3640
|
*
|
|
3927
3641
|
* const parsePositive = Option.liftPredicate((n: number) => n > 0)
|
|
3928
3642
|
*
|
|
3929
|
-
*
|
|
3930
|
-
* //
|
|
3931
|
-
*
|
|
3932
|
-
* console.log(parsePositive(-1))
|
|
3933
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3643
|
+
* parsePositive(1) // => Option.some(1)
|
|
3644
|
+
* parsePositive(-1) // => Option.none()
|
|
3934
3645
|
* ```
|
|
3935
3646
|
*
|
|
3936
3647
|
* @see {@link filter} to apply a predicate to an existing `Option`
|
|
@@ -3957,16 +3668,13 @@ export const liftPredicate: { // Note: I intentionally avoid using the NoInfer p
|
|
|
3957
3668
|
*
|
|
3958
3669
|
* **Example** (Validating positive numbers)
|
|
3959
3670
|
*
|
|
3960
|
-
* ```ts
|
|
3671
|
+
* ```ts import.meta.vitest
|
|
3961
3672
|
* import { Option } from "effect"
|
|
3962
3673
|
*
|
|
3963
3674
|
* const parsePositive = Option.liftPredicate((n: number) => n > 0)
|
|
3964
3675
|
*
|
|
3965
|
-
*
|
|
3966
|
-
* //
|
|
3967
|
-
*
|
|
3968
|
-
* console.log(parsePositive(-1))
|
|
3969
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
3676
|
+
* parsePositive(1) // => Option.some(1)
|
|
3677
|
+
* parsePositive(-1) // => Option.none()
|
|
3970
3678
|
* ```
|
|
3971
3679
|
*
|
|
3972
3680
|
* @see {@link filter} to apply a predicate to an existing `Option`
|
|
@@ -3997,24 +3705,19 @@ export const liftPredicate: { // Note: I intentionally avoid using the NoInfer p
|
|
|
3997
3705
|
*
|
|
3998
3706
|
* **Example** (Checking with custom equivalence)
|
|
3999
3707
|
*
|
|
4000
|
-
* ```ts
|
|
3708
|
+
* ```ts import.meta.vitest
|
|
4001
3709
|
* import { Equivalence, Option } from "effect"
|
|
4002
3710
|
*
|
|
4003
3711
|
* const check = Option.containsWith(Equivalence.strictEqual<number>())
|
|
4004
3712
|
*
|
|
4005
|
-
*
|
|
4006
|
-
* //
|
|
4007
|
-
*
|
|
4008
|
-
* console.log(Option.some(1).pipe(check(2)))
|
|
4009
|
-
* // Output: false
|
|
4010
|
-
*
|
|
4011
|
-
* console.log(Option.none().pipe(check(2)))
|
|
4012
|
-
* // Output: false
|
|
3713
|
+
* Option.some(2).pipe(check(2)) // => true
|
|
3714
|
+
* Option.some(1).pipe(check(2)) // => false
|
|
3715
|
+
* Option.none().pipe(check(2)) // => false
|
|
4013
3716
|
* ```
|
|
4014
3717
|
*
|
|
4015
3718
|
* @see {@link contains} for a version using default equality
|
|
4016
3719
|
*
|
|
4017
|
-
* @category
|
|
3720
|
+
* @category predicates
|
|
4018
3721
|
* @since 2.0.0
|
|
4019
3722
|
*/
|
|
4020
3723
|
export const containsWith = <A>(isEquivalent: (self: A, that: A) => boolean): {
|
|
@@ -4038,23 +3741,18 @@ export const containsWith = <A>(isEquivalent: (self: A, that: A) => boolean): {
|
|
|
4038
3741
|
*
|
|
4039
3742
|
* **Example** (Checking containment)
|
|
4040
3743
|
*
|
|
4041
|
-
* ```ts
|
|
3744
|
+
* ```ts import.meta.vitest
|
|
4042
3745
|
* import { Option } from "effect"
|
|
4043
3746
|
*
|
|
4044
|
-
*
|
|
4045
|
-
* //
|
|
4046
|
-
*
|
|
4047
|
-
* console.log(Option.some(1).pipe(Option.contains(2)))
|
|
4048
|
-
* // Output: false
|
|
4049
|
-
*
|
|
4050
|
-
* console.log(Option.none().pipe(Option.contains(2)))
|
|
4051
|
-
* // Output: false
|
|
3747
|
+
* Option.some(2).pipe(Option.contains(2)) // => true
|
|
3748
|
+
* Option.some(1).pipe(Option.contains(2)) // => false
|
|
3749
|
+
* Option.none().pipe(Option.contains(2)) // => false
|
|
4052
3750
|
* ```
|
|
4053
3751
|
*
|
|
4054
3752
|
* @see {@link containsWith} for custom equality
|
|
4055
3753
|
* @see {@link exists} to test with a predicate
|
|
4056
3754
|
*
|
|
4057
|
-
* @category
|
|
3755
|
+
* @category predicates
|
|
4058
3756
|
* @since 2.0.0
|
|
4059
3757
|
*/
|
|
4060
3758
|
export const contains: {
|
|
@@ -4074,23 +3772,18 @@ export const contains: {
|
|
|
4074
3772
|
*
|
|
4075
3773
|
* **Example** (Checking containment)
|
|
4076
3774
|
*
|
|
4077
|
-
* ```ts
|
|
3775
|
+
* ```ts import.meta.vitest
|
|
4078
3776
|
* import { Option } from "effect"
|
|
4079
3777
|
*
|
|
4080
|
-
*
|
|
4081
|
-
* //
|
|
4082
|
-
*
|
|
4083
|
-
* console.log(Option.some(1).pipe(Option.contains(2)))
|
|
4084
|
-
* // Output: false
|
|
4085
|
-
*
|
|
4086
|
-
* console.log(Option.none().pipe(Option.contains(2)))
|
|
4087
|
-
* // Output: false
|
|
3778
|
+
* Option.some(2).pipe(Option.contains(2)) // => true
|
|
3779
|
+
* Option.some(1).pipe(Option.contains(2)) // => false
|
|
3780
|
+
* Option.none().pipe(Option.contains(2)) // => false
|
|
4088
3781
|
* ```
|
|
4089
3782
|
*
|
|
4090
3783
|
* @see {@link containsWith} for custom equality
|
|
4091
3784
|
* @see {@link exists} to test with a predicate
|
|
4092
3785
|
*
|
|
4093
|
-
* @category
|
|
3786
|
+
* @category predicates
|
|
4094
3787
|
* @since 2.0.0
|
|
4095
3788
|
*/
|
|
4096
3789
|
<A>(a: A): (self: Option<A>) => boolean
|
|
@@ -4110,23 +3803,18 @@ export const contains: {
|
|
|
4110
3803
|
*
|
|
4111
3804
|
* **Example** (Checking containment)
|
|
4112
3805
|
*
|
|
4113
|
-
* ```ts
|
|
3806
|
+
* ```ts import.meta.vitest
|
|
4114
3807
|
* import { Option } from "effect"
|
|
4115
3808
|
*
|
|
4116
|
-
*
|
|
4117
|
-
* //
|
|
4118
|
-
*
|
|
4119
|
-
* console.log(Option.some(1).pipe(Option.contains(2)))
|
|
4120
|
-
* // Output: false
|
|
4121
|
-
*
|
|
4122
|
-
* console.log(Option.none().pipe(Option.contains(2)))
|
|
4123
|
-
* // Output: false
|
|
3809
|
+
* Option.some(2).pipe(Option.contains(2)) // => true
|
|
3810
|
+
* Option.some(1).pipe(Option.contains(2)) // => false
|
|
3811
|
+
* Option.none().pipe(Option.contains(2)) // => false
|
|
4124
3812
|
* ```
|
|
4125
3813
|
*
|
|
4126
3814
|
* @see {@link containsWith} for custom equality
|
|
4127
3815
|
* @see {@link exists} to test with a predicate
|
|
4128
3816
|
*
|
|
4129
|
-
* @category
|
|
3817
|
+
* @category predicates
|
|
4130
3818
|
* @since 2.0.0
|
|
4131
3819
|
*/
|
|
4132
3820
|
<A>(self: Option<A>, a: A): boolean
|
|
@@ -4148,25 +3836,20 @@ export const contains: {
|
|
|
4148
3836
|
*
|
|
4149
3837
|
* **Example** (Testing a condition)
|
|
4150
3838
|
*
|
|
4151
|
-
* ```ts
|
|
3839
|
+
* ```ts import.meta.vitest
|
|
4152
3840
|
* import { Option } from "effect"
|
|
4153
3841
|
*
|
|
4154
3842
|
* const isEven = (n: number) => n % 2 === 0
|
|
4155
3843
|
*
|
|
4156
|
-
*
|
|
4157
|
-
* //
|
|
4158
|
-
*
|
|
4159
|
-
* console.log(Option.some(1).pipe(Option.exists(isEven)))
|
|
4160
|
-
* // Output: false
|
|
4161
|
-
*
|
|
4162
|
-
* console.log(Option.none().pipe(Option.exists(isEven)))
|
|
4163
|
-
* // Output: false
|
|
3844
|
+
* Option.some(2).pipe(Option.exists(isEven)) // => true
|
|
3845
|
+
* Option.some(1).pipe(Option.exists(isEven)) // => false
|
|
3846
|
+
* Option.none().pipe(Option.exists(isEven)) // => false
|
|
4164
3847
|
* ```
|
|
4165
3848
|
*
|
|
4166
3849
|
* @see {@link filter} to keep or discard based on a predicate
|
|
4167
3850
|
* @see {@link contains} to test for a specific value
|
|
4168
3851
|
*
|
|
4169
|
-
* @category
|
|
3852
|
+
* @category predicates
|
|
4170
3853
|
* @since 2.0.0
|
|
4171
3854
|
*/
|
|
4172
3855
|
export const exists: {
|
|
@@ -4186,25 +3869,20 @@ export const exists: {
|
|
|
4186
3869
|
*
|
|
4187
3870
|
* **Example** (Testing a condition)
|
|
4188
3871
|
*
|
|
4189
|
-
* ```ts
|
|
3872
|
+
* ```ts import.meta.vitest
|
|
4190
3873
|
* import { Option } from "effect"
|
|
4191
3874
|
*
|
|
4192
3875
|
* const isEven = (n: number) => n % 2 === 0
|
|
4193
3876
|
*
|
|
4194
|
-
*
|
|
4195
|
-
* //
|
|
4196
|
-
*
|
|
4197
|
-
* console.log(Option.some(1).pipe(Option.exists(isEven)))
|
|
4198
|
-
* // Output: false
|
|
4199
|
-
*
|
|
4200
|
-
* console.log(Option.none().pipe(Option.exists(isEven)))
|
|
4201
|
-
* // Output: false
|
|
3877
|
+
* Option.some(2).pipe(Option.exists(isEven)) // => true
|
|
3878
|
+
* Option.some(1).pipe(Option.exists(isEven)) // => false
|
|
3879
|
+
* Option.none().pipe(Option.exists(isEven)) // => false
|
|
4202
3880
|
* ```
|
|
4203
3881
|
*
|
|
4204
3882
|
* @see {@link filter} to keep or discard based on a predicate
|
|
4205
3883
|
* @see {@link contains} to test for a specific value
|
|
4206
3884
|
*
|
|
4207
|
-
* @category
|
|
3885
|
+
* @category predicates
|
|
4208
3886
|
* @since 2.0.0
|
|
4209
3887
|
*/
|
|
4210
3888
|
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>): (self: Option<A>) => self is Option<B>
|
|
@@ -4224,25 +3902,20 @@ export const exists: {
|
|
|
4224
3902
|
*
|
|
4225
3903
|
* **Example** (Testing a condition)
|
|
4226
3904
|
*
|
|
4227
|
-
* ```ts
|
|
3905
|
+
* ```ts import.meta.vitest
|
|
4228
3906
|
* import { Option } from "effect"
|
|
4229
3907
|
*
|
|
4230
3908
|
* const isEven = (n: number) => n % 2 === 0
|
|
4231
3909
|
*
|
|
4232
|
-
*
|
|
4233
|
-
* //
|
|
4234
|
-
*
|
|
4235
|
-
* console.log(Option.some(1).pipe(Option.exists(isEven)))
|
|
4236
|
-
* // Output: false
|
|
4237
|
-
*
|
|
4238
|
-
* console.log(Option.none().pipe(Option.exists(isEven)))
|
|
4239
|
-
* // Output: false
|
|
3910
|
+
* Option.some(2).pipe(Option.exists(isEven)) // => true
|
|
3911
|
+
* Option.some(1).pipe(Option.exists(isEven)) // => false
|
|
3912
|
+
* Option.none().pipe(Option.exists(isEven)) // => false
|
|
4240
3913
|
* ```
|
|
4241
3914
|
*
|
|
4242
3915
|
* @see {@link filter} to keep or discard based on a predicate
|
|
4243
3916
|
* @see {@link contains} to test for a specific value
|
|
4244
3917
|
*
|
|
4245
|
-
* @category
|
|
3918
|
+
* @category predicates
|
|
4246
3919
|
* @since 2.0.0
|
|
4247
3920
|
*/
|
|
4248
3921
|
<A>(predicate: Predicate<NoInfer<A>>): (self: Option<A>) => boolean
|
|
@@ -4262,25 +3935,20 @@ export const exists: {
|
|
|
4262
3935
|
*
|
|
4263
3936
|
* **Example** (Testing a condition)
|
|
4264
3937
|
*
|
|
4265
|
-
* ```ts
|
|
3938
|
+
* ```ts import.meta.vitest
|
|
4266
3939
|
* import { Option } from "effect"
|
|
4267
3940
|
*
|
|
4268
3941
|
* const isEven = (n: number) => n % 2 === 0
|
|
4269
3942
|
*
|
|
4270
|
-
*
|
|
4271
|
-
* //
|
|
4272
|
-
*
|
|
4273
|
-
* console.log(Option.some(1).pipe(Option.exists(isEven)))
|
|
4274
|
-
* // Output: false
|
|
4275
|
-
*
|
|
4276
|
-
* console.log(Option.none().pipe(Option.exists(isEven)))
|
|
4277
|
-
* // Output: false
|
|
3943
|
+
* Option.some(2).pipe(Option.exists(isEven)) // => true
|
|
3944
|
+
* Option.some(1).pipe(Option.exists(isEven)) // => false
|
|
3945
|
+
* Option.none().pipe(Option.exists(isEven)) // => false
|
|
4278
3946
|
* ```
|
|
4279
3947
|
*
|
|
4280
3948
|
* @see {@link filter} to keep or discard based on a predicate
|
|
4281
3949
|
* @see {@link contains} to test for a specific value
|
|
4282
3950
|
*
|
|
4283
|
-
* @category
|
|
3951
|
+
* @category predicates
|
|
4284
3952
|
* @since 2.0.0
|
|
4285
3953
|
*/
|
|
4286
3954
|
<A, B extends A>(self: Option<A>, refinement: Refinement<A, B>): self is Option<B>
|
|
@@ -4300,25 +3968,20 @@ export const exists: {
|
|
|
4300
3968
|
*
|
|
4301
3969
|
* **Example** (Testing a condition)
|
|
4302
3970
|
*
|
|
4303
|
-
* ```ts
|
|
3971
|
+
* ```ts import.meta.vitest
|
|
4304
3972
|
* import { Option } from "effect"
|
|
4305
3973
|
*
|
|
4306
3974
|
* const isEven = (n: number) => n % 2 === 0
|
|
4307
3975
|
*
|
|
4308
|
-
*
|
|
4309
|
-
* //
|
|
4310
|
-
*
|
|
4311
|
-
* console.log(Option.some(1).pipe(Option.exists(isEven)))
|
|
4312
|
-
* // Output: false
|
|
4313
|
-
*
|
|
4314
|
-
* console.log(Option.none().pipe(Option.exists(isEven)))
|
|
4315
|
-
* // Output: false
|
|
3976
|
+
* Option.some(2).pipe(Option.exists(isEven)) // => true
|
|
3977
|
+
* Option.some(1).pipe(Option.exists(isEven)) // => false
|
|
3978
|
+
* Option.none().pipe(Option.exists(isEven)) // => false
|
|
4316
3979
|
* ```
|
|
4317
3980
|
*
|
|
4318
3981
|
* @see {@link filter} to keep or discard based on a predicate
|
|
4319
3982
|
* @see {@link contains} to test for a specific value
|
|
4320
3983
|
*
|
|
4321
|
-
* @category
|
|
3984
|
+
* @category predicates
|
|
4322
3985
|
* @since 2.0.0
|
|
4323
3986
|
*/
|
|
4324
3987
|
<A>(self: Option<A>, predicate: Predicate<A>): boolean
|
|
@@ -4343,24 +4006,22 @@ export const exists: {
|
|
|
4343
4006
|
*
|
|
4344
4007
|
* **Example** (Starting do notation)
|
|
4345
4008
|
*
|
|
4346
|
-
* ```ts
|
|
4009
|
+
* ```ts import.meta.vitest
|
|
4347
4010
|
* import { Option, pipe } from "effect"
|
|
4348
|
-
* import * as assert from "node:assert"
|
|
4349
4011
|
*
|
|
4350
|
-
*
|
|
4012
|
+
* pipe(
|
|
4351
4013
|
* Option.some(2),
|
|
4352
4014
|
* Option.bindTo("x"),
|
|
4353
4015
|
* Option.bind("y", () => Option.some(3)),
|
|
4354
4016
|
* Option.let("sum", ({ x, y }) => x + y)
|
|
4355
|
-
* )
|
|
4356
|
-
* assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
|
|
4017
|
+
* ) // => Option.some({ x: 2, y: 3, sum: 5 })
|
|
4357
4018
|
* ```
|
|
4358
4019
|
*
|
|
4359
4020
|
* @see {@link Do} for starting with an empty record
|
|
4360
4021
|
* @see {@link bind} to add `Option` values
|
|
4361
4022
|
* @see {@link let_ let} to add plain values
|
|
4362
4023
|
*
|
|
4363
|
-
* @category
|
|
4024
|
+
* @category mapping
|
|
4364
4025
|
* @since 2.0.0
|
|
4365
4026
|
*/
|
|
4366
4027
|
export const bindTo: {
|
|
@@ -4379,24 +4040,22 @@ export const bindTo: {
|
|
|
4379
4040
|
*
|
|
4380
4041
|
* **Example** (Starting do notation)
|
|
4381
4042
|
*
|
|
4382
|
-
* ```ts
|
|
4043
|
+
* ```ts import.meta.vitest
|
|
4383
4044
|
* import { Option, pipe } from "effect"
|
|
4384
|
-
* import * as assert from "node:assert"
|
|
4385
4045
|
*
|
|
4386
|
-
*
|
|
4046
|
+
* pipe(
|
|
4387
4047
|
* Option.some(2),
|
|
4388
4048
|
* Option.bindTo("x"),
|
|
4389
4049
|
* Option.bind("y", () => Option.some(3)),
|
|
4390
4050
|
* Option.let("sum", ({ x, y }) => x + y)
|
|
4391
|
-
* )
|
|
4392
|
-
* assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
|
|
4051
|
+
* ) // => Option.some({ x: 2, y: 3, sum: 5 })
|
|
4393
4052
|
* ```
|
|
4394
4053
|
*
|
|
4395
4054
|
* @see {@link Do} for starting with an empty record
|
|
4396
4055
|
* @see {@link bind} to add `Option` values
|
|
4397
4056
|
* @see {@link let_ let} to add plain values
|
|
4398
4057
|
*
|
|
4399
|
-
* @category
|
|
4058
|
+
* @category mapping
|
|
4400
4059
|
* @since 2.0.0
|
|
4401
4060
|
*/
|
|
4402
4061
|
<N extends string>(name: N): <A>(self: Option<A>) => Option<{ [K in N]: A }>
|
|
@@ -4415,24 +4074,22 @@ export const bindTo: {
|
|
|
4415
4074
|
*
|
|
4416
4075
|
* **Example** (Starting do notation)
|
|
4417
4076
|
*
|
|
4418
|
-
* ```ts
|
|
4077
|
+
* ```ts import.meta.vitest
|
|
4419
4078
|
* import { Option, pipe } from "effect"
|
|
4420
|
-
* import * as assert from "node:assert"
|
|
4421
4079
|
*
|
|
4422
|
-
*
|
|
4080
|
+
* pipe(
|
|
4423
4081
|
* Option.some(2),
|
|
4424
4082
|
* Option.bindTo("x"),
|
|
4425
4083
|
* Option.bind("y", () => Option.some(3)),
|
|
4426
4084
|
* Option.let("sum", ({ x, y }) => x + y)
|
|
4427
|
-
* )
|
|
4428
|
-
* assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
|
|
4085
|
+
* ) // => Option.some({ x: 2, y: 3, sum: 5 })
|
|
4429
4086
|
* ```
|
|
4430
4087
|
*
|
|
4431
4088
|
* @see {@link Do} for starting with an empty record
|
|
4432
4089
|
* @see {@link bind} to add `Option` values
|
|
4433
4090
|
* @see {@link let_ let} to add plain values
|
|
4434
4091
|
*
|
|
4435
|
-
* @category
|
|
4092
|
+
* @category mapping
|
|
4436
4093
|
* @since 2.0.0
|
|
4437
4094
|
*/
|
|
4438
4095
|
<A, N extends string>(self: Option<A>, name: N): Option<{ [K in N]: A }>
|
|
@@ -4461,24 +4118,22 @@ export {
|
|
|
4461
4118
|
*
|
|
4462
4119
|
* **Example** (Adding a computed value)
|
|
4463
4120
|
*
|
|
4464
|
-
* ```ts
|
|
4121
|
+
* ```ts import.meta.vitest
|
|
4465
4122
|
* import { Option, pipe } from "effect"
|
|
4466
|
-
* import * as assert from "node:assert"
|
|
4467
4123
|
*
|
|
4468
|
-
*
|
|
4124
|
+
* pipe(
|
|
4469
4125
|
* Option.Do,
|
|
4470
4126
|
* Option.bind("x", () => Option.some(2)),
|
|
4471
4127
|
* Option.bind("y", () => Option.some(3)),
|
|
4472
4128
|
* Option.let("sum", ({ x, y }) => x + y)
|
|
4473
|
-
* )
|
|
4474
|
-
* assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
|
|
4129
|
+
* ) // => Option.some({ x: 2, y: 3, sum: 5 })
|
|
4475
4130
|
* ```
|
|
4476
4131
|
*
|
|
4477
4132
|
* @see {@link Do} for starting the chain
|
|
4478
4133
|
* @see {@link bind} to add `Option` values
|
|
4479
4134
|
* @see {@link bindTo} to start by naming an existing `Option`
|
|
4480
4135
|
*
|
|
4481
|
-
* @category
|
|
4136
|
+
* @category mapping
|
|
4482
4137
|
* @since 2.0.0
|
|
4483
4138
|
*/
|
|
4484
4139
|
let_ as let
|
|
@@ -4494,25 +4149,23 @@ export {
|
|
|
4494
4149
|
*
|
|
4495
4150
|
* **Example** (Binding Option values)
|
|
4496
4151
|
*
|
|
4497
|
-
* ```ts
|
|
4152
|
+
* ```ts import.meta.vitest
|
|
4498
4153
|
* import { Option, pipe } from "effect"
|
|
4499
|
-
* import * as assert from "node:assert"
|
|
4500
4154
|
*
|
|
4501
|
-
*
|
|
4155
|
+
* pipe(
|
|
4502
4156
|
* Option.Do,
|
|
4503
4157
|
* Option.bind("x", () => Option.some(2)),
|
|
4504
4158
|
* Option.bind("y", () => Option.some(3)),
|
|
4505
4159
|
* Option.let("sum", ({ x, y }) => x + y),
|
|
4506
4160
|
* Option.filter(({ x, y }) => x * y > 5)
|
|
4507
|
-
* )
|
|
4508
|
-
* assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
|
|
4161
|
+
* ) // => Option.some({ x: 2, y: 3, sum: 5 })
|
|
4509
4162
|
* ```
|
|
4510
4163
|
*
|
|
4511
4164
|
* @see {@link Do} for starting the chain
|
|
4512
4165
|
* @see {@link let_ let} to add plain values
|
|
4513
4166
|
* @see {@link bindTo} to start by naming an existing `Option`
|
|
4514
4167
|
*
|
|
4515
|
-
* @category
|
|
4168
|
+
* @category sequencing
|
|
4516
4169
|
* @since 2.0.0
|
|
4517
4170
|
*/
|
|
4518
4171
|
export const bind: {
|
|
@@ -4526,25 +4179,23 @@ export const bind: {
|
|
|
4526
4179
|
*
|
|
4527
4180
|
* **Example** (Binding Option values)
|
|
4528
4181
|
*
|
|
4529
|
-
* ```ts
|
|
4182
|
+
* ```ts import.meta.vitest
|
|
4530
4183
|
* import { Option, pipe } from "effect"
|
|
4531
|
-
* import * as assert from "node:assert"
|
|
4532
4184
|
*
|
|
4533
|
-
*
|
|
4185
|
+
* pipe(
|
|
4534
4186
|
* Option.Do,
|
|
4535
4187
|
* Option.bind("x", () => Option.some(2)),
|
|
4536
4188
|
* Option.bind("y", () => Option.some(3)),
|
|
4537
4189
|
* Option.let("sum", ({ x, y }) => x + y),
|
|
4538
4190
|
* Option.filter(({ x, y }) => x * y > 5)
|
|
4539
|
-
* )
|
|
4540
|
-
* assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
|
|
4191
|
+
* ) // => Option.some({ x: 2, y: 3, sum: 5 })
|
|
4541
4192
|
* ```
|
|
4542
4193
|
*
|
|
4543
4194
|
* @see {@link Do} for starting the chain
|
|
4544
4195
|
* @see {@link let_ let} to add plain values
|
|
4545
4196
|
* @see {@link bindTo} to start by naming an existing `Option`
|
|
4546
4197
|
*
|
|
4547
|
-
* @category
|
|
4198
|
+
* @category sequencing
|
|
4548
4199
|
* @since 2.0.0
|
|
4549
4200
|
*/
|
|
4550
4201
|
<N extends string, A extends object, B>(name: Exclude<N, keyof A>, f: (a: NoInfer<A>) => Option<B>): (self: Option<A>) => Option<{ [K in N | keyof A]: K extends keyof A ? A[K] : B }>
|
|
@@ -4558,25 +4209,23 @@ export const bind: {
|
|
|
4558
4209
|
*
|
|
4559
4210
|
* **Example** (Binding Option values)
|
|
4560
4211
|
*
|
|
4561
|
-
* ```ts
|
|
4212
|
+
* ```ts import.meta.vitest
|
|
4562
4213
|
* import { Option, pipe } from "effect"
|
|
4563
|
-
* import * as assert from "node:assert"
|
|
4564
4214
|
*
|
|
4565
|
-
*
|
|
4215
|
+
* pipe(
|
|
4566
4216
|
* Option.Do,
|
|
4567
4217
|
* Option.bind("x", () => Option.some(2)),
|
|
4568
4218
|
* Option.bind("y", () => Option.some(3)),
|
|
4569
4219
|
* Option.let("sum", ({ x, y }) => x + y),
|
|
4570
4220
|
* Option.filter(({ x, y }) => x * y > 5)
|
|
4571
|
-
* )
|
|
4572
|
-
* assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
|
|
4221
|
+
* ) // => Option.some({ x: 2, y: 3, sum: 5 })
|
|
4573
4222
|
* ```
|
|
4574
4223
|
*
|
|
4575
4224
|
* @see {@link Do} for starting the chain
|
|
4576
4225
|
* @see {@link let_ let} to add plain values
|
|
4577
4226
|
* @see {@link bindTo} to start by naming an existing `Option`
|
|
4578
4227
|
*
|
|
4579
|
-
* @category
|
|
4228
|
+
* @category sequencing
|
|
4580
4229
|
* @since 2.0.0
|
|
4581
4230
|
*/
|
|
4582
4231
|
<A extends object, N extends string, B>(
|
|
@@ -4597,25 +4246,23 @@ export const bind: {
|
|
|
4597
4246
|
*
|
|
4598
4247
|
* **Example** (Building Option pipelines with do notation)
|
|
4599
4248
|
*
|
|
4600
|
-
* ```ts
|
|
4249
|
+
* ```ts import.meta.vitest
|
|
4601
4250
|
* import { Option, pipe } from "effect"
|
|
4602
|
-
* import * as assert from "node:assert"
|
|
4603
4251
|
*
|
|
4604
|
-
*
|
|
4252
|
+
* pipe(
|
|
4605
4253
|
* Option.Do,
|
|
4606
4254
|
* Option.bind("x", () => Option.some(2)),
|
|
4607
4255
|
* Option.bind("y", () => Option.some(3)),
|
|
4608
4256
|
* Option.let("sum", ({ x, y }) => x + y),
|
|
4609
4257
|
* Option.filter(({ x, y }) => x * y > 5)
|
|
4610
|
-
* )
|
|
4611
|
-
* assert.deepStrictEqual(result, Option.some({ x: 2, y: 3, sum: 5 }))
|
|
4258
|
+
* ) // => Option.some({ x: 2, y: 3, sum: 5 })
|
|
4612
4259
|
* ```
|
|
4613
4260
|
*
|
|
4614
4261
|
* @see {@link bind} to add `Option` values
|
|
4615
4262
|
* @see {@link let_ let} to add plain values
|
|
4616
4263
|
* @see {@link bindTo} to start by naming an existing `Option`
|
|
4617
4264
|
*
|
|
4618
|
-
* @category
|
|
4265
|
+
* @category constructors
|
|
4619
4266
|
* @since 2.0.0
|
|
4620
4267
|
*/
|
|
4621
4268
|
export const Do: Option<{}> = some({})
|
|
@@ -4637,21 +4284,17 @@ export const Do: Option<{}> = some({})
|
|
|
4637
4284
|
*
|
|
4638
4285
|
* **Example** (Sequencing Option computations with generator syntax)
|
|
4639
4286
|
*
|
|
4640
|
-
* ```ts
|
|
4287
|
+
* ```ts import.meta.vitest
|
|
4641
4288
|
* import { Option } from "effect"
|
|
4642
4289
|
*
|
|
4643
4290
|
* const maybeName: Option.Option<string> = Option.some("John")
|
|
4644
4291
|
* const maybeAge: Option.Option<number> = Option.some(25)
|
|
4645
4292
|
*
|
|
4646
|
-
*
|
|
4293
|
+
* Option.gen(function*() {
|
|
4647
4294
|
* const name = (yield* maybeName).toUpperCase()
|
|
4648
4295
|
* const age = yield* maybeAge
|
|
4649
4296
|
* return { name, age }
|
|
4650
|
-
* })
|
|
4651
|
-
*
|
|
4652
|
-
* console.log(person)
|
|
4653
|
-
* // Output:
|
|
4654
|
-
* // { _id: 'Option', _tag: 'Some', value: { name: 'JOHN', age: 25 } }
|
|
4297
|
+
* }) // => Option.some({ name: "JOHN", age: 25 })
|
|
4655
4298
|
* ```
|
|
4656
4299
|
*
|
|
4657
4300
|
* @see {@link Do} / {@link bind} for the do notation alternative
|
|
@@ -4692,17 +4335,16 @@ export const gen: Gen.Gen<OptionTypeLambda> = (...args) => {
|
|
|
4692
4335
|
*
|
|
4693
4336
|
* **Example** (Reducing with first-wins semantics)
|
|
4694
4337
|
*
|
|
4695
|
-
* ```ts
|
|
4338
|
+
* ```ts import.meta.vitest
|
|
4696
4339
|
* import { Number, Option } from "effect"
|
|
4697
4340
|
*
|
|
4698
4341
|
* const reducer = Option.makeReducer(Number.ReducerSum)
|
|
4699
|
-
*
|
|
4700
|
-
* // Output: { _id: 'Option', _tag: 'Some', value: 3 }
|
|
4342
|
+
* reducer.combineAll([Option.some(1), Option.none(), Option.some(2)]) // => Option.some(3)
|
|
4701
4343
|
* ```
|
|
4702
4344
|
*
|
|
4703
4345
|
* @see {@link makeReducerFailFast} for fail-fast semantics
|
|
4704
4346
|
*
|
|
4705
|
-
* @category
|
|
4347
|
+
* @category constructors
|
|
4706
4348
|
* @since 4.0.0
|
|
4707
4349
|
*/
|
|
4708
4350
|
export function makeReducer<A>(combiner: Combiner.Combiner<A>): Reducer.Reducer<Option<A>> {
|
|
@@ -4730,20 +4372,17 @@ export function makeReducer<A>(combiner: Combiner.Combiner<A>): Reducer.Reducer<
|
|
|
4730
4372
|
*
|
|
4731
4373
|
* **Example** (Fail-fast combining)
|
|
4732
4374
|
*
|
|
4733
|
-
* ```ts
|
|
4375
|
+
* ```ts import.meta.vitest
|
|
4734
4376
|
* import { Number, Option } from "effect"
|
|
4735
4377
|
*
|
|
4736
4378
|
* const combiner = Option.makeCombinerFailFast(Number.ReducerSum)
|
|
4737
|
-
*
|
|
4738
|
-
*
|
|
4739
|
-
*
|
|
4740
|
-
* console.log(combiner.combine(Option.some(1), Option.none()))
|
|
4741
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
4379
|
+
* combiner.combine(Option.some(1), Option.some(2)) // => Option.some(3)
|
|
4380
|
+
* combiner.combine(Option.some(1), Option.none()) // => Option.none()
|
|
4742
4381
|
* ```
|
|
4743
4382
|
*
|
|
4744
4383
|
* @see {@link makeReducerFailFast} to get a full `Reducer`
|
|
4745
4384
|
*
|
|
4746
|
-
* @category
|
|
4385
|
+
* @category constructors
|
|
4747
4386
|
* @since 4.0.0
|
|
4748
4387
|
*/
|
|
4749
4388
|
export function makeCombinerFailFast<A>(combiner: Combiner.Combiner<A>): Combiner.Combiner<Option<A>> {
|
|
@@ -4770,21 +4409,18 @@ export function makeCombinerFailFast<A>(combiner: Combiner.Combiner<A>): Combine
|
|
|
4770
4409
|
*
|
|
4771
4410
|
* **Example** (Fail-fast reducing)
|
|
4772
4411
|
*
|
|
4773
|
-
* ```ts
|
|
4412
|
+
* ```ts import.meta.vitest
|
|
4774
4413
|
* import { Number, Option } from "effect"
|
|
4775
4414
|
*
|
|
4776
4415
|
* const reducer = Option.makeReducerFailFast(Number.ReducerSum)
|
|
4777
|
-
*
|
|
4778
|
-
*
|
|
4779
|
-
*
|
|
4780
|
-
* console.log(reducer.combineAll([Option.some(1), Option.none()]))
|
|
4781
|
-
* // Output: { _id: 'Option', _tag: 'None' }
|
|
4416
|
+
* reducer.combineAll([Option.some(1), Option.some(2)]) // => Option.some(3)
|
|
4417
|
+
* reducer.combineAll([Option.some(1), Option.none()]) // => Option.none()
|
|
4782
4418
|
* ```
|
|
4783
4419
|
*
|
|
4784
4420
|
* @see {@link makeCombinerFailFast} for just the combiner
|
|
4785
4421
|
* @see {@link makeReducer} for non-fail-fast semantics
|
|
4786
4422
|
*
|
|
4787
|
-
* @category
|
|
4423
|
+
* @category constructors
|
|
4788
4424
|
* @since 4.0.0
|
|
4789
4425
|
*/
|
|
4790
4426
|
export function makeReducerFailFast<A>(reducer: Reducer.Reducer<A>): Reducer.Reducer<Option<A>> {
|