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