effect 4.0.0-beta.66 → 4.0.0-beta.67
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 +113 -67
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +28 -18
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +404 -337
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +190 -146
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +167 -97
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +87 -47
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +62 -31
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +30 -15
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +20 -1
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +16 -0
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +236 -132
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +133 -57
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +74 -62
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +43 -36
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +1518 -575
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +661 -287
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +119 -10
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js +45 -6
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +548 -379
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +238 -170
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +15 -8
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +8 -4
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +2 -4
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +2 -4
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +4 -2
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +2 -2
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/ConfigProvider.js +1 -1
- package/dist/Console.d.ts +76 -50
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +69 -46
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +383 -134
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +134 -54
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +69 -48
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +96 -36
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +3 -2
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +874 -443
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +374 -215
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +367 -174
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +145 -71
- package/dist/Deferred.js.map +1 -1
- package/dist/Differ.d.ts +42 -0
- package/dist/Differ.d.ts.map +1 -1
- package/dist/Differ.js +36 -0
- package/dist/Duration.d.ts +329 -185
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +174 -106
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2109 -1945
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +901 -726
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +37 -2
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Effectable.js +2 -2
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +78 -28
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +75 -27
- package/dist/Encoding.js.map +1 -1
- package/dist/Equivalence.d.ts +14 -19
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +14 -19
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +66 -82
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +38 -29
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +94 -9
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +20 -5
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +7 -5
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +72 -40
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +39 -21
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +117 -56
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +120 -38
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +286 -158
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +174 -72
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +92 -51
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +96 -33
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +104 -73
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +53 -39
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +166 -88
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +68 -42
- package/dist/Filter.js.map +1 -1
- package/dist/Function.d.ts +154 -86
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +53 -37
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +682 -365
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +308 -157
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +29 -13
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +31 -18
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +25 -15
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +444 -256
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +223 -105
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +36 -17
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +75 -8
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +194 -104
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +93 -38
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +20 -9
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +16 -6
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +309 -149
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +129 -65
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +4 -3
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +4 -3
- package/dist/JsonPatch.js.map +1 -1
- package/dist/Latch.d.ts +98 -15
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +41 -10
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +412 -309
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +261 -180
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +95 -21
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +55 -11
- package/dist/LayerMap.js.map +1 -1
- package/dist/LogLevel.d.ts +92 -131
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +25 -15
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +155 -99
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +211 -184
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +75 -17
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +22 -16
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +133 -157
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +85 -76
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +325 -284
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +217 -212
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +117 -58
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +52 -29
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +52 -30
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +94 -38
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +92 -49
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +123 -71
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +99 -62
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +79 -60
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +3 -0
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +36 -39
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +34 -20
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +116 -64
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +54 -30
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +1 -2
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +0 -1
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +28 -47
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +14 -12
- package/dist/Option.js.map +1 -1
- package/dist/Ordering.d.ts +43 -28
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +4 -2
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +225 -40
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +113 -17
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +77 -13
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +48 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +71 -15
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +59 -12
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +74 -6
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +68 -5
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +66 -31
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +26 -24
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +16 -21
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +9 -14
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +9 -2
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +7 -1
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +364 -262
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +245 -174
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +94 -25
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +61 -13
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +284 -150
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +216 -113
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +54 -35
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +36 -24
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +151 -141
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +66 -20
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +69 -32
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +33 -16
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +273 -129
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +117 -57
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +3 -3
- package/dist/Redactable.js +2 -2
- package/dist/Redacted.d.ts +63 -33
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +30 -14
- package/dist/Redacted.js.map +1 -1
- package/dist/Ref.d.ts +81 -52
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +54 -35
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +73 -31
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +66 -30
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +11 -5
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +11 -5
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +158 -34
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +67 -12
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +261 -116
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +77 -41
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +13 -7
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +44 -6
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +16 -14
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +6 -6
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +43 -18
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +35 -16
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +545 -576
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +260 -246
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +43 -6
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +33 -4
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +803 -282
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +281 -189
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +24 -15
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +13 -9
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +26 -13
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +22 -9
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +1 -8
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +194 -25
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +220 -26
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +61 -41
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +56 -33
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/SchemaUtils.d.ts +7 -0
- package/dist/SchemaUtils.d.ts.map +1 -1
- package/dist/SchemaUtils.js +23 -0
- package/dist/SchemaUtils.js.map +1 -1
- package/dist/Scope.d.ts +102 -43
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +57 -23
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +138 -46
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +80 -19
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +28 -8
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +25 -5
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +64 -28
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +22 -13
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +458 -200
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +240 -89
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +43 -6
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +33 -4
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +1896 -1183
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +867 -524
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +171 -95
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +125 -67
- package/dist/String.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +308 -203
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +125 -76
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +13 -5
- package/dist/Symbol.d.ts.map +1 -1
- package/dist/Symbol.js +13 -5
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +278 -62
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +116 -23
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.d.ts +26 -2
- package/dist/Take.d.ts.map +1 -1
- package/dist/Take.js +4 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +39 -7
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +10 -4
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +229 -55
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +94 -18
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +213 -142
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +88 -60
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +182 -146
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +73 -56
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +43 -29
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +22 -15
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +362 -222
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +171 -98
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +178 -104
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +84 -43
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +93 -62
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +54 -36
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +77 -49
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +60 -37
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +279 -241
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +147 -101
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +69 -46
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +48 -32
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +69 -40
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +34 -19
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +101 -54
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +76 -34
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +72 -48
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +33 -22
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +34 -34
- package/dist/UndefinedOr.d.ts +48 -25
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +28 -25
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +71 -116
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +20 -6
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +4 -0
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +4 -0
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +81 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -32
- package/dist/index.js.map +1 -1
- package/dist/internal/schema/schema.js +1 -1
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +6 -3
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +6 -3
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +39 -34
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +42 -12
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +39 -30
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +25 -10
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.js +7 -7
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +197 -130
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +166 -102
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +2 -2
- package/dist/unstable/ai/Chat.d.ts +65 -41
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +51 -33
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +12 -11
- package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +9 -8
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +28 -18
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +18 -11
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +31 -25
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +20 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +339 -119
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +264 -98
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +53 -19
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +63 -15
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +8 -6
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +7 -5
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +2 -2
- package/dist/unstable/ai/Prompt.d.ts +194 -168
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +75 -66
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +153 -140
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +43 -48
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +43 -4
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js +27 -2
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +42 -32
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +14 -10
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +13 -8
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +10 -6
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +153 -84
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +97 -44
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +32 -39
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +7 -5
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +42 -24
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +42 -24
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +226 -134
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +101 -65
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +72 -26
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +86 -23
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +43 -13
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +30 -6
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +194 -113
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +45 -31
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +7 -7
- package/dist/unstable/cli/Completions.js +1 -1
- package/dist/unstable/cli/Flag.d.ts +235 -142
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +111 -71
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +41 -13
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.js +30 -7
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +35 -10
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/HelpDoc.js +21 -0
- package/dist/unstable/cli/Param.d.ts +79 -31
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +160 -98
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +79 -42
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +66 -35
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +177 -45
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +103 -21
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.d.ts.map +1 -1
- package/dist/unstable/cli/internal/ansi.js +13 -0
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +5 -1
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +5 -1
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/config.d.ts +3 -0
- package/dist/unstable/cli/internal/config.d.ts.map +1 -1
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/lexer.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +35 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +35 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.d.ts +56 -7
- package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterError.js +56 -7
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.d.ts +39 -5
- package/dist/unstable/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js +39 -5
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +61 -8
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +61 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +14 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +35 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.d.ts +39 -4
- package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js +11 -3
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +75 -16
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +75 -10
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts +30 -2
- package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js +30 -2
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityId.d.ts +18 -3
- package/dist/unstable/cluster/EntityId.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityId.js +15 -2
- package/dist/unstable/cluster/EntityId.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +34 -2
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +24 -2
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts +17 -2
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +40 -8
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +43 -6
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +11 -4
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/EntityType.d.ts +27 -3
- package/dist/unstable/cluster/EntityType.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityType.js +24 -2
- package/dist/unstable/cluster/EntityType.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +105 -23
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +88 -14
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +88 -13
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +88 -13
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +49 -6
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +31 -6
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MachineId.d.ts +24 -3
- package/dist/unstable/cluster/MachineId.d.ts.map +1 -1
- package/dist/unstable/cluster/MachineId.js +21 -2
- package/dist/unstable/cluster/MachineId.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +102 -13
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +86 -10
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +127 -21
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +70 -10
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +101 -12
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +64 -8
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +47 -17
- package/dist/unstable/cluster/Runner.d.ts.map +1 -1
- package/dist/unstable/cluster/Runner.js +47 -17
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +34 -2
- package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +34 -2
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +40 -12
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +40 -12
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +7 -4
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +31 -4
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +42 -5
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +38 -4
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +73 -10
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +70 -9
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.d.ts +51 -5
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +47 -4
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +10 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +35 -4
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +65 -9
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +66 -9
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts +27 -6
- package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js +28 -4
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.d.ts +23 -1
- package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js +23 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/Singleton.d.ts +15 -1
- package/dist/unstable/cluster/Singleton.d.ts.map +1 -1
- package/dist/unstable/cluster/Singleton.js +15 -1
- package/dist/unstable/cluster/Singleton.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +21 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +21 -1
- package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +89 -19
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +48 -13
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.d.ts +8 -2
- package/dist/unstable/cluster/SocketRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js +29 -2
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts +11 -3
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +27 -3
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts +11 -3
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +46 -7
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.d.ts +18 -1
- package/dist/unstable/cluster/TestRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/TestRunner.js +18 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/internal/hash.js +12 -0
- package/dist/unstable/cluster/internal/hash.js.map +1 -1
- package/dist/unstable/devtools/DevTools.d.ts +26 -3
- package/dist/unstable/devtools/DevTools.d.ts.map +1 -1
- package/dist/unstable/devtools/DevTools.js +26 -3
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts +20 -5
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +32 -5
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +184 -44
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +102 -20
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.d.ts +27 -2
- package/dist/unstable/devtools/DevToolsServer.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js +21 -1
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +81 -12
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +75 -9
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +149 -21
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +97 -13
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +109 -18
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +69 -13
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +115 -30
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js +22 -2
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +50 -17
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +24 -6
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +104 -20
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +108 -16
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +151 -31
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +111 -20
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +42 -6
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +38 -5
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +92 -18
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +72 -16
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +35 -8
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +54 -8
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +17 -3
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +17 -3
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +32 -6
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +52 -6
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +74 -16
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +90 -16
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +59 -15
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +73 -14
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.d.ts +10 -2
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +28 -2
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts +32 -3
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +32 -3
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +10 -2
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +28 -2
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +156 -77
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +93 -39
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +40 -7
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +27 -4
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts +29 -3
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js +33 -4
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/FindMyWay.d.ts +1 -1
- package/dist/unstable/http/FindMyWay.js +1 -1
- package/dist/unstable/http/Headers.d.ts +182 -36
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +86 -16
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +114 -26
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +98 -20
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +205 -96
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +84 -38
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +68 -12
- package/dist/unstable/http/HttpClientError.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientError.js +71 -9
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +318 -100
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +151 -45
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +59 -16
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +44 -11
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +42 -16
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +33 -13
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +47 -7
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +44 -6
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +35 -5
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +23 -1
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +37 -11
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +52 -10
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +34 -3
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +34 -3
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +194 -45
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +118 -24
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +151 -22
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +76 -11
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +90 -10
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +82 -8
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +125 -21
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +101 -20
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +32 -6
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +43 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +390 -67
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +204 -33
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +22 -4
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +22 -4
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.d.ts +53 -6
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js +47 -5
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +178 -28
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +129 -19
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Multipasta/HeadersParser.d.ts +1 -1
- package/dist/unstable/http/Multipasta/HeadersParser.js +1 -1
- package/dist/unstable/http/Multipasta/Node.d.ts +1 -1
- package/dist/unstable/http/Multipasta/Node.js +1 -1
- package/dist/unstable/http/Multipasta/Search.d.ts +1 -1
- package/dist/unstable/http/Multipasta/Search.js +1 -1
- package/dist/unstable/http/Multipasta/Web.d.ts +1 -1
- package/dist/unstable/http/Multipasta/Web.js +1 -1
- package/dist/unstable/http/Multipasta.d.ts +1 -1
- package/dist/unstable/http/Multipasta.js +1 -1
- package/dist/unstable/http/Template.d.ts +53 -0
- package/dist/unstable/http/Template.d.ts.map +1 -1
- package/dist/unstable/http/Template.js +26 -0
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +56 -42
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +29 -15
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +233 -49
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +116 -23
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts +49 -14
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +14 -8
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +55 -16
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +44 -6
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +58 -15
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +42 -6
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +214 -59
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +53 -9
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +81 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +98 -1
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +87 -20
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +5 -2
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +111 -22
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +47 -5
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +19 -4
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js +32 -2
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +67 -30
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +48 -27
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +74 -17
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js +38 -5
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts +5 -2
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js +24 -2
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.d.ts +6 -1
- package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js +26 -1
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +86 -15
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +73 -15
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +33 -3
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/Otlp.js +14 -3
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +8 -1
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +32 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +14 -2
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +29 -2
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +15 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +32 -2
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +49 -12
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +47 -5
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.d.ts +28 -3
- package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js +28 -3
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +16 -2
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +32 -2
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +32 -12
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +7 -5
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.d.ts +2 -1
- package/dist/unstable/observability/index.d.ts.map +1 -1
- package/dist/unstable/observability/index.js +2 -1
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +93 -18
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +81 -21
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +76 -15
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +22 -5
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +27 -2
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +24 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +73 -16
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +60 -13
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +97 -16
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +90 -14
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +97 -21
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +81 -16
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +26 -5
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +36 -4
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +87 -64
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +24 -17
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +22 -11
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +11 -6
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/process/index.d.ts +2 -1
- package/dist/unstable/process/index.d.ts.map +1 -1
- package/dist/unstable/process/index.js +2 -1
- package/dist/unstable/process/index.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +196 -59
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +121 -36
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +539 -130
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +252 -58
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +41 -2
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +35 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.d.ts +51 -7
- package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js +29 -3
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +135 -21
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +69 -10
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +36 -2
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +29 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +28 -5
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
- package/dist/unstable/reactivity/Hydration.js +35 -3
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +95 -13
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +61 -7
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +255 -56
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +44 -11
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +81 -19
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +52 -12
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.d.ts +26 -2
- package/dist/unstable/rpc/RpcClientError.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js +26 -2
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +51 -8
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js +3 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +128 -32
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +23 -7
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +100 -20
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +39 -3
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +38 -4
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +34 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +60 -13
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +56 -12
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +73 -23
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +69 -22
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcTest.d.ts +20 -1
- package/dist/unstable/rpc/RpcTest.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcTest.js +20 -1
- package/dist/unstable/rpc/RpcTest.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +40 -6
- package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcWorker.js +16 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts +8 -0
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +8 -0
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +130 -52
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +79 -34
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +104 -24
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +22 -6
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +167 -34
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +123 -28
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +58 -10
- package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
- package/dist/unstable/socket/SocketServer.js +43 -5
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/sql/Migrator.d.ts +35 -4
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +44 -4
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +34 -2
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +38 -1
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.d.ts +31 -0
- package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
- package/dist/unstable/sql/SqlConnection.js +22 -0
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +99 -0
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +114 -0
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +26 -5
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +8 -4
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +56 -13
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +44 -10
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +29 -8
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +29 -8
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/SqlStream.d.ts +3 -0
- package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
- package/dist/unstable/sql/SqlStream.js +23 -0
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +124 -0
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +82 -0
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.d.ts +1 -1
- package/dist/unstable/sql/index.js +1 -1
- package/dist/unstable/workers/Transferable.d.ts +65 -13
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +53 -10
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +60 -8
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +43 -4
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +31 -9
- package/dist/unstable/workers/WorkerError.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerError.js +44 -7
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workers/WorkerRunner.d.ts +32 -3
- package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerRunner.js +24 -1
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workers/index.d.ts +1 -1
- package/dist/unstable/workers/index.js +1 -1
- package/dist/unstable/workflow/Activity.d.ts +61 -10
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +20 -5
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +12 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +22 -2
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +126 -31
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +76 -13
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +30 -7
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +23 -5
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +100 -31
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +75 -19
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +40 -5
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +16 -4
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +32 -2
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +2 -2
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts +36 -2
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +12 -6
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/package.json +11 -11
- package/src/Array.ts +113 -67
- package/src/BigDecimal.ts +404 -337
- package/src/BigInt.ts +167 -97
- package/src/Boolean.ts +62 -31
- package/src/Brand.ts +20 -1
- package/src/Cache.ts +331 -164
- package/src/Cause.ts +74 -62
- package/src/Channel.ts +1585 -607
- package/src/ChannelSchema.ts +137 -12
- package/src/Chunk.ts +549 -380
- package/src/Clock.ts +15 -8
- package/src/Combiner.ts +2 -4
- package/src/Config.ts +4 -2
- package/src/ConfigProvider.ts +1 -1
- package/src/Console.ts +88 -58
- package/src/Context.ts +384 -135
- package/src/Cron.ts +111 -48
- package/src/Data.ts +3 -2
- package/src/DateTime.ts +874 -443
- package/src/Deferred.ts +367 -174
- package/src/Differ.ts +42 -0
- package/src/Duration.ts +329 -185
- package/src/Effect.ts +2127 -1957
- package/src/Effectable.ts +37 -2
- package/src/Encoding.ts +78 -28
- package/src/Equivalence.ts +14 -19
- package/src/ErrorReporter.ts +66 -82
- package/src/ExecutionPlan.ts +94 -9
- package/src/Exit.ts +7 -5
- package/src/Fiber.ts +72 -40
- package/src/FiberHandle.ts +156 -56
- package/src/FiberMap.ts +327 -162
- package/src/FiberSet.ts +129 -51
- package/src/FileSystem.ts +106 -74
- package/src/Filter.ts +166 -88
- package/src/Function.ts +154 -86
- package/src/Graph.ts +682 -365
- package/src/HKT.ts +29 -13
- package/src/Hash.ts +31 -18
- package/src/HashMap.ts +444 -256
- package/src/HashRing.ts +94 -17
- package/src/HashSet.ts +194 -104
- package/src/Inspectable.ts +22 -10
- package/src/Iterable.ts +309 -149
- package/src/JsonPatch.ts +4 -3
- package/src/Latch.ts +98 -15
- package/src/Layer.ts +487 -344
- package/src/LayerMap.ts +95 -21
- package/src/LogLevel.ts +92 -131
- package/src/Logger.ts +357 -288
- package/src/ManagedRuntime.ts +75 -17
- package/src/Match.ts +133 -157
- package/src/Metric.ts +355 -304
- package/src/MutableHashMap.ts +161 -84
- package/src/MutableHashSet.ts +122 -52
- package/src/MutableList.ts +141 -81
- package/src/MutableRef.ts +130 -90
- package/src/Newtype.ts +3 -0
- package/src/NonEmptyIterable.ts +36 -39
- package/src/Number.ts +116 -64
- package/src/Optic.ts +1 -2
- package/src/Option.ts +28 -47
- package/src/Ordering.ts +43 -28
- package/src/PartitionedSemaphore.ts +225 -40
- package/src/Path.ts +77 -13
- package/src/Pipeable.ts +76 -21
- package/src/PlatformError.ts +74 -6
- package/src/Pool.ts +94 -31
- package/src/Predicate.ts +16 -21
- package/src/PrimaryKey.ts +9 -2
- package/src/PubSub.ts +364 -262
- package/src/Pull.ts +94 -25
- package/src/Queue.ts +284 -150
- package/src/Random.ts +54 -35
- package/src/RcMap.ts +151 -141
- package/src/RcRef.ts +69 -32
- package/src/Record.ts +273 -129
- package/src/Redactable.ts +3 -3
- package/src/Redacted.ts +63 -33
- package/src/Ref.ts +161 -104
- package/src/References.ts +73 -31
- package/src/RegExp.ts +11 -5
- package/src/Request.ts +158 -34
- package/src/RequestResolver.ts +277 -119
- package/src/Resource.ts +45 -7
- package/src/Result.ts +18 -16
- package/src/Runtime.ts +45 -19
- package/src/Schedule.ts +574 -599
- package/src/Scheduler.ts +43 -6
- package/src/Schema.ts +819 -295
- package/src/SchemaAST.ts +25 -16
- package/src/SchemaGetter.ts +29 -14
- package/src/SchemaIssue.ts +1 -8
- package/src/SchemaParser.ts +262 -38
- package/src/SchemaTransformation.ts +61 -41
- package/src/SchemaUtils.ts +23 -0
- package/src/Scope.ts +102 -43
- package/src/ScopedCache.ts +192 -56
- package/src/ScopedRef.ts +28 -8
- package/src/Semaphore.ts +64 -28
- package/src/Sink.ts +458 -200
- package/src/Stdio.ts +43 -6
- package/src/Stream.ts +2039 -1252
- package/src/String.ts +171 -95
- package/src/SubscriptionRef.ts +308 -203
- package/src/Symbol.ts +13 -5
- package/src/SynchronizedRef.ts +278 -62
- package/src/Take.ts +26 -2
- package/src/Terminal.ts +40 -7
- package/src/Tracer.ts +229 -55
- package/src/Trie.ts +213 -142
- package/src/TxChunk.ts +182 -146
- package/src/TxDeferred.ts +43 -29
- package/src/TxHashMap.ts +370 -230
- package/src/TxHashSet.ts +250 -152
- package/src/TxPriorityQueue.ts +96 -64
- package/src/TxPubSub.ts +77 -49
- package/src/TxQueue.ts +279 -241
- package/src/TxReentrantLock.ts +70 -47
- package/src/TxRef.ts +69 -40
- package/src/TxSemaphore.ts +101 -54
- package/src/TxSubscriptionRef.ts +72 -48
- package/src/Types.ts +34 -34
- package/src/UndefinedOr.ts +48 -25
- package/src/Unify.ts +71 -116
- package/src/Utils.ts +4 -0
- package/src/index.ts +81 -32
- package/src/internal/schema/schema.ts +1 -1
- package/src/testing/FastCheck.ts +6 -3
- package/src/testing/TestClock.ts +63 -34
- package/src/testing/TestConsole.ts +49 -30
- package/src/testing/TestSchema.ts +8 -8
- package/src/unstable/ai/AiError.ts +187 -120
- package/src/unstable/ai/AnthropicStructuredOutput.ts +2 -2
- package/src/unstable/ai/Chat.ts +69 -43
- package/src/unstable/ai/EmbeddingModel.ts +12 -11
- package/src/unstable/ai/IdGenerator.ts +28 -18
- package/src/unstable/ai/LanguageModel.ts +35 -27
- package/src/unstable/ai/McpSchema.ts +339 -119
- package/src/unstable/ai/McpServer.ts +76 -19
- package/src/unstable/ai/Model.ts +8 -6
- package/src/unstable/ai/OpenAiStructuredOutput.ts +2 -2
- package/src/unstable/ai/Prompt.ts +210 -184
- package/src/unstable/ai/Response.ts +159 -147
- package/src/unstable/ai/ResponseIdTracker.ts +43 -4
- package/src/unstable/ai/Telemetry.ts +42 -32
- package/src/unstable/ai/Tokenizer.ts +13 -8
- package/src/unstable/ai/Tool.ts +154 -85
- package/src/unstable/ai/Toolkit.ts +51 -46
- package/src/unstable/ai/index.ts +42 -24
- package/src/unstable/cli/Argument.ts +226 -134
- package/src/unstable/cli/CliError.ts +96 -26
- package/src/unstable/cli/CliOutput.ts +43 -13
- package/src/unstable/cli/Command.ts +194 -113
- package/src/unstable/cli/Completions.ts +7 -7
- package/src/unstable/cli/Flag.ts +235 -142
- package/src/unstable/cli/GlobalFlag.ts +41 -13
- package/src/unstable/cli/HelpDoc.ts +35 -10
- package/src/unstable/cli/Param.ts +327 -189
- package/src/unstable/cli/Primitive.ts +79 -42
- package/src/unstable/cli/Prompt.ts +201 -45
- package/src/unstable/cli/internal/ansi.ts +13 -0
- package/src/unstable/cli/internal/command.ts +5 -1
- package/src/unstable/cli/internal/config.ts +3 -0
- package/src/unstable/cli/internal/lexer.ts +11 -0
- package/src/unstable/cluster/ClusterCron.ts +35 -1
- package/src/unstable/cluster/ClusterError.ts +56 -7
- package/src/unstable/cluster/ClusterMetrics.ts +39 -5
- package/src/unstable/cluster/ClusterSchema.ts +61 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +35 -2
- package/src/unstable/cluster/DeliverAt.ts +39 -4
- package/src/unstable/cluster/Entity.ts +107 -16
- package/src/unstable/cluster/EntityAddress.ts +30 -2
- package/src/unstable/cluster/EntityId.ts +18 -3
- package/src/unstable/cluster/EntityProxy.ts +34 -2
- package/src/unstable/cluster/EntityProxyServer.ts +44 -8
- package/src/unstable/cluster/EntityResource.ts +43 -6
- package/src/unstable/cluster/EntityType.ts +27 -3
- package/src/unstable/cluster/Envelope.ts +128 -23
- package/src/unstable/cluster/HttpRunner.ts +88 -13
- package/src/unstable/cluster/K8sHttpClient.ts +49 -6
- package/src/unstable/cluster/MachineId.ts +24 -3
- package/src/unstable/cluster/Message.ts +102 -13
- package/src/unstable/cluster/MessageStorage.ts +127 -21
- package/src/unstable/cluster/Reply.ts +101 -12
- package/src/unstable/cluster/Runner.ts +47 -17
- package/src/unstable/cluster/RunnerAddress.ts +34 -2
- package/src/unstable/cluster/RunnerHealth.ts +40 -12
- package/src/unstable/cluster/RunnerServer.ts +31 -4
- package/src/unstable/cluster/RunnerStorage.ts +42 -5
- package/src/unstable/cluster/Runners.ts +73 -10
- package/src/unstable/cluster/ShardId.ts +51 -5
- package/src/unstable/cluster/Sharding.ts +35 -4
- package/src/unstable/cluster/ShardingConfig.ts +75 -10
- package/src/unstable/cluster/ShardingRegistrationEvent.ts +31 -7
- package/src/unstable/cluster/SingleRunner.ts +23 -1
- package/src/unstable/cluster/Singleton.ts +15 -1
- package/src/unstable/cluster/SingletonAddress.ts +21 -1
- package/src/unstable/cluster/Snowflake.ts +89 -19
- package/src/unstable/cluster/SocketRunner.ts +29 -2
- package/src/unstable/cluster/SqlMessageStorage.ts +27 -3
- package/src/unstable/cluster/SqlRunnerStorage.ts +46 -7
- package/src/unstable/cluster/TestRunner.ts +18 -1
- package/src/unstable/cluster/internal/hash.ts +12 -0
- package/src/unstable/devtools/DevTools.ts +26 -3
- package/src/unstable/devtools/DevToolsClient.ts +32 -5
- package/src/unstable/devtools/DevToolsSchema.ts +201 -44
- package/src/unstable/devtools/DevToolsServer.ts +27 -2
- package/src/unstable/encoding/Msgpack.ts +97 -12
- package/src/unstable/encoding/Ndjson.ts +149 -21
- package/src/unstable/encoding/Sse.ts +109 -18
- package/src/unstable/eventlog/Event.ts +131 -30
- package/src/unstable/eventlog/EventGroup.ts +50 -17
- package/src/unstable/eventlog/EventJournal.ts +120 -20
- package/src/unstable/eventlog/EventLog.ts +151 -31
- package/src/unstable/eventlog/EventLogEncryption.ts +42 -6
- package/src/unstable/eventlog/EventLogMessage.ts +92 -18
- package/src/unstable/eventlog/EventLogRemote.ts +54 -8
- package/src/unstable/eventlog/EventLogServer.ts +33 -3
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +52 -6
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +90 -16
- package/src/unstable/eventlog/EventLogSessionAuth.ts +77 -15
- package/src/unstable/eventlog/SqlEventJournal.ts +28 -2
- package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +32 -3
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +28 -2
- package/src/unstable/http/Cookies.ts +156 -77
- package/src/unstable/http/Etag.ts +40 -7
- package/src/unstable/http/FetchHttpClient.ts +33 -4
- package/src/unstable/http/FindMyWay.ts +1 -1
- package/src/unstable/http/Headers.ts +252 -50
- package/src/unstable/http/HttpBody.ts +128 -26
- package/src/unstable/http/HttpClient.ts +205 -96
- package/src/unstable/http/HttpClientError.ts +80 -12
- package/src/unstable/http/HttpClientRequest.ts +318 -100
- package/src/unstable/http/HttpClientResponse.ts +59 -16
- package/src/unstable/http/HttpEffect.ts +66 -18
- package/src/unstable/http/HttpIncomingMessage.ts +47 -7
- package/src/unstable/http/HttpMethod.ts +35 -5
- package/src/unstable/http/HttpMiddleware.ts +59 -11
- package/src/unstable/http/HttpPlatform.ts +34 -3
- package/src/unstable/http/HttpRouter.ts +217 -52
- package/src/unstable/http/HttpServer.ts +151 -22
- package/src/unstable/http/HttpServerError.ts +90 -10
- package/src/unstable/http/HttpServerRequest.ts +125 -21
- package/src/unstable/http/HttpServerRespondable.ts +49 -6
- package/src/unstable/http/HttpServerResponse.ts +390 -67
- package/src/unstable/http/HttpStaticServer.ts +22 -4
- package/src/unstable/http/HttpTraceContext.ts +53 -6
- package/src/unstable/http/Multipart.ts +178 -28
- package/src/unstable/http/Multipasta/HeadersParser.ts +1 -1
- package/src/unstable/http/Multipasta/Node.ts +1 -1
- package/src/unstable/http/Multipasta/Search.ts +1 -1
- package/src/unstable/http/Multipasta/Web.ts +1 -1
- package/src/unstable/http/Multipasta.ts +1 -1
- package/src/unstable/http/Template.ts +53 -0
- package/src/unstable/http/Url.ts +56 -42
- package/src/unstable/http/UrlParams.ts +233 -49
- package/src/unstable/httpapi/HttpApi.ts +49 -14
- package/src/unstable/httpapi/HttpApiBuilder.ts +82 -16
- package/src/unstable/httpapi/HttpApiClient.ts +79 -15
- package/src/unstable/httpapi/HttpApiEndpoint.ts +238 -59
- package/src/unstable/httpapi/HttpApiError.ts +100 -1
- package/src/unstable/httpapi/HttpApiGroup.ts +87 -20
- package/src/unstable/httpapi/HttpApiMiddleware.ts +111 -22
- package/src/unstable/httpapi/HttpApiScalar.ts +38 -4
- package/src/unstable/httpapi/HttpApiSchema.ts +67 -30
- package/src/unstable/httpapi/HttpApiSecurity.ts +74 -17
- package/src/unstable/httpapi/HttpApiSwagger.ts +24 -2
- package/src/unstable/httpapi/HttpApiTest.ts +26 -1
- package/src/unstable/httpapi/OpenApi.ts +115 -15
- package/src/unstable/observability/Otlp.ts +33 -3
- package/src/unstable/observability/OtlpExporter.ts +32 -1
- package/src/unstable/observability/OtlpLogger.ts +31 -2
- package/src/unstable/observability/OtlpMetrics.ts +37 -4
- package/src/unstable/observability/OtlpResource.ts +68 -12
- package/src/unstable/observability/OtlpSerialization.ts +28 -3
- package/src/unstable/observability/OtlpTracer.ts +38 -2
- package/src/unstable/observability/PrometheusMetrics.ts +32 -12
- package/src/unstable/observability/index.ts +2 -1
- package/src/unstable/persistence/KeyValueStore.ts +108 -28
- package/src/unstable/persistence/Persistable.ts +76 -15
- package/src/unstable/persistence/PersistedCache.ts +27 -2
- package/src/unstable/persistence/PersistedQueue.ts +98 -16
- package/src/unstable/persistence/Persistence.ts +97 -16
- package/src/unstable/persistence/RateLimiter.ts +97 -21
- package/src/unstable/persistence/Redis.ts +42 -5
- package/src/unstable/process/ChildProcess.ts +89 -65
- package/src/unstable/process/ChildProcessSpawner.ts +22 -11
- package/src/unstable/process/index.ts +2 -1
- package/src/unstable/reactivity/AsyncResult.ts +202 -61
- package/src/unstable/reactivity/Atom.ts +593 -139
- package/src/unstable/reactivity/AtomHttpApi.ts +41 -2
- package/src/unstable/reactivity/AtomRef.ts +51 -7
- package/src/unstable/reactivity/AtomRegistry.ts +141 -22
- package/src/unstable/reactivity/AtomRpc.ts +36 -2
- package/src/unstable/reactivity/Hydration.ts +45 -5
- package/src/unstable/reactivity/Reactivity.ts +95 -13
- package/src/unstable/rpc/Rpc.ts +255 -56
- package/src/unstable/rpc/RpcClient.ts +107 -19
- package/src/unstable/rpc/RpcClientError.ts +26 -2
- package/src/unstable/rpc/RpcGroup.ts +51 -8
- package/src/unstable/rpc/RpcMessage.ts +128 -32
- package/src/unstable/rpc/RpcMiddleware.ts +100 -20
- package/src/unstable/rpc/RpcSchema.ts +38 -4
- package/src/unstable/rpc/RpcSerialization.ts +60 -13
- package/src/unstable/rpc/RpcServer.ts +107 -23
- package/src/unstable/rpc/RpcTest.ts +20 -1
- package/src/unstable/rpc/RpcWorker.ts +40 -6
- package/src/unstable/rpc/Utils.ts +31 -0
- package/src/unstable/schema/Model.ts +148 -52
- package/src/unstable/schema/VariantSchema.ts +104 -24
- package/src/unstable/socket/Socket.ts +167 -34
- package/src/unstable/socket/SocketServer.ts +58 -10
- package/src/unstable/sql/Migrator.ts +56 -4
- package/src/unstable/sql/SqlClient.ts +55 -2
- package/src/unstable/sql/SqlConnection.ts +31 -0
- package/src/unstable/sql/SqlError.ts +117 -0
- package/src/unstable/sql/SqlModel.ts +26 -5
- package/src/unstable/sql/SqlResolver.ts +56 -13
- package/src/unstable/sql/SqlSchema.ts +29 -8
- package/src/unstable/sql/SqlStream.ts +23 -0
- package/src/unstable/sql/Statement.ts +141 -0
- package/src/unstable/sql/index.ts +1 -1
- package/src/unstable/workers/Transferable.ts +65 -13
- package/src/unstable/workers/Worker.ts +60 -8
- package/src/unstable/workers/WorkerError.ts +50 -9
- package/src/unstable/workers/WorkerRunner.ts +32 -3
- package/src/unstable/workers/index.ts +1 -1
- package/src/unstable/workflow/Activity.ts +61 -10
- package/src/unstable/workflow/DurableClock.ts +26 -3
- package/src/unstable/workflow/DurableDeferred.ts +146 -31
- package/src/unstable/workflow/DurableQueue.ts +30 -7
- package/src/unstable/workflow/Workflow.ts +121 -31
- package/src/unstable/workflow/WorkflowEngine.ts +40 -5
- package/src/unstable/workflow/WorkflowProxy.ts +32 -2
- package/src/unstable/workflow/WorkflowProxyServer.ts +40 -6
package/dist/Channel.js
CHANGED
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
* 2. **Sequencing**: Use the result of one channel to create another
|
|
29
29
|
* 3. **Concatenating**: Combine multiple channels into a single channel
|
|
30
30
|
*
|
|
31
|
-
*
|
|
31
|
+
* **Example** (Creating a simple channel)
|
|
32
|
+
*
|
|
32
33
|
* ```ts
|
|
33
34
|
* import { Channel } from "effect"
|
|
34
35
|
*
|
|
@@ -41,7 +42,8 @@
|
|
|
41
42
|
* // Running the channel would output: 84
|
|
42
43
|
* ```
|
|
43
44
|
*
|
|
44
|
-
*
|
|
45
|
+
* **Example** (Transforming array-backed channels)
|
|
46
|
+
*
|
|
45
47
|
* ```ts
|
|
46
48
|
* import { Channel } from "effect"
|
|
47
49
|
*
|
|
@@ -85,14 +87,18 @@ import * as String from "./String.js";
|
|
|
85
87
|
import * as Take from "./Take.js";
|
|
86
88
|
import { ParentSpan } from "./Tracer.js";
|
|
87
89
|
/**
|
|
88
|
-
*
|
|
90
|
+
* Runtime identifier stored on `Channel` values and used by `isChannel` to
|
|
91
|
+
* recognize them.
|
|
92
|
+
*
|
|
89
93
|
* @category Type Identifiers
|
|
94
|
+
* @since 4.0.0
|
|
90
95
|
*/
|
|
91
96
|
export const TypeId = "~effect/Channel";
|
|
92
97
|
/**
|
|
93
98
|
* Tests if a value is a `Channel`.
|
|
94
99
|
*
|
|
95
|
-
*
|
|
100
|
+
* **Example** (Checking for channels)
|
|
101
|
+
*
|
|
96
102
|
* ```ts
|
|
97
103
|
* import { Channel } from "effect"
|
|
98
104
|
*
|
|
@@ -123,7 +129,8 @@ const ChannelProto = {
|
|
|
123
129
|
/**
|
|
124
130
|
* Creates a `Channel` from a transformation function that operates on upstream pulls.
|
|
125
131
|
*
|
|
126
|
-
*
|
|
132
|
+
* **Example** (Creating channels from transforms)
|
|
133
|
+
*
|
|
127
134
|
* ```ts
|
|
128
135
|
* import { Channel, Effect } from "effect"
|
|
129
136
|
*
|
|
@@ -143,7 +150,8 @@ export const fromTransform = transform => {
|
|
|
143
150
|
/**
|
|
144
151
|
* Transforms a Channel by applying a function to its Pull implementation.
|
|
145
152
|
*
|
|
146
|
-
*
|
|
153
|
+
* **Example** (Transforming pull behavior)
|
|
154
|
+
*
|
|
147
155
|
* ```ts
|
|
148
156
|
* import { Channel, Effect } from "effect"
|
|
149
157
|
*
|
|
@@ -167,7 +175,8 @@ export const transformPull = (self, f) => fromTransform((upstream, scope) => Eff
|
|
|
167
175
|
/**
|
|
168
176
|
* Creates a `Channel` from an `Effect` that produces a `Pull`.
|
|
169
177
|
*
|
|
170
|
-
*
|
|
178
|
+
* **Example** (Creating channels from pulls)
|
|
179
|
+
*
|
|
171
180
|
* ```ts
|
|
172
181
|
* import { Channel, Effect } from "effect"
|
|
173
182
|
*
|
|
@@ -185,8 +194,8 @@ export const fromPull = effect => fromTransform((_, __) => effect);
|
|
|
185
194
|
* pulls, but also provides a forked scope that closes when the resulting
|
|
186
195
|
* Channel completes.
|
|
187
196
|
*
|
|
188
|
-
* @since 4.0.0
|
|
189
197
|
* @category constructors
|
|
198
|
+
* @since 4.0.0
|
|
190
199
|
*/
|
|
191
200
|
export const fromTransformBracket = f => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
|
|
192
201
|
const closableScope = Scope.forkUnsafe(scope);
|
|
@@ -197,7 +206,8 @@ export const fromTransformBracket = f => fromTransform(Effect.fnUntraced(functio
|
|
|
197
206
|
/**
|
|
198
207
|
* Converts a `Channel` back to its underlying transformation function.
|
|
199
208
|
*
|
|
200
|
-
*
|
|
209
|
+
* **Example** (Extracting channel transforms)
|
|
210
|
+
*
|
|
201
211
|
* ```ts
|
|
202
212
|
* import { Channel } from "effect"
|
|
203
213
|
*
|
|
@@ -213,7 +223,8 @@ export const toTransform = channel => channel.transform;
|
|
|
213
223
|
/**
|
|
214
224
|
* The default chunk size used by channels for batching operations.
|
|
215
225
|
*
|
|
216
|
-
*
|
|
226
|
+
* **Example** (Reading the default chunk size)
|
|
227
|
+
*
|
|
217
228
|
* ```ts
|
|
218
229
|
* import { Channel } from "effect"
|
|
219
230
|
*
|
|
@@ -231,7 +242,8 @@ const asyncQueue = (scope, f, options) => Queue.make({
|
|
|
231
242
|
/**
|
|
232
243
|
* Creates a `Channel` that interacts with a callback function using a queue.
|
|
233
244
|
*
|
|
234
|
-
*
|
|
245
|
+
* **Example** (Creating channels from callbacks)
|
|
246
|
+
*
|
|
235
247
|
* ```ts
|
|
236
248
|
* import { Channel, Effect, Queue } from "effect"
|
|
237
249
|
*
|
|
@@ -251,7 +263,8 @@ export const callback = (f, options) => fromTransform((_, scope) => Effect.map(a
|
|
|
251
263
|
/**
|
|
252
264
|
* Creates a `Channel` that interacts with a callback function using a queue, emitting arrays.
|
|
253
265
|
*
|
|
254
|
-
*
|
|
266
|
+
* **Example** (Creating array channels from callbacks)
|
|
267
|
+
*
|
|
255
268
|
* ```ts
|
|
256
269
|
* import { Channel, Effect, Queue } from "effect"
|
|
257
270
|
*
|
|
@@ -269,7 +282,8 @@ export const callbackArray = (f, options) => fromTransform((_, scope) => Effect.
|
|
|
269
282
|
/**
|
|
270
283
|
* Creates a `Channel` that lazily evaluates to another channel.
|
|
271
284
|
*
|
|
272
|
-
*
|
|
285
|
+
* **Example** (Suspending channel creation)
|
|
286
|
+
*
|
|
273
287
|
* ```ts
|
|
274
288
|
* import { Channel } from "effect"
|
|
275
289
|
*
|
|
@@ -282,9 +296,15 @@ export const callbackArray = (f, options) => fromTransform((_, scope) => Effect.
|
|
|
282
296
|
*/
|
|
283
297
|
export const suspend = evaluate => fromTransform((upstream, scope) => Effect.suspend(() => toTransform(evaluate())(upstream, scope)));
|
|
284
298
|
/**
|
|
285
|
-
*
|
|
299
|
+
* Acquires a resource, uses it to build a `Channel`, and guarantees that
|
|
300
|
+
* `release` runs with the channel's `Exit` when the channel completes, fails,
|
|
301
|
+
* or is interrupted.
|
|
302
|
+
*
|
|
303
|
+
* Acquisition is uninterruptible. If acquisition fails, `use` is not run and
|
|
304
|
+
* `release` is not registered.
|
|
305
|
+
*
|
|
306
|
+
* **Example** (Managing resources with acquire-use-release)
|
|
286
307
|
*
|
|
287
|
-
* @example
|
|
288
308
|
* ```ts
|
|
289
309
|
* import { Channel, Effect } from "effect"
|
|
290
310
|
*
|
|
@@ -306,9 +326,15 @@ export const acquireUseRelease = (acquire, use, release) => fromTransformBracket
|
|
|
306
326
|
return yield* toTransform(use(value))(upstream, scope);
|
|
307
327
|
}));
|
|
308
328
|
/**
|
|
309
|
-
*
|
|
329
|
+
* Acquires a resource, emits the acquired value as a single channel element,
|
|
330
|
+
* and registers `release` in the channel scope.
|
|
331
|
+
*
|
|
332
|
+
* The release action runs when the channel scope closes and receives the scope
|
|
333
|
+
* exit. If acquisition fails, no element is emitted and `release` is not
|
|
334
|
+
* registered.
|
|
335
|
+
*
|
|
336
|
+
* **Example** (Managing resources with acquire-release)
|
|
310
337
|
*
|
|
311
|
-
* @example
|
|
312
338
|
* ```ts
|
|
313
339
|
* import { Channel, Effect } from "effect"
|
|
314
340
|
*
|
|
@@ -325,7 +351,8 @@ export const acquireRelease = /*#__PURE__*/dual(2, (self, release) => unwrap(Eff
|
|
|
325
351
|
/**
|
|
326
352
|
* Creates a `Channel` from an iterator.
|
|
327
353
|
*
|
|
328
|
-
*
|
|
354
|
+
* **Example** (Creating channels from iterators)
|
|
355
|
+
*
|
|
329
356
|
* ```ts
|
|
330
357
|
* import { Channel } from "effect"
|
|
331
358
|
*
|
|
@@ -347,7 +374,8 @@ export const fromIterator = iterator => fromPull(Effect.sync(() => {
|
|
|
347
374
|
/**
|
|
348
375
|
* Creates a `Channel` that emits all elements from an array.
|
|
349
376
|
*
|
|
350
|
-
*
|
|
377
|
+
* **Example** (Creating channels from arrays)
|
|
378
|
+
*
|
|
351
379
|
* ```ts
|
|
352
380
|
* import { Channel } from "effect"
|
|
353
381
|
*
|
|
@@ -365,7 +393,8 @@ export const fromArray = array => fromPull(Effect.sync(() => {
|
|
|
365
393
|
/**
|
|
366
394
|
* Creates a `Channel` that emits all elements from a chunk.
|
|
367
395
|
*
|
|
368
|
-
*
|
|
396
|
+
* **Example** (Creating channels from chunks)
|
|
397
|
+
*
|
|
369
398
|
* ```ts
|
|
370
399
|
* import { Channel, Chunk } from "effect"
|
|
371
400
|
*
|
|
@@ -381,7 +410,8 @@ export const fromChunk = chunk => fromArray(Chunk.toReadonlyArray(chunk));
|
|
|
381
410
|
/**
|
|
382
411
|
* Creates a `Channel` from an iterator that emits arrays of elements.
|
|
383
412
|
*
|
|
384
|
-
*
|
|
413
|
+
* **Example** (Batching iterator output)
|
|
414
|
+
*
|
|
385
415
|
* ```ts
|
|
386
416
|
* import { Channel } from "effect"
|
|
387
417
|
*
|
|
@@ -402,7 +432,8 @@ export const fromChunk = chunk => fromArray(Chunk.toReadonlyArray(chunk));
|
|
|
402
432
|
* // This will emit arrays: [0, 1], [2], then complete with "finished"
|
|
403
433
|
* ```
|
|
404
434
|
*
|
|
405
|
-
*
|
|
435
|
+
* **Example** (Batching generator output)
|
|
436
|
+
*
|
|
406
437
|
* ```ts
|
|
407
438
|
* import { Channel } from "effect"
|
|
408
439
|
*
|
|
@@ -419,8 +450,8 @@ export const fromChunk = chunk => fromArray(Chunk.toReadonlyArray(chunk));
|
|
|
419
450
|
* // Emits: [0, 1, 1], [2, 3], then completes
|
|
420
451
|
* ```
|
|
421
452
|
*
|
|
422
|
-
* @since 2.0.0
|
|
423
453
|
* @category constructors
|
|
454
|
+
* @since 2.0.0
|
|
424
455
|
*/
|
|
425
456
|
export const fromIteratorArray = (iterator, chunkSize = DefaultChunkSize) => fromPull(Effect.sync(() => {
|
|
426
457
|
const iter = iterator();
|
|
@@ -445,7 +476,8 @@ export const fromIteratorArray = (iterator, chunkSize = DefaultChunkSize) => fro
|
|
|
445
476
|
/**
|
|
446
477
|
* Creates a `Channel` that emits all elements from an iterable.
|
|
447
478
|
*
|
|
448
|
-
*
|
|
479
|
+
* **Example** (Creating channels from iterables)
|
|
480
|
+
*
|
|
449
481
|
* ```ts
|
|
450
482
|
* import { Channel } from "effect"
|
|
451
483
|
*
|
|
@@ -461,7 +493,8 @@ export const fromIterable = iterable => fromIterator(() => iterable[Symbol.itera
|
|
|
461
493
|
/**
|
|
462
494
|
* Creates a `Channel` that emits arrays of elements from an iterable.
|
|
463
495
|
*
|
|
464
|
-
*
|
|
496
|
+
* **Example** (Batching iterable output)
|
|
497
|
+
*
|
|
465
498
|
* ```ts
|
|
466
499
|
* import { Channel } from "effect"
|
|
467
500
|
*
|
|
@@ -477,7 +510,8 @@ export const fromIterableArray = (iterable, chunkSize = DefaultChunkSize) => fro
|
|
|
477
510
|
/**
|
|
478
511
|
* Creates a `Channel` that emits a single value and then ends.
|
|
479
512
|
*
|
|
480
|
-
*
|
|
513
|
+
* **Example** (Creating channels that succeed)
|
|
514
|
+
*
|
|
481
515
|
* ```ts
|
|
482
516
|
* import { Channel } from "effect"
|
|
483
517
|
*
|
|
@@ -492,7 +526,8 @@ export const succeed = value => fromEffect(Effect.succeed(value));
|
|
|
492
526
|
/**
|
|
493
527
|
* Creates a `Channel` that immediately ends with the specified value.
|
|
494
528
|
*
|
|
495
|
-
*
|
|
529
|
+
* **Example** (Ending with a value)
|
|
530
|
+
*
|
|
496
531
|
* ```ts
|
|
497
532
|
* import { Channel } from "effect"
|
|
498
533
|
*
|
|
@@ -514,12 +549,18 @@ export const endSync = evaluate => fromPull(Effect.sync(() => Cause.done(evaluat
|
|
|
514
549
|
/**
|
|
515
550
|
* Creates a `Channel` that emits a single value computed by a lazy evaluation.
|
|
516
551
|
*
|
|
517
|
-
*
|
|
552
|
+
* **Example** (Computing values lazily)
|
|
553
|
+
*
|
|
518
554
|
* ```ts
|
|
519
555
|
* import { Channel } from "effect"
|
|
520
556
|
*
|
|
521
|
-
*
|
|
522
|
-
*
|
|
557
|
+
* let requests = 0
|
|
558
|
+
*
|
|
559
|
+
* const channel = Channel.sync(() => {
|
|
560
|
+
* requests += 1
|
|
561
|
+
* return `request-${requests}`
|
|
562
|
+
* })
|
|
563
|
+
* // Emits "request-1" when the channel runs for the first time
|
|
523
564
|
* ```
|
|
524
565
|
*
|
|
525
566
|
* @category constructors
|
|
@@ -529,7 +570,8 @@ export const sync = evaluate => fromEffect(Effect.sync(evaluate));
|
|
|
529
570
|
/**
|
|
530
571
|
* Represents an Channel that emits no elements
|
|
531
572
|
*
|
|
532
|
-
*
|
|
573
|
+
* **Example** (Using empty channels)
|
|
574
|
+
*
|
|
533
575
|
* ```ts
|
|
534
576
|
* import { Channel } from "effect"
|
|
535
577
|
*
|
|
@@ -545,14 +587,15 @@ export const sync = evaluate => fromEffect(Effect.sync(evaluate));
|
|
|
545
587
|
* shouldEmit ? Channel.succeed("data") : Channel.empty
|
|
546
588
|
* ```
|
|
547
589
|
*
|
|
548
|
-
* @since 2.0.0
|
|
549
590
|
* @category constructors
|
|
591
|
+
* @since 2.0.0
|
|
550
592
|
*/
|
|
551
593
|
export const empty = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(/*#__PURE__*/Cause.done()));
|
|
552
594
|
/**
|
|
553
595
|
* Represents an Channel that never completes
|
|
554
596
|
*
|
|
555
|
-
*
|
|
597
|
+
* **Example** (Using non-terminating channels)
|
|
598
|
+
*
|
|
556
599
|
* ```ts
|
|
557
600
|
* import { Channel } from "effect"
|
|
558
601
|
*
|
|
@@ -570,14 +613,15 @@ export const empty = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(/*#__PURE
|
|
|
570
613
|
* shouldComplete ? Channel.succeed("done") : Channel.never
|
|
571
614
|
* ```
|
|
572
615
|
*
|
|
573
|
-
* @since 2.0.0
|
|
574
616
|
* @category constructors
|
|
617
|
+
* @since 2.0.0
|
|
575
618
|
*/
|
|
576
619
|
export const never = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(Effect.never));
|
|
577
620
|
/**
|
|
578
621
|
* Constructs a channel that fails immediately with the specified error.
|
|
579
622
|
*
|
|
580
|
-
*
|
|
623
|
+
* **Example** (Failing with an error)
|
|
624
|
+
*
|
|
581
625
|
* ```ts
|
|
582
626
|
* import { Channel } from "effect"
|
|
583
627
|
*
|
|
@@ -600,15 +644,16 @@ export const never = /*#__PURE__*/fromPull(/*#__PURE__*/Effect.succeed(Effect.ne
|
|
|
600
644
|
* )
|
|
601
645
|
* ```
|
|
602
646
|
*
|
|
603
|
-
* @since 2.0.0
|
|
604
647
|
* @category constructors
|
|
648
|
+
* @since 2.0.0
|
|
605
649
|
*/
|
|
606
650
|
export const fail = error => fromPull(Effect.succeed(Effect.fail(error)));
|
|
607
651
|
/**
|
|
608
652
|
* Constructs a channel that fails immediately with the specified lazily
|
|
609
653
|
* evaluated error.
|
|
610
654
|
*
|
|
611
|
-
*
|
|
655
|
+
* **Example** (Failing with a lazy error)
|
|
656
|
+
*
|
|
612
657
|
* ```ts
|
|
613
658
|
* import { Channel } from "effect"
|
|
614
659
|
*
|
|
@@ -619,25 +664,28 @@ export const fail = error => fromPull(Effect.succeed(Effect.fail(error)));
|
|
|
619
664
|
* })
|
|
620
665
|
*
|
|
621
666
|
* // The error computation is deferred until the channel runs
|
|
622
|
-
*
|
|
623
|
-
*
|
|
624
|
-
*
|
|
667
|
+
* let attempts = 0
|
|
668
|
+
* const conditionalError = Channel.failSync(() => {
|
|
669
|
+
* attempts += 1
|
|
670
|
+
* return `Error after attempt ${attempts}`
|
|
671
|
+
* })
|
|
625
672
|
*
|
|
626
673
|
* // Use with expensive error construction
|
|
627
674
|
* const expensiveError = Channel.failSync(() => {
|
|
628
|
-
* const
|
|
629
|
-
* return new Error(`Failed
|
|
675
|
+
* const requestId = "request-123"
|
|
676
|
+
* return new Error(`Failed while processing ${requestId}`)
|
|
630
677
|
* })
|
|
631
678
|
* ```
|
|
632
679
|
*
|
|
633
|
-
* @since 2.0.0
|
|
634
680
|
* @category constructors
|
|
681
|
+
* @since 2.0.0
|
|
635
682
|
*/
|
|
636
683
|
export const failSync = evaluate => fromPull(Effect.failSync(evaluate));
|
|
637
684
|
/**
|
|
638
685
|
* Constructs a channel that fails immediately with the specified `Cause`.
|
|
639
686
|
*
|
|
640
|
-
*
|
|
687
|
+
* **Example** (Failing with causes)
|
|
688
|
+
*
|
|
641
689
|
* ```ts
|
|
642
690
|
* import { Cause, Channel } from "effect"
|
|
643
691
|
*
|
|
@@ -654,39 +702,42 @@ export const failSync = evaluate => fromPull(Effect.failSync(evaluate));
|
|
|
654
702
|
* const simpleFail = Channel.failCause(failCause)
|
|
655
703
|
* ```
|
|
656
704
|
*
|
|
657
|
-
* @since 2.0.0
|
|
658
705
|
* @category constructors
|
|
706
|
+
* @since 2.0.0
|
|
659
707
|
*/
|
|
660
708
|
export const failCause = cause => fromPull(Effect.failCause(cause));
|
|
661
709
|
/**
|
|
662
710
|
* Constructs a channel that fails immediately with the specified lazily
|
|
663
711
|
* evaluated `Cause`.
|
|
664
712
|
*
|
|
665
|
-
*
|
|
713
|
+
* **Example** (Failing with lazy causes)
|
|
714
|
+
*
|
|
666
715
|
* ```ts
|
|
667
716
|
* import { Cause, Channel } from "effect"
|
|
668
717
|
*
|
|
669
718
|
* // Create a channel that fails with a lazily computed cause
|
|
719
|
+
* let attempts = 0
|
|
670
720
|
* const failedChannel = Channel.failCauseSync(() => {
|
|
671
|
-
*
|
|
672
|
-
* return Cause.fail(`Runtime error ${
|
|
721
|
+
* attempts += 1
|
|
722
|
+
* return Cause.fail(`Runtime error after attempt ${attempts}`)
|
|
673
723
|
* })
|
|
674
724
|
*
|
|
675
725
|
* // Create a channel with die cause computation
|
|
676
726
|
* const dieCauseChannel = Channel.failCauseSync(() => {
|
|
677
|
-
* const
|
|
678
|
-
* return Cause.die(`
|
|
727
|
+
* const operation = "load-profile"
|
|
728
|
+
* return Cause.die(`Unexpected defect during ${operation}`)
|
|
679
729
|
* })
|
|
680
730
|
* ```
|
|
681
731
|
*
|
|
682
|
-
* @since 2.0.0
|
|
683
732
|
* @category constructors
|
|
733
|
+
* @since 2.0.0
|
|
684
734
|
*/
|
|
685
735
|
export const failCauseSync = evaluate => fromPull(Effect.failCauseSync(evaluate));
|
|
686
736
|
/**
|
|
687
737
|
* Constructs a channel that fails immediately with the specified defect.
|
|
688
738
|
*
|
|
689
|
-
*
|
|
739
|
+
* **Example** (Dying with defects)
|
|
740
|
+
*
|
|
690
741
|
* ```ts
|
|
691
742
|
* import { Channel } from "effect"
|
|
692
743
|
*
|
|
@@ -703,14 +754,15 @@ export const failCauseSync = evaluate => fromPull(Effect.failCauseSync(evaluate)
|
|
|
703
754
|
* })
|
|
704
755
|
* ```
|
|
705
756
|
*
|
|
706
|
-
* @since 2.0.0
|
|
707
757
|
* @category constructors
|
|
758
|
+
* @since 2.0.0
|
|
708
759
|
*/
|
|
709
760
|
export const die = defect => failCause(Cause.die(defect));
|
|
710
761
|
/**
|
|
711
762
|
* Use an effect to write a single value to the channel.
|
|
712
763
|
*
|
|
713
|
-
*
|
|
764
|
+
* **Example** (Creating channels from effects)
|
|
765
|
+
*
|
|
714
766
|
* ```ts
|
|
715
767
|
* import { Channel, Data, Effect } from "effect"
|
|
716
768
|
*
|
|
@@ -740,8 +792,8 @@ export const die = defect => failCause(Cause.die(defect));
|
|
|
740
792
|
* )
|
|
741
793
|
* ```
|
|
742
794
|
*
|
|
743
|
-
* @since 2.0.0
|
|
744
795
|
* @category constructors
|
|
796
|
+
* @since 2.0.0
|
|
745
797
|
*/
|
|
746
798
|
export const fromEffect = effect => fromPull(Effect.sync(() => {
|
|
747
799
|
let done = false;
|
|
@@ -752,26 +804,38 @@ export const fromEffect = effect => fromPull(Effect.sync(() => {
|
|
|
752
804
|
});
|
|
753
805
|
}));
|
|
754
806
|
/**
|
|
755
|
-
*
|
|
807
|
+
* Creates a channel that evaluates an effect and uses its successful value as
|
|
808
|
+
* the channel's done value without emitting any output elements.
|
|
809
|
+
*
|
|
810
|
+
* If the effect fails, the channel fails with the effect's error.
|
|
811
|
+
*
|
|
756
812
|
* @category constructors
|
|
813
|
+
* @since 4.0.0
|
|
757
814
|
*/
|
|
758
815
|
export const fromEffectDone = effect => fromPull(Effect.succeed(Effect.flatMap(effect, Cause.done)));
|
|
759
816
|
/**
|
|
760
817
|
* Use an effect and discard its result.
|
|
761
818
|
*
|
|
762
|
-
* @since 4.0.0
|
|
763
819
|
* @category constructors
|
|
820
|
+
* @since 4.0.0
|
|
764
821
|
*/
|
|
765
822
|
export const fromEffectDrain = effect => fromPull(Effect.flatMap(effect, () => Cause.done()));
|
|
766
823
|
/**
|
|
767
|
-
*
|
|
824
|
+
* Creates a channel from an effect that produces a `Take`.
|
|
825
|
+
*
|
|
826
|
+
* A successful `Take` emits a non-empty array of output elements. A failed
|
|
827
|
+
* `Take` fails the channel. A done `Take` completes the channel with its done
|
|
828
|
+
* value.
|
|
829
|
+
*
|
|
768
830
|
* @category constructors
|
|
831
|
+
* @since 4.0.0
|
|
769
832
|
*/
|
|
770
833
|
export const fromEffectTake = effect => fromPull(Effect.succeed(Effect.flatMap(effect, Take.toPull)));
|
|
771
834
|
/**
|
|
772
835
|
* Create a channel from a queue
|
|
773
836
|
*
|
|
774
|
-
*
|
|
837
|
+
* **Example** (Creating channels from queues)
|
|
838
|
+
*
|
|
775
839
|
* ```ts
|
|
776
840
|
* import { Channel, Data, Effect, Queue } from "effect"
|
|
777
841
|
*
|
|
@@ -803,14 +867,15 @@ export const fromEffectTake = effect => fromPull(Effect.succeed(Effect.flatMap(e
|
|
|
803
867
|
* })
|
|
804
868
|
* ```
|
|
805
869
|
*
|
|
806
|
-
* @since 4.0.0
|
|
807
870
|
* @category constructors
|
|
871
|
+
* @since 4.0.0
|
|
808
872
|
*/
|
|
809
873
|
export const fromQueue = queue => fromPull(Effect.succeed(Queue.take(queue)));
|
|
810
874
|
/**
|
|
811
875
|
* Create a channel from a queue that emits arrays of elements
|
|
812
876
|
*
|
|
813
|
-
*
|
|
877
|
+
* **Example** (Creating batched channels from queues)
|
|
878
|
+
*
|
|
814
879
|
* ```ts
|
|
815
880
|
* import { Channel, Data, Effect, Queue } from "effect"
|
|
816
881
|
*
|
|
@@ -846,19 +911,23 @@ export const fromQueue = queue => fromPull(Effect.succeed(Queue.take(queue)));
|
|
|
846
911
|
* })
|
|
847
912
|
* ```
|
|
848
913
|
*
|
|
849
|
-
* @since 4.0.0
|
|
850
914
|
* @category constructors
|
|
915
|
+
* @since 4.0.0
|
|
851
916
|
*/
|
|
852
917
|
export const fromQueueArray = queue => fromPull(Effect.succeed(Queue.takeAll(queue)));
|
|
853
918
|
/**
|
|
854
|
-
*
|
|
919
|
+
* Creates a channel that forwards upstream input elements, input errors, and
|
|
920
|
+
* the upstream done value unchanged.
|
|
921
|
+
*
|
|
855
922
|
* @category Constructors
|
|
923
|
+
* @since 2.0.0
|
|
856
924
|
*/
|
|
857
925
|
export const identity = () => fromTransform((upstream, _scope) => Effect.succeed(upstream));
|
|
858
926
|
/**
|
|
859
927
|
* Create a channel from a PubSub subscription
|
|
860
928
|
*
|
|
861
|
-
*
|
|
929
|
+
* **Example** (Creating channels from subscriptions)
|
|
930
|
+
*
|
|
862
931
|
* ```ts
|
|
863
932
|
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
864
933
|
*
|
|
@@ -895,8 +964,8 @@ export const identity = () => fromTransform((upstream, _scope) => Effect.succeed
|
|
|
895
964
|
* })
|
|
896
965
|
* ```
|
|
897
966
|
*
|
|
898
|
-
* @since 4.0.0
|
|
899
967
|
* @category constructors
|
|
968
|
+
* @since 4.0.0
|
|
900
969
|
*/
|
|
901
970
|
export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.onInterrupt(PubSub.take(subscription), () => Cause.done())));
|
|
902
971
|
/**
|
|
@@ -909,7 +978,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
909
978
|
* @param subscription - The PubSub subscription to read from
|
|
910
979
|
* @param chunkSize - The maximum number of elements to read in each chunk (default: 4096)
|
|
911
980
|
*
|
|
912
|
-
*
|
|
981
|
+
* **Example** (Batching subscription values)
|
|
982
|
+
*
|
|
913
983
|
* ```ts
|
|
914
984
|
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
915
985
|
*
|
|
@@ -935,7 +1005,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
935
1005
|
* })
|
|
936
1006
|
* ```
|
|
937
1007
|
*
|
|
938
|
-
*
|
|
1008
|
+
* **Example** (Processing subscription values in batches)
|
|
1009
|
+
*
|
|
939
1010
|
* ```ts
|
|
940
1011
|
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
941
1012
|
*
|
|
@@ -960,13 +1031,10 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
960
1031
|
* })
|
|
961
1032
|
* ```
|
|
962
1033
|
*
|
|
963
|
-
*
|
|
964
|
-
* ```ts
|
|
965
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1034
|
+
* **Example** (Aggregating subscription metrics)
|
|
966
1035
|
*
|
|
967
|
-
*
|
|
968
|
-
*
|
|
969
|
-
* }> {}
|
|
1036
|
+
* ```ts
|
|
1037
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
970
1038
|
*
|
|
971
1039
|
* const metricsAggregator = Effect.gen(function*() {
|
|
972
1040
|
* const metricsPubSub = yield* PubSub.bounded<
|
|
@@ -991,7 +1059,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
991
1059
|
* average: avg,
|
|
992
1060
|
* min,
|
|
993
1061
|
* max,
|
|
994
|
-
*
|
|
1062
|
+
* firstTimestamp: Math.min(...metrics.map((m) => m.timestamp)),
|
|
1063
|
+
* lastTimestamp: Math.max(...metrics.map((m) => m.timestamp))
|
|
995
1064
|
* }
|
|
996
1065
|
* })
|
|
997
1066
|
*
|
|
@@ -999,8 +1068,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
999
1068
|
* })
|
|
1000
1069
|
* ```
|
|
1001
1070
|
*
|
|
1002
|
-
* @since 4.0.0
|
|
1003
1071
|
* @category constructors
|
|
1072
|
+
* @since 4.0.0
|
|
1004
1073
|
*/
|
|
1005
1074
|
export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Effect.onInterrupt(PubSub.takeAll(subscription), () => Cause.done())));
|
|
1006
1075
|
/**
|
|
@@ -1012,7 +1081,8 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1012
1081
|
*
|
|
1013
1082
|
* @param pubsub - The PubSub to read from
|
|
1014
1083
|
*
|
|
1015
|
-
*
|
|
1084
|
+
* **Example** (Creating channels from PubSubs)
|
|
1085
|
+
*
|
|
1016
1086
|
* ```ts
|
|
1017
1087
|
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1018
1088
|
*
|
|
@@ -1036,13 +1106,10 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1036
1106
|
* })
|
|
1037
1107
|
* ```
|
|
1038
1108
|
*
|
|
1039
|
-
*
|
|
1040
|
-
* ```ts
|
|
1041
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1109
|
+
* **Example** (Streaming PubSub notifications)
|
|
1042
1110
|
*
|
|
1043
|
-
*
|
|
1044
|
-
*
|
|
1045
|
-
* }> {}
|
|
1111
|
+
* ```ts
|
|
1112
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
1046
1113
|
*
|
|
1047
1114
|
* const notificationService = Effect.gen(function*() {
|
|
1048
1115
|
* const notificationPubSub = yield* PubSub.bounded<string>(50)
|
|
@@ -1051,24 +1118,21 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1051
1118
|
* const notificationChannel = Channel.fromPubSub(notificationPubSub)
|
|
1052
1119
|
*
|
|
1053
1120
|
* // Transform notifications to add timestamps
|
|
1121
|
+
* const receivedAt = "2024-01-01T00:00:00.000Z"
|
|
1054
1122
|
* const timestampedChannel = Channel.map(notificationChannel, (message) => ({
|
|
1055
1123
|
* message,
|
|
1056
|
-
*
|
|
1057
|
-
* id:
|
|
1124
|
+
* receivedAt,
|
|
1125
|
+
* id: `notification:${message}`
|
|
1058
1126
|
* }))
|
|
1059
1127
|
*
|
|
1060
1128
|
* return timestampedChannel
|
|
1061
1129
|
* })
|
|
1062
1130
|
* ```
|
|
1063
1131
|
*
|
|
1064
|
-
*
|
|
1065
|
-
* ```ts
|
|
1066
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1132
|
+
* **Example** (Processing PubSub events)
|
|
1067
1133
|
*
|
|
1068
|
-
*
|
|
1069
|
-
*
|
|
1070
|
-
* readonly cause: string
|
|
1071
|
-
* }> {}
|
|
1134
|
+
* ```ts
|
|
1135
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
1072
1136
|
*
|
|
1073
1137
|
* interface DomainEvent {
|
|
1074
1138
|
* readonly type: string
|
|
@@ -1088,7 +1152,7 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1088
1152
|
* return {
|
|
1089
1153
|
* ...event,
|
|
1090
1154
|
* processed: true,
|
|
1091
|
-
* processedAt:
|
|
1155
|
+
* processedAt: event.timestamp + 1
|
|
1092
1156
|
* }
|
|
1093
1157
|
* }
|
|
1094
1158
|
* return event
|
|
@@ -1098,8 +1162,8 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1098
1162
|
* })
|
|
1099
1163
|
* ```
|
|
1100
1164
|
*
|
|
1101
|
-
* @since 4.0.0
|
|
1102
1165
|
* @category constructors
|
|
1166
|
+
* @since 4.0.0
|
|
1103
1167
|
*/
|
|
1104
1168
|
export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub), fromSubscription));
|
|
1105
1169
|
/**
|
|
@@ -1112,7 +1176,8 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1112
1176
|
* @param pubsub - The PubSub to read from
|
|
1113
1177
|
* @param chunkSize - The maximum number of elements to collect in each array (default: 4096)
|
|
1114
1178
|
*
|
|
1115
|
-
*
|
|
1179
|
+
* **Example** (Batching PubSub values)
|
|
1180
|
+
*
|
|
1116
1181
|
* ```ts
|
|
1117
1182
|
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1118
1183
|
*
|
|
@@ -1137,20 +1202,17 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1137
1202
|
* })
|
|
1138
1203
|
* ```
|
|
1139
1204
|
*
|
|
1140
|
-
*
|
|
1141
|
-
* ```ts
|
|
1142
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1205
|
+
* **Example** (Processing PubSub orders in batches)
|
|
1143
1206
|
*
|
|
1144
|
-
*
|
|
1145
|
-
*
|
|
1146
|
-
* readonly reason: string
|
|
1147
|
-
* }> {}
|
|
1207
|
+
* ```ts
|
|
1208
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
1148
1209
|
*
|
|
1149
1210
|
* interface Order {
|
|
1150
1211
|
* readonly id: string
|
|
1151
1212
|
* readonly customerId: string
|
|
1152
1213
|
* readonly items: ReadonlyArray<string>
|
|
1153
1214
|
* readonly total: number
|
|
1215
|
+
* readonly submittedAt: number
|
|
1154
1216
|
* }
|
|
1155
1217
|
*
|
|
1156
1218
|
* const orderBatchProcessor = Effect.gen(function*() {
|
|
@@ -1170,7 +1232,7 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1170
1232
|
* batchSize: orderBatch.length,
|
|
1171
1233
|
* totalRevenue,
|
|
1172
1234
|
* uniqueCustomers: customerCount,
|
|
1173
|
-
*
|
|
1235
|
+
* firstSubmittedAt: Math.min(...orderBatch.map((order) => order.submittedAt)),
|
|
1174
1236
|
* orders: orderBatch
|
|
1175
1237
|
* }
|
|
1176
1238
|
* })
|
|
@@ -1179,14 +1241,10 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1179
1241
|
* })
|
|
1180
1242
|
* ```
|
|
1181
1243
|
*
|
|
1182
|
-
*
|
|
1183
|
-
* ```ts
|
|
1184
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1244
|
+
* **Example** (Processing PubSub logs in batches)
|
|
1185
1245
|
*
|
|
1186
|
-
*
|
|
1187
|
-
*
|
|
1188
|
-
* readonly cause: string
|
|
1189
|
-
* }> {}
|
|
1246
|
+
* ```ts
|
|
1247
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
1190
1248
|
*
|
|
1191
1249
|
* interface LogEntry {
|
|
1192
1250
|
* readonly timestamp: number
|
|
@@ -1213,7 +1271,7 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1213
1271
|
* }
|
|
1214
1272
|
*
|
|
1215
1273
|
* return {
|
|
1216
|
-
* batchId:
|
|
1274
|
+
* batchId: `${timeRange.start}-${timeRange.end}`,
|
|
1217
1275
|
* totalEntries: logBatch.length,
|
|
1218
1276
|
* errorCount,
|
|
1219
1277
|
* warnCount,
|
|
@@ -1227,27 +1285,37 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1227
1285
|
* })
|
|
1228
1286
|
* ```
|
|
1229
1287
|
*
|
|
1230
|
-
* @since 4.0.0
|
|
1231
1288
|
* @category constructors
|
|
1289
|
+
* @since 4.0.0
|
|
1232
1290
|
*/
|
|
1233
1291
|
export const fromPubSubArray = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub), fromSubscriptionArray));
|
|
1234
1292
|
/**
|
|
1235
|
-
*
|
|
1293
|
+
* Subscribes to a `PubSub` of `Take` values and exposes them as a channel.
|
|
1294
|
+
*
|
|
1295
|
+
* Output `Take` values are emitted as non-empty arrays. Failed `Take` values
|
|
1296
|
+
* fail the channel. Done `Take` values complete the channel.
|
|
1297
|
+
*
|
|
1236
1298
|
* @category constructors
|
|
1299
|
+
* @since 4.0.0
|
|
1237
1300
|
*/
|
|
1238
1301
|
export const fromPubSubTake = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub), sub => fromEffectTake(PubSub.take(sub))));
|
|
1239
1302
|
/**
|
|
1240
1303
|
* Creates a Channel from a Schedule.
|
|
1241
1304
|
*
|
|
1242
|
-
* @since 4.0.0
|
|
1243
1305
|
* @category constructors
|
|
1306
|
+
* @since 4.0.0
|
|
1244
1307
|
*/
|
|
1245
1308
|
export const fromSchedule = schedule => fromPull(Effect.map(Schedule.toStepWithSleep(schedule), step => step(void 0)));
|
|
1246
1309
|
/**
|
|
1247
|
-
* Creates a
|
|
1310
|
+
* Creates a channel that pulls values from an `AsyncIterable`.
|
|
1311
|
+
*
|
|
1312
|
+
* Each yielded value is emitted as an output element. The iterator's return
|
|
1313
|
+
* value becomes the channel's done value. Thrown or rejected iterator errors
|
|
1314
|
+
* are converted with `onError`. If the channel scope closes early and the
|
|
1315
|
+
* iterator has a `return` method, that method is called.
|
|
1248
1316
|
*
|
|
1249
|
-
* @since 4.0.0
|
|
1250
1317
|
* @category constructors
|
|
1318
|
+
* @since 4.0.0
|
|
1251
1319
|
*/
|
|
1252
1320
|
export const fromAsyncIterable = (iterable, onError) => fromTransform(Effect.fnUntraced(function* (_, scope) {
|
|
1253
1321
|
const iter = iterable[Symbol.asyncIterator]();
|
|
@@ -1260,16 +1328,22 @@ export const fromAsyncIterable = (iterable, onError) => fromTransform(Effect.fnU
|
|
|
1260
1328
|
}), result => result.done ? Cause.done(result.value) : Effect.succeed(result.value));
|
|
1261
1329
|
}));
|
|
1262
1330
|
/**
|
|
1263
|
-
* Creates a
|
|
1331
|
+
* Creates a channel from an `AsyncIterable`, emitting each yielded value as a
|
|
1332
|
+
* single-element non-empty array.
|
|
1333
|
+
*
|
|
1334
|
+
* The iterator's return value becomes the channel's done value. Thrown or
|
|
1335
|
+
* rejected iterator errors are converted with `onError`. If the channel scope
|
|
1336
|
+
* closes early and the iterator has a `return` method, that method is called.
|
|
1264
1337
|
*
|
|
1265
|
-
* @since 4.0.0
|
|
1266
1338
|
* @category constructors
|
|
1339
|
+
* @since 4.0.0
|
|
1267
1340
|
*/
|
|
1268
1341
|
export const fromAsyncIterableArray = (iterable, onError) => map(fromAsyncIterable(iterable, onError), Arr.of);
|
|
1269
1342
|
/**
|
|
1270
1343
|
* Maps the output of this channel using the specified function.
|
|
1271
1344
|
*
|
|
1272
|
-
*
|
|
1345
|
+
* **Example** (Mapping channel output)
|
|
1346
|
+
*
|
|
1273
1347
|
* ```ts
|
|
1274
1348
|
* import { Channel, Data } from "effect"
|
|
1275
1349
|
*
|
|
@@ -1301,8 +1375,8 @@ export const fromAsyncIterableArray = (iterable, onError) => map(fromAsyncIterab
|
|
|
1301
1375
|
* }))
|
|
1302
1376
|
* ```
|
|
1303
1377
|
*
|
|
1304
|
-
* @since 2.0.0
|
|
1305
1378
|
* @category Sequencing
|
|
1379
|
+
* @since 2.0.0
|
|
1306
1380
|
*/
|
|
1307
1381
|
export const map = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull => Effect.sync(() => {
|
|
1308
1382
|
let i = 0;
|
|
@@ -1311,26 +1385,29 @@ export const map = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull =>
|
|
|
1311
1385
|
/**
|
|
1312
1386
|
* Maps the done value of this channel using the specified function.
|
|
1313
1387
|
*
|
|
1314
|
-
* @since 2.0.0
|
|
1315
1388
|
* @category Sequencing
|
|
1389
|
+
* @since 2.0.0
|
|
1316
1390
|
*/
|
|
1317
1391
|
export const mapDone = /*#__PURE__*/dual(2, (self, f) => mapDoneEffect(self, o => Effect.succeed(f(o))));
|
|
1318
1392
|
/**
|
|
1319
1393
|
* Maps the done value of this channel using the specified effectful function.
|
|
1320
1394
|
*
|
|
1321
|
-
* @since 2.0.0
|
|
1322
1395
|
* @category Sequencing
|
|
1396
|
+
* @since 2.0.0
|
|
1323
1397
|
*/
|
|
1324
1398
|
export const mapDoneEffect = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull => Effect.succeed(Pull.catchDone(pull, done => Effect.flatMap(f(done), Cause.done)))));
|
|
1325
1399
|
const concurrencyIsSequential = concurrency => concurrency === undefined || concurrency !== "unbounded" && concurrency <= 1;
|
|
1326
1400
|
/**
|
|
1327
|
-
*
|
|
1328
|
-
*
|
|
1329
|
-
*
|
|
1330
|
-
*
|
|
1331
|
-
*
|
|
1401
|
+
* Maps each output element with an effectful function, preserving the source
|
|
1402
|
+
* channel's done value.
|
|
1403
|
+
*
|
|
1404
|
+
* The mapping function receives the output element and its zero-based index.
|
|
1405
|
+
* By default elements are mapped sequentially. Use `options.concurrency` to
|
|
1406
|
+
* map multiple elements concurrently, and `options.unordered` to allow
|
|
1407
|
+
* concurrently mapped outputs to be emitted as soon as they complete.
|
|
1408
|
+
*
|
|
1409
|
+
* **Example** (Mapping channel output with effects)
|
|
1332
1410
|
*
|
|
1333
|
-
* @example
|
|
1334
1411
|
* ```ts
|
|
1335
1412
|
* import { Channel, Data, Effect } from "effect"
|
|
1336
1413
|
*
|
|
@@ -1367,8 +1444,8 @@ const concurrencyIsSequential = concurrency => concurrency === undefined || conc
|
|
|
1367
1444
|
* )
|
|
1368
1445
|
* ```
|
|
1369
1446
|
*
|
|
1370
|
-
* @since 2.0.0
|
|
1371
1447
|
* @category sequencing
|
|
1448
|
+
* @since 2.0.0
|
|
1372
1449
|
*/
|
|
1373
1450
|
export const mapEffect = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => concurrencyIsSequential(options?.concurrency) ? mapEffectSequential(self, f) : mapEffectConcurrent(self, f, options));
|
|
1374
1451
|
const mapEffectSequential = (self, f) => fromTransform((upstream, scope) => {
|
|
@@ -1427,16 +1504,16 @@ const mapEffectConcurrent = (self, f, options) => fromTransformBracket(Effect.fn
|
|
|
1427
1504
|
* Returns a new channel which is the same as this one but applies the given
|
|
1428
1505
|
* function to the input channel’s input elements.
|
|
1429
1506
|
*
|
|
1430
|
-
* @since 2.0.0
|
|
1431
1507
|
* @category sequencing
|
|
1508
|
+
* @since 2.0.0
|
|
1432
1509
|
*/
|
|
1433
1510
|
export const mapInput = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => toTransform(self)(Effect.flatMap(upstream, el => f(el)), scope)));
|
|
1434
1511
|
/**
|
|
1435
1512
|
* Returns a new channel which is the same as this one but applies the given
|
|
1436
1513
|
* function to the input errors.
|
|
1437
1514
|
*
|
|
1438
|
-
* @since 2.0.0
|
|
1439
1515
|
* @category sequencing
|
|
1516
|
+
* @since 2.0.0
|
|
1440
1517
|
*/
|
|
1441
1518
|
export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => toTransform(self)(Effect.catch(upstream, err => {
|
|
1442
1519
|
if (Cause.isDone(err)) return Effect.fail(err);
|
|
@@ -1450,7 +1527,8 @@ export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
|
|
|
1450
1527
|
* debugging) on each element emitted by a channel without modifying the
|
|
1451
1528
|
* elements themselves.
|
|
1452
1529
|
*
|
|
1453
|
-
*
|
|
1530
|
+
* **Example** (Tapping channel output)
|
|
1531
|
+
*
|
|
1454
1532
|
* ```ts
|
|
1455
1533
|
* import { Channel, Console, Data } from "effect"
|
|
1456
1534
|
*
|
|
@@ -1471,18 +1549,21 @@ export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
|
|
|
1471
1549
|
* // Outputs: 1, 2, 3 (while logging each)
|
|
1472
1550
|
* ```
|
|
1473
1551
|
*
|
|
1474
|
-
* @since 4.0.0
|
|
1475
1552
|
* @category sequencing
|
|
1553
|
+
* @since 4.0.0
|
|
1476
1554
|
*/
|
|
1477
1555
|
export const tap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => mapEffect(self, a => Effect.as(f(a), a), options));
|
|
1478
1556
|
/**
|
|
1479
|
-
*
|
|
1480
|
-
*
|
|
1481
|
-
*
|
|
1482
|
-
*
|
|
1483
|
-
*
|
|
1557
|
+
* Maps each output element to a channel and flattens the child channel
|
|
1558
|
+
* outputs.
|
|
1559
|
+
*
|
|
1560
|
+
* The source channel's done value is preserved. Child channel done values are
|
|
1561
|
+
* used only for child-channel completion. By default child channels are run
|
|
1562
|
+
* sequentially. Use `options.concurrency` and `options.bufferSize` to run child
|
|
1563
|
+
* channels concurrently.
|
|
1564
|
+
*
|
|
1565
|
+
* **Example** (FlatMapping channel output)
|
|
1484
1566
|
*
|
|
1485
|
-
* @example
|
|
1486
1567
|
* ```ts
|
|
1487
1568
|
* import { Channel, Data } from "effect"
|
|
1488
1569
|
*
|
|
@@ -1504,8 +1585,8 @@ export const tap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, optio
|
|
|
1504
1585
|
* // Outputs: "item-1-0", "item-2-0", "item-2-1", "item-3-0", "item-3-1", "item-3-2"
|
|
1505
1586
|
* ```
|
|
1506
1587
|
*
|
|
1507
|
-
* @since 2.0.0
|
|
1508
1588
|
* @category sequencing
|
|
1589
|
+
* @since 2.0.0
|
|
1509
1590
|
*/
|
|
1510
1591
|
export const flatMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => concurrencyIsSequential(options?.concurrency) ? flatMapSequential(self, f) : flatMapConcurrent(self, f, options));
|
|
1511
1592
|
const flatMapSequential = (self, f) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => {
|
|
@@ -1535,7 +1616,8 @@ const flatMapConcurrent = (self, f, options) => self.pipe(map(f), mergeAll(optio
|
|
|
1535
1616
|
* Concatenates this channel with another channel created from the terminal value
|
|
1536
1617
|
* of this channel. The new channel is created using the provided function.
|
|
1537
1618
|
*
|
|
1538
|
-
*
|
|
1619
|
+
* **Example** (Concatenating with completion values)
|
|
1620
|
+
*
|
|
1539
1621
|
* ```ts
|
|
1540
1622
|
* import { Channel, Data } from "effect"
|
|
1541
1623
|
*
|
|
@@ -1552,8 +1634,8 @@ const flatMapConcurrent = (self, f, options) => self.pipe(map(f), mergeAll(optio
|
|
|
1552
1634
|
* // Outputs: 1, 2, 3, then "Completed processing"
|
|
1553
1635
|
* ```
|
|
1554
1636
|
*
|
|
1555
|
-
* @since 2.0.0
|
|
1556
1637
|
* @category sequencing
|
|
1638
|
+
* @since 2.0.0
|
|
1557
1639
|
*/
|
|
1558
1640
|
export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => Effect.sync(() => {
|
|
1559
1641
|
let currentPull;
|
|
@@ -1573,7 +1655,8 @@ export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
|
|
|
1573
1655
|
* Concatenates this channel with another channel, so that the second channel
|
|
1574
1656
|
* starts emitting values after the first channel has completed.
|
|
1575
1657
|
*
|
|
1576
|
-
*
|
|
1658
|
+
* **Example** (Concatenating channels)
|
|
1659
|
+
*
|
|
1577
1660
|
* ```ts
|
|
1578
1661
|
* import { Channel, Data } from "effect"
|
|
1579
1662
|
*
|
|
@@ -1591,8 +1674,8 @@ export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
|
|
|
1591
1674
|
* // Outputs: 1, 2, 3, "a", "b", "c"
|
|
1592
1675
|
* ```
|
|
1593
1676
|
*
|
|
1594
|
-
* @since 2.0.0
|
|
1595
1677
|
* @category sequencing
|
|
1678
|
+
* @since 2.0.0
|
|
1596
1679
|
*/
|
|
1597
1680
|
export const concat = /*#__PURE__*/dual(2, (self, that) => concatWith(self, _ => that));
|
|
1598
1681
|
/**
|
|
@@ -1602,8 +1685,8 @@ export const concat = /*#__PURE__*/dual(2, (self, that) => concatWith(self, _ =>
|
|
|
1602
1685
|
* some internal state to control the combining process, with the initial
|
|
1603
1686
|
* state being specified by `s`.
|
|
1604
1687
|
*
|
|
1605
|
-
* @since 4.0.0
|
|
1606
1688
|
* @category sequencing
|
|
1689
|
+
* @since 4.0.0
|
|
1607
1690
|
*/
|
|
1608
1691
|
export const combine = /*#__PURE__*/dual(4, (self, that, s, f) => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
|
|
1609
1692
|
const leftPull = yield* toTransform(self)(upstream, scope);
|
|
@@ -1618,8 +1701,15 @@ export const combine = /*#__PURE__*/dual(4, (self, that, s, f) => fromTransform(
|
|
|
1618
1701
|
});
|
|
1619
1702
|
})));
|
|
1620
1703
|
/**
|
|
1621
|
-
*
|
|
1704
|
+
* Runs a fallback channel if this channel completes without emitting any
|
|
1705
|
+
* output elements.
|
|
1706
|
+
*
|
|
1707
|
+
* If the source emits at least one element, the source is used unchanged. If
|
|
1708
|
+
* the source completes before emitting an element, the fallback function
|
|
1709
|
+
* receives the source done value and returns the replacement channel.
|
|
1710
|
+
*
|
|
1622
1711
|
* @category sequencing
|
|
1712
|
+
* @since 2.0.0
|
|
1623
1713
|
*/
|
|
1624
1714
|
export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => Effect.sync(() => {
|
|
1625
1715
|
let currentPull;
|
|
@@ -1640,7 +1730,8 @@ export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
|
|
|
1640
1730
|
/**
|
|
1641
1731
|
* Flatten a channel of channels.
|
|
1642
1732
|
*
|
|
1643
|
-
*
|
|
1733
|
+
* **Example** (Flattening nested channels)
|
|
1734
|
+
*
|
|
1644
1735
|
* ```ts
|
|
1645
1736
|
* import { Channel, Data } from "effect"
|
|
1646
1737
|
*
|
|
@@ -1661,14 +1752,15 @@ export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
|
|
|
1661
1752
|
* // Outputs: 1, 2, 3, 4, 5, 6
|
|
1662
1753
|
* ```
|
|
1663
1754
|
*
|
|
1664
|
-
* @since 2.0.0
|
|
1665
1755
|
* @category constructors
|
|
1756
|
+
* @since 2.0.0
|
|
1666
1757
|
*/
|
|
1667
1758
|
export const flatten = channels => flatMap(channels, identity_);
|
|
1668
1759
|
/**
|
|
1669
1760
|
* Flattens a channel that outputs arrays into a channel that outputs individual elements.
|
|
1670
1761
|
*
|
|
1671
|
-
*
|
|
1762
|
+
* **Example** (Flattening arrays of channel output)
|
|
1763
|
+
*
|
|
1672
1764
|
* ```ts
|
|
1673
1765
|
* import { Channel, Data } from "effect"
|
|
1674
1766
|
*
|
|
@@ -1689,8 +1781,8 @@ export const flatten = channels => flatMap(channels, identity_);
|
|
|
1689
1781
|
* // Outputs: 1, 2, 3, 4, 5, 6, 7, 8, 9
|
|
1690
1782
|
* ```
|
|
1691
1783
|
*
|
|
1692
|
-
* @since 4.0.0
|
|
1693
1784
|
* @category utils
|
|
1785
|
+
* @since 4.0.0
|
|
1694
1786
|
*/
|
|
1695
1787
|
export const flattenArray = self => transformPull(self, pull => {
|
|
1696
1788
|
let array;
|
|
@@ -1721,15 +1813,22 @@ export const flattenArray = self => transformPull(self, pull => {
|
|
|
1721
1813
|
return Effect.succeed(pump);
|
|
1722
1814
|
});
|
|
1723
1815
|
/**
|
|
1724
|
-
*
|
|
1816
|
+
* Flattens a channel that emits `Take` values into a channel that emits the
|
|
1817
|
+
* `Take` outputs directly.
|
|
1818
|
+
*
|
|
1819
|
+
* Output `Take` values are emitted as non-empty arrays. Failed `Take` values
|
|
1820
|
+
* fail the returned channel. Done `Take` values complete the returned channel.
|
|
1821
|
+
*
|
|
1725
1822
|
* @category utils
|
|
1823
|
+
* @since 4.0.0
|
|
1726
1824
|
*/
|
|
1727
1825
|
export const flattenTake = self => mapEffectSequential(self, Take.toPull);
|
|
1728
1826
|
/**
|
|
1729
1827
|
* Creates a new channel that consumes all output from the source channel
|
|
1730
1828
|
* but emits nothing, preserving only the completion value.
|
|
1731
1829
|
*
|
|
1732
|
-
*
|
|
1830
|
+
* **Example** (Draining channel output)
|
|
1831
|
+
*
|
|
1733
1832
|
* ```ts
|
|
1734
1833
|
* import { Channel } from "effect"
|
|
1735
1834
|
*
|
|
@@ -1743,8 +1842,8 @@ export const flattenTake = self => mapEffectSequential(self, Take.toPull);
|
|
|
1743
1842
|
* // Useful for consuming side effects without collecting output
|
|
1744
1843
|
* ```
|
|
1745
1844
|
*
|
|
1746
|
-
* @since 2.0.0
|
|
1747
1845
|
* @category constructors
|
|
1846
|
+
* @since 2.0.0
|
|
1748
1847
|
*/
|
|
1749
1848
|
export const drain = self => transformPull(self, pull => Effect.succeed(Effect.forever(pull, {
|
|
1750
1849
|
disableYield: true
|
|
@@ -1752,8 +1851,8 @@ export const drain = self => transformPull(self, pull => Effect.succeed(Effect.f
|
|
|
1752
1851
|
/**
|
|
1753
1852
|
* Repeats this channel according to the provided schedule.
|
|
1754
1853
|
*
|
|
1755
|
-
* @since 4.0.0
|
|
1756
1854
|
* @category utils
|
|
1855
|
+
* @since 4.0.0
|
|
1757
1856
|
*/
|
|
1758
1857
|
export const repeat = /*#__PURE__*/dual(2, (self, schedule) => Schedule.toStepWithMetadata(typeof schedule === "function" ? schedule(identity_) : schedule).pipe(Effect.map(step => {
|
|
1759
1858
|
let meta = Schedule.CurrentMetadata.defaultValue();
|
|
@@ -1766,13 +1865,21 @@ export const repeat = /*#__PURE__*/dual(2, (self, schedule) => Schedule.toStepWi
|
|
|
1766
1865
|
/**
|
|
1767
1866
|
* Repeats this channel forever.
|
|
1768
1867
|
*
|
|
1769
|
-
* @since 4.0.0
|
|
1770
1868
|
* @category utils
|
|
1869
|
+
* @since 4.0.0
|
|
1771
1870
|
*/
|
|
1772
1871
|
export const forever = self => concatWith(self, () => forever(self));
|
|
1773
1872
|
/**
|
|
1774
|
-
*
|
|
1873
|
+
* Runs a schedule step for each output element while preserving the emitted
|
|
1874
|
+
* elements.
|
|
1875
|
+
*
|
|
1876
|
+
* The schedule receives each output element as input. Schedule delays are
|
|
1877
|
+
* applied between emitted elements. If the schedule fails, the returned channel
|
|
1878
|
+
* fails. If the schedule finishes, the returned channel completes with the
|
|
1879
|
+
* schedule output.
|
|
1880
|
+
*
|
|
1775
1881
|
* @category utils
|
|
1882
|
+
* @since 4.0.0
|
|
1776
1883
|
*/
|
|
1777
1884
|
export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(self, (pull, _scope) => Effect.map(Schedule.toStepWithSleep(schedule), step => {
|
|
1778
1885
|
const pullWithStep = Effect.tap(pull, step);
|
|
@@ -1782,7 +1889,8 @@ export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(s
|
|
|
1782
1889
|
* Filters the output elements of a channel using a predicate function.
|
|
1783
1890
|
* Elements that don't match the predicate are discarded.
|
|
1784
1891
|
*
|
|
1785
|
-
*
|
|
1892
|
+
* **Example** (Filtering channel output)
|
|
1893
|
+
*
|
|
1786
1894
|
* ```ts
|
|
1787
1895
|
* import { Channel } from "effect"
|
|
1788
1896
|
*
|
|
@@ -1802,30 +1910,48 @@ export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(s
|
|
|
1802
1910
|
* // Outputs: 1, 2, 3 (all typed as numbers)
|
|
1803
1911
|
* ```
|
|
1804
1912
|
*
|
|
1805
|
-
* @since 2.0.0
|
|
1806
1913
|
* @category Filtering
|
|
1914
|
+
* @since 2.0.0
|
|
1807
1915
|
*/
|
|
1808
1916
|
export const filter = /*#__PURE__*/dual(2, (self, predicate) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => Effect.flatMap(pull, function loop(elem) {
|
|
1809
1917
|
return predicate(elem) ? Effect.succeed(elem) : Effect.flatMap(pull, loop);
|
|
1810
1918
|
}))));
|
|
1811
1919
|
/**
|
|
1812
|
-
*
|
|
1920
|
+
* Filters and maps output elements using a `Filter`.
|
|
1921
|
+
*
|
|
1922
|
+
* Successful filter results are emitted as mapped values. Failed filter
|
|
1923
|
+
* results are discarded. The source channel's errors and done value are
|
|
1924
|
+
* preserved.
|
|
1925
|
+
*
|
|
1813
1926
|
* @category Filtering
|
|
1927
|
+
* @since 4.0.0
|
|
1814
1928
|
*/
|
|
1815
1929
|
export const filterMap = /*#__PURE__*/dual(2, (self, filter) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => Effect.flatMap(pull, function loop(elem) {
|
|
1816
1930
|
const result = filter(elem);
|
|
1817
1931
|
return Result.isFailure(result) ? Effect.flatMap(pull, loop) : Effect.succeed(result.success);
|
|
1818
1932
|
}))));
|
|
1819
1933
|
/**
|
|
1820
|
-
*
|
|
1934
|
+
* Filters output elements with an effectful predicate.
|
|
1935
|
+
*
|
|
1936
|
+
* Elements for which the predicate succeeds with `true` are emitted. Elements
|
|
1937
|
+
* for which the predicate succeeds with `false` are discarded. Predicate
|
|
1938
|
+
* failures fail the returned channel.
|
|
1939
|
+
*
|
|
1821
1940
|
* @category Filtering
|
|
1941
|
+
* @since 4.0.0
|
|
1822
1942
|
*/
|
|
1823
1943
|
export const filterEffect = /*#__PURE__*/dual(2, (self, predicate) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => Effect.flatMap(pull, function loop(elem) {
|
|
1824
1944
|
return Effect.flatMap(predicate(elem), passes => passes ? Effect.succeed(elem) : Effect.flatMap(pull, loop));
|
|
1825
1945
|
}))));
|
|
1826
1946
|
/**
|
|
1827
|
-
*
|
|
1947
|
+
* Filters and maps output elements using an effectful `Filter`.
|
|
1948
|
+
*
|
|
1949
|
+
* Successful filter results are emitted as mapped values. Failed filter
|
|
1950
|
+
* results are discarded. Failures from the effectful filter fail the returned
|
|
1951
|
+
* channel.
|
|
1952
|
+
*
|
|
1828
1953
|
* @category Filtering
|
|
1954
|
+
* @since 4.0.0
|
|
1829
1955
|
*/
|
|
1830
1956
|
export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => Effect.flatMap(pull, function loop(elem) {
|
|
1831
1957
|
return Effect.flatMap(filter(elem), result => Result.isFailure(result) ? Effect.flatMap(pull, loop) : Effect.succeed(result.success));
|
|
@@ -1834,7 +1960,8 @@ export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromTransf
|
|
|
1834
1960
|
* Filters arrays of elements emitted by a channel, applying the filter
|
|
1835
1961
|
* to each element within the arrays and only emitting non-empty filtered arrays.
|
|
1836
1962
|
*
|
|
1837
|
-
*
|
|
1963
|
+
* **Example** (Filtering array output)
|
|
1964
|
+
*
|
|
1838
1965
|
* ```ts
|
|
1839
1966
|
* import { Array, Channel } from "effect"
|
|
1840
1967
|
*
|
|
@@ -1862,8 +1989,8 @@ export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromTransf
|
|
|
1862
1989
|
* // Outputs: [2, 4] (the arrays [1,3,5] and [7,9] are discarded)
|
|
1863
1990
|
* ```
|
|
1864
1991
|
*
|
|
1865
|
-
* @since 4.0.0
|
|
1866
1992
|
* @category Filtering
|
|
1993
|
+
* @since 4.0.0
|
|
1867
1994
|
*/
|
|
1868
1995
|
export const filterArray = /*#__PURE__*/dual(2, (self, predicate) => transformPull(self, pull => Effect.succeed(Effect.flatMap(pull, function loop(arr) {
|
|
1869
1996
|
const passes = [];
|
|
@@ -1875,8 +2002,14 @@ export const filterArray = /*#__PURE__*/dual(2, (self, predicate) => transformPu
|
|
|
1875
2002
|
return Arr.isReadonlyArrayNonEmpty(passes) ? Effect.succeed(passes) : Effect.flatMap(pull, loop);
|
|
1876
2003
|
}))));
|
|
1877
2004
|
/**
|
|
1878
|
-
*
|
|
2005
|
+
* Filters and maps each element inside emitted non-empty arrays using a
|
|
2006
|
+
* `Filter`.
|
|
2007
|
+
*
|
|
2008
|
+
* Successful filter results are kept as mapped values. Failed filter results
|
|
2009
|
+
* are removed from the array. Arrays that become empty are discarded.
|
|
2010
|
+
*
|
|
1879
2011
|
* @category Filtering
|
|
2012
|
+
* @since 4.0.0
|
|
1880
2013
|
*/
|
|
1881
2014
|
export const filterMapArray = /*#__PURE__*/dual(2, (self, filter) => transformPull(self, pull => Effect.succeed(Effect.flatMap(pull, function loop(arr) {
|
|
1882
2015
|
const passes = [];
|
|
@@ -1889,8 +2022,15 @@ export const filterMapArray = /*#__PURE__*/dual(2, (self, filter) => transformPu
|
|
|
1889
2022
|
return Arr.isReadonlyArrayNonEmpty(passes) ? Effect.succeed(passes) : Effect.flatMap(pull, loop);
|
|
1890
2023
|
}))));
|
|
1891
2024
|
/**
|
|
1892
|
-
*
|
|
2025
|
+
* Filters each element inside emitted non-empty arrays with an effectful
|
|
2026
|
+
* predicate.
|
|
2027
|
+
*
|
|
2028
|
+
* The predicate receives the element and its index within the array. Elements
|
|
2029
|
+
* for which the predicate succeeds with `true` are kept. Arrays that become
|
|
2030
|
+
* empty are discarded. Predicate failures fail the returned channel.
|
|
2031
|
+
*
|
|
1893
2032
|
* @category Filtering
|
|
2033
|
+
* @since 4.0.0
|
|
1894
2034
|
*/
|
|
1895
2035
|
export const filterArrayEffect = /*#__PURE__*/dual(2, (self, predicate) => transformPull(self, pull => {
|
|
1896
2036
|
const f = Effect.flatMap(pull, arr => Effect.filter(arr, predicate));
|
|
@@ -1899,8 +2039,15 @@ export const filterArrayEffect = /*#__PURE__*/dual(2, (self, predicate) => trans
|
|
|
1899
2039
|
}));
|
|
1900
2040
|
}));
|
|
1901
2041
|
/**
|
|
1902
|
-
*
|
|
2042
|
+
* Filters and maps each element inside emitted non-empty arrays using an
|
|
2043
|
+
* effectful `Filter`.
|
|
2044
|
+
*
|
|
2045
|
+
* Successful filter results are kept as mapped values. Failed filter results
|
|
2046
|
+
* are removed from the array. Arrays that become empty are discarded. Failures
|
|
2047
|
+
* from the effectful filter fail the returned channel.
|
|
2048
|
+
*
|
|
1903
2049
|
* @category Filtering
|
|
2050
|
+
* @since 4.0.0
|
|
1904
2051
|
*/
|
|
1905
2052
|
export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => transformPull(self, pull => Effect.succeed(Effect.flatMap(pull, function loop(arr) {
|
|
1906
2053
|
return Effect.flatMap(Effect.filterMapEffect(arr, filter), passes => Arr.isReadonlyArrayNonEmpty(passes) ? Effect.succeed(passes) : Effect.flatMap(pull, loop));
|
|
@@ -1908,7 +2055,8 @@ export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => trans
|
|
|
1908
2055
|
/**
|
|
1909
2056
|
* Statefully maps over a channel with an accumulator, where each element can produce multiple output values.
|
|
1910
2057
|
*
|
|
1911
|
-
*
|
|
2058
|
+
* **Example** (Mapping with accumulated state)
|
|
2059
|
+
*
|
|
1912
2060
|
* ```ts
|
|
1913
2061
|
* import { Channel, Effect } from "effect"
|
|
1914
2062
|
*
|
|
@@ -1939,8 +2087,8 @@ export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => trans
|
|
|
1939
2087
|
* )
|
|
1940
2088
|
* ```
|
|
1941
2089
|
*
|
|
1942
|
-
* @since 2.0.0
|
|
1943
2090
|
* @category Sequencing
|
|
2091
|
+
* @since 2.0.0
|
|
1944
2092
|
*/
|
|
1945
2093
|
export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, initial, f, options) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => {
|
|
1946
2094
|
let state = initial();
|
|
@@ -1985,7 +2133,8 @@ export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, ini
|
|
|
1985
2133
|
* Statefully transforms a channel by scanning over its output with an accumulator function.
|
|
1986
2134
|
* Emits the intermediate results of the scan operation.
|
|
1987
2135
|
*
|
|
1988
|
-
*
|
|
2136
|
+
* **Example** (Scanning channel output)
|
|
2137
|
+
*
|
|
1989
2138
|
* ```ts
|
|
1990
2139
|
* import { Channel } from "effect"
|
|
1991
2140
|
*
|
|
@@ -2007,15 +2156,16 @@ export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, ini
|
|
|
2007
2156
|
* // Outputs: "", "hello", "hello world", "hello world from", "hello world from effect"
|
|
2008
2157
|
* ```
|
|
2009
2158
|
*
|
|
2010
|
-
* @since 2.0.0
|
|
2011
2159
|
* @category Sequencing
|
|
2160
|
+
* @since 2.0.0
|
|
2012
2161
|
*/
|
|
2013
2162
|
export const scan = /*#__PURE__*/dual(3, (self, initial, f) => scanEffect(self, initial, (s, a) => Effect.succeed(f(s, a))));
|
|
2014
2163
|
/**
|
|
2015
2164
|
* Statefully transforms a channel by scanning over its output with an effectful accumulator function.
|
|
2016
2165
|
* Emits the intermediate results of the scan operation.
|
|
2017
2166
|
*
|
|
2018
|
-
*
|
|
2167
|
+
* **Example** (Scanning channel output with effects)
|
|
2168
|
+
*
|
|
2019
2169
|
* ```ts
|
|
2020
2170
|
* import { Channel, Data, Effect } from "effect"
|
|
2021
2171
|
*
|
|
@@ -2052,8 +2202,8 @@ export const scan = /*#__PURE__*/dual(3, (self, initial, f) => scanEffect(self,
|
|
|
2052
2202
|
* )
|
|
2053
2203
|
* ```
|
|
2054
2204
|
*
|
|
2055
|
-
* @since 2.0.0
|
|
2056
2205
|
* @category Sequencing
|
|
2206
|
+
* @since 2.0.0
|
|
2057
2207
|
*/
|
|
2058
2208
|
export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => {
|
|
2059
2209
|
let state = initial;
|
|
@@ -2073,7 +2223,8 @@ export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransfo
|
|
|
2073
2223
|
* Catches any cause of failure from the channel and allows recovery by
|
|
2074
2224
|
* creating a new channel based on the caught cause.
|
|
2075
2225
|
*
|
|
2076
|
-
*
|
|
2226
|
+
* **Example** (Recovering from failure causes)
|
|
2227
|
+
*
|
|
2077
2228
|
* ```ts
|
|
2078
2229
|
* import { Cause, Channel, Data } from "effect"
|
|
2079
2230
|
*
|
|
@@ -2101,8 +2252,8 @@ export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransfo
|
|
|
2101
2252
|
* // The channel recovers gracefully from errors
|
|
2102
2253
|
* ```
|
|
2103
2254
|
*
|
|
2104
|
-
* @since 4.0.0
|
|
2105
2255
|
* @category Error handling
|
|
2256
|
+
* @since 4.0.0
|
|
2106
2257
|
*/
|
|
2107
2258
|
export const catchCause = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => {
|
|
2108
2259
|
let forkedScope = Scope.forkUnsafe(scope);
|
|
@@ -2122,23 +2273,35 @@ export const catchCause = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
|
|
|
2122
2273
|
});
|
|
2123
2274
|
}));
|
|
2124
2275
|
/**
|
|
2125
|
-
*
|
|
2276
|
+
* Runs an effect with the full failure `Cause` when the channel fails, then
|
|
2277
|
+
* fails the returned channel with the original cause.
|
|
2278
|
+
*
|
|
2279
|
+
* Use this for observing failures, such as logging or metrics. If the observer
|
|
2280
|
+
* effect fails, that failure can fail the returned channel.
|
|
2281
|
+
*
|
|
2126
2282
|
* @category Error handling
|
|
2283
|
+
* @since 4.0.0
|
|
2127
2284
|
*/
|
|
2128
2285
|
export const tapCause = /*#__PURE__*/dual(2, (self, f) => catchCause(self, cause => fromEffectDrain(Effect.flatMap(f(cause), _ => Effect.failCause(cause)))));
|
|
2129
2286
|
/**
|
|
2130
2287
|
* Catches causes of failure that match a specific filter, allowing
|
|
2131
2288
|
* conditional error recovery based on the type of failure.
|
|
2132
2289
|
*
|
|
2133
|
-
* @since 4.0.0
|
|
2134
2290
|
* @category Error handling
|
|
2291
|
+
* @since 4.0.0
|
|
2135
2292
|
*/
|
|
2136
2293
|
export const catchCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchCause(self, cause => {
|
|
2137
2294
|
return predicate(cause) ? f(cause) : failCause(cause);
|
|
2138
2295
|
}));
|
|
2139
2296
|
/**
|
|
2140
|
-
*
|
|
2297
|
+
* Recovers from channel failures whose full `Cause` is selected by a `Filter`.
|
|
2298
|
+
*
|
|
2299
|
+
* When the filter succeeds, the recovery function receives the selected value
|
|
2300
|
+
* and the original cause. When the filter fails, the returned channel fails
|
|
2301
|
+
* with the residual cause produced by the filter.
|
|
2302
|
+
*
|
|
2141
2303
|
* @category Error handling
|
|
2304
|
+
* @since 4.0.0
|
|
2142
2305
|
*/
|
|
2143
2306
|
export const catchCauseFilter = /*#__PURE__*/dual(3, (self, filter, f) => catchCause(self, cause => {
|
|
2144
2307
|
const result = filter(cause);
|
|
@@ -2147,33 +2310,57 @@ export const catchCauseFilter = /*#__PURE__*/dual(3, (self, filter, f) => catchC
|
|
|
2147
2310
|
const catch_ = /*#__PURE__*/dual(2, (self, f) => catchCauseFilter(self, Cause.findError, e => f(e)));
|
|
2148
2311
|
export {
|
|
2149
2312
|
/**
|
|
2150
|
-
* @since 4.0.0
|
|
2151
2313
|
* @category Error handling
|
|
2314
|
+
* @since 4.0.0
|
|
2152
2315
|
*/
|
|
2153
2316
|
catch_ as catch };
|
|
2154
2317
|
/**
|
|
2155
|
-
*
|
|
2318
|
+
* Runs an effect when the channel fails with a typed error, then preserves the
|
|
2319
|
+
* original channel failure.
|
|
2320
|
+
*
|
|
2321
|
+
* The effect is not run for normal channel completion. If the observer effect
|
|
2322
|
+
* fails, that failure can fail the returned channel.
|
|
2323
|
+
*
|
|
2156
2324
|
* @category Error handling
|
|
2325
|
+
* @since 4.0.0
|
|
2157
2326
|
*/
|
|
2158
2327
|
export const tapError = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull => Effect.succeed(Effect.tapError(pull, err => Cause.isDone(err) ? Effect.void : Effect.asVoid(f(err))))));
|
|
2159
2328
|
/**
|
|
2160
|
-
*
|
|
2329
|
+
* Recovers from typed channel errors that match a predicate or refinement.
|
|
2330
|
+
*
|
|
2331
|
+
* Matching errors are handled by the recovery function. Non-matching errors
|
|
2332
|
+
* are handled by `orElse` when provided. Without `orElse`, non-matching errors
|
|
2333
|
+
* are re-failed.
|
|
2334
|
+
*
|
|
2161
2335
|
* @category Error handling
|
|
2336
|
+
* @since 4.0.0
|
|
2162
2337
|
*/
|
|
2163
2338
|
export const catchIf = /*#__PURE__*/dual(args => isChannel(args[0]), (self, predicate, f, orElse) => catch_(self, err => {
|
|
2164
2339
|
return predicate(err) ? f(err) : orElse ? orElse(err) : fail(err);
|
|
2165
2340
|
}));
|
|
2166
2341
|
/**
|
|
2167
|
-
*
|
|
2342
|
+
* Recovers from typed channel errors selected by a `Filter`.
|
|
2343
|
+
*
|
|
2344
|
+
* Successful filter results are handled by the recovery function. Failed
|
|
2345
|
+
* filter results are handled by `orElse` when provided. Without `orElse`,
|
|
2346
|
+
* failed filter results are re-failed.
|
|
2347
|
+
*
|
|
2168
2348
|
* @category Error handling
|
|
2349
|
+
* @since 4.0.0
|
|
2169
2350
|
*/
|
|
2170
2351
|
export const catchFilter = /*#__PURE__*/dual(args => isChannel(args[0]), (self, filter, f, orElse) => catch_(self, err => {
|
|
2171
2352
|
const result = filter(err);
|
|
2172
2353
|
return Result.isFailure(result) ? orElse ? orElse(result.failure) : fail(result.failure) : f(result.success);
|
|
2173
2354
|
}));
|
|
2174
2355
|
/**
|
|
2175
|
-
*
|
|
2356
|
+
* Recovers from tagged channel errors whose `_tag` matches one or more tags.
|
|
2357
|
+
*
|
|
2358
|
+
* Matching tagged errors are handled by the recovery function. Non-matching
|
|
2359
|
+
* errors are handled by `orElse` when provided. Without `orElse`,
|
|
2360
|
+
* non-matching errors are re-failed.
|
|
2361
|
+
*
|
|
2176
2362
|
* @category Error handling
|
|
2363
|
+
* @since 4.0.0
|
|
2177
2364
|
*/
|
|
2178
2365
|
export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k, f, orElse) => {
|
|
2179
2366
|
const pred = Array.isArray(k) ? e => hasProperty(e, "_tag") && k.includes(e._tag) : isTagged(k);
|
|
@@ -2182,7 +2369,8 @@ export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k,
|
|
|
2182
2369
|
/**
|
|
2183
2370
|
* Catches a specific reason within a tagged error.
|
|
2184
2371
|
*
|
|
2185
|
-
*
|
|
2372
|
+
* **Example** (Recovering from nested reasons)
|
|
2373
|
+
*
|
|
2186
2374
|
* ```ts
|
|
2187
2375
|
* import { Channel, Data } from "effect"
|
|
2188
2376
|
*
|
|
@@ -2209,8 +2397,8 @@ export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k,
|
|
|
2209
2397
|
* )
|
|
2210
2398
|
* ```
|
|
2211
2399
|
*
|
|
2212
|
-
* @since 4.0.0
|
|
2213
2400
|
* @category Error handling
|
|
2401
|
+
* @since 4.0.0
|
|
2214
2402
|
*/
|
|
2215
2403
|
export const catchReason = /*#__PURE__*/dual(args => isChannel(args[0]), (self, errorTag, reasonTag, f, orElse) => catch_(self, error => {
|
|
2216
2404
|
if (isTagged(error, errorTag) && hasProperty(error, "reason")) {
|
|
@@ -2225,8 +2413,8 @@ export const catchReason = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
2225
2413
|
/**
|
|
2226
2414
|
* Catches multiple reasons within a tagged error using an object of handlers.
|
|
2227
2415
|
*
|
|
2228
|
-
* @since 4.0.0
|
|
2229
2416
|
* @category Error handling
|
|
2417
|
+
* @since 4.0.0
|
|
2230
2418
|
*/
|
|
2231
2419
|
export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self, errorTag, cases, orElse) => {
|
|
2232
2420
|
let keys;
|
|
@@ -2245,7 +2433,8 @@ export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
2245
2433
|
/**
|
|
2246
2434
|
* Promotes nested reason errors into the channel error, replacing the parent error.
|
|
2247
2435
|
*
|
|
2248
|
-
*
|
|
2436
|
+
* **Example** (Promoting nested reasons)
|
|
2437
|
+
*
|
|
2249
2438
|
* ```ts
|
|
2250
2439
|
* import { Channel, Data } from "effect"
|
|
2251
2440
|
*
|
|
@@ -2268,8 +2457,8 @@ export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
2268
2457
|
* const unwrapped = channel.pipe(Channel.unwrapReason("AiError"))
|
|
2269
2458
|
* ```
|
|
2270
2459
|
*
|
|
2271
|
-
* @since 4.0.0
|
|
2272
2460
|
* @category Error handling
|
|
2461
|
+
* @since 4.0.0
|
|
2273
2462
|
*/
|
|
2274
2463
|
export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchFilter(self, error => isTagged(error, errorTag) && hasProperty(error, "reason") ? Result.succeed(error.reason) : Result.fail(error), fail));
|
|
2275
2464
|
/**
|
|
@@ -2277,15 +2466,16 @@ export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchFilter
|
|
|
2277
2466
|
* value of the returned channel is created by applying the specified function
|
|
2278
2467
|
* to the failure value of this channel.
|
|
2279
2468
|
*
|
|
2280
|
-
* @since 2.0.0
|
|
2281
2469
|
* @category Error handling
|
|
2470
|
+
* @since 2.0.0
|
|
2282
2471
|
*/
|
|
2283
2472
|
export const mapError = /*#__PURE__*/dual(2, (self, f) => catch_(self, err => fail(f(err))));
|
|
2284
2473
|
/**
|
|
2285
2474
|
* Converts all errors in the channel to defects (unrecoverable failures).
|
|
2286
2475
|
* This is useful when you want to treat errors as programming errors.
|
|
2287
2476
|
*
|
|
2288
|
-
*
|
|
2477
|
+
* **Example** (Converting failures to defects)
|
|
2478
|
+
*
|
|
2289
2479
|
* ```ts
|
|
2290
2480
|
* import { Channel, Data } from "effect"
|
|
2291
2481
|
*
|
|
@@ -2302,8 +2492,8 @@ export const mapError = /*#__PURE__*/dual(2, (self, f) => catch_(self, err => fa
|
|
|
2302
2492
|
* // Any failure will now become a defect (uncaught exception)
|
|
2303
2493
|
* ```
|
|
2304
2494
|
*
|
|
2305
|
-
* @since 4.0.0
|
|
2306
2495
|
* @category Error handling
|
|
2496
|
+
* @since 4.0.0
|
|
2307
2497
|
*/
|
|
2308
2498
|
export const orDie = self => catch_(self, die);
|
|
2309
2499
|
/**
|
|
@@ -2311,8 +2501,8 @@ export const orDie = self => catch_(self, die);
|
|
|
2311
2501
|
*
|
|
2312
2502
|
* Use the `log` option to emit the full {@link Cause} when the channel fails.
|
|
2313
2503
|
*
|
|
2314
|
-
* @since 4.0.0
|
|
2315
2504
|
* @category Error handling
|
|
2505
|
+
* @since 4.0.0
|
|
2316
2506
|
*/
|
|
2317
2507
|
export const ignore = /*#__PURE__*/dual(args => isChannel(args[0]), (self, options) => {
|
|
2318
2508
|
if (!options?.log) {
|
|
@@ -2327,8 +2517,8 @@ const ignoreCause_ = self => catchCause(self, () => empty);
|
|
|
2327
2517
|
*
|
|
2328
2518
|
* Use the `log` option to emit the full {@link Cause} when the channel fails.
|
|
2329
2519
|
*
|
|
2330
|
-
* @since 4.0.0
|
|
2331
2520
|
* @category Error handling
|
|
2521
|
+
* @since 4.0.0
|
|
2332
2522
|
*/
|
|
2333
2523
|
export const ignoreCause = /*#__PURE__*/dual(args => isChannel(args[0]), (self, options) => {
|
|
2334
2524
|
if (!options?.log) return ignoreCause_(self);
|
|
@@ -2339,8 +2529,8 @@ export const ignoreCause = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
2339
2529
|
* Returns a new channel that retries this channel according to the specified
|
|
2340
2530
|
* schedule whenever it fails.
|
|
2341
2531
|
*
|
|
2342
|
-
* @since 4.0.0
|
|
2343
2532
|
* @category utils
|
|
2533
|
+
* @since 4.0.0
|
|
2344
2534
|
*/
|
|
2345
2535
|
export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
|
|
2346
2536
|
let step = undefined;
|
|
@@ -2361,13 +2551,15 @@ export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
|
|
|
2361
2551
|
return loop;
|
|
2362
2552
|
}));
|
|
2363
2553
|
/**
|
|
2364
|
-
*
|
|
2365
|
-
*
|
|
2366
|
-
*
|
|
2367
|
-
*
|
|
2368
|
-
* the
|
|
2554
|
+
* Maps each output element to a channel and emits values from the most recent
|
|
2555
|
+
* active child channels.
|
|
2556
|
+
*
|
|
2557
|
+
* With the default concurrency of `1`, starting a new child channel interrupts
|
|
2558
|
+
* the previous child channel. Use `options.concurrency` to allow more active
|
|
2559
|
+
* child channels. The source channel's done value is preserved.
|
|
2560
|
+
*
|
|
2561
|
+
* **Example** (Switching mapped channels)
|
|
2369
2562
|
*
|
|
2370
|
-
* @example
|
|
2371
2563
|
* ```ts
|
|
2372
2564
|
* import { Channel, Data } from "effect"
|
|
2373
2565
|
*
|
|
@@ -2387,8 +2579,8 @@ export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
|
|
|
2387
2579
|
* // Outputs: "value-1", "value-2", "value-3"
|
|
2388
2580
|
* ```
|
|
2389
2581
|
*
|
|
2390
|
-
* @since 2.0.0
|
|
2391
2582
|
* @category sequencing
|
|
2583
|
+
* @since 2.0.0
|
|
2392
2584
|
*/
|
|
2393
2585
|
export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => self.pipe(map(f), mergeAll({
|
|
2394
2586
|
...options,
|
|
@@ -2398,7 +2590,8 @@ export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f,
|
|
|
2398
2590
|
/**
|
|
2399
2591
|
* Merges multiple channels with specified concurrency and buffering options.
|
|
2400
2592
|
*
|
|
2401
|
-
*
|
|
2593
|
+
* **Example** (Merging nested channels)
|
|
2594
|
+
*
|
|
2402
2595
|
* ```ts
|
|
2403
2596
|
* import { Channel, Data } from "effect"
|
|
2404
2597
|
*
|
|
@@ -2422,8 +2615,8 @@ export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f,
|
|
|
2422
2615
|
* // Outputs: 1, 2, 3, 4, 5, 6 (order may vary due to concurrency)
|
|
2423
2616
|
* ```
|
|
2424
2617
|
*
|
|
2425
|
-
* @since 2.0.0
|
|
2426
2618
|
* @category utils
|
|
2619
|
+
* @since 2.0.0
|
|
2427
2620
|
*/
|
|
2428
2621
|
export const mergeAll = /*#__PURE__*/dual(2, (channels, {
|
|
2429
2622
|
bufferSize = 16,
|
|
@@ -2471,7 +2664,8 @@ export const mergeAll = /*#__PURE__*/dual(2, (channels, {
|
|
|
2471
2664
|
* Returns a new channel, which is the merge of this channel and the specified
|
|
2472
2665
|
* channel.
|
|
2473
2666
|
*
|
|
2474
|
-
*
|
|
2667
|
+
* **Example** (Merging channels)
|
|
2668
|
+
*
|
|
2475
2669
|
* ```ts
|
|
2476
2670
|
* import { Channel, Data } from "effect"
|
|
2477
2671
|
*
|
|
@@ -2492,8 +2686,8 @@ export const mergeAll = /*#__PURE__*/dual(2, (channels, {
|
|
|
2492
2686
|
* // Order may vary: 1, "a", 2, "b", 3, "c"
|
|
2493
2687
|
* ```
|
|
2494
2688
|
*
|
|
2495
|
-
* @since 2.0.0
|
|
2496
2689
|
* @category utils
|
|
2690
|
+
* @since 2.0.0
|
|
2497
2691
|
*/
|
|
2498
2692
|
export const merge = /*#__PURE__*/dual(args => isChannel(args[0]) && isChannel(args[1]), (left, right, options) => fromTransformBracket(Effect.fnUntraced(function* (upstream, _scope, forkedScope) {
|
|
2499
2693
|
const strategy = options?.haltStrategy ?? "both";
|
|
@@ -2527,8 +2721,14 @@ export const merge = /*#__PURE__*/dual(args => isChannel(args[0]) && isChannel(a
|
|
|
2527
2721
|
return Queue.take(queue);
|
|
2528
2722
|
})));
|
|
2529
2723
|
/**
|
|
2530
|
-
*
|
|
2724
|
+
* Runs an effect concurrently with a channel while emitting only the channel's
|
|
2725
|
+
* output elements.
|
|
2726
|
+
*
|
|
2727
|
+
* The effect's successful value is ignored. If the effect fails while the
|
|
2728
|
+
* channel is running, the returned channel fails with that error.
|
|
2729
|
+
*
|
|
2531
2730
|
* @category utils
|
|
2731
|
+
* @since 4.0.0
|
|
2532
2732
|
*/
|
|
2533
2733
|
export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fromEffectDrain(effect), {
|
|
2534
2734
|
haltStrategy: "left"
|
|
@@ -2543,7 +2743,7 @@ export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fr
|
|
|
2543
2743
|
* if the stream ends without a terminator the final partial line is still
|
|
2544
2744
|
* emitted.
|
|
2545
2745
|
*
|
|
2546
|
-
* **Example**
|
|
2746
|
+
* **Example** (Splitting string chunks into lines)
|
|
2547
2747
|
*
|
|
2548
2748
|
* ```ts
|
|
2549
2749
|
* import { Effect, Stream } from "effect"
|
|
@@ -2557,8 +2757,8 @@ export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fr
|
|
|
2557
2757
|
* }))
|
|
2558
2758
|
* ```
|
|
2559
2759
|
*
|
|
2560
|
-
* @since 2.0.0
|
|
2561
2760
|
* @category String manipulation
|
|
2761
|
+
* @since 2.0.0
|
|
2562
2762
|
*/
|
|
2563
2763
|
export const splitLines = () => fromTransform((upstream, _scope) => Effect.sync(() => {
|
|
2564
2764
|
// Accumulates text that has not yet been terminated by a line break.
|
|
@@ -2646,16 +2846,25 @@ export const splitLines = () => fromTransform((upstream, _scope) => Effect.sync(
|
|
|
2646
2846
|
return pullOrFlush;
|
|
2647
2847
|
}));
|
|
2648
2848
|
/**
|
|
2649
|
-
*
|
|
2849
|
+
* Decodes incoming `Uint8Array` chunks into strings using `TextDecoder`.
|
|
2850
|
+
*
|
|
2851
|
+
* Each `Uint8Array` inside an emitted array is decoded independently. The
|
|
2852
|
+
* optional `encoding` and `options` are passed to `TextDecoder`.
|
|
2853
|
+
*
|
|
2650
2854
|
* @category String manipulation
|
|
2855
|
+
* @since 4.0.0
|
|
2651
2856
|
*/
|
|
2652
2857
|
export const decodeText = (encoding, options) => fromTransform((upstream, _scope) => Effect.sync(() => {
|
|
2653
2858
|
const decoder = new TextDecoder(encoding, options);
|
|
2654
2859
|
return Effect.map(upstream, Arr.map(line => decoder.decode(line)));
|
|
2655
2860
|
}));
|
|
2656
2861
|
/**
|
|
2657
|
-
*
|
|
2862
|
+
* Encodes incoming string chunks into `Uint8Array` values using `TextEncoder`.
|
|
2863
|
+
*
|
|
2864
|
+
* Each string inside an emitted array is encoded independently.
|
|
2865
|
+
*
|
|
2658
2866
|
* @category String manipulation
|
|
2867
|
+
* @since 4.0.0
|
|
2659
2868
|
*/
|
|
2660
2869
|
export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(() => {
|
|
2661
2870
|
const encoder = new TextEncoder();
|
|
@@ -2667,7 +2876,8 @@ export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(
|
|
|
2667
2876
|
* and the output type of the specified channel, terminating with the value of
|
|
2668
2877
|
* the specified channel.
|
|
2669
2878
|
*
|
|
2670
|
-
*
|
|
2879
|
+
* **Example** (Piping one channel into another)
|
|
2880
|
+
*
|
|
2671
2881
|
* ```ts
|
|
2672
2882
|
* import { Channel, Data } from "effect"
|
|
2673
2883
|
*
|
|
@@ -2685,8 +2895,8 @@ export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(
|
|
|
2685
2895
|
* // Outputs: 2, 4, 6
|
|
2686
2896
|
* ```
|
|
2687
2897
|
*
|
|
2688
|
-
* @since 2.0.0
|
|
2689
2898
|
* @category utils
|
|
2899
|
+
* @since 2.0.0
|
|
2690
2900
|
*/
|
|
2691
2901
|
export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstream, scope) => Effect.flatMap(toTransform(self)(upstream, scope), upstream => toTransform(that)(upstream, scope))));
|
|
2692
2902
|
/**
|
|
@@ -2694,7 +2904,8 @@ export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstre
|
|
|
2694
2904
|
* specified channel and preserves this channel's failures without providing
|
|
2695
2905
|
* them to the other channel for observation.
|
|
2696
2906
|
*
|
|
2697
|
-
*
|
|
2907
|
+
* **Example** (Piping while preserving failures)
|
|
2908
|
+
*
|
|
2698
2909
|
* ```ts
|
|
2699
2910
|
* import { Channel, Data } from "effect"
|
|
2700
2911
|
*
|
|
@@ -2712,8 +2923,8 @@ export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstre
|
|
|
2712
2923
|
* // Source errors are preserved and not sent to transform channel
|
|
2713
2924
|
* ```
|
|
2714
2925
|
*
|
|
2715
|
-
* @since 2.0.0
|
|
2716
2926
|
* @category utils
|
|
2927
|
+
* @since 2.0.0
|
|
2717
2928
|
*/
|
|
2718
2929
|
export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstream, scope) => Effect.flatMap(toTransform(self)(upstream, scope), upstream => {
|
|
2719
2930
|
const upstreamPull = Effect.catchCause(upstream, cause => Pull.isDoneCause(cause) ? Effect.failCause(cause) : Effect.die(Cause.Done(cause)));
|
|
@@ -2723,7 +2934,8 @@ export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((
|
|
|
2723
2934
|
* Constructs a `Channel` from a scoped effect that will result in a
|
|
2724
2935
|
* `Channel` if successful.
|
|
2725
2936
|
*
|
|
2726
|
-
*
|
|
2937
|
+
* **Example** (Unwrapping channel effects)
|
|
2938
|
+
*
|
|
2727
2939
|
* ```ts
|
|
2728
2940
|
* import { Channel, Data, Effect } from "effect"
|
|
2729
2941
|
*
|
|
@@ -2742,8 +2954,8 @@ export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((
|
|
|
2742
2954
|
* // The resulting channel outputs: 1, 2, 3
|
|
2743
2955
|
* ```
|
|
2744
2956
|
*
|
|
2745
|
-
* @since 2.0.0
|
|
2746
2957
|
* @category constructors
|
|
2958
|
+
* @since 2.0.0
|
|
2747
2959
|
*/
|
|
2748
2960
|
export const unwrap = channel => fromTransform((upstream, scope) => {
|
|
2749
2961
|
let pull;
|
|
@@ -2753,41 +2965,52 @@ export const unwrap = channel => fromTransform((upstream, scope) => {
|
|
|
2753
2965
|
}));
|
|
2754
2966
|
});
|
|
2755
2967
|
/**
|
|
2756
|
-
*
|
|
2968
|
+
* Runs a channel with a scope provided for the duration of the channel
|
|
2969
|
+
* execution, removing the channel's `Scope` requirement.
|
|
2970
|
+
*
|
|
2757
2971
|
* @category utils
|
|
2972
|
+
* @since 2.0.0
|
|
2758
2973
|
*/
|
|
2759
2974
|
export const scoped = self => fromTransformBracket((upstream, scope, forkedScope) => Scope.provide(toTransform(self)(upstream, scope), forkedScope));
|
|
2760
2975
|
/**
|
|
2761
|
-
*
|
|
2976
|
+
* Runs an input handler against the upstream pull while the wrapped channel
|
|
2977
|
+
* runs without receiving upstream input directly.
|
|
2762
2978
|
*
|
|
2763
|
-
*
|
|
2764
|
-
*
|
|
2765
|
-
* import { Channel, Data, Effect } from "effect"
|
|
2979
|
+
* The input handler is forked in the channel scope. The wrapped channel is run
|
|
2980
|
+
* with an already-completed input.
|
|
2766
2981
|
*
|
|
2767
|
-
*
|
|
2768
|
-
*
|
|
2769
|
-
*
|
|
2982
|
+
* **Example** (Embedding custom input handling)
|
|
2983
|
+
*
|
|
2984
|
+
* ```ts
|
|
2985
|
+
* import { Channel, Effect } from "effect"
|
|
2770
2986
|
*
|
|
2771
2987
|
* // Create a base channel
|
|
2772
2988
|
* const baseChannel = Channel.fromIterable([1, 2, 3])
|
|
2773
2989
|
*
|
|
2774
|
-
* //
|
|
2990
|
+
* // Drain the embedded input while the base channel runs
|
|
2775
2991
|
* const embeddedChannel = Channel.embedInput(
|
|
2776
2992
|
* baseChannel,
|
|
2777
|
-
* (
|
|
2993
|
+
* (upstream) =>
|
|
2994
|
+
* upstream.pipe(
|
|
2995
|
+
* Effect.tap((message) =>
|
|
2996
|
+
* Effect.sync(() => console.log(message))
|
|
2997
|
+
* ),
|
|
2998
|
+
* Effect.forever,
|
|
2999
|
+
* Effect.ignore
|
|
3000
|
+
* )
|
|
2778
3001
|
* )
|
|
2779
3002
|
* ```
|
|
2780
3003
|
*
|
|
2781
|
-
* @since 2.0.0
|
|
2782
3004
|
* @category utils
|
|
3005
|
+
* @since 2.0.0
|
|
2783
3006
|
*/
|
|
2784
3007
|
export const embedInput = /*#__PURE__*/dual(2, (self, input) => fromTransformBracket((upstream, scope, forkedScope) => Effect.andThen(Effect.forkIn(input(upstream), forkedScope), toTransform(self)(Cause.done(), scope))));
|
|
2785
3008
|
/**
|
|
2786
3009
|
* Allows a faster producer to progress independently of a slower consumer by
|
|
2787
3010
|
* buffering up to `capacity` elements in a queue.
|
|
2788
3011
|
*
|
|
2789
|
-
* @since 2.0.0
|
|
2790
3012
|
* @category Buffering
|
|
3013
|
+
* @since 2.0.0
|
|
2791
3014
|
*/
|
|
2792
3015
|
export const buffer = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
|
|
2793
3016
|
const pull = yield* toTransform(self)(upstream, scope);
|
|
@@ -2805,8 +3028,8 @@ export const buffer = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effe
|
|
|
2805
3028
|
* Allows a faster producer to progress independently of a slower consumer by
|
|
2806
3029
|
* buffering up to `capacity` elements in a queue.
|
|
2807
3030
|
*
|
|
2808
|
-
* @since 2.0.0
|
|
2809
3031
|
* @category Buffering
|
|
3032
|
+
* @since 2.0.0
|
|
2810
3033
|
*/
|
|
2811
3034
|
export const bufferArray = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
|
|
2812
3035
|
const pull = yield* toTransform(self)(upstream, scope);
|
|
@@ -2829,15 +3052,22 @@ export const bufferArray = /*#__PURE__*/dual(2, (self, options) => fromTransform
|
|
|
2829
3052
|
* returned channel will yield the success value of the underlying channel as
|
|
2830
3053
|
* its terminal value.
|
|
2831
3054
|
*
|
|
2832
|
-
* @since 2.0.0
|
|
2833
3055
|
* @category utils
|
|
3056
|
+
* @since 2.0.0
|
|
2834
3057
|
*/
|
|
2835
3058
|
export const interruptWhen = /*#__PURE__*/dual(2, (self, effect) => merge(self, fromPull(Effect.succeed(Effect.flatMap(effect, Cause.done))), {
|
|
2836
3059
|
haltStrategy: "either"
|
|
2837
3060
|
}));
|
|
2838
3061
|
/**
|
|
2839
|
-
*
|
|
3062
|
+
* Halts a channel when the specified effect completes or fails.
|
|
3063
|
+
*
|
|
3064
|
+
* If the effect completes before the channel is done, its success value becomes
|
|
3065
|
+
* the returned channel's done value. If the effect fails, the returned channel
|
|
3066
|
+
* fails with that error. If the channel completes first, the channel's done
|
|
3067
|
+
* value is preserved.
|
|
3068
|
+
*
|
|
2840
3069
|
* @category utils
|
|
3070
|
+
* @since 4.0.0
|
|
2841
3071
|
*/
|
|
2842
3072
|
export const haltWhen = /*#__PURE__*/dual(2, (self, effect) => fromTransformBracket(Effect.fnUntraced(function* (upstream, scope, forkedScope) {
|
|
2843
3073
|
const pull = yield* toTransform(self)(upstream, scope);
|
|
@@ -2849,8 +3079,13 @@ export const haltWhen = /*#__PURE__*/dual(2, (self, effect) => fromTransformBrac
|
|
|
2849
3079
|
return Effect.suspend(() => haltCause ? Effect.failCause(haltCause) : pull);
|
|
2850
3080
|
})));
|
|
2851
3081
|
/**
|
|
2852
|
-
*
|
|
3082
|
+
* Attaches a finalizer that runs only when the channel exits with failure.
|
|
3083
|
+
*
|
|
3084
|
+
* The finalizer receives the failure `Cause`. The original channel failure is
|
|
3085
|
+
* preserved. The finalizer itself must not fail.
|
|
3086
|
+
*
|
|
2853
3087
|
* @category utils
|
|
3088
|
+
* @since 4.0.0
|
|
2854
3089
|
*/
|
|
2855
3090
|
export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, exit => Exit.isFailure(exit) ? finalizer(exit.cause) : Effect.void));
|
|
2856
3091
|
/**
|
|
@@ -2858,7 +3093,8 @@ export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, ex
|
|
|
2858
3093
|
* guaranteed to be executed so long as the channel begins execution (and
|
|
2859
3094
|
* regardless of whether or not it completes).
|
|
2860
3095
|
*
|
|
2861
|
-
*
|
|
3096
|
+
* **Example** (Running exit finalizers)
|
|
3097
|
+
*
|
|
2862
3098
|
* ```ts
|
|
2863
3099
|
* import { Channel, Console, Data, Exit } from "effect"
|
|
2864
3100
|
*
|
|
@@ -2879,18 +3115,29 @@ export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, ex
|
|
|
2879
3115
|
* })
|
|
2880
3116
|
* ```
|
|
2881
3117
|
*
|
|
2882
|
-
* @since 4.0.0
|
|
2883
3118
|
* @category utils
|
|
3119
|
+
* @since 4.0.0
|
|
2884
3120
|
*/
|
|
2885
3121
|
export const onExit = /*#__PURE__*/dual(2, (self, finalizer) => fromTransformBracket((upstream, scope, forkedScope) => Scope.addFinalizerExit(forkedScope, finalizer).pipe(Effect.andThen(toTransform(self)(upstream, scope)))));
|
|
2886
3122
|
/**
|
|
2887
|
-
*
|
|
3123
|
+
* Runs an effect before the channel starts.
|
|
3124
|
+
*
|
|
3125
|
+
* The effect's successful value is ignored. If the effect fails, the returned
|
|
3126
|
+
* channel fails before running the source channel.
|
|
3127
|
+
*
|
|
2888
3128
|
* @category utils
|
|
3129
|
+
* @since 4.0.0
|
|
2889
3130
|
*/
|
|
2890
3131
|
export const onStart = /*#__PURE__*/dual(2, (self, onStart) => unwrap(Effect.as(onStart, self)));
|
|
2891
3132
|
/**
|
|
2892
|
-
*
|
|
3133
|
+
* Runs an effect the first time the channel emits an output element.
|
|
3134
|
+
*
|
|
3135
|
+
* The effect receives the first emitted element. The first element is still
|
|
3136
|
+
* emitted unchanged. The effect is not run if the channel completes without
|
|
3137
|
+
* emitting an element.
|
|
3138
|
+
*
|
|
2893
3139
|
* @category utils
|
|
3140
|
+
* @since 4.0.0
|
|
2894
3141
|
*/
|
|
2895
3142
|
export const onFirst = /*#__PURE__*/dual(2, (self, onFirst) => transformPull(self, pull => Effect.sync(() => {
|
|
2896
3143
|
let isFirst = true;
|
|
@@ -2901,8 +3148,14 @@ export const onFirst = /*#__PURE__*/dual(2, (self, onFirst) => transformPull(sel
|
|
|
2901
3148
|
return Effect.suspend(() => isFirst ? pullFirst : pull);
|
|
2902
3149
|
})));
|
|
2903
3150
|
/**
|
|
2904
|
-
*
|
|
3151
|
+
* Runs an effect when the channel completes successfully.
|
|
3152
|
+
*
|
|
3153
|
+
* The effect runs before the original done value is propagated. The effect is
|
|
3154
|
+
* not run when the channel fails. If the effect fails, the returned channel
|
|
3155
|
+
* fails with that error.
|
|
3156
|
+
*
|
|
2905
3157
|
* @category utils
|
|
3158
|
+
* @since 4.0.0
|
|
2906
3159
|
*/
|
|
2907
3160
|
export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, pull => Effect.succeed(Pull.catchDone(pull, leftover => Effect.flatMap(onEnd, () => Cause.done(leftover))))));
|
|
2908
3161
|
/**
|
|
@@ -2910,7 +3163,8 @@ export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, p
|
|
|
2910
3163
|
* guaranteed to be executed so long as the channel begins execution (and
|
|
2911
3164
|
* regardless of whether or not it completes).
|
|
2912
3165
|
*
|
|
2913
|
-
*
|
|
3166
|
+
* **Example** (Ensuring cleanup runs)
|
|
3167
|
+
*
|
|
2914
3168
|
* ```ts
|
|
2915
3169
|
* import { Channel, Console, Data } from "effect"
|
|
2916
3170
|
*
|
|
@@ -2928,8 +3182,8 @@ export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, p
|
|
|
2928
3182
|
* )
|
|
2929
3183
|
* ```
|
|
2930
3184
|
*
|
|
2931
|
-
* @since 2.0.0
|
|
2932
3185
|
* @category utils
|
|
3186
|
+
* @since 2.0.0
|
|
2933
3187
|
*/
|
|
2934
3188
|
export const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, _ => finalizer));
|
|
2935
3189
|
const runWith = (self, f, onHalt) => Effect.suspend(() => {
|
|
@@ -2940,50 +3194,81 @@ const runWith = (self, f, onHalt) => Effect.suspend(() => {
|
|
|
2940
3194
|
/**
|
|
2941
3195
|
* Create a channel from the specified services.
|
|
2942
3196
|
*
|
|
2943
|
-
* @since 2.0.0
|
|
2944
3197
|
* @category Services
|
|
3198
|
+
* @since 2.0.0
|
|
2945
3199
|
*/
|
|
2946
3200
|
export const contextWith = f => fromTransform((upstream, scope) => Effect.contextWith(context => toTransform(f(context))(upstream, scope)));
|
|
2947
3201
|
/**
|
|
2948
|
-
* Provides a
|
|
2949
|
-
*
|
|
2950
|
-
* default, layers are shared between provide calls.
|
|
3202
|
+
* Provides a `Context` to the channel, removing the corresponding service
|
|
3203
|
+
* requirements from the returned channel.
|
|
2951
3204
|
*
|
|
2952
|
-
* @since 4.0.0
|
|
2953
3205
|
* @category Services
|
|
3206
|
+
* @since 4.0.0
|
|
2954
3207
|
*/
|
|
2955
3208
|
export const provideContext = /*#__PURE__*/dual(2, (self, context) => fromTransform((upstream, scope) => Effect.map(Effect.provideContext(toTransform(self)(upstream, scope), context), Effect.provideContext(context))));
|
|
2956
3209
|
/**
|
|
2957
|
-
*
|
|
3210
|
+
* Provides a concrete service for a context key, removing that service
|
|
3211
|
+
* requirement from the returned channel.
|
|
3212
|
+
*
|
|
2958
3213
|
* @category Services
|
|
3214
|
+
* @since 4.0.0
|
|
2959
3215
|
*/
|
|
2960
3216
|
export const provideService = /*#__PURE__*/dual(3, (self, key, service) => fromTransform((upstream, scope) => Effect.map(Effect.provideService(toTransform(self)(upstream, scope), key, service), Effect.provideService(key, service))));
|
|
2961
3217
|
/**
|
|
2962
|
-
*
|
|
3218
|
+
* Evaluates an effect to obtain a service, then provides that service to the
|
|
3219
|
+
* channel.
|
|
3220
|
+
*
|
|
3221
|
+
* If the service effect fails, the returned channel fails. The provided service
|
|
3222
|
+
* removes the corresponding service requirement from the returned channel.
|
|
3223
|
+
*
|
|
2963
3224
|
* @category Services
|
|
3225
|
+
* @since 4.0.0
|
|
2964
3226
|
*/
|
|
2965
3227
|
export const provideServiceEffect = /*#__PURE__*/dual(3, (self, key, service) => fromTransform((upstream, scope) => Effect.flatMap(service, s => toTransform(provideService(self, key, s))(upstream, scope))));
|
|
2966
3228
|
/**
|
|
2967
|
-
*
|
|
3229
|
+
* Provides a `Layer` or `Context` to the channel, removing the corresponding
|
|
3230
|
+
* service requirements.
|
|
3231
|
+
*
|
|
3232
|
+
* Providing a `Context` delegates to `provideContext`. Providing a `Layer`
|
|
3233
|
+
* builds the layer in the channel scope. Use `options.local` to build a fresh
|
|
3234
|
+
* layer instance for this provision.
|
|
3235
|
+
*
|
|
2968
3236
|
* @category Services
|
|
3237
|
+
* @since 4.0.0
|
|
2969
3238
|
*/
|
|
2970
3239
|
export const provide = /*#__PURE__*/dual(args => isChannel(args[0]), (self, layer, options) => Context.isContext(layer) ? provideContext(self, layer) : fromTransform((upstream, scope) => Effect.flatMap(options?.local ? Layer.buildWithMemoMap(layer, Layer.makeMemoMapUnsafe(), scope) : Layer.buildWithScope(layer, scope), context => Effect.map(Effect.provideContext(toTransform(self)(upstream, scope), context), Effect.provideContext(context)))));
|
|
2971
3240
|
/**
|
|
2972
|
-
*
|
|
3241
|
+
* Transforms the current context before running the channel.
|
|
3242
|
+
*
|
|
3243
|
+
* The function receives the surrounding context and returns the context to
|
|
3244
|
+
* provide to the channel. The returned channel requires the services needed to
|
|
3245
|
+
* build that context.
|
|
3246
|
+
*
|
|
2973
3247
|
* @category Services
|
|
3248
|
+
* @since 2.0.0
|
|
2974
3249
|
*/
|
|
2975
3250
|
export const updateContext = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => Effect.contextWith(context => {
|
|
2976
3251
|
const toProvide = f(context);
|
|
2977
3252
|
return toTransform(provideContext(self, toProvide))(upstream, scope);
|
|
2978
3253
|
})));
|
|
2979
3254
|
/**
|
|
2980
|
-
*
|
|
3255
|
+
* Updates a service in the current context before running the channel.
|
|
3256
|
+
*
|
|
3257
|
+
* The existing service is read from the context. The updated service is
|
|
3258
|
+
* provided to the channel under the same key.
|
|
3259
|
+
*
|
|
2981
3260
|
* @category Services
|
|
3261
|
+
* @since 2.0.0
|
|
2982
3262
|
*/
|
|
2983
3263
|
export const updateService = /*#__PURE__*/dual(3, (self, service, f) => updateContext(self, context => Context.add(context, service, f(Context.get(context, service)))));
|
|
2984
3264
|
/**
|
|
2985
|
-
*
|
|
3265
|
+
* Runs the channel inside a tracing span with the specified name and options.
|
|
3266
|
+
*
|
|
3267
|
+
* The created span is provided as the current parent span while the channel
|
|
3268
|
+
* runs. The span is ended with the channel's exit value.
|
|
3269
|
+
*
|
|
2986
3270
|
* @category Tracing
|
|
3271
|
+
* @since 4.0.0
|
|
2987
3272
|
*/
|
|
2988
3273
|
export const withSpan = function () {
|
|
2989
3274
|
const dataFirst = isChannel(arguments[0]);
|
|
@@ -3001,8 +3286,10 @@ const withSpanImpl = (self, name, options) => acquireUseRelease(Effect.makeSpan(
|
|
|
3001
3286
|
return endSpan(span, exit, clock, timingEnabled);
|
|
3002
3287
|
}));
|
|
3003
3288
|
/**
|
|
3004
|
-
*
|
|
3289
|
+
* The starting channel for Do notation, emitting an empty object.
|
|
3290
|
+
*
|
|
3005
3291
|
* @category Do notation
|
|
3292
|
+
* @since 4.0.0
|
|
3006
3293
|
*/
|
|
3007
3294
|
export const Do = /*#__PURE__*/succeed({});
|
|
3008
3295
|
const let_ = /*#__PURE__*/dual(3, (self, name, f) => map(self, elem => ({
|
|
@@ -3011,21 +3298,30 @@ const let_ = /*#__PURE__*/dual(3, (self, name, f) => map(self, elem => ({
|
|
|
3011
3298
|
})));
|
|
3012
3299
|
export {
|
|
3013
3300
|
/**
|
|
3014
|
-
* @since 4.0.0
|
|
3015
3301
|
* @category Do notation
|
|
3302
|
+
* @since 4.0.0
|
|
3016
3303
|
*/
|
|
3017
3304
|
let_ as let };
|
|
3018
3305
|
/**
|
|
3019
|
-
*
|
|
3306
|
+
* Adds a field to each object emitted by a channel by running another channel
|
|
3307
|
+
* derived from that object.
|
|
3308
|
+
*
|
|
3309
|
+
* The field name must not already exist on the emitted object. The derived
|
|
3310
|
+
* channel's output becomes the value of the new field. `options.concurrency`
|
|
3311
|
+
* and `options.bufferSize` control how derived channels are flattened.
|
|
3312
|
+
*
|
|
3020
3313
|
* @category Do notation
|
|
3314
|
+
* @since 4.0.0
|
|
3021
3315
|
*/
|
|
3022
3316
|
export const bind = /*#__PURE__*/dual(args => isChannel(args[0]), (self, name, f, options) => flatMap(self, elem => map(f(elem), b => ({
|
|
3023
3317
|
...elem,
|
|
3024
3318
|
[name]: b
|
|
3025
3319
|
})), options));
|
|
3026
3320
|
/**
|
|
3027
|
-
*
|
|
3321
|
+
* Wraps each output element in an object under the specified field name.
|
|
3322
|
+
*
|
|
3028
3323
|
* @category Do notation
|
|
3324
|
+
* @since 4.0.0
|
|
3029
3325
|
*/
|
|
3030
3326
|
export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
|
|
3031
3327
|
[name]: elem
|
|
@@ -3033,7 +3329,8 @@ export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
|
|
|
3033
3329
|
/**
|
|
3034
3330
|
* Runs a channel and counts the number of elements it outputs.
|
|
3035
3331
|
*
|
|
3036
|
-
*
|
|
3332
|
+
* **Example** (Counting channel output)
|
|
3333
|
+
*
|
|
3037
3334
|
* ```ts
|
|
3038
3335
|
* import { Channel, Data } from "effect"
|
|
3039
3336
|
*
|
|
@@ -3050,14 +3347,15 @@ export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
|
|
|
3050
3347
|
* // Effect.runSync(countEffect) // Returns: 5
|
|
3051
3348
|
* ```
|
|
3052
3349
|
*
|
|
3053
|
-
* @since 2.0.0
|
|
3054
3350
|
* @category execution
|
|
3351
|
+
* @since 2.0.0
|
|
3055
3352
|
*/
|
|
3056
3353
|
export const runCount = self => runFold(self, () => 0, acc => acc + 1);
|
|
3057
3354
|
/**
|
|
3058
3355
|
* Runs a channel and discards all output elements, returning only the final result.
|
|
3059
3356
|
*
|
|
3060
|
-
*
|
|
3357
|
+
* **Example** (Draining channel output at runtime)
|
|
3358
|
+
*
|
|
3061
3359
|
* ```ts
|
|
3062
3360
|
* import { Channel, Data } from "effect"
|
|
3063
3361
|
*
|
|
@@ -3078,8 +3376,8 @@ export const runCount = self => runFold(self, () => 0, acc => acc + 1);
|
|
|
3078
3376
|
* // Effect.runSync(drainEffect) // Returns: "completed"
|
|
3079
3377
|
* ```
|
|
3080
3378
|
*
|
|
3081
|
-
* @since 2.0.0
|
|
3082
3379
|
* @category execution
|
|
3380
|
+
* @since 2.0.0
|
|
3083
3381
|
*/
|
|
3084
3382
|
export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
|
|
3085
3383
|
disableYield: true
|
|
@@ -3087,7 +3385,8 @@ export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
|
|
|
3087
3385
|
/**
|
|
3088
3386
|
* Runs a channel and applies an effect to each output element.
|
|
3089
3387
|
*
|
|
3090
|
-
*
|
|
3388
|
+
* **Example** (Running effects for each output)
|
|
3389
|
+
*
|
|
3091
3390
|
* ```ts
|
|
3092
3391
|
* import { Channel, Console, Data } from "effect"
|
|
3093
3392
|
*
|
|
@@ -3107,15 +3406,21 @@ export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
|
|
|
3107
3406
|
* // Logs: "Processing: 1", "Processing: 2", "Processing: 3"
|
|
3108
3407
|
* ```
|
|
3109
3408
|
*
|
|
3110
|
-
* @since 2.0.0
|
|
3111
3409
|
* @category execution
|
|
3410
|
+
* @since 2.0.0
|
|
3112
3411
|
*/
|
|
3113
3412
|
export const runForEach = /*#__PURE__*/dual(2, (self, f) => runWith(self, pull => Effect.forever(Effect.flatMap(pull, f), {
|
|
3114
3413
|
disableYield: true
|
|
3115
3414
|
})));
|
|
3116
3415
|
/**
|
|
3117
|
-
*
|
|
3416
|
+
* Runs a channel and applies an effectful predicate to each output element
|
|
3417
|
+
* until the predicate returns `false`.
|
|
3418
|
+
*
|
|
3419
|
+
* Returning `true` continues consuming the channel. Returning `false` stops
|
|
3420
|
+
* consumption early. The returned effect completes with `void`.
|
|
3421
|
+
*
|
|
3118
3422
|
* @category execution
|
|
3423
|
+
* @since 2.0.0
|
|
3119
3424
|
*/
|
|
3120
3425
|
export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => runWith(self, pull => pull.pipe(Effect.flatMap(f), Effect.flatMap(cont => cont ? Effect.void : Cause.done()), Effect.forever({
|
|
3121
3426
|
disableYield: true
|
|
@@ -3123,7 +3428,8 @@ export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => runWith(self, p
|
|
|
3123
3428
|
/**
|
|
3124
3429
|
* Runs a channel and collects all output elements into an array.
|
|
3125
3430
|
*
|
|
3126
|
-
*
|
|
3431
|
+
* **Example** (Collecting channel output)
|
|
3432
|
+
*
|
|
3127
3433
|
* ```ts
|
|
3128
3434
|
* import { Channel, Data } from "effect"
|
|
3129
3435
|
*
|
|
@@ -3140,8 +3446,8 @@ export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => runWith(self, p
|
|
|
3140
3446
|
* // Effect.runSync(collectEffect) // Returns: [1, 2, 3, 4, 5]
|
|
3141
3447
|
* ```
|
|
3142
3448
|
*
|
|
3143
|
-
* @since 2.0.0
|
|
3144
3449
|
* @category execution
|
|
3450
|
+
* @since 2.0.0
|
|
3145
3451
|
*/
|
|
3146
3452
|
export const runCollect = self => runFold(self, () => [], (acc, o) => {
|
|
3147
3453
|
acc.push(o);
|
|
@@ -3150,13 +3456,19 @@ export const runCollect = self => runFold(self, () => [], (acc, o) => {
|
|
|
3150
3456
|
/**
|
|
3151
3457
|
* Runs a channel and outputs the done value.
|
|
3152
3458
|
*
|
|
3153
|
-
* @since 4.0.0
|
|
3154
3459
|
* @category execution
|
|
3460
|
+
* @since 4.0.0
|
|
3155
3461
|
*/
|
|
3156
3462
|
export const runDone = self => runWith(self, identity_, Effect.succeed);
|
|
3157
3463
|
/**
|
|
3158
|
-
*
|
|
3464
|
+
* Runs a channel until the first output element is available, returning it in
|
|
3465
|
+
* an `Option`.
|
|
3466
|
+
*
|
|
3467
|
+
* Returns `Option.some` with the first output element, or `Option.none` if the
|
|
3468
|
+
* channel completes without emitting output.
|
|
3469
|
+
*
|
|
3159
3470
|
* @category execution
|
|
3471
|
+
* @since 2.0.0
|
|
3160
3472
|
*/
|
|
3161
3473
|
export const runHead = self => Effect.suspend(() => {
|
|
3162
3474
|
let head = Option.none();
|
|
@@ -3166,8 +3478,14 @@ export const runHead = self => Effect.suspend(() => {
|
|
|
3166
3478
|
})), () => Effect.succeed(head));
|
|
3167
3479
|
});
|
|
3168
3480
|
/**
|
|
3169
|
-
*
|
|
3481
|
+
* Runs a channel to completion and returns the last output element in an
|
|
3482
|
+
* `Option`.
|
|
3483
|
+
*
|
|
3484
|
+
* Returns `Option.some` with the last emitted element, or `Option.none` if the
|
|
3485
|
+
* channel completes without emitting output.
|
|
3486
|
+
*
|
|
3170
3487
|
* @category execution
|
|
3488
|
+
* @since 2.0.0
|
|
3171
3489
|
*/
|
|
3172
3490
|
export const runLast = self => Effect.suspend(() => {
|
|
3173
3491
|
const absent = Symbol(); // Prevent boxing
|
|
@@ -3182,7 +3500,8 @@ export const runLast = self => Effect.suspend(() => {
|
|
|
3182
3500
|
/**
|
|
3183
3501
|
* Runs a channel and folds over all output elements with an accumulator.
|
|
3184
3502
|
*
|
|
3185
|
-
*
|
|
3503
|
+
* **Example** (Folding channel output)
|
|
3504
|
+
*
|
|
3186
3505
|
* ```ts
|
|
3187
3506
|
* import { Channel, Data } from "effect"
|
|
3188
3507
|
*
|
|
@@ -3199,8 +3518,8 @@ export const runLast = self => Effect.suspend(() => {
|
|
|
3199
3518
|
* // Effect.runSync(sumEffect) // Returns: 15
|
|
3200
3519
|
* ```
|
|
3201
3520
|
*
|
|
3202
|
-
* @since 2.0.0
|
|
3203
3521
|
* @category execution
|
|
3522
|
+
* @since 2.0.0
|
|
3204
3523
|
*/
|
|
3205
3524
|
export const runFold = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend(() => {
|
|
3206
3525
|
let state = initial();
|
|
@@ -3213,8 +3532,14 @@ export const runFold = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend
|
|
|
3213
3532
|
}), () => Effect.succeed(state));
|
|
3214
3533
|
}));
|
|
3215
3534
|
/**
|
|
3216
|
-
*
|
|
3535
|
+
* Runs a channel and effectfully folds all output elements with an accumulator.
|
|
3536
|
+
*
|
|
3537
|
+
* The initial accumulator is evaluated lazily. Each output element is passed to
|
|
3538
|
+
* the effectful accumulator function. The returned effect succeeds with the
|
|
3539
|
+
* final accumulator value.
|
|
3540
|
+
*
|
|
3217
3541
|
* @category execution
|
|
3542
|
+
* @since 2.0.0
|
|
3218
3543
|
*/
|
|
3219
3544
|
export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend(() => {
|
|
3220
3545
|
let state = initial();
|
|
@@ -3227,9 +3552,14 @@ export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.s
|
|
|
3227
3552
|
}), () => Effect.succeed(state));
|
|
3228
3553
|
}));
|
|
3229
3554
|
/**
|
|
3230
|
-
* Converts a channel to a Pull
|
|
3555
|
+
* Converts a channel to a scoped `Pull` for low-level consumption.
|
|
3556
|
+
*
|
|
3557
|
+
* The effect requires a `Scope`. The returned pull should be consumed only
|
|
3558
|
+
* while that scope remains open. Pulls are serialized so only one pull is
|
|
3559
|
+
* evaluated at a time.
|
|
3560
|
+
*
|
|
3561
|
+
* **Example** (Converting channels to pulls)
|
|
3231
3562
|
*
|
|
3232
|
-
* @example
|
|
3233
3563
|
* ```ts
|
|
3234
3564
|
* import { Channel, Data, Effect } from "effect"
|
|
3235
3565
|
*
|
|
@@ -3248,8 +3578,8 @@ export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.s
|
|
|
3248
3578
|
* // Use the Pull to manually consume elements
|
|
3249
3579
|
* ```
|
|
3250
3580
|
*
|
|
3251
|
-
* @since 2.0.0
|
|
3252
3581
|
* @category Destructors
|
|
3582
|
+
* @since 2.0.0
|
|
3253
3583
|
*/
|
|
3254
3584
|
export const toPull = /*#__PURE__*/Effect.fnUntraced(function* (self) {
|
|
3255
3585
|
const semaphore = Semaphore.makeUnsafe(1);
|
|
@@ -3264,7 +3594,8 @@ Effect.catchCause(cause => Effect.succeed(Effect.failCause(cause))));
|
|
|
3264
3594
|
/**
|
|
3265
3595
|
* Converts a channel to a Pull within an existing scope.
|
|
3266
3596
|
*
|
|
3267
|
-
*
|
|
3597
|
+
* **Example** (Converting channels to scoped pulls)
|
|
3598
|
+
*
|
|
3268
3599
|
* ```ts
|
|
3269
3600
|
* import { Channel, Data, Effect, Scope } from "effect"
|
|
3270
3601
|
*
|
|
@@ -3283,13 +3614,19 @@ Effect.catchCause(cause => Effect.succeed(Effect.failCause(cause))));
|
|
|
3283
3614
|
* })
|
|
3284
3615
|
* ```
|
|
3285
3616
|
*
|
|
3286
|
-
* @since 4.0.0
|
|
3287
3617
|
* @category Destructors
|
|
3618
|
+
* @since 4.0.0
|
|
3288
3619
|
*/
|
|
3289
3620
|
export const toPullScoped = (self, scope) => toTransform(self)(Cause.done(), scope);
|
|
3290
3621
|
/**
|
|
3291
|
-
*
|
|
3622
|
+
* Runs a channel and offers each output element into a queue.
|
|
3623
|
+
*
|
|
3624
|
+
* When the channel completes, the queue is ended. When the channel fails, the
|
|
3625
|
+
* queue is failed with the channel's cause. The returned effect itself
|
|
3626
|
+
* completes with `void`.
|
|
3627
|
+
*
|
|
3292
3628
|
* @category Destructors
|
|
3629
|
+
* @since 4.0.0
|
|
3293
3630
|
*/
|
|
3294
3631
|
export const runIntoQueue = /*#__PURE__*/dual(args => isChannel(args[0]), (self, queue) => Effect.uninterruptibleMask(restore => runForEach(self, value => Queue.offer(queue, value)).pipe(restore, Effect.exit, Effect.flatMap(exit => {
|
|
3295
3632
|
if (Exit.isSuccess(exit)) {
|
|
@@ -3300,8 +3637,15 @@ export const runIntoQueue = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
3300
3637
|
return Effect.void;
|
|
3301
3638
|
}))));
|
|
3302
3639
|
/**
|
|
3303
|
-
*
|
|
3640
|
+
* Runs a channel that emits non-empty arrays and offers each array element into
|
|
3641
|
+
* a queue.
|
|
3642
|
+
*
|
|
3643
|
+
* When the channel completes, the queue is ended. When the channel fails, the
|
|
3644
|
+
* queue is failed with the channel's cause. The returned effect itself
|
|
3645
|
+
* completes with `void`.
|
|
3646
|
+
*
|
|
3304
3647
|
* @category Destructors
|
|
3648
|
+
* @since 4.0.0
|
|
3305
3649
|
*/
|
|
3306
3650
|
export const runIntoQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), (self, queue) => Effect.uninterruptibleMask(restore => runForEach(self, value => Queue.offerAll(queue, value)).pipe(restore, Effect.exit, Effect.flatMap(exit => {
|
|
3307
3651
|
if (Exit.isSuccess(exit)) {
|
|
@@ -3312,9 +3656,15 @@ export const runIntoQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), (
|
|
|
3312
3656
|
return Effect.void;
|
|
3313
3657
|
}))));
|
|
3314
3658
|
/**
|
|
3315
|
-
*
|
|
3659
|
+
* Creates a scoped queue and forks the channel to feed it for concurrent
|
|
3660
|
+
* consumption.
|
|
3661
|
+
*
|
|
3662
|
+
* Output elements are offered to the queue. Channel completion and failure are
|
|
3663
|
+
* signaled through the queue. The queue is shut down when the surrounding scope
|
|
3664
|
+
* closes.
|
|
3665
|
+
*
|
|
3666
|
+
* **Example** (Converting channels to queues)
|
|
3316
3667
|
*
|
|
3317
|
-
* @example
|
|
3318
3668
|
* ```ts
|
|
3319
3669
|
* import { Channel, Data } from "effect"
|
|
3320
3670
|
*
|
|
@@ -3332,8 +3682,8 @@ export const runIntoQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), (
|
|
|
3332
3682
|
* // Multiple consumers can read from the queue
|
|
3333
3683
|
* ```
|
|
3334
3684
|
*
|
|
3335
|
-
* @since 4.0.0
|
|
3336
3685
|
* @category Destructors
|
|
3686
|
+
* @since 4.0.0
|
|
3337
3687
|
*/
|
|
3338
3688
|
export const toQueue = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3339
3689
|
const scope = yield* Effect.scope;
|
|
@@ -3346,8 +3696,14 @@ export const toQueue = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__
|
|
|
3346
3696
|
return queue;
|
|
3347
3697
|
}));
|
|
3348
3698
|
/**
|
|
3349
|
-
*
|
|
3699
|
+
* Creates a scoped queue and forks an array-emitting channel to feed it.
|
|
3700
|
+
*
|
|
3701
|
+
* Each element inside emitted non-empty arrays is offered to the queue. Channel
|
|
3702
|
+
* completion and failure are signaled through the queue. The queue is shut down
|
|
3703
|
+
* when the surrounding scope closes.
|
|
3704
|
+
*
|
|
3350
3705
|
* @category Destructors
|
|
3706
|
+
* @since 4.0.0
|
|
3351
3707
|
*/
|
|
3352
3708
|
export const toQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3353
3709
|
const scope = yield* Effect.scope;
|
|
@@ -3365,8 +3721,8 @@ export const toQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__P
|
|
|
3365
3721
|
* `shutdownOnEnd` indicates whether the PubSub should be shut down when the
|
|
3366
3722
|
* channel ends. By default this is `true`.
|
|
3367
3723
|
*
|
|
3368
|
-
* @since 4.0.0
|
|
3369
3724
|
* @category Destructors
|
|
3725
|
+
* @since 4.0.0
|
|
3370
3726
|
*/
|
|
3371
3727
|
export const toPubSub = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3372
3728
|
const pubsub = yield* makePubSub(options);
|
|
@@ -3376,19 +3732,26 @@ export const toPubSub = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(func
|
|
|
3376
3732
|
return pubsub;
|
|
3377
3733
|
}));
|
|
3378
3734
|
/**
|
|
3379
|
-
*
|
|
3735
|
+
* Runs a channel and publishes each output element to a `PubSub`.
|
|
3736
|
+
*
|
|
3737
|
+
* The channel's output values are published as individual PubSub messages. Use
|
|
3738
|
+
* `options.shutdownOnEnd` to shut down the PubSub when channel execution ends.
|
|
3739
|
+
*
|
|
3380
3740
|
* @category Destructors
|
|
3741
|
+
* @since 4.0.0
|
|
3381
3742
|
*/
|
|
3382
3743
|
export const runIntoPubSub = /*#__PURE__*/dual(args => isChannel(args[0]), (self, pubsub, options) => runForEach(self, value => PubSub.publish(pubsub, value)).pipe(options?.shutdownOnEnd === true ? Effect.ensuring(PubSub.shutdown(pubsub)) : identity_));
|
|
3383
3744
|
const makePubSub = options => Effect.acquireRelease(options.capacity === "unbounded" ? PubSub.unbounded(options) : options.strategy === "dropping" ? PubSub.dropping(options) : options.strategy === "sliding" ? PubSub.sliding(options) : PubSub.bounded(options), PubSub.shutdown);
|
|
3384
3745
|
/**
|
|
3385
|
-
* Converts
|
|
3746
|
+
* Converts an array-emitting channel to a scoped `PubSub` for concurrent
|
|
3747
|
+
* consumption.
|
|
3386
3748
|
*
|
|
3387
|
-
*
|
|
3388
|
-
*
|
|
3749
|
+
* Each element inside emitted non-empty arrays is published as an individual
|
|
3750
|
+
* PubSub message. `shutdownOnEnd` indicates whether the PubSub should be shut
|
|
3751
|
+
* down when the channel ends. By default this is `true`.
|
|
3389
3752
|
*
|
|
3390
|
-
* @since 4.0.0
|
|
3391
3753
|
* @category Destructors
|
|
3754
|
+
* @since 4.0.0
|
|
3392
3755
|
*/
|
|
3393
3756
|
export const toPubSubArray = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3394
3757
|
const pubsub = yield* makePubSub(options);
|
|
@@ -3398,15 +3761,26 @@ export const toPubSubArray = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced
|
|
|
3398
3761
|
return pubsub;
|
|
3399
3762
|
}));
|
|
3400
3763
|
/**
|
|
3401
|
-
*
|
|
3764
|
+
* Runs an array-emitting channel and publishes each array element to a
|
|
3765
|
+
* `PubSub`.
|
|
3766
|
+
*
|
|
3767
|
+
* Each element inside emitted non-empty arrays is published as an individual
|
|
3768
|
+
* PubSub message. Use `options.shutdownOnEnd` to shut down the PubSub when
|
|
3769
|
+
* channel execution ends.
|
|
3770
|
+
*
|
|
3402
3771
|
* @category Destructors
|
|
3772
|
+
* @since 4.0.0
|
|
3403
3773
|
*/
|
|
3404
3774
|
export const runIntoPubSubArray = /*#__PURE__*/dual(args => isChannel(args[0]), (self, pubsub, options) => runForEach(self, value => PubSub.publishAll(pubsub, value)).pipe(options?.shutdownOnEnd === true ? Effect.ensuring(PubSub.shutdown(pubsub)) : identity_));
|
|
3405
3775
|
/**
|
|
3406
|
-
* Converts a channel to a PubSub
|
|
3776
|
+
* Converts a channel to a scoped `PubSub` of `Take` values.
|
|
3777
|
+
*
|
|
3778
|
+
* Emitted non-empty arrays are published as output `Take` values. When the
|
|
3779
|
+
* channel ends, its final `Exit` is published so subscribers can observe
|
|
3780
|
+
* completion or failure.
|
|
3407
3781
|
*
|
|
3408
|
-
* @since 4.0.0
|
|
3409
3782
|
* @category Destructors
|
|
3783
|
+
* @since 4.0.0
|
|
3410
3784
|
*/
|
|
3411
3785
|
export const toPubSubTake = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3412
3786
|
const pubsub = yield* makePubSub(options);
|