effect 4.0.0-beta.66 → 4.0.0-beta.68
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 +151 -106
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +50 -40
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +620 -553
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +298 -254
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +342 -274
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +168 -126
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +189 -156
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +85 -68
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +30 -5
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +19 -2
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +239 -135
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +135 -59
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +84 -73
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +51 -44
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +1568 -632
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +685 -315
- 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 +574 -428
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +250 -191
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +16 -9
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +9 -5
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +11 -5
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +10 -4
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +80 -68
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +53 -49
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +33 -32
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +19 -18
- package/dist/ConfigProvider.js.map +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 +400 -189
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +143 -77
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +67 -48
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +94 -36
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +208 -0
- package/dist/Crypto.d.ts.map +1 -0
- package/dist/Crypto.js +157 -0
- package/dist/Crypto.js.map +1 -0
- package/dist/Data.d.ts +9 -3
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +893 -464
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +387 -228
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +367 -175
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +146 -72
- package/dist/Deferred.js.map +1 -1
- package/dist/Differ.d.ts +44 -2
- package/dist/Differ.d.ts.map +1 -1
- package/dist/Differ.js +36 -0
- package/dist/Duration.d.ts +333 -186
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +178 -107
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2181 -2275
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +935 -850
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +38 -3
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Effectable.js +3 -3
- 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/Equal.d.ts +4 -3
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +4 -3
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +18 -24
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +16 -21
- 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 +106 -12
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +23 -6
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +6 -5
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +71 -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 +118 -57
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +121 -39
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +287 -159
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +175 -73
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +93 -52
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +97 -34
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +102 -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/Formatter.d.ts +4 -2
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +3 -69
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +218 -151
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +94 -78
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +714 -415
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +325 -182
- 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 +35 -24
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +27 -17
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +540 -388
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +262 -156
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +53 -34
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +83 -16
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +239 -153
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +110 -56
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +26 -13
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +22 -10
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +336 -222
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +146 -100
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +12 -9
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +9 -6
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +13 -11
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +13 -11
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +16 -0
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +10 -0
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +97 -26
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +39 -20
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +472 -410
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +290 -226
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +99 -26
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +58 -14
- 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 +159 -104
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +215 -189
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +78 -19
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +24 -17
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +135 -161
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +86 -78
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +330 -291
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +219 -214
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +146 -87
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +67 -43
- 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 +92 -38
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +110 -68
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +135 -85
- 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 +78 -60
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +15 -2
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +8 -2
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +38 -48
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +34 -25
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +261 -205
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +119 -91
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +6 -7
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +5 -6
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +133 -156
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +64 -64
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +6 -6
- package/dist/Order.js +6 -6
- package/dist/Ordering.d.ts +56 -45
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +10 -8
- 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 +49 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +77 -18
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +63 -14
- 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 -23
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +12 -17
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +11 -3
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +9 -2
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +385 -309
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +260 -207
- 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 +303 -184
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +231 -134
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +65 -57
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +41 -66
- 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 +68 -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 +282 -137
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +124 -62
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +7 -5
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +5 -3
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +63 -34
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +31 -15
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +3 -1
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +2 -0
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +85 -66
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +57 -45
- 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 +12 -6
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +12 -6
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +159 -34
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +68 -12
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +262 -118
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +78 -42
- 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 +135 -151
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +56 -68
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +40 -20
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +34 -17
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +556 -590
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +265 -253
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +44 -7
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +34 -5
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +1293 -602
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +501 -361
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +122 -92
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +102 -77
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +49 -36
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +42 -29
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +19 -24
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +16 -14
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +231 -63
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +266 -75
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +89 -77
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +47 -37
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +97 -46
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +89 -38
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/SchemaUtils.d.ts +8 -1
- package/dist/SchemaUtils.d.ts.map +1 -1
- package/dist/SchemaUtils.js +24 -1
- package/dist/SchemaUtils.js.map +1 -1
- package/dist/Scope.d.ts +107 -65
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +61 -32
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +141 -49
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +82 -21
- 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 +61 -37
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +18 -21
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +461 -206
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +241 -90
- 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 +2117 -1541
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +951 -682
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +174 -97
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +128 -69
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +20 -18
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +10 -8
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +309 -204
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +126 -77
- 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 +233 -59
- 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 +280 -245
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +116 -102
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +34 -32
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +16 -14
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +200 -155
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +83 -61
- 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 -223
- 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 +181 -111
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +87 -49
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +94 -63
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +55 -37
- 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 +277 -242
- 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 -115
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +76 -77
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +74 -50
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +34 -23
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +31 -34
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.d.ts +62 -25
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +36 -25
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +72 -117
- 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 +5 -2
- 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 +1973 -418
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1973 -418
- 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 +9 -6
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +9 -6
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +39 -35
- 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 +44 -36
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +30 -15
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +2 -0
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -7
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.d.ts +34 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +34 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +205 -147
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +164 -109
- 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 +64 -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 +342 -119
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +266 -98
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +56 -20
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +64 -16
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +10 -12
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +9 -7
- 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 +200 -176
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +77 -68
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +173 -160
- 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 +43 -33
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +15 -11
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +14 -9
- 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 +167 -96
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +107 -53
- 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 +121 -29
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +121 -29
- 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 +48 -19
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +32 -9
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +196 -115
- 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 +39 -14
- 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 +110 -32
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +196 -135
- 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 +183 -59
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +105 -23
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.d.ts +182 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +205 -6
- package/dist/unstable/cli/index.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/cli/internal/parser.js +0 -1
- package/dist/unstable/cli/internal/parser.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 +74 -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 +42 -14
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +30 -14
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts +18 -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 +126 -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 +76 -13
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +73 -12
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.d.ts +53 -5
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +49 -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 +90 -19
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +49 -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/index.d.ts +790 -0
- package/dist/unstable/cluster/index.d.ts.map +1 -1
- package/dist/unstable/cluster/index.js +790 -0
- package/dist/unstable/cluster/index.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/devtools/index.d.ts +58 -0
- package/dist/unstable/devtools/index.d.ts.map +1 -1
- package/dist/unstable/devtools/index.js +58 -0
- package/dist/unstable/devtools/index.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/encoding/index.d.ts +49 -0
- package/dist/unstable/encoding/index.d.ts.map +1 -1
- package/dist/unstable/encoding/index.js +49 -0
- package/dist/unstable/encoding/index.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 +150 -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/eventlog/index.d.ts +240 -0
- package/dist/unstable/eventlog/index.d.ts.map +1 -1
- package/dist/unstable/eventlog/index.js +240 -0
- package/dist/unstable/eventlog/index.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 +204 -96
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +85 -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 +48 -7
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +45 -6
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +38 -6
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +27 -2
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +38 -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 +209 -62
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +136 -41
- 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 +93 -10
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +85 -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 +391 -67
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +205 -33
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +24 -8
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +24 -8
- 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 +179 -28
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +131 -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 -1
- 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 +70 -56
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +35 -21
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +237 -51
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +120 -25
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +452 -0
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +452 -0
- package/dist/unstable/http/index.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 +54 -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 +57 -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 +113 -22
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +49 -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 +86 -38
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +59 -35
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +73 -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 +4 -3
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js +23 -3
- 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/httpapi/index.d.ts +310 -25
- package/dist/unstable/httpapi/index.d.ts.map +1 -1
- package/dist/unstable/httpapi/index.js +310 -25
- package/dist/unstable/httpapi/index.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 +15 -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 +17 -5
- 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 +19 -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 +36 -16
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +9 -7
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.d.ts +160 -3
- package/dist/unstable/observability/index.d.ts.map +1 -1
- package/dist/unstable/observability/index.js +160 -3
- 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 +98 -16
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +91 -14
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +101 -21
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +85 -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/persistence/index.d.ts +147 -0
- package/dist/unstable/persistence/index.d.ts.map +1 -1
- package/dist/unstable/persistence/index.js +147 -0
- package/dist/unstable/persistence/index.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 +25 -18
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +23 -12
- 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 +198 -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 +544 -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 +94 -13
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +60 -7
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.d.ts +167 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +167 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +254 -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 +80 -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 +39 -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 +10 -0
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +10 -0
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.d.ts +272 -0
- package/dist/unstable/rpc/index.d.ts.map +1 -1
- package/dist/unstable/rpc/index.js +272 -0
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +192 -59
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +122 -38
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +101 -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/schema/index.d.ts +37 -0
- package/dist/unstable/schema/index.d.ts.map +1 -1
- package/dist/unstable/schema/index.js +37 -0
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +168 -34
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +124 -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/socket/index.d.ts +44 -0
- package/dist/unstable/socket/index.d.ts.map +1 -1
- package/dist/unstable/socket/index.js +44 -0
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.d.ts +40 -9
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +45 -5
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +38 -2
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +40 -1
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.d.ts +34 -3
- 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 +117 -0
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +131 -0
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +25 -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 +4 -0
- package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
- package/dist/unstable/sql/SqlStream.js +24 -0
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +151 -24
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +91 -6
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.d.ts +179 -1
- package/dist/unstable/sql/index.d.ts.map +1 -1
- package/dist/unstable/sql/index.js +179 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +72 -20
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +57 -14
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +61 -8
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +44 -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 +81 -1
- package/dist/unstable/workers/index.d.ts.map +1 -1
- package/dist/unstable/workers/index.js +81 -1
- package/dist/unstable/workers/index.js.map +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 +128 -31
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +77 -13
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +33 -8
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +26 -6
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +102 -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 +40 -12
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +8 -12
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts +37 -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/dist/unstable/workflow/index.d.ts +160 -0
- package/dist/unstable/workflow/index.d.ts.map +1 -1
- package/dist/unstable/workflow/index.js +160 -0
- package/dist/unstable/workflow/index.js.map +1 -1
- package/package.json +11 -11
- package/src/Array.ts +151 -106
- package/src/BigDecimal.ts +620 -553
- package/src/BigInt.ts +342 -274
- package/src/Boolean.ts +189 -156
- package/src/Brand.ts +30 -5
- package/src/Cache.ts +334 -167
- package/src/Cause.ts +84 -73
- package/src/Channel.ts +1639 -667
- package/src/ChannelSchema.ts +137 -12
- package/src/Chunk.ts +575 -429
- package/src/Clock.ts +16 -9
- package/src/Combiner.ts +11 -5
- package/src/Config.ts +80 -68
- package/src/ConfigProvider.ts +33 -32
- package/src/Console.ts +88 -58
- package/src/Context.ts +401 -190
- package/src/Cron.ts +109 -48
- package/src/Crypto.ts +327 -0
- package/src/Data.ts +9 -3
- package/src/DateTime.ts +893 -464
- package/src/Deferred.ts +367 -175
- package/src/Differ.ts +44 -2
- package/src/Duration.ts +333 -186
- package/src/Effect.ts +2201 -2289
- package/src/Effectable.ts +38 -3
- package/src/Encoding.ts +78 -28
- package/src/Equal.ts +4 -3
- package/src/Equivalence.ts +18 -24
- package/src/ErrorReporter.ts +66 -82
- package/src/ExecutionPlan.ts +106 -12
- package/src/Exit.ts +6 -5
- package/src/Fiber.ts +71 -40
- package/src/FiberHandle.ts +157 -57
- package/src/FiberMap.ts +328 -163
- package/src/FiberSet.ts +130 -52
- package/src/FileSystem.ts +104 -74
- package/src/Filter.ts +166 -88
- package/src/Formatter.ts +4 -70
- package/src/Function.ts +218 -151
- package/src/Graph.ts +714 -415
- package/src/HKT.ts +29 -13
- package/src/Hash.ts +35 -24
- package/src/HashMap.ts +540 -388
- package/src/HashRing.ts +111 -34
- package/src/HashSet.ts +239 -153
- package/src/Inspectable.ts +30 -17
- package/src/Iterable.ts +336 -222
- package/src/JsonPatch.ts +13 -10
- package/src/JsonPointer.ts +13 -11
- package/src/JsonSchema.ts +16 -0
- package/src/Latch.ts +97 -26
- package/src/Layer.ts +547 -445
- package/src/LayerMap.ts +99 -26
- package/src/LogLevel.ts +92 -131
- package/src/Logger.ts +365 -297
- package/src/ManagedRuntime.ts +78 -19
- package/src/Match.ts +135 -161
- package/src/Metric.ts +362 -313
- package/src/MutableHashMap.ts +202 -127
- package/src/MutableHashSet.ts +120 -52
- package/src/MutableList.ts +157 -100
- package/src/MutableRef.ts +129 -90
- package/src/Newtype.ts +15 -2
- package/src/NonEmptyIterable.ts +38 -48
- package/src/Number.ts +261 -205
- package/src/Optic.ts +6 -7
- package/src/Option.ts +133 -156
- package/src/Order.ts +6 -6
- package/src/Ordering.ts +56 -45
- package/src/PartitionedSemaphore.ts +225 -40
- package/src/Path.ts +77 -13
- package/src/Pipeable.ts +82 -24
- package/src/PlatformError.ts +74 -6
- package/src/Pool.ts +94 -31
- package/src/Predicate.ts +17 -24
- package/src/PrimaryKey.ts +11 -3
- package/src/PubSub.ts +385 -309
- package/src/Pull.ts +94 -25
- package/src/Queue.ts +303 -184
- package/src/Random.ts +69 -93
- package/src/RcMap.ts +151 -141
- package/src/RcRef.ts +68 -32
- package/src/Record.ts +282 -137
- package/src/Redactable.ts +7 -5
- package/src/Redacted.ts +63 -34
- package/src/Reducer.ts +3 -1
- package/src/Ref.ts +173 -134
- package/src/References.ts +73 -31
- package/src/RegExp.ts +12 -6
- package/src/Request.ts +159 -34
- package/src/RequestResolver.ts +278 -121
- package/src/Resource.ts +45 -7
- package/src/Result.ts +137 -153
- package/src/Runtime.ts +42 -21
- package/src/Schedule.ts +585 -613
- package/src/Scheduler.ts +44 -7
- package/src/Schema.ts +1309 -615
- package/src/SchemaAST.ts +123 -93
- package/src/SchemaGetter.ts +52 -37
- package/src/SchemaIssue.ts +19 -24
- package/src/SchemaParser.ts +306 -85
- package/src/SchemaRepresentation.ts +89 -77
- package/src/SchemaTransformation.ts +97 -46
- package/src/SchemaUtils.ts +24 -1
- package/src/Scope.ts +107 -65
- package/src/ScopedCache.ts +195 -59
- package/src/ScopedRef.ts +28 -8
- package/src/Semaphore.ts +61 -37
- package/src/Sink.ts +461 -206
- package/src/Stdio.ts +43 -6
- package/src/Stream.ts +2361 -1613
- package/src/String.ts +174 -97
- package/src/Struct.ts +20 -18
- package/src/SubscriptionRef.ts +309 -204
- 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 +233 -59
- package/src/Trie.ts +280 -245
- package/src/Tuple.ts +34 -32
- package/src/TxChunk.ts +200 -155
- package/src/TxDeferred.ts +43 -29
- package/src/TxHashMap.ts +370 -231
- package/src/TxHashSet.ts +253 -159
- package/src/TxPriorityQueue.ts +97 -65
- package/src/TxPubSub.ts +77 -49
- package/src/TxQueue.ts +277 -242
- package/src/TxReentrantLock.ts +70 -47
- package/src/TxRef.ts +69 -40
- package/src/TxSemaphore.ts +101 -115
- package/src/TxSubscriptionRef.ts +74 -50
- package/src/Types.ts +31 -34
- package/src/UndefinedOr.ts +62 -25
- package/src/Unify.ts +72 -117
- package/src/Utils.ts +5 -2
- package/src/index.ts +1976 -420
- package/src/internal/schema/schema.ts +1 -1
- package/src/testing/FastCheck.ts +9 -6
- package/src/testing/TestClock.ts +63 -35
- package/src/testing/TestConsole.ts +54 -36
- package/src/testing/TestSchema.ts +10 -8
- package/src/testing/index.ts +34 -0
- package/src/unstable/ai/AiError.ts +195 -137
- package/src/unstable/ai/AnthropicStructuredOutput.ts +2 -2
- package/src/unstable/ai/Chat.ts +68 -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 +342 -119
- package/src/unstable/ai/McpServer.ts +79 -20
- package/src/unstable/ai/Model.ts +10 -12
- package/src/unstable/ai/OpenAiStructuredOutput.ts +2 -2
- package/src/unstable/ai/Prompt.ts +216 -192
- package/src/unstable/ai/Response.ts +179 -167
- package/src/unstable/ai/ResponseIdTracker.ts +43 -4
- package/src/unstable/ai/Telemetry.ts +43 -33
- package/src/unstable/ai/Tokenizer.ts +14 -9
- package/src/unstable/ai/Tool.ts +168 -97
- package/src/unstable/ai/Toolkit.ts +51 -46
- package/src/unstable/ai/index.ts +121 -29
- package/src/unstable/cli/Argument.ts +226 -134
- package/src/unstable/cli/CliError.ts +96 -26
- package/src/unstable/cli/CliOutput.ts +48 -19
- package/src/unstable/cli/Command.ts +196 -115
- 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 +39 -14
- package/src/unstable/cli/Param.ts +395 -260
- package/src/unstable/cli/Primitive.ts +79 -42
- package/src/unstable/cli/Prompt.ts +207 -59
- package/src/unstable/cli/index.ts +205 -6
- 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/cli/internal/parser.ts +0 -1
- 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 +106 -16
- package/src/unstable/cluster/EntityAddress.ts +30 -2
- package/src/unstable/cluster/EntityId.ts +18 -3
- package/src/unstable/cluster/EntityProxy.ts +42 -14
- package/src/unstable/cluster/EntityProxyServer.ts +45 -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 +126 -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 +76 -13
- package/src/unstable/cluster/ShardId.ts +53 -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 +90 -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/index.ts +790 -0
- 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/devtools/index.ts +58 -0
- 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/encoding/index.ts +49 -0
- 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 +150 -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/eventlog/index.ts +240 -0
- 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 +204 -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 +48 -7
- package/src/unstable/http/HttpMethod.ts +38 -6
- package/src/unstable/http/HttpMiddleware.ts +60 -11
- package/src/unstable/http/HttpPlatform.ts +34 -3
- package/src/unstable/http/HttpRouter.ts +232 -69
- package/src/unstable/http/HttpServer.ts +151 -22
- package/src/unstable/http/HttpServerError.ts +93 -10
- package/src/unstable/http/HttpServerRequest.ts +125 -21
- package/src/unstable/http/HttpServerRespondable.ts +49 -6
- package/src/unstable/http/HttpServerResponse.ts +391 -67
- package/src/unstable/http/HttpStaticServer.ts +24 -8
- package/src/unstable/http/HttpTraceContext.ts +53 -6
- package/src/unstable/http/Multipart.ts +179 -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 -1
- package/src/unstable/http/Url.ts +70 -56
- package/src/unstable/http/UrlParams.ts +237 -51
- package/src/unstable/http/index.ts +452 -0
- package/src/unstable/httpapi/HttpApi.ts +49 -14
- package/src/unstable/httpapi/HttpApiBuilder.ts +81 -16
- package/src/unstable/httpapi/HttpApiClient.ts +78 -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 +113 -22
- package/src/unstable/httpapi/HttpApiScalar.ts +38 -4
- package/src/unstable/httpapi/HttpApiSchema.ts +86 -38
- package/src/unstable/httpapi/HttpApiSecurity.ts +73 -17
- package/src/unstable/httpapi/HttpApiSwagger.ts +23 -3
- package/src/unstable/httpapi/HttpApiTest.ts +26 -1
- package/src/unstable/httpapi/OpenApi.ts +115 -15
- package/src/unstable/httpapi/index.ts +310 -25
- package/src/unstable/observability/Otlp.ts +33 -3
- package/src/unstable/observability/OtlpExporter.ts +32 -1
- package/src/unstable/observability/OtlpLogger.ts +32 -2
- package/src/unstable/observability/OtlpMetrics.ts +39 -5
- package/src/unstable/observability/OtlpResource.ts +68 -12
- package/src/unstable/observability/OtlpSerialization.ts +28 -3
- package/src/unstable/observability/OtlpTracer.ts +41 -2
- package/src/unstable/observability/PrometheusMetrics.ts +36 -16
- package/src/unstable/observability/index.ts +160 -3
- 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 +98 -16
- package/src/unstable/persistence/RateLimiter.ts +101 -21
- package/src/unstable/persistence/Redis.ts +42 -5
- package/src/unstable/persistence/index.ts +147 -0
- package/src/unstable/process/ChildProcess.ts +90 -66
- package/src/unstable/process/ChildProcessSpawner.ts +23 -12
- package/src/unstable/process/index.ts +2 -1
- package/src/unstable/reactivity/AsyncResult.ts +204 -61
- package/src/unstable/reactivity/Atom.ts +598 -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 +94 -13
- package/src/unstable/reactivity/index.ts +167 -0
- package/src/unstable/rpc/Rpc.ts +254 -56
- package/src/unstable/rpc/RpcClient.ts +106 -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 +39 -6
- package/src/unstable/rpc/Utils.ts +33 -0
- package/src/unstable/rpc/index.ts +272 -0
- package/src/unstable/schema/Model.ts +245 -61
- package/src/unstable/schema/VariantSchema.ts +101 -24
- package/src/unstable/schema/index.ts +37 -0
- package/src/unstable/socket/Socket.ts +168 -34
- package/src/unstable/socket/SocketServer.ts +58 -10
- package/src/unstable/socket/index.ts +44 -0
- package/src/unstable/sql/Migrator.ts +61 -9
- package/src/unstable/sql/SqlClient.ts +59 -2
- package/src/unstable/sql/SqlConnection.ts +34 -3
- package/src/unstable/sql/SqlError.ts +135 -0
- package/src/unstable/sql/SqlModel.ts +25 -5
- package/src/unstable/sql/SqlResolver.ts +56 -13
- package/src/unstable/sql/SqlSchema.ts +29 -8
- package/src/unstable/sql/SqlStream.ts +24 -0
- package/src/unstable/sql/Statement.ts +168 -24
- package/src/unstable/sql/index.ts +179 -1
- package/src/unstable/workers/Transferable.ts +72 -20
- package/src/unstable/workers/Worker.ts +61 -8
- package/src/unstable/workers/WorkerError.ts +50 -9
- package/src/unstable/workers/WorkerRunner.ts +32 -3
- package/src/unstable/workers/index.ts +81 -1
- package/src/unstable/workflow/Activity.ts +61 -10
- package/src/unstable/workflow/DurableClock.ts +26 -3
- package/src/unstable/workflow/DurableDeferred.ts +148 -31
- package/src/unstable/workflow/DurableQueue.ts +33 -8
- package/src/unstable/workflow/Workflow.ts +123 -31
- package/src/unstable/workflow/WorkflowEngine.ts +40 -5
- package/src/unstable/workflow/WorkflowProxy.ts +40 -12
- package/src/unstable/workflow/WorkflowProxyServer.ts +41 -6
- package/src/unstable/workflow/index.ts +160 -0
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
|
*
|
|
@@ -221,7 +232,7 @@ export const toTransform = channel => channel.transform;
|
|
|
221
232
|
* ```
|
|
222
233
|
*
|
|
223
234
|
* @category constants
|
|
224
|
-
* @since
|
|
235
|
+
* @since 4.0.0
|
|
225
236
|
*/
|
|
226
237
|
export const DefaultChunkSize = 4096;
|
|
227
238
|
const asyncQueue = (scope, f, options) => Queue.make({
|
|
@@ -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
|
*
|
|
@@ -245,13 +257,14 @@ const asyncQueue = (scope, f, options) => Queue.make({
|
|
|
245
257
|
* ```
|
|
246
258
|
*
|
|
247
259
|
* @category constructors
|
|
248
|
-
* @since
|
|
260
|
+
* @since 4.0.0
|
|
249
261
|
*/
|
|
250
262
|
export const callback = (f, options) => fromTransform((_, scope) => Effect.map(asyncQueue(scope, f, options), Queue.take));
|
|
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
|
*
|
|
@@ -319,13 +345,14 @@ export const acquireUseRelease = (acquire, use, release) => fromTransformBracket
|
|
|
319
345
|
* ```
|
|
320
346
|
*
|
|
321
347
|
* @category constructors
|
|
322
|
-
* @since
|
|
348
|
+
* @since 4.0.0
|
|
323
349
|
*/
|
|
324
350
|
export const acquireRelease = /*#__PURE__*/dual(2, (self, release) => unwrap(Effect.map(Effect.acquireRelease(self, release), succeed)));
|
|
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
|
*
|
|
@@ -335,7 +362,7 @@ export const acquireRelease = /*#__PURE__*/dual(2, (self, release) => unwrap(Eff
|
|
|
335
362
|
* ```
|
|
336
363
|
*
|
|
337
364
|
* @category constructors
|
|
338
|
-
* @since
|
|
365
|
+
* @since 4.0.0
|
|
339
366
|
*/
|
|
340
367
|
export const fromIterator = iterator => fromPull(Effect.sync(() => {
|
|
341
368
|
const iter = iterator();
|
|
@@ -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
|
*
|
|
@@ -356,7 +384,7 @@ export const fromIterator = iterator => fromPull(Effect.sync(() => {
|
|
|
356
384
|
* ```
|
|
357
385
|
*
|
|
358
386
|
* @category constructors
|
|
359
|
-
* @since
|
|
387
|
+
* @since 4.0.0
|
|
360
388
|
*/
|
|
361
389
|
export const fromArray = array => fromPull(Effect.sync(() => {
|
|
362
390
|
let index = 0;
|
|
@@ -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
|
*
|
|
@@ -375,13 +404,14 @@ export const fromArray = array => fromPull(Effect.sync(() => {
|
|
|
375
404
|
* ```
|
|
376
405
|
*
|
|
377
406
|
* @category constructors
|
|
378
|
-
* @since
|
|
407
|
+
* @since 4.0.0
|
|
379
408
|
*/
|
|
380
409
|
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 4.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
|
*
|
|
@@ -455,13 +487,14 @@ export const fromIteratorArray = (iterator, chunkSize = DefaultChunkSize) => fro
|
|
|
455
487
|
* ```
|
|
456
488
|
*
|
|
457
489
|
* @category constructors
|
|
458
|
-
* @since
|
|
490
|
+
* @since 4.0.0
|
|
459
491
|
*/
|
|
460
492
|
export const fromIterable = iterable => fromIterator(() => iterable[Symbol.iterator]());
|
|
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
|
*
|
|
@@ -471,13 +504,14 @@ export const fromIterable = iterable => fromIterator(() => iterable[Symbol.itera
|
|
|
471
504
|
* ```
|
|
472
505
|
*
|
|
473
506
|
* @category constructors
|
|
474
|
-
* @since
|
|
507
|
+
* @since 4.0.0
|
|
475
508
|
*/
|
|
476
509
|
export const fromIterableArray = (iterable, chunkSize = DefaultChunkSize) => fromIteratorArray(() => iterable[Symbol.iterator](), chunkSize);
|
|
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 4.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 4.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 2.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
|
/**
|
|
919
|
+
* Creates a channel that forwards upstream input elements, input errors, and
|
|
920
|
+
* the upstream done value unchanged.
|
|
921
|
+
*
|
|
922
|
+
* @category constructors
|
|
854
923
|
* @since 2.0.0
|
|
855
|
-
* @category Constructors
|
|
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
|
/**
|
|
@@ -906,10 +975,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
906
975
|
* arrays of values in chunks. It's useful when you want to process multiple values at once
|
|
907
976
|
* for better performance.
|
|
908
977
|
*
|
|
909
|
-
*
|
|
910
|
-
* @param chunkSize - The maximum number of elements to read in each chunk (default: 4096)
|
|
978
|
+
* **Example** (Batching subscription values)
|
|
911
979
|
*
|
|
912
|
-
* @example
|
|
913
980
|
* ```ts
|
|
914
981
|
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
915
982
|
*
|
|
@@ -935,7 +1002,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
935
1002
|
* })
|
|
936
1003
|
* ```
|
|
937
1004
|
*
|
|
938
|
-
*
|
|
1005
|
+
* **Example** (Processing subscription values in batches)
|
|
1006
|
+
*
|
|
939
1007
|
* ```ts
|
|
940
1008
|
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
941
1009
|
*
|
|
@@ -960,13 +1028,10 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
960
1028
|
* })
|
|
961
1029
|
* ```
|
|
962
1030
|
*
|
|
963
|
-
*
|
|
964
|
-
* ```ts
|
|
965
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1031
|
+
* **Example** (Aggregating subscription metrics)
|
|
966
1032
|
*
|
|
967
|
-
*
|
|
968
|
-
*
|
|
969
|
-
* }> {}
|
|
1033
|
+
* ```ts
|
|
1034
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
970
1035
|
*
|
|
971
1036
|
* const metricsAggregator = Effect.gen(function*() {
|
|
972
1037
|
* const metricsPubSub = yield* PubSub.bounded<
|
|
@@ -991,7 +1056,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
991
1056
|
* average: avg,
|
|
992
1057
|
* min,
|
|
993
1058
|
* max,
|
|
994
|
-
*
|
|
1059
|
+
* firstTimestamp: Math.min(...metrics.map((m) => m.timestamp)),
|
|
1060
|
+
* lastTimestamp: Math.max(...metrics.map((m) => m.timestamp))
|
|
995
1061
|
* }
|
|
996
1062
|
* })
|
|
997
1063
|
*
|
|
@@ -999,8 +1065,8 @@ export const fromSubscription = subscription => fromPull(Effect.succeed(Effect.o
|
|
|
999
1065
|
* })
|
|
1000
1066
|
* ```
|
|
1001
1067
|
*
|
|
1002
|
-
* @since 4.0.0
|
|
1003
1068
|
* @category constructors
|
|
1069
|
+
* @since 4.0.0
|
|
1004
1070
|
*/
|
|
1005
1071
|
export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Effect.onInterrupt(PubSub.takeAll(subscription), () => Cause.done())));
|
|
1006
1072
|
/**
|
|
@@ -1010,9 +1076,8 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1010
1076
|
* subscribing to it. The channel outputs individual values as they are published
|
|
1011
1077
|
* to the PubSub, making it ideal for real-time streaming scenarios.
|
|
1012
1078
|
*
|
|
1013
|
-
*
|
|
1079
|
+
* **Example** (Creating channels from PubSubs)
|
|
1014
1080
|
*
|
|
1015
|
-
* @example
|
|
1016
1081
|
* ```ts
|
|
1017
1082
|
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1018
1083
|
*
|
|
@@ -1036,13 +1101,10 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1036
1101
|
* })
|
|
1037
1102
|
* ```
|
|
1038
1103
|
*
|
|
1039
|
-
*
|
|
1040
|
-
* ```ts
|
|
1041
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1104
|
+
* **Example** (Streaming PubSub notifications)
|
|
1042
1105
|
*
|
|
1043
|
-
*
|
|
1044
|
-
*
|
|
1045
|
-
* }> {}
|
|
1106
|
+
* ```ts
|
|
1107
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
1046
1108
|
*
|
|
1047
1109
|
* const notificationService = Effect.gen(function*() {
|
|
1048
1110
|
* const notificationPubSub = yield* PubSub.bounded<string>(50)
|
|
@@ -1051,24 +1113,21 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1051
1113
|
* const notificationChannel = Channel.fromPubSub(notificationPubSub)
|
|
1052
1114
|
*
|
|
1053
1115
|
* // Transform notifications to add timestamps
|
|
1116
|
+
* const receivedAt = "2024-01-01T00:00:00.000Z"
|
|
1054
1117
|
* const timestampedChannel = Channel.map(notificationChannel, (message) => ({
|
|
1055
1118
|
* message,
|
|
1056
|
-
*
|
|
1057
|
-
* id:
|
|
1119
|
+
* receivedAt,
|
|
1120
|
+
* id: `notification:${message}`
|
|
1058
1121
|
* }))
|
|
1059
1122
|
*
|
|
1060
1123
|
* return timestampedChannel
|
|
1061
1124
|
* })
|
|
1062
1125
|
* ```
|
|
1063
1126
|
*
|
|
1064
|
-
*
|
|
1065
|
-
* ```ts
|
|
1066
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1127
|
+
* **Example** (Processing PubSub events)
|
|
1067
1128
|
*
|
|
1068
|
-
*
|
|
1069
|
-
*
|
|
1070
|
-
* readonly cause: string
|
|
1071
|
-
* }> {}
|
|
1129
|
+
* ```ts
|
|
1130
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
1072
1131
|
*
|
|
1073
1132
|
* interface DomainEvent {
|
|
1074
1133
|
* readonly type: string
|
|
@@ -1088,7 +1147,7 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1088
1147
|
* return {
|
|
1089
1148
|
* ...event,
|
|
1090
1149
|
* processed: true,
|
|
1091
|
-
* processedAt:
|
|
1150
|
+
* processedAt: event.timestamp + 1
|
|
1092
1151
|
* }
|
|
1093
1152
|
* }
|
|
1094
1153
|
* return event
|
|
@@ -1098,8 +1157,8 @@ export const fromSubscriptionArray = subscription => fromPull(Effect.succeed(Eff
|
|
|
1098
1157
|
* })
|
|
1099
1158
|
* ```
|
|
1100
1159
|
*
|
|
1101
|
-
* @since 4.0.0
|
|
1102
1160
|
* @category constructors
|
|
1161
|
+
* @since 2.0.0
|
|
1103
1162
|
*/
|
|
1104
1163
|
export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub), fromSubscription));
|
|
1105
1164
|
/**
|
|
@@ -1109,10 +1168,8 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1109
1168
|
* subscribing to it and collecting values into arrays. The channel outputs
|
|
1110
1169
|
* arrays of values in chunks, making it ideal for batch processing scenarios.
|
|
1111
1170
|
*
|
|
1112
|
-
*
|
|
1113
|
-
* @param chunkSize - The maximum number of elements to collect in each array (default: 4096)
|
|
1171
|
+
* **Example** (Batching PubSub values)
|
|
1114
1172
|
*
|
|
1115
|
-
* @example
|
|
1116
1173
|
* ```ts
|
|
1117
1174
|
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1118
1175
|
*
|
|
@@ -1137,20 +1194,17 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1137
1194
|
* })
|
|
1138
1195
|
* ```
|
|
1139
1196
|
*
|
|
1140
|
-
*
|
|
1141
|
-
* ```ts
|
|
1142
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1197
|
+
* **Example** (Processing PubSub orders in batches)
|
|
1143
1198
|
*
|
|
1144
|
-
*
|
|
1145
|
-
*
|
|
1146
|
-
* readonly reason: string
|
|
1147
|
-
* }> {}
|
|
1199
|
+
* ```ts
|
|
1200
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
1148
1201
|
*
|
|
1149
1202
|
* interface Order {
|
|
1150
1203
|
* readonly id: string
|
|
1151
1204
|
* readonly customerId: string
|
|
1152
1205
|
* readonly items: ReadonlyArray<string>
|
|
1153
1206
|
* readonly total: number
|
|
1207
|
+
* readonly submittedAt: number
|
|
1154
1208
|
* }
|
|
1155
1209
|
*
|
|
1156
1210
|
* const orderBatchProcessor = Effect.gen(function*() {
|
|
@@ -1170,7 +1224,7 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1170
1224
|
* batchSize: orderBatch.length,
|
|
1171
1225
|
* totalRevenue,
|
|
1172
1226
|
* uniqueCustomers: customerCount,
|
|
1173
|
-
*
|
|
1227
|
+
* firstSubmittedAt: Math.min(...orderBatch.map((order) => order.submittedAt)),
|
|
1174
1228
|
* orders: orderBatch
|
|
1175
1229
|
* }
|
|
1176
1230
|
* })
|
|
@@ -1179,14 +1233,10 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1179
1233
|
* })
|
|
1180
1234
|
* ```
|
|
1181
1235
|
*
|
|
1182
|
-
*
|
|
1183
|
-
* ```ts
|
|
1184
|
-
* import { Channel, Data, Effect, PubSub } from "effect"
|
|
1236
|
+
* **Example** (Processing PubSub logs in batches)
|
|
1185
1237
|
*
|
|
1186
|
-
*
|
|
1187
|
-
*
|
|
1188
|
-
* readonly cause: string
|
|
1189
|
-
* }> {}
|
|
1238
|
+
* ```ts
|
|
1239
|
+
* import { Channel, Effect, PubSub } from "effect"
|
|
1190
1240
|
*
|
|
1191
1241
|
* interface LogEntry {
|
|
1192
1242
|
* readonly timestamp: number
|
|
@@ -1213,7 +1263,7 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1213
1263
|
* }
|
|
1214
1264
|
*
|
|
1215
1265
|
* return {
|
|
1216
|
-
* batchId:
|
|
1266
|
+
* batchId: `${timeRange.start}-${timeRange.end}`,
|
|
1217
1267
|
* totalEntries: logBatch.length,
|
|
1218
1268
|
* errorCount,
|
|
1219
1269
|
* warnCount,
|
|
@@ -1227,27 +1277,37 @@ export const fromPubSub = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub),
|
|
|
1227
1277
|
* })
|
|
1228
1278
|
* ```
|
|
1229
1279
|
*
|
|
1230
|
-
* @since 4.0.0
|
|
1231
1280
|
* @category constructors
|
|
1281
|
+
* @since 4.0.0
|
|
1232
1282
|
*/
|
|
1233
1283
|
export const fromPubSubArray = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub), fromSubscriptionArray));
|
|
1234
1284
|
/**
|
|
1235
|
-
*
|
|
1285
|
+
* Subscribes to a `PubSub` of `Take` values and exposes them as a channel.
|
|
1286
|
+
*
|
|
1287
|
+
* Output `Take` values are emitted as non-empty arrays. Failed `Take` values
|
|
1288
|
+
* fail the channel. Done `Take` values complete the channel.
|
|
1289
|
+
*
|
|
1236
1290
|
* @category constructors
|
|
1291
|
+
* @since 4.0.0
|
|
1237
1292
|
*/
|
|
1238
1293
|
export const fromPubSubTake = pubsub => unwrap(Effect.map(PubSub.subscribe(pubsub), sub => fromEffectTake(PubSub.take(sub))));
|
|
1239
1294
|
/**
|
|
1240
1295
|
* Creates a Channel from a Schedule.
|
|
1241
1296
|
*
|
|
1242
|
-
* @since 4.0.0
|
|
1243
1297
|
* @category constructors
|
|
1298
|
+
* @since 4.0.0
|
|
1244
1299
|
*/
|
|
1245
1300
|
export const fromSchedule = schedule => fromPull(Effect.map(Schedule.toStepWithSleep(schedule), step => step(void 0)));
|
|
1246
1301
|
/**
|
|
1247
|
-
* Creates a
|
|
1302
|
+
* Creates a channel that pulls values from an `AsyncIterable`.
|
|
1303
|
+
*
|
|
1304
|
+
* Each yielded value is emitted as an output element. The iterator's return
|
|
1305
|
+
* value becomes the channel's done value. Thrown or rejected iterator errors
|
|
1306
|
+
* are converted with `onError`. If the channel scope closes early and the
|
|
1307
|
+
* iterator has a `return` method, that method is called.
|
|
1248
1308
|
*
|
|
1249
|
-
* @since 4.0.0
|
|
1250
1309
|
* @category constructors
|
|
1310
|
+
* @since 4.0.0
|
|
1251
1311
|
*/
|
|
1252
1312
|
export const fromAsyncIterable = (iterable, onError) => fromTransform(Effect.fnUntraced(function* (_, scope) {
|
|
1253
1313
|
const iter = iterable[Symbol.asyncIterator]();
|
|
@@ -1260,16 +1320,22 @@ export const fromAsyncIterable = (iterable, onError) => fromTransform(Effect.fnU
|
|
|
1260
1320
|
}), result => result.done ? Cause.done(result.value) : Effect.succeed(result.value));
|
|
1261
1321
|
}));
|
|
1262
1322
|
/**
|
|
1263
|
-
* Creates a
|
|
1323
|
+
* Creates a channel from an `AsyncIterable`, emitting each yielded value as a
|
|
1324
|
+
* single-element non-empty array.
|
|
1325
|
+
*
|
|
1326
|
+
* The iterator's return value becomes the channel's done value. Thrown or
|
|
1327
|
+
* rejected iterator errors are converted with `onError`. If the channel scope
|
|
1328
|
+
* closes early and the iterator has a `return` method, that method is called.
|
|
1264
1329
|
*
|
|
1265
|
-
* @since 4.0.0
|
|
1266
1330
|
* @category constructors
|
|
1331
|
+
* @since 4.0.0
|
|
1267
1332
|
*/
|
|
1268
1333
|
export const fromAsyncIterableArray = (iterable, onError) => map(fromAsyncIterable(iterable, onError), Arr.of);
|
|
1269
1334
|
/**
|
|
1270
1335
|
* Maps the output of this channel using the specified function.
|
|
1271
1336
|
*
|
|
1272
|
-
*
|
|
1337
|
+
* **Example** (Mapping channel output)
|
|
1338
|
+
*
|
|
1273
1339
|
* ```ts
|
|
1274
1340
|
* import { Channel, Data } from "effect"
|
|
1275
1341
|
*
|
|
@@ -1301,8 +1367,8 @@ export const fromAsyncIterableArray = (iterable, onError) => map(fromAsyncIterab
|
|
|
1301
1367
|
* }))
|
|
1302
1368
|
* ```
|
|
1303
1369
|
*
|
|
1370
|
+
* @category sequencing
|
|
1304
1371
|
* @since 2.0.0
|
|
1305
|
-
* @category Sequencing
|
|
1306
1372
|
*/
|
|
1307
1373
|
export const map = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull => Effect.sync(() => {
|
|
1308
1374
|
let i = 0;
|
|
@@ -1311,26 +1377,29 @@ export const map = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull =>
|
|
|
1311
1377
|
/**
|
|
1312
1378
|
* Maps the done value of this channel using the specified function.
|
|
1313
1379
|
*
|
|
1314
|
-
* @
|
|
1315
|
-
* @
|
|
1380
|
+
* @category sequencing
|
|
1381
|
+
* @since 4.0.0
|
|
1316
1382
|
*/
|
|
1317
1383
|
export const mapDone = /*#__PURE__*/dual(2, (self, f) => mapDoneEffect(self, o => Effect.succeed(f(o))));
|
|
1318
1384
|
/**
|
|
1319
1385
|
* Maps the done value of this channel using the specified effectful function.
|
|
1320
1386
|
*
|
|
1321
|
-
* @
|
|
1322
|
-
* @
|
|
1387
|
+
* @category sequencing
|
|
1388
|
+
* @since 4.0.0
|
|
1323
1389
|
*/
|
|
1324
1390
|
export const mapDoneEffect = /*#__PURE__*/dual(2, (self, f) => transformPull(self, pull => Effect.succeed(Pull.catchDone(pull, done => Effect.flatMap(f(done), Cause.done)))));
|
|
1325
1391
|
const concurrencyIsSequential = concurrency => concurrency === undefined || concurrency !== "unbounded" && concurrency <= 1;
|
|
1326
1392
|
/**
|
|
1327
|
-
*
|
|
1328
|
-
*
|
|
1329
|
-
*
|
|
1330
|
-
*
|
|
1331
|
-
*
|
|
1393
|
+
* Maps each output element with an effectful function, preserving the source
|
|
1394
|
+
* channel's done value.
|
|
1395
|
+
*
|
|
1396
|
+
* The mapping function receives the output element and its zero-based index.
|
|
1397
|
+
* By default elements are mapped sequentially. Use `options.concurrency` to
|
|
1398
|
+
* map multiple elements concurrently, and `options.unordered` to allow
|
|
1399
|
+
* concurrently mapped outputs to be emitted as soon as they complete.
|
|
1400
|
+
*
|
|
1401
|
+
* **Example** (Mapping channel output with effects)
|
|
1332
1402
|
*
|
|
1333
|
-
* @example
|
|
1334
1403
|
* ```ts
|
|
1335
1404
|
* import { Channel, Data, Effect } from "effect"
|
|
1336
1405
|
*
|
|
@@ -1367,8 +1436,8 @@ const concurrencyIsSequential = concurrency => concurrency === undefined || conc
|
|
|
1367
1436
|
* )
|
|
1368
1437
|
* ```
|
|
1369
1438
|
*
|
|
1370
|
-
* @since 2.0.0
|
|
1371
1439
|
* @category sequencing
|
|
1440
|
+
* @since 2.0.0
|
|
1372
1441
|
*/
|
|
1373
1442
|
export const mapEffect = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => concurrencyIsSequential(options?.concurrency) ? mapEffectSequential(self, f) : mapEffectConcurrent(self, f, options));
|
|
1374
1443
|
const mapEffectSequential = (self, f) => fromTransform((upstream, scope) => {
|
|
@@ -1427,16 +1496,16 @@ const mapEffectConcurrent = (self, f, options) => fromTransformBracket(Effect.fn
|
|
|
1427
1496
|
* Returns a new channel which is the same as this one but applies the given
|
|
1428
1497
|
* function to the input channel’s input elements.
|
|
1429
1498
|
*
|
|
1430
|
-
* @since 2.0.0
|
|
1431
1499
|
* @category sequencing
|
|
1500
|
+
* @since 2.0.0
|
|
1432
1501
|
*/
|
|
1433
1502
|
export const mapInput = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => toTransform(self)(Effect.flatMap(upstream, el => f(el)), scope)));
|
|
1434
1503
|
/**
|
|
1435
1504
|
* Returns a new channel which is the same as this one but applies the given
|
|
1436
1505
|
* function to the input errors.
|
|
1437
1506
|
*
|
|
1438
|
-
* @since 2.0.0
|
|
1439
1507
|
* @category sequencing
|
|
1508
|
+
* @since 2.0.0
|
|
1440
1509
|
*/
|
|
1441
1510
|
export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => toTransform(self)(Effect.catch(upstream, err => {
|
|
1442
1511
|
if (Cause.isDone(err)) return Effect.fail(err);
|
|
@@ -1450,7 +1519,8 @@ export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
|
|
|
1450
1519
|
* debugging) on each element emitted by a channel without modifying the
|
|
1451
1520
|
* elements themselves.
|
|
1452
1521
|
*
|
|
1453
|
-
*
|
|
1522
|
+
* **Example** (Tapping channel output)
|
|
1523
|
+
*
|
|
1454
1524
|
* ```ts
|
|
1455
1525
|
* import { Channel, Console, Data } from "effect"
|
|
1456
1526
|
*
|
|
@@ -1471,18 +1541,21 @@ export const mapInputError = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
|
|
|
1471
1541
|
* // Outputs: 1, 2, 3 (while logging each)
|
|
1472
1542
|
* ```
|
|
1473
1543
|
*
|
|
1474
|
-
* @since 4.0.0
|
|
1475
1544
|
* @category sequencing
|
|
1545
|
+
* @since 4.0.0
|
|
1476
1546
|
*/
|
|
1477
1547
|
export const tap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => mapEffect(self, a => Effect.as(f(a), a), options));
|
|
1478
1548
|
/**
|
|
1479
|
-
*
|
|
1480
|
-
*
|
|
1481
|
-
*
|
|
1482
|
-
*
|
|
1483
|
-
*
|
|
1549
|
+
* Maps each output element to a channel and flattens the child channel
|
|
1550
|
+
* outputs.
|
|
1551
|
+
*
|
|
1552
|
+
* The source channel's done value is preserved. Child channel done values are
|
|
1553
|
+
* used only for child-channel completion. By default child channels are run
|
|
1554
|
+
* sequentially. Use `options.concurrency` and `options.bufferSize` to run child
|
|
1555
|
+
* channels concurrently.
|
|
1556
|
+
*
|
|
1557
|
+
* **Example** (FlatMapping channel output)
|
|
1484
1558
|
*
|
|
1485
|
-
* @example
|
|
1486
1559
|
* ```ts
|
|
1487
1560
|
* import { Channel, Data } from "effect"
|
|
1488
1561
|
*
|
|
@@ -1504,8 +1577,8 @@ export const tap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, optio
|
|
|
1504
1577
|
* // Outputs: "item-1-0", "item-2-0", "item-2-1", "item-3-0", "item-3-1", "item-3-2"
|
|
1505
1578
|
* ```
|
|
1506
1579
|
*
|
|
1507
|
-
* @since 2.0.0
|
|
1508
1580
|
* @category sequencing
|
|
1581
|
+
* @since 2.0.0
|
|
1509
1582
|
*/
|
|
1510
1583
|
export const flatMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => concurrencyIsSequential(options?.concurrency) ? flatMapSequential(self, f) : flatMapConcurrent(self, f, options));
|
|
1511
1584
|
const flatMapSequential = (self, f) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => {
|
|
@@ -1535,7 +1608,8 @@ const flatMapConcurrent = (self, f, options) => self.pipe(map(f), mergeAll(optio
|
|
|
1535
1608
|
* Concatenates this channel with another channel created from the terminal value
|
|
1536
1609
|
* of this channel. The new channel is created using the provided function.
|
|
1537
1610
|
*
|
|
1538
|
-
*
|
|
1611
|
+
* **Example** (Concatenating with completion values)
|
|
1612
|
+
*
|
|
1539
1613
|
* ```ts
|
|
1540
1614
|
* import { Channel, Data } from "effect"
|
|
1541
1615
|
*
|
|
@@ -1552,8 +1626,8 @@ const flatMapConcurrent = (self, f, options) => self.pipe(map(f), mergeAll(optio
|
|
|
1552
1626
|
* // Outputs: 1, 2, 3, then "Completed processing"
|
|
1553
1627
|
* ```
|
|
1554
1628
|
*
|
|
1555
|
-
* @since 2.0.0
|
|
1556
1629
|
* @category sequencing
|
|
1630
|
+
* @since 4.0.0
|
|
1557
1631
|
*/
|
|
1558
1632
|
export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => Effect.sync(() => {
|
|
1559
1633
|
let currentPull;
|
|
@@ -1573,7 +1647,8 @@ export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
|
|
|
1573
1647
|
* Concatenates this channel with another channel, so that the second channel
|
|
1574
1648
|
* starts emitting values after the first channel has completed.
|
|
1575
1649
|
*
|
|
1576
|
-
*
|
|
1650
|
+
* **Example** (Concatenating channels)
|
|
1651
|
+
*
|
|
1577
1652
|
* ```ts
|
|
1578
1653
|
* import { Channel, Data } from "effect"
|
|
1579
1654
|
*
|
|
@@ -1591,8 +1666,8 @@ export const concatWith = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
|
|
|
1591
1666
|
* // Outputs: 1, 2, 3, "a", "b", "c"
|
|
1592
1667
|
* ```
|
|
1593
1668
|
*
|
|
1594
|
-
* @since 2.0.0
|
|
1595
1669
|
* @category sequencing
|
|
1670
|
+
* @since 4.0.0
|
|
1596
1671
|
*/
|
|
1597
1672
|
export const concat = /*#__PURE__*/dual(2, (self, that) => concatWith(self, _ => that));
|
|
1598
1673
|
/**
|
|
@@ -1602,8 +1677,8 @@ export const concat = /*#__PURE__*/dual(2, (self, that) => concatWith(self, _ =>
|
|
|
1602
1677
|
* some internal state to control the combining process, with the initial
|
|
1603
1678
|
* state being specified by `s`.
|
|
1604
1679
|
*
|
|
1605
|
-
* @since 4.0.0
|
|
1606
1680
|
* @category sequencing
|
|
1681
|
+
* @since 4.0.0
|
|
1607
1682
|
*/
|
|
1608
1683
|
export const combine = /*#__PURE__*/dual(4, (self, that, s, f) => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
|
|
1609
1684
|
const leftPull = yield* toTransform(self)(upstream, scope);
|
|
@@ -1618,8 +1693,15 @@ export const combine = /*#__PURE__*/dual(4, (self, that, s, f) => fromTransform(
|
|
|
1618
1693
|
});
|
|
1619
1694
|
})));
|
|
1620
1695
|
/**
|
|
1621
|
-
*
|
|
1696
|
+
* Runs a fallback channel if this channel completes without emitting any
|
|
1697
|
+
* output elements.
|
|
1698
|
+
*
|
|
1699
|
+
* If the source emits at least one element, the source is used unchanged. If
|
|
1700
|
+
* the source completes before emitting an element, the fallback function
|
|
1701
|
+
* receives the source done value and returns the replacement channel.
|
|
1702
|
+
*
|
|
1622
1703
|
* @category sequencing
|
|
1704
|
+
* @since 4.0.0
|
|
1623
1705
|
*/
|
|
1624
1706
|
export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => Effect.sync(() => {
|
|
1625
1707
|
let currentPull;
|
|
@@ -1640,7 +1722,8 @@ export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
|
|
|
1640
1722
|
/**
|
|
1641
1723
|
* Flatten a channel of channels.
|
|
1642
1724
|
*
|
|
1643
|
-
*
|
|
1725
|
+
* **Example** (Flattening nested channels)
|
|
1726
|
+
*
|
|
1644
1727
|
* ```ts
|
|
1645
1728
|
* import { Channel, Data } from "effect"
|
|
1646
1729
|
*
|
|
@@ -1661,14 +1744,15 @@ export const orElseIfEmpty = /*#__PURE__*/dual(2, (self, f) => fromTransform((up
|
|
|
1661
1744
|
* // Outputs: 1, 2, 3, 4, 5, 6
|
|
1662
1745
|
* ```
|
|
1663
1746
|
*
|
|
1664
|
-
* @since 2.0.0
|
|
1665
1747
|
* @category constructors
|
|
1748
|
+
* @since 2.0.0
|
|
1666
1749
|
*/
|
|
1667
1750
|
export const flatten = channels => flatMap(channels, identity_);
|
|
1668
1751
|
/**
|
|
1669
1752
|
* Flattens a channel that outputs arrays into a channel that outputs individual elements.
|
|
1670
1753
|
*
|
|
1671
|
-
*
|
|
1754
|
+
* **Example** (Flattening arrays of channel output)
|
|
1755
|
+
*
|
|
1672
1756
|
* ```ts
|
|
1673
1757
|
* import { Channel, Data } from "effect"
|
|
1674
1758
|
*
|
|
@@ -1689,8 +1773,8 @@ export const flatten = channels => flatMap(channels, identity_);
|
|
|
1689
1773
|
* // Outputs: 1, 2, 3, 4, 5, 6, 7, 8, 9
|
|
1690
1774
|
* ```
|
|
1691
1775
|
*
|
|
1692
|
-
* @since 4.0.0
|
|
1693
1776
|
* @category utils
|
|
1777
|
+
* @since 4.0.0
|
|
1694
1778
|
*/
|
|
1695
1779
|
export const flattenArray = self => transformPull(self, pull => {
|
|
1696
1780
|
let array;
|
|
@@ -1721,15 +1805,22 @@ export const flattenArray = self => transformPull(self, pull => {
|
|
|
1721
1805
|
return Effect.succeed(pump);
|
|
1722
1806
|
});
|
|
1723
1807
|
/**
|
|
1724
|
-
*
|
|
1808
|
+
* Flattens a channel that emits `Take` values into a channel that emits the
|
|
1809
|
+
* `Take` outputs directly.
|
|
1810
|
+
*
|
|
1811
|
+
* Output `Take` values are emitted as non-empty arrays. Failed `Take` values
|
|
1812
|
+
* fail the returned channel. Done `Take` values complete the returned channel.
|
|
1813
|
+
*
|
|
1725
1814
|
* @category utils
|
|
1815
|
+
* @since 4.0.0
|
|
1726
1816
|
*/
|
|
1727
1817
|
export const flattenTake = self => mapEffectSequential(self, Take.toPull);
|
|
1728
1818
|
/**
|
|
1729
1819
|
* Creates a new channel that consumes all output from the source channel
|
|
1730
1820
|
* but emits nothing, preserving only the completion value.
|
|
1731
1821
|
*
|
|
1732
|
-
*
|
|
1822
|
+
* **Example** (Draining channel output)
|
|
1823
|
+
*
|
|
1733
1824
|
* ```ts
|
|
1734
1825
|
* import { Channel } from "effect"
|
|
1735
1826
|
*
|
|
@@ -1743,8 +1834,8 @@ export const flattenTake = self => mapEffectSequential(self, Take.toPull);
|
|
|
1743
1834
|
* // Useful for consuming side effects without collecting output
|
|
1744
1835
|
* ```
|
|
1745
1836
|
*
|
|
1746
|
-
* @since 2.0.0
|
|
1747
1837
|
* @category constructors
|
|
1838
|
+
* @since 2.0.0
|
|
1748
1839
|
*/
|
|
1749
1840
|
export const drain = self => transformPull(self, pull => Effect.succeed(Effect.forever(pull, {
|
|
1750
1841
|
disableYield: true
|
|
@@ -1752,8 +1843,8 @@ export const drain = self => transformPull(self, pull => Effect.succeed(Effect.f
|
|
|
1752
1843
|
/**
|
|
1753
1844
|
* Repeats this channel according to the provided schedule.
|
|
1754
1845
|
*
|
|
1755
|
-
* @since 4.0.0
|
|
1756
1846
|
* @category utils
|
|
1847
|
+
* @since 4.0.0
|
|
1757
1848
|
*/
|
|
1758
1849
|
export const repeat = /*#__PURE__*/dual(2, (self, schedule) => Schedule.toStepWithMetadata(typeof schedule === "function" ? schedule(identity_) : schedule).pipe(Effect.map(step => {
|
|
1759
1850
|
let meta = Schedule.CurrentMetadata.defaultValue();
|
|
@@ -1766,13 +1857,21 @@ export const repeat = /*#__PURE__*/dual(2, (self, schedule) => Schedule.toStepWi
|
|
|
1766
1857
|
/**
|
|
1767
1858
|
* Repeats this channel forever.
|
|
1768
1859
|
*
|
|
1769
|
-
* @since 4.0.0
|
|
1770
1860
|
* @category utils
|
|
1861
|
+
* @since 4.0.0
|
|
1771
1862
|
*/
|
|
1772
1863
|
export const forever = self => concatWith(self, () => forever(self));
|
|
1773
1864
|
/**
|
|
1774
|
-
*
|
|
1865
|
+
* Runs a schedule step for each output element while preserving the emitted
|
|
1866
|
+
* elements.
|
|
1867
|
+
*
|
|
1868
|
+
* The schedule receives each output element as input. Schedule delays are
|
|
1869
|
+
* applied between emitted elements. If the schedule fails, the returned channel
|
|
1870
|
+
* fails. If the schedule finishes, the returned channel completes with the
|
|
1871
|
+
* schedule output.
|
|
1872
|
+
*
|
|
1775
1873
|
* @category utils
|
|
1874
|
+
* @since 4.0.0
|
|
1776
1875
|
*/
|
|
1777
1876
|
export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(self, (pull, _scope) => Effect.map(Schedule.toStepWithSleep(schedule), step => {
|
|
1778
1877
|
const pullWithStep = Effect.tap(pull, step);
|
|
@@ -1782,7 +1881,8 @@ export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(s
|
|
|
1782
1881
|
* Filters the output elements of a channel using a predicate function.
|
|
1783
1882
|
* Elements that don't match the predicate are discarded.
|
|
1784
1883
|
*
|
|
1785
|
-
*
|
|
1884
|
+
* **Example** (Filtering channel output)
|
|
1885
|
+
*
|
|
1786
1886
|
* ```ts
|
|
1787
1887
|
* import { Channel } from "effect"
|
|
1788
1888
|
*
|
|
@@ -1802,30 +1902,48 @@ export const schedule = /*#__PURE__*/dual(2, (self, schedule) => transformPull(s
|
|
|
1802
1902
|
* // Outputs: 1, 2, 3 (all typed as numbers)
|
|
1803
1903
|
* ```
|
|
1804
1904
|
*
|
|
1805
|
-
* @
|
|
1806
|
-
* @
|
|
1905
|
+
* @category filtering
|
|
1906
|
+
* @since 4.0.0
|
|
1807
1907
|
*/
|
|
1808
1908
|
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
1909
|
return predicate(elem) ? Effect.succeed(elem) : Effect.flatMap(pull, loop);
|
|
1810
1910
|
}))));
|
|
1811
1911
|
/**
|
|
1912
|
+
* Filters and maps output elements using a `Filter`.
|
|
1913
|
+
*
|
|
1914
|
+
* Successful filter results are emitted as mapped values. Failed filter
|
|
1915
|
+
* results are discarded. The source channel's errors and done value are
|
|
1916
|
+
* preserved.
|
|
1917
|
+
*
|
|
1918
|
+
* @category filtering
|
|
1812
1919
|
* @since 4.0.0
|
|
1813
|
-
* @category Filtering
|
|
1814
1920
|
*/
|
|
1815
1921
|
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
1922
|
const result = filter(elem);
|
|
1817
1923
|
return Result.isFailure(result) ? Effect.flatMap(pull, loop) : Effect.succeed(result.success);
|
|
1818
1924
|
}))));
|
|
1819
1925
|
/**
|
|
1926
|
+
* Filters output elements with an effectful predicate.
|
|
1927
|
+
*
|
|
1928
|
+
* Elements for which the predicate succeeds with `true` are emitted. Elements
|
|
1929
|
+
* for which the predicate succeeds with `false` are discarded. Predicate
|
|
1930
|
+
* failures fail the returned channel.
|
|
1931
|
+
*
|
|
1932
|
+
* @category filtering
|
|
1820
1933
|
* @since 4.0.0
|
|
1821
|
-
* @category Filtering
|
|
1822
1934
|
*/
|
|
1823
1935
|
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
1936
|
return Effect.flatMap(predicate(elem), passes => passes ? Effect.succeed(elem) : Effect.flatMap(pull, loop));
|
|
1825
1937
|
}))));
|
|
1826
1938
|
/**
|
|
1939
|
+
* Filters and maps output elements using an effectful `Filter`.
|
|
1940
|
+
*
|
|
1941
|
+
* Successful filter results are emitted as mapped values. Failed filter
|
|
1942
|
+
* results are discarded. Failures from the effectful filter fail the returned
|
|
1943
|
+
* channel.
|
|
1944
|
+
*
|
|
1945
|
+
* @category filtering
|
|
1827
1946
|
* @since 4.0.0
|
|
1828
|
-
* @category Filtering
|
|
1829
1947
|
*/
|
|
1830
1948
|
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
1949
|
return Effect.flatMap(filter(elem), result => Result.isFailure(result) ? Effect.flatMap(pull, loop) : Effect.succeed(result.success));
|
|
@@ -1834,7 +1952,8 @@ export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromTransf
|
|
|
1834
1952
|
* Filters arrays of elements emitted by a channel, applying the filter
|
|
1835
1953
|
* to each element within the arrays and only emitting non-empty filtered arrays.
|
|
1836
1954
|
*
|
|
1837
|
-
*
|
|
1955
|
+
* **Example** (Filtering array output)
|
|
1956
|
+
*
|
|
1838
1957
|
* ```ts
|
|
1839
1958
|
* import { Array, Channel } from "effect"
|
|
1840
1959
|
*
|
|
@@ -1862,8 +1981,8 @@ export const filterMapEffect = /*#__PURE__*/dual(2, (self, filter) => fromTransf
|
|
|
1862
1981
|
* // Outputs: [2, 4] (the arrays [1,3,5] and [7,9] are discarded)
|
|
1863
1982
|
* ```
|
|
1864
1983
|
*
|
|
1984
|
+
* @category filtering
|
|
1865
1985
|
* @since 4.0.0
|
|
1866
|
-
* @category Filtering
|
|
1867
1986
|
*/
|
|
1868
1987
|
export const filterArray = /*#__PURE__*/dual(2, (self, predicate) => transformPull(self, pull => Effect.succeed(Effect.flatMap(pull, function loop(arr) {
|
|
1869
1988
|
const passes = [];
|
|
@@ -1875,8 +1994,14 @@ export const filterArray = /*#__PURE__*/dual(2, (self, predicate) => transformPu
|
|
|
1875
1994
|
return Arr.isReadonlyArrayNonEmpty(passes) ? Effect.succeed(passes) : Effect.flatMap(pull, loop);
|
|
1876
1995
|
}))));
|
|
1877
1996
|
/**
|
|
1997
|
+
* Filters and maps each element inside emitted non-empty arrays using a
|
|
1998
|
+
* `Filter`.
|
|
1999
|
+
*
|
|
2000
|
+
* Successful filter results are kept as mapped values. Failed filter results
|
|
2001
|
+
* are removed from the array. Arrays that become empty are discarded.
|
|
2002
|
+
*
|
|
2003
|
+
* @category filtering
|
|
1878
2004
|
* @since 4.0.0
|
|
1879
|
-
* @category Filtering
|
|
1880
2005
|
*/
|
|
1881
2006
|
export const filterMapArray = /*#__PURE__*/dual(2, (self, filter) => transformPull(self, pull => Effect.succeed(Effect.flatMap(pull, function loop(arr) {
|
|
1882
2007
|
const passes = [];
|
|
@@ -1889,8 +2014,15 @@ export const filterMapArray = /*#__PURE__*/dual(2, (self, filter) => transformPu
|
|
|
1889
2014
|
return Arr.isReadonlyArrayNonEmpty(passes) ? Effect.succeed(passes) : Effect.flatMap(pull, loop);
|
|
1890
2015
|
}))));
|
|
1891
2016
|
/**
|
|
2017
|
+
* Filters each element inside emitted non-empty arrays with an effectful
|
|
2018
|
+
* predicate.
|
|
2019
|
+
*
|
|
2020
|
+
* The predicate receives the element and its index within the array. Elements
|
|
2021
|
+
* for which the predicate succeeds with `true` are kept. Arrays that become
|
|
2022
|
+
* empty are discarded. Predicate failures fail the returned channel.
|
|
2023
|
+
*
|
|
2024
|
+
* @category filtering
|
|
1892
2025
|
* @since 4.0.0
|
|
1893
|
-
* @category Filtering
|
|
1894
2026
|
*/
|
|
1895
2027
|
export const filterArrayEffect = /*#__PURE__*/dual(2, (self, predicate) => transformPull(self, pull => {
|
|
1896
2028
|
const f = Effect.flatMap(pull, arr => Effect.filter(arr, predicate));
|
|
@@ -1899,8 +2031,15 @@ export const filterArrayEffect = /*#__PURE__*/dual(2, (self, predicate) => trans
|
|
|
1899
2031
|
}));
|
|
1900
2032
|
}));
|
|
1901
2033
|
/**
|
|
2034
|
+
* Filters and maps each element inside emitted non-empty arrays using an
|
|
2035
|
+
* effectful `Filter`.
|
|
2036
|
+
*
|
|
2037
|
+
* Successful filter results are kept as mapped values. Failed filter results
|
|
2038
|
+
* are removed from the array. Arrays that become empty are discarded. Failures
|
|
2039
|
+
* from the effectful filter fail the returned channel.
|
|
2040
|
+
*
|
|
2041
|
+
* @category filtering
|
|
1902
2042
|
* @since 4.0.0
|
|
1903
|
-
* @category Filtering
|
|
1904
2043
|
*/
|
|
1905
2044
|
export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => transformPull(self, pull => Effect.succeed(Effect.flatMap(pull, function loop(arr) {
|
|
1906
2045
|
return Effect.flatMap(Effect.filterMapEffect(arr, filter), passes => Arr.isReadonlyArrayNonEmpty(passes) ? Effect.succeed(passes) : Effect.flatMap(pull, loop));
|
|
@@ -1908,7 +2047,8 @@ export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => trans
|
|
|
1908
2047
|
/**
|
|
1909
2048
|
* Statefully maps over a channel with an accumulator, where each element can produce multiple output values.
|
|
1910
2049
|
*
|
|
1911
|
-
*
|
|
2050
|
+
* **Example** (Mapping with accumulated state)
|
|
2051
|
+
*
|
|
1912
2052
|
* ```ts
|
|
1913
2053
|
* import { Channel, Effect } from "effect"
|
|
1914
2054
|
*
|
|
@@ -1939,8 +2079,8 @@ export const filterMapArrayEffect = /*#__PURE__*/dual(2, (self, filter) => trans
|
|
|
1939
2079
|
* )
|
|
1940
2080
|
* ```
|
|
1941
2081
|
*
|
|
1942
|
-
* @
|
|
1943
|
-
* @
|
|
2082
|
+
* @category sequencing
|
|
2083
|
+
* @since 4.0.0
|
|
1944
2084
|
*/
|
|
1945
2085
|
export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, initial, f, options) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => {
|
|
1946
2086
|
let state = initial();
|
|
@@ -1985,7 +2125,8 @@ export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, ini
|
|
|
1985
2125
|
* Statefully transforms a channel by scanning over its output with an accumulator function.
|
|
1986
2126
|
* Emits the intermediate results of the scan operation.
|
|
1987
2127
|
*
|
|
1988
|
-
*
|
|
2128
|
+
* **Example** (Scanning channel output)
|
|
2129
|
+
*
|
|
1989
2130
|
* ```ts
|
|
1990
2131
|
* import { Channel } from "effect"
|
|
1991
2132
|
*
|
|
@@ -2007,15 +2148,16 @@ export const mapAccum = /*#__PURE__*/dual(args => isChannel(args[0]), (self, ini
|
|
|
2007
2148
|
* // Outputs: "", "hello", "hello world", "hello world from", "hello world from effect"
|
|
2008
2149
|
* ```
|
|
2009
2150
|
*
|
|
2010
|
-
* @
|
|
2011
|
-
* @
|
|
2151
|
+
* @category sequencing
|
|
2152
|
+
* @since 4.0.0
|
|
2012
2153
|
*/
|
|
2013
2154
|
export const scan = /*#__PURE__*/dual(3, (self, initial, f) => scanEffect(self, initial, (s, a) => Effect.succeed(f(s, a))));
|
|
2014
2155
|
/**
|
|
2015
2156
|
* Statefully transforms a channel by scanning over its output with an effectful accumulator function.
|
|
2016
2157
|
* Emits the intermediate results of the scan operation.
|
|
2017
2158
|
*
|
|
2018
|
-
*
|
|
2159
|
+
* **Example** (Scanning channel output with effects)
|
|
2160
|
+
*
|
|
2019
2161
|
* ```ts
|
|
2020
2162
|
* import { Channel, Data, Effect } from "effect"
|
|
2021
2163
|
*
|
|
@@ -2052,8 +2194,8 @@ export const scan = /*#__PURE__*/dual(3, (self, initial, f) => scanEffect(self,
|
|
|
2052
2194
|
* )
|
|
2053
2195
|
* ```
|
|
2054
2196
|
*
|
|
2055
|
-
* @
|
|
2056
|
-
* @
|
|
2197
|
+
* @category sequencing
|
|
2198
|
+
* @since 4.0.0
|
|
2057
2199
|
*/
|
|
2058
2200
|
export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransform((upstream, scope) => Effect.map(toTransform(self)(upstream, scope), pull => {
|
|
2059
2201
|
let state = initial;
|
|
@@ -2073,7 +2215,8 @@ export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransfo
|
|
|
2073
2215
|
* Catches any cause of failure from the channel and allows recovery by
|
|
2074
2216
|
* creating a new channel based on the caught cause.
|
|
2075
2217
|
*
|
|
2076
|
-
*
|
|
2218
|
+
* **Example** (Recovering from failure causes)
|
|
2219
|
+
*
|
|
2077
2220
|
* ```ts
|
|
2078
2221
|
* import { Cause, Channel, Data } from "effect"
|
|
2079
2222
|
*
|
|
@@ -2101,8 +2244,8 @@ export const scanEffect = /*#__PURE__*/dual(3, (self, initial, f) => fromTransfo
|
|
|
2101
2244
|
* // The channel recovers gracefully from errors
|
|
2102
2245
|
* ```
|
|
2103
2246
|
*
|
|
2104
|
-
* @
|
|
2105
|
-
* @
|
|
2247
|
+
* @category error handling
|
|
2248
|
+
* @since 2.0.0
|
|
2106
2249
|
*/
|
|
2107
2250
|
export const catchCause = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => {
|
|
2108
2251
|
let forkedScope = Scope.forkUnsafe(scope);
|
|
@@ -2122,23 +2265,35 @@ export const catchCause = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstr
|
|
|
2122
2265
|
});
|
|
2123
2266
|
}));
|
|
2124
2267
|
/**
|
|
2268
|
+
* Runs an effect with the full failure `Cause` when the channel fails, then
|
|
2269
|
+
* fails the returned channel with the original cause.
|
|
2270
|
+
*
|
|
2271
|
+
* Use this for observing failures, such as logging or metrics. If the observer
|
|
2272
|
+
* effect fails, that failure can fail the returned channel.
|
|
2273
|
+
*
|
|
2274
|
+
* @category error handling
|
|
2125
2275
|
* @since 4.0.0
|
|
2126
|
-
* @category Error handling
|
|
2127
2276
|
*/
|
|
2128
2277
|
export const tapCause = /*#__PURE__*/dual(2, (self, f) => catchCause(self, cause => fromEffectDrain(Effect.flatMap(f(cause), _ => Effect.failCause(cause)))));
|
|
2129
2278
|
/**
|
|
2130
2279
|
* Catches causes of failure that match a specific filter, allowing
|
|
2131
2280
|
* conditional error recovery based on the type of failure.
|
|
2132
2281
|
*
|
|
2282
|
+
* @category error handling
|
|
2133
2283
|
* @since 4.0.0
|
|
2134
|
-
* @category Error handling
|
|
2135
2284
|
*/
|
|
2136
2285
|
export const catchCauseIf = /*#__PURE__*/dual(3, (self, predicate, f) => catchCause(self, cause => {
|
|
2137
2286
|
return predicate(cause) ? f(cause) : failCause(cause);
|
|
2138
2287
|
}));
|
|
2139
2288
|
/**
|
|
2289
|
+
* Recovers from channel failures whose full `Cause` is selected by a `Filter`.
|
|
2290
|
+
*
|
|
2291
|
+
* When the filter succeeds, the recovery function receives the selected value
|
|
2292
|
+
* and the original cause. When the filter fails, the returned channel fails
|
|
2293
|
+
* with the residual cause produced by the filter.
|
|
2294
|
+
*
|
|
2295
|
+
* @category error handling
|
|
2140
2296
|
* @since 4.0.0
|
|
2141
|
-
* @category Error handling
|
|
2142
2297
|
*/
|
|
2143
2298
|
export const catchCauseFilter = /*#__PURE__*/dual(3, (self, filter, f) => catchCause(self, cause => {
|
|
2144
2299
|
const result = filter(cause);
|
|
@@ -2147,33 +2302,57 @@ export const catchCauseFilter = /*#__PURE__*/dual(3, (self, filter, f) => catchC
|
|
|
2147
2302
|
const catch_ = /*#__PURE__*/dual(2, (self, f) => catchCauseFilter(self, Cause.findError, e => f(e)));
|
|
2148
2303
|
export {
|
|
2149
2304
|
/**
|
|
2305
|
+
* @category error handling
|
|
2150
2306
|
* @since 4.0.0
|
|
2151
|
-
* @category Error handling
|
|
2152
2307
|
*/
|
|
2153
2308
|
catch_ as catch };
|
|
2154
2309
|
/**
|
|
2310
|
+
* Runs an effect when the channel fails with a typed error, then preserves the
|
|
2311
|
+
* original channel failure.
|
|
2312
|
+
*
|
|
2313
|
+
* The effect is not run for normal channel completion. If the observer effect
|
|
2314
|
+
* fails, that failure can fail the returned channel.
|
|
2315
|
+
*
|
|
2316
|
+
* @category error handling
|
|
2155
2317
|
* @since 4.0.0
|
|
2156
|
-
* @category Error handling
|
|
2157
2318
|
*/
|
|
2158
2319
|
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
2320
|
/**
|
|
2321
|
+
* Recovers from typed channel errors that match a predicate or refinement.
|
|
2322
|
+
*
|
|
2323
|
+
* Matching errors are handled by the recovery function. Non-matching errors
|
|
2324
|
+
* are handled by `orElse` when provided. Without `orElse`, non-matching errors
|
|
2325
|
+
* are re-failed.
|
|
2326
|
+
*
|
|
2327
|
+
* @category error handling
|
|
2160
2328
|
* @since 4.0.0
|
|
2161
|
-
* @category Error handling
|
|
2162
2329
|
*/
|
|
2163
2330
|
export const catchIf = /*#__PURE__*/dual(args => isChannel(args[0]), (self, predicate, f, orElse) => catch_(self, err => {
|
|
2164
2331
|
return predicate(err) ? f(err) : orElse ? orElse(err) : fail(err);
|
|
2165
2332
|
}));
|
|
2166
2333
|
/**
|
|
2334
|
+
* Recovers from typed channel errors selected by a `Filter`.
|
|
2335
|
+
*
|
|
2336
|
+
* Successful filter results are handled by the recovery function. Failed
|
|
2337
|
+
* filter results are handled by `orElse` when provided. Without `orElse`,
|
|
2338
|
+
* failed filter results are re-failed.
|
|
2339
|
+
*
|
|
2340
|
+
* @category error handling
|
|
2167
2341
|
* @since 4.0.0
|
|
2168
|
-
* @category Error handling
|
|
2169
2342
|
*/
|
|
2170
2343
|
export const catchFilter = /*#__PURE__*/dual(args => isChannel(args[0]), (self, filter, f, orElse) => catch_(self, err => {
|
|
2171
2344
|
const result = filter(err);
|
|
2172
2345
|
return Result.isFailure(result) ? orElse ? orElse(result.failure) : fail(result.failure) : f(result.success);
|
|
2173
2346
|
}));
|
|
2174
2347
|
/**
|
|
2348
|
+
* Recovers from tagged channel errors whose `_tag` matches one or more tags.
|
|
2349
|
+
*
|
|
2350
|
+
* Matching tagged errors are handled by the recovery function. Non-matching
|
|
2351
|
+
* errors are handled by `orElse` when provided. Without `orElse`,
|
|
2352
|
+
* non-matching errors are re-failed.
|
|
2353
|
+
*
|
|
2354
|
+
* @category error handling
|
|
2175
2355
|
* @since 4.0.0
|
|
2176
|
-
* @category Error handling
|
|
2177
2356
|
*/
|
|
2178
2357
|
export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k, f, orElse) => {
|
|
2179
2358
|
const pred = Array.isArray(k) ? e => hasProperty(e, "_tag") && k.includes(e._tag) : isTagged(k);
|
|
@@ -2182,7 +2361,8 @@ export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k,
|
|
|
2182
2361
|
/**
|
|
2183
2362
|
* Catches a specific reason within a tagged error.
|
|
2184
2363
|
*
|
|
2185
|
-
*
|
|
2364
|
+
* **Example** (Recovering from nested reasons)
|
|
2365
|
+
*
|
|
2186
2366
|
* ```ts
|
|
2187
2367
|
* import { Channel, Data } from "effect"
|
|
2188
2368
|
*
|
|
@@ -2209,8 +2389,8 @@ export const catchTag = /*#__PURE__*/dual(args => isChannel(args[0]), (self, k,
|
|
|
2209
2389
|
* )
|
|
2210
2390
|
* ```
|
|
2211
2391
|
*
|
|
2392
|
+
* @category error handling
|
|
2212
2393
|
* @since 4.0.0
|
|
2213
|
-
* @category Error handling
|
|
2214
2394
|
*/
|
|
2215
2395
|
export const catchReason = /*#__PURE__*/dual(args => isChannel(args[0]), (self, errorTag, reasonTag, f, orElse) => catch_(self, error => {
|
|
2216
2396
|
if (isTagged(error, errorTag) && hasProperty(error, "reason")) {
|
|
@@ -2225,8 +2405,8 @@ export const catchReason = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
2225
2405
|
/**
|
|
2226
2406
|
* Catches multiple reasons within a tagged error using an object of handlers.
|
|
2227
2407
|
*
|
|
2408
|
+
* @category error handling
|
|
2228
2409
|
* @since 4.0.0
|
|
2229
|
-
* @category Error handling
|
|
2230
2410
|
*/
|
|
2231
2411
|
export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self, errorTag, cases, orElse) => {
|
|
2232
2412
|
let keys;
|
|
@@ -2245,7 +2425,8 @@ export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
2245
2425
|
/**
|
|
2246
2426
|
* Promotes nested reason errors into the channel error, replacing the parent error.
|
|
2247
2427
|
*
|
|
2248
|
-
*
|
|
2428
|
+
* **Example** (Promoting nested reasons)
|
|
2429
|
+
*
|
|
2249
2430
|
* ```ts
|
|
2250
2431
|
* import { Channel, Data } from "effect"
|
|
2251
2432
|
*
|
|
@@ -2268,8 +2449,8 @@ export const catchReasons = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
2268
2449
|
* const unwrapped = channel.pipe(Channel.unwrapReason("AiError"))
|
|
2269
2450
|
* ```
|
|
2270
2451
|
*
|
|
2452
|
+
* @category error handling
|
|
2271
2453
|
* @since 4.0.0
|
|
2272
|
-
* @category Error handling
|
|
2273
2454
|
*/
|
|
2274
2455
|
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
2456
|
/**
|
|
@@ -2277,15 +2458,16 @@ export const unwrapReason = /*#__PURE__*/dual(2, (self, errorTag) => catchFilter
|
|
|
2277
2458
|
* value of the returned channel is created by applying the specified function
|
|
2278
2459
|
* to the failure value of this channel.
|
|
2279
2460
|
*
|
|
2461
|
+
* @category error handling
|
|
2280
2462
|
* @since 2.0.0
|
|
2281
|
-
* @category Error handling
|
|
2282
2463
|
*/
|
|
2283
2464
|
export const mapError = /*#__PURE__*/dual(2, (self, f) => catch_(self, err => fail(f(err))));
|
|
2284
2465
|
/**
|
|
2285
2466
|
* Converts all errors in the channel to defects (unrecoverable failures).
|
|
2286
2467
|
* This is useful when you want to treat errors as programming errors.
|
|
2287
2468
|
*
|
|
2288
|
-
*
|
|
2469
|
+
* **Example** (Converting failures to defects)
|
|
2470
|
+
*
|
|
2289
2471
|
* ```ts
|
|
2290
2472
|
* import { Channel, Data } from "effect"
|
|
2291
2473
|
*
|
|
@@ -2302,8 +2484,8 @@ export const mapError = /*#__PURE__*/dual(2, (self, f) => catch_(self, err => fa
|
|
|
2302
2484
|
* // Any failure will now become a defect (uncaught exception)
|
|
2303
2485
|
* ```
|
|
2304
2486
|
*
|
|
2305
|
-
* @
|
|
2306
|
-
* @
|
|
2487
|
+
* @category error handling
|
|
2488
|
+
* @since 2.0.0
|
|
2307
2489
|
*/
|
|
2308
2490
|
export const orDie = self => catch_(self, die);
|
|
2309
2491
|
/**
|
|
@@ -2311,8 +2493,8 @@ export const orDie = self => catch_(self, die);
|
|
|
2311
2493
|
*
|
|
2312
2494
|
* Use the `log` option to emit the full {@link Cause} when the channel fails.
|
|
2313
2495
|
*
|
|
2496
|
+
* @category error handling
|
|
2314
2497
|
* @since 4.0.0
|
|
2315
|
-
* @category Error handling
|
|
2316
2498
|
*/
|
|
2317
2499
|
export const ignore = /*#__PURE__*/dual(args => isChannel(args[0]), (self, options) => {
|
|
2318
2500
|
if (!options?.log) {
|
|
@@ -2327,8 +2509,8 @@ const ignoreCause_ = self => catchCause(self, () => empty);
|
|
|
2327
2509
|
*
|
|
2328
2510
|
* Use the `log` option to emit the full {@link Cause} when the channel fails.
|
|
2329
2511
|
*
|
|
2512
|
+
* @category error handling
|
|
2330
2513
|
* @since 4.0.0
|
|
2331
|
-
* @category Error handling
|
|
2332
2514
|
*/
|
|
2333
2515
|
export const ignoreCause = /*#__PURE__*/dual(args => isChannel(args[0]), (self, options) => {
|
|
2334
2516
|
if (!options?.log) return ignoreCause_(self);
|
|
@@ -2339,8 +2521,8 @@ export const ignoreCause = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
2339
2521
|
* Returns a new channel that retries this channel according to the specified
|
|
2340
2522
|
* schedule whenever it fails.
|
|
2341
2523
|
*
|
|
2342
|
-
* @since 4.0.0
|
|
2343
2524
|
* @category utils
|
|
2525
|
+
* @since 4.0.0
|
|
2344
2526
|
*/
|
|
2345
2527
|
export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
|
|
2346
2528
|
let step = undefined;
|
|
@@ -2361,13 +2543,15 @@ export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
|
|
|
2361
2543
|
return loop;
|
|
2362
2544
|
}));
|
|
2363
2545
|
/**
|
|
2364
|
-
*
|
|
2365
|
-
*
|
|
2366
|
-
*
|
|
2367
|
-
*
|
|
2368
|
-
* the
|
|
2546
|
+
* Maps each output element to a channel and emits values from the most recent
|
|
2547
|
+
* active child channels.
|
|
2548
|
+
*
|
|
2549
|
+
* With the default concurrency of `1`, starting a new child channel interrupts
|
|
2550
|
+
* the previous child channel. Use `options.concurrency` to allow more active
|
|
2551
|
+
* child channels. The source channel's done value is preserved.
|
|
2552
|
+
*
|
|
2553
|
+
* **Example** (Switching mapped channels)
|
|
2369
2554
|
*
|
|
2370
|
-
* @example
|
|
2371
2555
|
* ```ts
|
|
2372
2556
|
* import { Channel, Data } from "effect"
|
|
2373
2557
|
*
|
|
@@ -2387,8 +2571,8 @@ export const retry = /*#__PURE__*/dual(2, (self, schedule) => suspend(() => {
|
|
|
2387
2571
|
* // Outputs: "value-1", "value-2", "value-3"
|
|
2388
2572
|
* ```
|
|
2389
2573
|
*
|
|
2390
|
-
* @since 2.0.0
|
|
2391
2574
|
* @category sequencing
|
|
2575
|
+
* @since 4.0.0
|
|
2392
2576
|
*/
|
|
2393
2577
|
export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f, options) => self.pipe(map(f), mergeAll({
|
|
2394
2578
|
...options,
|
|
@@ -2398,7 +2582,8 @@ export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f,
|
|
|
2398
2582
|
/**
|
|
2399
2583
|
* Merges multiple channels with specified concurrency and buffering options.
|
|
2400
2584
|
*
|
|
2401
|
-
*
|
|
2585
|
+
* **Example** (Merging nested channels)
|
|
2586
|
+
*
|
|
2402
2587
|
* ```ts
|
|
2403
2588
|
* import { Channel, Data } from "effect"
|
|
2404
2589
|
*
|
|
@@ -2422,8 +2607,8 @@ export const switchMap = /*#__PURE__*/dual(args => isChannel(args[0]), (self, f,
|
|
|
2422
2607
|
* // Outputs: 1, 2, 3, 4, 5, 6 (order may vary due to concurrency)
|
|
2423
2608
|
* ```
|
|
2424
2609
|
*
|
|
2425
|
-
* @since 2.0.0
|
|
2426
2610
|
* @category utils
|
|
2611
|
+
* @since 2.0.0
|
|
2427
2612
|
*/
|
|
2428
2613
|
export const mergeAll = /*#__PURE__*/dual(2, (channels, {
|
|
2429
2614
|
bufferSize = 16,
|
|
@@ -2471,7 +2656,8 @@ export const mergeAll = /*#__PURE__*/dual(2, (channels, {
|
|
|
2471
2656
|
* Returns a new channel, which is the merge of this channel and the specified
|
|
2472
2657
|
* channel.
|
|
2473
2658
|
*
|
|
2474
|
-
*
|
|
2659
|
+
* **Example** (Merging channels)
|
|
2660
|
+
*
|
|
2475
2661
|
* ```ts
|
|
2476
2662
|
* import { Channel, Data } from "effect"
|
|
2477
2663
|
*
|
|
@@ -2492,8 +2678,8 @@ export const mergeAll = /*#__PURE__*/dual(2, (channels, {
|
|
|
2492
2678
|
* // Order may vary: 1, "a", 2, "b", 3, "c"
|
|
2493
2679
|
* ```
|
|
2494
2680
|
*
|
|
2495
|
-
* @since 2.0.0
|
|
2496
2681
|
* @category utils
|
|
2682
|
+
* @since 4.0.0
|
|
2497
2683
|
*/
|
|
2498
2684
|
export const merge = /*#__PURE__*/dual(args => isChannel(args[0]) && isChannel(args[1]), (left, right, options) => fromTransformBracket(Effect.fnUntraced(function* (upstream, _scope, forkedScope) {
|
|
2499
2685
|
const strategy = options?.haltStrategy ?? "both";
|
|
@@ -2527,8 +2713,14 @@ export const merge = /*#__PURE__*/dual(args => isChannel(args[0]) && isChannel(a
|
|
|
2527
2713
|
return Queue.take(queue);
|
|
2528
2714
|
})));
|
|
2529
2715
|
/**
|
|
2530
|
-
*
|
|
2716
|
+
* Runs an effect concurrently with a channel while emitting only the channel's
|
|
2717
|
+
* output elements.
|
|
2718
|
+
*
|
|
2719
|
+
* The effect's successful value is ignored. If the effect fails while the
|
|
2720
|
+
* channel is running, the returned channel fails with that error.
|
|
2721
|
+
*
|
|
2531
2722
|
* @category utils
|
|
2723
|
+
* @since 4.0.0
|
|
2532
2724
|
*/
|
|
2533
2725
|
export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fromEffectDrain(effect), {
|
|
2534
2726
|
haltStrategy: "left"
|
|
@@ -2543,7 +2735,7 @@ export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fr
|
|
|
2543
2735
|
* if the stream ends without a terminator the final partial line is still
|
|
2544
2736
|
* emitted.
|
|
2545
2737
|
*
|
|
2546
|
-
* **Example**
|
|
2738
|
+
* **Example** (Splitting string chunks into lines)
|
|
2547
2739
|
*
|
|
2548
2740
|
* ```ts
|
|
2549
2741
|
* import { Effect, Stream } from "effect"
|
|
@@ -2557,8 +2749,8 @@ export const mergeEffect = /*#__PURE__*/dual(2, (self, effect) => merge(self, fr
|
|
|
2557
2749
|
* }))
|
|
2558
2750
|
* ```
|
|
2559
2751
|
*
|
|
2560
|
-
* @since 2.0.0
|
|
2561
2752
|
* @category String manipulation
|
|
2753
|
+
* @since 2.0.0
|
|
2562
2754
|
*/
|
|
2563
2755
|
export const splitLines = () => fromTransform((upstream, _scope) => Effect.sync(() => {
|
|
2564
2756
|
// Accumulates text that has not yet been terminated by a line break.
|
|
@@ -2646,16 +2838,29 @@ export const splitLines = () => fromTransform((upstream, _scope) => Effect.sync(
|
|
|
2646
2838
|
return pullOrFlush;
|
|
2647
2839
|
}));
|
|
2648
2840
|
/**
|
|
2649
|
-
*
|
|
2841
|
+
* Decodes incoming `Uint8Array` chunks into strings using `TextDecoder`.
|
|
2842
|
+
*
|
|
2843
|
+
* Input chunks are decoded with streaming enabled so multi-byte characters may
|
|
2844
|
+
* span `Uint8Array` boundaries. The optional `encoding` and `options` are
|
|
2845
|
+
* passed to `TextDecoder`.
|
|
2846
|
+
*
|
|
2650
2847
|
* @category String manipulation
|
|
2848
|
+
* @since 4.0.0
|
|
2651
2849
|
*/
|
|
2652
2850
|
export const decodeText = (encoding, options) => fromTransform((upstream, _scope) => Effect.sync(() => {
|
|
2653
2851
|
const decoder = new TextDecoder(encoding, options);
|
|
2654
|
-
|
|
2852
|
+
const streamOptions = {
|
|
2853
|
+
stream: true
|
|
2854
|
+
};
|
|
2855
|
+
return Effect.map(upstream, Arr.map(line => decoder.decode(line, streamOptions)));
|
|
2655
2856
|
}));
|
|
2656
2857
|
/**
|
|
2657
|
-
*
|
|
2858
|
+
* Encodes incoming string chunks into `Uint8Array` values using `TextEncoder`.
|
|
2859
|
+
*
|
|
2860
|
+
* Each string inside an emitted array is encoded independently.
|
|
2861
|
+
*
|
|
2658
2862
|
* @category String manipulation
|
|
2863
|
+
* @since 4.0.0
|
|
2659
2864
|
*/
|
|
2660
2865
|
export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(() => {
|
|
2661
2866
|
const encoder = new TextEncoder();
|
|
@@ -2667,7 +2872,8 @@ export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(
|
|
|
2667
2872
|
* and the output type of the specified channel, terminating with the value of
|
|
2668
2873
|
* the specified channel.
|
|
2669
2874
|
*
|
|
2670
|
-
*
|
|
2875
|
+
* **Example** (Piping one channel into another)
|
|
2876
|
+
*
|
|
2671
2877
|
* ```ts
|
|
2672
2878
|
* import { Channel, Data } from "effect"
|
|
2673
2879
|
*
|
|
@@ -2685,8 +2891,8 @@ export const encodeText = () => fromTransform((upstream, _scope) => Effect.sync(
|
|
|
2685
2891
|
* // Outputs: 2, 4, 6
|
|
2686
2892
|
* ```
|
|
2687
2893
|
*
|
|
2688
|
-
* @since 2.0.0
|
|
2689
2894
|
* @category utils
|
|
2895
|
+
* @since 2.0.0
|
|
2690
2896
|
*/
|
|
2691
2897
|
export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstream, scope) => Effect.flatMap(toTransform(self)(upstream, scope), upstream => toTransform(that)(upstream, scope))));
|
|
2692
2898
|
/**
|
|
@@ -2694,7 +2900,8 @@ export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstre
|
|
|
2694
2900
|
* specified channel and preserves this channel's failures without providing
|
|
2695
2901
|
* them to the other channel for observation.
|
|
2696
2902
|
*
|
|
2697
|
-
*
|
|
2903
|
+
* **Example** (Piping while preserving failures)
|
|
2904
|
+
*
|
|
2698
2905
|
* ```ts
|
|
2699
2906
|
* import { Channel, Data } from "effect"
|
|
2700
2907
|
*
|
|
@@ -2712,8 +2919,8 @@ export const pipeTo = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstre
|
|
|
2712
2919
|
* // Source errors are preserved and not sent to transform channel
|
|
2713
2920
|
* ```
|
|
2714
2921
|
*
|
|
2715
|
-
* @since 2.0.0
|
|
2716
2922
|
* @category utils
|
|
2923
|
+
* @since 2.0.0
|
|
2717
2924
|
*/
|
|
2718
2925
|
export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((upstream, scope) => Effect.flatMap(toTransform(self)(upstream, scope), upstream => {
|
|
2719
2926
|
const upstreamPull = Effect.catchCause(upstream, cause => Pull.isDoneCause(cause) ? Effect.failCause(cause) : Effect.die(Cause.Done(cause)));
|
|
@@ -2723,7 +2930,8 @@ export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((
|
|
|
2723
2930
|
* Constructs a `Channel` from a scoped effect that will result in a
|
|
2724
2931
|
* `Channel` if successful.
|
|
2725
2932
|
*
|
|
2726
|
-
*
|
|
2933
|
+
* **Example** (Unwrapping channel effects)
|
|
2934
|
+
*
|
|
2727
2935
|
* ```ts
|
|
2728
2936
|
* import { Channel, Data, Effect } from "effect"
|
|
2729
2937
|
*
|
|
@@ -2742,8 +2950,8 @@ export const pipeToOrFail = /*#__PURE__*/dual(2, (self, that) => fromTransform((
|
|
|
2742
2950
|
* // The resulting channel outputs: 1, 2, 3
|
|
2743
2951
|
* ```
|
|
2744
2952
|
*
|
|
2745
|
-
* @since 2.0.0
|
|
2746
2953
|
* @category constructors
|
|
2954
|
+
* @since 2.0.0
|
|
2747
2955
|
*/
|
|
2748
2956
|
export const unwrap = channel => fromTransform((upstream, scope) => {
|
|
2749
2957
|
let pull;
|
|
@@ -2753,41 +2961,52 @@ export const unwrap = channel => fromTransform((upstream, scope) => {
|
|
|
2753
2961
|
}));
|
|
2754
2962
|
});
|
|
2755
2963
|
/**
|
|
2756
|
-
*
|
|
2964
|
+
* Runs a channel with a scope provided for the duration of the channel
|
|
2965
|
+
* execution, removing the channel's `Scope` requirement.
|
|
2966
|
+
*
|
|
2757
2967
|
* @category utils
|
|
2968
|
+
* @since 2.0.0
|
|
2758
2969
|
*/
|
|
2759
2970
|
export const scoped = self => fromTransformBracket((upstream, scope, forkedScope) => Scope.provide(toTransform(self)(upstream, scope), forkedScope));
|
|
2760
2971
|
/**
|
|
2761
|
-
*
|
|
2972
|
+
* Runs an input handler against the upstream pull while the wrapped channel
|
|
2973
|
+
* runs without receiving upstream input directly.
|
|
2762
2974
|
*
|
|
2763
|
-
*
|
|
2764
|
-
*
|
|
2765
|
-
* import { Channel, Data, Effect } from "effect"
|
|
2975
|
+
* The input handler is forked in the channel scope. The wrapped channel is run
|
|
2976
|
+
* with an already-completed input.
|
|
2766
2977
|
*
|
|
2767
|
-
*
|
|
2768
|
-
*
|
|
2769
|
-
*
|
|
2978
|
+
* **Example** (Embedding custom input handling)
|
|
2979
|
+
*
|
|
2980
|
+
* ```ts
|
|
2981
|
+
* import { Channel, Effect } from "effect"
|
|
2770
2982
|
*
|
|
2771
2983
|
* // Create a base channel
|
|
2772
2984
|
* const baseChannel = Channel.fromIterable([1, 2, 3])
|
|
2773
2985
|
*
|
|
2774
|
-
* //
|
|
2986
|
+
* // Drain the embedded input while the base channel runs
|
|
2775
2987
|
* const embeddedChannel = Channel.embedInput(
|
|
2776
2988
|
* baseChannel,
|
|
2777
|
-
* (
|
|
2989
|
+
* (upstream) =>
|
|
2990
|
+
* upstream.pipe(
|
|
2991
|
+
* Effect.tap((message) =>
|
|
2992
|
+
* Effect.sync(() => console.log(message))
|
|
2993
|
+
* ),
|
|
2994
|
+
* Effect.forever,
|
|
2995
|
+
* Effect.ignore
|
|
2996
|
+
* )
|
|
2778
2997
|
* )
|
|
2779
2998
|
* ```
|
|
2780
2999
|
*
|
|
2781
|
-
* @since 2.0.0
|
|
2782
3000
|
* @category utils
|
|
3001
|
+
* @since 2.0.0
|
|
2783
3002
|
*/
|
|
2784
3003
|
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
3004
|
/**
|
|
2786
3005
|
* Allows a faster producer to progress independently of a slower consumer by
|
|
2787
3006
|
* buffering up to `capacity` elements in a queue.
|
|
2788
3007
|
*
|
|
2789
|
-
* @since 2.0.0
|
|
2790
3008
|
* @category Buffering
|
|
3009
|
+
* @since 2.0.0
|
|
2791
3010
|
*/
|
|
2792
3011
|
export const buffer = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
|
|
2793
3012
|
const pull = yield* toTransform(self)(upstream, scope);
|
|
@@ -2805,8 +3024,8 @@ export const buffer = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effe
|
|
|
2805
3024
|
* Allows a faster producer to progress independently of a slower consumer by
|
|
2806
3025
|
* buffering up to `capacity` elements in a queue.
|
|
2807
3026
|
*
|
|
2808
|
-
* @since 2.0.0
|
|
2809
3027
|
* @category Buffering
|
|
3028
|
+
* @since 4.0.0
|
|
2810
3029
|
*/
|
|
2811
3030
|
export const bufferArray = /*#__PURE__*/dual(2, (self, options) => fromTransform(Effect.fnUntraced(function* (upstream, scope) {
|
|
2812
3031
|
const pull = yield* toTransform(self)(upstream, scope);
|
|
@@ -2829,15 +3048,22 @@ export const bufferArray = /*#__PURE__*/dual(2, (self, options) => fromTransform
|
|
|
2829
3048
|
* returned channel will yield the success value of the underlying channel as
|
|
2830
3049
|
* its terminal value.
|
|
2831
3050
|
*
|
|
2832
|
-
* @since 2.0.0
|
|
2833
3051
|
* @category utils
|
|
3052
|
+
* @since 2.0.0
|
|
2834
3053
|
*/
|
|
2835
3054
|
export const interruptWhen = /*#__PURE__*/dual(2, (self, effect) => merge(self, fromPull(Effect.succeed(Effect.flatMap(effect, Cause.done))), {
|
|
2836
3055
|
haltStrategy: "either"
|
|
2837
3056
|
}));
|
|
2838
3057
|
/**
|
|
2839
|
-
*
|
|
3058
|
+
* Halts a channel when the specified effect completes or fails.
|
|
3059
|
+
*
|
|
3060
|
+
* If the effect completes before the channel is done, its success value becomes
|
|
3061
|
+
* the returned channel's done value. If the effect fails, the returned channel
|
|
3062
|
+
* fails with that error. If the channel completes first, the channel's done
|
|
3063
|
+
* value is preserved.
|
|
3064
|
+
*
|
|
2840
3065
|
* @category utils
|
|
3066
|
+
* @since 4.0.0
|
|
2841
3067
|
*/
|
|
2842
3068
|
export const haltWhen = /*#__PURE__*/dual(2, (self, effect) => fromTransformBracket(Effect.fnUntraced(function* (upstream, scope, forkedScope) {
|
|
2843
3069
|
const pull = yield* toTransform(self)(upstream, scope);
|
|
@@ -2849,8 +3075,13 @@ export const haltWhen = /*#__PURE__*/dual(2, (self, effect) => fromTransformBrac
|
|
|
2849
3075
|
return Effect.suspend(() => haltCause ? Effect.failCause(haltCause) : pull);
|
|
2850
3076
|
})));
|
|
2851
3077
|
/**
|
|
2852
|
-
*
|
|
3078
|
+
* Attaches a finalizer that runs only when the channel exits with failure.
|
|
3079
|
+
*
|
|
3080
|
+
* The finalizer receives the failure `Cause`. The original channel failure is
|
|
3081
|
+
* preserved. The finalizer itself must not fail.
|
|
3082
|
+
*
|
|
2853
3083
|
* @category utils
|
|
3084
|
+
* @since 4.0.0
|
|
2854
3085
|
*/
|
|
2855
3086
|
export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, exit => Exit.isFailure(exit) ? finalizer(exit.cause) : Effect.void));
|
|
2856
3087
|
/**
|
|
@@ -2858,7 +3089,8 @@ export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, ex
|
|
|
2858
3089
|
* guaranteed to be executed so long as the channel begins execution (and
|
|
2859
3090
|
* regardless of whether or not it completes).
|
|
2860
3091
|
*
|
|
2861
|
-
*
|
|
3092
|
+
* **Example** (Running exit finalizers)
|
|
3093
|
+
*
|
|
2862
3094
|
* ```ts
|
|
2863
3095
|
* import { Channel, Console, Data, Exit } from "effect"
|
|
2864
3096
|
*
|
|
@@ -2879,18 +3111,29 @@ export const onError = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, ex
|
|
|
2879
3111
|
* })
|
|
2880
3112
|
* ```
|
|
2881
3113
|
*
|
|
2882
|
-
* @since 4.0.0
|
|
2883
3114
|
* @category utils
|
|
3115
|
+
* @since 4.0.0
|
|
2884
3116
|
*/
|
|
2885
3117
|
export const onExit = /*#__PURE__*/dual(2, (self, finalizer) => fromTransformBracket((upstream, scope, forkedScope) => Scope.addFinalizerExit(forkedScope, finalizer).pipe(Effect.andThen(toTransform(self)(upstream, scope)))));
|
|
2886
3118
|
/**
|
|
2887
|
-
*
|
|
3119
|
+
* Runs an effect before the channel starts.
|
|
3120
|
+
*
|
|
3121
|
+
* The effect's successful value is ignored. If the effect fails, the returned
|
|
3122
|
+
* channel fails before running the source channel.
|
|
3123
|
+
*
|
|
2888
3124
|
* @category utils
|
|
3125
|
+
* @since 4.0.0
|
|
2889
3126
|
*/
|
|
2890
3127
|
export const onStart = /*#__PURE__*/dual(2, (self, onStart) => unwrap(Effect.as(onStart, self)));
|
|
2891
3128
|
/**
|
|
2892
|
-
*
|
|
3129
|
+
* Runs an effect the first time the channel emits an output element.
|
|
3130
|
+
*
|
|
3131
|
+
* The effect receives the first emitted element. The first element is still
|
|
3132
|
+
* emitted unchanged. The effect is not run if the channel completes without
|
|
3133
|
+
* emitting an element.
|
|
3134
|
+
*
|
|
2893
3135
|
* @category utils
|
|
3136
|
+
* @since 4.0.0
|
|
2894
3137
|
*/
|
|
2895
3138
|
export const onFirst = /*#__PURE__*/dual(2, (self, onFirst) => transformPull(self, pull => Effect.sync(() => {
|
|
2896
3139
|
let isFirst = true;
|
|
@@ -2901,8 +3144,14 @@ export const onFirst = /*#__PURE__*/dual(2, (self, onFirst) => transformPull(sel
|
|
|
2901
3144
|
return Effect.suspend(() => isFirst ? pullFirst : pull);
|
|
2902
3145
|
})));
|
|
2903
3146
|
/**
|
|
2904
|
-
*
|
|
3147
|
+
* Runs an effect when the channel completes successfully.
|
|
3148
|
+
*
|
|
3149
|
+
* The effect runs before the original done value is propagated. The effect is
|
|
3150
|
+
* not run when the channel fails. If the effect fails, the returned channel
|
|
3151
|
+
* fails with that error.
|
|
3152
|
+
*
|
|
2905
3153
|
* @category utils
|
|
3154
|
+
* @since 4.0.0
|
|
2906
3155
|
*/
|
|
2907
3156
|
export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, pull => Effect.succeed(Pull.catchDone(pull, leftover => Effect.flatMap(onEnd, () => Cause.done(leftover))))));
|
|
2908
3157
|
/**
|
|
@@ -2910,7 +3159,8 @@ export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, p
|
|
|
2910
3159
|
* guaranteed to be executed so long as the channel begins execution (and
|
|
2911
3160
|
* regardless of whether or not it completes).
|
|
2912
3161
|
*
|
|
2913
|
-
*
|
|
3162
|
+
* **Example** (Ensuring cleanup runs)
|
|
3163
|
+
*
|
|
2914
3164
|
* ```ts
|
|
2915
3165
|
* import { Channel, Console, Data } from "effect"
|
|
2916
3166
|
*
|
|
@@ -2928,8 +3178,8 @@ export const onEnd = /*#__PURE__*/dual(2, (self, onEnd) => transformPull(self, p
|
|
|
2928
3178
|
* )
|
|
2929
3179
|
* ```
|
|
2930
3180
|
*
|
|
2931
|
-
* @since 2.0.0
|
|
2932
3181
|
* @category utils
|
|
3182
|
+
* @since 2.0.0
|
|
2933
3183
|
*/
|
|
2934
3184
|
export const ensuring = /*#__PURE__*/dual(2, (self, finalizer) => onExit(self, _ => finalizer));
|
|
2935
3185
|
const runWith = (self, f, onHalt) => Effect.suspend(() => {
|
|
@@ -2940,50 +3190,81 @@ const runWith = (self, f, onHalt) => Effect.suspend(() => {
|
|
|
2940
3190
|
/**
|
|
2941
3191
|
* Create a channel from the specified services.
|
|
2942
3192
|
*
|
|
3193
|
+
* @category services
|
|
2943
3194
|
* @since 2.0.0
|
|
2944
|
-
* @category Services
|
|
2945
3195
|
*/
|
|
2946
3196
|
export const contextWith = f => fromTransform((upstream, scope) => Effect.contextWith(context => toTransform(f(context))(upstream, scope)));
|
|
2947
3197
|
/**
|
|
2948
|
-
* Provides a
|
|
2949
|
-
*
|
|
2950
|
-
* default, layers are shared between provide calls.
|
|
3198
|
+
* Provides a `Context` to the channel, removing the corresponding service
|
|
3199
|
+
* requirements from the returned channel.
|
|
2951
3200
|
*
|
|
2952
|
-
* @
|
|
2953
|
-
* @
|
|
3201
|
+
* @category services
|
|
3202
|
+
* @since 2.0.0
|
|
2954
3203
|
*/
|
|
2955
3204
|
export const provideContext = /*#__PURE__*/dual(2, (self, context) => fromTransform((upstream, scope) => Effect.map(Effect.provideContext(toTransform(self)(upstream, scope), context), Effect.provideContext(context))));
|
|
2956
3205
|
/**
|
|
2957
|
-
*
|
|
2958
|
-
*
|
|
3206
|
+
* Provides a concrete service for a context key, removing that service
|
|
3207
|
+
* requirement from the returned channel.
|
|
3208
|
+
*
|
|
3209
|
+
* @category services
|
|
3210
|
+
* @since 2.0.0
|
|
2959
3211
|
*/
|
|
2960
3212
|
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
3213
|
/**
|
|
3214
|
+
* Evaluates an effect to obtain a service, then provides that service to the
|
|
3215
|
+
* channel.
|
|
3216
|
+
*
|
|
3217
|
+
* If the service effect fails, the returned channel fails. The provided service
|
|
3218
|
+
* removes the corresponding service requirement from the returned channel.
|
|
3219
|
+
*
|
|
3220
|
+
* @category services
|
|
2962
3221
|
* @since 4.0.0
|
|
2963
|
-
* @category Services
|
|
2964
3222
|
*/
|
|
2965
3223
|
export const provideServiceEffect = /*#__PURE__*/dual(3, (self, key, service) => fromTransform((upstream, scope) => Effect.flatMap(service, s => toTransform(provideService(self, key, s))(upstream, scope))));
|
|
2966
3224
|
/**
|
|
3225
|
+
* Provides a `Layer` or `Context` to the channel, removing the corresponding
|
|
3226
|
+
* service requirements.
|
|
3227
|
+
*
|
|
3228
|
+
* Providing a `Context` delegates to `provideContext`. Providing a `Layer`
|
|
3229
|
+
* builds the layer in the channel scope. Use `options.local` to build a fresh
|
|
3230
|
+
* layer instance for this provision.
|
|
3231
|
+
*
|
|
3232
|
+
* @category services
|
|
2967
3233
|
* @since 4.0.0
|
|
2968
|
-
* @category Services
|
|
2969
3234
|
*/
|
|
2970
3235
|
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
3236
|
/**
|
|
2972
|
-
*
|
|
2973
|
-
*
|
|
3237
|
+
* Transforms the current context before running the channel.
|
|
3238
|
+
*
|
|
3239
|
+
* The function receives the surrounding context and returns the context to
|
|
3240
|
+
* provide to the channel. The returned channel requires the services needed to
|
|
3241
|
+
* build that context.
|
|
3242
|
+
*
|
|
3243
|
+
* @category services
|
|
3244
|
+
* @since 4.0.0
|
|
2974
3245
|
*/
|
|
2975
3246
|
export const updateContext = /*#__PURE__*/dual(2, (self, f) => fromTransform((upstream, scope) => Effect.contextWith(context => {
|
|
2976
3247
|
const toProvide = f(context);
|
|
2977
3248
|
return toTransform(provideContext(self, toProvide))(upstream, scope);
|
|
2978
3249
|
})));
|
|
2979
3250
|
/**
|
|
3251
|
+
* Updates a service in the current context before running the channel.
|
|
3252
|
+
*
|
|
3253
|
+
* The existing service is read from the context. The updated service is
|
|
3254
|
+
* provided to the channel under the same key.
|
|
3255
|
+
*
|
|
3256
|
+
* @category services
|
|
2980
3257
|
* @since 2.0.0
|
|
2981
|
-
* @category Services
|
|
2982
3258
|
*/
|
|
2983
3259
|
export const updateService = /*#__PURE__*/dual(3, (self, service, f) => updateContext(self, context => Context.add(context, service, f(Context.get(context, service)))));
|
|
2984
3260
|
/**
|
|
2985
|
-
*
|
|
2986
|
-
*
|
|
3261
|
+
* Runs the channel inside a tracing span with the specified name and options.
|
|
3262
|
+
*
|
|
3263
|
+
* The created span is provided as the current parent span while the channel
|
|
3264
|
+
* runs. The span is ended with the channel's exit value.
|
|
3265
|
+
*
|
|
3266
|
+
* @category tracing
|
|
3267
|
+
* @since 2.0.0
|
|
2987
3268
|
*/
|
|
2988
3269
|
export const withSpan = function () {
|
|
2989
3270
|
const dataFirst = isChannel(arguments[0]);
|
|
@@ -3001,8 +3282,10 @@ const withSpanImpl = (self, name, options) => acquireUseRelease(Effect.makeSpan(
|
|
|
3001
3282
|
return endSpan(span, exit, clock, timingEnabled);
|
|
3002
3283
|
}));
|
|
3003
3284
|
/**
|
|
3004
|
-
*
|
|
3285
|
+
* The starting channel for Do notation, emitting an empty object.
|
|
3286
|
+
*
|
|
3005
3287
|
* @category Do notation
|
|
3288
|
+
* @since 4.0.0
|
|
3006
3289
|
*/
|
|
3007
3290
|
export const Do = /*#__PURE__*/succeed({});
|
|
3008
3291
|
const let_ = /*#__PURE__*/dual(3, (self, name, f) => map(self, elem => ({
|
|
@@ -3011,21 +3294,30 @@ const let_ = /*#__PURE__*/dual(3, (self, name, f) => map(self, elem => ({
|
|
|
3011
3294
|
})));
|
|
3012
3295
|
export {
|
|
3013
3296
|
/**
|
|
3014
|
-
* @since 4.0.0
|
|
3015
3297
|
* @category Do notation
|
|
3298
|
+
* @since 4.0.0
|
|
3016
3299
|
*/
|
|
3017
3300
|
let_ as let };
|
|
3018
3301
|
/**
|
|
3019
|
-
*
|
|
3302
|
+
* Adds a field to each object emitted by a channel by running another channel
|
|
3303
|
+
* derived from that object.
|
|
3304
|
+
*
|
|
3305
|
+
* The field name must not already exist on the emitted object. The derived
|
|
3306
|
+
* channel's output becomes the value of the new field. `options.concurrency`
|
|
3307
|
+
* and `options.bufferSize` control how derived channels are flattened.
|
|
3308
|
+
*
|
|
3020
3309
|
* @category Do notation
|
|
3310
|
+
* @since 4.0.0
|
|
3021
3311
|
*/
|
|
3022
3312
|
export const bind = /*#__PURE__*/dual(args => isChannel(args[0]), (self, name, f, options) => flatMap(self, elem => map(f(elem), b => ({
|
|
3023
3313
|
...elem,
|
|
3024
3314
|
[name]: b
|
|
3025
3315
|
})), options));
|
|
3026
3316
|
/**
|
|
3027
|
-
*
|
|
3317
|
+
* Wraps each output element in an object under the specified field name.
|
|
3318
|
+
*
|
|
3028
3319
|
* @category Do notation
|
|
3320
|
+
* @since 4.0.0
|
|
3029
3321
|
*/
|
|
3030
3322
|
export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
|
|
3031
3323
|
[name]: elem
|
|
@@ -3033,7 +3325,8 @@ export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
|
|
|
3033
3325
|
/**
|
|
3034
3326
|
* Runs a channel and counts the number of elements it outputs.
|
|
3035
3327
|
*
|
|
3036
|
-
*
|
|
3328
|
+
* **Example** (Counting channel output)
|
|
3329
|
+
*
|
|
3037
3330
|
* ```ts
|
|
3038
3331
|
* import { Channel, Data } from "effect"
|
|
3039
3332
|
*
|
|
@@ -3050,14 +3343,15 @@ export const bindTo = /*#__PURE__*/dual(2, (self, name) => map(self, elem => ({
|
|
|
3050
3343
|
* // Effect.runSync(countEffect) // Returns: 5
|
|
3051
3344
|
* ```
|
|
3052
3345
|
*
|
|
3053
|
-
* @since 2.0.0
|
|
3054
3346
|
* @category execution
|
|
3347
|
+
* @since 4.0.0
|
|
3055
3348
|
*/
|
|
3056
3349
|
export const runCount = self => runFold(self, () => 0, acc => acc + 1);
|
|
3057
3350
|
/**
|
|
3058
3351
|
* Runs a channel and discards all output elements, returning only the final result.
|
|
3059
3352
|
*
|
|
3060
|
-
*
|
|
3353
|
+
* **Example** (Draining channel output at runtime)
|
|
3354
|
+
*
|
|
3061
3355
|
* ```ts
|
|
3062
3356
|
* import { Channel, Data } from "effect"
|
|
3063
3357
|
*
|
|
@@ -3078,8 +3372,8 @@ export const runCount = self => runFold(self, () => 0, acc => acc + 1);
|
|
|
3078
3372
|
* // Effect.runSync(drainEffect) // Returns: "completed"
|
|
3079
3373
|
* ```
|
|
3080
3374
|
*
|
|
3081
|
-
* @since 2.0.0
|
|
3082
3375
|
* @category execution
|
|
3376
|
+
* @since 2.0.0
|
|
3083
3377
|
*/
|
|
3084
3378
|
export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
|
|
3085
3379
|
disableYield: true
|
|
@@ -3087,7 +3381,8 @@ export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
|
|
|
3087
3381
|
/**
|
|
3088
3382
|
* Runs a channel and applies an effect to each output element.
|
|
3089
3383
|
*
|
|
3090
|
-
*
|
|
3384
|
+
* **Example** (Running effects for each output)
|
|
3385
|
+
*
|
|
3091
3386
|
* ```ts
|
|
3092
3387
|
* import { Channel, Console, Data } from "effect"
|
|
3093
3388
|
*
|
|
@@ -3107,15 +3402,21 @@ export const runDrain = self => runWith(self, pull => Effect.forever(pull, {
|
|
|
3107
3402
|
* // Logs: "Processing: 1", "Processing: 2", "Processing: 3"
|
|
3108
3403
|
* ```
|
|
3109
3404
|
*
|
|
3110
|
-
* @since 2.0.0
|
|
3111
3405
|
* @category execution
|
|
3406
|
+
* @since 4.0.0
|
|
3112
3407
|
*/
|
|
3113
3408
|
export const runForEach = /*#__PURE__*/dual(2, (self, f) => runWith(self, pull => Effect.forever(Effect.flatMap(pull, f), {
|
|
3114
3409
|
disableYield: true
|
|
3115
3410
|
})));
|
|
3116
3411
|
/**
|
|
3117
|
-
*
|
|
3412
|
+
* Runs a channel and applies an effectful predicate to each output element
|
|
3413
|
+
* until the predicate returns `false`.
|
|
3414
|
+
*
|
|
3415
|
+
* Returning `true` continues consuming the channel. Returning `false` stops
|
|
3416
|
+
* consumption early. The returned effect completes with `void`.
|
|
3417
|
+
*
|
|
3118
3418
|
* @category execution
|
|
3419
|
+
* @since 4.0.0
|
|
3119
3420
|
*/
|
|
3120
3421
|
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
3422
|
disableYield: true
|
|
@@ -3123,7 +3424,8 @@ export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => runWith(self, p
|
|
|
3123
3424
|
/**
|
|
3124
3425
|
* Runs a channel and collects all output elements into an array.
|
|
3125
3426
|
*
|
|
3126
|
-
*
|
|
3427
|
+
* **Example** (Collecting channel output)
|
|
3428
|
+
*
|
|
3127
3429
|
* ```ts
|
|
3128
3430
|
* import { Channel, Data } from "effect"
|
|
3129
3431
|
*
|
|
@@ -3140,8 +3442,8 @@ export const runForEachWhile = /*#__PURE__*/dual(2, (self, f) => runWith(self, p
|
|
|
3140
3442
|
* // Effect.runSync(collectEffect) // Returns: [1, 2, 3, 4, 5]
|
|
3141
3443
|
* ```
|
|
3142
3444
|
*
|
|
3143
|
-
* @since 2.0.0
|
|
3144
3445
|
* @category execution
|
|
3446
|
+
* @since 2.0.0
|
|
3145
3447
|
*/
|
|
3146
3448
|
export const runCollect = self => runFold(self, () => [], (acc, o) => {
|
|
3147
3449
|
acc.push(o);
|
|
@@ -3150,13 +3452,19 @@ export const runCollect = self => runFold(self, () => [], (acc, o) => {
|
|
|
3150
3452
|
/**
|
|
3151
3453
|
* Runs a channel and outputs the done value.
|
|
3152
3454
|
*
|
|
3153
|
-
* @since 4.0.0
|
|
3154
3455
|
* @category execution
|
|
3456
|
+
* @since 4.0.0
|
|
3155
3457
|
*/
|
|
3156
3458
|
export const runDone = self => runWith(self, identity_, Effect.succeed);
|
|
3157
3459
|
/**
|
|
3158
|
-
*
|
|
3460
|
+
* Runs a channel until the first output element is available, returning it in
|
|
3461
|
+
* an `Option`.
|
|
3462
|
+
*
|
|
3463
|
+
* Returns `Option.some` with the first output element, or `Option.none` if the
|
|
3464
|
+
* channel completes without emitting output.
|
|
3465
|
+
*
|
|
3159
3466
|
* @category execution
|
|
3467
|
+
* @since 4.0.0
|
|
3160
3468
|
*/
|
|
3161
3469
|
export const runHead = self => Effect.suspend(() => {
|
|
3162
3470
|
let head = Option.none();
|
|
@@ -3166,8 +3474,14 @@ export const runHead = self => Effect.suspend(() => {
|
|
|
3166
3474
|
})), () => Effect.succeed(head));
|
|
3167
3475
|
});
|
|
3168
3476
|
/**
|
|
3169
|
-
*
|
|
3477
|
+
* Runs a channel to completion and returns the last output element in an
|
|
3478
|
+
* `Option`.
|
|
3479
|
+
*
|
|
3480
|
+
* Returns `Option.some` with the last emitted element, or `Option.none` if the
|
|
3481
|
+
* channel completes without emitting output.
|
|
3482
|
+
*
|
|
3170
3483
|
* @category execution
|
|
3484
|
+
* @since 4.0.0
|
|
3171
3485
|
*/
|
|
3172
3486
|
export const runLast = self => Effect.suspend(() => {
|
|
3173
3487
|
const absent = Symbol(); // Prevent boxing
|
|
@@ -3182,7 +3496,8 @@ export const runLast = self => Effect.suspend(() => {
|
|
|
3182
3496
|
/**
|
|
3183
3497
|
* Runs a channel and folds over all output elements with an accumulator.
|
|
3184
3498
|
*
|
|
3185
|
-
*
|
|
3499
|
+
* **Example** (Folding channel output)
|
|
3500
|
+
*
|
|
3186
3501
|
* ```ts
|
|
3187
3502
|
* import { Channel, Data } from "effect"
|
|
3188
3503
|
*
|
|
@@ -3199,8 +3514,8 @@ export const runLast = self => Effect.suspend(() => {
|
|
|
3199
3514
|
* // Effect.runSync(sumEffect) // Returns: 15
|
|
3200
3515
|
* ```
|
|
3201
3516
|
*
|
|
3202
|
-
* @since 2.0.0
|
|
3203
3517
|
* @category execution
|
|
3518
|
+
* @since 4.0.0
|
|
3204
3519
|
*/
|
|
3205
3520
|
export const runFold = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend(() => {
|
|
3206
3521
|
let state = initial();
|
|
@@ -3213,8 +3528,14 @@ export const runFold = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend
|
|
|
3213
3528
|
}), () => Effect.succeed(state));
|
|
3214
3529
|
}));
|
|
3215
3530
|
/**
|
|
3216
|
-
*
|
|
3531
|
+
* Runs a channel and effectfully folds all output elements with an accumulator.
|
|
3532
|
+
*
|
|
3533
|
+
* The initial accumulator is evaluated lazily. Each output element is passed to
|
|
3534
|
+
* the effectful accumulator function. The returned effect succeeds with the
|
|
3535
|
+
* final accumulator value.
|
|
3536
|
+
*
|
|
3217
3537
|
* @category execution
|
|
3538
|
+
* @since 4.0.0
|
|
3218
3539
|
*/
|
|
3219
3540
|
export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.suspend(() => {
|
|
3220
3541
|
let state = initial();
|
|
@@ -3227,9 +3548,14 @@ export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.s
|
|
|
3227
3548
|
}), () => Effect.succeed(state));
|
|
3228
3549
|
}));
|
|
3229
3550
|
/**
|
|
3230
|
-
* Converts a channel to a Pull
|
|
3551
|
+
* Converts a channel to a scoped `Pull` for low-level consumption.
|
|
3552
|
+
*
|
|
3553
|
+
* The effect requires a `Scope`. The returned pull should be consumed only
|
|
3554
|
+
* while that scope remains open. Pulls are serialized so only one pull is
|
|
3555
|
+
* evaluated at a time.
|
|
3556
|
+
*
|
|
3557
|
+
* **Example** (Converting channels to pulls)
|
|
3231
3558
|
*
|
|
3232
|
-
* @example
|
|
3233
3559
|
* ```ts
|
|
3234
3560
|
* import { Channel, Data, Effect } from "effect"
|
|
3235
3561
|
*
|
|
@@ -3248,8 +3574,8 @@ export const runFoldEffect = /*#__PURE__*/dual(3, (self, initial, f) => Effect.s
|
|
|
3248
3574
|
* // Use the Pull to manually consume elements
|
|
3249
3575
|
* ```
|
|
3250
3576
|
*
|
|
3577
|
+
* @category destructors
|
|
3251
3578
|
* @since 2.0.0
|
|
3252
|
-
* @category Destructors
|
|
3253
3579
|
*/
|
|
3254
3580
|
export const toPull = /*#__PURE__*/Effect.fnUntraced(function* (self) {
|
|
3255
3581
|
const semaphore = Semaphore.makeUnsafe(1);
|
|
@@ -3264,7 +3590,8 @@ Effect.catchCause(cause => Effect.succeed(Effect.failCause(cause))));
|
|
|
3264
3590
|
/**
|
|
3265
3591
|
* Converts a channel to a Pull within an existing scope.
|
|
3266
3592
|
*
|
|
3267
|
-
*
|
|
3593
|
+
* **Example** (Converting channels to scoped pulls)
|
|
3594
|
+
*
|
|
3268
3595
|
* ```ts
|
|
3269
3596
|
* import { Channel, Data, Effect, Scope } from "effect"
|
|
3270
3597
|
*
|
|
@@ -3283,13 +3610,19 @@ Effect.catchCause(cause => Effect.succeed(Effect.failCause(cause))));
|
|
|
3283
3610
|
* })
|
|
3284
3611
|
* ```
|
|
3285
3612
|
*
|
|
3613
|
+
* @category destructors
|
|
3286
3614
|
* @since 4.0.0
|
|
3287
|
-
* @category Destructors
|
|
3288
3615
|
*/
|
|
3289
3616
|
export const toPullScoped = (self, scope) => toTransform(self)(Cause.done(), scope);
|
|
3290
3617
|
/**
|
|
3618
|
+
* Runs a channel and offers each output element into a queue.
|
|
3619
|
+
*
|
|
3620
|
+
* When the channel completes, the queue is ended. When the channel fails, the
|
|
3621
|
+
* queue is failed with the channel's cause. The returned effect itself
|
|
3622
|
+
* completes with `void`.
|
|
3623
|
+
*
|
|
3624
|
+
* @category destructors
|
|
3291
3625
|
* @since 4.0.0
|
|
3292
|
-
* @category Destructors
|
|
3293
3626
|
*/
|
|
3294
3627
|
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
3628
|
if (Exit.isSuccess(exit)) {
|
|
@@ -3300,8 +3633,15 @@ export const runIntoQueue = /*#__PURE__*/dual(args => isChannel(args[0]), (self,
|
|
|
3300
3633
|
return Effect.void;
|
|
3301
3634
|
}))));
|
|
3302
3635
|
/**
|
|
3636
|
+
* Runs a channel that emits non-empty arrays and offers each array element into
|
|
3637
|
+
* a queue.
|
|
3638
|
+
*
|
|
3639
|
+
* When the channel completes, the queue is ended. When the channel fails, the
|
|
3640
|
+
* queue is failed with the channel's cause. The returned effect itself
|
|
3641
|
+
* completes with `void`.
|
|
3642
|
+
*
|
|
3643
|
+
* @category destructors
|
|
3303
3644
|
* @since 4.0.0
|
|
3304
|
-
* @category Destructors
|
|
3305
3645
|
*/
|
|
3306
3646
|
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
3647
|
if (Exit.isSuccess(exit)) {
|
|
@@ -3312,9 +3652,15 @@ export const runIntoQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), (
|
|
|
3312
3652
|
return Effect.void;
|
|
3313
3653
|
}))));
|
|
3314
3654
|
/**
|
|
3315
|
-
*
|
|
3655
|
+
* Creates a scoped queue and forks the channel to feed it for concurrent
|
|
3656
|
+
* consumption.
|
|
3657
|
+
*
|
|
3658
|
+
* Output elements are offered to the queue. Channel completion and failure are
|
|
3659
|
+
* signaled through the queue. The queue is shut down when the surrounding scope
|
|
3660
|
+
* closes.
|
|
3661
|
+
*
|
|
3662
|
+
* **Example** (Converting channels to queues)
|
|
3316
3663
|
*
|
|
3317
|
-
* @example
|
|
3318
3664
|
* ```ts
|
|
3319
3665
|
* import { Channel, Data } from "effect"
|
|
3320
3666
|
*
|
|
@@ -3332,8 +3678,8 @@ export const runIntoQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), (
|
|
|
3332
3678
|
* // Multiple consumers can read from the queue
|
|
3333
3679
|
* ```
|
|
3334
3680
|
*
|
|
3335
|
-
* @
|
|
3336
|
-
* @
|
|
3681
|
+
* @category destructors
|
|
3682
|
+
* @since 2.0.0
|
|
3337
3683
|
*/
|
|
3338
3684
|
export const toQueue = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3339
3685
|
const scope = yield* Effect.scope;
|
|
@@ -3346,8 +3692,14 @@ export const toQueue = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__
|
|
|
3346
3692
|
return queue;
|
|
3347
3693
|
}));
|
|
3348
3694
|
/**
|
|
3695
|
+
* Creates a scoped queue and forks an array-emitting channel to feed it.
|
|
3696
|
+
*
|
|
3697
|
+
* Each element inside emitted non-empty arrays is offered to the queue. Channel
|
|
3698
|
+
* completion and failure are signaled through the queue. The queue is shut down
|
|
3699
|
+
* when the surrounding scope closes.
|
|
3700
|
+
*
|
|
3701
|
+
* @category destructors
|
|
3349
3702
|
* @since 4.0.0
|
|
3350
|
-
* @category Destructors
|
|
3351
3703
|
*/
|
|
3352
3704
|
export const toQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3353
3705
|
const scope = yield* Effect.scope;
|
|
@@ -3365,8 +3717,8 @@ export const toQueueArray = /*#__PURE__*/dual(args => isChannel(args[0]), /*#__P
|
|
|
3365
3717
|
* `shutdownOnEnd` indicates whether the PubSub should be shut down when the
|
|
3366
3718
|
* channel ends. By default this is `true`.
|
|
3367
3719
|
*
|
|
3368
|
-
* @
|
|
3369
|
-
* @
|
|
3720
|
+
* @category destructors
|
|
3721
|
+
* @since 2.0.0
|
|
3370
3722
|
*/
|
|
3371
3723
|
export const toPubSub = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3372
3724
|
const pubsub = yield* makePubSub(options);
|
|
@@ -3376,19 +3728,26 @@ export const toPubSub = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(func
|
|
|
3376
3728
|
return pubsub;
|
|
3377
3729
|
}));
|
|
3378
3730
|
/**
|
|
3731
|
+
* Runs a channel and publishes each output element to a `PubSub`.
|
|
3732
|
+
*
|
|
3733
|
+
* The channel's output values are published as individual PubSub messages. Use
|
|
3734
|
+
* `options.shutdownOnEnd` to shut down the PubSub when channel execution ends.
|
|
3735
|
+
*
|
|
3736
|
+
* @category destructors
|
|
3379
3737
|
* @since 4.0.0
|
|
3380
|
-
* @category Destructors
|
|
3381
3738
|
*/
|
|
3382
3739
|
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
3740
|
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
3741
|
/**
|
|
3385
|
-
* Converts
|
|
3742
|
+
* Converts an array-emitting channel to a scoped `PubSub` for concurrent
|
|
3743
|
+
* consumption.
|
|
3386
3744
|
*
|
|
3387
|
-
*
|
|
3388
|
-
*
|
|
3745
|
+
* Each element inside emitted non-empty arrays is published as an individual
|
|
3746
|
+
* PubSub message. `shutdownOnEnd` indicates whether the PubSub should be shut
|
|
3747
|
+
* down when the channel ends. By default this is `true`.
|
|
3389
3748
|
*
|
|
3749
|
+
* @category destructors
|
|
3390
3750
|
* @since 4.0.0
|
|
3391
|
-
* @category Destructors
|
|
3392
3751
|
*/
|
|
3393
3752
|
export const toPubSubArray = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3394
3753
|
const pubsub = yield* makePubSub(options);
|
|
@@ -3398,15 +3757,26 @@ export const toPubSubArray = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced
|
|
|
3398
3757
|
return pubsub;
|
|
3399
3758
|
}));
|
|
3400
3759
|
/**
|
|
3760
|
+
* Runs an array-emitting channel and publishes each array element to a
|
|
3761
|
+
* `PubSub`.
|
|
3762
|
+
*
|
|
3763
|
+
* Each element inside emitted non-empty arrays is published as an individual
|
|
3764
|
+
* PubSub message. Use `options.shutdownOnEnd` to shut down the PubSub when
|
|
3765
|
+
* channel execution ends.
|
|
3766
|
+
*
|
|
3767
|
+
* @category destructors
|
|
3401
3768
|
* @since 4.0.0
|
|
3402
|
-
* @category Destructors
|
|
3403
3769
|
*/
|
|
3404
3770
|
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
3771
|
/**
|
|
3406
|
-
* Converts a channel to a PubSub
|
|
3772
|
+
* Converts a channel to a scoped `PubSub` of `Take` values.
|
|
3773
|
+
*
|
|
3774
|
+
* Emitted non-empty arrays are published as output `Take` values. When the
|
|
3775
|
+
* channel ends, its final `Exit` is published so subscribers can observe
|
|
3776
|
+
* completion or failure.
|
|
3407
3777
|
*
|
|
3778
|
+
* @category destructors
|
|
3408
3779
|
* @since 4.0.0
|
|
3409
|
-
* @category Destructors
|
|
3410
3780
|
*/
|
|
3411
3781
|
export const toPubSubTake = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, options) {
|
|
3412
3782
|
const pubsub = yield* makePubSub(options);
|