effect 4.0.0-beta.102 → 4.0.0-beta.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Array.d.ts +971 -1037
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +381 -407
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +433 -756
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +200 -325
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +207 -267
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +107 -135
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +146 -188
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +64 -84
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +405 -254
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +166 -101
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +167 -277
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +122 -176
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +729 -768
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +514 -440
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +834 -1173
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +326 -439
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +180 -49
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +96 -31
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +20 -33
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +18 -30
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +225 -173
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +336 -265
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +194 -68
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +115 -80
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +233 -33
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +232 -32
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +151 -274
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +171 -214
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +68 -77
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +57 -66
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +13 -15
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +9 -10
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +60 -80
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +16 -23
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +562 -660
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +307 -362
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +253 -256
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +104 -96
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +216 -308
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +132 -186
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2841 -3247
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1322 -1546
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +22 -40
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +22 -40
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +33 -37
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +29 -21
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +103 -105
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +77 -79
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +51 -27
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +50 -26
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +13 -55
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +7 -28
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +116 -192
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +82 -130
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +82 -146
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +48 -87
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +152 -105
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +106 -73
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +213 -168
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +114 -89
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +123 -81
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +85 -59
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +153 -264
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +42 -147
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +61 -33
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +26 -15
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +25 -33
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +48 -49
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +76 -145
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +40 -57
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +360 -714
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +168 -297
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +12 -6
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +47 -83
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +46 -68
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +319 -411
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +122 -166
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +1 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +177 -284
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +68 -109
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +12 -12
- package/dist/Inspectable.js +8 -8
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +620 -786
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +228 -306
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +11 -13
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +44 -102
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +8 -8
- package/dist/JsonPointer.js +8 -8
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +98 -44
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +297 -234
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +23 -35
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +16 -28
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +359 -260
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +195 -175
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +42 -29
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +31 -21
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +6 -2
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +6 -2
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +114 -214
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +41 -76
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +218 -467
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +204 -450
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +7 -5
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +7 -5
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +217 -252
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +150 -183
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +442 -993
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +198 -642
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +144 -173
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +68 -79
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +84 -89
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +44 -47
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +71 -370
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +59 -284
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +420 -243
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +209 -120
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +21 -14
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +15 -13
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +7 -137
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +5 -93
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +196 -233
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +90 -109
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +97 -189
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +187 -290
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +447 -812
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +211 -392
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +109 -109
- package/dist/Order.js +91 -91
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +20 -23
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +8 -9
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +38 -41
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +3 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +6 -5
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +2 -2
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +4 -4
- package/dist/PlatformError.js +3 -3
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +4 -2
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +4 -2
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +200 -181
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +100 -108
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +7 -7
- package/dist/PrimaryKey.js +5 -5
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +425 -494
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +373 -362
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +24 -18
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +11 -9
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +200 -159
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +162 -132
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +49 -74
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +35 -54
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +121 -63
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +42 -21
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +24 -13
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +15 -9
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +291 -488
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +111 -202
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -2
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +7 -2
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +25 -25
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +19 -20
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +8 -15
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +6 -12
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +95 -165
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +75 -122
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +102 -168
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +102 -168
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +10 -14
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +10 -14
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +31 -21
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +16 -13
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +201 -90
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +87 -41
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +302 -470
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +133 -217
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +50 -75
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +39 -60
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +290 -1636
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +162 -803
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +5 -5
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +18 -6
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +644 -642
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +491 -527
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +27 -50
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +366 -279
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaError.d.ts +7 -6
- package/dist/SchemaError.d.ts.map +1 -1
- package/dist/SchemaError.js +7 -6
- package/dist/SchemaError.js.map +1 -1
- package/dist/SchemaGetter.d.ts +217 -174
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +218 -185
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +62 -190
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +73 -265
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +2 -2
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +123 -75
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +22 -36
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +20 -26
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +114 -74
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +120 -85
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +123 -151
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +72 -92
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +3 -3
- package/dist/ScopedRef.js +2 -2
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +96 -10
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +78 -39
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +117 -107
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +107 -100
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +1 -1
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +2415 -2949
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1078 -1381
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +262 -308
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +184 -215
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +109 -114
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +41 -50
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +282 -250
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +104 -92
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +3 -3
- package/dist/Symbol.js +3 -3
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +2 -2
- package/dist/Terminal.js +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +100 -54
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +41 -24
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +287 -679
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +109 -251
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +92 -127
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +42 -57
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +201 -121
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +85 -56
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +62 -46
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +30 -22
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +631 -779
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +268 -330
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +297 -236
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +130 -100
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +126 -95
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +74 -56
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +101 -88
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +87 -66
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +200 -180
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +160 -136
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +97 -66
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +67 -45
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +51 -32
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +23 -15
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +129 -95
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +85 -70
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +97 -70
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +44 -34
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +126 -67
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +45 -65
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +6 -9
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +23 -16
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +3 -7
- package/dist/Utils.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/array.js.map +1 -1
- package/dist/internal/core.js +1 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +4 -0
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/doNotation.js.map +1 -1
- package/dist/internal/effect.js +77 -40
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hashSet.js.map +1 -1
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/metric.js.map +1 -1
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/persistence.d.ts +2 -0
- package/dist/internal/persistence.d.ts.map +1 -0
- package/dist/internal/persistence.js +3 -0
- package/dist/internal/persistence.js.map +1 -0
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/redacted.js.map +1 -1
- package/dist/internal/references.js +3 -0
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/result.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/cause.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +8 -15
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/parser.d.ts +14 -0
- package/dist/internal/schema/parser.d.ts.map +1 -0
- package/dist/internal/schema/parser.js +13 -0
- package/dist/internal/schema/parser.js.map +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/toArbitrary.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toEquivalence.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +87 -107
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/stackTraceLimit.js.map +1 -1
- package/dist/internal/stream.js.map +1 -1
- package/dist/internal/tracer.js.map +1 -1
- package/dist/internal/trie.js +13 -9
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +8 -7
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +8 -7
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +57 -28
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +50 -18
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +32 -31
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +24 -22
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +29 -29
- package/dist/testing/TestSchema.js +25 -25
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +95 -118
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +94 -117
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +132 -97
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +55 -51
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +32 -28
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +26 -21
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +107 -67
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +104 -64
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpProtocol.d.ts +30 -0
- package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/McpProtocol.js +20 -0
- package/dist/unstable/ai/McpProtocol.js.map +1 -0
- package/dist/unstable/ai/McpSchema.d.ts +141 -75
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +58 -50
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +68 -59
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +694 -241
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +8 -19
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +9 -20
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +112 -38
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +53 -17
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +28 -14
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +9 -4
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +46 -13
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +18 -7
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +14 -3
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +10 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +59 -44
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +48 -39
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +26 -8
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +18 -4
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +4 -0
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +4 -0
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
- package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
- package/dist/unstable/ai/internal/structured-output.js +14 -15
- package/dist/unstable/ai/internal/structured-output.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +273 -69
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +111 -33
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliConfig.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +69 -76
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +57 -61
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +35 -54
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +26 -42
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +705 -107
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +238 -42
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +418 -138
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +197 -71
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +12 -4
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +292 -78
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +128 -46
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +370 -149
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +344 -136
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +23 -14
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +23 -14
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
- package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/lexer.js +17 -7
- package/dist/unstable/cli/internal/lexer.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +2 -2
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
- package/dist/unstable/cluster/ClusterSchema.js +8 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +5 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -10
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +8 -8
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityId.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +4 -2
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/EntityType.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/Envelope.js +3 -3
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +6 -4
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MachineId.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +9 -9
- package/dist/unstable/cluster/Message.js +6 -6
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
- package/dist/unstable/cluster/MessageStorage.js +5 -5
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +4 -4
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +1 -1
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +16 -16
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
- package/dist/unstable/cluster/RunnerStorage.js +1 -1
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +6 -6
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +19 -10
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +3 -2
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
- package/dist/unstable/cluster/ShardingConfig.js +3 -3
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/Singleton.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +1 -1
- package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +8 -8
- package/dist/unstable/cluster/Snowflake.js +8 -8
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -5
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/hash.js.map +1 -1
- package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/devtools/index.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +6 -8
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +72 -8
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +58 -8
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +20 -20
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +15 -15
- package/dist/unstable/eventlog/EventJournal.js +13 -13
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +3 -3
- package/dist/unstable/eventlog/EventLog.js +3 -3
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogMessage.js +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
- package/dist/unstable/eventlog/EventLogRemote.js +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +45 -21
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +2 -2
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +30 -18
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +1 -1
- package/dist/unstable/http/Etag.js +1 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +2 -2
- package/dist/unstable/http/Headers.js +2 -2
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +5 -3
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +11 -5
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +51 -44
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +46 -17
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +2 -0
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
- package/dist/unstable/http/HttpClientResponse.js +2 -2
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +6 -6
- package/dist/unstable/http/HttpEffect.js +3 -3
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +6 -9
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +6 -9
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +164 -39
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +76 -0
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +32 -0
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +88 -89
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +78 -79
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +13 -13
- package/dist/unstable/http/HttpServer.js +6 -6
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +2 -2
- package/dist/unstable/http/HttpServerError.js +2 -2
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
- package/dist/unstable/http/HttpServerRequest.js +4 -4
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +10 -0
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +35 -7
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +6 -6
- package/dist/unstable/http/Multipart.js +5 -5
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +33 -63
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +14 -28
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +10 -18
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +9 -17
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/compression.d.ts +2 -0
- package/dist/unstable/http/internal/compression.d.ts.map +1 -0
- package/dist/unstable/http/internal/compression.js +155 -0
- package/dist/unstable/http/internal/compression.js.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +11 -13
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
- package/dist/unstable/httpapi/HttpApiError.js +13 -13
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
- package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
- package/dist/unstable/httpapi/OpenApi.js +13 -13
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/httpapi/index.js.map +1 -1
- package/dist/unstable/httpapi/internal/html.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +12 -14
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +17 -4
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +16 -7
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +21 -12
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +10 -3
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
- package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +3 -0
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +22 -13
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +8 -8
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
- package/dist/unstable/persistence/PersistedQueue.js +6 -6
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +3 -3
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +91 -15
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +26 -15
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +24 -13
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +2 -2
- package/dist/unstable/persistence/Redis.js +1 -1
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/persistence/index.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +64 -21
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +14 -5
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/process/index.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +10 -10
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +25 -22
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +14 -13
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +24 -3
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +4 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +1 -1
- package/dist/unstable/reactivity/Hydration.js +1 -1
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +35 -33
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +12 -12
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +12 -11
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
- package/dist/unstable/rpc/RpcGroup.js +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +6 -6
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
- package/dist/unstable/rpc/RpcMiddleware.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
- package/dist/unstable/rpc/RpcSchema.js +3 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +175 -96
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +13 -13
- package/dist/unstable/rpc/RpcServer.js +17 -13
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcTest.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +52 -50
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +35 -33
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +5 -5
- package/dist/unstable/schema/VariantSchema.js +2 -2
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +11 -3
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +9 -4
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +2 -2
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.js +2 -2
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +5 -5
- package/dist/unstable/sql/SqlResolver.js +2 -2
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +6 -6
- package/dist/unstable/sql/Statement.js +15 -15
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +1 -1
- package/dist/unstable/workers/Transferable.js +1 -1
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +2 -2
- package/dist/unstable/workers/Worker.js +2 -2
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +7 -7
- package/dist/unstable/workers/WorkerError.js +6 -6
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
- package/dist/unstable/workers/WorkerRunner.js +1 -1
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workers/index.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +2 -2
- package/dist/unstable/workflow/Activity.js +2 -2
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +1 -1
- package/dist/unstable/workflow/DurableClock.js +1 -1
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
- package/dist/unstable/workflow/DurableDeferred.js +5 -5
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +22 -20
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +21 -21
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +13 -14
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +4 -2
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/dist/unstable/workflow/index.js.map +1 -1
- package/dist/unstable/workflow/internal/crypto.js.map +1 -1
- package/package.json +5 -6
- package/src/Array.ts +982 -1045
- package/src/BigDecimal.ts +433 -756
- package/src/BigInt.ts +213 -269
- package/src/Boolean.ts +146 -188
- package/src/Cache.ts +409 -255
- package/src/Cause.ts +167 -277
- package/src/Channel.ts +891 -816
- package/src/ChannelSchema.ts +1 -1
- package/src/Chunk.ts +841 -1181
- package/src/Clock.ts +181 -49
- package/src/Combiner.ts +20 -33
- package/src/Config.ts +615 -332
- package/src/ConfigProvider.ts +214 -120
- package/src/Console.ts +289 -39
- package/src/Context.ts +319 -378
- package/src/Cron.ts +68 -77
- package/src/Crypto.ts +13 -15
- package/src/Data.ts +60 -80
- package/src/DateTime.ts +564 -660
- package/src/Deferred.ts +253 -256
- package/src/Duration.ts +216 -308
- package/src/Effect.ts +2893 -3279
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +49 -39
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +51 -27
- package/src/ExecutionPlan.ts +13 -55
- package/src/Exit.ts +116 -192
- package/src/Fiber.ts +81 -148
- package/src/FiberHandle.ts +152 -105
- package/src/FiberMap.ts +225 -174
- package/src/FiberSet.ts +124 -82
- package/src/FileSystem.ts +155 -263
- package/src/Filter.ts +61 -33
- package/src/Formatter.ts +54 -56
- package/src/Function.ts +76 -145
- package/src/Graph.ts +416 -770
- package/src/HKT.ts +12 -6
- package/src/Hash.ts +52 -83
- package/src/HashMap.ts +319 -411
- package/src/HashRing.ts +1 -0
- package/src/HashSet.ts +177 -284
- package/src/Inspectable.ts +12 -12
- package/src/Iterable.ts +620 -786
- package/src/JsonPatch.ts +58 -112
- package/src/JsonPointer.ts +8 -8
- package/src/JsonSchema.ts +402 -244
- package/src/Latch.ts +23 -35
- package/src/Layer.ts +359 -260
- package/src/LayerMap.ts +49 -29
- package/src/LayerRef.ts +6 -2
- package/src/LogLevel.ts +114 -214
- package/src/Logger.ts +344 -697
- package/src/ManagedRuntime.ts +7 -5
- package/src/Match.ts +217 -252
- package/src/Metric.ts +516 -1089
- package/src/MutableHashMap.ts +218 -255
- package/src/MutableHashSet.ts +84 -89
- package/src/MutableList.ts +73 -370
- package/src/MutableRef.ts +420 -243
- package/src/Newtype.ts +21 -14
- package/src/NonEmptyIterable.ts +7 -137
- package/src/Number.ts +196 -233
- package/src/Optic.ts +243 -383
- package/src/Option.ts +447 -812
- package/src/Order.ts +109 -109
- package/src/Ordering.ts +20 -23
- package/src/Path.ts +38 -41
- package/src/Pipeable.ts +6 -5
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +4 -2
- package/src/Predicate.ts +200 -181
- package/src/PrimaryKey.ts +7 -7
- package/src/PubSub.ts +526 -552
- package/src/Pull.ts +24 -18
- package/src/Queue.ts +200 -159
- package/src/Random.ts +49 -74
- package/src/RcMap.ts +121 -63
- package/src/RcRef.ts +24 -13
- package/src/Record.ts +291 -488
- package/src/Redactable.ts +10 -3
- package/src/Redacted.ts +25 -25
- package/src/Reducer.ts +8 -15
- package/src/Ref.ts +221 -361
- package/src/References.ts +102 -168
- package/src/RegExp.ts +10 -14
- package/src/Request.ts +31 -21
- package/src/RequestResolver.ts +202 -91
- package/src/Result.ts +312 -484
- package/src/Runtime.ts +50 -75
- package/src/Schedule.ts +308 -1734
- package/src/Scheduler.ts +20 -7
- package/src/Schema.ts +716 -745
- package/src/SchemaAST.ts +466 -358
- package/src/SchemaError.ts +7 -6
- package/src/SchemaGetter.ts +242 -190
- package/src/SchemaIssue.ts +89 -275
- package/src/SchemaParser.ts +180 -93
- package/src/SchemaRepresentation.ts +22 -40
- package/src/SchemaTransformation.ts +129 -88
- package/src/Scope.ts +123 -151
- package/src/ScopedRef.ts +4 -4
- package/src/Semaphore.ts +152 -51
- package/src/Sink.ts +128 -113
- package/src/Stdio.ts +1 -1
- package/src/Stream.ts +2602 -3123
- package/src/String.ts +275 -312
- package/src/Struct.ts +109 -114
- package/src/SubscriptionRef.ts +284 -252
- package/src/Symbol.ts +3 -3
- package/src/Terminal.ts +2 -2
- package/src/Tracer.ts +102 -55
- package/src/Trie.ts +287 -679
- package/src/Tuple.ts +92 -127
- package/src/TxChunk.ts +201 -121
- package/src/TxDeferred.ts +62 -46
- package/src/TxHashMap.ts +645 -799
- package/src/TxHashSet.ts +443 -356
- package/src/TxPriorityQueue.ts +130 -98
- package/src/TxPubSub.ts +107 -80
- package/src/TxQueue.ts +214 -183
- package/src/TxReentrantLock.ts +97 -66
- package/src/TxRef.ts +51 -32
- package/src/TxSemaphore.ts +129 -95
- package/src/TxSubscriptionRef.ts +97 -70
- package/src/Types.ts +126 -67
- package/src/Unify.ts +45 -65
- package/src/Utils.ts +23 -16
- package/src/internal/core.ts +2 -2
- package/src/internal/dateTime.ts +6 -0
- package/src/internal/effect.ts +93 -48
- package/src/internal/persistence.ts +2 -0
- package/src/internal/references.ts +3 -2
- package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
- package/src/internal/schema/fromRepresentation.ts +10 -16
- package/src/internal/schema/parser.ts +22 -0
- package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
- package/src/internal/schema/toRepresentation.ts +104 -119
- package/src/internal/trie.ts +10 -11
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +72 -30
- package/src/testing/TestConsole.ts +32 -31
- package/src/testing/TestSchema.ts +29 -29
- package/src/unstable/ai/AiError.ts +95 -118
- package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
- package/src/unstable/ai/Chat.ts +132 -97
- package/src/unstable/ai/IdGenerator.ts +32 -28
- package/src/unstable/ai/LanguageModel.ts +107 -67
- package/src/unstable/ai/McpProtocol.ts +48 -0
- package/src/unstable/ai/McpSchema.ts +60 -50
- package/src/unstable/ai/McpServer.ts +930 -304
- package/src/unstable/ai/Model.ts +9 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
- package/src/unstable/ai/Prompt.ts +145 -43
- package/src/unstable/ai/Response.ts +28 -14
- package/src/unstable/ai/Telemetry.ts +46 -13
- package/src/unstable/ai/Tokenizer.ts +14 -3
- package/src/unstable/ai/Tool.ts +59 -44
- package/src/unstable/ai/Toolkit.ts +26 -8
- package/src/unstable/ai/index.ts +5 -0
- package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
- package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
- package/src/unstable/ai/internal/structured-output.ts +13 -18
- package/src/unstable/cli/Argument.ts +273 -69
- package/src/unstable/cli/CliError.ts +69 -76
- package/src/unstable/cli/CliOutput.ts +44 -58
- package/src/unstable/cli/Command.ts +705 -107
- package/src/unstable/cli/Flag.ts +418 -138
- package/src/unstable/cli/GlobalFlag.ts +1 -1
- package/src/unstable/cli/HelpDoc.ts +12 -4
- package/src/unstable/cli/Param.ts +292 -78
- package/src/unstable/cli/Primitive.ts +370 -149
- package/src/unstable/cli/Prompt.ts +28 -14
- package/src/unstable/cli/internal/lexer.ts +8 -2
- package/src/unstable/cli/internal/parser.ts +2 -2
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -1
- package/src/unstable/cluster/Entity.ts +15 -16
- package/src/unstable/cluster/EntityProxy.ts +4 -2
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/Envelope.ts +3 -3
- package/src/unstable/cluster/HttpRunner.ts +6 -4
- package/src/unstable/cluster/Message.ts +9 -9
- package/src/unstable/cluster/MessageStorage.ts +15 -15
- package/src/unstable/cluster/Reply.ts +4 -6
- package/src/unstable/cluster/RunnerHealth.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +41 -8
- package/src/unstable/cluster/RunnerStorage.ts +2 -2
- package/src/unstable/cluster/Runners.ts +23 -12
- package/src/unstable/cluster/Sharding.ts +7 -8
- package/src/unstable/cluster/ShardingConfig.ts +3 -3
- package/src/unstable/cluster/SingletonAddress.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +8 -8
- package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
- package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
- package/src/unstable/cluster/internal/entityManager.ts +11 -15
- package/src/unstable/encoding/Msgpack.ts +6 -8
- package/src/unstable/encoding/Sse.ts +98 -16
- package/src/unstable/eventlog/Event.ts +20 -20
- package/src/unstable/eventlog/EventGroup.ts +4 -4
- package/src/unstable/eventlog/EventJournal.ts +15 -15
- package/src/unstable/eventlog/EventLog.ts +3 -3
- package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
- package/src/unstable/eventlog/EventLogMessage.ts +2 -2
- package/src/unstable/eventlog/EventLogRemote.ts +1 -1
- package/src/unstable/eventlog/EventLogServer.ts +41 -7
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/http/Cookies.ts +35 -21
- package/src/unstable/http/Etag.ts +1 -1
- package/src/unstable/http/FetchHttpClient.ts +3 -1
- package/src/unstable/http/Headers.ts +2 -2
- package/src/unstable/http/HttpBody.ts +20 -5
- package/src/unstable/http/HttpClient.ts +83 -55
- package/src/unstable/http/HttpClientRequest.ts +2 -0
- package/src/unstable/http/HttpClientResponse.ts +4 -4
- package/src/unstable/http/HttpEffect.ts +8 -8
- package/src/unstable/http/HttpMethod.ts +6 -9
- package/src/unstable/http/HttpMiddleware.ts +202 -39
- package/src/unstable/http/HttpPlatform.ts +95 -0
- package/src/unstable/http/HttpRouter.ts +102 -98
- package/src/unstable/http/HttpServer.ts +13 -13
- package/src/unstable/http/HttpServerError.ts +2 -2
- package/src/unstable/http/HttpServerRequest.ts +4 -4
- package/src/unstable/http/HttpServerResponse.ts +30 -0
- package/src/unstable/http/HttpStaticServer.ts +35 -7
- package/src/unstable/http/Multipart.ts +6 -6
- package/src/unstable/http/Url.ts +33 -63
- package/src/unstable/http/UrlParams.ts +10 -18
- package/src/unstable/http/internal/compression.ts +196 -0
- package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
- package/src/unstable/httpapi/HttpApiClient.ts +14 -14
- package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
- package/src/unstable/httpapi/HttpApiError.ts +13 -13
- package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
- package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
- package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
- package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
- package/src/unstable/httpapi/OpenApi.ts +13 -13
- package/src/unstable/observability/OtlpExporter.ts +31 -19
- package/src/unstable/observability/OtlpMetrics.ts +4 -1
- package/src/unstable/observability/OtlpResource.ts +26 -17
- package/src/unstable/observability/PrometheusMetrics.ts +13 -4
- package/src/unstable/observability/internal/otlpEnv.ts +1 -1
- package/src/unstable/observability/internal/protobuf.ts +3 -0
- package/src/unstable/persistence/KeyValueStore.ts +72 -49
- package/src/unstable/persistence/Persistable.ts +8 -8
- package/src/unstable/persistence/PersistedQueue.ts +6 -6
- package/src/unstable/persistence/Persistence.ts +126 -19
- package/src/unstable/persistence/RateLimiter.ts +26 -15
- package/src/unstable/persistence/Redis.ts +2 -2
- package/src/unstable/process/ChildProcess.ts +64 -21
- package/src/unstable/process/ChildProcessSpawner.ts +21 -10
- package/src/unstable/reactivity/AsyncResult.ts +12 -13
- package/src/unstable/reactivity/Atom.ts +28 -25
- package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
- package/src/unstable/reactivity/AtomRegistry.ts +24 -3
- package/src/unstable/reactivity/AtomRpc.ts +5 -4
- package/src/unstable/reactivity/Hydration.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +35 -33
- package/src/unstable/rpc/RpcClient.ts +16 -15
- package/src/unstable/rpc/RpcGroup.ts +8 -8
- package/src/unstable/rpc/RpcMessage.ts +31 -30
- package/src/unstable/rpc/RpcMiddleware.ts +10 -10
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +167 -68
- package/src/unstable/rpc/RpcServer.ts +18 -15
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/schema/Model.ts +52 -50
- package/src/unstable/schema/VariantSchema.ts +5 -5
- package/src/unstable/socket/Socket.ts +17 -4
- package/src/unstable/sql/SqlClient.ts +5 -6
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +5 -5
- package/src/unstable/sql/Statement.ts +24 -23
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +2 -2
- package/src/unstable/workers/WorkerError.ts +7 -7
- package/src/unstable/workers/WorkerRunner.ts +1 -1
- package/src/unstable/workflow/Activity.ts +2 -2
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +10 -10
- package/src/unstable/workflow/DurableQueue.ts +22 -20
- package/src/unstable/workflow/Workflow.ts +23 -23
- package/src/unstable/workflow/WorkflowEngine.ts +1 -1
- package/src/unstable/workflow/WorkflowProxy.ts +4 -2
- package/dist/internal/version.d.ts +0 -3
- package/dist/internal/version.d.ts.map +0 -1
- package/dist/internal/version.js +0 -2
- package/dist/internal/version.js.map +0 -1
- package/src/internal/version.ts +0 -2
package/dist/Layer.d.ts
CHANGED
|
@@ -171,7 +171,7 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
|
171
171
|
*
|
|
172
172
|
* **Example** (Sharing layer construction with a memo map)
|
|
173
173
|
*
|
|
174
|
-
* ```ts
|
|
174
|
+
* ```ts import.meta.vitest
|
|
175
175
|
* import { Context, Effect, Layer } from "effect"
|
|
176
176
|
*
|
|
177
177
|
* class Database extends Context.Service<Database, {
|
|
@@ -190,6 +190,9 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
|
190
190
|
*
|
|
191
191
|
* return Context.get(context, Database)
|
|
192
192
|
* })
|
|
193
|
+
*
|
|
194
|
+
* const database = Effect.runSync(Effect.scoped(program))
|
|
195
|
+
* Effect.runSync(database.query("SELECT 1")) // => "result"
|
|
193
196
|
* ```
|
|
194
197
|
*
|
|
195
198
|
* @category models
|
|
@@ -205,7 +208,7 @@ export interface MemoMap {
|
|
|
205
208
|
*
|
|
206
209
|
* **Example** (Checking whether a value is a layer)
|
|
207
210
|
*
|
|
208
|
-
* ```ts
|
|
211
|
+
* ```ts import.meta.vitest
|
|
209
212
|
* import { Context, Effect, Layer } from "effect"
|
|
210
213
|
*
|
|
211
214
|
* class Database extends Context.Service<Database, {
|
|
@@ -217,11 +220,11 @@ export interface MemoMap {
|
|
|
217
220
|
* })
|
|
218
221
|
* const notALayer = { someProperty: "value" }
|
|
219
222
|
*
|
|
220
|
-
*
|
|
221
|
-
*
|
|
223
|
+
* Layer.isLayer(dbLayer) // => true
|
|
224
|
+
* Layer.isLayer(notALayer) // => false
|
|
222
225
|
* ```
|
|
223
226
|
*
|
|
224
|
-
* @category
|
|
227
|
+
* @category guards
|
|
225
228
|
* @since 2.0.0
|
|
226
229
|
*/
|
|
227
230
|
export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unknown>;
|
|
@@ -236,7 +239,7 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
|
|
|
236
239
|
*
|
|
237
240
|
* **Example** (Constructing a layer from a build function)
|
|
238
241
|
*
|
|
239
|
-
* ```ts
|
|
242
|
+
* ```ts import.meta.vitest
|
|
240
243
|
* import { Context, Effect, Layer } from "effect"
|
|
241
244
|
*
|
|
242
245
|
* class Database extends Context.Service<Database, {
|
|
@@ -250,6 +253,9 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
|
|
|
250
253
|
* })
|
|
251
254
|
* )
|
|
252
255
|
* )
|
|
256
|
+
*
|
|
257
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
258
|
+
* Effect.runSync(Effect.provide(program, databaseLayer)) // => "result"
|
|
253
259
|
* ```
|
|
254
260
|
*
|
|
255
261
|
* @category constructors
|
|
@@ -267,7 +273,7 @@ export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope:
|
|
|
267
273
|
*
|
|
268
274
|
* **Example** (Memoizing layer construction)
|
|
269
275
|
*
|
|
270
|
-
* ```ts
|
|
276
|
+
* ```ts import.meta.vitest
|
|
271
277
|
* import { Context, Effect, Layer } from "effect"
|
|
272
278
|
*
|
|
273
279
|
* class Database extends Context.Service<Database, {
|
|
@@ -281,6 +287,9 @@ export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope:
|
|
|
281
287
|
* })
|
|
282
288
|
* )
|
|
283
289
|
* )
|
|
290
|
+
*
|
|
291
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
292
|
+
* Effect.runSync(Effect.provide(program, databaseLayer)) // => "result"
|
|
284
293
|
* ```
|
|
285
294
|
*
|
|
286
295
|
* @category constructors
|
|
@@ -292,7 +301,7 @@ export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, sco
|
|
|
292
301
|
*
|
|
293
302
|
* **Example** (Creating a memo map unsafely)
|
|
294
303
|
*
|
|
295
|
-
* ```ts
|
|
304
|
+
* ```ts import.meta.vitest
|
|
296
305
|
* import { Context, Effect, Layer } from "effect"
|
|
297
306
|
*
|
|
298
307
|
* class Database extends Context.Service<Database, {
|
|
@@ -311,9 +320,12 @@ export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, sco
|
|
|
311
320
|
*
|
|
312
321
|
* return Context.get(context, Database)
|
|
313
322
|
* })
|
|
323
|
+
*
|
|
324
|
+
* const database = Effect.runSync(Effect.scoped(program))
|
|
325
|
+
* Effect.runSync(database.query("SELECT 1")) // => "result"
|
|
314
326
|
* ```
|
|
315
327
|
*
|
|
316
|
-
* @category
|
|
328
|
+
* @category constructors
|
|
317
329
|
* @since 4.0.0
|
|
318
330
|
*/
|
|
319
331
|
export declare const makeMemoMapUnsafe: () => MemoMap;
|
|
@@ -331,7 +343,7 @@ export declare const makeMemoMapUnsafe: () => MemoMap;
|
|
|
331
343
|
* @see {@link forkMemoMap} for allocating the child memo map inside `Effect`
|
|
332
344
|
* @see {@link makeMemoMapUnsafe} for creating a root memo map without a parent
|
|
333
345
|
*
|
|
334
|
-
* @category
|
|
346
|
+
* @category constructors
|
|
335
347
|
* @since 4.0.0
|
|
336
348
|
*/
|
|
337
349
|
export declare const forkMemoMapUnsafe: (parent: MemoMap) => MemoMap;
|
|
@@ -340,7 +352,7 @@ export declare const forkMemoMapUnsafe: (parent: MemoMap) => MemoMap;
|
|
|
340
352
|
*
|
|
341
353
|
* **Example** (Creating a memo map in an effect)
|
|
342
354
|
*
|
|
343
|
-
* ```ts
|
|
355
|
+
* ```ts import.meta.vitest
|
|
344
356
|
* import { Context, Effect, Layer } from "effect"
|
|
345
357
|
*
|
|
346
358
|
* class Database extends Context.Service<Database, {
|
|
@@ -359,9 +371,12 @@ export declare const forkMemoMapUnsafe: (parent: MemoMap) => MemoMap;
|
|
|
359
371
|
*
|
|
360
372
|
* return Context.get(context, Database)
|
|
361
373
|
* })
|
|
374
|
+
*
|
|
375
|
+
* const database = Effect.runSync(Effect.scoped(program))
|
|
376
|
+
* Effect.runSync(database.query("SELECT 1")) // => "result"
|
|
362
377
|
* ```
|
|
363
378
|
*
|
|
364
|
-
* @category
|
|
379
|
+
* @category constructors
|
|
365
380
|
* @since 2.0.0
|
|
366
381
|
*/
|
|
367
382
|
export declare const makeMemoMap: Effect<MemoMap>;
|
|
@@ -379,7 +394,7 @@ export declare const makeMemoMap: Effect<MemoMap>;
|
|
|
379
394
|
* @see {@link forkMemoMapUnsafe} for the synchronous constructor variant
|
|
380
395
|
* @see {@link buildWithMemoMap} for building layers with an explicit memo map
|
|
381
396
|
*
|
|
382
|
-
* @category
|
|
397
|
+
* @category constructors
|
|
383
398
|
* @since 4.0.0
|
|
384
399
|
*/
|
|
385
400
|
export declare const forkMemoMap: (parent: MemoMap) => Effect<MemoMap>;
|
|
@@ -399,7 +414,7 @@ declare const CurrentMemoMap_base: Context.ServiceClass<CurrentMemoMap, "effect/
|
|
|
399
414
|
*
|
|
400
415
|
* @see {@link MemoMap} the memoization map type wrapped by this service
|
|
401
416
|
*
|
|
402
|
-
* @category
|
|
417
|
+
* @category services
|
|
403
418
|
* @since 3.13.0
|
|
404
419
|
*/
|
|
405
420
|
export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
@@ -411,7 +426,7 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
|
411
426
|
*
|
|
412
427
|
* **Example** (Building layers with an explicit memo map)
|
|
413
428
|
*
|
|
414
|
-
* ```ts
|
|
429
|
+
* ```ts import.meta.vitest
|
|
415
430
|
* import { Context, Effect, Layer } from "effect"
|
|
416
431
|
*
|
|
417
432
|
* class Database extends Context.Service<Database, {
|
|
@@ -422,6 +437,8 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
|
422
437
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
423
438
|
* }>()("Logger") {}
|
|
424
439
|
*
|
|
440
|
+
* const logs: Array<string> = []
|
|
441
|
+
*
|
|
425
442
|
* // Build layers with explicit memoization control
|
|
426
443
|
* const program = Effect.gen(function*() {
|
|
427
444
|
* const memoMap = yield* Layer.makeMemoMap
|
|
@@ -435,7 +452,7 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
|
435
452
|
*
|
|
436
453
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
437
454
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
438
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
455
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
439
456
|
* })
|
|
440
457
|
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
441
458
|
* loggerLayer,
|
|
@@ -448,9 +465,13 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
|
448
465
|
* logger: Context.get(loggerContext, Logger)
|
|
449
466
|
* }
|
|
450
467
|
* })
|
|
468
|
+
*
|
|
469
|
+
* const services = Effect.runSync(Effect.scoped(program))
|
|
470
|
+
* Effect.runSync(services.logger.log("ready"))
|
|
471
|
+
* logs // => ["ready"]
|
|
451
472
|
* ```
|
|
452
473
|
*
|
|
453
|
-
* @category
|
|
474
|
+
* @category destructors
|
|
454
475
|
* @since 2.0.0
|
|
455
476
|
*/
|
|
456
477
|
export declare const buildWithMemoMap: {
|
|
@@ -460,7 +481,7 @@ export declare const buildWithMemoMap: {
|
|
|
460
481
|
*
|
|
461
482
|
* **Example** (Building layers with an explicit memo map)
|
|
462
483
|
*
|
|
463
|
-
* ```ts
|
|
484
|
+
* ```ts import.meta.vitest
|
|
464
485
|
* import { Context, Effect, Layer } from "effect"
|
|
465
486
|
*
|
|
466
487
|
* class Database extends Context.Service<Database, {
|
|
@@ -471,6 +492,8 @@ export declare const buildWithMemoMap: {
|
|
|
471
492
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
472
493
|
* }>()("Logger") {}
|
|
473
494
|
*
|
|
495
|
+
* const logs: Array<string> = []
|
|
496
|
+
*
|
|
474
497
|
* // Build layers with explicit memoization control
|
|
475
498
|
* const program = Effect.gen(function*() {
|
|
476
499
|
* const memoMap = yield* Layer.makeMemoMap
|
|
@@ -484,7 +507,7 @@ export declare const buildWithMemoMap: {
|
|
|
484
507
|
*
|
|
485
508
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
486
509
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
487
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
510
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
488
511
|
* })
|
|
489
512
|
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
490
513
|
* loggerLayer,
|
|
@@ -497,9 +520,13 @@ export declare const buildWithMemoMap: {
|
|
|
497
520
|
* logger: Context.get(loggerContext, Logger)
|
|
498
521
|
* }
|
|
499
522
|
* })
|
|
523
|
+
*
|
|
524
|
+
* const services = Effect.runSync(Effect.scoped(program))
|
|
525
|
+
* Effect.runSync(services.logger.log("ready"))
|
|
526
|
+
* logs // => ["ready"]
|
|
500
527
|
* ```
|
|
501
528
|
*
|
|
502
|
-
* @category
|
|
529
|
+
* @category destructors
|
|
503
530
|
* @since 2.0.0
|
|
504
531
|
*/
|
|
505
532
|
(memoMap: MemoMap, scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>;
|
|
@@ -509,7 +536,7 @@ export declare const buildWithMemoMap: {
|
|
|
509
536
|
*
|
|
510
537
|
* **Example** (Building layers with an explicit memo map)
|
|
511
538
|
*
|
|
512
|
-
* ```ts
|
|
539
|
+
* ```ts import.meta.vitest
|
|
513
540
|
* import { Context, Effect, Layer } from "effect"
|
|
514
541
|
*
|
|
515
542
|
* class Database extends Context.Service<Database, {
|
|
@@ -520,6 +547,8 @@ export declare const buildWithMemoMap: {
|
|
|
520
547
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
521
548
|
* }>()("Logger") {}
|
|
522
549
|
*
|
|
550
|
+
* const logs: Array<string> = []
|
|
551
|
+
*
|
|
523
552
|
* // Build layers with explicit memoization control
|
|
524
553
|
* const program = Effect.gen(function*() {
|
|
525
554
|
* const memoMap = yield* Layer.makeMemoMap
|
|
@@ -533,7 +562,7 @@ export declare const buildWithMemoMap: {
|
|
|
533
562
|
*
|
|
534
563
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
535
564
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
536
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
565
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
537
566
|
* })
|
|
538
567
|
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
539
568
|
* loggerLayer,
|
|
@@ -546,9 +575,13 @@ export declare const buildWithMemoMap: {
|
|
|
546
575
|
* logger: Context.get(loggerContext, Logger)
|
|
547
576
|
* }
|
|
548
577
|
* })
|
|
578
|
+
*
|
|
579
|
+
* const services = Effect.runSync(Effect.scoped(program))
|
|
580
|
+
* Effect.runSync(services.logger.log("ready"))
|
|
581
|
+
* logs // => ["ready"]
|
|
549
582
|
* ```
|
|
550
583
|
*
|
|
551
|
-
* @category
|
|
584
|
+
* @category destructors
|
|
552
585
|
* @since 2.0.0
|
|
553
586
|
*/
|
|
554
587
|
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, memoMap: MemoMap, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>;
|
|
@@ -558,7 +591,7 @@ export declare const buildWithMemoMap: {
|
|
|
558
591
|
*
|
|
559
592
|
* **Example** (Building a layer into a context)
|
|
560
593
|
*
|
|
561
|
-
* ```ts
|
|
594
|
+
* ```ts import.meta.vitest
|
|
562
595
|
* import { Context, Effect, Layer } from "effect"
|
|
563
596
|
*
|
|
564
597
|
* class Database extends Context.Service<Database, {
|
|
@@ -579,6 +612,8 @@ export declare const buildWithMemoMap: {
|
|
|
579
612
|
*
|
|
580
613
|
* return yield* database.query("SELECT * FROM users")
|
|
581
614
|
* })
|
|
615
|
+
*
|
|
616
|
+
* Effect.runSync(Effect.scoped(program)) // => "result"
|
|
582
617
|
* ```
|
|
583
618
|
*
|
|
584
619
|
* @category destructors
|
|
@@ -600,22 +635,24 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
|
600
635
|
*
|
|
601
636
|
* **Example** (Building a layer with an explicit scope)
|
|
602
637
|
*
|
|
603
|
-
* ```ts
|
|
638
|
+
* ```ts import.meta.vitest
|
|
604
639
|
* import { Context, Effect, Layer, Scope } from "effect"
|
|
605
640
|
*
|
|
606
641
|
* class Database extends Context.Service<Database, {
|
|
607
642
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
608
643
|
* }>()("Database") {}
|
|
609
644
|
*
|
|
645
|
+
* const logs: Array<string> = []
|
|
646
|
+
*
|
|
610
647
|
* // Build a layer with explicit scope control
|
|
611
648
|
* const program = Effect.gen(function*() {
|
|
612
649
|
* const scope = yield* Effect.scope
|
|
613
650
|
*
|
|
614
651
|
* const dbLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
615
|
-
*
|
|
652
|
+
* logs.push("Initializing database...")
|
|
616
653
|
* yield* Scope.addFinalizer(
|
|
617
654
|
* scope,
|
|
618
|
-
* Effect.sync(() =>
|
|
655
|
+
* Effect.sync(() => logs.push("Database closed"))
|
|
619
656
|
* )
|
|
620
657
|
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
|
|
621
658
|
* }))
|
|
@@ -627,6 +664,9 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
|
627
664
|
* return yield* database.query("SELECT * FROM users")
|
|
628
665
|
* // Database will be closed when scope is closed
|
|
629
666
|
* })
|
|
667
|
+
*
|
|
668
|
+
* Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
|
|
669
|
+
* logs // => ["Initializing database...", "Database closed"]
|
|
630
670
|
* ```
|
|
631
671
|
*
|
|
632
672
|
* @category destructors
|
|
@@ -648,22 +688,24 @@ export declare const buildWithScope: {
|
|
|
648
688
|
*
|
|
649
689
|
* **Example** (Building a layer with an explicit scope)
|
|
650
690
|
*
|
|
651
|
-
* ```ts
|
|
691
|
+
* ```ts import.meta.vitest
|
|
652
692
|
* import { Context, Effect, Layer, Scope } from "effect"
|
|
653
693
|
*
|
|
654
694
|
* class Database extends Context.Service<Database, {
|
|
655
695
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
656
696
|
* }>()("Database") {}
|
|
657
697
|
*
|
|
698
|
+
* const logs: Array<string> = []
|
|
699
|
+
*
|
|
658
700
|
* // Build a layer with explicit scope control
|
|
659
701
|
* const program = Effect.gen(function*() {
|
|
660
702
|
* const scope = yield* Effect.scope
|
|
661
703
|
*
|
|
662
704
|
* const dbLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
663
|
-
*
|
|
705
|
+
* logs.push("Initializing database...")
|
|
664
706
|
* yield* Scope.addFinalizer(
|
|
665
707
|
* scope,
|
|
666
|
-
* Effect.sync(() =>
|
|
708
|
+
* Effect.sync(() => logs.push("Database closed"))
|
|
667
709
|
* )
|
|
668
710
|
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
|
|
669
711
|
* }))
|
|
@@ -675,6 +717,9 @@ export declare const buildWithScope: {
|
|
|
675
717
|
* return yield* database.query("SELECT * FROM users")
|
|
676
718
|
* // Database will be closed when scope is closed
|
|
677
719
|
* })
|
|
720
|
+
*
|
|
721
|
+
* Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
|
|
722
|
+
* logs // => ["Initializing database...", "Database closed"]
|
|
678
723
|
* ```
|
|
679
724
|
*
|
|
680
725
|
* @category destructors
|
|
@@ -696,22 +741,24 @@ export declare const buildWithScope: {
|
|
|
696
741
|
*
|
|
697
742
|
* **Example** (Building a layer with an explicit scope)
|
|
698
743
|
*
|
|
699
|
-
* ```ts
|
|
744
|
+
* ```ts import.meta.vitest
|
|
700
745
|
* import { Context, Effect, Layer, Scope } from "effect"
|
|
701
746
|
*
|
|
702
747
|
* class Database extends Context.Service<Database, {
|
|
703
748
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
704
749
|
* }>()("Database") {}
|
|
705
750
|
*
|
|
751
|
+
* const logs: Array<string> = []
|
|
752
|
+
*
|
|
706
753
|
* // Build a layer with explicit scope control
|
|
707
754
|
* const program = Effect.gen(function*() {
|
|
708
755
|
* const scope = yield* Effect.scope
|
|
709
756
|
*
|
|
710
757
|
* const dbLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
711
|
-
*
|
|
758
|
+
* logs.push("Initializing database...")
|
|
712
759
|
* yield* Scope.addFinalizer(
|
|
713
760
|
* scope,
|
|
714
|
-
* Effect.sync(() =>
|
|
761
|
+
* Effect.sync(() => logs.push("Database closed"))
|
|
715
762
|
* )
|
|
716
763
|
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
|
|
717
764
|
* }))
|
|
@@ -723,6 +770,9 @@ export declare const buildWithScope: {
|
|
|
723
770
|
* return yield* database.query("SELECT * FROM users")
|
|
724
771
|
* // Database will be closed when scope is closed
|
|
725
772
|
* })
|
|
773
|
+
*
|
|
774
|
+
* Effect.runSync(Effect.scoped(program)) // => "Result: SELECT * FROM users"
|
|
775
|
+
* logs // => ["Initializing database...", "Database closed"]
|
|
726
776
|
* ```
|
|
727
777
|
*
|
|
728
778
|
* @category destructors
|
|
@@ -741,7 +791,7 @@ export declare const buildWithScope: {
|
|
|
741
791
|
*
|
|
742
792
|
* **Example** (Creating a layer from a service implementation)
|
|
743
793
|
*
|
|
744
|
-
* ```ts
|
|
794
|
+
* ```ts import.meta.vitest
|
|
745
795
|
* import { Context, Effect, Layer } from "effect"
|
|
746
796
|
*
|
|
747
797
|
* class Database extends Context.Service<Database, {
|
|
@@ -751,6 +801,8 @@ export declare const buildWithScope: {
|
|
|
751
801
|
* const DatabaseLive = Layer.succeed(Database, {
|
|
752
802
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
753
803
|
* })
|
|
804
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
805
|
+
* Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
|
|
754
806
|
* ```
|
|
755
807
|
*
|
|
756
808
|
* @see {@link sync} for constructing layers from lazy values
|
|
@@ -770,7 +822,7 @@ export declare const succeed: {
|
|
|
770
822
|
*
|
|
771
823
|
* **Example** (Creating a layer from a service implementation)
|
|
772
824
|
*
|
|
773
|
-
* ```ts
|
|
825
|
+
* ```ts import.meta.vitest
|
|
774
826
|
* import { Context, Effect, Layer } from "effect"
|
|
775
827
|
*
|
|
776
828
|
* class Database extends Context.Service<Database, {
|
|
@@ -780,6 +832,8 @@ export declare const succeed: {
|
|
|
780
832
|
* const DatabaseLive = Layer.succeed(Database, {
|
|
781
833
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
782
834
|
* })
|
|
835
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
836
|
+
* Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
|
|
783
837
|
* ```
|
|
784
838
|
*
|
|
785
839
|
* @see {@link sync} for constructing layers from lazy values
|
|
@@ -799,7 +853,7 @@ export declare const succeed: {
|
|
|
799
853
|
*
|
|
800
854
|
* **Example** (Creating a layer from a service implementation)
|
|
801
855
|
*
|
|
802
|
-
* ```ts
|
|
856
|
+
* ```ts import.meta.vitest
|
|
803
857
|
* import { Context, Effect, Layer } from "effect"
|
|
804
858
|
*
|
|
805
859
|
* class Database extends Context.Service<Database, {
|
|
@@ -809,6 +863,8 @@ export declare const succeed: {
|
|
|
809
863
|
* const DatabaseLive = Layer.succeed(Database, {
|
|
810
864
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
811
865
|
* })
|
|
866
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
867
|
+
* Effect.runSync(Effect.provide(program, DatabaseLive)) // => "Query result: SELECT 1"
|
|
812
868
|
* ```
|
|
813
869
|
*
|
|
814
870
|
* @see {@link sync} for constructing layers from lazy values
|
|
@@ -834,7 +890,7 @@ export declare const succeed: {
|
|
|
834
890
|
*
|
|
835
891
|
* **Example** (Providing multiple services from a context)
|
|
836
892
|
*
|
|
837
|
-
* ```ts
|
|
893
|
+
* ```ts import.meta.vitest
|
|
838
894
|
* import { Context, Effect, Layer } from "effect"
|
|
839
895
|
*
|
|
840
896
|
* class Database extends Context.Service<Database, {
|
|
@@ -845,15 +901,19 @@ export declare const succeed: {
|
|
|
845
901
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
846
902
|
* }>()("Logger") {}
|
|
847
903
|
*
|
|
904
|
+
* const logs: Array<string> = []
|
|
848
905
|
* const context = Context.make(Database, {
|
|
849
906
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
850
907
|
* }).pipe(
|
|
851
908
|
* Context.add(Logger, {
|
|
852
|
-
* log: (msg: string) => Effect.sync(() =>
|
|
909
|
+
* log: (msg: string) => Effect.sync(() => logs.push(msg))
|
|
853
910
|
* })
|
|
854
911
|
* )
|
|
855
912
|
*
|
|
856
913
|
* const layer = Layer.succeedContext(context)
|
|
914
|
+
* const program = Logger.use((logger) => logger.log("ready"))
|
|
915
|
+
* Effect.runSync(Effect.provide(program, layer))
|
|
916
|
+
* logs // => ["ready"]
|
|
857
917
|
* ```
|
|
858
918
|
*
|
|
859
919
|
* @see {@link succeed} for providing a single service from a value
|
|
@@ -872,14 +932,12 @@ export declare const succeedContext: <A>(context: Context.Context<A>) => Layer<A
|
|
|
872
932
|
*
|
|
873
933
|
* **Example** (Disabling optional lifecycle work)
|
|
874
934
|
*
|
|
875
|
-
* ```ts
|
|
876
|
-
* import {
|
|
877
|
-
*
|
|
878
|
-
* declare const flag: boolean
|
|
935
|
+
* ```ts import.meta.vitest
|
|
936
|
+
* import { Context, Effect, Layer, Option } from "effect"
|
|
879
937
|
*
|
|
880
|
-
* const
|
|
881
|
-
*
|
|
882
|
-
*
|
|
938
|
+
* const Service = Context.Service<string>("Service")
|
|
939
|
+
* const context = Effect.runSync(Effect.scoped(Layer.build(Layer.empty)))
|
|
940
|
+
* Context.getOption(context, Service) // => Option.none()
|
|
883
941
|
* ```
|
|
884
942
|
*
|
|
885
943
|
* @see {@link effectDiscard} for running an effect while providing no services
|
|
@@ -903,7 +961,7 @@ export declare const empty: Layer<never>;
|
|
|
903
961
|
*
|
|
904
962
|
* **Example** (Lazily providing a service)
|
|
905
963
|
*
|
|
906
|
-
* ```ts
|
|
964
|
+
* ```ts import.meta.vitest
|
|
907
965
|
* import { Context, Effect, Layer } from "effect"
|
|
908
966
|
*
|
|
909
967
|
* class Database extends Context.Service<Database, {
|
|
@@ -913,6 +971,8 @@ export declare const empty: Layer<never>;
|
|
|
913
971
|
* const layer = Layer.sync(Database, () => ({
|
|
914
972
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
915
973
|
* }))
|
|
974
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
975
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
916
976
|
* ```
|
|
917
977
|
*
|
|
918
978
|
* @see {@link succeed} for constructing layers from static values
|
|
@@ -936,7 +996,7 @@ export declare const sync: {
|
|
|
936
996
|
*
|
|
937
997
|
* **Example** (Lazily providing a service)
|
|
938
998
|
*
|
|
939
|
-
* ```ts
|
|
999
|
+
* ```ts import.meta.vitest
|
|
940
1000
|
* import { Context, Effect, Layer } from "effect"
|
|
941
1001
|
*
|
|
942
1002
|
* class Database extends Context.Service<Database, {
|
|
@@ -946,6 +1006,8 @@ export declare const sync: {
|
|
|
946
1006
|
* const layer = Layer.sync(Database, () => ({
|
|
947
1007
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
948
1008
|
* }))
|
|
1009
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1010
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
949
1011
|
* ```
|
|
950
1012
|
*
|
|
951
1013
|
* @see {@link succeed} for constructing layers from static values
|
|
@@ -969,7 +1031,7 @@ export declare const sync: {
|
|
|
969
1031
|
*
|
|
970
1032
|
* **Example** (Lazily providing a service)
|
|
971
1033
|
*
|
|
972
|
-
* ```ts
|
|
1034
|
+
* ```ts import.meta.vitest
|
|
973
1035
|
* import { Context, Effect, Layer } from "effect"
|
|
974
1036
|
*
|
|
975
1037
|
* class Database extends Context.Service<Database, {
|
|
@@ -979,6 +1041,8 @@ export declare const sync: {
|
|
|
979
1041
|
* const layer = Layer.sync(Database, () => ({
|
|
980
1042
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
981
1043
|
* }))
|
|
1044
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1045
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
982
1046
|
* ```
|
|
983
1047
|
*
|
|
984
1048
|
* @see {@link succeed} for constructing layers from static values
|
|
@@ -1003,7 +1067,7 @@ export declare const sync: {
|
|
|
1003
1067
|
*
|
|
1004
1068
|
* **Example** (Lazily providing a context)
|
|
1005
1069
|
*
|
|
1006
|
-
* ```ts
|
|
1070
|
+
* ```ts import.meta.vitest
|
|
1007
1071
|
* import { Context, Effect, Layer } from "effect"
|
|
1008
1072
|
*
|
|
1009
1073
|
* class Database extends Context.Service<Database, {
|
|
@@ -1015,6 +1079,8 @@ export declare const sync: {
|
|
|
1015
1079
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
1016
1080
|
* })
|
|
1017
1081
|
* )
|
|
1082
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1083
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
1018
1084
|
* ```
|
|
1019
1085
|
*
|
|
1020
1086
|
* @see {@link sync} for lazily providing a single service
|
|
@@ -1040,7 +1106,7 @@ export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) =>
|
|
|
1040
1106
|
*
|
|
1041
1107
|
* **Example** (Creating a layer from an effect)
|
|
1042
1108
|
*
|
|
1043
|
-
* ```ts
|
|
1109
|
+
* ```ts import.meta.vitest
|
|
1044
1110
|
* import { Context, Effect, Layer } from "effect"
|
|
1045
1111
|
*
|
|
1046
1112
|
* class Database extends Context.Service<Database, {
|
|
@@ -1052,6 +1118,8 @@ export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) =>
|
|
|
1052
1118
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
1053
1119
|
* }))
|
|
1054
1120
|
* )
|
|
1121
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1122
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
1055
1123
|
* ```
|
|
1056
1124
|
*
|
|
1057
1125
|
* @see {@link effectContext} for effectfully providing multiple services
|
|
@@ -1077,7 +1145,7 @@ export declare const effect: {
|
|
|
1077
1145
|
*
|
|
1078
1146
|
* **Example** (Creating a layer from an effect)
|
|
1079
1147
|
*
|
|
1080
|
-
* ```ts
|
|
1148
|
+
* ```ts import.meta.vitest
|
|
1081
1149
|
* import { Context, Effect, Layer } from "effect"
|
|
1082
1150
|
*
|
|
1083
1151
|
* class Database extends Context.Service<Database, {
|
|
@@ -1089,6 +1157,8 @@ export declare const effect: {
|
|
|
1089
1157
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
1090
1158
|
* }))
|
|
1091
1159
|
* )
|
|
1160
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1161
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
1092
1162
|
* ```
|
|
1093
1163
|
*
|
|
1094
1164
|
* @see {@link effectContext} for effectfully providing multiple services
|
|
@@ -1114,7 +1184,7 @@ export declare const effect: {
|
|
|
1114
1184
|
*
|
|
1115
1185
|
* **Example** (Creating a layer from an effect)
|
|
1116
1186
|
*
|
|
1117
|
-
* ```ts
|
|
1187
|
+
* ```ts import.meta.vitest
|
|
1118
1188
|
* import { Context, Effect, Layer } from "effect"
|
|
1119
1189
|
*
|
|
1120
1190
|
* class Database extends Context.Service<Database, {
|
|
@@ -1126,6 +1196,8 @@ export declare const effect: {
|
|
|
1126
1196
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
1127
1197
|
* }))
|
|
1128
1198
|
* )
|
|
1199
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1200
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
1129
1201
|
* ```
|
|
1130
1202
|
*
|
|
1131
1203
|
* @see {@link effectContext} for effectfully providing multiple services
|
|
@@ -1152,7 +1224,7 @@ export declare const effect: {
|
|
|
1152
1224
|
*
|
|
1153
1225
|
* **Example** (Creating a layer from an effectful context)
|
|
1154
1226
|
*
|
|
1155
|
-
* ```ts
|
|
1227
|
+
* ```ts import.meta.vitest
|
|
1156
1228
|
* import { Context, Effect, Layer } from "effect"
|
|
1157
1229
|
*
|
|
1158
1230
|
* class Database extends Context.Service<
|
|
@@ -1165,6 +1237,8 @@ export declare const effect: {
|
|
|
1165
1237
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
1166
1238
|
* }))
|
|
1167
1239
|
* )
|
|
1240
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1241
|
+
* Effect.runSync(Effect.provide(program, layer)) // => "Query: SELECT 1"
|
|
1168
1242
|
* ```
|
|
1169
1243
|
*
|
|
1170
1244
|
* @see {@link effect} for effectfully providing a single service
|
|
@@ -1184,14 +1258,17 @@ export declare const effectContext: <A, E, R>(effect: Effect<Context.Context<A>,
|
|
|
1184
1258
|
*
|
|
1185
1259
|
* **Example** (Running an effect during layer construction)
|
|
1186
1260
|
*
|
|
1187
|
-
* ```ts
|
|
1261
|
+
* ```ts import.meta.vitest
|
|
1188
1262
|
* import { Effect, Layer } from "effect"
|
|
1189
1263
|
*
|
|
1264
|
+
* const logs: Array<string> = []
|
|
1190
1265
|
* const initLayer = Layer.effectDiscard(
|
|
1191
1266
|
* Effect.sync(() => {
|
|
1192
|
-
*
|
|
1267
|
+
* logs.push("Initializing application...")
|
|
1193
1268
|
* })
|
|
1194
1269
|
* )
|
|
1270
|
+
* Effect.runSync(Effect.scoped(Layer.build(initLayer)))
|
|
1271
|
+
* logs // => ["Initializing application..."]
|
|
1195
1272
|
* ```
|
|
1196
1273
|
*
|
|
1197
1274
|
* @see {@link empty} for a no-op layer that performs no construction work
|
|
@@ -1210,8 +1287,8 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
|
|
|
1210
1287
|
*
|
|
1211
1288
|
* **Example** (Choosing a layer lazily)
|
|
1212
1289
|
*
|
|
1213
|
-
* ```ts
|
|
1214
|
-
* import { Context, Layer } from "effect"
|
|
1290
|
+
* ```ts import.meta.vitest
|
|
1291
|
+
* import { Context, Effect, Layer } from "effect"
|
|
1215
1292
|
*
|
|
1216
1293
|
* class Config extends Context.Service<Config, string>()("Config") {}
|
|
1217
1294
|
*
|
|
@@ -1222,6 +1299,7 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
|
|
|
1222
1299
|
* ? Layer.succeed(Config, "https://api.example.com")
|
|
1223
1300
|
* : Layer.succeed(Config, "http://localhost:3000")
|
|
1224
1301
|
* )
|
|
1302
|
+
* Effect.runSync(Effect.provide(Config, layer)) // => "https://api.example.com"
|
|
1225
1303
|
* ```
|
|
1226
1304
|
*
|
|
1227
1305
|
* @category constructors
|
|
@@ -1243,7 +1321,7 @@ export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => La
|
|
|
1243
1321
|
*
|
|
1244
1322
|
* **Example** (Unwrapping an effectful layer)
|
|
1245
1323
|
*
|
|
1246
|
-
* ```ts
|
|
1324
|
+
* ```ts import.meta.vitest
|
|
1247
1325
|
* import { Context, Effect, Layer } from "effect"
|
|
1248
1326
|
*
|
|
1249
1327
|
* class Database extends Context.Service<Database, {
|
|
@@ -1255,6 +1333,8 @@ export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => La
|
|
|
1255
1333
|
* )
|
|
1256
1334
|
*
|
|
1257
1335
|
* const unwrappedLayer = Layer.unwrap(layerEffect)
|
|
1336
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1337
|
+
* Effect.runSync(Effect.provide(program, unwrappedLayer)) // => "result"
|
|
1258
1338
|
* ```
|
|
1259
1339
|
*
|
|
1260
1340
|
* @category converting
|
|
@@ -1279,7 +1359,7 @@ export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E,
|
|
|
1279
1359
|
*
|
|
1280
1360
|
* **Example** (Merging independent layers)
|
|
1281
1361
|
*
|
|
1282
|
-
* ```ts
|
|
1362
|
+
* ```ts import.meta.vitest
|
|
1283
1363
|
* import { Context, Effect, Layer } from "effect"
|
|
1284
1364
|
*
|
|
1285
1365
|
* class Database extends Context.Service<Database, {
|
|
@@ -1293,11 +1373,15 @@ export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E,
|
|
|
1293
1373
|
* const dbLayer = Layer.succeed(Database, {
|
|
1294
1374
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1295
1375
|
* })
|
|
1376
|
+
* const logs: Array<string> = []
|
|
1296
1377
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1297
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
1378
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
1298
1379
|
* })
|
|
1299
1380
|
*
|
|
1300
1381
|
* const mergedLayer = Layer.mergeAll(dbLayer, loggerLayer)
|
|
1382
|
+
* const program = Logger.use((logger) => logger.log("ready"))
|
|
1383
|
+
* Effect.runSync(Effect.provide(program, mergedLayer))
|
|
1384
|
+
* logs // => ["ready"]
|
|
1301
1385
|
* ```
|
|
1302
1386
|
*
|
|
1303
1387
|
* @see {@link merge} for merging one layer with another layer or array
|
|
@@ -1323,7 +1407,7 @@ export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array
|
|
|
1323
1407
|
*
|
|
1324
1408
|
* **Example** (Merging two layers)
|
|
1325
1409
|
*
|
|
1326
|
-
* ```ts
|
|
1410
|
+
* ```ts import.meta.vitest
|
|
1327
1411
|
* import { Context, Effect, Layer } from "effect"
|
|
1328
1412
|
*
|
|
1329
1413
|
* class Database extends Context.Service<Database, {
|
|
@@ -1338,10 +1422,12 @@ export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array
|
|
|
1338
1422
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1339
1423
|
* })
|
|
1340
1424
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1341
|
-
* log: Effect.fn("Logger.log")((
|
|
1425
|
+
* log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
|
|
1342
1426
|
* })
|
|
1343
1427
|
*
|
|
1344
1428
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1429
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1430
|
+
* Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
|
|
1345
1431
|
* ```
|
|
1346
1432
|
*
|
|
1347
1433
|
* @see {@link mergeAll} for merging several layers at once
|
|
@@ -1367,7 +1453,7 @@ export declare const merge: {
|
|
|
1367
1453
|
*
|
|
1368
1454
|
* **Example** (Merging two layers)
|
|
1369
1455
|
*
|
|
1370
|
-
* ```ts
|
|
1456
|
+
* ```ts import.meta.vitest
|
|
1371
1457
|
* import { Context, Effect, Layer } from "effect"
|
|
1372
1458
|
*
|
|
1373
1459
|
* class Database extends Context.Service<Database, {
|
|
@@ -1382,10 +1468,12 @@ export declare const merge: {
|
|
|
1382
1468
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1383
1469
|
* })
|
|
1384
1470
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1385
|
-
* log: Effect.fn("Logger.log")((
|
|
1471
|
+
* log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
|
|
1386
1472
|
* })
|
|
1387
1473
|
*
|
|
1388
1474
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1475
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1476
|
+
* Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
|
|
1389
1477
|
* ```
|
|
1390
1478
|
*
|
|
1391
1479
|
* @see {@link mergeAll} for merging several layers at once
|
|
@@ -1411,7 +1499,7 @@ export declare const merge: {
|
|
|
1411
1499
|
*
|
|
1412
1500
|
* **Example** (Merging two layers)
|
|
1413
1501
|
*
|
|
1414
|
-
* ```ts
|
|
1502
|
+
* ```ts import.meta.vitest
|
|
1415
1503
|
* import { Context, Effect, Layer } from "effect"
|
|
1416
1504
|
*
|
|
1417
1505
|
* class Database extends Context.Service<Database, {
|
|
@@ -1426,10 +1514,12 @@ export declare const merge: {
|
|
|
1426
1514
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1427
1515
|
* })
|
|
1428
1516
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1429
|
-
* log: Effect.fn("Logger.log")((
|
|
1517
|
+
* log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
|
|
1430
1518
|
* })
|
|
1431
1519
|
*
|
|
1432
1520
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1521
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1522
|
+
* Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
|
|
1433
1523
|
* ```
|
|
1434
1524
|
*
|
|
1435
1525
|
* @see {@link mergeAll} for merging several layers at once
|
|
@@ -1455,7 +1545,7 @@ export declare const merge: {
|
|
|
1455
1545
|
*
|
|
1456
1546
|
* **Example** (Merging two layers)
|
|
1457
1547
|
*
|
|
1458
|
-
* ```ts
|
|
1548
|
+
* ```ts import.meta.vitest
|
|
1459
1549
|
* import { Context, Effect, Layer } from "effect"
|
|
1460
1550
|
*
|
|
1461
1551
|
* class Database extends Context.Service<Database, {
|
|
@@ -1470,10 +1560,12 @@ export declare const merge: {
|
|
|
1470
1560
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1471
1561
|
* })
|
|
1472
1562
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1473
|
-
* log: Effect.fn("Logger.log")((
|
|
1563
|
+
* log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
|
|
1474
1564
|
* })
|
|
1475
1565
|
*
|
|
1476
1566
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1567
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1568
|
+
* Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
|
|
1477
1569
|
* ```
|
|
1478
1570
|
*
|
|
1479
1571
|
* @see {@link mergeAll} for merging several layers at once
|
|
@@ -1499,7 +1591,7 @@ export declare const merge: {
|
|
|
1499
1591
|
*
|
|
1500
1592
|
* **Example** (Merging two layers)
|
|
1501
1593
|
*
|
|
1502
|
-
* ```ts
|
|
1594
|
+
* ```ts import.meta.vitest
|
|
1503
1595
|
* import { Context, Effect, Layer } from "effect"
|
|
1504
1596
|
*
|
|
1505
1597
|
* class Database extends Context.Service<Database, {
|
|
@@ -1514,10 +1606,12 @@ export declare const merge: {
|
|
|
1514
1606
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1515
1607
|
* })
|
|
1516
1608
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1517
|
-
* log: Effect.fn("Logger.log")((
|
|
1609
|
+
* log: Effect.fn("Logger.log")((_msg: string) => Effect.void)
|
|
1518
1610
|
* })
|
|
1519
1611
|
*
|
|
1520
1612
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1613
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
1614
|
+
* Effect.runSync(Effect.provide(program, mergedLayer)) // => "result"
|
|
1521
1615
|
* ```
|
|
1522
1616
|
*
|
|
1523
1617
|
* @see {@link mergeAll} for merging several layers at once
|
|
@@ -1542,7 +1636,7 @@ export declare const merge: {
|
|
|
1542
1636
|
*
|
|
1543
1637
|
* **Example** (Providing layer dependencies)
|
|
1544
1638
|
*
|
|
1545
|
-
* ```ts
|
|
1639
|
+
* ```ts import.meta.vitest
|
|
1546
1640
|
* import { Context, Effect, Layer } from "effect"
|
|
1547
1641
|
*
|
|
1548
1642
|
* class Database extends Context.Service<Database, {
|
|
@@ -1565,8 +1659,9 @@ export declare const merge: {
|
|
|
1565
1659
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1566
1660
|
* })
|
|
1567
1661
|
*
|
|
1662
|
+
* const logs: Array<string> = []
|
|
1568
1663
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1569
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
1664
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
1570
1665
|
* })
|
|
1571
1666
|
*
|
|
1572
1667
|
* // UserService depends on Database and Logger
|
|
@@ -1597,6 +1692,8 @@ export declare const merge: {
|
|
|
1597
1692
|
* }).pipe(
|
|
1598
1693
|
* Effect.provide(userServiceWithDependencies)
|
|
1599
1694
|
* )
|
|
1695
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
1696
|
+
* logs // => ["[LOG] Looking up user 123"]
|
|
1600
1697
|
* ```
|
|
1601
1698
|
*
|
|
1602
1699
|
* @see {@link provideMerge} for retaining the dependency services
|
|
@@ -1620,7 +1717,7 @@ export declare const provide: {
|
|
|
1620
1717
|
*
|
|
1621
1718
|
* **Example** (Providing layer dependencies)
|
|
1622
1719
|
*
|
|
1623
|
-
* ```ts
|
|
1720
|
+
* ```ts import.meta.vitest
|
|
1624
1721
|
* import { Context, Effect, Layer } from "effect"
|
|
1625
1722
|
*
|
|
1626
1723
|
* class Database extends Context.Service<Database, {
|
|
@@ -1643,8 +1740,9 @@ export declare const provide: {
|
|
|
1643
1740
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1644
1741
|
* })
|
|
1645
1742
|
*
|
|
1743
|
+
* const logs: Array<string> = []
|
|
1646
1744
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1647
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
1745
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
1648
1746
|
* })
|
|
1649
1747
|
*
|
|
1650
1748
|
* // UserService depends on Database and Logger
|
|
@@ -1675,6 +1773,8 @@ export declare const provide: {
|
|
|
1675
1773
|
* }).pipe(
|
|
1676
1774
|
* Effect.provide(userServiceWithDependencies)
|
|
1677
1775
|
* )
|
|
1776
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
1777
|
+
* logs // => ["[LOG] Looking up user 123"]
|
|
1678
1778
|
* ```
|
|
1679
1779
|
*
|
|
1680
1780
|
* @see {@link provideMerge} for retaining the dependency services
|
|
@@ -1698,7 +1798,7 @@ export declare const provide: {
|
|
|
1698
1798
|
*
|
|
1699
1799
|
* **Example** (Providing layer dependencies)
|
|
1700
1800
|
*
|
|
1701
|
-
* ```ts
|
|
1801
|
+
* ```ts import.meta.vitest
|
|
1702
1802
|
* import { Context, Effect, Layer } from "effect"
|
|
1703
1803
|
*
|
|
1704
1804
|
* class Database extends Context.Service<Database, {
|
|
@@ -1721,8 +1821,9 @@ export declare const provide: {
|
|
|
1721
1821
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1722
1822
|
* })
|
|
1723
1823
|
*
|
|
1824
|
+
* const logs: Array<string> = []
|
|
1724
1825
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1725
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
1826
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
1726
1827
|
* })
|
|
1727
1828
|
*
|
|
1728
1829
|
* // UserService depends on Database and Logger
|
|
@@ -1753,6 +1854,8 @@ export declare const provide: {
|
|
|
1753
1854
|
* }).pipe(
|
|
1754
1855
|
* Effect.provide(userServiceWithDependencies)
|
|
1755
1856
|
* )
|
|
1857
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
1858
|
+
* logs // => ["[LOG] Looking up user 123"]
|
|
1756
1859
|
* ```
|
|
1757
1860
|
*
|
|
1758
1861
|
* @see {@link provideMerge} for retaining the dependency services
|
|
@@ -1776,7 +1879,7 @@ export declare const provide: {
|
|
|
1776
1879
|
*
|
|
1777
1880
|
* **Example** (Providing layer dependencies)
|
|
1778
1881
|
*
|
|
1779
|
-
* ```ts
|
|
1882
|
+
* ```ts import.meta.vitest
|
|
1780
1883
|
* import { Context, Effect, Layer } from "effect"
|
|
1781
1884
|
*
|
|
1782
1885
|
* class Database extends Context.Service<Database, {
|
|
@@ -1799,8 +1902,9 @@ export declare const provide: {
|
|
|
1799
1902
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1800
1903
|
* })
|
|
1801
1904
|
*
|
|
1905
|
+
* const logs: Array<string> = []
|
|
1802
1906
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1803
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
1907
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
1804
1908
|
* })
|
|
1805
1909
|
*
|
|
1806
1910
|
* // UserService depends on Database and Logger
|
|
@@ -1831,6 +1935,8 @@ export declare const provide: {
|
|
|
1831
1935
|
* }).pipe(
|
|
1832
1936
|
* Effect.provide(userServiceWithDependencies)
|
|
1833
1937
|
* )
|
|
1938
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
1939
|
+
* logs // => ["[LOG] Looking up user 123"]
|
|
1834
1940
|
* ```
|
|
1835
1941
|
*
|
|
1836
1942
|
* @see {@link provideMerge} for retaining the dependency services
|
|
@@ -1854,7 +1960,7 @@ export declare const provide: {
|
|
|
1854
1960
|
*
|
|
1855
1961
|
* **Example** (Providing layer dependencies)
|
|
1856
1962
|
*
|
|
1857
|
-
* ```ts
|
|
1963
|
+
* ```ts import.meta.vitest
|
|
1858
1964
|
* import { Context, Effect, Layer } from "effect"
|
|
1859
1965
|
*
|
|
1860
1966
|
* class Database extends Context.Service<Database, {
|
|
@@ -1877,8 +1983,9 @@ export declare const provide: {
|
|
|
1877
1983
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1878
1984
|
* })
|
|
1879
1985
|
*
|
|
1986
|
+
* const logs: Array<string> = []
|
|
1880
1987
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1881
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
1988
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
1882
1989
|
* })
|
|
1883
1990
|
*
|
|
1884
1991
|
* // UserService depends on Database and Logger
|
|
@@ -1909,6 +2016,8 @@ export declare const provide: {
|
|
|
1909
2016
|
* }).pipe(
|
|
1910
2017
|
* Effect.provide(userServiceWithDependencies)
|
|
1911
2018
|
* )
|
|
2019
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
2020
|
+
* logs // => ["[LOG] Looking up user 123"]
|
|
1912
2021
|
* ```
|
|
1913
2022
|
*
|
|
1914
2023
|
* @see {@link provideMerge} for retaining the dependency services
|
|
@@ -1933,7 +2042,7 @@ export declare const provide: {
|
|
|
1933
2042
|
*
|
|
1934
2043
|
* **Example** (Providing dependencies while retaining services)
|
|
1935
2044
|
*
|
|
1936
|
-
* ```ts
|
|
2045
|
+
* ```ts import.meta.vitest
|
|
1937
2046
|
* import { Context, Effect, Layer } from "effect"
|
|
1938
2047
|
*
|
|
1939
2048
|
* class Database extends Context.Service<Database, {
|
|
@@ -1956,8 +2065,9 @@ export declare const provide: {
|
|
|
1956
2065
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1957
2066
|
* })
|
|
1958
2067
|
*
|
|
2068
|
+
* const logs: Array<string> = []
|
|
1959
2069
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
1960
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
2070
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
1961
2071
|
* })
|
|
1962
2072
|
*
|
|
1963
2073
|
* // UserService depends on Database and Logger
|
|
@@ -1994,6 +2104,8 @@ export declare const provide: {
|
|
|
1994
2104
|
* }).pipe(
|
|
1995
2105
|
* Effect.provide(allServicesLayer)
|
|
1996
2106
|
* )
|
|
2107
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
2108
|
+
* logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
|
|
1997
2109
|
* ```
|
|
1998
2110
|
*
|
|
1999
2111
|
* @see {@link provide} for keeping dependency services private
|
|
@@ -2017,7 +2129,7 @@ export declare const provideMerge: {
|
|
|
2017
2129
|
*
|
|
2018
2130
|
* **Example** (Providing dependencies while retaining services)
|
|
2019
2131
|
*
|
|
2020
|
-
* ```ts
|
|
2132
|
+
* ```ts import.meta.vitest
|
|
2021
2133
|
* import { Context, Effect, Layer } from "effect"
|
|
2022
2134
|
*
|
|
2023
2135
|
* class Database extends Context.Service<Database, {
|
|
@@ -2040,8 +2152,9 @@ export declare const provideMerge: {
|
|
|
2040
2152
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
2041
2153
|
* })
|
|
2042
2154
|
*
|
|
2155
|
+
* const logs: Array<string> = []
|
|
2043
2156
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
2044
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
2157
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
2045
2158
|
* })
|
|
2046
2159
|
*
|
|
2047
2160
|
* // UserService depends on Database and Logger
|
|
@@ -2078,6 +2191,8 @@ export declare const provideMerge: {
|
|
|
2078
2191
|
* }).pipe(
|
|
2079
2192
|
* Effect.provide(allServicesLayer)
|
|
2080
2193
|
* )
|
|
2194
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
2195
|
+
* logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
|
|
2081
2196
|
* ```
|
|
2082
2197
|
*
|
|
2083
2198
|
* @see {@link provide} for keeping dependency services private
|
|
@@ -2101,7 +2216,7 @@ export declare const provideMerge: {
|
|
|
2101
2216
|
*
|
|
2102
2217
|
* **Example** (Providing dependencies while retaining services)
|
|
2103
2218
|
*
|
|
2104
|
-
* ```ts
|
|
2219
|
+
* ```ts import.meta.vitest
|
|
2105
2220
|
* import { Context, Effect, Layer } from "effect"
|
|
2106
2221
|
*
|
|
2107
2222
|
* class Database extends Context.Service<Database, {
|
|
@@ -2124,8 +2239,9 @@ export declare const provideMerge: {
|
|
|
2124
2239
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
2125
2240
|
* })
|
|
2126
2241
|
*
|
|
2242
|
+
* const logs: Array<string> = []
|
|
2127
2243
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
2128
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
2244
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
2129
2245
|
* })
|
|
2130
2246
|
*
|
|
2131
2247
|
* // UserService depends on Database and Logger
|
|
@@ -2162,6 +2278,8 @@ export declare const provideMerge: {
|
|
|
2162
2278
|
* }).pipe(
|
|
2163
2279
|
* Effect.provide(allServicesLayer)
|
|
2164
2280
|
* )
|
|
2281
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
2282
|
+
* logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
|
|
2165
2283
|
* ```
|
|
2166
2284
|
*
|
|
2167
2285
|
* @see {@link provide} for keeping dependency services private
|
|
@@ -2185,7 +2303,7 @@ export declare const provideMerge: {
|
|
|
2185
2303
|
*
|
|
2186
2304
|
* **Example** (Providing dependencies while retaining services)
|
|
2187
2305
|
*
|
|
2188
|
-
* ```ts
|
|
2306
|
+
* ```ts import.meta.vitest
|
|
2189
2307
|
* import { Context, Effect, Layer } from "effect"
|
|
2190
2308
|
*
|
|
2191
2309
|
* class Database extends Context.Service<Database, {
|
|
@@ -2208,8 +2326,9 @@ export declare const provideMerge: {
|
|
|
2208
2326
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
2209
2327
|
* })
|
|
2210
2328
|
*
|
|
2329
|
+
* const logs: Array<string> = []
|
|
2211
2330
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
2212
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
2331
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
2213
2332
|
* })
|
|
2214
2333
|
*
|
|
2215
2334
|
* // UserService depends on Database and Logger
|
|
@@ -2246,6 +2365,8 @@ export declare const provideMerge: {
|
|
|
2246
2365
|
* }).pipe(
|
|
2247
2366
|
* Effect.provide(allServicesLayer)
|
|
2248
2367
|
* )
|
|
2368
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
2369
|
+
* logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
|
|
2249
2370
|
* ```
|
|
2250
2371
|
*
|
|
2251
2372
|
* @see {@link provide} for keeping dependency services private
|
|
@@ -2269,7 +2390,7 @@ export declare const provideMerge: {
|
|
|
2269
2390
|
*
|
|
2270
2391
|
* **Example** (Providing dependencies while retaining services)
|
|
2271
2392
|
*
|
|
2272
|
-
* ```ts
|
|
2393
|
+
* ```ts import.meta.vitest
|
|
2273
2394
|
* import { Context, Effect, Layer } from "effect"
|
|
2274
2395
|
*
|
|
2275
2396
|
* class Database extends Context.Service<Database, {
|
|
@@ -2292,8 +2413,9 @@ export declare const provideMerge: {
|
|
|
2292
2413
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
2293
2414
|
* })
|
|
2294
2415
|
*
|
|
2416
|
+
* const logs: Array<string> = []
|
|
2295
2417
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
2296
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
2418
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(`[LOG] ${msg}`)))
|
|
2297
2419
|
* })
|
|
2298
2420
|
*
|
|
2299
2421
|
* // UserService depends on Database and Logger
|
|
@@ -2330,6 +2452,8 @@ export declare const provideMerge: {
|
|
|
2330
2452
|
* }).pipe(
|
|
2331
2453
|
* Effect.provide(allServicesLayer)
|
|
2332
2454
|
* )
|
|
2455
|
+
* Effect.runSync(program) // => { id: "123", name: "DB: SELECT * FROM users WHERE id = 123" }
|
|
2456
|
+
* logs // => ["[LOG] Looking up user 123", "[LOG] Found user: DB: SELECT * FROM users WHERE id = 123"]
|
|
2333
2457
|
* ```
|
|
2334
2458
|
*
|
|
2335
2459
|
* @see {@link provide} for keeping dependency services private
|
|
@@ -2344,7 +2468,7 @@ export declare const provideMerge: {
|
|
|
2344
2468
|
*
|
|
2345
2469
|
* **Example** (Creating services from layer output)
|
|
2346
2470
|
*
|
|
2347
|
-
* ```ts
|
|
2471
|
+
* ```ts import.meta.vitest
|
|
2348
2472
|
* import { Context, Effect, Layer } from "effect"
|
|
2349
2473
|
*
|
|
2350
2474
|
* class Config extends Context.Service<Config, {
|
|
@@ -2360,6 +2484,8 @@ export declare const provideMerge: {
|
|
|
2360
2484
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2361
2485
|
* }>()("Logger") {}
|
|
2362
2486
|
*
|
|
2487
|
+
* const logs: Array<string> = []
|
|
2488
|
+
*
|
|
2363
2489
|
* // Base config layer
|
|
2364
2490
|
* const configLayer = Layer.succeed(Config, {
|
|
2365
2491
|
* dbUrl: "postgres://localhost:5432/mydb",
|
|
@@ -2383,8 +2509,8 @@ export declare const provideMerge: {
|
|
|
2383
2509
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
2384
2510
|
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2385
2511
|
* config.logLevel === "debug"
|
|
2386
|
-
* ? Effect.sync(() =>
|
|
2387
|
-
* : Effect.sync(() =>
|
|
2512
|
+
* ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
|
|
2513
|
+
* : Effect.sync(() => logs.push(msg))
|
|
2388
2514
|
* )
|
|
2389
2515
|
* })
|
|
2390
2516
|
*
|
|
@@ -2405,6 +2531,8 @@ export declare const provideMerge: {
|
|
|
2405
2531
|
* }).pipe(
|
|
2406
2532
|
* Effect.provide(dynamicServiceLayer)
|
|
2407
2533
|
* )
|
|
2534
|
+
* Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
|
|
2535
|
+
* logs // => ["[DEBUG] Starting database query"]
|
|
2408
2536
|
* ```
|
|
2409
2537
|
*
|
|
2410
2538
|
* @category sequencing
|
|
@@ -2416,7 +2544,7 @@ export declare const flatMap: {
|
|
|
2416
2544
|
*
|
|
2417
2545
|
* **Example** (Creating services from layer output)
|
|
2418
2546
|
*
|
|
2419
|
-
* ```ts
|
|
2547
|
+
* ```ts import.meta.vitest
|
|
2420
2548
|
* import { Context, Effect, Layer } from "effect"
|
|
2421
2549
|
*
|
|
2422
2550
|
* class Config extends Context.Service<Config, {
|
|
@@ -2432,6 +2560,8 @@ export declare const flatMap: {
|
|
|
2432
2560
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2433
2561
|
* }>()("Logger") {}
|
|
2434
2562
|
*
|
|
2563
|
+
* const logs: Array<string> = []
|
|
2564
|
+
*
|
|
2435
2565
|
* // Base config layer
|
|
2436
2566
|
* const configLayer = Layer.succeed(Config, {
|
|
2437
2567
|
* dbUrl: "postgres://localhost:5432/mydb",
|
|
@@ -2455,8 +2585,8 @@ export declare const flatMap: {
|
|
|
2455
2585
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
2456
2586
|
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2457
2587
|
* config.logLevel === "debug"
|
|
2458
|
-
* ? Effect.sync(() =>
|
|
2459
|
-
* : Effect.sync(() =>
|
|
2588
|
+
* ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
|
|
2589
|
+
* : Effect.sync(() => logs.push(msg))
|
|
2460
2590
|
* )
|
|
2461
2591
|
* })
|
|
2462
2592
|
*
|
|
@@ -2477,6 +2607,8 @@ export declare const flatMap: {
|
|
|
2477
2607
|
* }).pipe(
|
|
2478
2608
|
* Effect.provide(dynamicServiceLayer)
|
|
2479
2609
|
* )
|
|
2610
|
+
* Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
|
|
2611
|
+
* logs // => ["[DEBUG] Starting database query"]
|
|
2480
2612
|
* ```
|
|
2481
2613
|
*
|
|
2482
2614
|
* @category sequencing
|
|
@@ -2488,7 +2620,7 @@ export declare const flatMap: {
|
|
|
2488
2620
|
*
|
|
2489
2621
|
* **Example** (Creating services from layer output)
|
|
2490
2622
|
*
|
|
2491
|
-
* ```ts
|
|
2623
|
+
* ```ts import.meta.vitest
|
|
2492
2624
|
* import { Context, Effect, Layer } from "effect"
|
|
2493
2625
|
*
|
|
2494
2626
|
* class Config extends Context.Service<Config, {
|
|
@@ -2504,6 +2636,8 @@ export declare const flatMap: {
|
|
|
2504
2636
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2505
2637
|
* }>()("Logger") {}
|
|
2506
2638
|
*
|
|
2639
|
+
* const logs: Array<string> = []
|
|
2640
|
+
*
|
|
2507
2641
|
* // Base config layer
|
|
2508
2642
|
* const configLayer = Layer.succeed(Config, {
|
|
2509
2643
|
* dbUrl: "postgres://localhost:5432/mydb",
|
|
@@ -2527,8 +2661,8 @@ export declare const flatMap: {
|
|
|
2527
2661
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
2528
2662
|
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2529
2663
|
* config.logLevel === "debug"
|
|
2530
|
-
* ? Effect.sync(() =>
|
|
2531
|
-
* : Effect.sync(() =>
|
|
2664
|
+
* ? Effect.sync(() => logs.push(`[DEBUG] ${msg}`))
|
|
2665
|
+
* : Effect.sync(() => logs.push(msg))
|
|
2532
2666
|
* )
|
|
2533
2667
|
* })
|
|
2534
2668
|
*
|
|
@@ -2549,6 +2683,8 @@ export declare const flatMap: {
|
|
|
2549
2683
|
* }).pipe(
|
|
2550
2684
|
* Effect.provide(dynamicServiceLayer)
|
|
2551
2685
|
* )
|
|
2686
|
+
* Effect.runSync(program) // => "Querying postgres://localhost:5432/mydb: SELECT * FROM users"
|
|
2687
|
+
* logs // => ["[DEBUG] Starting database query"]
|
|
2552
2688
|
* ```
|
|
2553
2689
|
*
|
|
2554
2690
|
* @category sequencing
|
|
@@ -2762,8 +2898,8 @@ export declare const tapCause: {
|
|
|
2762
2898
|
*
|
|
2763
2899
|
* **Example** (Converting layer failures to defects)
|
|
2764
2900
|
*
|
|
2765
|
-
* ```ts
|
|
2766
|
-
* import { Context, Data, Effect, Layer } from "effect"
|
|
2901
|
+
* ```ts import.meta.vitest
|
|
2902
|
+
* import { Context, Data, Effect, Exit, Layer } from "effect"
|
|
2767
2903
|
*
|
|
2768
2904
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2769
2905
|
* message: string
|
|
@@ -2774,10 +2910,11 @@ export declare const tapCause: {
|
|
|
2774
2910
|
* }>()("Database") {}
|
|
2775
2911
|
*
|
|
2776
2912
|
* // Layer that can fail during construction
|
|
2777
|
-
* const
|
|
2778
|
-
*
|
|
2779
|
-
*
|
|
2780
|
-
*
|
|
2913
|
+
* const error = new DatabaseError({ message: "Connection failed" })
|
|
2914
|
+
* const flakyDatabaseLayer = Layer.effect(
|
|
2915
|
+
* Database,
|
|
2916
|
+
* Effect.fail(error)
|
|
2917
|
+
* )
|
|
2781
2918
|
*
|
|
2782
2919
|
* // Convert failures to fiber death - removes error from type
|
|
2783
2920
|
* const reliableDatabaseLayer = flakyDatabaseLayer.pipe(Layer.orDie)
|
|
@@ -2790,8 +2927,7 @@ export declare const tapCause: {
|
|
|
2790
2927
|
* Effect.provide(reliableDatabaseLayer)
|
|
2791
2928
|
* )
|
|
2792
2929
|
*
|
|
2793
|
-
*
|
|
2794
|
-
* // converted into a fiber defect instead of remaining a typed error.
|
|
2930
|
+
* Effect.runSync(Effect.exit(program)) // => Exit.die(error)
|
|
2795
2931
|
* ```
|
|
2796
2932
|
*
|
|
2797
2933
|
* @category error handling
|
|
@@ -2827,7 +2963,7 @@ catch_ as catch };
|
|
|
2827
2963
|
*
|
|
2828
2964
|
* **Example** (Recovering from tagged layer errors)
|
|
2829
2965
|
*
|
|
2830
|
-
* ```ts
|
|
2966
|
+
* ```ts import.meta.vitest
|
|
2831
2967
|
* import { Context, Data, Effect, Layer } from "effect"
|
|
2832
2968
|
*
|
|
2833
2969
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
@@ -2843,6 +2979,8 @@ catch_ as catch };
|
|
|
2843
2979
|
* const recovered = configLayer.pipe(
|
|
2844
2980
|
* Layer.catchTag("ConfigError", () => fallbackLayer)
|
|
2845
2981
|
* )
|
|
2982
|
+
* const program = Config.useSync((config) => config.apiUrl)
|
|
2983
|
+
* Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
|
|
2846
2984
|
* ```
|
|
2847
2985
|
*
|
|
2848
2986
|
* @see {@link catchCause} for recovering with access to the full cause
|
|
@@ -2860,7 +2998,7 @@ export declare const catchTag: {
|
|
|
2860
2998
|
*
|
|
2861
2999
|
* **Example** (Recovering from tagged layer errors)
|
|
2862
3000
|
*
|
|
2863
|
-
* ```ts
|
|
3001
|
+
* ```ts import.meta.vitest
|
|
2864
3002
|
* import { Context, Data, Effect, Layer } from "effect"
|
|
2865
3003
|
*
|
|
2866
3004
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
@@ -2876,6 +3014,8 @@ export declare const catchTag: {
|
|
|
2876
3014
|
* const recovered = configLayer.pipe(
|
|
2877
3015
|
* Layer.catchTag("ConfigError", () => fallbackLayer)
|
|
2878
3016
|
* )
|
|
3017
|
+
* const program = Config.useSync((config) => config.apiUrl)
|
|
3018
|
+
* Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
|
|
2879
3019
|
* ```
|
|
2880
3020
|
*
|
|
2881
3021
|
* @see {@link catchCause} for recovering with access to the full cause
|
|
@@ -2893,7 +3033,7 @@ export declare const catchTag: {
|
|
|
2893
3033
|
*
|
|
2894
3034
|
* **Example** (Recovering from tagged layer errors)
|
|
2895
3035
|
*
|
|
2896
|
-
* ```ts
|
|
3036
|
+
* ```ts import.meta.vitest
|
|
2897
3037
|
* import { Context, Data, Effect, Layer } from "effect"
|
|
2898
3038
|
*
|
|
2899
3039
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
@@ -2909,6 +3049,8 @@ export declare const catchTag: {
|
|
|
2909
3049
|
* const recovered = configLayer.pipe(
|
|
2910
3050
|
* Layer.catchTag("ConfigError", () => fallbackLayer)
|
|
2911
3051
|
* )
|
|
3052
|
+
* const program = Config.useSync((config) => config.apiUrl)
|
|
3053
|
+
* Effect.runSync(Effect.provide(program, recovered)) // => "http://localhost"
|
|
2912
3054
|
* ```
|
|
2913
3055
|
*
|
|
2914
3056
|
* @see {@link catchCause} for recovering with access to the full cause
|
|
@@ -2935,7 +3077,7 @@ export declare const catchTag: {
|
|
|
2935
3077
|
*
|
|
2936
3078
|
* **Example** (Recovering from layer failures by cause)
|
|
2937
3079
|
*
|
|
2938
|
-
* ```ts
|
|
3080
|
+
* ```ts import.meta.vitest
|
|
2939
3081
|
* import { Context, Data, Effect, Layer } from "effect"
|
|
2940
3082
|
*
|
|
2941
3083
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
@@ -2960,14 +3102,12 @@ export declare const catchTag: {
|
|
|
2960
3102
|
*
|
|
2961
3103
|
* const program = Effect.gen(function*() {
|
|
2962
3104
|
* const database = yield* Database
|
|
2963
|
-
*
|
|
2964
|
-
* console.log(result)
|
|
3105
|
+
* return yield* database.query("SELECT * FROM users")
|
|
2965
3106
|
* }).pipe(
|
|
2966
3107
|
* Effect.provide(databaseWithFallback)
|
|
2967
3108
|
* )
|
|
2968
3109
|
*
|
|
2969
|
-
* Effect.runPromise(program)
|
|
2970
|
-
* // Memory: SELECT * FROM users
|
|
3110
|
+
* await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
|
|
2971
3111
|
* ```
|
|
2972
3112
|
*
|
|
2973
3113
|
* @see {@link catchTag} for recovering from specific tagged errors
|
|
@@ -2993,7 +3133,7 @@ export declare const catchCause: {
|
|
|
2993
3133
|
*
|
|
2994
3134
|
* **Example** (Recovering from layer failures by cause)
|
|
2995
3135
|
*
|
|
2996
|
-
* ```ts
|
|
3136
|
+
* ```ts import.meta.vitest
|
|
2997
3137
|
* import { Context, Data, Effect, Layer } from "effect"
|
|
2998
3138
|
*
|
|
2999
3139
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
@@ -3018,14 +3158,12 @@ export declare const catchCause: {
|
|
|
3018
3158
|
*
|
|
3019
3159
|
* const program = Effect.gen(function*() {
|
|
3020
3160
|
* const database = yield* Database
|
|
3021
|
-
*
|
|
3022
|
-
* console.log(result)
|
|
3161
|
+
* return yield* database.query("SELECT * FROM users")
|
|
3023
3162
|
* }).pipe(
|
|
3024
3163
|
* Effect.provide(databaseWithFallback)
|
|
3025
3164
|
* )
|
|
3026
3165
|
*
|
|
3027
|
-
* Effect.runPromise(program)
|
|
3028
|
-
* // Memory: SELECT * FROM users
|
|
3166
|
+
* await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
|
|
3029
3167
|
* ```
|
|
3030
3168
|
*
|
|
3031
3169
|
* @see {@link catchTag} for recovering from specific tagged errors
|
|
@@ -3051,7 +3189,7 @@ export declare const catchCause: {
|
|
|
3051
3189
|
*
|
|
3052
3190
|
* **Example** (Recovering from layer failures by cause)
|
|
3053
3191
|
*
|
|
3054
|
-
* ```ts
|
|
3192
|
+
* ```ts import.meta.vitest
|
|
3055
3193
|
* import { Context, Data, Effect, Layer } from "effect"
|
|
3056
3194
|
*
|
|
3057
3195
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
@@ -3076,14 +3214,12 @@ export declare const catchCause: {
|
|
|
3076
3214
|
*
|
|
3077
3215
|
* const program = Effect.gen(function*() {
|
|
3078
3216
|
* const database = yield* Database
|
|
3079
|
-
*
|
|
3080
|
-
* console.log(result)
|
|
3217
|
+
* return yield* database.query("SELECT * FROM users")
|
|
3081
3218
|
* }).pipe(
|
|
3082
3219
|
* Effect.provide(databaseWithFallback)
|
|
3083
3220
|
* )
|
|
3084
3221
|
*
|
|
3085
|
-
* Effect.runPromise(program)
|
|
3086
|
-
* // Memory: SELECT * FROM users
|
|
3222
|
+
* await Effect.runPromise(program) // => "Memory: SELECT * FROM users"
|
|
3087
3223
|
* ```
|
|
3088
3224
|
*
|
|
3089
3225
|
* @see {@link catchTag} for recovering from specific tagged errors
|
|
@@ -3166,7 +3302,7 @@ export declare const updateService: {
|
|
|
3166
3302
|
*
|
|
3167
3303
|
* **Example** (Creating non-shared layer instances)
|
|
3168
3304
|
*
|
|
3169
|
-
* ```ts
|
|
3305
|
+
* ```ts import.meta.vitest
|
|
3170
3306
|
* import { Context, Effect, Layer, Ref } from "effect"
|
|
3171
3307
|
*
|
|
3172
3308
|
* class Counter extends Context.Service<Counter, {
|
|
@@ -3191,10 +3327,10 @@ export declare const updateService: {
|
|
|
3191
3327
|
* return { counterId: counter.id }
|
|
3192
3328
|
* }))
|
|
3193
3329
|
*
|
|
3194
|
-
* const
|
|
3330
|
+
* const compareIds = Effect.gen(function*() {
|
|
3195
3331
|
* const left = yield* Left
|
|
3196
3332
|
* const right = yield* Right
|
|
3197
|
-
*
|
|
3333
|
+
* return left.counterId === right.counterId
|
|
3198
3334
|
* })
|
|
3199
3335
|
*
|
|
3200
3336
|
* const program = Effect.gen(function*() {
|
|
@@ -3202,7 +3338,6 @@ export declare const updateService: {
|
|
|
3202
3338
|
*
|
|
3203
3339
|
* const counterLayer = Layer.effect(Counter, Effect.gen(function*() {
|
|
3204
3340
|
* const id = yield* Ref.updateAndGet(nextId, (n) => n + 1)
|
|
3205
|
-
* console.log("constructed Counter")
|
|
3206
3341
|
* return { id }
|
|
3207
3342
|
* }))
|
|
3208
3343
|
*
|
|
@@ -3211,7 +3346,7 @@ export declare const updateService: {
|
|
|
3211
3346
|
* Layer.provide(rightLayer, counterLayer)
|
|
3212
3347
|
* )
|
|
3213
3348
|
*
|
|
3214
|
-
* yield* Effect.provide(
|
|
3349
|
+
* const sharedResult = yield* Effect.provide(compareIds, shared)
|
|
3215
3350
|
*
|
|
3216
3351
|
* const freshCounterLayer = Layer.fresh(counterLayer)
|
|
3217
3352
|
* const fresh = Layer.merge(
|
|
@@ -3219,15 +3354,12 @@ export declare const updateService: {
|
|
|
3219
3354
|
* Layer.provide(rightLayer, freshCounterLayer)
|
|
3220
3355
|
* )
|
|
3221
3356
|
*
|
|
3222
|
-
* yield* Effect.provide(
|
|
3357
|
+
* const freshResult = yield* Effect.provide(compareIds, fresh)
|
|
3358
|
+
*
|
|
3359
|
+
* return { shared: sharedResult, fresh: freshResult }
|
|
3223
3360
|
* })
|
|
3224
3361
|
*
|
|
3225
|
-
* Effect.runPromise(program)
|
|
3226
|
-
* // constructed Counter
|
|
3227
|
-
* // same Counter: true
|
|
3228
|
-
* // constructed Counter
|
|
3229
|
-
* // constructed Counter
|
|
3230
|
-
* // same Counter: false
|
|
3362
|
+
* await Effect.runPromise(program) // => { shared: true, fresh: false }
|
|
3231
3363
|
* ```
|
|
3232
3364
|
*
|
|
3233
3365
|
* @category layers
|
|
@@ -3249,50 +3381,30 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
|
|
|
3249
3381
|
*
|
|
3250
3382
|
* **Example** (Launching an application layer)
|
|
3251
3383
|
*
|
|
3252
|
-
* ```ts
|
|
3253
|
-
* import {
|
|
3384
|
+
* ```ts import.meta.vitest
|
|
3385
|
+
* import { Context, Deferred, Effect, Fiber, Layer, Ref } from "effect"
|
|
3254
3386
|
*
|
|
3255
3387
|
* class HttpServer extends Context.Service<HttpServer, {
|
|
3256
|
-
* readonly
|
|
3257
|
-
* readonly stop: () => Effect.Effect<string>
|
|
3388
|
+
* readonly port: number
|
|
3258
3389
|
* }>()("HttpServer") {}
|
|
3259
3390
|
*
|
|
3260
|
-
*
|
|
3261
|
-
*
|
|
3262
|
-
*
|
|
3263
|
-
*
|
|
3264
|
-
* // Server layer that starts an HTTP server
|
|
3265
|
-
* const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
|
|
3266
|
-
* yield* Console.log("Starting HTTP server...")
|
|
3391
|
+
* const program = Effect.gen(function*() {
|
|
3392
|
+
* const events = yield* Ref.make<Array<string>>([])
|
|
3393
|
+
* const started = yield* Deferred.make<void>()
|
|
3267
3394
|
*
|
|
3268
|
-
*
|
|
3269
|
-
*
|
|
3270
|
-
*
|
|
3271
|
-
*
|
|
3272
|
-
*
|
|
3273
|
-
* stop: Effect.fn("HttpServer.stop")(function*() {
|
|
3274
|
-
* yield* Console.log("Server stopped gracefully")
|
|
3275
|
-
* return "Server stopped"
|
|
3276
|
-
* })
|
|
3277
|
-
* }
|
|
3278
|
-
* }))
|
|
3395
|
+
* const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
|
|
3396
|
+
* yield* Ref.update(events, (events) => [...events, "Starting HTTP server..."])
|
|
3397
|
+
* yield* Deferred.succeed(started, undefined)
|
|
3398
|
+
* return { port: 3000 }
|
|
3399
|
+
* }))
|
|
3279
3400
|
*
|
|
3280
|
-
*
|
|
3281
|
-
*
|
|
3401
|
+
* const fiber = yield* Effect.forkChild(Layer.launch(serverLayer))
|
|
3402
|
+
* yield* Deferred.await(started)
|
|
3403
|
+
* yield* Fiber.interrupt(fiber)
|
|
3404
|
+
* return yield* Ref.get(events)
|
|
3282
3405
|
* })
|
|
3283
3406
|
*
|
|
3284
|
-
* //
|
|
3285
|
-
* const appLayer = Layer.mergeAll(serverLayer, loggerLayer)
|
|
3286
|
-
*
|
|
3287
|
-
* // Launch the application - runs until interrupted
|
|
3288
|
-
* const application = appLayer.pipe(
|
|
3289
|
-
* Layer.launch,
|
|
3290
|
-
* Effect.tapError((error) => Console.log(`Application failed: ${error}`)),
|
|
3291
|
-
* Effect.tap(() => Console.log("Application completed"))
|
|
3292
|
-
* )
|
|
3293
|
-
*
|
|
3294
|
-
* // This will run forever until externally interrupted
|
|
3295
|
-
* // Effect.runFork(application)
|
|
3407
|
+
* await Effect.runPromise(program) // => ["Starting HTTP server..."]
|
|
3296
3408
|
* ```
|
|
3297
3409
|
*
|
|
3298
3410
|
* @category converting
|
|
@@ -3340,7 +3452,7 @@ type AnyEffectOrStream = Effect<any, any, any> | Stream.Stream<any, any, any> |
|
|
|
3340
3452
|
*
|
|
3341
3453
|
* **Example** (Mocking services for tests)
|
|
3342
3454
|
*
|
|
3343
|
-
* ```ts
|
|
3455
|
+
* ```ts import.meta.vitest
|
|
3344
3456
|
* import { Context, Effect, Layer } from "effect"
|
|
3345
3457
|
*
|
|
3346
3458
|
* class UserService extends Context.Service<UserService, {
|
|
@@ -3368,13 +3480,15 @@ type AnyEffectOrStream = Effect<any, any, any> | Stream.Stream<any, any, any> |
|
|
|
3368
3480
|
*
|
|
3369
3481
|
* // This works - we provided an implementation
|
|
3370
3482
|
* const user = yield* userService.getUser("123")
|
|
3371
|
-
* console.log(user.name) // "Test User"
|
|
3372
3483
|
*
|
|
3373
3484
|
* // This would throw - we didn't implement deleteUser
|
|
3374
3485
|
* // yield* userService.deleteUser("123") // UnimplementedError
|
|
3486
|
+
*
|
|
3487
|
+
* return user.name
|
|
3375
3488
|
* }).pipe(
|
|
3376
3489
|
* Effect.provide(testUserLayer)
|
|
3377
3490
|
* )
|
|
3491
|
+
* Effect.runSync(testProgram) // => "Test User"
|
|
3378
3492
|
* ```
|
|
3379
3493
|
*
|
|
3380
3494
|
* @category testing
|
|
@@ -3396,7 +3510,7 @@ export declare const mock: {
|
|
|
3396
3510
|
*
|
|
3397
3511
|
* **Example** (Mocking services for tests)
|
|
3398
3512
|
*
|
|
3399
|
-
* ```ts
|
|
3513
|
+
* ```ts import.meta.vitest
|
|
3400
3514
|
* import { Context, Effect, Layer } from "effect"
|
|
3401
3515
|
*
|
|
3402
3516
|
* class UserService extends Context.Service<UserService, {
|
|
@@ -3424,13 +3538,15 @@ export declare const mock: {
|
|
|
3424
3538
|
*
|
|
3425
3539
|
* // This works - we provided an implementation
|
|
3426
3540
|
* const user = yield* userService.getUser("123")
|
|
3427
|
-
* console.log(user.name) // "Test User"
|
|
3428
3541
|
*
|
|
3429
3542
|
* // This would throw - we didn't implement deleteUser
|
|
3430
3543
|
* // yield* userService.deleteUser("123") // UnimplementedError
|
|
3544
|
+
*
|
|
3545
|
+
* return user.name
|
|
3431
3546
|
* }).pipe(
|
|
3432
3547
|
* Effect.provide(testUserLayer)
|
|
3433
3548
|
* )
|
|
3549
|
+
* Effect.runSync(testProgram) // => "Test User"
|
|
3434
3550
|
* ```
|
|
3435
3551
|
*
|
|
3436
3552
|
* @category testing
|
|
@@ -3452,7 +3568,7 @@ export declare const mock: {
|
|
|
3452
3568
|
*
|
|
3453
3569
|
* **Example** (Mocking services for tests)
|
|
3454
3570
|
*
|
|
3455
|
-
* ```ts
|
|
3571
|
+
* ```ts import.meta.vitest
|
|
3456
3572
|
* import { Context, Effect, Layer } from "effect"
|
|
3457
3573
|
*
|
|
3458
3574
|
* class UserService extends Context.Service<UserService, {
|
|
@@ -3480,13 +3596,15 @@ export declare const mock: {
|
|
|
3480
3596
|
*
|
|
3481
3597
|
* // This works - we provided an implementation
|
|
3482
3598
|
* const user = yield* userService.getUser("123")
|
|
3483
|
-
* console.log(user.name) // "Test User"
|
|
3484
3599
|
*
|
|
3485
3600
|
* // This would throw - we didn't implement deleteUser
|
|
3486
3601
|
* // yield* userService.deleteUser("123") // UnimplementedError
|
|
3602
|
+
*
|
|
3603
|
+
* return user.name
|
|
3487
3604
|
* }).pipe(
|
|
3488
3605
|
* Effect.provide(testUserLayer)
|
|
3489
3606
|
* )
|
|
3607
|
+
* Effect.runSync(testProgram) // => "Test User"
|
|
3490
3608
|
* ```
|
|
3491
3609
|
*
|
|
3492
3610
|
* @category testing
|
|
@@ -3504,22 +3622,17 @@ export declare const mock: {
|
|
|
3504
3622
|
*
|
|
3505
3623
|
* **Example** (Constraining layer success types)
|
|
3506
3624
|
*
|
|
3507
|
-
* ```ts
|
|
3508
|
-
* import { Layer } from "effect"
|
|
3625
|
+
* ```ts import.meta.vitest
|
|
3626
|
+
* import { Context, Layer } from "effect"
|
|
3509
3627
|
*
|
|
3510
|
-
*
|
|
3511
|
-
*
|
|
3628
|
+
* const NumberService = Context.Service<number>("Number")
|
|
3629
|
+
* const numberLayer = Layer.succeed(NumberService, 42)
|
|
3512
3630
|
*
|
|
3513
3631
|
* // Define a constraint that the success type must be a number
|
|
3514
3632
|
* const satisfiesNumber = Layer.satisfiesSuccessType<number>()
|
|
3515
3633
|
*
|
|
3516
3634
|
* // This works - Layer<42, never, never> extends Layer<number, never, never>
|
|
3517
|
-
* const validLayer = satisfiesNumber(
|
|
3518
|
-
*
|
|
3519
|
-
* // This would cause a TypeScript compilation error:
|
|
3520
|
-
* // const invalidLayer = satisfiesNumber(StringLayer)
|
|
3521
|
-
* // ^^^^^^^^^^^
|
|
3522
|
-
* // Type 'string' is not assignable to type 'number'
|
|
3635
|
+
* const validLayer = satisfiesNumber(numberLayer)
|
|
3523
3636
|
* ```
|
|
3524
3637
|
*
|
|
3525
3638
|
* @category utility types
|
|
@@ -3536,23 +3649,16 @@ export declare const satisfiesSuccessType: <ROut>() => <ROut2 extends ROut, E, R
|
|
|
3536
3649
|
*
|
|
3537
3650
|
* **Example** (Constraining layer error types)
|
|
3538
3651
|
*
|
|
3539
|
-
* ```ts
|
|
3540
|
-
* import { Layer } from "effect"
|
|
3652
|
+
* ```ts import.meta.vitest
|
|
3653
|
+
* import { Effect, Layer } from "effect"
|
|
3541
3654
|
*
|
|
3542
|
-
*
|
|
3543
|
-
* declare const TypeErrorLayer: Layer.Layer<never, TypeError, never>
|
|
3544
|
-
* declare const StringLayer: Layer.Layer<never, string, never>
|
|
3655
|
+
* const typeErrorLayer = Layer.effectDiscard(Effect.fail(new TypeError("boom")))
|
|
3545
3656
|
*
|
|
3546
3657
|
* // Define a constraint that the error type must be an Error
|
|
3547
3658
|
* const satisfiesError = Layer.satisfiesErrorType<Error>()
|
|
3548
3659
|
*
|
|
3549
3660
|
* // This works - Layer<never, TypeError, never> extends Layer<never, Error, never>
|
|
3550
|
-
* const validLayer = satisfiesError(
|
|
3551
|
-
*
|
|
3552
|
-
* // This would cause a TypeScript compilation error:
|
|
3553
|
-
* // const invalidLayer = satisfiesError(StringLayer)
|
|
3554
|
-
* // ^^^^^^^^^^^
|
|
3555
|
-
* // Type 'string' is not assignable to type 'Error'
|
|
3661
|
+
* const validLayer = satisfiesError(typeErrorLayer)
|
|
3556
3662
|
* ```
|
|
3557
3663
|
*
|
|
3558
3664
|
* @category utility types
|
|
@@ -3569,22 +3675,17 @@ export declare const satisfiesErrorType: <E>() => <ROut, E2 extends E, RIn>(laye
|
|
|
3569
3675
|
*
|
|
3570
3676
|
* **Example** (Constraining layer service requirements)
|
|
3571
3677
|
*
|
|
3572
|
-
* ```ts
|
|
3573
|
-
* import { Layer } from "effect"
|
|
3678
|
+
* ```ts import.meta.vitest
|
|
3679
|
+
* import { Context, Effect, Layer } from "effect"
|
|
3574
3680
|
*
|
|
3575
|
-
*
|
|
3576
|
-
*
|
|
3681
|
+
* const NumberService = Context.Service<number>("Number")
|
|
3682
|
+
* const numberLayer = Layer.effectDiscard(Effect.asVoid(NumberService))
|
|
3577
3683
|
*
|
|
3578
3684
|
* // Define a constraint that the service requirements must be numbers
|
|
3579
3685
|
* const satisfiesNumber = Layer.satisfiesServicesType<number>()
|
|
3580
3686
|
*
|
|
3581
3687
|
* // This works - Layer<never, never, 42> extends Layer<never, never, number>
|
|
3582
|
-
* const validLayer = satisfiesNumber(
|
|
3583
|
-
*
|
|
3584
|
-
* // This would cause a TypeScript compilation error:
|
|
3585
|
-
* // const invalidLayer = satisfiesNumber(StringLayer)
|
|
3586
|
-
* // ^^^^^^^^^^^
|
|
3587
|
-
* // Type 'string' is not assignable to type 'number'
|
|
3688
|
+
* const validLayer = satisfiesNumber(numberLayer)
|
|
3588
3689
|
* ```
|
|
3589
3690
|
*
|
|
3590
3691
|
* @category utility types
|
|
@@ -3633,38 +3734,37 @@ export interface SpanOptions extends Tracer.SpanOptions {
|
|
|
3633
3734
|
*
|
|
3634
3735
|
* **Example** (Tracing layer construction with a span)
|
|
3635
3736
|
*
|
|
3636
|
-
* ```ts
|
|
3637
|
-
* import {
|
|
3737
|
+
* ```ts import.meta.vitest
|
|
3738
|
+
* import { Context, Effect, Layer } from "effect"
|
|
3638
3739
|
* import type { Tracer } from "effect"
|
|
3639
3740
|
*
|
|
3640
3741
|
* class Database extends Context.Service<Database, {
|
|
3641
3742
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3642
3743
|
* }>()("Database") {}
|
|
3643
3744
|
*
|
|
3745
|
+
* const logs: Array<string> = []
|
|
3746
|
+
*
|
|
3644
3747
|
* // Create a traced layer - all operations performed during construction of
|
|
3645
3748
|
* // the `Database` service are part of the "database-init" span
|
|
3646
3749
|
* const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
3647
3750
|
* // These operations are traced under "database-init" span
|
|
3648
|
-
*
|
|
3649
|
-
*
|
|
3650
|
-
* yield* Effect.log("Database connected")
|
|
3751
|
+
* logs.push("Connecting to database")
|
|
3752
|
+
* logs.push("Database connected")
|
|
3651
3753
|
*
|
|
3652
3754
|
* const parentSpan = yield* Effect.currentParentSpan
|
|
3653
|
-
*
|
|
3755
|
+
* logs.push((parentSpan as Tracer.Span).name)
|
|
3654
3756
|
*
|
|
3655
3757
|
* return {
|
|
3656
3758
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
3657
3759
|
* }
|
|
3658
|
-
* })).pipe(Layer.provide(Layer.span("database-init"
|
|
3659
|
-
*
|
|
3660
|
-
* // Can also use the `onEnd` callback to execute logic when the span ends
|
|
3661
|
-
* const tracedLayer = Layer.span("service-initialization", {
|
|
3662
|
-
* attributes: { version: "1.0.0" },
|
|
3760
|
+
* })).pipe(Layer.provide(Layer.span("database-init", {
|
|
3663
3761
|
* onEnd: (span, exit) =>
|
|
3664
|
-
* Effect.sync(() => {
|
|
3665
|
-
*
|
|
3666
|
-
*
|
|
3667
|
-
*
|
|
3762
|
+
* Effect.sync(() => logs.push(`Span ${span.name} ended with: ${exit._tag}`))
|
|
3763
|
+
* })))
|
|
3764
|
+
*
|
|
3765
|
+
* const program = Database.use((database) => database.query("SELECT 1"))
|
|
3766
|
+
* Effect.runSync(Effect.provide(program, databaseLayer)) // => "Result: SELECT 1"
|
|
3767
|
+
* logs // => ["Connecting to database", "Database connected", "database-init", "Span database-init ended with: Success"]
|
|
3668
3768
|
* ```
|
|
3669
3769
|
*
|
|
3670
3770
|
* @category tracing
|
|
@@ -3682,10 +3782,11 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
|
|
|
3682
3782
|
*
|
|
3683
3783
|
* **Example** (Referencing an existing parent span)
|
|
3684
3784
|
*
|
|
3685
|
-
* ```ts
|
|
3686
|
-
* import {
|
|
3785
|
+
* ```ts import.meta.vitest
|
|
3786
|
+
* import { Context, Effect, Layer, Tracer } from "effect"
|
|
3687
3787
|
*
|
|
3688
3788
|
* class Database extends Context.Service<Database, {
|
|
3789
|
+
* readonly spanId: string
|
|
3689
3790
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3690
3791
|
* }>()("Database") {}
|
|
3691
3792
|
*
|
|
@@ -3693,12 +3794,10 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
|
|
|
3693
3794
|
* const databaseLayer = Layer.effect(
|
|
3694
3795
|
* Database,
|
|
3695
3796
|
* Effect.gen(function*() {
|
|
3696
|
-
* yield* Effect.log("Initializing database")
|
|
3697
|
-
*
|
|
3698
3797
|
* const parentSpan = yield* Effect.currentParentSpan
|
|
3699
|
-
* yield* Console.log(parentSpan.spanId) // "42"
|
|
3700
3798
|
*
|
|
3701
3799
|
* return {
|
|
3800
|
+
* spanId: parentSpan.spanId,
|
|
3702
3801
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
3703
3802
|
* }
|
|
3704
3803
|
* })
|
|
@@ -3706,6 +3805,9 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
|
|
|
3706
3805
|
* spanId: "42",
|
|
3707
3806
|
* traceId: "000"
|
|
3708
3807
|
* }))))
|
|
3808
|
+
* const program = Database.use((database) =>
|
|
3809
|
+
* Effect.map(database.query("SELECT 1"), (result) => ({ spanId: database.spanId, result })))
|
|
3810
|
+
* Effect.runSync(Effect.provide(program, databaseLayer)) // => { spanId: "42", result: "Result: SELECT 1" }
|
|
3709
3811
|
* ```
|
|
3710
3812
|
*
|
|
3711
3813
|
* @category tracing
|
|
@@ -3724,7 +3826,7 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
|
|
|
3724
3826
|
*
|
|
3725
3827
|
* **Example** (Wrapping a layer with a span)
|
|
3726
3828
|
*
|
|
3727
|
-
* ```ts
|
|
3829
|
+
* ```ts import.meta.vitest
|
|
3728
3830
|
* import { Context, Effect, Layer } from "effect"
|
|
3729
3831
|
*
|
|
3730
3832
|
* class Database extends Context.Service<Database, {
|
|
@@ -3735,10 +3837,10 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
|
|
|
3735
3837
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3736
3838
|
* }>()("Logger") {}
|
|
3737
3839
|
*
|
|
3840
|
+
* const logs: Array<string> = []
|
|
3841
|
+
*
|
|
3738
3842
|
* // Create layers with tracing
|
|
3739
3843
|
* const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
3740
|
-
* yield* Effect.log("Connecting to database")
|
|
3741
|
-
* yield* Effect.sleep("100 millis")
|
|
3742
3844
|
* return {
|
|
3743
3845
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
3744
3846
|
* }
|
|
@@ -3747,16 +3849,14 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
|
|
|
3747
3849
|
* }))
|
|
3748
3850
|
*
|
|
3749
3851
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
3750
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
3852
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
3751
3853
|
* }).pipe(Layer.withSpan("logger-initialization"))
|
|
3752
3854
|
*
|
|
3753
3855
|
* // Combine traced layers
|
|
3754
3856
|
* const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
|
|
3755
3857
|
* Layer.withSpan("app-initialization", {
|
|
3756
3858
|
* onEnd: (span, exit) =>
|
|
3757
|
-
* Effect.sync(() => {
|
|
3758
|
-
* console.log(`Application initialization completed: ${exit._tag}`)
|
|
3759
|
-
* })
|
|
3859
|
+
* Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
|
|
3760
3860
|
* })
|
|
3761
3861
|
* )
|
|
3762
3862
|
*
|
|
@@ -3767,6 +3867,8 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
|
|
|
3767
3867
|
* yield* logger.log("Application ready")
|
|
3768
3868
|
* return yield* database.query("SELECT * FROM users")
|
|
3769
3869
|
* }).pipe(Effect.provide(appLayer))
|
|
3870
|
+
* Effect.runSync(program) // => "Result: SELECT * FROM users"
|
|
3871
|
+
* logs // => ["Application ready", "Application initialization completed: Success"]
|
|
3770
3872
|
* ```
|
|
3771
3873
|
*
|
|
3772
3874
|
* @category tracing
|
|
@@ -3785,7 +3887,7 @@ export declare const withSpan: {
|
|
|
3785
3887
|
*
|
|
3786
3888
|
* **Example** (Wrapping a layer with a span)
|
|
3787
3889
|
*
|
|
3788
|
-
* ```ts
|
|
3890
|
+
* ```ts import.meta.vitest
|
|
3789
3891
|
* import { Context, Effect, Layer } from "effect"
|
|
3790
3892
|
*
|
|
3791
3893
|
* class Database extends Context.Service<Database, {
|
|
@@ -3796,10 +3898,10 @@ export declare const withSpan: {
|
|
|
3796
3898
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3797
3899
|
* }>()("Logger") {}
|
|
3798
3900
|
*
|
|
3901
|
+
* const logs: Array<string> = []
|
|
3902
|
+
*
|
|
3799
3903
|
* // Create layers with tracing
|
|
3800
3904
|
* const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
3801
|
-
* yield* Effect.log("Connecting to database")
|
|
3802
|
-
* yield* Effect.sleep("100 millis")
|
|
3803
3905
|
* return {
|
|
3804
3906
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
3805
3907
|
* }
|
|
@@ -3808,16 +3910,14 @@ export declare const withSpan: {
|
|
|
3808
3910
|
* }))
|
|
3809
3911
|
*
|
|
3810
3912
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
3811
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
3913
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
3812
3914
|
* }).pipe(Layer.withSpan("logger-initialization"))
|
|
3813
3915
|
*
|
|
3814
3916
|
* // Combine traced layers
|
|
3815
3917
|
* const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
|
|
3816
3918
|
* Layer.withSpan("app-initialization", {
|
|
3817
3919
|
* onEnd: (span, exit) =>
|
|
3818
|
-
* Effect.sync(() => {
|
|
3819
|
-
* console.log(`Application initialization completed: ${exit._tag}`)
|
|
3820
|
-
* })
|
|
3920
|
+
* Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
|
|
3821
3921
|
* })
|
|
3822
3922
|
* )
|
|
3823
3923
|
*
|
|
@@ -3828,6 +3928,8 @@ export declare const withSpan: {
|
|
|
3828
3928
|
* yield* logger.log("Application ready")
|
|
3829
3929
|
* return yield* database.query("SELECT * FROM users")
|
|
3830
3930
|
* }).pipe(Effect.provide(appLayer))
|
|
3931
|
+
* Effect.runSync(program) // => "Result: SELECT * FROM users"
|
|
3932
|
+
* logs // => ["Application ready", "Application initialization completed: Success"]
|
|
3831
3933
|
* ```
|
|
3832
3934
|
*
|
|
3833
3935
|
* @category tracing
|
|
@@ -3846,7 +3948,7 @@ export declare const withSpan: {
|
|
|
3846
3948
|
*
|
|
3847
3949
|
* **Example** (Wrapping a layer with a span)
|
|
3848
3950
|
*
|
|
3849
|
-
* ```ts
|
|
3951
|
+
* ```ts import.meta.vitest
|
|
3850
3952
|
* import { Context, Effect, Layer } from "effect"
|
|
3851
3953
|
*
|
|
3852
3954
|
* class Database extends Context.Service<Database, {
|
|
@@ -3857,10 +3959,10 @@ export declare const withSpan: {
|
|
|
3857
3959
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3858
3960
|
* }>()("Logger") {}
|
|
3859
3961
|
*
|
|
3962
|
+
* const logs: Array<string> = []
|
|
3963
|
+
*
|
|
3860
3964
|
* // Create layers with tracing
|
|
3861
3965
|
* const databaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
3862
|
-
* yield* Effect.log("Connecting to database")
|
|
3863
|
-
* yield* Effect.sleep("100 millis")
|
|
3864
3966
|
* return {
|
|
3865
3967
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
3866
3968
|
* }
|
|
@@ -3869,16 +3971,14 @@ export declare const withSpan: {
|
|
|
3869
3971
|
* }))
|
|
3870
3972
|
*
|
|
3871
3973
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
3872
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() =>
|
|
3974
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => logs.push(msg)))
|
|
3873
3975
|
* }).pipe(Layer.withSpan("logger-initialization"))
|
|
3874
3976
|
*
|
|
3875
3977
|
* // Combine traced layers
|
|
3876
3978
|
* const appLayer = Layer.mergeAll(databaseLayer, loggerLayer).pipe(
|
|
3877
3979
|
* Layer.withSpan("app-initialization", {
|
|
3878
3980
|
* onEnd: (span, exit) =>
|
|
3879
|
-
* Effect.sync(() => {
|
|
3880
|
-
* console.log(`Application initialization completed: ${exit._tag}`)
|
|
3881
|
-
* })
|
|
3981
|
+
* Effect.sync(() => logs.push(`Application initialization completed: ${exit._tag}`))
|
|
3882
3982
|
* })
|
|
3883
3983
|
* )
|
|
3884
3984
|
*
|
|
@@ -3889,6 +3989,8 @@ export declare const withSpan: {
|
|
|
3889
3989
|
* yield* logger.log("Application ready")
|
|
3890
3990
|
* return yield* database.query("SELECT * FROM users")
|
|
3891
3991
|
* }).pipe(Effect.provide(appLayer))
|
|
3992
|
+
* Effect.runSync(program) // => "Result: SELECT * FROM users"
|
|
3993
|
+
* logs // => ["Application ready", "Application initialization completed: Success"]
|
|
3892
3994
|
* ```
|
|
3893
3995
|
*
|
|
3894
3996
|
* @category tracing
|
|
@@ -3912,7 +4014,7 @@ export declare const withSpan: {
|
|
|
3912
4014
|
*
|
|
3913
4015
|
* **Example** (Attaching layers to an existing parent span)
|
|
3914
4016
|
*
|
|
3915
|
-
* ```ts
|
|
4017
|
+
* ```ts import.meta.vitest
|
|
3916
4018
|
* import { Context, Effect, Layer, Tracer } from "effect"
|
|
3917
4019
|
*
|
|
3918
4020
|
* class Database extends Context.Service<Database, {
|
|
@@ -3925,14 +4027,12 @@ export declare const withSpan: {
|
|
|
3925
4027
|
*
|
|
3926
4028
|
* // Create layers
|
|
3927
4029
|
* const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
3928
|
-
* yield* Effect.log("Connecting to database")
|
|
3929
4030
|
* return {
|
|
3930
4031
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
3931
4032
|
* }
|
|
3932
4033
|
* }))
|
|
3933
4034
|
*
|
|
3934
4035
|
* const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
|
|
3935
|
-
* yield* Effect.log("Connecting to cache")
|
|
3936
4036
|
* return {
|
|
3937
4037
|
* get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
|
|
3938
4038
|
* }
|
|
@@ -3958,6 +4058,7 @@ export declare const withSpan: {
|
|
|
3958
4058
|
* return { dbResult, cacheResult }
|
|
3959
4059
|
* })
|
|
3960
4060
|
* )
|
|
4061
|
+
* Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
|
|
3961
4062
|
* ```
|
|
3962
4063
|
*
|
|
3963
4064
|
* @category tracing
|
|
@@ -3980,7 +4081,7 @@ export declare const withParentSpan: {
|
|
|
3980
4081
|
*
|
|
3981
4082
|
* **Example** (Attaching layers to an existing parent span)
|
|
3982
4083
|
*
|
|
3983
|
-
* ```ts
|
|
4084
|
+
* ```ts import.meta.vitest
|
|
3984
4085
|
* import { Context, Effect, Layer, Tracer } from "effect"
|
|
3985
4086
|
*
|
|
3986
4087
|
* class Database extends Context.Service<Database, {
|
|
@@ -3993,14 +4094,12 @@ export declare const withParentSpan: {
|
|
|
3993
4094
|
*
|
|
3994
4095
|
* // Create layers
|
|
3995
4096
|
* const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
3996
|
-
* yield* Effect.log("Connecting to database")
|
|
3997
4097
|
* return {
|
|
3998
4098
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
3999
4099
|
* }
|
|
4000
4100
|
* }))
|
|
4001
4101
|
*
|
|
4002
4102
|
* const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
|
|
4003
|
-
* yield* Effect.log("Connecting to cache")
|
|
4004
4103
|
* return {
|
|
4005
4104
|
* get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
|
|
4006
4105
|
* }
|
|
@@ -4026,6 +4125,7 @@ export declare const withParentSpan: {
|
|
|
4026
4125
|
* return { dbResult, cacheResult }
|
|
4027
4126
|
* })
|
|
4028
4127
|
* )
|
|
4128
|
+
* Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
|
|
4029
4129
|
* ```
|
|
4030
4130
|
*
|
|
4031
4131
|
* @category tracing
|
|
@@ -4048,7 +4148,7 @@ export declare const withParentSpan: {
|
|
|
4048
4148
|
*
|
|
4049
4149
|
* **Example** (Attaching layers to an existing parent span)
|
|
4050
4150
|
*
|
|
4051
|
-
* ```ts
|
|
4151
|
+
* ```ts import.meta.vitest
|
|
4052
4152
|
* import { Context, Effect, Layer, Tracer } from "effect"
|
|
4053
4153
|
*
|
|
4054
4154
|
* class Database extends Context.Service<Database, {
|
|
@@ -4061,14 +4161,12 @@ export declare const withParentSpan: {
|
|
|
4061
4161
|
*
|
|
4062
4162
|
* // Create layers
|
|
4063
4163
|
* const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
4064
|
-
* yield* Effect.log("Connecting to database")
|
|
4065
4164
|
* return {
|
|
4066
4165
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
4067
4166
|
* }
|
|
4068
4167
|
* }))
|
|
4069
4168
|
*
|
|
4070
4169
|
* const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
|
|
4071
|
-
* yield* Effect.log("Connecting to cache")
|
|
4072
4170
|
* return {
|
|
4073
4171
|
* get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
|
|
4074
4172
|
* }
|
|
@@ -4094,6 +4192,7 @@ export declare const withParentSpan: {
|
|
|
4094
4192
|
* return { dbResult, cacheResult }
|
|
4095
4193
|
* })
|
|
4096
4194
|
* )
|
|
4195
|
+
* Effect.runSync(Effect.scoped(program)) // => { dbResult: "DB: SELECT * FROM users", cacheResult: "Cache: user:123" }
|
|
4097
4196
|
* ```
|
|
4098
4197
|
*
|
|
4099
4198
|
* @category tracing
|