effect 4.0.0-beta.101 → 4.0.0-beta.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Array.d.ts +971 -1037
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +462 -412
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +433 -756
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +200 -325
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +207 -267
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +107 -135
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +146 -188
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +64 -84
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +405 -254
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +166 -101
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +167 -277
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +122 -176
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +729 -768
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +541 -449
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +834 -1173
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +326 -439
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +180 -49
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +96 -31
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +20 -33
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +18 -30
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +226 -174
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +339 -267
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +194 -68
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +122 -87
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +233 -33
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +232 -32
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +151 -274
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +171 -214
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +68 -77
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +57 -66
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +13 -15
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +9 -10
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +60 -80
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +18 -24
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +562 -660
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +307 -362
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +253 -256
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +104 -96
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +216 -308
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +132 -186
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2897 -3342
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1383 -1580
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +22 -40
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +22 -40
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +33 -37
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +29 -21
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +103 -105
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +77 -79
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +51 -27
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +50 -26
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +13 -55
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +7 -28
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +116 -192
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +82 -130
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +82 -146
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +48 -87
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +152 -105
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +109 -75
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +213 -168
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +114 -89
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +123 -81
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +85 -59
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +153 -264
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +42 -147
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +61 -33
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +26 -15
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +25 -33
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +48 -49
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +76 -145
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +40 -57
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +360 -714
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +168 -297
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +12 -6
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +47 -83
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +46 -68
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +319 -411
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +122 -166
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +1 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +177 -284
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +68 -109
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +12 -12
- package/dist/Inspectable.js +8 -8
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +620 -786
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +230 -307
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +11 -13
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +46 -103
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +8 -8
- package/dist/JsonPointer.js +8 -8
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +98 -44
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +300 -239
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +23 -35
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +16 -28
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +359 -260
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +195 -175
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +42 -29
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +31 -21
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +6 -2
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +6 -2
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +114 -214
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +41 -76
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +218 -467
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +207 -452
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +16 -5
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +10 -5
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +217 -252
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +150 -183
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +442 -993
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +202 -645
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +144 -173
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +68 -79
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +84 -89
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +44 -47
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +71 -370
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +59 -284
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +420 -243
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +209 -120
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +21 -14
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +15 -13
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +7 -137
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +5 -93
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +196 -233
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +90 -109
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +97 -189
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +190 -292
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +447 -812
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +213 -393
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +109 -109
- package/dist/Order.js +91 -91
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +20 -23
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +8 -9
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +1 -4
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +38 -41
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +3 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +6 -5
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +2 -2
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +4 -4
- package/dist/PlatformError.js +3 -3
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +4 -2
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +4 -2
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +200 -181
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +100 -108
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +7 -7
- package/dist/PrimaryKey.js +5 -5
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +425 -494
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +373 -362
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +24 -18
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +11 -9
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +200 -159
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +162 -132
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +49 -74
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +35 -54
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +121 -63
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +42 -21
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +24 -13
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +15 -9
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +361 -466
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +163 -216
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -2
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +7 -2
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +25 -25
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +19 -20
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +8 -15
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +6 -12
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +95 -165
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +75 -122
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +102 -213
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +102 -213
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +10 -14
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +10 -14
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +31 -21
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +25 -19
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +201 -90
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +87 -41
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +302 -470
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +135 -218
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +50 -75
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +39 -60
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +290 -1636
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +162 -803
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +5 -5
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +18 -6
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +1835 -1060
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2708 -1050
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +29 -52
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +537 -391
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaError.d.ts +7 -6
- package/dist/SchemaError.d.ts.map +1 -1
- package/dist/SchemaError.js +8 -7
- package/dist/SchemaError.js.map +1 -1
- package/dist/SchemaGetter.d.ts +230 -185
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +252 -209
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +62 -190
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +74 -266
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +2 -2
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +123 -86
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +398 -1513
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +290 -2854
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +116 -76
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +123 -88
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +123 -151
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +72 -92
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +3 -3
- package/dist/ScopedRef.js +2 -2
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +101 -13
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +78 -39
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +117 -107
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +107 -100
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +1 -1
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +2430 -2958
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1124 -1397
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +262 -308
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +184 -215
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +109 -114
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +46 -54
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +282 -250
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +104 -92
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +3 -3
- package/dist/Symbol.js +3 -3
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +2 -2
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +100 -54
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +41 -24
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +287 -679
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +109 -251
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +92 -127
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +42 -57
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +201 -121
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +85 -56
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +62 -46
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +30 -22
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +631 -779
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +268 -330
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +297 -236
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +130 -100
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +126 -95
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +74 -56
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +101 -88
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +87 -66
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +200 -180
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +160 -136
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +97 -66
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +67 -45
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +51 -32
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +23 -15
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +129 -95
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +85 -70
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +97 -70
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +44 -34
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +127 -70
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +45 -65
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +6 -9
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +23 -16
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +3 -7
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/internal/array.js.map +1 -1
- package/dist/internal/core.js +3 -2
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +4 -0
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/doNotation.js.map +1 -1
- package/dist/internal/effect.js +141 -61
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hashSet.js.map +1 -1
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/metric.js.map +1 -1
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/persistence.d.ts +2 -0
- package/dist/internal/persistence.d.ts.map +1 -0
- package/dist/internal/persistence.js +3 -0
- package/dist/internal/persistence.js.map +1 -0
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/record.d.ts +0 -3
- package/dist/internal/record.d.ts.map +1 -1
- package/dist/internal/record.js +10 -5
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/redacted.js.map +1 -1
- package/dist/internal/references.js +3 -4
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/result.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js +12 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/cause.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +745 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/fromRepresentation.d.ts +2 -0
- package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/fromRepresentation.js +245 -0
- package/dist/internal/schema/fromRepresentation.js.map +1 -0
- package/dist/internal/schema/parser.d.ts +14 -0
- package/dist/internal/schema/parser.d.ts.map +1 -0
- package/dist/internal/schema/parser.js +13 -0
- package/dist/internal/schema/parser.js.map +1 -0
- package/dist/internal/schema/schema.js +28 -40
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/{arbitrary.d.ts → toArbitrary.d.ts} +1 -1
- package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
- package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -9
- package/dist/internal/schema/toArbitrary.js.map +1 -0
- package/dist/internal/schema/toCodeDocument.d.ts +2 -0
- package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
- package/dist/internal/schema/toCodeDocument.js +438 -0
- package/dist/internal/schema/toCodeDocument.js.map +1 -0
- package/dist/internal/schema/toEquivalence.d.ts +2 -0
- package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
- package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
- package/dist/internal/schema/toEquivalence.js.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.js +508 -0
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/toRepresentation.d.ts +2 -0
- package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/toRepresentation.js +349 -0
- package/dist/internal/schema/toRepresentation.js.map +1 -0
- package/dist/internal/stackTraceLimit.js +3 -6
- package/dist/internal/stackTraceLimit.js.map +1 -1
- package/dist/internal/stream.js.map +1 -1
- package/dist/internal/tracer.js.map +1 -1
- package/dist/internal/trie.js +13 -9
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +8 -7
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +8 -7
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +57 -28
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +54 -19
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +32 -31
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +24 -22
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +29 -29
- package/dist/testing/TestSchema.js +25 -25
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +121 -144
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +99 -121
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +22 -7
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +87 -317
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +132 -97
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +55 -51
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +1 -1
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +32 -28
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +26 -21
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +111 -68
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +123 -81
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpProtocol.d.ts +30 -0
- package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/McpProtocol.js +20 -0
- package/dist/unstable/ai/McpProtocol.js.map +1 -0
- package/dist/unstable/ai/McpSchema.d.ts +316 -250
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +71 -63
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +71 -62
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +765 -245
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +8 -19
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +9 -20
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +33 -11
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +194 -378
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +112 -38
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +53 -17
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +47 -33
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +23 -18
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +46 -13
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +18 -7
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +14 -3
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +10 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +63 -44
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +59 -42
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +35 -9
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +32 -14
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +4 -0
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +4 -0
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js +15 -12
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
- package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
- package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
- package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
- package/dist/unstable/ai/internal/structured-output.js +315 -0
- package/dist/unstable/ai/internal/structured-output.js.map +1 -0
- package/dist/unstable/cli/Argument.d.ts +273 -69
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +111 -33
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliConfig.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +105 -74
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +98 -63
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +35 -54
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +26 -42
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +705 -107
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +252 -47
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +418 -138
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +197 -71
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +12 -4
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +292 -78
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +131 -49
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +370 -149
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +345 -137
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +23 -14
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +23 -14
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +3 -1
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +11 -4
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
- package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
- package/dist/unstable/cli/internal/config.d.ts +0 -48
- package/dist/unstable/cli/internal/config.d.ts.map +1 -1
- package/dist/unstable/cli/internal/config.js +8 -10
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/lexer.js +17 -7
- package/dist/unstable/cli/internal/lexer.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +2 -2
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
- package/dist/unstable/cluster/ClusterSchema.js +8 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +6 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -10
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +9 -9
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityId.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +4 -2
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/EntityType.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +5 -4
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +6 -4
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MachineId.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +9 -9
- package/dist/unstable/cluster/Message.js +6 -6
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
- package/dist/unstable/cluster/MessageStorage.js +5 -5
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +5 -5
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runner.js +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +1 -1
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +16 -16
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
- package/dist/unstable/cluster/RunnerStorage.js +1 -1
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +6 -6
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +19 -10
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js +1 -1
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +128 -26
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +13 -5
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +3 -3
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
- package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js +2 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/Singleton.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +1 -1
- package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +8 -8
- package/dist/unstable/cluster/Snowflake.js +8 -8
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +56 -25
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +127 -65
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +24 -12
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/hash.js.map +1 -1
- package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
- package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
- package/dist/unstable/cluster/internal/shardLock.js +4 -0
- package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +8 -5
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/devtools/index.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +6 -8
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +72 -8
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +58 -8
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +20 -20
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +16 -16
- package/dist/unstable/eventlog/EventJournal.js +14 -14
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +3 -3
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +18 -14
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogEncryption.js +2 -2
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +6 -6
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +9 -4
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
- package/dist/unstable/eventlog/EventLogRemote.js +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +45 -21
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +2 -2
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +2 -2
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +54 -40
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +1 -1
- package/dist/unstable/http/Etag.js +1 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +2 -2
- package/dist/unstable/http/Headers.js +10 -10
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +5 -3
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +11 -5
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +51 -44
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +46 -17
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +16 -0
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
- package/dist/unstable/http/HttpClientResponse.js +2 -2
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +6 -6
- package/dist/unstable/http/HttpEffect.js +3 -3
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +6 -9
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +6 -9
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +164 -39
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +76 -0
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +32 -0
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +88 -89
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +78 -79
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +13 -13
- package/dist/unstable/http/HttpServer.js +6 -6
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +2 -2
- package/dist/unstable/http/HttpServerError.js +2 -2
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +9 -8
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +10 -0
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +35 -7
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +6 -6
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +22 -20
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Template.js +1 -1
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +33 -63
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +14 -28
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +10 -18
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +26 -31
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/compression.d.ts +2 -0
- package/dist/unstable/http/internal/compression.d.ts.map +1 -0
- package/dist/unstable/http/internal/compression.js +155 -0
- package/dist/unstable/http/internal/compression.js.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +3 -3
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +16 -18
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
- package/dist/unstable/httpapi/HttpApiError.js +13 -13
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
- package/dist/unstable/httpapi/HttpApiGroup.js +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
- package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +50 -37
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/httpapi/index.js.map +1 -1
- package/dist/unstable/httpapi/internal/html.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +70 -1
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +84 -6
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +2 -2
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +11 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +5 -2
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +16 -7
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +21 -12
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +2 -2
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +10 -3
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
- package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +3 -0
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +22 -13
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +8 -8
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +2 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
- package/dist/unstable/persistence/PersistedQueue.js +6 -6
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +3 -3
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +91 -15
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +28 -17
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +26 -15
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +2 -2
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +3 -3
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/persistence/index.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +64 -21
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +14 -5
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +4 -2
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/process/index.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +14 -13
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +105 -19
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +44 -12
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +25 -4
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +4 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +1 -1
- package/dist/unstable/reactivity/Hydration.js +1 -1
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +35 -33
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +12 -12
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +14 -12
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
- package/dist/unstable/rpc/RpcGroup.js +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +6 -6
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
- package/dist/unstable/rpc/RpcMiddleware.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
- package/dist/unstable/rpc/RpcSchema.js +3 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +175 -96
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +13 -13
- package/dist/unstable/rpc/RpcServer.js +17 -13
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcTest.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +52 -50
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +35 -33
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +6 -7
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +15 -12
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +12 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +10 -5
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +2 -2
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlError.js +2 -2
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.js +2 -2
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +5 -5
- package/dist/unstable/sql/SqlResolver.js +2 -2
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +6 -6
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +22 -21
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +1 -1
- package/dist/unstable/workers/Transferable.js +1 -1
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +2 -2
- package/dist/unstable/workers/Worker.js +2 -2
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +7 -7
- package/dist/unstable/workers/WorkerError.js +6 -6
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
- package/dist/unstable/workers/WorkerRunner.js +1 -1
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workers/index.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +2 -2
- package/dist/unstable/workflow/Activity.js +2 -2
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +1 -1
- package/dist/unstable/workflow/DurableClock.js +1 -1
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
- package/dist/unstable/workflow/DurableDeferred.js +5 -5
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +22 -20
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +21 -21
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +13 -14
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +4 -2
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/dist/unstable/workflow/index.js.map +1 -1
- package/dist/unstable/workflow/internal/crypto.js.map +1 -1
- package/package.json +5 -6
- package/src/Array.ts +1068 -1070
- package/src/BigDecimal.ts +433 -756
- package/src/BigInt.ts +213 -269
- package/src/Boolean.ts +146 -188
- package/src/Cache.ts +409 -255
- package/src/Cause.ts +167 -277
- package/src/Channel.ts +923 -830
- package/src/ChannelSchema.ts +1 -1
- package/src/Chunk.ts +841 -1181
- package/src/Clock.ts +181 -49
- package/src/Combiner.ts +20 -33
- package/src/Config.ts +618 -334
- package/src/ConfigProvider.ts +221 -127
- package/src/Console.ts +289 -39
- package/src/Context.ts +319 -378
- package/src/Cron.ts +68 -77
- package/src/Crypto.ts +13 -15
- package/src/Data.ts +63 -82
- package/src/DateTime.ts +564 -660
- package/src/Deferred.ts +253 -256
- package/src/Duration.ts +216 -308
- package/src/Effect.ts +2958 -3390
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +49 -39
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +51 -27
- package/src/ExecutionPlan.ts +13 -55
- package/src/Exit.ts +116 -192
- package/src/Fiber.ts +81 -148
- package/src/FiberHandle.ts +155 -107
- package/src/FiberMap.ts +225 -174
- package/src/FiberSet.ts +124 -82
- package/src/FileSystem.ts +155 -263
- package/src/Filter.ts +61 -33
- package/src/Formatter.ts +54 -56
- package/src/Function.ts +76 -145
- package/src/Graph.ts +416 -770
- package/src/HKT.ts +12 -6
- package/src/Hash.ts +52 -83
- package/src/HashMap.ts +319 -411
- package/src/HashRing.ts +1 -0
- package/src/HashSet.ts +177 -284
- package/src/Inspectable.ts +12 -12
- package/src/Iterable.ts +622 -787
- package/src/JsonPatch.ts +60 -113
- package/src/JsonPointer.ts +8 -8
- package/src/JsonSchema.ts +405 -249
- package/src/Latch.ts +23 -35
- package/src/Layer.ts +359 -260
- package/src/LayerMap.ts +49 -29
- package/src/LayerRef.ts +6 -2
- package/src/LogLevel.ts +114 -214
- package/src/Logger.ts +347 -699
- package/src/ManagedRuntime.ts +20 -5
- package/src/Match.ts +217 -252
- package/src/Metric.ts +520 -1092
- package/src/MutableHashMap.ts +218 -255
- package/src/MutableHashSet.ts +84 -89
- package/src/MutableList.ts +73 -370
- package/src/MutableRef.ts +420 -243
- package/src/Newtype.ts +21 -14
- package/src/NonEmptyIterable.ts +7 -137
- package/src/Number.ts +196 -233
- package/src/Optic.ts +246 -385
- package/src/Option.ts +449 -813
- package/src/Order.ts +109 -109
- package/src/Ordering.ts +20 -23
- package/src/PartitionedSemaphore.ts +1 -4
- package/src/Path.ts +38 -41
- package/src/Pipeable.ts +6 -5
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +4 -2
- package/src/Predicate.ts +200 -181
- package/src/PrimaryKey.ts +7 -7
- package/src/PubSub.ts +526 -552
- package/src/Pull.ts +24 -18
- package/src/Queue.ts +200 -159
- package/src/Random.ts +49 -74
- package/src/RcMap.ts +121 -63
- package/src/RcRef.ts +24 -13
- package/src/Record.ts +387 -487
- package/src/Redactable.ts +10 -3
- package/src/Redacted.ts +25 -25
- package/src/Reducer.ts +8 -15
- package/src/Ref.ts +221 -361
- package/src/References.ts +102 -214
- package/src/RegExp.ts +10 -14
- package/src/Request.ts +36 -28
- package/src/RequestResolver.ts +202 -91
- package/src/Result.ts +314 -485
- package/src/Runtime.ts +50 -75
- package/src/Schedule.ts +308 -1734
- package/src/Scheduler.ts +20 -7
- package/src/Schema.ts +3156 -1634
- package/src/SchemaAST.ts +676 -489
- package/src/SchemaError.ts +8 -7
- package/src/SchemaGetter.ts +277 -218
- package/src/SchemaIssue.ts +90 -276
- package/src/SchemaParser.ts +179 -116
- package/src/SchemaRepresentation.ts +698 -3417
- package/src/SchemaTransformation.ts +132 -91
- package/src/Scope.ts +123 -151
- package/src/ScopedRef.ts +4 -4
- package/src/Semaphore.ts +157 -54
- package/src/Sink.ts +128 -113
- package/src/Stdio.ts +1 -1
- package/src/Stream.ts +2665 -3142
- package/src/String.ts +275 -312
- package/src/Struct.ts +114 -118
- package/src/SubscriptionRef.ts +284 -252
- package/src/Symbol.ts +3 -3
- package/src/Terminal.ts +2 -2
- package/src/Tracer.ts +102 -55
- package/src/Trie.ts +287 -679
- package/src/Tuple.ts +92 -127
- package/src/TxChunk.ts +201 -121
- package/src/TxDeferred.ts +62 -46
- package/src/TxHashMap.ts +645 -799
- package/src/TxHashSet.ts +443 -356
- package/src/TxPriorityQueue.ts +130 -98
- package/src/TxPubSub.ts +107 -80
- package/src/TxQueue.ts +214 -183
- package/src/TxReentrantLock.ts +97 -66
- package/src/TxRef.ts +51 -32
- package/src/TxSemaphore.ts +129 -95
- package/src/TxSubscriptionRef.ts +97 -70
- package/src/Types.ts +127 -70
- package/src/Unify.ts +45 -65
- package/src/Utils.ts +23 -16
- package/src/index.ts +0 -5
- package/src/internal/core.ts +5 -4
- package/src/internal/dateTime.ts +6 -0
- package/src/internal/effect.ts +160 -79
- package/src/internal/matcher.ts +1 -1
- package/src/internal/persistence.ts +2 -0
- package/src/internal/record.ts +11 -7
- package/src/internal/references.ts +3 -7
- package/src/internal/schema/annotations.ts +44 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +959 -0
- package/src/internal/schema/fromRepresentation.ts +339 -0
- package/src/internal/schema/parser.ts +22 -0
- package/src/internal/schema/schema.ts +45 -46
- package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +8 -10
- package/src/internal/schema/toCodeDocument.ts +572 -0
- package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
- package/src/internal/schema/toJsonSchemaDocument.ts +529 -0
- package/src/internal/schema/toRepresentation.ts +386 -0
- package/src/internal/stackTraceLimit.ts +3 -7
- package/src/internal/trie.ts +10 -11
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +73 -31
- package/src/testing/TestConsole.ts +32 -31
- package/src/testing/TestSchema.ts +29 -29
- package/src/unstable/ai/AiError.ts +100 -122
- package/src/unstable/ai/AnthropicStructuredOutput.ts +103 -334
- package/src/unstable/ai/Chat.ts +132 -97
- package/src/unstable/ai/EmbeddingModel.ts +1 -1
- package/src/unstable/ai/IdGenerator.ts +32 -28
- package/src/unstable/ai/LanguageModel.ts +137 -95
- package/src/unstable/ai/McpProtocol.ts +48 -0
- package/src/unstable/ai/McpSchema.ts +75 -65
- package/src/unstable/ai/McpServer.ts +1045 -303
- package/src/unstable/ai/Model.ts +9 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +231 -396
- package/src/unstable/ai/Prompt.ts +145 -43
- package/src/unstable/ai/Response.ts +52 -38
- package/src/unstable/ai/Telemetry.ts +46 -13
- package/src/unstable/ai/Tokenizer.ts +14 -3
- package/src/unstable/ai/Tool.ts +81 -48
- package/src/unstable/ai/Toolkit.ts +45 -15
- package/src/unstable/ai/index.ts +5 -0
- package/src/unstable/ai/internal/codec-transformer.ts +13 -7
- package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
- package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
- package/src/unstable/ai/internal/structured-output.ts +453 -0
- package/src/unstable/cli/Argument.ts +273 -69
- package/src/unstable/cli/CliError.ts +116 -77
- package/src/unstable/cli/CliOutput.ts +44 -58
- package/src/unstable/cli/Command.ts +709 -111
- package/src/unstable/cli/Flag.ts +418 -138
- package/src/unstable/cli/GlobalFlag.ts +1 -1
- package/src/unstable/cli/HelpDoc.ts +12 -4
- package/src/unstable/cli/Param.ts +295 -81
- package/src/unstable/cli/Primitive.ts +371 -150
- package/src/unstable/cli/Prompt.ts +28 -14
- package/src/unstable/cli/internal/command.ts +13 -5
- package/src/unstable/cli/internal/config.ts +8 -10
- package/src/unstable/cli/internal/lexer.ts +8 -2
- package/src/unstable/cli/internal/parser.ts +2 -2
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +8 -4
- package/src/unstable/cluster/Entity.ts +16 -17
- package/src/unstable/cluster/EntityProxy.ts +4 -2
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/Envelope.ts +5 -4
- package/src/unstable/cluster/HttpRunner.ts +6 -4
- package/src/unstable/cluster/Message.ts +9 -9
- package/src/unstable/cluster/MessageStorage.ts +15 -15
- package/src/unstable/cluster/Reply.ts +5 -7
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/RunnerHealth.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +41 -8
- package/src/unstable/cluster/RunnerStorage.ts +2 -2
- package/src/unstable/cluster/Runners.ts +23 -12
- package/src/unstable/cluster/ShardId.ts +1 -1
- package/src/unstable/cluster/Sharding.ts +168 -42
- package/src/unstable/cluster/ShardingConfig.ts +8 -4
- package/src/unstable/cluster/SingleRunner.ts +4 -2
- package/src/unstable/cluster/SingletonAddress.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +8 -8
- package/src/unstable/cluster/SqlMessageStorage.ts +84 -36
- package/src/unstable/cluster/SqlRunnerStorage.ts +205 -119
- package/src/unstable/cluster/internal/entityManager.ts +42 -25
- package/src/unstable/cluster/internal/shardLock.ts +9 -0
- package/src/unstable/devtools/DevToolsSchema.ts +10 -5
- package/src/unstable/encoding/Msgpack.ts +6 -8
- package/src/unstable/encoding/Sse.ts +98 -16
- package/src/unstable/eventlog/Event.ts +20 -20
- package/src/unstable/eventlog/EventGroup.ts +4 -4
- package/src/unstable/eventlog/EventJournal.ts +16 -16
- package/src/unstable/eventlog/EventLog.ts +24 -14
- package/src/unstable/eventlog/EventLogEncryption.ts +2 -2
- package/src/unstable/eventlog/EventLogMessage.ts +12 -5
- package/src/unstable/eventlog/EventLogRemote.ts +1 -1
- package/src/unstable/eventlog/EventLogServer.ts +41 -7
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/eventlog/SqlEventJournal.ts +2 -2
- package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
- package/src/unstable/http/Cookies.ts +64 -45
- package/src/unstable/http/Etag.ts +1 -1
- package/src/unstable/http/FetchHttpClient.ts +3 -1
- package/src/unstable/http/Headers.ts +10 -10
- package/src/unstable/http/HttpBody.ts +20 -5
- package/src/unstable/http/HttpClient.ts +83 -55
- package/src/unstable/http/HttpClientRequest.ts +59 -0
- package/src/unstable/http/HttpClientResponse.ts +4 -4
- package/src/unstable/http/HttpEffect.ts +8 -8
- package/src/unstable/http/HttpMethod.ts +6 -9
- package/src/unstable/http/HttpMiddleware.ts +202 -39
- package/src/unstable/http/HttpPlatform.ts +95 -0
- package/src/unstable/http/HttpRouter.ts +102 -98
- package/src/unstable/http/HttpServer.ts +13 -13
- package/src/unstable/http/HttpServerError.ts +2 -2
- package/src/unstable/http/HttpServerRequest.ts +9 -8
- package/src/unstable/http/HttpServerResponse.ts +30 -0
- package/src/unstable/http/HttpStaticServer.ts +35 -7
- package/src/unstable/http/Multipart.ts +22 -19
- package/src/unstable/http/Template.ts +1 -1
- package/src/unstable/http/Url.ts +33 -63
- package/src/unstable/http/UrlParams.ts +27 -32
- package/src/unstable/http/internal/compression.ts +196 -0
- package/src/unstable/httpapi/HttpApi.ts +3 -3
- package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
- package/src/unstable/httpapi/HttpApiClient.ts +19 -19
- package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
- package/src/unstable/httpapi/HttpApiError.ts +13 -13
- package/src/unstable/httpapi/HttpApiGroup.ts +16 -16
- package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
- package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
- package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
- package/src/unstable/httpapi/OpenApi.ts +65 -41
- package/src/unstable/observability/OtlpExporter.ts +126 -10
- package/src/unstable/observability/OtlpLogger.ts +5 -5
- package/src/unstable/observability/OtlpMetrics.ts +12 -5
- package/src/unstable/observability/OtlpResource.ts +26 -17
- package/src/unstable/observability/OtlpTracer.ts +8 -4
- package/src/unstable/observability/PrometheusMetrics.ts +13 -4
- package/src/unstable/observability/internal/otlpEnv.ts +1 -1
- package/src/unstable/observability/internal/protobuf.ts +3 -0
- package/src/unstable/persistence/KeyValueStore.ts +72 -49
- package/src/unstable/persistence/Persistable.ts +11 -10
- package/src/unstable/persistence/PersistedQueue.ts +6 -6
- package/src/unstable/persistence/Persistence.ts +126 -19
- package/src/unstable/persistence/RateLimiter.ts +28 -17
- package/src/unstable/persistence/Redis.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +64 -21
- package/src/unstable/process/ChildProcessSpawner.ts +22 -11
- package/src/unstable/reactivity/AsyncResult.ts +16 -16
- package/src/unstable/reactivity/Atom.ts +117 -22
- package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
- package/src/unstable/reactivity/AtomRegistry.ts +25 -4
- package/src/unstable/reactivity/AtomRpc.ts +5 -4
- package/src/unstable/reactivity/Hydration.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +35 -33
- package/src/unstable/rpc/RpcClient.ts +18 -16
- package/src/unstable/rpc/RpcGroup.ts +8 -8
- package/src/unstable/rpc/RpcMessage.ts +31 -30
- package/src/unstable/rpc/RpcMiddleware.ts +10 -10
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +167 -68
- package/src/unstable/rpc/RpcServer.ts +18 -15
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/schema/Model.ts +52 -50
- package/src/unstable/schema/VariantSchema.ts +19 -29
- package/src/unstable/socket/Socket.ts +18 -5
- package/src/unstable/sql/SqlClient.ts +5 -6
- package/src/unstable/sql/SqlError.ts +2 -2
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +5 -5
- package/src/unstable/sql/Statement.ts +31 -29
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +2 -2
- package/src/unstable/workers/WorkerError.ts +7 -7
- package/src/unstable/workers/WorkerRunner.ts +1 -1
- package/src/unstable/workflow/Activity.ts +2 -2
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +10 -10
- package/src/unstable/workflow/DurableQueue.ts +22 -20
- package/src/unstable/workflow/Workflow.ts +23 -23
- package/src/unstable/workflow/WorkflowEngine.ts +1 -1
- package/src/unstable/workflow/WorkflowProxy.ts +4 -2
- package/dist/SchemaUtils.d.ts +0 -28
- package/dist/SchemaUtils.d.ts.map +0 -1
- package/dist/SchemaUtils.js +0 -45
- package/dist/SchemaUtils.js.map +0 -1
- package/dist/internal/schema/arbitrary.d.ts.map +0 -1
- package/dist/internal/schema/arbitrary.js.map +0 -1
- package/dist/internal/schema/equivalence.d.ts +0 -2
- package/dist/internal/schema/equivalence.d.ts.map +0 -1
- package/dist/internal/schema/equivalence.js.map +0 -1
- package/dist/internal/schema/representation.d.ts +0 -2
- package/dist/internal/schema/representation.d.ts.map +0 -1
- package/dist/internal/schema/representation.js +0 -865
- package/dist/internal/schema/representation.js.map +0 -1
- package/dist/internal/version.d.ts +0 -3
- package/dist/internal/version.d.ts.map +0 -1
- package/dist/internal/version.js +0 -2
- package/dist/internal/version.js.map +0 -1
- package/src/SchemaUtils.ts +0 -51
- package/src/internal/schema/representation.ts +0 -795
- package/src/internal/version.ts +0 -2
package/dist/Array.js
CHANGED
|
@@ -12,8 +12,10 @@
|
|
|
12
12
|
import * as Equal from "./Equal.js";
|
|
13
13
|
import * as Equivalence from "./Equivalence.js";
|
|
14
14
|
import { dual, identity } from "./Function.js";
|
|
15
|
+
import * as Hash from "./Hash.js";
|
|
15
16
|
import * as internalArray from "./internal/array.js";
|
|
16
17
|
import * as internalDoNotation from "./internal/doNotation.js";
|
|
18
|
+
import * as InternalRecord from "./internal/record.js";
|
|
17
19
|
import * as moduleIterable from "./Iterable.js";
|
|
18
20
|
import * as Option from "./Option.js";
|
|
19
21
|
import * as Order from "./Order.js";
|
|
@@ -31,11 +33,10 @@ import * as Tuple from "./Tuple.js";
|
|
|
31
33
|
*
|
|
32
34
|
* **Example** (Accessing the Array constructor)
|
|
33
35
|
*
|
|
34
|
-
* ```ts
|
|
36
|
+
* ```ts import.meta.vitest
|
|
35
37
|
* import { Array } from "effect"
|
|
36
38
|
*
|
|
37
|
-
*
|
|
38
|
-
* console.log(arr) // [undefined, undefined, undefined]
|
|
39
|
+
* Array.Array === globalThis.Array // => true
|
|
39
40
|
* ```
|
|
40
41
|
*
|
|
41
42
|
* @category constructors
|
|
@@ -56,11 +57,10 @@ export const Array = globalThis.Array;
|
|
|
56
57
|
*
|
|
57
58
|
* **Example** (Creating an array from values)
|
|
58
59
|
*
|
|
59
|
-
* ```ts
|
|
60
|
+
* ```ts import.meta.vitest
|
|
60
61
|
* import { Array } from "effect"
|
|
61
62
|
*
|
|
62
|
-
*
|
|
63
|
-
* console.log(result) // [1, 2, 3]
|
|
63
|
+
* Array.make(1, 2, 3) // => [1, 2, 3]
|
|
64
64
|
* ```
|
|
65
65
|
*
|
|
66
66
|
* @see {@link of} — create a single-element array
|
|
@@ -83,11 +83,10 @@ export const make = (...elements) => elements;
|
|
|
83
83
|
*
|
|
84
84
|
* **Example** (Allocating a fixed-size array)
|
|
85
85
|
*
|
|
86
|
-
* ```ts
|
|
86
|
+
* ```ts import.meta.vitest
|
|
87
87
|
* import { Array } from "effect"
|
|
88
88
|
*
|
|
89
|
-
*
|
|
90
|
-
* console.log(result.length) // 3
|
|
89
|
+
* Array.allocate<number>(3).length // => 3
|
|
91
90
|
* ```
|
|
92
91
|
*
|
|
93
92
|
* @see {@link makeBy} — create an array by computing each element
|
|
@@ -111,11 +110,10 @@ export const allocate = n => new Array(n);
|
|
|
111
110
|
*
|
|
112
111
|
* **Example** (Generating values from indices)
|
|
113
112
|
*
|
|
114
|
-
* ```ts
|
|
113
|
+
* ```ts import.meta.vitest
|
|
115
114
|
* import { Array } from "effect"
|
|
116
115
|
*
|
|
117
|
-
*
|
|
118
|
-
* console.log(result) // [0, 2, 4, 6, 8]
|
|
116
|
+
* Array.makeBy(5, (n) => n * 2) // => [0, 2, 4, 6, 8]
|
|
119
117
|
* ```
|
|
120
118
|
*
|
|
121
119
|
* @see {@link range} — create a range of integers
|
|
@@ -146,11 +144,10 @@ export const makeBy = /*#__PURE__*/dual(2, (n, f) => {
|
|
|
146
144
|
*
|
|
147
145
|
* **Example** (Creating a range)
|
|
148
146
|
*
|
|
149
|
-
* ```ts
|
|
147
|
+
* ```ts import.meta.vitest
|
|
150
148
|
* import { Array } from "effect"
|
|
151
149
|
*
|
|
152
|
-
*
|
|
153
|
-
* console.log(result) // [1, 2, 3]
|
|
150
|
+
* Array.range(1, 3) // => [1, 2, 3]
|
|
154
151
|
* ```
|
|
155
152
|
*
|
|
156
153
|
* @see {@link makeBy} — generate values from a function
|
|
@@ -174,11 +171,10 @@ export const range = (start, end) => start <= end ? makeBy(end - start + 1, i =>
|
|
|
174
171
|
*
|
|
175
172
|
* **Example** (Repeating a value)
|
|
176
173
|
*
|
|
177
|
-
* ```ts
|
|
174
|
+
* ```ts import.meta.vitest
|
|
178
175
|
* import { Array } from "effect"
|
|
179
176
|
*
|
|
180
|
-
*
|
|
181
|
-
* console.log(result) // ["a", "a", "a"]
|
|
177
|
+
* Array.replicate("a", 3) // => ["a", "a", "a"]
|
|
182
178
|
* ```
|
|
183
179
|
*
|
|
184
180
|
* @see {@link makeBy} — vary values based on index
|
|
@@ -202,11 +198,10 @@ export const replicate = /*#__PURE__*/dual(2, (a, n) => makeBy(n, () => a));
|
|
|
202
198
|
*
|
|
203
199
|
* **Example** (Converting a Set to an array)
|
|
204
200
|
*
|
|
205
|
-
* ```ts
|
|
201
|
+
* ```ts import.meta.vitest
|
|
206
202
|
* import { Array } from "effect"
|
|
207
203
|
*
|
|
208
|
-
*
|
|
209
|
-
* console.log(result) // [1, 2, 3]
|
|
204
|
+
* Array.fromIterable(new Set([1, 2, 3])) // => [1, 2, 3]
|
|
210
205
|
* ```
|
|
211
206
|
*
|
|
212
207
|
* @see {@link ensure} — wrap a single value or return an existing array
|
|
@@ -232,11 +227,11 @@ export const fromIterable = collection => Array.isArray(collection) ? collection
|
|
|
232
227
|
*
|
|
233
228
|
* **Example** (Normalizing input)
|
|
234
229
|
*
|
|
235
|
-
* ```ts
|
|
230
|
+
* ```ts import.meta.vitest
|
|
236
231
|
* import { Array } from "effect"
|
|
237
232
|
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
233
|
+
* Array.ensure("a") // => ["a"]
|
|
234
|
+
* Array.ensure(["a", "b", "c"]) // => ["a", "b", "c"]
|
|
240
235
|
* ```
|
|
241
236
|
*
|
|
242
237
|
* @see {@link of} — always wrap in a single-element array
|
|
@@ -261,11 +256,10 @@ export const ensure = self => Array.isArray(self) ? self : [self];
|
|
|
261
256
|
*
|
|
262
257
|
* **Example** (Converting a record to entries)
|
|
263
258
|
*
|
|
264
|
-
* ```ts
|
|
259
|
+
* ```ts import.meta.vitest
|
|
265
260
|
* import { Array } from "effect"
|
|
266
261
|
*
|
|
267
|
-
*
|
|
268
|
-
* console.log(result) // [["a", 1], ["b", 2], ["c", 3]]
|
|
262
|
+
* Array.fromRecord({ a: 1, b: 2, c: 3 }) // => [["a", 1], ["b", 2], ["c", 3]]
|
|
269
263
|
* ```
|
|
270
264
|
*
|
|
271
265
|
* @see {@link Record.toEntries} the equivalent function from the Record module
|
|
@@ -284,11 +278,11 @@ export const fromRecord = Record.toEntries;
|
|
|
284
278
|
*
|
|
285
279
|
* **Example** (Converting an Option to an array)
|
|
286
280
|
*
|
|
287
|
-
* ```ts
|
|
281
|
+
* ```ts import.meta.vitest
|
|
288
282
|
* import { Array, Option } from "effect"
|
|
289
283
|
*
|
|
290
|
-
*
|
|
291
|
-
*
|
|
284
|
+
* Array.fromOption(Option.some(1)) // => [1]
|
|
285
|
+
* Array.fromOption(Option.none()) // => []
|
|
292
286
|
* ```
|
|
293
287
|
*
|
|
294
288
|
* @see {@link getSomes} — extract `Some` values from an array of Options
|
|
@@ -311,15 +305,16 @@ export const fromOption = Option.toArray;
|
|
|
311
305
|
*
|
|
312
306
|
* **Example** (Branching on emptiness)
|
|
313
307
|
*
|
|
314
|
-
* ```ts
|
|
308
|
+
* ```ts import.meta.vitest
|
|
315
309
|
* import { Array } from "effect"
|
|
316
310
|
*
|
|
317
311
|
* const describe = Array.match({
|
|
318
312
|
* onEmpty: () => "empty",
|
|
319
313
|
* onNonEmpty: ([head, ...tail]) => `head: ${head}, tail: ${tail.length}`
|
|
320
314
|
* })
|
|
321
|
-
*
|
|
322
|
-
*
|
|
315
|
+
*
|
|
316
|
+
* describe([]) // => "empty"
|
|
317
|
+
* describe([1, 2, 3]) // => "head: 1, tail: 2"
|
|
323
318
|
* ```
|
|
324
319
|
*
|
|
325
320
|
* @see {@link matchLeft} — destructures into head + tail
|
|
@@ -347,15 +342,16 @@ export const match = /*#__PURE__*/dual(2, (self, {
|
|
|
347
342
|
*
|
|
348
343
|
* **Example** (Destructuring head and tail)
|
|
349
344
|
*
|
|
350
|
-
* ```ts
|
|
345
|
+
* ```ts import.meta.vitest
|
|
351
346
|
* import { Array } from "effect"
|
|
352
347
|
*
|
|
353
348
|
* const matchLeft = Array.matchLeft({
|
|
354
349
|
* onEmpty: () => "empty",
|
|
355
350
|
* onNonEmpty: (head, tail) => `head: ${head}, tail: ${tail.length}`
|
|
356
351
|
* })
|
|
357
|
-
*
|
|
358
|
-
*
|
|
352
|
+
*
|
|
353
|
+
* matchLeft([]) // => "empty"
|
|
354
|
+
* matchLeft([1, 2, 3]) // => "head: 1, tail: 2"
|
|
359
355
|
* ```
|
|
360
356
|
*
|
|
361
357
|
* @see {@link match} — receives the full non-empty array
|
|
@@ -383,15 +379,16 @@ export const matchLeft = /*#__PURE__*/dual(2, (self, {
|
|
|
383
379
|
*
|
|
384
380
|
* **Example** (Destructuring init and last)
|
|
385
381
|
*
|
|
386
|
-
* ```ts
|
|
382
|
+
* ```ts import.meta.vitest
|
|
387
383
|
* import { Array } from "effect"
|
|
388
384
|
*
|
|
389
385
|
* const matchRight = Array.matchRight({
|
|
390
386
|
* onEmpty: () => "empty",
|
|
391
387
|
* onNonEmpty: (init, last) => `init: ${init.length}, last: ${last}`
|
|
392
388
|
* })
|
|
393
|
-
*
|
|
394
|
-
*
|
|
389
|
+
*
|
|
390
|
+
* matchRight([]) // => "empty"
|
|
391
|
+
* matchRight([1, 2, 3]) // => "init: 2, last: 3"
|
|
395
392
|
* ```
|
|
396
393
|
*
|
|
397
394
|
* @see {@link match} — receives the full non-empty array
|
|
@@ -414,11 +411,10 @@ export const matchRight = /*#__PURE__*/dual(2, (self, {
|
|
|
414
411
|
*
|
|
415
412
|
* **Example** (Prepending an element)
|
|
416
413
|
*
|
|
417
|
-
* ```ts
|
|
414
|
+
* ```ts import.meta.vitest
|
|
418
415
|
* import { Array } from "effect"
|
|
419
416
|
*
|
|
420
|
-
*
|
|
421
|
-
* console.log(result) // [1, 2, 3, 4]
|
|
417
|
+
* Array.prepend([2, 3, 4], 1) // => [1, 2, 3, 4]
|
|
422
418
|
* ```
|
|
423
419
|
*
|
|
424
420
|
* @see {@link append} — add to the end
|
|
@@ -441,11 +437,10 @@ export const prepend = /*#__PURE__*/dual(2, (self, head) => [head, ...self]);
|
|
|
441
437
|
*
|
|
442
438
|
* **Example** (Prepending multiple elements)
|
|
443
439
|
*
|
|
444
|
-
* ```ts
|
|
440
|
+
* ```ts import.meta.vitest
|
|
445
441
|
* import { Array } from "effect"
|
|
446
442
|
*
|
|
447
|
-
*
|
|
448
|
-
* console.log(result) // [0, 1, 2, 3]
|
|
443
|
+
* Array.prependAll([2, 3], [0, 1]) // => [0, 1, 2, 3]
|
|
449
444
|
* ```
|
|
450
445
|
*
|
|
451
446
|
* @see {@link prepend} — add a single element to the front
|
|
@@ -465,11 +460,10 @@ export const prependAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(that
|
|
|
465
460
|
*
|
|
466
461
|
* **Example** (Appending an element)
|
|
467
462
|
*
|
|
468
|
-
* ```ts
|
|
463
|
+
* ```ts import.meta.vitest
|
|
469
464
|
* import { Array } from "effect"
|
|
470
465
|
*
|
|
471
|
-
*
|
|
472
|
-
* console.log(result) // [1, 2, 3, 4]
|
|
466
|
+
* Array.append([1, 2, 3], 4) // => [1, 2, 3, 4]
|
|
473
467
|
* ```
|
|
474
468
|
*
|
|
475
469
|
* @see {@link prepend} — add to the front
|
|
@@ -493,11 +487,10 @@ export const append = /*#__PURE__*/dual(2, (self, last) => [...self, last]);
|
|
|
493
487
|
*
|
|
494
488
|
* **Example** (Concatenating arrays)
|
|
495
489
|
*
|
|
496
|
-
* ```ts
|
|
490
|
+
* ```ts import.meta.vitest
|
|
497
491
|
* import { Array } from "effect"
|
|
498
492
|
*
|
|
499
|
-
*
|
|
500
|
-
* console.log(result) // [1, 2, 3, 4]
|
|
493
|
+
* Array.appendAll([1, 2], [3, 4]) // => [1, 2, 3, 4]
|
|
501
494
|
* ```
|
|
502
495
|
*
|
|
503
496
|
* @see {@link append} — add a single element to the end
|
|
@@ -522,11 +515,10 @@ export const appendAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(self)
|
|
|
522
515
|
*
|
|
523
516
|
* **Example** (Running totals)
|
|
524
517
|
*
|
|
525
|
-
* ```ts
|
|
518
|
+
* ```ts import.meta.vitest
|
|
526
519
|
* import { Array } from "effect"
|
|
527
520
|
*
|
|
528
|
-
*
|
|
529
|
-
* console.log(result) // [0, 1, 3, 6, 10]
|
|
521
|
+
* Array.scan([1, 2, 3, 4], 0, (acc, value) => acc + value) // => [0, 1, 3, 6, 10]
|
|
530
522
|
* ```
|
|
531
523
|
*
|
|
532
524
|
* @see {@link scanRight} — right-to-left scan
|
|
@@ -559,11 +551,10 @@ export const scan = /*#__PURE__*/dual(3, (self, b, f) => {
|
|
|
559
551
|
*
|
|
560
552
|
* **Example** (Scanning running totals in reverse)
|
|
561
553
|
*
|
|
562
|
-
* ```ts
|
|
554
|
+
* ```ts import.meta.vitest
|
|
563
555
|
* import { Array } from "effect"
|
|
564
556
|
*
|
|
565
|
-
*
|
|
566
|
-
* console.log(result) // [10, 9, 7, 4, 0]
|
|
557
|
+
* Array.scanRight([1, 2, 3, 4], 0, (acc, value) => acc + value) // => [10, 9, 7, 4, 0]
|
|
567
558
|
* ```
|
|
568
559
|
*
|
|
569
560
|
* @see {@link scan} — left-to-right scan
|
|
@@ -595,11 +586,11 @@ export const scanRight = /*#__PURE__*/dual(3, (self, b, f) => {
|
|
|
595
586
|
*
|
|
596
587
|
* **Example** (Type-guarding an unknown value)
|
|
597
588
|
*
|
|
598
|
-
* ```ts
|
|
589
|
+
* ```ts import.meta.vitest
|
|
599
590
|
* import { Array } from "effect"
|
|
600
591
|
*
|
|
601
|
-
*
|
|
602
|
-
*
|
|
592
|
+
* Array.isArray(null) // => false
|
|
593
|
+
* Array.isArray([1, 2, 3]) // => true
|
|
603
594
|
* ```
|
|
604
595
|
*
|
|
605
596
|
* @see {@link isArrayEmpty} — check for an empty array
|
|
@@ -614,11 +605,11 @@ export const isArray = Array.isArray;
|
|
|
614
605
|
*
|
|
615
606
|
* **Example** (Checking for an empty array)
|
|
616
607
|
*
|
|
617
|
-
* ```ts
|
|
608
|
+
* ```ts import.meta.vitest
|
|
618
609
|
* import { Array } from "effect"
|
|
619
610
|
*
|
|
620
|
-
*
|
|
621
|
-
*
|
|
611
|
+
* Array.isArrayEmpty([]) // => true
|
|
612
|
+
* Array.isArrayEmpty([1, 2, 3]) // => false
|
|
622
613
|
* ```
|
|
623
614
|
*
|
|
624
615
|
* @see {@link isReadonlyArrayEmpty} — readonly variant
|
|
@@ -633,11 +624,11 @@ export const isArrayEmpty = self => self.length === 0;
|
|
|
633
624
|
*
|
|
634
625
|
* **Example** (Checking for an empty readonly array)
|
|
635
626
|
*
|
|
636
|
-
* ```ts
|
|
627
|
+
* ```ts import.meta.vitest
|
|
637
628
|
* import { Array } from "effect"
|
|
638
629
|
*
|
|
639
|
-
*
|
|
640
|
-
*
|
|
630
|
+
* Array.isReadonlyArrayEmpty([]) // => true
|
|
631
|
+
* Array.isReadonlyArrayEmpty([1, 2, 3]) // => false
|
|
641
632
|
* ```
|
|
642
633
|
*
|
|
643
634
|
* @see {@link isArrayEmpty} — mutable variant
|
|
@@ -658,11 +649,11 @@ export const isReadonlyArrayEmpty = isArrayEmpty;
|
|
|
658
649
|
*
|
|
659
650
|
* **Example** (Checking for a non-empty array)
|
|
660
651
|
*
|
|
661
|
-
* ```ts
|
|
652
|
+
* ```ts import.meta.vitest
|
|
662
653
|
* import { Array } from "effect"
|
|
663
654
|
*
|
|
664
|
-
*
|
|
665
|
-
*
|
|
655
|
+
* Array.isArrayNonEmpty([]) // => false
|
|
656
|
+
* Array.isArrayNonEmpty([1, 2, 3]) // => true
|
|
666
657
|
* ```
|
|
667
658
|
*
|
|
668
659
|
* @see {@link isReadonlyArrayNonEmpty} — readonly variant
|
|
@@ -683,11 +674,11 @@ export const isArrayNonEmpty = internalArray.isArrayNonEmpty;
|
|
|
683
674
|
*
|
|
684
675
|
* **Example** (Checking for a non-empty readonly array)
|
|
685
676
|
*
|
|
686
|
-
* ```ts
|
|
677
|
+
* ```ts import.meta.vitest
|
|
687
678
|
* import { Array } from "effect"
|
|
688
679
|
*
|
|
689
|
-
*
|
|
690
|
-
*
|
|
680
|
+
* Array.isReadonlyArrayNonEmpty([]) // => false
|
|
681
|
+
* Array.isReadonlyArrayNonEmpty([1, 2, 3]) // => true
|
|
691
682
|
* ```
|
|
692
683
|
*
|
|
693
684
|
* @see {@link isArrayNonEmpty} — mutable variant
|
|
@@ -706,10 +697,10 @@ export const isReadonlyArrayNonEmpty = internalArray.isArrayNonEmpty;
|
|
|
706
697
|
*
|
|
707
698
|
* **Example** (Getting the length)
|
|
708
699
|
*
|
|
709
|
-
* ```ts
|
|
700
|
+
* ```ts import.meta.vitest
|
|
710
701
|
* import { Array } from "effect"
|
|
711
702
|
*
|
|
712
|
-
*
|
|
703
|
+
* Array.length([1, 2, 3]) // => 3
|
|
713
704
|
* ```
|
|
714
705
|
*
|
|
715
706
|
* @category getters
|
|
@@ -718,7 +709,7 @@ export const isReadonlyArrayNonEmpty = internalArray.isArrayNonEmpty;
|
|
|
718
709
|
export const length = self => self.length;
|
|
719
710
|
/** @internal */
|
|
720
711
|
export function isOutOfBounds(i, as) {
|
|
721
|
-
return i < 0 || i >= as.length;
|
|
712
|
+
return !Number.isFinite(i) || i < 0 || i >= as.length;
|
|
722
713
|
}
|
|
723
714
|
const clamp = (i, as) => Math.floor(Math.min(Math.max(0, i), as.length));
|
|
724
715
|
/**
|
|
@@ -736,11 +727,11 @@ const clamp = (i, as) => Math.floor(Math.min(Math.max(0, i), as.length));
|
|
|
736
727
|
*
|
|
737
728
|
* **Example** (Accessing indexes safely)
|
|
738
729
|
*
|
|
739
|
-
* ```ts
|
|
740
|
-
* import { Array } from "effect"
|
|
730
|
+
* ```ts import.meta.vitest
|
|
731
|
+
* import { Array, Option } from "effect"
|
|
741
732
|
*
|
|
742
|
-
*
|
|
743
|
-
*
|
|
733
|
+
* Array.get([1, 2, 3], 1) // => Option.some(2)
|
|
734
|
+
* Array.get([1, 2, 3], 10) // => Option.none()
|
|
744
735
|
* ```
|
|
745
736
|
*
|
|
746
737
|
* @see {@link getUnsafe} for indexed access that throws when the index is out of bounds
|
|
@@ -769,10 +760,10 @@ export const get = /*#__PURE__*/dual(2, (self, index) => {
|
|
|
769
760
|
*
|
|
770
761
|
* **Example** (Accessing indexes unsafely)
|
|
771
762
|
*
|
|
772
|
-
* ```ts
|
|
763
|
+
* ```ts import.meta.vitest
|
|
773
764
|
* import { Array } from "effect"
|
|
774
765
|
*
|
|
775
|
-
*
|
|
766
|
+
* Array.getUnsafe([1, 2, 3], 1) // => 2
|
|
776
767
|
* // Array.getUnsafe([1, 2, 3], 10) // throws Error
|
|
777
768
|
* ```
|
|
778
769
|
*
|
|
@@ -802,11 +793,10 @@ export const getUnsafe = /*#__PURE__*/dual(2, (self, index) => {
|
|
|
802
793
|
*
|
|
803
794
|
* **Example** (Destructuring head and tail)
|
|
804
795
|
*
|
|
805
|
-
* ```ts
|
|
796
|
+
* ```ts import.meta.vitest
|
|
806
797
|
* import { Array } from "effect"
|
|
807
798
|
*
|
|
808
|
-
*
|
|
809
|
-
* console.log(result) // [1, [2, 3, 4]]
|
|
799
|
+
* Array.unprepend([1, 2, 3, 4]) // => [1, [2, 3, 4]]
|
|
810
800
|
* ```
|
|
811
801
|
*
|
|
812
802
|
* @see {@link unappend} for splitting a non-empty array into init and last
|
|
@@ -832,11 +822,10 @@ export const unprepend = self => [headNonEmpty(self), tailNonEmpty(self)];
|
|
|
832
822
|
*
|
|
833
823
|
* **Example** (Destructuring init and last)
|
|
834
824
|
*
|
|
835
|
-
* ```ts
|
|
825
|
+
* ```ts import.meta.vitest
|
|
836
826
|
* import { Array } from "effect"
|
|
837
827
|
*
|
|
838
|
-
*
|
|
839
|
-
* console.log(result) // [[1, 2, 3], 4]
|
|
828
|
+
* Array.unappend([1, 2, 3, 4]) // => [[1, 2, 3], 4]
|
|
840
829
|
* ```
|
|
841
830
|
*
|
|
842
831
|
* @see {@link unprepend} for splitting a non-empty array into head and tail
|
|
@@ -857,11 +846,11 @@ export const unappend = self => [initNonEmpty(self), lastNonEmpty(self)];
|
|
|
857
846
|
*
|
|
858
847
|
* **Example** (Getting the first element)
|
|
859
848
|
*
|
|
860
|
-
* ```ts
|
|
861
|
-
* import { Array } from "effect"
|
|
849
|
+
* ```ts import.meta.vitest
|
|
850
|
+
* import { Array, Option } from "effect"
|
|
862
851
|
*
|
|
863
|
-
*
|
|
864
|
-
*
|
|
852
|
+
* Array.head([1, 2, 3]) // => Option.some(1)
|
|
853
|
+
* Array.head([]) // => Option.none()
|
|
865
854
|
* ```
|
|
866
855
|
*
|
|
867
856
|
* @see {@link headNonEmpty} — direct access when array is known non-empty
|
|
@@ -882,10 +871,10 @@ export const head = /*#__PURE__*/get(0);
|
|
|
882
871
|
*
|
|
883
872
|
* **Example** (Getting the head of a non-empty array)
|
|
884
873
|
*
|
|
885
|
-
* ```ts
|
|
874
|
+
* ```ts import.meta.vitest
|
|
886
875
|
* import { Array } from "effect"
|
|
887
876
|
*
|
|
888
|
-
*
|
|
877
|
+
* Array.headNonEmpty([1, 2, 3, 4]) // => 1
|
|
889
878
|
* ```
|
|
890
879
|
*
|
|
891
880
|
* @see {@link head} — safe version for possibly-empty arrays
|
|
@@ -904,11 +893,11 @@ export const headNonEmpty = /*#__PURE__*/getUnsafe(0);
|
|
|
904
893
|
*
|
|
905
894
|
* **Example** (Getting the last element)
|
|
906
895
|
*
|
|
907
|
-
* ```ts
|
|
908
|
-
* import { Array } from "effect"
|
|
896
|
+
* ```ts import.meta.vitest
|
|
897
|
+
* import { Array, Option } from "effect"
|
|
909
898
|
*
|
|
910
|
-
*
|
|
911
|
-
*
|
|
899
|
+
* Array.last([1, 2, 3]) // => Option.some(3)
|
|
900
|
+
* Array.last([]) // => Option.none()
|
|
912
901
|
* ```
|
|
913
902
|
*
|
|
914
903
|
* @see {@link lastNonEmpty} — direct access when array is known non-empty
|
|
@@ -929,10 +918,10 @@ export const last = self => isReadonlyArrayNonEmpty(self) ? Option.some(lastNonE
|
|
|
929
918
|
*
|
|
930
919
|
* **Example** (Getting the last of a non-empty array)
|
|
931
920
|
*
|
|
932
|
-
* ```ts
|
|
921
|
+
* ```ts import.meta.vitest
|
|
933
922
|
* import { Array } from "effect"
|
|
934
923
|
*
|
|
935
|
-
*
|
|
924
|
+
* Array.lastNonEmpty([1, 2, 3, 4]) // => 4
|
|
936
925
|
* ```
|
|
937
926
|
*
|
|
938
927
|
* @see {@link last} — safe version for possibly-empty arrays
|
|
@@ -954,11 +943,11 @@ export const lastNonEmpty = self => self[self.length - 1];
|
|
|
954
943
|
*
|
|
955
944
|
* **Example** (Getting the tail)
|
|
956
945
|
*
|
|
957
|
-
* ```ts
|
|
958
|
-
* import { Array } from "effect"
|
|
946
|
+
* ```ts import.meta.vitest
|
|
947
|
+
* import { Array, Option } from "effect"
|
|
959
948
|
*
|
|
960
|
-
*
|
|
961
|
-
*
|
|
949
|
+
* Array.tail([1, 2, 3, 4]) // => Option.some([2, 3, 4])
|
|
950
|
+
* Array.tail([]) // => Option.none()
|
|
962
951
|
* ```
|
|
963
952
|
*
|
|
964
953
|
* @see {@link tailNonEmpty} — when the array is known non-empty
|
|
@@ -980,10 +969,10 @@ export function tail(self) {
|
|
|
980
969
|
*
|
|
981
970
|
* **Example** (Getting the tail of a non-empty array)
|
|
982
971
|
*
|
|
983
|
-
* ```ts
|
|
972
|
+
* ```ts import.meta.vitest
|
|
984
973
|
* import { Array } from "effect"
|
|
985
974
|
*
|
|
986
|
-
*
|
|
975
|
+
* Array.tailNonEmpty([1, 2, 3, 4]) // => [2, 3, 4]
|
|
987
976
|
* ```
|
|
988
977
|
*
|
|
989
978
|
* @see {@link tail} — safe version for possibly-empty arrays
|
|
@@ -1007,11 +996,11 @@ export const tailNonEmpty = self => self.slice(1);
|
|
|
1007
996
|
*
|
|
1008
997
|
* **Example** (Getting init)
|
|
1009
998
|
*
|
|
1010
|
-
* ```ts
|
|
1011
|
-
* import { Array } from "effect"
|
|
999
|
+
* ```ts import.meta.vitest
|
|
1000
|
+
* import { Array, Option } from "effect"
|
|
1012
1001
|
*
|
|
1013
|
-
*
|
|
1014
|
-
*
|
|
1002
|
+
* Array.init([1, 2, 3, 4]) // => Option.some([1, 2, 3])
|
|
1003
|
+
* Array.init([]) // => Option.none()
|
|
1015
1004
|
* ```
|
|
1016
1005
|
*
|
|
1017
1006
|
* @see {@link initNonEmpty} — when the array is known non-empty
|
|
@@ -1033,10 +1022,10 @@ export function init(self) {
|
|
|
1033
1022
|
*
|
|
1034
1023
|
* **Example** (Getting init of a non-empty array)
|
|
1035
1024
|
*
|
|
1036
|
-
* ```ts
|
|
1025
|
+
* ```ts import.meta.vitest
|
|
1037
1026
|
* import { Array } from "effect"
|
|
1038
1027
|
*
|
|
1039
|
-
*
|
|
1028
|
+
* Array.initNonEmpty([1, 2, 3, 4]) // => [1, 2, 3]
|
|
1040
1029
|
* ```
|
|
1041
1030
|
*
|
|
1042
1031
|
* @see {@link init} — safe version for possibly-empty arrays
|
|
@@ -1059,10 +1048,10 @@ export const initNonEmpty = self => self.slice(0, -1);
|
|
|
1059
1048
|
*
|
|
1060
1049
|
* **Example** (Taking from the start)
|
|
1061
1050
|
*
|
|
1062
|
-
* ```ts
|
|
1051
|
+
* ```ts import.meta.vitest
|
|
1063
1052
|
* import { Array } from "effect"
|
|
1064
1053
|
*
|
|
1065
|
-
*
|
|
1054
|
+
* Array.take([1, 2, 3, 4, 5], 3) // => [1, 2, 3]
|
|
1066
1055
|
* ```
|
|
1067
1056
|
*
|
|
1068
1057
|
* @see {@link takeRight} for keeping elements from the end
|
|
@@ -1089,10 +1078,10 @@ export const take = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
1089
1078
|
*
|
|
1090
1079
|
* **Example** (Taking from the end)
|
|
1091
1080
|
*
|
|
1092
|
-
* ```ts
|
|
1081
|
+
* ```ts import.meta.vitest
|
|
1093
1082
|
* import { Array } from "effect"
|
|
1094
1083
|
*
|
|
1095
|
-
*
|
|
1084
|
+
* Array.takeRight([1, 2, 3, 4, 5], 3) // => [3, 4, 5]
|
|
1096
1085
|
* ```
|
|
1097
1086
|
*
|
|
1098
1087
|
* @see {@link take} — keep from the start
|
|
@@ -1122,10 +1111,10 @@ export const takeRight = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
1122
1111
|
*
|
|
1123
1112
|
* **Example** (Taking while condition holds)
|
|
1124
1113
|
*
|
|
1125
|
-
* ```ts
|
|
1114
|
+
* ```ts import.meta.vitest
|
|
1126
1115
|
* import { Array } from "effect"
|
|
1127
1116
|
*
|
|
1128
|
-
*
|
|
1117
|
+
* Array.takeWhile([1, 3, 2, 4, 1, 2], (x) => x < 4) // => [1, 3, 2]
|
|
1129
1118
|
* ```
|
|
1130
1119
|
*
|
|
1131
1120
|
* @see {@link take} for keeping a fixed number of leading elements
|
|
@@ -1206,10 +1195,10 @@ const spanIndex = (self, predicate) => {
|
|
|
1206
1195
|
*
|
|
1207
1196
|
* **Example** (Splitting at predicate boundary)
|
|
1208
1197
|
*
|
|
1209
|
-
* ```ts
|
|
1198
|
+
* ```ts import.meta.vitest
|
|
1210
1199
|
* import { Array } from "effect"
|
|
1211
1200
|
*
|
|
1212
|
-
*
|
|
1201
|
+
* Array.span([1, 3, 2, 4, 5], (x) => x % 2 === 1) // => [[1, 3], [2, 4, 5]]
|
|
1213
1202
|
* ```
|
|
1214
1203
|
*
|
|
1215
1204
|
* @see {@link takeWhile} for keeping only the matching prefix
|
|
@@ -1238,10 +1227,10 @@ export const span = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
|
1238
1227
|
*
|
|
1239
1228
|
* **Example** (Dropping from the start)
|
|
1240
1229
|
*
|
|
1241
|
-
* ```ts
|
|
1230
|
+
* ```ts import.meta.vitest
|
|
1242
1231
|
* import { Array } from "effect"
|
|
1243
1232
|
*
|
|
1244
|
-
*
|
|
1233
|
+
* Array.drop([1, 2, 3, 4, 5], 2) // => [3, 4, 5]
|
|
1245
1234
|
* ```
|
|
1246
1235
|
*
|
|
1247
1236
|
* @see {@link dropRight} for removing a fixed number of elements from the end
|
|
@@ -1268,10 +1257,10 @@ export const drop = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
1268
1257
|
*
|
|
1269
1258
|
* **Example** (Dropping from the end)
|
|
1270
1259
|
*
|
|
1271
|
-
* ```ts
|
|
1260
|
+
* ```ts import.meta.vitest
|
|
1272
1261
|
* import { Array } from "effect"
|
|
1273
1262
|
*
|
|
1274
|
-
*
|
|
1263
|
+
* Array.dropRight([1, 2, 3, 4, 5], 2) // => [1, 2, 3]
|
|
1275
1264
|
* ```
|
|
1276
1265
|
*
|
|
1277
1266
|
* @see {@link drop} — remove from the start
|
|
@@ -1297,10 +1286,10 @@ export const dropRight = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
1297
1286
|
*
|
|
1298
1287
|
* **Example** (Dropping while condition holds)
|
|
1299
1288
|
*
|
|
1300
|
-
* ```ts
|
|
1289
|
+
* ```ts import.meta.vitest
|
|
1301
1290
|
* import { Array } from "effect"
|
|
1302
1291
|
*
|
|
1303
|
-
*
|
|
1292
|
+
* Array.dropWhile([1, 2, 3, 4, 5], (x) => x < 4) // => [4, 5]
|
|
1304
1293
|
* ```
|
|
1305
1294
|
*
|
|
1306
1295
|
* @see {@link takeWhile} — keep the matching prefix instead
|
|
@@ -1361,16 +1350,16 @@ export const dropWhileFilter = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
1361
1350
|
*
|
|
1362
1351
|
* **Example** (Finding an index)
|
|
1363
1352
|
*
|
|
1364
|
-
* ```ts
|
|
1365
|
-
* import { Array } from "effect"
|
|
1353
|
+
* ```ts import.meta.vitest
|
|
1354
|
+
* import { Array, Option } from "effect"
|
|
1366
1355
|
*
|
|
1367
|
-
*
|
|
1356
|
+
* Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5) // => Option.some(2)
|
|
1368
1357
|
* ```
|
|
1369
1358
|
*
|
|
1370
1359
|
* @see {@link findLastIndex} — search from the end
|
|
1371
1360
|
* @see {@link findFirst} — get the element itself
|
|
1372
1361
|
*
|
|
1373
|
-
* @category
|
|
1362
|
+
* @category searching
|
|
1374
1363
|
* @since 2.0.0
|
|
1375
1364
|
*/
|
|
1376
1365
|
export const findFirstIndex = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
@@ -1393,16 +1382,16 @@ export const findFirstIndex = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
|
1393
1382
|
*
|
|
1394
1383
|
* **Example** (Finding the last matching index)
|
|
1395
1384
|
*
|
|
1396
|
-
* ```ts
|
|
1397
|
-
* import { Array } from "effect"
|
|
1385
|
+
* ```ts import.meta.vitest
|
|
1386
|
+
* import { Array, Option } from "effect"
|
|
1398
1387
|
*
|
|
1399
|
-
*
|
|
1388
|
+
* Array.findLastIndex([1, 3, 8, 9], (x) => x < 5) // => Option.some(1)
|
|
1400
1389
|
* ```
|
|
1401
1390
|
*
|
|
1402
1391
|
* @see {@link findFirstIndex} — search from the start
|
|
1403
1392
|
* @see {@link findLast} — get the element itself
|
|
1404
1393
|
*
|
|
1405
|
-
* @category
|
|
1394
|
+
* @category searching
|
|
1406
1395
|
* @since 2.0.0
|
|
1407
1396
|
*/
|
|
1408
1397
|
export const findLastIndex = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
@@ -1431,17 +1420,17 @@ export const findLastIndex = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
|
1431
1420
|
*
|
|
1432
1421
|
* **Example** (Finding the first match)
|
|
1433
1422
|
*
|
|
1434
|
-
* ```ts
|
|
1435
|
-
* import { Array } from "effect"
|
|
1423
|
+
* ```ts import.meta.vitest
|
|
1424
|
+
* import { Array, Option } from "effect"
|
|
1436
1425
|
*
|
|
1437
|
-
*
|
|
1426
|
+
* Array.findFirst([1, 2, 3, 4, 5], (x) => x > 3) // => Option.some(4)
|
|
1438
1427
|
* ```
|
|
1439
1428
|
*
|
|
1440
1429
|
* @see {@link findLast} — search from the end
|
|
1441
1430
|
* @see {@link findFirstIndex} — get the index instead
|
|
1442
1431
|
* @see {@link findFirstWithIndex} — get both element and index
|
|
1443
1432
|
*
|
|
1444
|
-
* @category
|
|
1433
|
+
* @category searching
|
|
1445
1434
|
* @since 2.0.0
|
|
1446
1435
|
*/
|
|
1447
1436
|
export const findFirst = moduleIterable.findFirst;
|
|
@@ -1461,16 +1450,16 @@ export const findFirst = moduleIterable.findFirst;
|
|
|
1461
1450
|
*
|
|
1462
1451
|
* **Example** (Finding element with its index)
|
|
1463
1452
|
*
|
|
1464
|
-
* ```ts
|
|
1465
|
-
* import { Array } from "effect"
|
|
1453
|
+
* ```ts import.meta.vitest
|
|
1454
|
+
* import { Array, Option } from "effect"
|
|
1466
1455
|
*
|
|
1467
|
-
*
|
|
1456
|
+
* Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3) // => Option.some([4, 3])
|
|
1468
1457
|
* ```
|
|
1469
1458
|
*
|
|
1470
1459
|
* @see {@link findFirst} — get only the element
|
|
1471
1460
|
* @see {@link findFirstIndex} — get only the index
|
|
1472
1461
|
*
|
|
1473
|
-
* @category
|
|
1462
|
+
* @category searching
|
|
1474
1463
|
* @since 3.17.0
|
|
1475
1464
|
*/
|
|
1476
1465
|
export const findFirstWithIndex = /*#__PURE__*/dual(2, (self, f) => {
|
|
@@ -1505,16 +1494,16 @@ export const findFirstWithIndex = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
1505
1494
|
*
|
|
1506
1495
|
* **Example** (Finding the last match)
|
|
1507
1496
|
*
|
|
1508
|
-
* ```ts
|
|
1509
|
-
* import { Array } from "effect"
|
|
1497
|
+
* ```ts import.meta.vitest
|
|
1498
|
+
* import { Array, Option } from "effect"
|
|
1510
1499
|
*
|
|
1511
|
-
*
|
|
1500
|
+
* Array.findLast([1, 2, 3, 4, 5], (n) => n % 2 === 0) // => Option.some(4)
|
|
1512
1501
|
* ```
|
|
1513
1502
|
*
|
|
1514
1503
|
* @see {@link findFirst} — search from the start
|
|
1515
1504
|
* @see {@link findLastIndex} — get the index instead
|
|
1516
1505
|
*
|
|
1517
|
-
* @category
|
|
1506
|
+
* @category searching
|
|
1518
1507
|
* @since 2.0.0
|
|
1519
1508
|
*/
|
|
1520
1509
|
export const findLast = /*#__PURE__*/dual(2, (self, f) => {
|
|
@@ -1548,24 +1537,25 @@ export const findLast = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
1548
1537
|
*
|
|
1549
1538
|
* **Example** (Inserting at an index)
|
|
1550
1539
|
*
|
|
1551
|
-
* ```ts
|
|
1552
|
-
* import { Array } from "effect"
|
|
1540
|
+
* ```ts import.meta.vitest
|
|
1541
|
+
* import { Array, Option } from "effect"
|
|
1553
1542
|
*
|
|
1554
|
-
*
|
|
1543
|
+
* Array.insertAt(["a", "b", "c", "e"], 3, "d") // => Option.some(["a", "b", "c", "d", "e"])
|
|
1555
1544
|
* ```
|
|
1556
1545
|
*
|
|
1557
1546
|
* @see {@link replace} — replace an existing element
|
|
1558
1547
|
* @see {@link modify} — transform an element at an index
|
|
1559
1548
|
*
|
|
1560
|
-
* @category
|
|
1549
|
+
* @category transforming
|
|
1561
1550
|
* @since 2.0.0
|
|
1562
1551
|
*/
|
|
1563
1552
|
export const insertAt = /*#__PURE__*/dual(3, (self, i, b) => {
|
|
1564
1553
|
const out = Array.from(self); // copy because `splice` mutates the array
|
|
1565
|
-
|
|
1554
|
+
const index = Math.floor(i);
|
|
1555
|
+
if (index !== out.length && isOutOfBounds(index, out)) {
|
|
1566
1556
|
return Option.none();
|
|
1567
1557
|
}
|
|
1568
|
-
out.splice(
|
|
1558
|
+
out.splice(index, 0, b);
|
|
1569
1559
|
return Option.some(out);
|
|
1570
1560
|
});
|
|
1571
1561
|
/**
|
|
@@ -1582,16 +1572,16 @@ export const insertAt = /*#__PURE__*/dual(3, (self, i, b) => {
|
|
|
1582
1572
|
*
|
|
1583
1573
|
* **Example** (Replacing an element)
|
|
1584
1574
|
*
|
|
1585
|
-
* ```ts
|
|
1586
|
-
* import { Array } from "effect"
|
|
1575
|
+
* ```ts import.meta.vitest
|
|
1576
|
+
* import { Array, Option } from "effect"
|
|
1587
1577
|
*
|
|
1588
|
-
*
|
|
1578
|
+
* Array.replace([1, 2, 3], 1, 4) // => Option.some([1, 4, 3])
|
|
1589
1579
|
* ```
|
|
1590
1580
|
*
|
|
1591
1581
|
* @see {@link modify} — transform an element with a function
|
|
1592
1582
|
* @see {@link insertAt} — insert without removing
|
|
1593
1583
|
*
|
|
1594
|
-
* @category
|
|
1584
|
+
* @category transforming
|
|
1595
1585
|
* @since 2.0.0
|
|
1596
1586
|
*/
|
|
1597
1587
|
export const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () => b));
|
|
@@ -1610,28 +1600,32 @@ export const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () =
|
|
|
1610
1600
|
*
|
|
1611
1601
|
* **Example** (Modifying an element)
|
|
1612
1602
|
*
|
|
1613
|
-
* ```ts
|
|
1614
|
-
* import { Array } from "effect"
|
|
1603
|
+
* ```ts import.meta.vitest
|
|
1604
|
+
* import { Array, Option } from "effect"
|
|
1605
|
+
*
|
|
1606
|
+
* const values = [1, 2, 3, 4]
|
|
1607
|
+
* const double = (n: number) => n * 2
|
|
1615
1608
|
*
|
|
1616
|
-
*
|
|
1617
|
-
*
|
|
1609
|
+
* Array.modify(values, 2, double) // => Option.some([1, 2, 6, 4])
|
|
1610
|
+
* Array.modify(values, 5, double) // => Option.none()
|
|
1618
1611
|
* ```
|
|
1619
1612
|
*
|
|
1620
1613
|
* @see {@link replace} — set a fixed value at an index
|
|
1621
1614
|
* @see {@link modifyHeadNonEmpty} — modify the first element
|
|
1622
1615
|
* @see {@link modifyLastNonEmpty} — modify the last element
|
|
1623
1616
|
*
|
|
1624
|
-
* @category
|
|
1617
|
+
* @category transforming
|
|
1625
1618
|
* @since 2.0.0
|
|
1626
1619
|
*/
|
|
1627
1620
|
export const modify = /*#__PURE__*/dual(3, (self, i, f) => {
|
|
1628
1621
|
const arr = Array.from(self);
|
|
1629
|
-
|
|
1622
|
+
const index = Math.floor(i);
|
|
1623
|
+
if (isOutOfBounds(index, arr)) {
|
|
1630
1624
|
return Option.none();
|
|
1631
1625
|
}
|
|
1632
1626
|
const out = arr;
|
|
1633
|
-
const b = f(arr[
|
|
1634
|
-
out[
|
|
1627
|
+
const b = f(arr[index]);
|
|
1628
|
+
out[index] = b;
|
|
1635
1629
|
return Option.some(out);
|
|
1636
1630
|
});
|
|
1637
1631
|
/**
|
|
@@ -1645,25 +1639,26 @@ export const modify = /*#__PURE__*/dual(3, (self, i, f) => {
|
|
|
1645
1639
|
*
|
|
1646
1640
|
* **Example** (Removing an element)
|
|
1647
1641
|
*
|
|
1648
|
-
* ```ts
|
|
1642
|
+
* ```ts import.meta.vitest
|
|
1649
1643
|
* import { Array } from "effect"
|
|
1650
1644
|
*
|
|
1651
|
-
*
|
|
1652
|
-
*
|
|
1645
|
+
* Array.remove([1, 2, 3, 4], 2) // => [1, 2, 4]
|
|
1646
|
+
* Array.remove([1, 2, 3, 4], 5) // => [1, 2, 3, 4]
|
|
1653
1647
|
* ```
|
|
1654
1648
|
*
|
|
1655
1649
|
* @see {@link insertAt} — insert an element
|
|
1656
1650
|
* @see {@link filter} — remove elements by predicate
|
|
1657
1651
|
*
|
|
1658
|
-
* @category
|
|
1652
|
+
* @category transforming
|
|
1659
1653
|
* @since 2.0.0
|
|
1660
1654
|
*/
|
|
1661
1655
|
export const remove = /*#__PURE__*/dual(2, (self, i) => {
|
|
1662
1656
|
const out = Array.from(self);
|
|
1663
|
-
|
|
1657
|
+
const index = Math.floor(i);
|
|
1658
|
+
if (isOutOfBounds(index, out)) {
|
|
1664
1659
|
return out;
|
|
1665
1660
|
}
|
|
1666
|
-
out.splice(
|
|
1661
|
+
out.splice(index, 1);
|
|
1667
1662
|
return out;
|
|
1668
1663
|
});
|
|
1669
1664
|
/**
|
|
@@ -1680,13 +1675,13 @@ export const remove = /*#__PURE__*/dual(2, (self, i) => {
|
|
|
1680
1675
|
*
|
|
1681
1676
|
* **Example** (Reversing an array)
|
|
1682
1677
|
*
|
|
1683
|
-
* ```ts
|
|
1678
|
+
* ```ts import.meta.vitest
|
|
1684
1679
|
* import { Array } from "effect"
|
|
1685
1680
|
*
|
|
1686
|
-
*
|
|
1681
|
+
* Array.reverse([1, 2, 3, 4]) // => [4, 3, 2, 1]
|
|
1687
1682
|
* ```
|
|
1688
1683
|
*
|
|
1689
|
-
* @category
|
|
1684
|
+
* @category transforming
|
|
1690
1685
|
* @since 2.0.0
|
|
1691
1686
|
*/
|
|
1692
1687
|
export const reverse = self => Array.from(self).reverse();
|
|
@@ -1704,10 +1699,10 @@ export const reverse = self => Array.from(self).reverse();
|
|
|
1704
1699
|
*
|
|
1705
1700
|
* **Example** (Sorting numbers)
|
|
1706
1701
|
*
|
|
1707
|
-
* ```ts
|
|
1702
|
+
* ```ts import.meta.vitest
|
|
1708
1703
|
* import { Array, Order } from "effect"
|
|
1709
1704
|
*
|
|
1710
|
-
*
|
|
1705
|
+
* Array.sort([3, 1, 4, 1, 5], Order.Number) // => [1, 1, 3, 4, 5]
|
|
1711
1706
|
* ```
|
|
1712
1707
|
*
|
|
1713
1708
|
* @see {@link sortWith} — sort by a mapping function
|
|
@@ -1736,17 +1731,16 @@ export const sort = /*#__PURE__*/dual(2, (self, O) => {
|
|
|
1736
1731
|
*
|
|
1737
1732
|
* **Example** (Sorting strings by length)
|
|
1738
1733
|
*
|
|
1739
|
-
* ```ts
|
|
1734
|
+
* ```ts import.meta.vitest
|
|
1740
1735
|
* import { Array, Order } from "effect"
|
|
1741
1736
|
*
|
|
1742
|
-
*
|
|
1743
|
-
* // ["b", "cc", "aaa"]
|
|
1737
|
+
* Array.sortWith(["aaa", "b", "cc"], (s) => s.length, Order.Number) // => ["b", "cc", "aaa"]
|
|
1744
1738
|
* ```
|
|
1745
1739
|
*
|
|
1746
1740
|
* @see {@link sort} for sorting with an `Order` that compares the elements directly
|
|
1747
1741
|
* @see {@link sortBy} for sorting with multiple `Order`s applied in sequence
|
|
1748
1742
|
*
|
|
1749
|
-
* @category
|
|
1743
|
+
* @category sorting
|
|
1750
1744
|
* @since 2.0.0
|
|
1751
1745
|
*/
|
|
1752
1746
|
export const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self).map(a => [a, f(a)]).sort(([, a], [, b]) => order(a, b)).map(([_]) => _));
|
|
@@ -1766,7 +1760,7 @@ export const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self
|
|
|
1766
1760
|
*
|
|
1767
1761
|
* **Example** (Sorting by multiple keys)
|
|
1768
1762
|
*
|
|
1769
|
-
* ```ts
|
|
1763
|
+
* ```ts import.meta.vitest
|
|
1770
1764
|
* import { Array, Order, pipe } from "effect"
|
|
1771
1765
|
*
|
|
1772
1766
|
* const users = [
|
|
@@ -1775,15 +1769,15 @@ export const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self
|
|
|
1775
1769
|
* { name: "Charlie", age: 30 }
|
|
1776
1770
|
* ]
|
|
1777
1771
|
*
|
|
1778
|
-
* const
|
|
1772
|
+
* const sortedUsers = pipe(
|
|
1779
1773
|
* users,
|
|
1780
1774
|
* Array.sortBy(
|
|
1781
1775
|
* Order.mapInput(Order.Number, (user: (typeof users)[number]) => user.age),
|
|
1782
1776
|
* Order.mapInput(Order.String, (user: (typeof users)[number]) => user.name)
|
|
1783
1777
|
* )
|
|
1784
1778
|
* )
|
|
1785
|
-
*
|
|
1786
|
-
*
|
|
1779
|
+
*
|
|
1780
|
+
* sortedUsers.map((user) => user.name).join(",") // => "Bob,Alice,Charlie"
|
|
1787
1781
|
* ```
|
|
1788
1782
|
*
|
|
1789
1783
|
* @see {@link sort} — sort by a single `Order`
|
|
@@ -1816,10 +1810,10 @@ export const sortBy = (...orders) => {
|
|
|
1816
1810
|
*
|
|
1817
1811
|
* **Example** (Zipping two arrays)
|
|
1818
1812
|
*
|
|
1819
|
-
* ```ts
|
|
1813
|
+
* ```ts import.meta.vitest
|
|
1820
1814
|
* import { Array } from "effect"
|
|
1821
1815
|
*
|
|
1822
|
-
*
|
|
1816
|
+
* Array.zip([1, 2, 3], ["a", "b"]) // => [[1, "a"], [2, "b"]]
|
|
1823
1817
|
* ```
|
|
1824
1818
|
*
|
|
1825
1819
|
* @see {@link zipWith} — zip with a combiner function
|
|
@@ -1840,10 +1834,10 @@ export const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, Tupl
|
|
|
1840
1834
|
*
|
|
1841
1835
|
* **Example** (Zipping with addition)
|
|
1842
1836
|
*
|
|
1843
|
-
* ```ts
|
|
1837
|
+
* ```ts import.meta.vitest
|
|
1844
1838
|
* import { Array } from "effect"
|
|
1845
1839
|
*
|
|
1846
|
-
*
|
|
1840
|
+
* Array.zipWith([1, 2, 3], [4, 5, 6], (a, b) => a + b) // => [5, 7, 9]
|
|
1847
1841
|
* ```
|
|
1848
1842
|
*
|
|
1849
1843
|
* @see {@link zip} — zip into tuples
|
|
@@ -1869,10 +1863,10 @@ export const zipWith = /*#__PURE__*/dual(3, (self, that, f) => {
|
|
|
1869
1863
|
*
|
|
1870
1864
|
* **Example** (Unzipping pairs)
|
|
1871
1865
|
*
|
|
1872
|
-
* ```ts
|
|
1866
|
+
* ```ts import.meta.vitest
|
|
1873
1867
|
* import { Array } from "effect"
|
|
1874
1868
|
*
|
|
1875
|
-
*
|
|
1869
|
+
* Array.unzip([[1, "a"], [2, "b"], [3, "c"]]) // => [[1, 2, 3], ["a", "b", "c"]]
|
|
1876
1870
|
* ```
|
|
1877
1871
|
*
|
|
1878
1872
|
* @see {@link zip} — combine two arrays into pairs
|
|
@@ -1907,15 +1901,15 @@ export const unzip = self => {
|
|
|
1907
1901
|
*
|
|
1908
1902
|
* **Example** (Interspersing a separator)
|
|
1909
1903
|
*
|
|
1910
|
-
* ```ts
|
|
1904
|
+
* ```ts import.meta.vitest
|
|
1911
1905
|
* import { Array } from "effect"
|
|
1912
1906
|
*
|
|
1913
|
-
*
|
|
1907
|
+
* Array.intersperse([1, 2, 3], 0) // => [1, 0, 2, 0, 3]
|
|
1914
1908
|
* ```
|
|
1915
1909
|
*
|
|
1916
1910
|
* @see {@link join} — intersperse and join into a string
|
|
1917
1911
|
*
|
|
1918
|
-
* @category
|
|
1912
|
+
* @category transforming
|
|
1919
1913
|
* @since 2.0.0
|
|
1920
1914
|
*/
|
|
1921
1915
|
export const intersperse = /*#__PURE__*/dual(2, (self, middle) => {
|
|
@@ -1943,16 +1937,16 @@ export const intersperse = /*#__PURE__*/dual(2, (self, middle) => {
|
|
|
1943
1937
|
*
|
|
1944
1938
|
* **Example** (Modifying the head)
|
|
1945
1939
|
*
|
|
1946
|
-
* ```ts
|
|
1940
|
+
* ```ts import.meta.vitest
|
|
1947
1941
|
* import { Array } from "effect"
|
|
1948
1942
|
*
|
|
1949
|
-
*
|
|
1943
|
+
* Array.modifyHeadNonEmpty([1, 2, 3], (n) => n * 10) // => [10, 2, 3]
|
|
1950
1944
|
* ```
|
|
1951
1945
|
*
|
|
1952
1946
|
* @see {@link setHeadNonEmpty} — replace with a fixed value
|
|
1953
1947
|
* @see {@link modifyLastNonEmpty} — modify the last element
|
|
1954
1948
|
*
|
|
1955
|
-
* @category
|
|
1949
|
+
* @category transforming
|
|
1956
1950
|
* @since 4.0.0
|
|
1957
1951
|
*/
|
|
1958
1952
|
export const modifyHeadNonEmpty = /*#__PURE__*/dual(2, (self, f) => [f(headNonEmpty(self)), ...tailNonEmpty(self)]);
|
|
@@ -1966,16 +1960,16 @@ export const modifyHeadNonEmpty = /*#__PURE__*/dual(2, (self, f) => [f(headNonEm
|
|
|
1966
1960
|
*
|
|
1967
1961
|
* **Example** (Setting the head)
|
|
1968
1962
|
*
|
|
1969
|
-
* ```ts
|
|
1963
|
+
* ```ts import.meta.vitest
|
|
1970
1964
|
* import { Array } from "effect"
|
|
1971
1965
|
*
|
|
1972
|
-
*
|
|
1966
|
+
* Array.setHeadNonEmpty([1, 2, 3], 10) // => [10, 2, 3]
|
|
1973
1967
|
* ```
|
|
1974
1968
|
*
|
|
1975
1969
|
* @see {@link modifyHeadNonEmpty} — transform the head with a function
|
|
1976
1970
|
* @see {@link setLastNonEmpty} — replace the last element
|
|
1977
1971
|
*
|
|
1978
|
-
* @category
|
|
1972
|
+
* @category transforming
|
|
1979
1973
|
* @since 4.0.0
|
|
1980
1974
|
*/
|
|
1981
1975
|
export const setHeadNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyHeadNonEmpty(self, () => b));
|
|
@@ -1990,16 +1984,16 @@ export const setHeadNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyHeadNonEm
|
|
|
1990
1984
|
*
|
|
1991
1985
|
* **Example** (Modifying the last element)
|
|
1992
1986
|
*
|
|
1993
|
-
* ```ts
|
|
1987
|
+
* ```ts import.meta.vitest
|
|
1994
1988
|
* import { Array } from "effect"
|
|
1995
1989
|
*
|
|
1996
|
-
*
|
|
1990
|
+
* Array.modifyLastNonEmpty([1, 2, 3], (n) => n * 2) // => [1, 2, 6]
|
|
1997
1991
|
* ```
|
|
1998
1992
|
*
|
|
1999
1993
|
* @see {@link setLastNonEmpty} — replace with a fixed value
|
|
2000
1994
|
* @see {@link modifyHeadNonEmpty} — modify the first element
|
|
2001
1995
|
*
|
|
2002
|
-
* @category
|
|
1996
|
+
* @category transforming
|
|
2003
1997
|
* @since 4.0.0
|
|
2004
1998
|
*/
|
|
2005
1999
|
export const modifyLastNonEmpty = /*#__PURE__*/dual(2, (self, f) => append(initNonEmpty(self), f(lastNonEmpty(self))));
|
|
@@ -2013,16 +2007,16 @@ export const modifyLastNonEmpty = /*#__PURE__*/dual(2, (self, f) => append(initN
|
|
|
2013
2007
|
*
|
|
2014
2008
|
* **Example** (Setting the last element)
|
|
2015
2009
|
*
|
|
2016
|
-
* ```ts
|
|
2010
|
+
* ```ts import.meta.vitest
|
|
2017
2011
|
* import { Array } from "effect"
|
|
2018
2012
|
*
|
|
2019
|
-
*
|
|
2013
|
+
* Array.setLastNonEmpty([1, 2, 3], 4) // => [1, 2, 4]
|
|
2020
2014
|
* ```
|
|
2021
2015
|
*
|
|
2022
2016
|
* @see {@link modifyLastNonEmpty} — transform the last element with a function
|
|
2023
2017
|
* @see {@link setHeadNonEmpty} — replace the first element
|
|
2024
2018
|
*
|
|
2025
|
-
* @category
|
|
2019
|
+
* @category transforming
|
|
2026
2020
|
* @since 4.0.0
|
|
2027
2021
|
*/
|
|
2028
2022
|
export const setLastNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyLastNonEmpty(self, () => b));
|
|
@@ -2043,16 +2037,16 @@ export const setLastNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyLastNonEm
|
|
|
2043
2037
|
*
|
|
2044
2038
|
* **Example** (Rotating elements)
|
|
2045
2039
|
*
|
|
2046
|
-
* ```ts
|
|
2040
|
+
* ```ts import.meta.vitest
|
|
2047
2041
|
* import { Array } from "effect"
|
|
2048
2042
|
*
|
|
2049
|
-
*
|
|
2043
|
+
* Array.rotate(["a", "b", "c", "d"], 2) // => ["c", "d", "a", "b"]
|
|
2050
2044
|
* ```
|
|
2051
2045
|
*
|
|
2052
2046
|
* @see {@link take} for taking a fixed number of elements from the start
|
|
2053
2047
|
* @see {@link drop} for dropping a fixed number of elements from the start
|
|
2054
2048
|
*
|
|
2055
|
-
* @category
|
|
2049
|
+
* @category transforming
|
|
2056
2050
|
* @since 2.0.0
|
|
2057
2051
|
*/
|
|
2058
2052
|
export const rotate = /*#__PURE__*/dual(2, (self, n) => {
|
|
@@ -2082,16 +2076,17 @@ export const rotate = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2082
2076
|
*
|
|
2083
2077
|
* **Example** (Checking with custom equality)
|
|
2084
2078
|
*
|
|
2085
|
-
* ```ts
|
|
2079
|
+
* ```ts import.meta.vitest
|
|
2086
2080
|
* import { Array, pipe } from "effect"
|
|
2087
2081
|
*
|
|
2088
2082
|
* const containsNumber = Array.containsWith((a: number, b: number) => a === b)
|
|
2089
|
-
*
|
|
2083
|
+
*
|
|
2084
|
+
* pipe([1, 2, 3, 4], containsNumber(3)) // => true
|
|
2090
2085
|
* ```
|
|
2091
2086
|
*
|
|
2092
2087
|
* @see {@link contains} for the `Equal.equivalence()` variant
|
|
2093
2088
|
*
|
|
2094
|
-
* @category
|
|
2089
|
+
* @category predicates
|
|
2095
2090
|
* @since 2.0.0
|
|
2096
2091
|
*/
|
|
2097
2092
|
export const containsWith = isEquivalent => dual(2, (self, a) => {
|
|
@@ -2113,15 +2108,15 @@ export const containsWith = isEquivalent => dual(2, (self, a) => {
|
|
|
2113
2108
|
*
|
|
2114
2109
|
* **Example** (Checking membership)
|
|
2115
2110
|
*
|
|
2116
|
-
* ```ts
|
|
2111
|
+
* ```ts import.meta.vitest
|
|
2117
2112
|
* import { Array, pipe } from "effect"
|
|
2118
2113
|
*
|
|
2119
|
-
*
|
|
2114
|
+
* pipe(["a", "b", "c", "d"], Array.contains("c")) // => true
|
|
2120
2115
|
* ```
|
|
2121
2116
|
*
|
|
2122
2117
|
* @see {@link containsWith} — use custom equality
|
|
2123
2118
|
*
|
|
2124
|
-
* @category
|
|
2119
|
+
* @category predicates
|
|
2125
2120
|
* @since 2.0.0
|
|
2126
2121
|
*/
|
|
2127
2122
|
export const contains = /*#__PURE__*/containsWith(/*#__PURE__*/Equal.asEquivalence());
|
|
@@ -2141,20 +2136,16 @@ export const contains = /*#__PURE__*/containsWith(/*#__PURE__*/Equal.asEquivalen
|
|
|
2141
2136
|
*
|
|
2142
2137
|
* **Example** (Chopping an array)
|
|
2143
2138
|
*
|
|
2144
|
-
* ```ts
|
|
2139
|
+
* ```ts import.meta.vitest
|
|
2145
2140
|
* import { Array } from "effect"
|
|
2146
2141
|
*
|
|
2147
|
-
*
|
|
2148
|
-
* [1, 2, 3, 4, 5],
|
|
2149
|
-
* (as): [number, Array<number>] => [as[0] * 2, as.slice(1)]
|
|
2150
|
-
* )
|
|
2151
|
-
* console.log(result) // [2, 4, 6, 8, 10]
|
|
2142
|
+
* Array.chop([1, 2, 3, 4, 5], (as): [number, Array<number>] => [as[0] * 2, as.slice(1)]) // => [2, 4, 6, 8, 10]
|
|
2152
2143
|
* ```
|
|
2153
2144
|
*
|
|
2154
2145
|
* @see {@link chunksOf} — split into fixed-size chunks
|
|
2155
2146
|
* @see {@link splitAt} — split at an index
|
|
2156
2147
|
*
|
|
2157
|
-
* @category
|
|
2148
|
+
* @category splitting
|
|
2158
2149
|
* @since 2.0.0
|
|
2159
2150
|
*/
|
|
2160
2151
|
export const chop = /*#__PURE__*/dual(2, (self, f) => {
|
|
@@ -2186,10 +2177,10 @@ export const chop = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
2186
2177
|
*
|
|
2187
2178
|
* **Example** (Splitting at an index)
|
|
2188
2179
|
*
|
|
2189
|
-
* ```ts
|
|
2180
|
+
* ```ts import.meta.vitest
|
|
2190
2181
|
* import { Array } from "effect"
|
|
2191
2182
|
*
|
|
2192
|
-
*
|
|
2183
|
+
* Array.splitAt([1, 2, 3, 4, 5], 3) // => [[1, 2, 3], [4, 5]]
|
|
2193
2184
|
* ```
|
|
2194
2185
|
*
|
|
2195
2186
|
* @see {@link splitAtNonEmpty} — for non-empty arrays
|
|
@@ -2220,11 +2211,10 @@ export const splitAt = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2220
2211
|
*
|
|
2221
2212
|
* **Example** (Splitting a non-empty array)
|
|
2222
2213
|
*
|
|
2223
|
-
* ```ts
|
|
2214
|
+
* ```ts import.meta.vitest
|
|
2224
2215
|
* import { Array } from "effect"
|
|
2225
2216
|
*
|
|
2226
|
-
*
|
|
2227
|
-
* // [["a", "b", "c"], ["d", "e"]]
|
|
2217
|
+
* Array.splitAtNonEmpty(["a", "b", "c", "d", "e"], 3) // => [["a", "b", "c"], ["d", "e"]]
|
|
2228
2218
|
* ```
|
|
2229
2219
|
*
|
|
2230
2220
|
* @see {@link splitAt} — for possibly-empty arrays
|
|
@@ -2249,10 +2239,10 @@ export const splitAtNonEmpty = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2249
2239
|
*
|
|
2250
2240
|
* **Example** (Splitting into groups)
|
|
2251
2241
|
*
|
|
2252
|
-
* ```ts
|
|
2242
|
+
* ```ts import.meta.vitest
|
|
2253
2243
|
* import { Array } from "effect"
|
|
2254
2244
|
*
|
|
2255
|
-
*
|
|
2245
|
+
* Array.split([1, 2, 3, 4, 5, 6, 7, 8], 3) // => [[1, 2, 3], [4, 5, 6], [7, 8]]
|
|
2256
2246
|
* ```
|
|
2257
2247
|
*
|
|
2258
2248
|
* @see {@link chunksOf} — split into fixed-size chunks
|
|
@@ -2275,10 +2265,10 @@ export const split = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2275
2265
|
*
|
|
2276
2266
|
* **Example** (Splitting at a condition)
|
|
2277
2267
|
*
|
|
2278
|
-
* ```ts
|
|
2268
|
+
* ```ts import.meta.vitest
|
|
2279
2269
|
* import { Array } from "effect"
|
|
2280
2270
|
*
|
|
2281
|
-
*
|
|
2271
|
+
* Array.splitWhere([1, 2, 3, 4, 5], (n) => n > 3) // => [[1, 2, 3], [4, 5]]
|
|
2282
2272
|
* ```
|
|
2283
2273
|
*
|
|
2284
2274
|
* @see {@link span} — splits at the first element that fails the predicate
|
|
@@ -2303,18 +2293,19 @@ export const splitWhere = /*#__PURE__*/dual(2, (self, predicate) => span(self, (
|
|
|
2303
2293
|
*
|
|
2304
2294
|
* **Example** (Copying an array)
|
|
2305
2295
|
*
|
|
2306
|
-
* ```ts
|
|
2296
|
+
* ```ts import.meta.vitest
|
|
2307
2297
|
* import { Array } from "effect"
|
|
2308
2298
|
*
|
|
2309
2299
|
* const original = [1, 2, 3]
|
|
2310
2300
|
* const copied = Array.copy(original)
|
|
2311
|
-
*
|
|
2312
|
-
*
|
|
2301
|
+
*
|
|
2302
|
+
* copied // => [1, 2, 3]
|
|
2303
|
+
* original === copied // => false
|
|
2313
2304
|
* ```
|
|
2314
2305
|
*
|
|
2315
2306
|
* @see {@link fromIterable} — returns the same reference for arrays
|
|
2316
2307
|
*
|
|
2317
|
-
* @category
|
|
2308
|
+
* @category transforming
|
|
2318
2309
|
* @since 2.0.0
|
|
2319
2310
|
*/
|
|
2320
2311
|
export const copy = self => self.slice();
|
|
@@ -2332,16 +2323,16 @@ export const copy = self => self.slice();
|
|
|
2332
2323
|
*
|
|
2333
2324
|
* **Example** (Padding an array)
|
|
2334
2325
|
*
|
|
2335
|
-
* ```ts
|
|
2326
|
+
* ```ts import.meta.vitest
|
|
2336
2327
|
* import { Array } from "effect"
|
|
2337
2328
|
*
|
|
2338
|
-
*
|
|
2329
|
+
* Array.pad([1, 2, 3], 6, 0) // => [1, 2, 3, 0, 0, 0]
|
|
2339
2330
|
* ```
|
|
2340
2331
|
*
|
|
2341
2332
|
* @see {@link take} — truncate without padding
|
|
2342
2333
|
* @see {@link replicate} — create an array of a single repeated value
|
|
2343
2334
|
*
|
|
2344
|
-
* @category
|
|
2335
|
+
* @category transforming
|
|
2345
2336
|
* @since 3.8.4
|
|
2346
2337
|
*/
|
|
2347
2338
|
export const pad = /*#__PURE__*/dual(3, (self, n, fill) => {
|
|
@@ -2366,10 +2357,10 @@ export const pad = /*#__PURE__*/dual(3, (self, n, fill) => {
|
|
|
2366
2357
|
*
|
|
2367
2358
|
* **Example** (Chunking an array)
|
|
2368
2359
|
*
|
|
2369
|
-
* ```ts
|
|
2360
|
+
* ```ts import.meta.vitest
|
|
2370
2361
|
* import { Array } from "effect"
|
|
2371
2362
|
*
|
|
2372
|
-
*
|
|
2363
|
+
* Array.chunksOf([1, 2, 3, 4, 5], 2) // => [[1, 2], [3, 4], [5]]
|
|
2373
2364
|
* ```
|
|
2374
2365
|
*
|
|
2375
2366
|
* @see {@link split} — split into a given number of groups
|
|
@@ -2399,11 +2390,13 @@ export const chunksOf = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2399
2390
|
*
|
|
2400
2391
|
* **Example** (Creating sliding windows)
|
|
2401
2392
|
*
|
|
2402
|
-
* ```ts
|
|
2393
|
+
* ```ts import.meta.vitest
|
|
2403
2394
|
* import { Array } from "effect"
|
|
2404
2395
|
*
|
|
2405
|
-
*
|
|
2406
|
-
*
|
|
2396
|
+
* const values = [1, 2, 3, 4, 5]
|
|
2397
|
+
*
|
|
2398
|
+
* Array.window(values, 3) // => [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
|
|
2399
|
+
* Array.window(values, 6) // => []
|
|
2407
2400
|
* ```
|
|
2408
2401
|
*
|
|
2409
2402
|
* @see {@link chunksOf} — non-overlapping chunks
|
|
@@ -2435,11 +2428,13 @@ export const window = /*#__PURE__*/dual(2, (self, n) => {
|
|
|
2435
2428
|
*
|
|
2436
2429
|
* **Example** (Grouping consecutive equal elements)
|
|
2437
2430
|
*
|
|
2438
|
-
* ```ts
|
|
2431
|
+
* ```ts import.meta.vitest
|
|
2439
2432
|
* import { Array } from "effect"
|
|
2440
2433
|
*
|
|
2441
|
-
*
|
|
2442
|
-
*
|
|
2434
|
+
* Array.groupWith(
|
|
2435
|
+
* ["a", "a", "b", "b", "b", "c", "a"],
|
|
2436
|
+
* (x, y) => x === y
|
|
2437
|
+
* ) // => [["a", "a"], ["b", "b", "b"], ["c"], ["a"]]
|
|
2443
2438
|
* ```
|
|
2444
2439
|
*
|
|
2445
2440
|
* @see {@link group} for grouping adjacent elements with `Equal.equivalence()`
|
|
@@ -2476,10 +2471,10 @@ export const groupWith = /*#__PURE__*/dual(2, (self, isEquivalent) => chop(self,
|
|
|
2476
2471
|
*
|
|
2477
2472
|
* **Example** (Grouping adjacent equal elements)
|
|
2478
2473
|
*
|
|
2479
|
-
* ```ts
|
|
2474
|
+
* ```ts import.meta.vitest
|
|
2480
2475
|
* import { Array } from "effect"
|
|
2481
2476
|
*
|
|
2482
|
-
*
|
|
2477
|
+
* Array.group([1, 1, 2, 2, 2, 3, 1]) // => [[1, 1], [2, 2, 2], [3], [1]]
|
|
2483
2478
|
* ```
|
|
2484
2479
|
*
|
|
2485
2480
|
* @see {@link groupWith} — use custom equality
|
|
@@ -2504,7 +2499,7 @@ export const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.asEquivalence());
|
|
|
2504
2499
|
*
|
|
2505
2500
|
* **Example** (Grouping by a property)
|
|
2506
2501
|
*
|
|
2507
|
-
* ```ts
|
|
2502
|
+
* ```ts import.meta.vitest
|
|
2508
2503
|
* import { Array } from "effect"
|
|
2509
2504
|
*
|
|
2510
2505
|
* const people = [
|
|
@@ -2513,9 +2508,7 @@ export const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.asEquivalence());
|
|
|
2513
2508
|
* { name: "Charlie", group: "A" }
|
|
2514
2509
|
* ]
|
|
2515
2510
|
*
|
|
2516
|
-
*
|
|
2517
|
-
* console.log(result)
|
|
2518
|
-
* // { A: [{ name: "Alice", group: "A" }, { name: "Charlie", group: "A" }], B: [{ name: "Bob", group: "B" }] }
|
|
2511
|
+
* Object.keys(Array.groupBy(people, (person) => person.group)).join(",") // => "A,B"
|
|
2519
2512
|
* ```
|
|
2520
2513
|
*
|
|
2521
2514
|
* @see {@link group} — group adjacent equal elements
|
|
@@ -2531,11 +2524,46 @@ export const groupBy = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
2531
2524
|
if (Object.hasOwn(out, k)) {
|
|
2532
2525
|
out[k].push(a);
|
|
2533
2526
|
} else {
|
|
2534
|
-
out
|
|
2527
|
+
InternalRecord.assignProperty(out, k, [a]);
|
|
2535
2528
|
}
|
|
2536
2529
|
}
|
|
2537
2530
|
return out;
|
|
2538
2531
|
});
|
|
2532
|
+
const hashBucketsAdd = (buckets, value) => {
|
|
2533
|
+
const hash = Hash.hash(value);
|
|
2534
|
+
const bucket = buckets.get(hash);
|
|
2535
|
+
if (bucket === undefined) {
|
|
2536
|
+
buckets.set(hash, [value]);
|
|
2537
|
+
return true;
|
|
2538
|
+
}
|
|
2539
|
+
// Hash collisions still require an Effect equality check.
|
|
2540
|
+
for (const previous of bucket) {
|
|
2541
|
+
if (Equal.equals(previous, value)) {
|
|
2542
|
+
return false;
|
|
2543
|
+
}
|
|
2544
|
+
}
|
|
2545
|
+
bucket.push(value);
|
|
2546
|
+
return true;
|
|
2547
|
+
};
|
|
2548
|
+
const makeHashBuckets = values => {
|
|
2549
|
+
const buckets = new Map();
|
|
2550
|
+
for (const value of values) {
|
|
2551
|
+
hashBucketsAdd(buckets, value);
|
|
2552
|
+
}
|
|
2553
|
+
return buckets;
|
|
2554
|
+
};
|
|
2555
|
+
const hashBucketsHas = (buckets, value) => {
|
|
2556
|
+
const bucket = buckets.get(Hash.hash(value));
|
|
2557
|
+
if (bucket === undefined) {
|
|
2558
|
+
return false;
|
|
2559
|
+
}
|
|
2560
|
+
for (const candidate of bucket) {
|
|
2561
|
+
if (Equal.equals(candidate, value)) {
|
|
2562
|
+
return true;
|
|
2563
|
+
}
|
|
2564
|
+
}
|
|
2565
|
+
return false;
|
|
2566
|
+
};
|
|
2539
2567
|
/**
|
|
2540
2568
|
* Computes the union of two arrays using a custom equivalence, removing
|
|
2541
2569
|
* duplicates.
|
|
@@ -2547,17 +2575,17 @@ export const groupBy = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
2547
2575
|
*
|
|
2548
2576
|
* **Example** (Computing unions with custom equality)
|
|
2549
2577
|
*
|
|
2550
|
-
* ```ts
|
|
2578
|
+
* ```ts import.meta.vitest
|
|
2551
2579
|
* import { Array } from "effect"
|
|
2552
2580
|
*
|
|
2553
|
-
*
|
|
2581
|
+
* Array.unionWith([1, 2], [2, 3], (a, b) => a === b) // => [1, 2, 3]
|
|
2554
2582
|
* ```
|
|
2555
2583
|
*
|
|
2556
2584
|
* @see {@link union} for the `Equal.equivalence()` variant
|
|
2557
2585
|
* @see {@link intersectionWith} for keeping elements present in both arrays
|
|
2558
2586
|
* @see {@link differenceWith} for keeping elements present only in the first array
|
|
2559
2587
|
*
|
|
2560
|
-
* @category
|
|
2588
|
+
* @category set operations
|
|
2561
2589
|
* @since 2.0.0
|
|
2562
2590
|
*/
|
|
2563
2591
|
export const unionWith = /*#__PURE__*/dual(3, (self, that, isEquivalent) => {
|
|
@@ -2578,20 +2606,27 @@ export const unionWith = /*#__PURE__*/dual(3, (self, that, isEquivalent) => {
|
|
|
2578
2606
|
*
|
|
2579
2607
|
* **Example** (Computing array unions)
|
|
2580
2608
|
*
|
|
2581
|
-
* ```ts
|
|
2609
|
+
* ```ts import.meta.vitest
|
|
2582
2610
|
* import { Array } from "effect"
|
|
2583
2611
|
*
|
|
2584
|
-
*
|
|
2612
|
+
* Array.union([1, 2], [2, 3]) // => [1, 2, 3]
|
|
2585
2613
|
* ```
|
|
2586
2614
|
*
|
|
2587
2615
|
* @see {@link unionWith} — use custom equality
|
|
2588
2616
|
* @see {@link intersection} — elements in both arrays
|
|
2589
2617
|
* @see {@link difference} — elements only in the first array
|
|
2590
2618
|
*
|
|
2591
|
-
* @category
|
|
2619
|
+
* @category set operations
|
|
2592
2620
|
* @since 2.0.0
|
|
2593
2621
|
*/
|
|
2594
|
-
export const union = /*#__PURE__*/dual(2, (self, that) =>
|
|
2622
|
+
export const union = /*#__PURE__*/dual(2, (self, that) => {
|
|
2623
|
+
const a = fromIterable(self);
|
|
2624
|
+
const b = fromIterable(that);
|
|
2625
|
+
if (isReadonlyArrayNonEmpty(a)) {
|
|
2626
|
+
return isReadonlyArrayNonEmpty(b) ? dedupe(appendAll(a, b)) : a;
|
|
2627
|
+
}
|
|
2628
|
+
return b;
|
|
2629
|
+
});
|
|
2595
2630
|
/**
|
|
2596
2631
|
* Computes the intersection of two arrays using a custom equivalence. Order is
|
|
2597
2632
|
* determined by the first array.
|
|
@@ -2603,20 +2638,21 @@ export const union = /*#__PURE__*/dual(2, (self, that) => unionWith(self, that,
|
|
|
2603
2638
|
*
|
|
2604
2639
|
* **Example** (Computing intersections with custom equality)
|
|
2605
2640
|
*
|
|
2606
|
-
* ```ts
|
|
2641
|
+
* ```ts import.meta.vitest
|
|
2607
2642
|
* import { Array } from "effect"
|
|
2608
2643
|
*
|
|
2609
2644
|
* const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }]
|
|
2610
2645
|
* const array2 = [{ id: 3 }, { id: 4 }, { id: 1 }]
|
|
2611
2646
|
* const isEquivalent = (a: { id: number }, b: { id: number }) => a.id === b.id
|
|
2612
|
-
*
|
|
2647
|
+
*
|
|
2648
|
+
* Array.intersectionWith(isEquivalent)(array2)(array1) // => [{ id: 1 }, { id: 3 }]
|
|
2613
2649
|
* ```
|
|
2614
2650
|
*
|
|
2615
2651
|
* @see {@link intersection} for the `Equal.equivalence()` variant
|
|
2616
2652
|
* @see {@link unionWith} for keeping values from either array with custom equality
|
|
2617
2653
|
* @see {@link differenceWith} for keeping values only from the first array with custom equality
|
|
2618
2654
|
*
|
|
2619
|
-
* @category
|
|
2655
|
+
* @category set operations
|
|
2620
2656
|
* @since 2.0.0
|
|
2621
2657
|
*/
|
|
2622
2658
|
export const intersectionWith = isEquivalent => {
|
|
@@ -2637,20 +2673,28 @@ export const intersectionWith = isEquivalent => {
|
|
|
2637
2673
|
*
|
|
2638
2674
|
* **Example** (Computing array intersections)
|
|
2639
2675
|
*
|
|
2640
|
-
* ```ts
|
|
2676
|
+
* ```ts import.meta.vitest
|
|
2641
2677
|
* import { Array } from "effect"
|
|
2642
2678
|
*
|
|
2643
|
-
*
|
|
2679
|
+
* Array.intersection([1, 2, 3], [3, 4, 1]) // => [1, 3]
|
|
2644
2680
|
* ```
|
|
2645
2681
|
*
|
|
2646
2682
|
* @see {@link intersectionWith} — use custom equality
|
|
2647
2683
|
* @see {@link union} — elements in either array
|
|
2648
2684
|
* @see {@link difference} — elements only in the first array
|
|
2649
2685
|
*
|
|
2650
|
-
* @category
|
|
2686
|
+
* @category set operations
|
|
2651
2687
|
* @since 2.0.0
|
|
2652
2688
|
*/
|
|
2653
|
-
export const intersection = /*#__PURE__*/
|
|
2689
|
+
export const intersection = /*#__PURE__*/dual(2, (self, that) => {
|
|
2690
|
+
const thatArray = fromIterable(that);
|
|
2691
|
+
const selfArray = fromIterable(self);
|
|
2692
|
+
if (selfArray.length === 0 || thatArray.length === 0) {
|
|
2693
|
+
return [];
|
|
2694
|
+
}
|
|
2695
|
+
const buckets = makeHashBuckets(thatArray);
|
|
2696
|
+
return selfArray.filter(value => hashBucketsHas(buckets, value));
|
|
2697
|
+
});
|
|
2654
2698
|
/**
|
|
2655
2699
|
* Computes elements in the first array that are not in the second, using a
|
|
2656
2700
|
* custom equivalence.
|
|
@@ -2662,18 +2706,17 @@ export const intersection = /*#__PURE__*/intersectionWith(/*#__PURE__*/Equal.asE
|
|
|
2662
2706
|
*
|
|
2663
2707
|
* **Example** (Computing differences with custom equality)
|
|
2664
2708
|
*
|
|
2665
|
-
* ```ts
|
|
2709
|
+
* ```ts import.meta.vitest
|
|
2666
2710
|
* import { Array } from "effect"
|
|
2667
2711
|
*
|
|
2668
|
-
*
|
|
2669
|
-
* console.log(diff) // [1]
|
|
2712
|
+
* Array.differenceWith<number>((a, b) => a === b)([1, 2, 3], [2, 3, 4]) // => [1]
|
|
2670
2713
|
* ```
|
|
2671
2714
|
*
|
|
2672
2715
|
* @see {@link difference} for the `Equal.equivalence()` variant
|
|
2673
2716
|
* @see {@link unionWith} for keeping values from either array with custom equality
|
|
2674
2717
|
* @see {@link intersectionWith} for keeping values present in both arrays with custom equality
|
|
2675
2718
|
*
|
|
2676
|
-
* @category
|
|
2719
|
+
* @category set operations
|
|
2677
2720
|
* @since 2.0.0
|
|
2678
2721
|
*/
|
|
2679
2722
|
export const differenceWith = isEquivalent => {
|
|
@@ -2694,20 +2737,31 @@ export const differenceWith = isEquivalent => {
|
|
|
2694
2737
|
*
|
|
2695
2738
|
* **Example** (Computing array differences)
|
|
2696
2739
|
*
|
|
2697
|
-
* ```ts
|
|
2740
|
+
* ```ts import.meta.vitest
|
|
2698
2741
|
* import { Array } from "effect"
|
|
2699
2742
|
*
|
|
2700
|
-
*
|
|
2743
|
+
* Array.difference([1, 2, 3], [2, 3, 4]) // => [1]
|
|
2701
2744
|
* ```
|
|
2702
2745
|
*
|
|
2703
2746
|
* @see {@link differenceWith} — use custom equality
|
|
2704
2747
|
* @see {@link union} — elements in either array
|
|
2705
2748
|
* @see {@link intersection} — elements in both arrays
|
|
2706
2749
|
*
|
|
2707
|
-
* @category
|
|
2750
|
+
* @category set operations
|
|
2708
2751
|
* @since 2.0.0
|
|
2709
2752
|
*/
|
|
2710
|
-
export const difference = /*#__PURE__*/
|
|
2753
|
+
export const difference = /*#__PURE__*/dual(2, (self, that) => {
|
|
2754
|
+
const thatArray = fromIterable(that);
|
|
2755
|
+
const selfArray = fromIterable(self);
|
|
2756
|
+
if (selfArray.length === 0) {
|
|
2757
|
+
return [];
|
|
2758
|
+
}
|
|
2759
|
+
if (thatArray.length === 0) {
|
|
2760
|
+
return selfArray.filter(() => true);
|
|
2761
|
+
}
|
|
2762
|
+
const buckets = makeHashBuckets(thatArray);
|
|
2763
|
+
return selfArray.filter(value => !hashBucketsHas(buckets, value));
|
|
2764
|
+
});
|
|
2711
2765
|
/**
|
|
2712
2766
|
* Creates an empty array.
|
|
2713
2767
|
*
|
|
@@ -2717,11 +2771,10 @@ export const difference = /*#__PURE__*/differenceWith(/*#__PURE__*/Equal.asEquiv
|
|
|
2717
2771
|
*
|
|
2718
2772
|
* **Example** (Creating an empty array)
|
|
2719
2773
|
*
|
|
2720
|
-
* ```ts
|
|
2774
|
+
* ```ts import.meta.vitest
|
|
2721
2775
|
* import { Array } from "effect"
|
|
2722
2776
|
*
|
|
2723
|
-
*
|
|
2724
|
-
* console.log(result) // []
|
|
2777
|
+
* Array.empty<number>() // => []
|
|
2725
2778
|
* ```
|
|
2726
2779
|
*
|
|
2727
2780
|
* @see {@link of} — create a single-element array
|
|
@@ -2736,10 +2789,10 @@ export const empty = () => [];
|
|
|
2736
2789
|
*
|
|
2737
2790
|
* **Example** (Creating a single-element array)
|
|
2738
2791
|
*
|
|
2739
|
-
* ```ts
|
|
2792
|
+
* ```ts import.meta.vitest
|
|
2740
2793
|
* import { Array } from "effect"
|
|
2741
2794
|
*
|
|
2742
|
-
*
|
|
2795
|
+
* Array.of(1) // => [1]
|
|
2743
2796
|
* ```
|
|
2744
2797
|
*
|
|
2745
2798
|
* @see {@link make} — create from multiple values
|
|
@@ -2763,10 +2816,10 @@ export const of = a => [a];
|
|
|
2763
2816
|
*
|
|
2764
2817
|
* **Example** (Doubling values)
|
|
2765
2818
|
*
|
|
2766
|
-
* ```ts
|
|
2819
|
+
* ```ts import.meta.vitest
|
|
2767
2820
|
* import { Array } from "effect"
|
|
2768
2821
|
*
|
|
2769
|
-
*
|
|
2822
|
+
* Array.map([1, 2, 3], (x) => x * 2) // => [2, 4, 6]
|
|
2770
2823
|
* ```
|
|
2771
2824
|
*
|
|
2772
2825
|
* @see {@link flatMap} — map and flatten
|
|
@@ -2790,10 +2843,10 @@ export const map = /*#__PURE__*/dual(2, (self, f) => self.map(f));
|
|
|
2790
2843
|
*
|
|
2791
2844
|
* **Example** (Flat mapping an array)
|
|
2792
2845
|
*
|
|
2793
|
-
* ```ts
|
|
2846
|
+
* ```ts import.meta.vitest
|
|
2794
2847
|
* import { Array } from "effect"
|
|
2795
2848
|
*
|
|
2796
|
-
*
|
|
2849
|
+
* Array.flatMap([1, 2, 3], (x) => [x, x * 2]) // => [1, 2, 2, 4, 3, 6]
|
|
2797
2850
|
* ```
|
|
2798
2851
|
*
|
|
2799
2852
|
* @see {@link map} — transform without flattening
|
|
@@ -2825,10 +2878,10 @@ export const flatMap = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
2825
2878
|
*
|
|
2826
2879
|
* **Example** (Flattening nested arrays)
|
|
2827
2880
|
*
|
|
2828
|
-
* ```ts
|
|
2881
|
+
* ```ts import.meta.vitest
|
|
2829
2882
|
* import { Array } from "effect"
|
|
2830
2883
|
*
|
|
2831
|
-
*
|
|
2884
|
+
* Array.flatten([[1, 2], [], [3, 4], [], [5, 6]]) // => [1, 2, 3, 4, 5, 6]
|
|
2832
2885
|
* ```
|
|
2833
2886
|
*
|
|
2834
2887
|
* @see {@link flatMap} — map then flatten in one step
|
|
@@ -2847,10 +2900,10 @@ export const flatten = /*#__PURE__*/flatMap(identity);
|
|
|
2847
2900
|
*
|
|
2848
2901
|
* **Example** (Extracting Some values)
|
|
2849
2902
|
*
|
|
2850
|
-
* ```ts
|
|
2903
|
+
* ```ts import.meta.vitest
|
|
2851
2904
|
* import { Array, Option } from "effect"
|
|
2852
2905
|
*
|
|
2853
|
-
*
|
|
2906
|
+
* Array.getSomes([Option.some(1), Option.none(), Option.some(2)]) // => [1, 2]
|
|
2854
2907
|
* ```
|
|
2855
2908
|
*
|
|
2856
2909
|
* @see {@link fromOption} — convert a single Option
|
|
@@ -2879,11 +2932,10 @@ export const getSomes = self => {
|
|
|
2879
2932
|
*
|
|
2880
2933
|
* **Example** (Extracting failures)
|
|
2881
2934
|
*
|
|
2882
|
-
* ```ts
|
|
2935
|
+
* ```ts import.meta.vitest
|
|
2883
2936
|
* import { Array, Result } from "effect"
|
|
2884
2937
|
*
|
|
2885
|
-
*
|
|
2886
|
-
* // ["err"]
|
|
2938
|
+
* Array.getFailures([Result.succeed(1), Result.fail("err"), Result.succeed(2)]) // => ["err"]
|
|
2887
2939
|
* ```
|
|
2888
2940
|
*
|
|
2889
2941
|
* @see {@link getSuccesses} — extract success values
|
|
@@ -2912,11 +2964,10 @@ export const getFailures = self => {
|
|
|
2912
2964
|
*
|
|
2913
2965
|
* **Example** (Extracting successes)
|
|
2914
2966
|
*
|
|
2915
|
-
* ```ts
|
|
2967
|
+
* ```ts import.meta.vitest
|
|
2916
2968
|
* import { Array, Result } from "effect"
|
|
2917
2969
|
*
|
|
2918
|
-
*
|
|
2919
|
-
* // [1, 2]
|
|
2970
|
+
* Array.getSuccesses([Result.succeed(1), Result.fail("err"), Result.succeed(2)]) // => [1, 2]
|
|
2920
2971
|
* ```
|
|
2921
2972
|
*
|
|
2922
2973
|
* @see {@link getFailures} — extract failure values
|
|
@@ -2948,11 +2999,10 @@ export const getSuccesses = self => {
|
|
|
2948
2999
|
*
|
|
2949
3000
|
* **Example** (Filtering and transforming)
|
|
2950
3001
|
*
|
|
2951
|
-
* ```ts
|
|
3002
|
+
* ```ts import.meta.vitest
|
|
2952
3003
|
* import { Array, Result } from "effect"
|
|
2953
3004
|
*
|
|
2954
|
-
*
|
|
2955
|
-
* // [20, 40]
|
|
3005
|
+
* Array.filterMap([1, 2, 3, 4], (n) => n % 2 === 0 ? Result.succeed(n * 10) : Result.failVoid) // => [20, 40]
|
|
2956
3006
|
* ```
|
|
2957
3007
|
*
|
|
2958
3008
|
* @see {@link filter} — keep original elements matching a predicate
|
|
@@ -2987,10 +3037,10 @@ export const filterMap = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
2987
3037
|
*
|
|
2988
3038
|
* **Example** (Filtering even numbers)
|
|
2989
3039
|
*
|
|
2990
|
-
* ```ts
|
|
3040
|
+
* ```ts import.meta.vitest
|
|
2991
3041
|
* import { Array } from "effect"
|
|
2992
3042
|
*
|
|
2993
|
-
*
|
|
3043
|
+
* Array.filter([1, 2, 3, 4], (x) => x % 2 === 0) // => [2, 4]
|
|
2994
3044
|
* ```
|
|
2995
3045
|
*
|
|
2996
3046
|
* @see {@link partition} — split into matching and non-matching
|
|
@@ -3023,13 +3073,12 @@ export const filter = /*#__PURE__*/dual(2, (self, predicate) => {
|
|
|
3023
3073
|
*
|
|
3024
3074
|
* **Example** (Partitioning with a filter)
|
|
3025
3075
|
*
|
|
3026
|
-
* ```ts
|
|
3076
|
+
* ```ts import.meta.vitest
|
|
3027
3077
|
* import { Array, Result } from "effect"
|
|
3028
3078
|
*
|
|
3029
|
-
*
|
|
3079
|
+
* Array.partition([1, -2, 3], (n, i) =>
|
|
3030
3080
|
* n > 0 ? Result.succeed(n + i) : Result.fail(`negative:${n}`)
|
|
3031
|
-
* )
|
|
3032
|
-
* // [["negative:-2"], [1, 5]]
|
|
3081
|
+
* ) // => [["negative:-2"], [1, 5]]
|
|
3033
3082
|
* ```
|
|
3034
3083
|
*
|
|
3035
3084
|
* @see {@link filter} — keep only matching elements
|
|
@@ -3067,14 +3116,10 @@ export const partition = /*#__PURE__*/dual(2, (self, f) => {
|
|
|
3067
3116
|
*
|
|
3068
3117
|
* **Example** (Separating Results)
|
|
3069
3118
|
*
|
|
3070
|
-
* ```ts
|
|
3119
|
+
* ```ts import.meta.vitest
|
|
3071
3120
|
* import { Array, Result } from "effect"
|
|
3072
3121
|
*
|
|
3073
|
-
*
|
|
3074
|
-
* Result.succeed(1), Result.fail("error"), Result.succeed(2)
|
|
3075
|
-
* ])
|
|
3076
|
-
* console.log(failures) // ["error"]
|
|
3077
|
-
* console.log(successes) // [1, 2]
|
|
3122
|
+
* Array.separate([Result.succeed(1), Result.fail("error"), Result.succeed(2)]) // => [["error"], [1, 2]]
|
|
3078
3123
|
* ```
|
|
3079
3124
|
*
|
|
3080
3125
|
* @see {@link getFailures} — extract only failures
|
|
@@ -3098,10 +3143,10 @@ export const separate = /*#__PURE__*/partition(identity);
|
|
|
3098
3143
|
*
|
|
3099
3144
|
* **Example** (Summing an array)
|
|
3100
3145
|
*
|
|
3101
|
-
* ```ts
|
|
3146
|
+
* ```ts import.meta.vitest
|
|
3102
3147
|
* import { Array } from "effect"
|
|
3103
3148
|
*
|
|
3104
|
-
*
|
|
3149
|
+
* Array.reduce([1, 2, 3], 0, (acc, n) => acc + n) // => 6
|
|
3105
3150
|
* ```
|
|
3106
3151
|
*
|
|
3107
3152
|
* @see {@link reduceRight} — fold from right to left
|
|
@@ -3124,10 +3169,10 @@ export const reduce = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(self).re
|
|
|
3124
3169
|
*
|
|
3125
3170
|
* **Example** (Folding from right to left)
|
|
3126
3171
|
*
|
|
3127
|
-
* ```ts
|
|
3172
|
+
* ```ts import.meta.vitest
|
|
3128
3173
|
* import { Array } from "effect"
|
|
3129
3174
|
*
|
|
3130
|
-
*
|
|
3175
|
+
* Array.reduceRight([1, 2, 3], 0, (acc, n) => acc + n) // => 6
|
|
3131
3176
|
* ```
|
|
3132
3177
|
*
|
|
3133
3178
|
* @see {@link reduce} — fold from left to right
|
|
@@ -3143,13 +3188,13 @@ export const reduceRight = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(sel
|
|
|
3143
3188
|
*
|
|
3144
3189
|
* **Example** (Wrapping values conditionally)
|
|
3145
3190
|
*
|
|
3146
|
-
* ```ts
|
|
3191
|
+
* ```ts import.meta.vitest
|
|
3147
3192
|
* import { Array } from "effect"
|
|
3148
3193
|
*
|
|
3149
|
-
* const
|
|
3150
|
-
*
|
|
3151
|
-
*
|
|
3152
|
-
*
|
|
3194
|
+
* const fromEven = Array.liftPredicate((n: number) => n % 2 === 0)
|
|
3195
|
+
*
|
|
3196
|
+
* fromEven(1) // => []
|
|
3197
|
+
* fromEven(2) // => [2]
|
|
3153
3198
|
* ```
|
|
3154
3199
|
*
|
|
3155
3200
|
* @see {@link liftOption} — lift an Option-returning function
|
|
@@ -3169,15 +3214,16 @@ export const liftPredicate = predicate => b => predicate(b) ? [b] : [];
|
|
|
3169
3214
|
*
|
|
3170
3215
|
* **Example** (Lifting an Option function)
|
|
3171
3216
|
*
|
|
3172
|
-
* ```ts
|
|
3217
|
+
* ```ts import.meta.vitest
|
|
3173
3218
|
* import { Array, Option } from "effect"
|
|
3174
3219
|
*
|
|
3175
3220
|
* const parseNumber = Array.liftOption((s: string) => {
|
|
3176
3221
|
* const n = Number(s)
|
|
3177
3222
|
* return isNaN(n) ? Option.none() : Option.some(n)
|
|
3178
3223
|
* })
|
|
3179
|
-
*
|
|
3180
|
-
*
|
|
3224
|
+
*
|
|
3225
|
+
* parseNumber("123") // => [123]
|
|
3226
|
+
* parseNumber("abc") // => []
|
|
3181
3227
|
* ```
|
|
3182
3228
|
*
|
|
3183
3229
|
* @see {@link liftPredicate} — lift a boolean predicate
|
|
@@ -3197,12 +3243,12 @@ export const liftOption = f => (...a) => fromOption(f(...a));
|
|
|
3197
3243
|
*
|
|
3198
3244
|
* **Example** (Converting nullable values to an array)
|
|
3199
3245
|
*
|
|
3200
|
-
* ```ts
|
|
3246
|
+
* ```ts import.meta.vitest
|
|
3201
3247
|
* import { Array } from "effect"
|
|
3202
3248
|
*
|
|
3203
|
-
*
|
|
3204
|
-
*
|
|
3205
|
-
*
|
|
3249
|
+
* Array.fromNullishOr(1) // => [1]
|
|
3250
|
+
* Array.fromNullishOr(null) // => []
|
|
3251
|
+
* Array.fromNullishOr(undefined) // => []
|
|
3206
3252
|
* ```
|
|
3207
3253
|
*
|
|
3208
3254
|
* @see {@link liftNullishOr} — lift a nullable-returning function
|
|
@@ -3218,15 +3264,16 @@ export const fromNullishOr = a => a == null ? empty() : [a];
|
|
|
3218
3264
|
*
|
|
3219
3265
|
* **Example** (Lifting a nullable function)
|
|
3220
3266
|
*
|
|
3221
|
-
* ```ts
|
|
3267
|
+
* ```ts import.meta.vitest
|
|
3222
3268
|
* import { Array } from "effect"
|
|
3223
3269
|
*
|
|
3224
3270
|
* const parseNumber = Array.liftNullishOr((s: string) => {
|
|
3225
3271
|
* const n = Number(s)
|
|
3226
3272
|
* return isNaN(n) ? null : n
|
|
3227
3273
|
* })
|
|
3228
|
-
*
|
|
3229
|
-
*
|
|
3274
|
+
*
|
|
3275
|
+
* parseNumber("123") // => [123]
|
|
3276
|
+
* parseNumber("abc") // => []
|
|
3230
3277
|
* ```
|
|
3231
3278
|
*
|
|
3232
3279
|
* @see {@link fromNullishOr} — convert a single nullable value
|
|
@@ -3247,11 +3294,10 @@ export const liftNullishOr = f => (...a) => fromNullishOr(f(...a));
|
|
|
3247
3294
|
*
|
|
3248
3295
|
* **Example** (Flat mapping with nullable values)
|
|
3249
3296
|
*
|
|
3250
|
-
* ```ts
|
|
3297
|
+
* ```ts import.meta.vitest
|
|
3251
3298
|
* import { Array } from "effect"
|
|
3252
3299
|
*
|
|
3253
|
-
*
|
|
3254
|
-
* // [1, 3]
|
|
3300
|
+
* Array.flatMapNullishOr([1, 2, 3], (n) => (n % 2 === 0 ? null : n)) // => [1, 3]
|
|
3255
3301
|
* ```
|
|
3256
3302
|
*
|
|
3257
3303
|
* @see {@link flatMap} for mapping each element to an array and flattening
|
|
@@ -3272,7 +3318,7 @@ export const flatMapNullishOr = /*#__PURE__*/dual(2, (self, f) => flatMap(self,
|
|
|
3272
3318
|
*
|
|
3273
3319
|
* **Example** (Lifting a Result function)
|
|
3274
3320
|
*
|
|
3275
|
-
* ```ts
|
|
3321
|
+
* ```ts import.meta.vitest
|
|
3276
3322
|
* import { Array, Result } from "effect"
|
|
3277
3323
|
*
|
|
3278
3324
|
* const parseNumber = (s: string): Result.Result<number, Error> =>
|
|
@@ -3281,8 +3327,9 @@ export const flatMapNullishOr = /*#__PURE__*/dual(2, (self, f) => flatMap(self,
|
|
|
3281
3327
|
* : Result.succeed(Number(s))
|
|
3282
3328
|
*
|
|
3283
3329
|
* const liftedParseNumber = Array.liftResult(parseNumber)
|
|
3284
|
-
*
|
|
3285
|
-
*
|
|
3330
|
+
*
|
|
3331
|
+
* liftedParseNumber("42") // => [42]
|
|
3332
|
+
* liftedParseNumber("not a number") // => []
|
|
3286
3333
|
* ```
|
|
3287
3334
|
*
|
|
3288
3335
|
* @see {@link liftOption} — lift an Option-returning function
|
|
@@ -3306,16 +3353,16 @@ export const liftResult = f => (...a) => {
|
|
|
3306
3353
|
*
|
|
3307
3354
|
* **Example** (Testing all elements)
|
|
3308
3355
|
*
|
|
3309
|
-
* ```ts
|
|
3356
|
+
* ```ts import.meta.vitest
|
|
3310
3357
|
* import { Array } from "effect"
|
|
3311
3358
|
*
|
|
3312
|
-
*
|
|
3313
|
-
*
|
|
3359
|
+
* Array.every([2, 4, 6], (x) => x % 2 === 0) // => true
|
|
3360
|
+
* Array.every([2, 3, 6], (x) => x % 2 === 0) // => false
|
|
3314
3361
|
* ```
|
|
3315
3362
|
*
|
|
3316
3363
|
* @see {@link some} — test if any element matches
|
|
3317
3364
|
*
|
|
3318
|
-
* @category
|
|
3365
|
+
* @category guards
|
|
3319
3366
|
* @since 2.0.0
|
|
3320
3367
|
*/
|
|
3321
3368
|
export const every = /*#__PURE__*/dual(2, (self, refinement) => self.every(refinement));
|
|
@@ -3325,17 +3372,17 @@ export const every = /*#__PURE__*/dual(2, (self, refinement) => self.every(refin
|
|
|
3325
3372
|
*
|
|
3326
3373
|
* **Example** (Testing for any match)
|
|
3327
3374
|
*
|
|
3328
|
-
* ```ts
|
|
3375
|
+
* ```ts import.meta.vitest
|
|
3329
3376
|
* import { Array } from "effect"
|
|
3330
3377
|
*
|
|
3331
|
-
*
|
|
3332
|
-
*
|
|
3378
|
+
* Array.some([1, 3, 4], (x) => x % 2 === 0) // => true
|
|
3379
|
+
* Array.some([1, 3, 5], (x) => x % 2 === 0) // => false
|
|
3333
3380
|
* ```
|
|
3334
3381
|
*
|
|
3335
3382
|
* @see {@link every} — test if all elements match
|
|
3336
3383
|
* @see {@link contains} — test for a specific value
|
|
3337
3384
|
*
|
|
3338
|
-
* @category
|
|
3385
|
+
* @category guards
|
|
3339
3386
|
* @since 2.0.0
|
|
3340
3387
|
*/
|
|
3341
3388
|
export const some = /*#__PURE__*/dual(2, (self, predicate) => self.some(predicate));
|
|
@@ -3354,10 +3401,10 @@ export const some = /*#__PURE__*/dual(2, (self, predicate) => self.some(predicat
|
|
|
3354
3401
|
*
|
|
3355
3402
|
* **Example** (Computing suffix lengths)
|
|
3356
3403
|
*
|
|
3357
|
-
* ```ts
|
|
3404
|
+
* ```ts import.meta.vitest
|
|
3358
3405
|
* import { Array } from "effect"
|
|
3359
3406
|
*
|
|
3360
|
-
*
|
|
3407
|
+
* Array.extend([1, 2, 3], (as) => as.length) // => [3, 2, 1]
|
|
3361
3408
|
* ```
|
|
3362
3409
|
*
|
|
3363
3410
|
* @see {@link scan} for keeping intermediate accumulator values during a fold
|
|
@@ -3372,16 +3419,16 @@ export const extend = /*#__PURE__*/dual(2, (self, f) => self.map((_, i, as) => f
|
|
|
3372
3419
|
*
|
|
3373
3420
|
* **Example** (Finding the minimum)
|
|
3374
3421
|
*
|
|
3375
|
-
* ```ts
|
|
3422
|
+
* ```ts import.meta.vitest
|
|
3376
3423
|
* import { Array, Order } from "effect"
|
|
3377
3424
|
*
|
|
3378
|
-
*
|
|
3425
|
+
* Array.min([3, 1, 2], Order.Number) // => 1
|
|
3379
3426
|
* ```
|
|
3380
3427
|
*
|
|
3381
3428
|
* @see {@link max} — find the maximum
|
|
3382
3429
|
* @see {@link sort} — sort the entire array
|
|
3383
3430
|
*
|
|
3384
|
-
* @category
|
|
3431
|
+
* @category getters
|
|
3385
3432
|
* @since 2.0.0
|
|
3386
3433
|
*/
|
|
3387
3434
|
export const min = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.min(O)));
|
|
@@ -3391,16 +3438,16 @@ export const min = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.min(O)));
|
|
|
3391
3438
|
*
|
|
3392
3439
|
* **Example** (Finding the maximum)
|
|
3393
3440
|
*
|
|
3394
|
-
* ```ts
|
|
3441
|
+
* ```ts import.meta.vitest
|
|
3395
3442
|
* import { Array, Order } from "effect"
|
|
3396
3443
|
*
|
|
3397
|
-
*
|
|
3444
|
+
* Array.max([3, 1, 2], Order.Number) // => 3
|
|
3398
3445
|
* ```
|
|
3399
3446
|
*
|
|
3400
3447
|
* @see {@link min} — find the minimum
|
|
3401
3448
|
* @see {@link sort} — sort the entire array
|
|
3402
3449
|
*
|
|
3403
|
-
* @category
|
|
3450
|
+
* @category getters
|
|
3404
3451
|
* @since 2.0.0
|
|
3405
3452
|
*/
|
|
3406
3453
|
export const max = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.max(O)));
|
|
@@ -3411,11 +3458,10 @@ export const max = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.max(O)));
|
|
|
3411
3458
|
*
|
|
3412
3459
|
* **Example** (Generating a sequence)
|
|
3413
3460
|
*
|
|
3414
|
-
* ```ts
|
|
3461
|
+
* ```ts import.meta.vitest
|
|
3415
3462
|
* import { Array, Option } from "effect"
|
|
3416
3463
|
*
|
|
3417
|
-
*
|
|
3418
|
-
* // [1, 2, 3, 4, 5]
|
|
3464
|
+
* Array.unfold(1, (n) => n <= 5 ? Option.some([n, n + 1]) : Option.none()) // => [1, 2, 3, 4, 5]
|
|
3419
3465
|
* ```
|
|
3420
3466
|
*
|
|
3421
3467
|
* @see {@link makeBy} — generate from index
|
|
@@ -3445,11 +3491,12 @@ export const unfold = (b, f) => {
|
|
|
3445
3491
|
*
|
|
3446
3492
|
* **Example** (Comparing arrays)
|
|
3447
3493
|
*
|
|
3448
|
-
* ```ts
|
|
3494
|
+
* ```ts import.meta.vitest
|
|
3449
3495
|
* import { Array, Order } from "effect"
|
|
3450
3496
|
*
|
|
3451
3497
|
* const arrayOrder = Array.makeOrder(Order.Number)
|
|
3452
|
-
*
|
|
3498
|
+
*
|
|
3499
|
+
* arrayOrder([1, 2], [1, 3]) // => -1
|
|
3453
3500
|
* ```
|
|
3454
3501
|
*
|
|
3455
3502
|
* @see {@link makeEquivalence} — create an equivalence for arrays
|
|
@@ -3465,11 +3512,12 @@ export const makeOrder = Order.Array;
|
|
|
3465
3512
|
*
|
|
3466
3513
|
* **Example** (Comparing arrays for equality)
|
|
3467
3514
|
*
|
|
3468
|
-
* ```ts
|
|
3515
|
+
* ```ts import.meta.vitest
|
|
3469
3516
|
* import { Array } from "effect"
|
|
3470
3517
|
*
|
|
3471
3518
|
* const eq = Array.makeEquivalence<number>((a, b) => a === b)
|
|
3472
|
-
*
|
|
3519
|
+
*
|
|
3520
|
+
* eq([1, 2, 3], [1, 2, 3]) // => true
|
|
3473
3521
|
* ```
|
|
3474
3522
|
*
|
|
3475
3523
|
* @see {@link makeOrder} — create an ordering for arrays
|
|
@@ -3488,15 +3536,18 @@ export const makeEquivalence = Equivalence.Array;
|
|
|
3488
3536
|
*
|
|
3489
3537
|
* **Example** (Iterating with side-effects)
|
|
3490
3538
|
*
|
|
3491
|
-
* ```ts
|
|
3539
|
+
* ```ts import.meta.vitest
|
|
3492
3540
|
* import { Array } from "effect"
|
|
3493
3541
|
*
|
|
3494
|
-
* Array
|
|
3542
|
+
* const visited: Array<number> = []
|
|
3543
|
+
* Array.forEach([1, 2, 3], (n) => visited.push(n))
|
|
3544
|
+
*
|
|
3545
|
+
* visited // => [1, 2, 3]
|
|
3495
3546
|
* ```
|
|
3496
3547
|
*
|
|
3497
3548
|
* @see {@link map} for transforming each element into a new array
|
|
3498
3549
|
*
|
|
3499
|
-
* @category
|
|
3550
|
+
* @category traversing
|
|
3500
3551
|
* @since 2.0.0
|
|
3501
3552
|
*/
|
|
3502
3553
|
export const forEach = /*#__PURE__*/dual(2, (self, f) => fromIterable(self).forEach((a, i) => f(a, i)));
|
|
@@ -3511,16 +3562,16 @@ export const forEach = /*#__PURE__*/dual(2, (self, f) => fromIterable(self).forE
|
|
|
3511
3562
|
*
|
|
3512
3563
|
* **Example** (Deduplicating with custom equality)
|
|
3513
3564
|
*
|
|
3514
|
-
* ```ts
|
|
3565
|
+
* ```ts import.meta.vitest
|
|
3515
3566
|
* import { Array } from "effect"
|
|
3516
3567
|
*
|
|
3517
|
-
*
|
|
3568
|
+
* Array.dedupeWith([1, 2, 2, 3, 3, 3], (a, b) => a === b) // => [1, 2, 3]
|
|
3518
3569
|
* ```
|
|
3519
3570
|
*
|
|
3520
3571
|
* @see {@link dedupe} — uses default equality
|
|
3521
3572
|
* @see {@link dedupeAdjacentWith} — only dedupes consecutive elements
|
|
3522
3573
|
*
|
|
3523
|
-
* @category
|
|
3574
|
+
* @category deduplication
|
|
3524
3575
|
* @since 2.0.0
|
|
3525
3576
|
*/
|
|
3526
3577
|
export const dedupeWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
|
|
@@ -3548,19 +3599,32 @@ export const dedupeWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
|
|
|
3548
3599
|
*
|
|
3549
3600
|
* **Example** (Removing duplicates)
|
|
3550
3601
|
*
|
|
3551
|
-
* ```ts
|
|
3602
|
+
* ```ts import.meta.vitest
|
|
3552
3603
|
* import { Array } from "effect"
|
|
3553
3604
|
*
|
|
3554
|
-
*
|
|
3605
|
+
* Array.dedupe([1, 2, 1, 3, 2, 4]) // => [1, 2, 3, 4]
|
|
3555
3606
|
* ```
|
|
3556
3607
|
*
|
|
3557
3608
|
* @see {@link dedupeWith} — use custom equality
|
|
3558
3609
|
* @see {@link dedupeAdjacent} — only dedupes consecutive elements
|
|
3559
3610
|
*
|
|
3560
|
-
* @category
|
|
3611
|
+
* @category deduplication
|
|
3561
3612
|
* @since 2.0.0
|
|
3562
3613
|
*/
|
|
3563
|
-
export const dedupe = self =>
|
|
3614
|
+
export const dedupe = self => {
|
|
3615
|
+
const input = fromIterable(self);
|
|
3616
|
+
if (input.length < 2) {
|
|
3617
|
+
return [...input];
|
|
3618
|
+
}
|
|
3619
|
+
const buckets = new Map();
|
|
3620
|
+
const out = [];
|
|
3621
|
+
for (const value of input) {
|
|
3622
|
+
if (hashBucketsAdd(buckets, value)) {
|
|
3623
|
+
out.push(value);
|
|
3624
|
+
}
|
|
3625
|
+
}
|
|
3626
|
+
return out;
|
|
3627
|
+
};
|
|
3564
3628
|
/**
|
|
3565
3629
|
* Removes consecutive duplicate elements using a custom equivalence.
|
|
3566
3630
|
*
|
|
@@ -3576,17 +3640,16 @@ export const dedupe = self => dedupeWith(self, Equal.asEquivalence());
|
|
|
3576
3640
|
*
|
|
3577
3641
|
* **Example** (Deduplicating adjacent elements)
|
|
3578
3642
|
*
|
|
3579
|
-
* ```ts
|
|
3643
|
+
* ```ts import.meta.vitest
|
|
3580
3644
|
* import { Array } from "effect"
|
|
3581
3645
|
*
|
|
3582
|
-
*
|
|
3583
|
-
* // [1, 2, 3]
|
|
3646
|
+
* Array.dedupeAdjacentWith([1, 1, 2, 2, 3, 3], (a, b) => a === b) // => [1, 2, 3]
|
|
3584
3647
|
* ```
|
|
3585
3648
|
*
|
|
3586
3649
|
* @see {@link dedupeAdjacent} — uses default equality
|
|
3587
3650
|
* @see {@link dedupeWith} — dedupes all duplicates, not just adjacent
|
|
3588
3651
|
*
|
|
3589
|
-
* @category
|
|
3652
|
+
* @category deduplication
|
|
3590
3653
|
* @since 2.0.0
|
|
3591
3654
|
*/
|
|
3592
3655
|
export const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
|
|
@@ -3610,16 +3673,16 @@ export const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
|
|
|
3610
3673
|
*
|
|
3611
3674
|
* **Example** (Removing adjacent duplicates)
|
|
3612
3675
|
*
|
|
3613
|
-
* ```ts
|
|
3676
|
+
* ```ts import.meta.vitest
|
|
3614
3677
|
* import { Array } from "effect"
|
|
3615
3678
|
*
|
|
3616
|
-
*
|
|
3679
|
+
* Array.dedupeAdjacent([1, 1, 2, 2, 3, 3]) // => [1, 2, 3]
|
|
3617
3680
|
* ```
|
|
3618
3681
|
*
|
|
3619
3682
|
* @see {@link dedupeAdjacentWith} — use custom equality
|
|
3620
3683
|
* @see {@link dedupe} — remove all duplicates
|
|
3621
3684
|
*
|
|
3622
|
-
* @category
|
|
3685
|
+
* @category deduplication
|
|
3623
3686
|
* @since 2.0.0
|
|
3624
3687
|
*/
|
|
3625
3688
|
export const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal.asEquivalence());
|
|
@@ -3628,10 +3691,10 @@ export const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal
|
|
|
3628
3691
|
*
|
|
3629
3692
|
* **Example** (Joining strings)
|
|
3630
3693
|
*
|
|
3631
|
-
* ```ts
|
|
3694
|
+
* ```ts import.meta.vitest
|
|
3632
3695
|
* import { Array } from "effect"
|
|
3633
3696
|
*
|
|
3634
|
-
*
|
|
3697
|
+
* Array.join(["a", "b", "c"], "-") // => "a-b-c"
|
|
3635
3698
|
* ```
|
|
3636
3699
|
*
|
|
3637
3700
|
* @see {@link intersperse} — insert separator elements without joining
|
|
@@ -3657,11 +3720,10 @@ export const join = /*#__PURE__*/dual(2, (self, sep) => fromIterable(self).join(
|
|
|
3657
3720
|
*
|
|
3658
3721
|
* **Example** (Running sum alongside mapped values)
|
|
3659
3722
|
*
|
|
3660
|
-
* ```ts
|
|
3723
|
+
* ```ts import.meta.vitest
|
|
3661
3724
|
* import { Array } from "effect"
|
|
3662
3725
|
*
|
|
3663
|
-
*
|
|
3664
|
-
* console.log(result) // [6, [1, 3, 6]]
|
|
3726
|
+
* Array.mapAccum([1, 2, 3], 0, (acc, n) => [acc + n, acc + n]) // => [6, [1, 3, 6]]
|
|
3665
3727
|
* ```
|
|
3666
3728
|
*
|
|
3667
3729
|
* @see {@link scan} — when you only need the accumulated results (not the final state)
|
|
@@ -3698,16 +3760,15 @@ export const mapAccum = /*#__PURE__*/dual(3, (self, s, f) => {
|
|
|
3698
3760
|
*
|
|
3699
3761
|
* **Example** (Combining numbers and letters)
|
|
3700
3762
|
*
|
|
3701
|
-
* ```ts
|
|
3763
|
+
* ```ts import.meta.vitest
|
|
3702
3764
|
* import { Array } from "effect"
|
|
3703
3765
|
*
|
|
3704
|
-
*
|
|
3705
|
-
* console.log(result) // ["1-a", "1-b", "2-a", "2-b"]
|
|
3766
|
+
* Array.cartesianWith([1, 2], ["a", "b"], (a, b) => `${a}-${b}`) // => ["1-a", "1-b", "2-a", "2-b"]
|
|
3706
3767
|
* ```
|
|
3707
3768
|
*
|
|
3708
3769
|
* @see {@link cartesian} for returning tuples instead of applying a combiner
|
|
3709
3770
|
*
|
|
3710
|
-
* @category
|
|
3771
|
+
* @category combining
|
|
3711
3772
|
* @since 2.0.0
|
|
3712
3773
|
*/
|
|
3713
3774
|
export const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(self, a => map(that, b => f(a, b))));
|
|
@@ -3725,16 +3786,15 @@ export const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(sel
|
|
|
3725
3786
|
*
|
|
3726
3787
|
* **Example** (Generating all pairs from two arrays)
|
|
3727
3788
|
*
|
|
3728
|
-
* ```ts
|
|
3789
|
+
* ```ts import.meta.vitest
|
|
3729
3790
|
* import { Array } from "effect"
|
|
3730
3791
|
*
|
|
3731
|
-
*
|
|
3732
|
-
* console.log(result) // [[1, "a"], [1, "b"], [2, "a"], [2, "b"]]
|
|
3792
|
+
* Array.cartesian([1, 2], ["a", "b"]) // => [[1, "a"], [1, "b"], [2, "a"], [2, "b"]]
|
|
3733
3793
|
* ```
|
|
3734
3794
|
*
|
|
3735
3795
|
* @see {@link cartesianWith} — apply a combiner to each pair
|
|
3736
3796
|
*
|
|
3737
|
-
* @category
|
|
3797
|
+
* @category combining
|
|
3738
3798
|
* @since 2.0.0
|
|
3739
3799
|
*/
|
|
3740
3800
|
export const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self, that, (a, b) => [a, b]));
|
|
@@ -3757,24 +3817,23 @@ export const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self
|
|
|
3757
3817
|
*
|
|
3758
3818
|
* **Example** (Building array comprehensions with do notation)
|
|
3759
3819
|
*
|
|
3760
|
-
* ```ts
|
|
3820
|
+
* ```ts import.meta.vitest
|
|
3761
3821
|
* import { Array, pipe } from "effect"
|
|
3762
3822
|
*
|
|
3763
|
-
*
|
|
3823
|
+
* pipe(
|
|
3764
3824
|
* Array.Do,
|
|
3765
3825
|
* Array.bind("x", () => [1, 3, 5]),
|
|
3766
3826
|
* Array.bind("y", () => [2, 4, 6]),
|
|
3767
3827
|
* Array.filter(({ x, y }) => x < y),
|
|
3768
3828
|
* Array.map(({ x, y }) => [x, y] as const)
|
|
3769
|
-
* )
|
|
3770
|
-
* console.log(result) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]
|
|
3829
|
+
* ) // => [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]
|
|
3771
3830
|
* ```
|
|
3772
3831
|
*
|
|
3773
3832
|
* @see {@link bind} — introduce an array variable into the scope
|
|
3774
3833
|
* @see {@link bindTo} — start a pipeline by naming the first array
|
|
3775
3834
|
* @see {@link let_ let} — introduce a plain computed value
|
|
3776
3835
|
*
|
|
3777
|
-
* @category
|
|
3836
|
+
* @category constructors
|
|
3778
3837
|
* @since 3.2.0
|
|
3779
3838
|
*/
|
|
3780
3839
|
export const Do = /*#__PURE__*/of({});
|
|
@@ -3794,23 +3853,21 @@ export const Do = /*#__PURE__*/of({});
|
|
|
3794
3853
|
*
|
|
3795
3854
|
* **Example** (Binding two arrays)
|
|
3796
3855
|
*
|
|
3797
|
-
* ```ts
|
|
3856
|
+
* ```ts import.meta.vitest
|
|
3798
3857
|
* import { Array, pipe } from "effect"
|
|
3799
3858
|
*
|
|
3800
|
-
*
|
|
3859
|
+
* pipe(
|
|
3801
3860
|
* Array.Do,
|
|
3802
3861
|
* Array.bind("x", () => [1, 2]),
|
|
3803
3862
|
* Array.bind("y", () => ["a", "b"])
|
|
3804
|
-
* )
|
|
3805
|
-
* console.log(result)
|
|
3806
|
-
* // [{ x: 1, y: "a" }, { x: 1, y: "b" }, { x: 2, y: "a" }, { x: 2, y: "b" }]
|
|
3863
|
+
* ) // => [{ x: 1, y: "a" }, { x: 1, y: "b" }, { x: 2, y: "a" }, { x: 2, y: "b" }]
|
|
3807
3864
|
* ```
|
|
3808
3865
|
*
|
|
3809
3866
|
* @see {@link Do} — start a do-notation pipeline
|
|
3810
3867
|
* @see {@link bindTo} — name the first array in a pipeline
|
|
3811
3868
|
* @see {@link let_ let} — add a plain computed value
|
|
3812
3869
|
*
|
|
3813
|
-
* @category
|
|
3870
|
+
* @category sequencing
|
|
3814
3871
|
* @since 3.2.0
|
|
3815
3872
|
*/
|
|
3816
3873
|
export const bind = /*#__PURE__*/internalDoNotation.bind(map, flatMap);
|
|
@@ -3829,20 +3886,16 @@ export const bind = /*#__PURE__*/internalDoNotation.bind(map, flatMap);
|
|
|
3829
3886
|
*
|
|
3830
3887
|
* **Example** (Naming an existing array)
|
|
3831
3888
|
*
|
|
3832
|
-
* ```ts
|
|
3833
|
-
* import { Array
|
|
3889
|
+
* ```ts import.meta.vitest
|
|
3890
|
+
* import { Array } from "effect"
|
|
3834
3891
|
*
|
|
3835
|
-
*
|
|
3836
|
-
* [1, 2, 3],
|
|
3837
|
-
* Array.bindTo("x")
|
|
3838
|
-
* )
|
|
3839
|
-
* console.log(result) // [{ x: 1 }, { x: 2 }, { x: 3 }]
|
|
3892
|
+
* Array.bindTo([1, 2, 3], "x") // => [{ x: 1 }, { x: 2 }, { x: 3 }]
|
|
3840
3893
|
* ```
|
|
3841
3894
|
*
|
|
3842
3895
|
* @see {@link Do} — start with an empty scope
|
|
3843
3896
|
* @see {@link bind} — add another array variable to the scope
|
|
3844
3897
|
*
|
|
3845
|
-
* @category
|
|
3898
|
+
* @category mapping
|
|
3846
3899
|
* @since 3.2.0
|
|
3847
3900
|
*/
|
|
3848
3901
|
export const bindTo = /*#__PURE__*/internalDoNotation.bindTo(map);
|
|
@@ -3864,22 +3917,20 @@ export {
|
|
|
3864
3917
|
*
|
|
3865
3918
|
* **Example** (Adding a computed value)
|
|
3866
3919
|
*
|
|
3867
|
-
* ```ts
|
|
3920
|
+
* ```ts import.meta.vitest
|
|
3868
3921
|
* import { Array, pipe } from "effect"
|
|
3869
3922
|
*
|
|
3870
|
-
*
|
|
3923
|
+
* pipe(
|
|
3871
3924
|
* Array.Do,
|
|
3872
3925
|
* Array.bind("x", () => [1, 2, 3]),
|
|
3873
3926
|
* Array.let("doubled", ({ x }) => x * 2)
|
|
3874
|
-
* )
|
|
3875
|
-
* console.log(result)
|
|
3876
|
-
* // [{ x: 1, doubled: 2 }, { x: 2, doubled: 4 }, { x: 3, doubled: 6 }]
|
|
3927
|
+
* ) // => [{ x: 1, doubled: 2 }, { x: 2, doubled: 4 }, { x: 3, doubled: 6 }]
|
|
3877
3928
|
* ```
|
|
3878
3929
|
*
|
|
3879
3930
|
* @see {@link Do} — start a do-notation pipeline
|
|
3880
3931
|
* @see {@link bind} — introduce an array variable (produces cartesian product)
|
|
3881
3932
|
*
|
|
3882
|
-
* @category
|
|
3933
|
+
* @category mapping
|
|
3883
3934
|
* @since 3.2.0
|
|
3884
3935
|
*/
|
|
3885
3936
|
let_ as let };
|
|
@@ -3921,11 +3972,10 @@ export function makeReducerConcat() {
|
|
|
3921
3972
|
*
|
|
3922
3973
|
* **Example** (Counting even numbers)
|
|
3923
3974
|
*
|
|
3924
|
-
* ```ts
|
|
3975
|
+
* ```ts import.meta.vitest
|
|
3925
3976
|
* import { Array } from "effect"
|
|
3926
3977
|
*
|
|
3927
|
-
*
|
|
3928
|
-
* console.log(result) // 2
|
|
3978
|
+
* Array.countBy([1, 2, 3, 4, 5], (n) => n % 2 === 0) // => 2
|
|
3929
3979
|
* ```
|
|
3930
3980
|
*
|
|
3931
3981
|
* @see {@link filter} — when you need the matching elements, not just the count
|