effect 4.0.0-beta.69 → 4.0.0-beta.70
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 +454 -0
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +152 -0
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +87 -33
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +37 -11
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +71 -14
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +35 -10
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +4 -0
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +4 -0
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +16 -11
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +16 -11
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +13 -1
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +8 -0
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +95 -3
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +56 -2
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +312 -0
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +126 -0
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +20 -0
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js +12 -0
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +59 -22
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +29 -10
- package/dist/Chunk.js.map +1 -1
- package/dist/Combiner.d.ts +75 -71
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +67 -62
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +167 -46
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +108 -28
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +235 -158
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +144 -93
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +21 -79
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +20 -75
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +4 -4
- package/dist/Context.js +2 -2
- package/dist/Cron.d.ts +42 -16
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +33 -13
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +6 -0
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +132 -70
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +44 -29
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +227 -14
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +115 -6
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +94 -27
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +33 -8
- package/dist/Deferred.js.map +1 -1
- package/dist/Differ.d.ts +2 -0
- package/dist/Differ.d.ts.map +1 -1
- package/dist/Duration.d.ts +64 -6
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +26 -2
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +907 -603
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +360 -233
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +3 -1
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Effectable.js +3 -1
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +16 -0
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +16 -0
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +52 -40
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +32 -26
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +190 -153
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +129 -104
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +35 -14
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +18 -6
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +10 -3
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +4 -3
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +212 -6
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +139 -2
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +8 -0
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +4 -0
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +46 -23
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +27 -11
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +43 -4
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +27 -4
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +21 -6
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +17 -6
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +64 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +26 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +53 -21
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +20 -9
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +21 -22
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +12 -12
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +67 -75
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +29 -19
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +51 -13
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +19 -3
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +22 -21
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +33 -10
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +27 -10
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +50 -9
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +17 -3
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +4 -0
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +2 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +2 -0
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +15 -2
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +11 -2
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +104 -22
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +46 -12
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +61 -80
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +35 -42
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +16 -20
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +16 -20
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +123 -73
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +95 -53
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +28 -2
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +22 -2
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +781 -335
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +324 -129
- package/dist/Layer.js.map +1 -1
- package/dist/LogLevel.d.ts +86 -13
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +30 -4
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +63 -51
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +61 -51
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +12 -0
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +1 -0
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +83 -1
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +31 -1
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +89 -12
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +53 -8
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +14 -0
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +4 -0
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +2 -0
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +24 -6
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +22 -6
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +2 -0
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +69 -30
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +52 -22
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +6 -0
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +2 -0
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +16 -30
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +6 -12
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +90 -40
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +48 -24
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +121 -111
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +56 -54
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +169 -167
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +135 -135
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +4 -0
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +2 -0
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +7 -5
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +5 -5
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +8 -0
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +4 -0
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +10 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +8 -0
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +12 -0
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +10 -0
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +30 -16
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +30 -16
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +520 -352
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +271 -184
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +4 -0
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +2 -0
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +22 -4
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +17 -3
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +16 -0
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +10 -0
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +44 -0
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +28 -0
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +25 -6
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +11 -2
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +10 -6
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +2 -2
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +3 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +24 -3
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +12 -3
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +54 -41
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +42 -32
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +10 -0
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +6 -0
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +20 -11
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +10 -6
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +45 -24
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +41 -21
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +18 -1
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +17 -1
- package/dist/References.js.map +1 -1
- package/dist/Request.d.ts +3 -3
- package/dist/Request.js +2 -2
- package/dist/RequestResolver.d.ts +7 -17
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +3 -5
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +2 -0
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +2 -0
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +188 -6
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +84 -2
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +14 -11
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +11 -9
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +27 -3
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +21 -2
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +22 -19
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +14 -12
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +547 -130
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +409 -121
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +123 -65
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +90 -39
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +269 -234
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +245 -215
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +48 -46
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +34 -34
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +58 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +58 -0
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +198 -96
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +107 -45
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +272 -203
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +249 -187
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/SchemaUtils.d.ts +2 -0
- package/dist/SchemaUtils.d.ts.map +1 -1
- package/dist/SchemaUtils.js +2 -0
- package/dist/SchemaUtils.js.map +1 -1
- package/dist/Scope.d.ts +18 -0
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +12 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +44 -0
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +18 -0
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +9 -3
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +3 -1
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +6 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +4 -0
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +108 -0
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +54 -0
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +7 -3
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +2 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +416 -16
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +164 -8
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +14 -0
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +6 -0
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +371 -191
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +144 -77
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +7 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +5 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -0
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -0
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Tracer.d.ts +17 -27
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +8 -12
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +23 -9
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +13 -3
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +287 -144
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +135 -66
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +182 -93
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +68 -35
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +3 -4
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +163 -86
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +57 -30
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +24 -27
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +9 -6
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +2 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +36 -35
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +22 -21
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +77 -114
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +45 -62
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxRef.d.ts +4 -0
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +2 -0
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +66 -27
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +38 -15
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/Types.d.ts +202 -75
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.d.ts +31 -29
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +27 -21
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +28 -0
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +2 -0
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +29 -35
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +11 -13
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +18 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -7
- package/dist/index.js.map +1 -1
- package/dist/testing/TestClock.d.ts +17 -17
- package/dist/testing/TestClock.js +1 -1
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +2 -0
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +43 -55
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +43 -55
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +62 -11
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +58 -11
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +4 -4
- package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -4
- package/dist/unstable/ai/Chat.d.ts +29 -1
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +15 -1
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +10 -0
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +8 -0
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +32 -46
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +5 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +84 -32
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +73 -28
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +8 -0
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +6 -0
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +9 -5
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +4 -0
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +3 -2
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +3 -2
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +62 -35
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +16 -15
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +40 -21
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +10 -0
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +8 -0
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js +4 -0
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +30 -5
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +7 -1
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +6 -0
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +4 -0
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +68 -0
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +36 -0
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +12 -0
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +6 -0
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +14 -4
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +4 -0
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +6 -0
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +4 -0
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +123 -12
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +57 -4
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +31 -14
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +23 -10
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/Param.d.ts +10 -0
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +46 -5
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +10 -0
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +10 -0
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +47 -40
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +25 -20
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +1 -0
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +10 -2
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js +3 -0
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +8 -1
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +10 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +2 -0
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -0
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +8 -0
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +4 -0
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -0
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.d.ts +3 -4
- package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +24 -0
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +12 -0
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +10 -4
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts +6 -0
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +4 -0
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +10 -0
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +8 -0
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +16 -0
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +10 -0
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +16 -0
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +16 -0
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +8 -0
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +8 -0
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +24 -0
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +18 -0
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +64 -20
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +8 -0
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +6 -6
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +4 -3
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +2 -0
- package/dist/unstable/cluster/Runner.d.ts.map +1 -1
- package/dist/unstable/cluster/Runner.js +2 -0
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +13 -2
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +13 -2
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +8 -8
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +8 -8
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +2 -0
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +2 -0
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/ShardId.d.ts +4 -0
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +4 -0
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +2 -0
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +2 -0
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.d.ts +3 -2
- package/dist/unstable/cluster/TestRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/TestRunner.js +3 -2
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +34 -2
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +14 -0
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.d.ts +4 -0
- package/dist/unstable/devtools/DevToolsServer.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js +2 -0
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +24 -0
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +18 -0
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +46 -2
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +30 -2
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +24 -17
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +20 -11
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +16 -0
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +4 -0
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +2 -0
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +20 -0
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +18 -0
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +22 -0
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +18 -0
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +10 -0
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +10 -0
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +4 -0
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +4 -0
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +4 -0
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +4 -0
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +6 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +6 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +8 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +8 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +11 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +11 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.d.ts +2 -0
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +2 -0
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts +2 -0
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +2 -0
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +2 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +2 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +34 -0
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +18 -0
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +4 -0
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts +4 -0
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js +4 -0
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +60 -0
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +24 -0
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +32 -0
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +22 -0
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +44 -0
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +14 -0
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +2 -0
- 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 +6 -0
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +6 -0
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +4 -0
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +4 -0
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +2 -0
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +2 -0
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +54 -16
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +26 -1
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +35 -1
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +17 -1
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +17 -3
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +16 -0
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +30 -0
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +28 -0
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +8 -0
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +6 -0
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +96 -0
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +50 -0
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.d.ts +12 -0
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js +10 -0
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +49 -2
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +35 -2
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Template.d.ts +14 -0
- package/dist/unstable/http/Template.d.ts.map +1 -1
- package/dist/unstable/http/Template.js +4 -0
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +64 -0
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +28 -0
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts +10 -4
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +4 -0
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +9 -4
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +5 -4
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +2 -0
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +2 -0
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +23 -14
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +6 -3
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +14 -0
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +6 -0
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +38 -15
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js +4 -0
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +14 -3
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +10 -0
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +17 -11
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js +17 -11
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts +2 -4
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js +2 -4
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.d.ts +2 -0
- package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js +2 -0
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +2 -0
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +2 -0
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +2 -0
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/Otlp.js +2 -0
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -0
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +2 -0
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -0
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +4 -0
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +8 -9
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +3 -3
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +8 -0
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +8 -0
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +3 -2
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +3 -2
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +6 -2
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +6 -2
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +10 -0
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +8 -0
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -0
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +2 -0
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +2 -0
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -0
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +21 -6
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +10 -0
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +14 -0
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +14 -0
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +6 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +4 -0
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +6 -0
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +4 -0
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +70 -19
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +10 -0
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +20 -4
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +105 -14
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +53 -8
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +4 -0
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +2 -0
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.d.ts +8 -0
- package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js +2 -0
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +32 -0
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +12 -0
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +8 -6
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +4 -3
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +6 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
- package/dist/unstable/reactivity/Hydration.js +4 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +27 -3
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +15 -3
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +38 -2
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +12 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +6 -0
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +6 -0
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +5 -3
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +5 -3
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +43 -12
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +41 -12
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +6 -4
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +6 -4
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +8 -4
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +3 -0
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +3 -0
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +42 -34
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +18 -19
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +454 -0
- package/src/BigDecimal.ts +87 -33
- package/src/BigInt.ts +71 -14
- package/src/Boolean.ts +4 -0
- package/src/Brand.ts +16 -11
- package/src/Cache.ts +17 -1
- package/src/Cause.ts +95 -3
- package/src/Channel.ts +326 -0
- package/src/ChannelSchema.ts +24 -0
- package/src/Chunk.ts +59 -22
- package/src/Combiner.ts +75 -71
- package/src/Config.ts +167 -46
- package/src/ConfigProvider.ts +235 -158
- package/src/Console.ts +25 -99
- package/src/Context.ts +4 -4
- package/src/Cron.ts +42 -16
- package/src/Crypto.ts +6 -0
- package/src/Data.ts +132 -70
- package/src/DateTime.ts +227 -14
- package/src/Deferred.ts +94 -27
- package/src/Differ.ts +2 -0
- package/src/Duration.ts +64 -6
- package/src/Effect.ts +909 -605
- package/src/Effectable.ts +3 -1
- package/src/Encoding.ts +16 -0
- package/src/Equal.ts +52 -40
- package/src/Equivalence.ts +190 -153
- package/src/ErrorReporter.ts +35 -14
- package/src/ExecutionPlan.ts +10 -3
- package/src/Exit.ts +212 -6
- package/src/Fiber.ts +8 -0
- package/src/FiberHandle.ts +46 -23
- package/src/FiberMap.ts +43 -4
- package/src/FiberSet.ts +21 -6
- package/src/FileSystem.ts +64 -0
- package/src/Filter.ts +53 -21
- package/src/Formatter.ts +21 -22
- package/src/Function.ts +67 -75
- package/src/Graph.ts +51 -13
- package/src/HKT.ts +22 -21
- package/src/Hash.ts +33 -10
- package/src/HashMap.ts +50 -9
- package/src/HashRing.ts +4 -0
- package/src/HashSet.ts +2 -0
- package/src/Inspectable.ts +15 -2
- package/src/Iterable.ts +104 -22
- package/src/JsonPatch.ts +61 -80
- package/src/JsonPointer.ts +16 -20
- package/src/JsonSchema.ts +123 -73
- package/src/Latch.ts +28 -2
- package/src/Layer.ts +781 -335
- package/src/LogLevel.ts +86 -13
- package/src/Logger.ts +71 -51
- package/src/ManagedRuntime.ts +12 -0
- package/src/Match.ts +83 -1
- package/src/Metric.ts +105 -12
- package/src/MutableHashMap.ts +18 -0
- package/src/MutableHashSet.ts +2 -0
- package/src/MutableList.ts +24 -6
- package/src/MutableRef.ts +2 -0
- package/src/Newtype.ts +69 -30
- package/src/NonEmptyIterable.ts +6 -0
- package/src/Number.ts +16 -30
- package/src/Optic.ts +90 -40
- package/src/Option.ts +121 -111
- package/src/Order.ts +169 -167
- package/src/Ordering.ts +4 -0
- package/src/PartitionedSemaphore.ts +7 -5
- package/src/Path.ts +8 -0
- package/src/Pipeable.ts +10 -0
- package/src/PlatformError.ts +12 -0
- package/src/Pool.ts +30 -16
- package/src/Predicate.ts +520 -352
- package/src/PrimaryKey.ts +4 -0
- package/src/PubSub.ts +23 -5
- package/src/Pull.ts +16 -0
- package/src/Queue.ts +44 -0
- package/src/Random.ts +25 -6
- package/src/RcMap.ts +10 -6
- package/src/RcRef.ts +3 -1
- package/src/Record.ts +24 -3
- package/src/Redactable.ts +54 -41
- package/src/Redacted.ts +10 -0
- package/src/Reducer.ts +20 -11
- package/src/Ref.ts +95 -58
- package/src/References.ts +18 -1
- package/src/Request.ts +3 -3
- package/src/RequestResolver.ts +8 -22
- package/src/Resource.ts +2 -0
- package/src/Result.ts +192 -6
- package/src/Runtime.ts +14 -11
- package/src/Schedule.ts +35 -3
- package/src/Scheduler.ts +22 -19
- package/src/Schema.ts +547 -130
- package/src/SchemaAST.ts +123 -65
- package/src/SchemaGetter.ts +269 -234
- package/src/SchemaIssue.ts +48 -46
- package/src/SchemaParser.ts +58 -0
- package/src/SchemaRepresentation.ts +198 -96
- package/src/SchemaTransformation.ts +272 -203
- package/src/SchemaUtils.ts +2 -0
- package/src/Scope.ts +19 -1
- package/src/ScopedCache.ts +56 -0
- package/src/ScopedRef.ts +9 -3
- package/src/Semaphore.ts +6 -0
- package/src/Sink.ts +108 -0
- package/src/Stdio.ts +7 -3
- package/src/Stream.ts +464 -16
- package/src/String.ts +14 -0
- package/src/Struct.ts +371 -191
- package/src/SubscriptionRef.ts +7 -1
- package/src/SynchronizedRef.ts +2 -0
- package/src/Tracer.ts +17 -27
- package/src/Trie.ts +23 -9
- package/src/Tuple.ts +287 -144
- package/src/TxChunk.ts +182 -93
- package/src/TxDeferred.ts +3 -4
- package/src/TxHashMap.ts +171 -90
- package/src/TxHashSet.ts +36 -35
- package/src/TxPriorityQueue.ts +2 -0
- package/src/TxPubSub.ts +36 -35
- package/src/TxQueue.ts +77 -114
- package/src/TxRef.ts +4 -0
- package/src/TxSemaphore.ts +66 -27
- package/src/Types.ts +202 -75
- package/src/UndefinedOr.ts +31 -29
- package/src/Unify.ts +28 -0
- package/src/Utils.ts +29 -35
- package/src/index.ts +18 -7
- package/src/testing/TestClock.ts +16 -16
- package/src/testing/TestConsole.ts +2 -0
- package/src/testing/TestSchema.ts +43 -55
- package/src/unstable/ai/AiError.ts +62 -11
- package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -4
- package/src/unstable/ai/Chat.ts +29 -1
- package/src/unstable/ai/IdGenerator.ts +10 -0
- package/src/unstable/ai/LanguageModel.ts +32 -46
- package/src/unstable/ai/McpSchema.ts +84 -32
- package/src/unstable/ai/McpServer.ts +8 -0
- package/src/unstable/ai/Model.ts +9 -5
- package/src/unstable/ai/OpenAiStructuredOutput.ts +3 -2
- package/src/unstable/ai/Prompt.ts +62 -35
- package/src/unstable/ai/Response.ts +40 -21
- package/src/unstable/ai/ResponseIdTracker.ts +8 -0
- package/src/unstable/ai/Telemetry.ts +30 -5
- package/src/unstable/ai/Tokenizer.ts +6 -0
- package/src/unstable/ai/Tool.ts +68 -0
- package/src/unstable/ai/Toolkit.ts +12 -0
- package/src/unstable/cli/Argument.ts +14 -4
- package/src/unstable/cli/CliError.ts +6 -0
- package/src/unstable/cli/Command.ts +128 -12
- package/src/unstable/cli/Flag.ts +31 -14
- package/src/unstable/cli/Param.ts +96 -9
- package/src/unstable/cli/Primitive.ts +10 -0
- package/src/unstable/cli/Prompt.ts +47 -40
- package/src/unstable/cli/internal/command.ts +11 -2
- package/src/unstable/cli/internal/completions/descriptor.ts +3 -0
- package/src/unstable/cli/internal/parser.ts +8 -1
- package/src/unstable/cluster/ClusterCron.ts +10 -1
- package/src/unstable/cluster/ClusterSchema.ts +8 -0
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +4 -0
- package/src/unstable/cluster/DeliverAt.ts +3 -4
- package/src/unstable/cluster/Entity.ts +24 -0
- package/src/unstable/cluster/EntityProxy.ts +10 -4
- package/src/unstable/cluster/EntityProxyServer.ts +6 -0
- package/src/unstable/cluster/EntityResource.ts +10 -0
- package/src/unstable/cluster/Envelope.ts +16 -0
- package/src/unstable/cluster/HttpRunner.ts +16 -0
- package/src/unstable/cluster/K8sHttpClient.ts +8 -0
- package/src/unstable/cluster/Message.ts +24 -0
- package/src/unstable/cluster/MessageStorage.ts +44 -10
- package/src/unstable/cluster/Reply.ts +6 -6
- package/src/unstable/cluster/Runner.ts +2 -0
- package/src/unstable/cluster/RunnerHealth.ts +13 -2
- package/src/unstable/cluster/RunnerServer.ts +8 -8
- package/src/unstable/cluster/RunnerStorage.ts +2 -0
- package/src/unstable/cluster/ShardId.ts +4 -0
- package/src/unstable/cluster/Snowflake.ts +2 -0
- package/src/unstable/cluster/TestRunner.ts +3 -2
- package/src/unstable/devtools/DevToolsSchema.ts +34 -2
- package/src/unstable/devtools/DevToolsServer.ts +4 -0
- package/src/unstable/encoding/Msgpack.ts +24 -0
- package/src/unstable/encoding/Ndjson.ts +46 -2
- package/src/unstable/encoding/Sse.ts +24 -17
- package/src/unstable/eventlog/Event.ts +16 -0
- package/src/unstable/eventlog/EventGroup.ts +4 -0
- package/src/unstable/eventlog/EventJournal.ts +20 -0
- package/src/unstable/eventlog/EventLog.ts +22 -0
- package/src/unstable/eventlog/EventLogMessage.ts +10 -0
- package/src/unstable/eventlog/EventLogRemote.ts +4 -0
- package/src/unstable/eventlog/EventLogServer.ts +4 -0
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +6 -0
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +8 -0
- package/src/unstable/eventlog/EventLogSessionAuth.ts +11 -1
- package/src/unstable/eventlog/SqlEventJournal.ts +2 -0
- package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +2 -0
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +2 -0
- package/src/unstable/http/Cookies.ts +34 -0
- package/src/unstable/http/Etag.ts +4 -0
- package/src/unstable/http/FetchHttpClient.ts +4 -0
- package/src/unstable/http/Headers.ts +88 -0
- package/src/unstable/http/HttpBody.ts +32 -0
- package/src/unstable/http/HttpClient.ts +44 -0
- package/src/unstable/http/HttpClientRequest.ts +2 -0
- package/src/unstable/http/HttpClientResponse.ts +6 -0
- package/src/unstable/http/HttpEffect.ts +4 -0
- package/src/unstable/http/HttpPlatform.ts +2 -0
- package/src/unstable/http/HttpRouter.ts +54 -16
- package/src/unstable/http/HttpServer.ts +35 -1
- package/src/unstable/http/HttpServerError.ts +17 -3
- package/src/unstable/http/HttpServerRequest.ts +30 -0
- package/src/unstable/http/HttpServerRespondable.ts +8 -0
- package/src/unstable/http/HttpServerResponse.ts +96 -0
- package/src/unstable/http/HttpTraceContext.ts +12 -0
- package/src/unstable/http/Multipart.ts +49 -2
- package/src/unstable/http/Template.ts +14 -0
- package/src/unstable/http/UrlParams.ts +64 -0
- package/src/unstable/httpapi/HttpApi.ts +10 -4
- package/src/unstable/httpapi/HttpApiBuilder.ts +9 -4
- package/src/unstable/httpapi/HttpApiEndpoint.ts +2 -0
- package/src/unstable/httpapi/HttpApiGroup.ts +23 -14
- package/src/unstable/httpapi/HttpApiMiddleware.ts +14 -0
- package/src/unstable/httpapi/HttpApiScalar.ts +38 -15
- package/src/unstable/httpapi/HttpApiSchema.ts +14 -3
- package/src/unstable/httpapi/HttpApiSecurity.ts +17 -11
- package/src/unstable/httpapi/HttpApiSwagger.ts +2 -4
- package/src/unstable/httpapi/HttpApiTest.ts +2 -0
- package/src/unstable/httpapi/OpenApi.ts +2 -0
- package/src/unstable/observability/Otlp.ts +2 -0
- package/src/unstable/observability/OtlpExporter.ts +2 -0
- package/src/unstable/observability/OtlpLogger.ts +4 -0
- package/src/unstable/observability/OtlpMetrics.ts +8 -9
- package/src/unstable/observability/OtlpResource.ts +8 -0
- package/src/unstable/observability/OtlpTracer.ts +3 -2
- package/src/unstable/observability/PrometheusMetrics.ts +6 -2
- package/src/unstable/persistence/KeyValueStore.ts +10 -0
- package/src/unstable/persistence/Persistable.ts +2 -0
- package/src/unstable/persistence/PersistedCache.ts +2 -0
- package/src/unstable/persistence/PersistedQueue.ts +21 -6
- package/src/unstable/persistence/Persistence.ts +14 -0
- package/src/unstable/persistence/RateLimiter.ts +6 -3
- package/src/unstable/persistence/Redis.ts +6 -0
- package/src/unstable/process/ChildProcess.ts +70 -19
- package/src/unstable/process/ChildProcessSpawner.ts +20 -4
- package/src/unstable/reactivity/Atom.ts +119 -14
- package/src/unstable/reactivity/AtomHttpApi.ts +4 -0
- package/src/unstable/reactivity/AtomRef.ts +8 -0
- package/src/unstable/reactivity/AtomRegistry.ts +34 -0
- package/src/unstable/reactivity/AtomRpc.ts +8 -6
- package/src/unstable/reactivity/Hydration.ts +6 -0
- package/src/unstable/reactivity/Reactivity.ts +27 -3
- package/src/unstable/rpc/Rpc.ts +38 -2
- package/src/unstable/rpc/RpcSerialization.ts +6 -0
- package/src/unstable/rpc/RpcServer.ts +5 -3
- package/src/unstable/schema/Model.ts +43 -12
- package/src/unstable/sql/SqlClient.ts +1 -1
- package/src/unstable/sql/SqlResolver.ts +6 -4
- package/src/unstable/sql/Statement.ts +8 -4
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +3 -0
- package/src/unstable/workflow/Workflow.ts +42 -34
package/dist/Layer.d.ts
CHANGED
|
@@ -3,17 +3,28 @@
|
|
|
3
3
|
* application. Services can be injected into effects via
|
|
4
4
|
* `Effect.provideService`. Effects can require services via `Effect.service`.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* their dependencies (other services).
|
|
6
|
+
* A layer is a recipe for producing services from their dependencies:
|
|
8
7
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* - `ROut` is what the layer provides.
|
|
9
|
+
* - `E` is what can fail while building the layer.
|
|
10
|
+
* - `RIn` is what the layer needs in order to build.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* Normal application code should ask for services. Layer code should create
|
|
13
|
+
* services. The application entry point should provide the final layer once.
|
|
14
|
+
* Keeping this boundary clear makes programs easier to reuse with production,
|
|
15
|
+
* test, or mock implementations.
|
|
16
|
+
*
|
|
17
|
+
* Construction of services can be effectful and can acquire resources that must
|
|
18
|
+
* be safely released when the services are no longer used. For example, a layer
|
|
19
|
+
* can open a database pool during acquisition and close it in a finalizer.
|
|
20
|
+
*
|
|
21
|
+
* Layers are lazy: they do not build anything until they are provided to a
|
|
22
|
+
* program or explicitly built. By default layers are shared, meaning that if the
|
|
23
|
+
* same layer value is used twice, it is allocated only once and both users share
|
|
24
|
+
* the same service instance.
|
|
14
25
|
*
|
|
15
26
|
* Because of their excellent composition properties, layers are the idiomatic
|
|
16
|
-
* way in Effect
|
|
27
|
+
* way in Effect to create services that depend on other services.
|
|
17
28
|
*
|
|
18
29
|
* @since 2.0.0
|
|
19
30
|
*/
|
|
@@ -32,12 +43,13 @@ import type * as Types from "./Types.ts";
|
|
|
32
43
|
import type * as Unify from "./Unify.ts";
|
|
33
44
|
declare const TypeId = "~effect/Layer";
|
|
34
45
|
/**
|
|
35
|
-
* A Layer describes how to build one or more services for dependency injection.
|
|
46
|
+
* A `Layer` describes how to build one or more services for dependency injection.
|
|
47
|
+
*
|
|
48
|
+
* **Details**
|
|
36
49
|
*
|
|
37
|
-
* A Layer<ROut, E, RIn
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* - RIn: The services this layer requires as dependencies
|
|
50
|
+
* A `Layer<ROut, E, RIn>` represents `ROut` as the services this layer
|
|
51
|
+
* provides, `E` as the possible errors during layer construction, and `RIn` as
|
|
52
|
+
* the services this layer requires as dependencies.
|
|
41
53
|
*
|
|
42
54
|
* @category models
|
|
43
55
|
* @since 2.0.0
|
|
@@ -51,6 +63,8 @@ export interface Layer<in ROut, out E = never, out RIn = never> extends Variance
|
|
|
51
63
|
* Type-level hook that allows `Layer` values to participate in `Unify`
|
|
52
64
|
* inference.
|
|
53
65
|
*
|
|
66
|
+
* **Details**
|
|
67
|
+
*
|
|
54
68
|
* This is used by Effect's pipe and unification machinery to preserve the
|
|
55
69
|
* provided services, error, and requirements of a `Layer`.
|
|
56
70
|
*
|
|
@@ -85,12 +99,14 @@ export interface Variance<in ROut, out E, out RIn> {
|
|
|
85
99
|
};
|
|
86
100
|
}
|
|
87
101
|
/**
|
|
88
|
-
* A constraint
|
|
102
|
+
* A type-level constraint for working with any `Layer` type.
|
|
89
103
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
104
|
+
* **Details**
|
|
105
|
+
*
|
|
106
|
+
* This interface is used to constrain generic types to `Layer` values without
|
|
107
|
+
* specifying exact type parameters.
|
|
92
108
|
*
|
|
93
|
-
* @category
|
|
109
|
+
* @category utility types
|
|
94
110
|
* @since 3.9.0
|
|
95
111
|
*/
|
|
96
112
|
export interface Any {
|
|
@@ -101,31 +117,34 @@ export interface Any {
|
|
|
101
117
|
};
|
|
102
118
|
}
|
|
103
119
|
/**
|
|
104
|
-
* Extracts the service
|
|
120
|
+
* Extracts the service requirements (`RIn`) from a `Layer` type.
|
|
105
121
|
*
|
|
106
|
-
* @category
|
|
122
|
+
* @category utility types
|
|
107
123
|
* @since 4.0.0
|
|
108
124
|
*/
|
|
109
125
|
export type Services<T extends Any> = T extends infer L ? L extends Layer<infer _ROut, infer _E, infer _RIn> ? _RIn : never : never;
|
|
110
126
|
/**
|
|
111
|
-
* Extracts the error type (E) from a Layer type.
|
|
127
|
+
* Extracts the error type (`E`) from a `Layer` type.
|
|
112
128
|
*
|
|
113
|
-
* @category
|
|
129
|
+
* @category utility types
|
|
114
130
|
* @since 2.0.0
|
|
115
131
|
*/
|
|
116
132
|
export type Error<T extends Any> = T extends Layer<infer _ROut, infer _E, infer _RIn> ? _E : never;
|
|
117
133
|
/**
|
|
118
|
-
* Extracts the service output type (ROut) from a Layer type.
|
|
134
|
+
* Extracts the service output type (`ROut`) from a `Layer` type.
|
|
119
135
|
*
|
|
120
|
-
* @category
|
|
136
|
+
* @category utility types
|
|
121
137
|
* @since 2.0.0
|
|
122
138
|
*/
|
|
123
139
|
export type Success<T extends Any> = T extends Layer<infer _ROut, infer _E, infer _RIn> ? _ROut : never;
|
|
124
140
|
declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
125
141
|
/**
|
|
126
|
-
* A MemoMap is used to memoize layer construction and ensure sharing of
|
|
142
|
+
* A `MemoMap` is used to memoize layer construction and ensure sharing of
|
|
143
|
+
* layers.
|
|
127
144
|
*
|
|
128
|
-
*
|
|
145
|
+
* **Details**
|
|
146
|
+
*
|
|
147
|
+
* The `MemoMap` prevents duplicate construction of the same layer instance,
|
|
129
148
|
* enabling efficient resource sharing across layer dependencies.
|
|
130
149
|
*
|
|
131
150
|
* **Example** (Sharing layer construction with a memo map)
|
|
@@ -142,7 +161,7 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
|
142
161
|
* const memoMap = yield* Layer.makeMemoMap
|
|
143
162
|
* const scope = yield* Effect.scope
|
|
144
163
|
*
|
|
145
|
-
* const dbLayer = Layer.succeed(Database
|
|
164
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
146
165
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
147
166
|
* })
|
|
148
167
|
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
@@ -171,7 +190,7 @@ export interface MemoMap {
|
|
|
171
190
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
172
191
|
* }>()("Database") {}
|
|
173
192
|
*
|
|
174
|
-
* const dbLayer = Layer.succeed(Database
|
|
193
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
175
194
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
176
195
|
* })
|
|
177
196
|
* const notALayer = { someProperty: "value" }
|
|
@@ -185,7 +204,10 @@ export interface MemoMap {
|
|
|
185
204
|
*/
|
|
186
205
|
export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unknown>;
|
|
187
206
|
/**
|
|
188
|
-
* Constructs a Layer from a function that uses a `MemoMap` and `Scope` to
|
|
207
|
+
* Constructs a `Layer` from a function that uses a `MemoMap` and `Scope` to
|
|
208
|
+
* build the layer.
|
|
209
|
+
*
|
|
210
|
+
* **Details**
|
|
189
211
|
*
|
|
190
212
|
* The function receives a `MemoMap` for memoization and a `Scope` for resource management.
|
|
191
213
|
* A child scope is created, and if the build fails, the child scope is closed.
|
|
@@ -213,8 +235,10 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
|
|
|
213
235
|
*/
|
|
214
236
|
export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<ROut>, E, RIn>) => Layer<ROut, E, RIn>;
|
|
215
237
|
/**
|
|
216
|
-
* Constructs a Layer from a function that uses a `MemoMap` and `Scope` to
|
|
217
|
-
* with automatic memoization.
|
|
238
|
+
* Constructs a `Layer` from a function that uses a `MemoMap` and `Scope` to
|
|
239
|
+
* build the layer, with automatic memoization.
|
|
240
|
+
*
|
|
241
|
+
* **Details**
|
|
218
242
|
*
|
|
219
243
|
* This is similar to `fromBuild` but provides automatic memoization of the layer construction.
|
|
220
244
|
* The layer will be memoized based on the provided `MemoMap`.
|
|
@@ -258,7 +282,7 @@ export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, sco
|
|
|
258
282
|
* const memoMap = Layer.makeMemoMapUnsafe()
|
|
259
283
|
* const scope = yield* Effect.scope
|
|
260
284
|
*
|
|
261
|
-
* const dbLayer = Layer.succeed(Database
|
|
285
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
262
286
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
263
287
|
* })
|
|
264
288
|
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
@@ -296,7 +320,7 @@ export declare const forkMemoMapUnsafe: (parent: MemoMap) => MemoMap;
|
|
|
296
320
|
* const memoMap = yield* Layer.makeMemoMap
|
|
297
321
|
* const scope = yield* Effect.scope
|
|
298
322
|
*
|
|
299
|
-
* const dbLayer = Layer.succeed(Database
|
|
323
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
300
324
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
301
325
|
* })
|
|
302
326
|
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
@@ -321,6 +345,8 @@ declare const CurrentMemoMap_base: Context.ServiceClass<CurrentMemoMap, "effect/
|
|
|
321
345
|
/**
|
|
322
346
|
* A service reference for the current `MemoMap` used in layer construction.
|
|
323
347
|
*
|
|
348
|
+
* **Details**
|
|
349
|
+
*
|
|
324
350
|
* This service provides access to the current memoization map during layer building,
|
|
325
351
|
* allowing layers to share memoized results.
|
|
326
352
|
*
|
|
@@ -353,13 +379,13 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
|
353
379
|
* const scope = yield* Effect.scope
|
|
354
380
|
*
|
|
355
381
|
* // Build database layer with memoization
|
|
356
|
-
* const dbLayer = Layer.succeed(Database
|
|
382
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
357
383
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
358
384
|
* })
|
|
359
385
|
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
360
386
|
*
|
|
361
387
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
362
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
388
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
363
389
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
364
390
|
* })
|
|
365
391
|
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
@@ -402,13 +428,13 @@ export declare const buildWithMemoMap: {
|
|
|
402
428
|
* const scope = yield* Effect.scope
|
|
403
429
|
*
|
|
404
430
|
* // Build database layer with memoization
|
|
405
|
-
* const dbLayer = Layer.succeed(Database
|
|
431
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
406
432
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
407
433
|
* })
|
|
408
434
|
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
409
435
|
*
|
|
410
436
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
411
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
437
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
412
438
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
413
439
|
* })
|
|
414
440
|
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
@@ -451,13 +477,13 @@ export declare const buildWithMemoMap: {
|
|
|
451
477
|
* const scope = yield* Effect.scope
|
|
452
478
|
*
|
|
453
479
|
* // Build database layer with memoization
|
|
454
|
-
* const dbLayer = Layer.succeed(Database
|
|
480
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
455
481
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
456
482
|
* })
|
|
457
483
|
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
458
484
|
*
|
|
459
485
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
460
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
486
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
461
487
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
462
488
|
* })
|
|
463
489
|
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
@@ -492,7 +518,7 @@ export declare const buildWithMemoMap: {
|
|
|
492
518
|
*
|
|
493
519
|
* // Build a layer to get its services
|
|
494
520
|
* const program = Effect.gen(function*() {
|
|
495
|
-
* const dbLayer = Layer.succeed(Database
|
|
521
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
496
522
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
497
523
|
* })
|
|
498
524
|
*
|
|
@@ -530,7 +556,7 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
|
530
556
|
* const program = Effect.gen(function*() {
|
|
531
557
|
* const scope = yield* Effect.scope
|
|
532
558
|
*
|
|
533
|
-
* const dbLayer = Layer.effect(Database
|
|
559
|
+
* const dbLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
534
560
|
* console.log("Initializing database...")
|
|
535
561
|
* yield* Scope.addFinalizer(
|
|
536
562
|
* scope,
|
|
@@ -572,7 +598,7 @@ export declare const buildWithScope: {
|
|
|
572
598
|
* const program = Effect.gen(function*() {
|
|
573
599
|
* const scope = yield* Effect.scope
|
|
574
600
|
*
|
|
575
|
-
* const dbLayer = Layer.effect(Database
|
|
601
|
+
* const dbLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
576
602
|
* console.log("Initializing database...")
|
|
577
603
|
* yield* Scope.addFinalizer(
|
|
578
604
|
* scope,
|
|
@@ -614,7 +640,7 @@ export declare const buildWithScope: {
|
|
|
614
640
|
* const program = Effect.gen(function*() {
|
|
615
641
|
* const scope = yield* Effect.scope
|
|
616
642
|
*
|
|
617
|
-
* const dbLayer = Layer.effect(Database
|
|
643
|
+
* const dbLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
618
644
|
* console.log("Initializing database...")
|
|
619
645
|
* yield* Scope.addFinalizer(
|
|
620
646
|
* scope,
|
|
@@ -638,9 +664,16 @@ export declare const buildWithScope: {
|
|
|
638
664
|
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>;
|
|
639
665
|
};
|
|
640
666
|
/**
|
|
641
|
-
* Constructs a layer from
|
|
667
|
+
* Constructs a layer that provides a single service from an already available
|
|
668
|
+
* value.
|
|
669
|
+
*
|
|
670
|
+
* **When to use**
|
|
642
671
|
*
|
|
643
|
-
*
|
|
672
|
+
* Use `succeed` when the service implementation is already constructed and does
|
|
673
|
+
* not need effectful acquisition. Use `sync` when the service should be created
|
|
674
|
+
* lazily during layer construction.
|
|
675
|
+
*
|
|
676
|
+
* **Example** (Creating a layer from a service implementation)
|
|
644
677
|
*
|
|
645
678
|
* ```ts
|
|
646
679
|
* import { Context, Effect, Layer } from "effect"
|
|
@@ -649,42 +682,28 @@ export declare const buildWithScope: {
|
|
|
649
682
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
650
683
|
* }>()("Database") {}
|
|
651
684
|
*
|
|
652
|
-
*
|
|
653
|
-
* readonly log: (msg: string) => Effect.Effect<void>
|
|
654
|
-
* }>()("Logger") {}
|
|
655
|
-
*
|
|
656
|
-
* // Create layers from concrete service implementations
|
|
657
|
-
* const databaseLayer = Layer.succeed(Database)({
|
|
685
|
+
* const DatabaseLive = Layer.succeed(Database, {
|
|
658
686
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
659
687
|
* })
|
|
660
|
-
*
|
|
661
|
-
* const loggerLayer = Layer.succeed(Logger)({
|
|
662
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
663
|
-
* })
|
|
664
|
-
*
|
|
665
|
-
* // Use the layers in a program
|
|
666
|
-
* const program = Effect.gen(function*() {
|
|
667
|
-
* const database = yield* Database
|
|
668
|
-
* const logger = yield* Logger
|
|
669
|
-
*
|
|
670
|
-
* yield* logger.log("Starting database query")
|
|
671
|
-
* const result = yield* database.query("SELECT * FROM users")
|
|
672
|
-
* yield* logger.log(`Query completed: ${result}`)
|
|
673
|
-
*
|
|
674
|
-
* return result
|
|
675
|
-
* }).pipe(
|
|
676
|
-
* Effect.provide(Layer.mergeAll(databaseLayer, loggerLayer))
|
|
677
|
-
* )
|
|
678
688
|
* ```
|
|
679
689
|
*
|
|
690
|
+
* @see {@link sync} for constructing layers from lazy values
|
|
691
|
+
*
|
|
680
692
|
* @category constructors
|
|
681
693
|
* @since 2.0.0
|
|
682
694
|
*/
|
|
683
695
|
export declare const succeed: {
|
|
684
696
|
/**
|
|
685
|
-
* Constructs a layer from
|
|
697
|
+
* Constructs a layer that provides a single service from an already available
|
|
698
|
+
* value.
|
|
699
|
+
*
|
|
700
|
+
* **When to use**
|
|
686
701
|
*
|
|
687
|
-
*
|
|
702
|
+
* Use `succeed` when the service implementation is already constructed and does
|
|
703
|
+
* not need effectful acquisition. Use `sync` when the service should be created
|
|
704
|
+
* lazily during layer construction.
|
|
705
|
+
*
|
|
706
|
+
* **Example** (Creating a layer from a service implementation)
|
|
688
707
|
*
|
|
689
708
|
* ```ts
|
|
690
709
|
* import { Context, Effect, Layer } from "effect"
|
|
@@ -693,42 +712,28 @@ export declare const succeed: {
|
|
|
693
712
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
694
713
|
* }>()("Database") {}
|
|
695
714
|
*
|
|
696
|
-
*
|
|
697
|
-
* readonly log: (msg: string) => Effect.Effect<void>
|
|
698
|
-
* }>()("Logger") {}
|
|
699
|
-
*
|
|
700
|
-
* // Create layers from concrete service implementations
|
|
701
|
-
* const databaseLayer = Layer.succeed(Database)({
|
|
715
|
+
* const DatabaseLive = Layer.succeed(Database, {
|
|
702
716
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
703
717
|
* })
|
|
704
|
-
*
|
|
705
|
-
* const loggerLayer = Layer.succeed(Logger)({
|
|
706
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
707
|
-
* })
|
|
708
|
-
*
|
|
709
|
-
* // Use the layers in a program
|
|
710
|
-
* const program = Effect.gen(function*() {
|
|
711
|
-
* const database = yield* Database
|
|
712
|
-
* const logger = yield* Logger
|
|
713
|
-
*
|
|
714
|
-
* yield* logger.log("Starting database query")
|
|
715
|
-
* const result = yield* database.query("SELECT * FROM users")
|
|
716
|
-
* yield* logger.log(`Query completed: ${result}`)
|
|
717
|
-
*
|
|
718
|
-
* return result
|
|
719
|
-
* }).pipe(
|
|
720
|
-
* Effect.provide(Layer.mergeAll(databaseLayer, loggerLayer))
|
|
721
|
-
* )
|
|
722
718
|
* ```
|
|
723
719
|
*
|
|
720
|
+
* @see {@link sync} for constructing layers from lazy values
|
|
721
|
+
*
|
|
724
722
|
* @category constructors
|
|
725
723
|
* @since 2.0.0
|
|
726
724
|
*/
|
|
727
725
|
<I, S>(service: Context.Key<I, S>): (resource: S) => Layer<I>;
|
|
728
726
|
/**
|
|
729
|
-
* Constructs a layer from
|
|
727
|
+
* Constructs a layer that provides a single service from an already available
|
|
728
|
+
* value.
|
|
729
|
+
*
|
|
730
|
+
* **When to use**
|
|
730
731
|
*
|
|
731
|
-
*
|
|
732
|
+
* Use `succeed` when the service implementation is already constructed and does
|
|
733
|
+
* not need effectful acquisition. Use `sync` when the service should be created
|
|
734
|
+
* lazily during layer construction.
|
|
735
|
+
*
|
|
736
|
+
* **Example** (Creating a layer from a service implementation)
|
|
732
737
|
*
|
|
733
738
|
* ```ts
|
|
734
739
|
* import { Context, Effect, Layer } from "effect"
|
|
@@ -737,45 +742,32 @@ export declare const succeed: {
|
|
|
737
742
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
738
743
|
* }>()("Database") {}
|
|
739
744
|
*
|
|
740
|
-
*
|
|
741
|
-
* readonly log: (msg: string) => Effect.Effect<void>
|
|
742
|
-
* }>()("Logger") {}
|
|
743
|
-
*
|
|
744
|
-
* // Create layers from concrete service implementations
|
|
745
|
-
* const databaseLayer = Layer.succeed(Database)({
|
|
745
|
+
* const DatabaseLive = Layer.succeed(Database, {
|
|
746
746
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
747
747
|
* })
|
|
748
|
-
*
|
|
749
|
-
* const loggerLayer = Layer.succeed(Logger)({
|
|
750
|
-
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
751
|
-
* })
|
|
752
|
-
*
|
|
753
|
-
* // Use the layers in a program
|
|
754
|
-
* const program = Effect.gen(function*() {
|
|
755
|
-
* const database = yield* Database
|
|
756
|
-
* const logger = yield* Logger
|
|
757
|
-
*
|
|
758
|
-
* yield* logger.log("Starting database query")
|
|
759
|
-
* const result = yield* database.query("SELECT * FROM users")
|
|
760
|
-
* yield* logger.log(`Query completed: ${result}`)
|
|
761
|
-
*
|
|
762
|
-
* return result
|
|
763
|
-
* }).pipe(
|
|
764
|
-
* Effect.provide(Layer.mergeAll(databaseLayer, loggerLayer))
|
|
765
|
-
* )
|
|
766
748
|
* ```
|
|
767
749
|
*
|
|
750
|
+
* @see {@link sync} for constructing layers from lazy values
|
|
751
|
+
*
|
|
768
752
|
* @category constructors
|
|
769
753
|
* @since 2.0.0
|
|
770
754
|
*/
|
|
771
755
|
<I, S>(service: Context.Key<I, S>, resource: Types.NoInfer<S>): Layer<I>;
|
|
772
756
|
};
|
|
773
757
|
/**
|
|
774
|
-
* Constructs a layer
|
|
775
|
-
*
|
|
758
|
+
* Constructs a layer that provides all services in an already available
|
|
759
|
+
* `Context`.
|
|
776
760
|
*
|
|
777
|
-
*
|
|
778
|
-
*
|
|
761
|
+
* **When to use**
|
|
762
|
+
*
|
|
763
|
+
* Use `succeedContext` when you already have a `Context` or need to provide
|
|
764
|
+
* multiple services at once. Use `succeed` when you only need to provide one
|
|
765
|
+
* service value.
|
|
766
|
+
*
|
|
767
|
+
* **Details**
|
|
768
|
+
*
|
|
769
|
+
* This is a more general version of `succeed` that allows you to provide
|
|
770
|
+
* multiple services at once through a `Context`.
|
|
779
771
|
*
|
|
780
772
|
* **Example** (Providing multiple services from a context)
|
|
781
773
|
*
|
|
@@ -801,30 +793,50 @@ export declare const succeed: {
|
|
|
801
793
|
* const layer = Layer.succeedContext(context)
|
|
802
794
|
* ```
|
|
803
795
|
*
|
|
796
|
+
* @see {@link succeed} for providing a single service from a value
|
|
797
|
+
*
|
|
804
798
|
* @category constructors
|
|
805
799
|
* @since 2.0.0
|
|
806
800
|
*/
|
|
807
801
|
export declare const succeedContext: <A>(context: Context.Context<A>) => Layer<A>;
|
|
808
802
|
/**
|
|
809
|
-
*
|
|
803
|
+
* An empty layer that provides no services, cannot fail, has no requirements,
|
|
804
|
+
* and performs no construction or finalization work.
|
|
810
805
|
*
|
|
811
|
-
*
|
|
812
|
-
* in layer composition or as a starting point for building layers.
|
|
806
|
+
* **When to use**
|
|
813
807
|
*
|
|
814
|
-
*
|
|
808
|
+
* Use `Layer.empty` as the no-op branch when conditionally composing layers.
|
|
809
|
+
* If you need to run an effect during layer construction while still providing
|
|
810
|
+
* no services, use `effectDiscard`.
|
|
811
|
+
*
|
|
812
|
+
* **Example** (Disabling optional lifecycle work)
|
|
815
813
|
*
|
|
816
814
|
* ```ts
|
|
817
|
-
* import { Layer } from "effect"
|
|
815
|
+
* import { Console, Layer } from "effect"
|
|
816
|
+
*
|
|
817
|
+
* declare const flag: boolean
|
|
818
818
|
*
|
|
819
|
-
* const
|
|
819
|
+
* const StartupLogLive = flag
|
|
820
|
+
* ? Layer.effectDiscard(Console.log("application starting"))
|
|
821
|
+
* : Layer.empty
|
|
820
822
|
* ```
|
|
821
823
|
*
|
|
824
|
+
* @see {@link effectDiscard} for running an effect while providing no services
|
|
825
|
+
*
|
|
822
826
|
* @category constructors
|
|
823
827
|
* @since 2.0.0
|
|
824
828
|
*/
|
|
825
829
|
export declare const empty: Layer<never>;
|
|
826
830
|
/**
|
|
827
|
-
* Lazily constructs a layer
|
|
831
|
+
* Lazily constructs a layer that provides a single service.
|
|
832
|
+
*
|
|
833
|
+
* **When to use**
|
|
834
|
+
*
|
|
835
|
+
* Use `sync` when the service can be created synchronously but should be
|
|
836
|
+
* deferred until the layer is built. Use `succeed` when the service value is
|
|
837
|
+
* already available.
|
|
838
|
+
*
|
|
839
|
+
* **Details**
|
|
828
840
|
*
|
|
829
841
|
* This is a lazy version of `succeed` where the service value is computed
|
|
830
842
|
* synchronously only when the layer is built.
|
|
@@ -838,17 +850,27 @@ export declare const empty: Layer<never>;
|
|
|
838
850
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
839
851
|
* }>()("Database") {}
|
|
840
852
|
*
|
|
841
|
-
* const layer = Layer.sync(Database
|
|
853
|
+
* const layer = Layer.sync(Database, () => ({
|
|
842
854
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
843
855
|
* }))
|
|
844
856
|
* ```
|
|
845
857
|
*
|
|
858
|
+
* @see {@link succeed} for constructing layers from static values
|
|
859
|
+
*
|
|
846
860
|
* @category constructors
|
|
847
861
|
* @since 2.0.0
|
|
848
862
|
*/
|
|
849
863
|
export declare const sync: {
|
|
850
864
|
/**
|
|
851
|
-
* Lazily constructs a layer
|
|
865
|
+
* Lazily constructs a layer that provides a single service.
|
|
866
|
+
*
|
|
867
|
+
* **When to use**
|
|
868
|
+
*
|
|
869
|
+
* Use `sync` when the service can be created synchronously but should be
|
|
870
|
+
* deferred until the layer is built. Use `succeed` when the service value is
|
|
871
|
+
* already available.
|
|
872
|
+
*
|
|
873
|
+
* **Details**
|
|
852
874
|
*
|
|
853
875
|
* This is a lazy version of `succeed` where the service value is computed
|
|
854
876
|
* synchronously only when the layer is built.
|
|
@@ -862,17 +884,27 @@ export declare const sync: {
|
|
|
862
884
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
863
885
|
* }>()("Database") {}
|
|
864
886
|
*
|
|
865
|
-
* const layer = Layer.sync(Database
|
|
887
|
+
* const layer = Layer.sync(Database, () => ({
|
|
866
888
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
867
889
|
* }))
|
|
868
890
|
* ```
|
|
869
891
|
*
|
|
892
|
+
* @see {@link succeed} for constructing layers from static values
|
|
893
|
+
*
|
|
870
894
|
* @category constructors
|
|
871
895
|
* @since 2.0.0
|
|
872
896
|
*/
|
|
873
897
|
<I, S>(service: Context.Key<I, S>): (evaluate: LazyArg<S>) => Layer<I>;
|
|
874
898
|
/**
|
|
875
|
-
* Lazily constructs a layer
|
|
899
|
+
* Lazily constructs a layer that provides a single service.
|
|
900
|
+
*
|
|
901
|
+
* **When to use**
|
|
902
|
+
*
|
|
903
|
+
* Use `sync` when the service can be created synchronously but should be
|
|
904
|
+
* deferred until the layer is built. Use `succeed` when the service value is
|
|
905
|
+
* already available.
|
|
906
|
+
*
|
|
907
|
+
* **Details**
|
|
876
908
|
*
|
|
877
909
|
* This is a lazy version of `succeed` where the service value is computed
|
|
878
910
|
* synchronously only when the layer is built.
|
|
@@ -886,21 +918,30 @@ export declare const sync: {
|
|
|
886
918
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
887
919
|
* }>()("Database") {}
|
|
888
920
|
*
|
|
889
|
-
* const layer = Layer.sync(Database
|
|
921
|
+
* const layer = Layer.sync(Database, () => ({
|
|
890
922
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
891
923
|
* }))
|
|
892
924
|
* ```
|
|
893
925
|
*
|
|
926
|
+
* @see {@link succeed} for constructing layers from static values
|
|
927
|
+
*
|
|
894
928
|
* @category constructors
|
|
895
929
|
* @since 2.0.0
|
|
896
930
|
*/
|
|
897
931
|
<I, S>(service: Context.Key<I, S>, evaluate: LazyArg<Types.NoInfer<S>>): Layer<I>;
|
|
898
932
|
};
|
|
899
933
|
/**
|
|
900
|
-
* Lazily constructs a layer
|
|
901
|
-
*
|
|
934
|
+
* Lazily constructs a layer that provides all services in a `Context`.
|
|
935
|
+
*
|
|
936
|
+
* **When to use**
|
|
902
937
|
*
|
|
903
|
-
*
|
|
938
|
+
* Use `syncContext` when multiple services can be created synchronously and
|
|
939
|
+
* should be deferred until the layer is built. Use `sync` when you only need to
|
|
940
|
+
* provide one service.
|
|
941
|
+
*
|
|
942
|
+
* **Details**
|
|
943
|
+
*
|
|
944
|
+
* This is a lazy version of `succeedContext` where the `Context` is computed
|
|
904
945
|
* synchronously only when the layer is built.
|
|
905
946
|
*
|
|
906
947
|
* **Example** (Lazily providing a context)
|
|
@@ -919,15 +960,27 @@ export declare const sync: {
|
|
|
919
960
|
* )
|
|
920
961
|
* ```
|
|
921
962
|
*
|
|
963
|
+
* @see {@link sync} for lazily providing a single service
|
|
964
|
+
* @see {@link succeedContext} for providing an already available context
|
|
965
|
+
*
|
|
922
966
|
* @category constructors
|
|
923
967
|
* @since 2.0.0
|
|
924
968
|
*/
|
|
925
969
|
export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) => Layer<A>;
|
|
926
970
|
/**
|
|
927
|
-
* Constructs a layer from
|
|
971
|
+
* Constructs a layer from an effect that produces a single service.
|
|
972
|
+
*
|
|
973
|
+
* **When to use**
|
|
974
|
+
*
|
|
975
|
+
* Use `effect` when constructing the service requires effects, dependencies, or
|
|
976
|
+
* scoped resource acquisition. Use `effectContext` when the effect produces
|
|
977
|
+
* multiple services in a `Context`, and `effectDiscard` when construction work
|
|
978
|
+
* should provide no services.
|
|
928
979
|
*
|
|
929
|
-
*
|
|
930
|
-
*
|
|
980
|
+
* **Details**
|
|
981
|
+
*
|
|
982
|
+
* This allows you to create a `Layer` from an `Effect` that produces a service.
|
|
983
|
+
* The `Effect` is executed in the scope of the layer, allowing for proper
|
|
931
984
|
* resource management.
|
|
932
985
|
*
|
|
933
986
|
* **Example** (Creating a layer from an effect)
|
|
@@ -939,22 +992,34 @@ export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) =>
|
|
|
939
992
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
940
993
|
* }>()("Database") {}
|
|
941
994
|
*
|
|
942
|
-
* const layer = Layer.effect(Database
|
|
995
|
+
* const layer = Layer.effect(Database,
|
|
943
996
|
* Effect.sync(() => ({
|
|
944
997
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
945
998
|
* }))
|
|
946
999
|
* )
|
|
947
1000
|
* ```
|
|
948
1001
|
*
|
|
1002
|
+
* @see {@link effectContext} for effectfully providing multiple services
|
|
1003
|
+
* @see {@link effectDiscard} for running construction work without providing services
|
|
1004
|
+
*
|
|
949
1005
|
* @category constructors
|
|
950
1006
|
* @since 2.0.0
|
|
951
1007
|
*/
|
|
952
1008
|
export declare const effect: {
|
|
953
1009
|
/**
|
|
954
|
-
* Constructs a layer from
|
|
1010
|
+
* Constructs a layer from an effect that produces a single service.
|
|
1011
|
+
*
|
|
1012
|
+
* **When to use**
|
|
1013
|
+
*
|
|
1014
|
+
* Use `effect` when constructing the service requires effects, dependencies, or
|
|
1015
|
+
* scoped resource acquisition. Use `effectContext` when the effect produces
|
|
1016
|
+
* multiple services in a `Context`, and `effectDiscard` when construction work
|
|
1017
|
+
* should provide no services.
|
|
955
1018
|
*
|
|
956
|
-
*
|
|
957
|
-
*
|
|
1019
|
+
* **Details**
|
|
1020
|
+
*
|
|
1021
|
+
* This allows you to create a `Layer` from an `Effect` that produces a service.
|
|
1022
|
+
* The `Effect` is executed in the scope of the layer, allowing for proper
|
|
958
1023
|
* resource management.
|
|
959
1024
|
*
|
|
960
1025
|
* **Example** (Creating a layer from an effect)
|
|
@@ -966,22 +1031,34 @@ export declare const effect: {
|
|
|
966
1031
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
967
1032
|
* }>()("Database") {}
|
|
968
1033
|
*
|
|
969
|
-
* const layer = Layer.effect(Database
|
|
1034
|
+
* const layer = Layer.effect(Database,
|
|
970
1035
|
* Effect.sync(() => ({
|
|
971
1036
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
972
1037
|
* }))
|
|
973
1038
|
* )
|
|
974
1039
|
* ```
|
|
975
1040
|
*
|
|
1041
|
+
* @see {@link effectContext} for effectfully providing multiple services
|
|
1042
|
+
* @see {@link effectDiscard} for running construction work without providing services
|
|
1043
|
+
*
|
|
976
1044
|
* @category constructors
|
|
977
1045
|
* @since 2.0.0
|
|
978
1046
|
*/
|
|
979
1047
|
<I, S>(service: Context.Key<I, S>): <E, R>(effect: Effect<S, E, R>) => Layer<I, E, Exclude<R, Scope.Scope>>;
|
|
980
1048
|
/**
|
|
981
|
-
* Constructs a layer from
|
|
1049
|
+
* Constructs a layer from an effect that produces a single service.
|
|
1050
|
+
*
|
|
1051
|
+
* **When to use**
|
|
1052
|
+
*
|
|
1053
|
+
* Use `effect` when constructing the service requires effects, dependencies, or
|
|
1054
|
+
* scoped resource acquisition. Use `effectContext` when the effect produces
|
|
1055
|
+
* multiple services in a `Context`, and `effectDiscard` when construction work
|
|
1056
|
+
* should provide no services.
|
|
982
1057
|
*
|
|
983
|
-
*
|
|
984
|
-
*
|
|
1058
|
+
* **Details**
|
|
1059
|
+
*
|
|
1060
|
+
* This allows you to create a `Layer` from an `Effect` that produces a service.
|
|
1061
|
+
* The `Effect` is executed in the scope of the layer, allowing for proper
|
|
985
1062
|
* resource management.
|
|
986
1063
|
*
|
|
987
1064
|
* **Example** (Creating a layer from an effect)
|
|
@@ -993,24 +1070,34 @@ export declare const effect: {
|
|
|
993
1070
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
994
1071
|
* }>()("Database") {}
|
|
995
1072
|
*
|
|
996
|
-
* const layer = Layer.effect(Database
|
|
1073
|
+
* const layer = Layer.effect(Database,
|
|
997
1074
|
* Effect.sync(() => ({
|
|
998
1075
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
999
1076
|
* }))
|
|
1000
1077
|
* )
|
|
1001
1078
|
* ```
|
|
1002
1079
|
*
|
|
1080
|
+
* @see {@link effectContext} for effectfully providing multiple services
|
|
1081
|
+
* @see {@link effectDiscard} for running construction work without providing services
|
|
1082
|
+
*
|
|
1003
1083
|
* @category constructors
|
|
1004
1084
|
* @since 2.0.0
|
|
1005
1085
|
*/
|
|
1006
1086
|
<I, S, E, R>(service: Context.Key<I, S>, effect: Effect<Types.NoInfer<S>, E, R>): Layer<I, E, Exclude<R, Scope.Scope>>;
|
|
1007
1087
|
};
|
|
1008
1088
|
/**
|
|
1009
|
-
* Constructs a layer from
|
|
1010
|
-
*
|
|
1089
|
+
* Constructs a layer from an effect that produces all services in a `Context`.
|
|
1090
|
+
*
|
|
1091
|
+
* **When to use**
|
|
1092
|
+
*
|
|
1093
|
+
* Use `effectContext` when effectful construction needs to provide multiple
|
|
1094
|
+
* services at once. Use `effect` when the effect produces one service value.
|
|
1011
1095
|
*
|
|
1012
|
-
*
|
|
1013
|
-
*
|
|
1096
|
+
* **Details**
|
|
1097
|
+
*
|
|
1098
|
+
* This allows you to create a `Layer` from an effectful computation that
|
|
1099
|
+
* returns multiple services. The `Effect` is executed in the scope of the
|
|
1100
|
+
* layer.
|
|
1014
1101
|
*
|
|
1015
1102
|
* **Example** (Creating a layer from an effectful context)
|
|
1016
1103
|
*
|
|
@@ -1029,12 +1116,17 @@ export declare const effect: {
|
|
|
1029
1116
|
* )
|
|
1030
1117
|
* ```
|
|
1031
1118
|
*
|
|
1119
|
+
* @see {@link effect} for effectfully providing a single service
|
|
1120
|
+
*
|
|
1032
1121
|
* @category constructors
|
|
1033
1122
|
* @since 2.0.0
|
|
1034
1123
|
*/
|
|
1035
1124
|
export declare const effectContext: <A, E, R>(effect: Effect<Context.Context<A>, E, R>) => Layer<A, E, Exclude<R, Scope.Scope>>;
|
|
1036
1125
|
/**
|
|
1037
|
-
* Constructs a layer from
|
|
1126
|
+
* Constructs a layer from an effect, discarding its value and providing no
|
|
1127
|
+
* services.
|
|
1128
|
+
*
|
|
1129
|
+
* **When to use**
|
|
1038
1130
|
*
|
|
1039
1131
|
* This is useful when you want to run an Effect for its side effects during
|
|
1040
1132
|
* layer construction, but don't need to provide any services.
|
|
@@ -1051,6 +1143,8 @@ export declare const effectContext: <A, E, R>(effect: Effect<Context.Context<A>,
|
|
|
1051
1143
|
* )
|
|
1052
1144
|
* ```
|
|
1053
1145
|
*
|
|
1146
|
+
* @see {@link empty} for a no-op layer that performs no construction work
|
|
1147
|
+
*
|
|
1054
1148
|
* @category constructors
|
|
1055
1149
|
* @since 2.0.0
|
|
1056
1150
|
*/
|
|
@@ -1058,6 +1152,8 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
|
|
|
1058
1152
|
/**
|
|
1059
1153
|
* Lazily constructs a layer using the specified factory.
|
|
1060
1154
|
*
|
|
1155
|
+
* **Details**
|
|
1156
|
+
*
|
|
1061
1157
|
* The factory is evaluated only when the suspended layer is first built, and
|
|
1062
1158
|
* the result is memoized with normal layer sharing semantics.
|
|
1063
1159
|
*
|
|
@@ -1072,8 +1168,8 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
|
|
|
1072
1168
|
*
|
|
1073
1169
|
* const layer = Layer.suspend(() =>
|
|
1074
1170
|
* useProd
|
|
1075
|
-
* ? Layer.succeed(Config
|
|
1076
|
-
* : Layer.succeed(Config
|
|
1171
|
+
* ? Layer.succeed(Config, "https://api.example.com")
|
|
1172
|
+
* : Layer.succeed(Config, "http://localhost:3000")
|
|
1077
1173
|
* )
|
|
1078
1174
|
* ```
|
|
1079
1175
|
*
|
|
@@ -1082,11 +1178,17 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
|
|
|
1082
1178
|
*/
|
|
1083
1179
|
export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => Layer<A, E, R>;
|
|
1084
1180
|
/**
|
|
1085
|
-
* Unwraps a Layer from an Effect
|
|
1181
|
+
* Unwraps a `Layer` from an `Effect`, flattening the nested structure.
|
|
1182
|
+
*
|
|
1183
|
+
* **When to use**
|
|
1086
1184
|
*
|
|
1087
|
-
*
|
|
1088
|
-
* use that
|
|
1089
|
-
*
|
|
1185
|
+
* Use this when you have an `Effect` that produces a `Layer` and you want to
|
|
1186
|
+
* use that layer directly.
|
|
1187
|
+
*
|
|
1188
|
+
* **Details**
|
|
1189
|
+
*
|
|
1190
|
+
* The resulting Layer will have the combined error and dependency types from
|
|
1191
|
+
* both the outer Effect and the inner Layer.
|
|
1090
1192
|
*
|
|
1091
1193
|
* **Example** (Unwrapping an effectful layer)
|
|
1092
1194
|
*
|
|
@@ -1098,7 +1200,7 @@ export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => La
|
|
|
1098
1200
|
* }>()("Database") {}
|
|
1099
1201
|
*
|
|
1100
1202
|
* const layerEffect = Effect.succeed(
|
|
1101
|
-
* Layer.succeed(Database
|
|
1203
|
+
* Layer.succeed(Database, { query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result")) })
|
|
1102
1204
|
* )
|
|
1103
1205
|
*
|
|
1104
1206
|
* const unwrappedLayer = Layer.unwrap(layerEffect)
|
|
@@ -1109,10 +1211,20 @@ export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => La
|
|
|
1109
1211
|
*/
|
|
1110
1212
|
export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E, R>) => Layer<A, E | E1, R1 | Exclude<R, Scope.Scope>>;
|
|
1111
1213
|
/**
|
|
1112
|
-
* Combines all the provided layers concurrently, creating a new layer with
|
|
1214
|
+
* Combines all the provided layers concurrently, creating a new layer with
|
|
1215
|
+
* merged input, error, and output types.
|
|
1216
|
+
*
|
|
1217
|
+
* **When to use**
|
|
1218
|
+
*
|
|
1219
|
+
* Use this when you need to combine multiple independent layers.
|
|
1220
|
+
*
|
|
1221
|
+
* **Details**
|
|
1113
1222
|
*
|
|
1114
1223
|
* All layers are built concurrently, and their outputs are merged into a single layer.
|
|
1115
|
-
*
|
|
1224
|
+
*
|
|
1225
|
+
* If multiple merged layers depend on the same layer value, that dependency is
|
|
1226
|
+
* shared by default. Reuse a named layer value when you want services to share
|
|
1227
|
+
* the same resource, such as one database pool.
|
|
1116
1228
|
*
|
|
1117
1229
|
* **Example** (Merging independent layers)
|
|
1118
1230
|
*
|
|
@@ -1127,25 +1239,36 @@ export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E,
|
|
|
1127
1239
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1128
1240
|
* }>()("Logger") {}
|
|
1129
1241
|
*
|
|
1130
|
-
* const dbLayer = Layer.succeed(Database
|
|
1242
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
1131
1243
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1132
1244
|
* })
|
|
1133
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1245
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1134
1246
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1135
1247
|
* })
|
|
1136
1248
|
*
|
|
1137
1249
|
* const mergedLayer = Layer.mergeAll(dbLayer, loggerLayer)
|
|
1138
1250
|
* ```
|
|
1139
1251
|
*
|
|
1252
|
+
* @see {@link merge} for merging one layer with another layer or array
|
|
1253
|
+
*
|
|
1140
1254
|
* @category zipping
|
|
1141
1255
|
* @since 2.0.0
|
|
1142
1256
|
*/
|
|
1143
1257
|
export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array<Layer<never, any, any>>]>(...layers: Layers) => Layer<Success<Layers[number]>, Error<Layers[number]>, Services<Layers[number]>>;
|
|
1144
1258
|
/**
|
|
1145
|
-
* Merges this layer with
|
|
1259
|
+
* Merges this layer with another layer concurrently, producing a new layer with
|
|
1260
|
+
* combined input, error, and output types.
|
|
1261
|
+
*
|
|
1262
|
+
* **When to use**
|
|
1263
|
+
*
|
|
1264
|
+
* Use `merge` when composing from an existing layer in a pipeline. Use
|
|
1265
|
+
* `mergeAll` when you already have all layers as separate arguments.
|
|
1146
1266
|
*
|
|
1147
|
-
*
|
|
1148
|
-
*
|
|
1267
|
+
* **Details**
|
|
1268
|
+
*
|
|
1269
|
+
* This is a binary version of `mergeAll` that merges exactly two layers or one
|
|
1270
|
+
* layer with an array of layers. The layers are built concurrently and their
|
|
1271
|
+
* outputs are combined.
|
|
1149
1272
|
*
|
|
1150
1273
|
* **Example** (Merging two layers)
|
|
1151
1274
|
*
|
|
@@ -1160,25 +1283,36 @@ export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array
|
|
|
1160
1283
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1161
1284
|
* }>()("Logger") {}
|
|
1162
1285
|
*
|
|
1163
|
-
* const dbLayer = Layer.succeed(Database
|
|
1286
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
1164
1287
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1165
1288
|
* })
|
|
1166
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1289
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1167
1290
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1168
1291
|
* })
|
|
1169
1292
|
*
|
|
1170
1293
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1171
1294
|
* ```
|
|
1172
1295
|
*
|
|
1296
|
+
* @see {@link mergeAll} for merging several layers at once
|
|
1297
|
+
*
|
|
1173
1298
|
* @category zipping
|
|
1174
1299
|
* @since 2.0.0
|
|
1175
1300
|
*/
|
|
1176
1301
|
export declare const merge: {
|
|
1177
1302
|
/**
|
|
1178
|
-
* Merges this layer with
|
|
1303
|
+
* Merges this layer with another layer concurrently, producing a new layer with
|
|
1304
|
+
* combined input, error, and output types.
|
|
1305
|
+
*
|
|
1306
|
+
* **When to use**
|
|
1179
1307
|
*
|
|
1180
|
-
*
|
|
1181
|
-
*
|
|
1308
|
+
* Use `merge` when composing from an existing layer in a pipeline. Use
|
|
1309
|
+
* `mergeAll` when you already have all layers as separate arguments.
|
|
1310
|
+
*
|
|
1311
|
+
* **Details**
|
|
1312
|
+
*
|
|
1313
|
+
* This is a binary version of `mergeAll` that merges exactly two layers or one
|
|
1314
|
+
* layer with an array of layers. The layers are built concurrently and their
|
|
1315
|
+
* outputs are combined.
|
|
1182
1316
|
*
|
|
1183
1317
|
* **Example** (Merging two layers)
|
|
1184
1318
|
*
|
|
@@ -1193,25 +1327,36 @@ export declare const merge: {
|
|
|
1193
1327
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1194
1328
|
* }>()("Logger") {}
|
|
1195
1329
|
*
|
|
1196
|
-
* const dbLayer = Layer.succeed(Database
|
|
1330
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
1197
1331
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1198
1332
|
* })
|
|
1199
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1333
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1200
1334
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1201
1335
|
* })
|
|
1202
1336
|
*
|
|
1203
1337
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1204
1338
|
* ```
|
|
1205
1339
|
*
|
|
1340
|
+
* @see {@link mergeAll} for merging several layers at once
|
|
1341
|
+
*
|
|
1206
1342
|
* @category zipping
|
|
1207
1343
|
* @since 2.0.0
|
|
1208
1344
|
*/
|
|
1209
1345
|
<RIn, E, ROut>(that: Layer<ROut, E, RIn>): <RIn2, E2, ROut2>(self: Layer<ROut2, E2, RIn2>) => Layer<ROut | ROut2, E | E2, RIn | RIn2>;
|
|
1210
1346
|
/**
|
|
1211
|
-
* Merges this layer with
|
|
1347
|
+
* Merges this layer with another layer concurrently, producing a new layer with
|
|
1348
|
+
* combined input, error, and output types.
|
|
1349
|
+
*
|
|
1350
|
+
* **When to use**
|
|
1212
1351
|
*
|
|
1213
|
-
*
|
|
1214
|
-
*
|
|
1352
|
+
* Use `merge` when composing from an existing layer in a pipeline. Use
|
|
1353
|
+
* `mergeAll` when you already have all layers as separate arguments.
|
|
1354
|
+
*
|
|
1355
|
+
* **Details**
|
|
1356
|
+
*
|
|
1357
|
+
* This is a binary version of `mergeAll` that merges exactly two layers or one
|
|
1358
|
+
* layer with an array of layers. The layers are built concurrently and their
|
|
1359
|
+
* outputs are combined.
|
|
1215
1360
|
*
|
|
1216
1361
|
* **Example** (Merging two layers)
|
|
1217
1362
|
*
|
|
@@ -1226,25 +1371,36 @@ export declare const merge: {
|
|
|
1226
1371
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1227
1372
|
* }>()("Logger") {}
|
|
1228
1373
|
*
|
|
1229
|
-
* const dbLayer = Layer.succeed(Database
|
|
1374
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
1230
1375
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1231
1376
|
* })
|
|
1232
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1377
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1233
1378
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1234
1379
|
* })
|
|
1235
1380
|
*
|
|
1236
1381
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1237
1382
|
* ```
|
|
1238
1383
|
*
|
|
1384
|
+
* @see {@link mergeAll} for merging several layers at once
|
|
1385
|
+
*
|
|
1239
1386
|
* @category zipping
|
|
1240
1387
|
* @since 2.0.0
|
|
1241
1388
|
*/
|
|
1242
1389
|
<const Layers extends [Any, ...Array<Any>]>(that: Layers): <A, E, R>(self: Layer<A, E, R>) => Layer<A | Success<Layers[number]>, E | Error<Layers[number]>, Services<Layers[number]> | R>;
|
|
1243
1390
|
/**
|
|
1244
|
-
* Merges this layer with
|
|
1391
|
+
* Merges this layer with another layer concurrently, producing a new layer with
|
|
1392
|
+
* combined input, error, and output types.
|
|
1245
1393
|
*
|
|
1246
|
-
*
|
|
1247
|
-
*
|
|
1394
|
+
* **When to use**
|
|
1395
|
+
*
|
|
1396
|
+
* Use `merge` when composing from an existing layer in a pipeline. Use
|
|
1397
|
+
* `mergeAll` when you already have all layers as separate arguments.
|
|
1398
|
+
*
|
|
1399
|
+
* **Details**
|
|
1400
|
+
*
|
|
1401
|
+
* This is a binary version of `mergeAll` that merges exactly two layers or one
|
|
1402
|
+
* layer with an array of layers. The layers are built concurrently and their
|
|
1403
|
+
* outputs are combined.
|
|
1248
1404
|
*
|
|
1249
1405
|
* **Example** (Merging two layers)
|
|
1250
1406
|
*
|
|
@@ -1259,25 +1415,36 @@ export declare const merge: {
|
|
|
1259
1415
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1260
1416
|
* }>()("Logger") {}
|
|
1261
1417
|
*
|
|
1262
|
-
* const dbLayer = Layer.succeed(Database
|
|
1418
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
1263
1419
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1264
1420
|
* })
|
|
1265
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1421
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1266
1422
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1267
1423
|
* })
|
|
1268
1424
|
*
|
|
1269
1425
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1270
1426
|
* ```
|
|
1271
1427
|
*
|
|
1428
|
+
* @see {@link mergeAll} for merging several layers at once
|
|
1429
|
+
*
|
|
1272
1430
|
* @category zipping
|
|
1273
1431
|
* @since 2.0.0
|
|
1274
1432
|
*/
|
|
1275
1433
|
<RIn2, E2, ROut2, RIn, E, ROut>(self: Layer<ROut2, E2, RIn2>, that: Layer<ROut, E, RIn>): Layer<ROut | ROut2, E | E2, RIn | RIn2>;
|
|
1276
1434
|
/**
|
|
1277
|
-
* Merges this layer with
|
|
1435
|
+
* Merges this layer with another layer concurrently, producing a new layer with
|
|
1436
|
+
* combined input, error, and output types.
|
|
1437
|
+
*
|
|
1438
|
+
* **When to use**
|
|
1439
|
+
*
|
|
1440
|
+
* Use `merge` when composing from an existing layer in a pipeline. Use
|
|
1441
|
+
* `mergeAll` when you already have all layers as separate arguments.
|
|
1278
1442
|
*
|
|
1279
|
-
*
|
|
1280
|
-
*
|
|
1443
|
+
* **Details**
|
|
1444
|
+
*
|
|
1445
|
+
* This is a binary version of `mergeAll` that merges exactly two layers or one
|
|
1446
|
+
* layer with an array of layers. The layers are built concurrently and their
|
|
1447
|
+
* outputs are combined.
|
|
1281
1448
|
*
|
|
1282
1449
|
* **Example** (Merging two layers)
|
|
1283
1450
|
*
|
|
@@ -1292,25 +1459,37 @@ export declare const merge: {
|
|
|
1292
1459
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1293
1460
|
* }>()("Logger") {}
|
|
1294
1461
|
*
|
|
1295
|
-
* const dbLayer = Layer.succeed(Database
|
|
1462
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
1296
1463
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1297
1464
|
* })
|
|
1298
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1465
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1299
1466
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1300
1467
|
* })
|
|
1301
1468
|
*
|
|
1302
1469
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
1303
1470
|
* ```
|
|
1304
1471
|
*
|
|
1472
|
+
* @see {@link mergeAll} for merging several layers at once
|
|
1473
|
+
*
|
|
1305
1474
|
* @category zipping
|
|
1306
1475
|
* @since 2.0.0
|
|
1307
1476
|
*/
|
|
1308
1477
|
<A, E, R, const Layers extends [Any, ...Array<Any>]>(self: Layer<A, E, R>, that: Layers): Layer<A | Success<Layers[number]>, E | Error<Layers[number]>, Services<Layers[number]> | R>;
|
|
1309
1478
|
};
|
|
1310
1479
|
/**
|
|
1311
|
-
* Feeds the output services of
|
|
1312
|
-
*
|
|
1313
|
-
*
|
|
1480
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
1481
|
+
* this layer, returning a layer that only provides the services from this layer.
|
|
1482
|
+
*
|
|
1483
|
+
* **When to use**
|
|
1484
|
+
*
|
|
1485
|
+
* Use `provide` when the dependency layer is an implementation detail of the
|
|
1486
|
+
* layer being built and should not be exposed to callers. Use `provideMerge`
|
|
1487
|
+
* when callers should also receive the dependency services.
|
|
1488
|
+
*
|
|
1489
|
+
* **Details**
|
|
1490
|
+
*
|
|
1491
|
+
* In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
|
|
1492
|
+
* built first and is used to satisfy the requirements of `serviceLayer`.
|
|
1314
1493
|
*
|
|
1315
1494
|
* **Example** (Providing layer dependencies)
|
|
1316
1495
|
*
|
|
@@ -1333,16 +1512,16 @@ export declare const merge: {
|
|
|
1333
1512
|
* }>()("Logger") {}
|
|
1334
1513
|
*
|
|
1335
1514
|
* // Create dependency layers
|
|
1336
|
-
* const databaseLayer = Layer.succeed(Database
|
|
1515
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1337
1516
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1338
1517
|
* })
|
|
1339
1518
|
*
|
|
1340
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1519
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1341
1520
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1342
1521
|
* })
|
|
1343
1522
|
*
|
|
1344
1523
|
* // UserService depends on Database and Logger
|
|
1345
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
1524
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1346
1525
|
* const database = yield* Database
|
|
1347
1526
|
* const logger = yield* Logger
|
|
1348
1527
|
*
|
|
@@ -1371,14 +1550,26 @@ export declare const merge: {
|
|
|
1371
1550
|
* )
|
|
1372
1551
|
* ```
|
|
1373
1552
|
*
|
|
1553
|
+
* @see {@link provideMerge} for retaining the dependency services
|
|
1554
|
+
*
|
|
1374
1555
|
* @category utils
|
|
1375
1556
|
* @since 2.0.0
|
|
1376
1557
|
*/
|
|
1377
1558
|
export declare const provide: {
|
|
1378
1559
|
/**
|
|
1379
|
-
* Feeds the output services of
|
|
1380
|
-
*
|
|
1381
|
-
*
|
|
1560
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
1561
|
+
* this layer, returning a layer that only provides the services from this layer.
|
|
1562
|
+
*
|
|
1563
|
+
* **When to use**
|
|
1564
|
+
*
|
|
1565
|
+
* Use `provide` when the dependency layer is an implementation detail of the
|
|
1566
|
+
* layer being built and should not be exposed to callers. Use `provideMerge`
|
|
1567
|
+
* when callers should also receive the dependency services.
|
|
1568
|
+
*
|
|
1569
|
+
* **Details**
|
|
1570
|
+
*
|
|
1571
|
+
* In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
|
|
1572
|
+
* built first and is used to satisfy the requirements of `serviceLayer`.
|
|
1382
1573
|
*
|
|
1383
1574
|
* **Example** (Providing layer dependencies)
|
|
1384
1575
|
*
|
|
@@ -1401,16 +1592,16 @@ export declare const provide: {
|
|
|
1401
1592
|
* }>()("Logger") {}
|
|
1402
1593
|
*
|
|
1403
1594
|
* // Create dependency layers
|
|
1404
|
-
* const databaseLayer = Layer.succeed(Database
|
|
1595
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1405
1596
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1406
1597
|
* })
|
|
1407
1598
|
*
|
|
1408
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1599
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1409
1600
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1410
1601
|
* })
|
|
1411
1602
|
*
|
|
1412
1603
|
* // UserService depends on Database and Logger
|
|
1413
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
1604
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1414
1605
|
* const database = yield* Database
|
|
1415
1606
|
* const logger = yield* Logger
|
|
1416
1607
|
*
|
|
@@ -1439,14 +1630,26 @@ export declare const provide: {
|
|
|
1439
1630
|
* )
|
|
1440
1631
|
* ```
|
|
1441
1632
|
*
|
|
1633
|
+
* @see {@link provideMerge} for retaining the dependency services
|
|
1634
|
+
*
|
|
1442
1635
|
* @category utils
|
|
1443
1636
|
* @since 2.0.0
|
|
1444
1637
|
*/
|
|
1445
1638
|
<RIn, E, ROut>(that: Layer<ROut, E, RIn>): <RIn2, E2, ROut2>(self: Layer<ROut2, E2, RIn2>) => Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>;
|
|
1446
1639
|
/**
|
|
1447
|
-
* Feeds the output services of
|
|
1448
|
-
*
|
|
1449
|
-
*
|
|
1640
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
1641
|
+
* this layer, returning a layer that only provides the services from this layer.
|
|
1642
|
+
*
|
|
1643
|
+
* **When to use**
|
|
1644
|
+
*
|
|
1645
|
+
* Use `provide` when the dependency layer is an implementation detail of the
|
|
1646
|
+
* layer being built and should not be exposed to callers. Use `provideMerge`
|
|
1647
|
+
* when callers should also receive the dependency services.
|
|
1648
|
+
*
|
|
1649
|
+
* **Details**
|
|
1650
|
+
*
|
|
1651
|
+
* In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
|
|
1652
|
+
* built first and is used to satisfy the requirements of `serviceLayer`.
|
|
1450
1653
|
*
|
|
1451
1654
|
* **Example** (Providing layer dependencies)
|
|
1452
1655
|
*
|
|
@@ -1469,16 +1672,16 @@ export declare const provide: {
|
|
|
1469
1672
|
* }>()("Logger") {}
|
|
1470
1673
|
*
|
|
1471
1674
|
* // Create dependency layers
|
|
1472
|
-
* const databaseLayer = Layer.succeed(Database
|
|
1675
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1473
1676
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1474
1677
|
* })
|
|
1475
1678
|
*
|
|
1476
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1679
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1477
1680
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1478
1681
|
* })
|
|
1479
1682
|
*
|
|
1480
1683
|
* // UserService depends on Database and Logger
|
|
1481
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
1684
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1482
1685
|
* const database = yield* Database
|
|
1483
1686
|
* const logger = yield* Logger
|
|
1484
1687
|
*
|
|
@@ -1507,14 +1710,26 @@ export declare const provide: {
|
|
|
1507
1710
|
* )
|
|
1508
1711
|
* ```
|
|
1509
1712
|
*
|
|
1713
|
+
* @see {@link provideMerge} for retaining the dependency services
|
|
1714
|
+
*
|
|
1510
1715
|
* @category utils
|
|
1511
1716
|
* @since 2.0.0
|
|
1512
1717
|
*/
|
|
1513
1718
|
<const Layers extends [Any, ...Array<Any>]>(that: Layers): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E | Error<Layers[number]>, Services<Layers[number]> | Exclude<R, Success<Layers[number]>>>;
|
|
1514
1719
|
/**
|
|
1515
|
-
* Feeds the output services of
|
|
1516
|
-
*
|
|
1517
|
-
*
|
|
1720
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
1721
|
+
* this layer, returning a layer that only provides the services from this layer.
|
|
1722
|
+
*
|
|
1723
|
+
* **When to use**
|
|
1724
|
+
*
|
|
1725
|
+
* Use `provide` when the dependency layer is an implementation detail of the
|
|
1726
|
+
* layer being built and should not be exposed to callers. Use `provideMerge`
|
|
1727
|
+
* when callers should also receive the dependency services.
|
|
1728
|
+
*
|
|
1729
|
+
* **Details**
|
|
1730
|
+
*
|
|
1731
|
+
* In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
|
|
1732
|
+
* built first and is used to satisfy the requirements of `serviceLayer`.
|
|
1518
1733
|
*
|
|
1519
1734
|
* **Example** (Providing layer dependencies)
|
|
1520
1735
|
*
|
|
@@ -1537,16 +1752,16 @@ export declare const provide: {
|
|
|
1537
1752
|
* }>()("Logger") {}
|
|
1538
1753
|
*
|
|
1539
1754
|
* // Create dependency layers
|
|
1540
|
-
* const databaseLayer = Layer.succeed(Database
|
|
1755
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1541
1756
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1542
1757
|
* })
|
|
1543
1758
|
*
|
|
1544
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1759
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1545
1760
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1546
1761
|
* })
|
|
1547
1762
|
*
|
|
1548
1763
|
* // UserService depends on Database and Logger
|
|
1549
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
1764
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1550
1765
|
* const database = yield* Database
|
|
1551
1766
|
* const logger = yield* Logger
|
|
1552
1767
|
*
|
|
@@ -1575,14 +1790,26 @@ export declare const provide: {
|
|
|
1575
1790
|
* )
|
|
1576
1791
|
* ```
|
|
1577
1792
|
*
|
|
1793
|
+
* @see {@link provideMerge} for retaining the dependency services
|
|
1794
|
+
*
|
|
1578
1795
|
* @category utils
|
|
1579
1796
|
* @since 2.0.0
|
|
1580
1797
|
*/
|
|
1581
1798
|
<RIn2, E2, ROut2, RIn, E, ROut>(self: Layer<ROut2, E2, RIn2>, that: Layer<ROut, E, RIn>): Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>;
|
|
1582
1799
|
/**
|
|
1583
|
-
* Feeds the output services of
|
|
1584
|
-
*
|
|
1585
|
-
*
|
|
1800
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
1801
|
+
* this layer, returning a layer that only provides the services from this layer.
|
|
1802
|
+
*
|
|
1803
|
+
* **When to use**
|
|
1804
|
+
*
|
|
1805
|
+
* Use `provide` when the dependency layer is an implementation detail of the
|
|
1806
|
+
* layer being built and should not be exposed to callers. Use `provideMerge`
|
|
1807
|
+
* when callers should also receive the dependency services.
|
|
1808
|
+
*
|
|
1809
|
+
* **Details**
|
|
1810
|
+
*
|
|
1811
|
+
* In `serviceLayer.pipe(Layer.provide(dependencyLayer))`, the dependency layer is
|
|
1812
|
+
* built first and is used to satisfy the requirements of `serviceLayer`.
|
|
1586
1813
|
*
|
|
1587
1814
|
* **Example** (Providing layer dependencies)
|
|
1588
1815
|
*
|
|
@@ -1605,16 +1832,16 @@ export declare const provide: {
|
|
|
1605
1832
|
* }>()("Logger") {}
|
|
1606
1833
|
*
|
|
1607
1834
|
* // Create dependency layers
|
|
1608
|
-
* const databaseLayer = Layer.succeed(Database
|
|
1835
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1609
1836
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1610
1837
|
* })
|
|
1611
1838
|
*
|
|
1612
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1839
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1613
1840
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1614
1841
|
* })
|
|
1615
1842
|
*
|
|
1616
1843
|
* // UserService depends on Database and Logger
|
|
1617
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
1844
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1618
1845
|
* const database = yield* Database
|
|
1619
1846
|
* const logger = yield* Logger
|
|
1620
1847
|
*
|
|
@@ -1643,15 +1870,23 @@ export declare const provide: {
|
|
|
1643
1870
|
* )
|
|
1644
1871
|
* ```
|
|
1645
1872
|
*
|
|
1873
|
+
* @see {@link provideMerge} for retaining the dependency services
|
|
1874
|
+
*
|
|
1646
1875
|
* @category utils
|
|
1647
1876
|
* @since 2.0.0
|
|
1648
1877
|
*/
|
|
1649
1878
|
<A, E, R, const Layers extends [Any, ...Array<Any>]>(self: Layer<A, E, R>, that: Layers): Layer<A, E | Error<Layers[number]>, Services<Layers[number]> | Exclude<R, Success<Layers[number]>>>;
|
|
1650
1879
|
};
|
|
1651
1880
|
/**
|
|
1652
|
-
* Feeds the output services of
|
|
1653
|
-
* layer,
|
|
1654
|
-
*
|
|
1881
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
1882
|
+
* this layer, returning a layer that provides both sets of services.
|
|
1883
|
+
*
|
|
1884
|
+
* **When to use**
|
|
1885
|
+
*
|
|
1886
|
+
* Use this when callers need access to both the service being built and the
|
|
1887
|
+
* dependency used to build it, such as a health check that needs both a
|
|
1888
|
+
* repository and its database. Prefer `provide` when the dependency should stay
|
|
1889
|
+
* private.
|
|
1655
1890
|
*
|
|
1656
1891
|
* **Example** (Providing dependencies while retaining services)
|
|
1657
1892
|
*
|
|
@@ -1674,16 +1909,16 @@ export declare const provide: {
|
|
|
1674
1909
|
* }>()("UserService") {}
|
|
1675
1910
|
*
|
|
1676
1911
|
* // Create dependency layers
|
|
1677
|
-
* const databaseLayer = Layer.succeed(Database
|
|
1912
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1678
1913
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1679
1914
|
* })
|
|
1680
1915
|
*
|
|
1681
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1916
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1682
1917
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1683
1918
|
* })
|
|
1684
1919
|
*
|
|
1685
1920
|
* // UserService depends on Database and Logger
|
|
1686
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
1921
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1687
1922
|
* const database = yield* Database
|
|
1688
1923
|
* const logger = yield* Logger
|
|
1689
1924
|
*
|
|
@@ -1718,14 +1953,22 @@ export declare const provide: {
|
|
|
1718
1953
|
* )
|
|
1719
1954
|
* ```
|
|
1720
1955
|
*
|
|
1956
|
+
* @see {@link provide} for keeping dependency services private
|
|
1957
|
+
*
|
|
1721
1958
|
* @category utils
|
|
1722
1959
|
* @since 2.0.0
|
|
1723
1960
|
*/
|
|
1724
1961
|
export declare const provideMerge: {
|
|
1725
1962
|
/**
|
|
1726
|
-
* Feeds the output services of
|
|
1727
|
-
* layer,
|
|
1728
|
-
*
|
|
1963
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
1964
|
+
* this layer, returning a layer that provides both sets of services.
|
|
1965
|
+
*
|
|
1966
|
+
* **When to use**
|
|
1967
|
+
*
|
|
1968
|
+
* Use this when callers need access to both the service being built and the
|
|
1969
|
+
* dependency used to build it, such as a health check that needs both a
|
|
1970
|
+
* repository and its database. Prefer `provide` when the dependency should stay
|
|
1971
|
+
* private.
|
|
1729
1972
|
*
|
|
1730
1973
|
* **Example** (Providing dependencies while retaining services)
|
|
1731
1974
|
*
|
|
@@ -1748,16 +1991,16 @@ export declare const provideMerge: {
|
|
|
1748
1991
|
* }>()("UserService") {}
|
|
1749
1992
|
*
|
|
1750
1993
|
* // Create dependency layers
|
|
1751
|
-
* const databaseLayer = Layer.succeed(Database
|
|
1994
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1752
1995
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1753
1996
|
* })
|
|
1754
1997
|
*
|
|
1755
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
1998
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1756
1999
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1757
2000
|
* })
|
|
1758
2001
|
*
|
|
1759
2002
|
* // UserService depends on Database and Logger
|
|
1760
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
2003
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1761
2004
|
* const database = yield* Database
|
|
1762
2005
|
* const logger = yield* Logger
|
|
1763
2006
|
*
|
|
@@ -1792,14 +2035,22 @@ export declare const provideMerge: {
|
|
|
1792
2035
|
* )
|
|
1793
2036
|
* ```
|
|
1794
2037
|
*
|
|
2038
|
+
* @see {@link provide} for keeping dependency services private
|
|
2039
|
+
*
|
|
1795
2040
|
* @category utils
|
|
1796
2041
|
* @since 2.0.0
|
|
1797
2042
|
*/
|
|
1798
2043
|
<RIn, E, ROut>(that: Layer<ROut, E, RIn>): <RIn2, E2, ROut2>(self: Layer<ROut2, E2, RIn2>) => Layer<ROut | ROut2, E | E2, RIn | Exclude<RIn2, ROut>>;
|
|
1799
2044
|
/**
|
|
1800
|
-
* Feeds the output services of
|
|
1801
|
-
* layer,
|
|
1802
|
-
*
|
|
2045
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
2046
|
+
* this layer, returning a layer that provides both sets of services.
|
|
2047
|
+
*
|
|
2048
|
+
* **When to use**
|
|
2049
|
+
*
|
|
2050
|
+
* Use this when callers need access to both the service being built and the
|
|
2051
|
+
* dependency used to build it, such as a health check that needs both a
|
|
2052
|
+
* repository and its database. Prefer `provide` when the dependency should stay
|
|
2053
|
+
* private.
|
|
1803
2054
|
*
|
|
1804
2055
|
* **Example** (Providing dependencies while retaining services)
|
|
1805
2056
|
*
|
|
@@ -1822,16 +2073,16 @@ export declare const provideMerge: {
|
|
|
1822
2073
|
* }>()("UserService") {}
|
|
1823
2074
|
*
|
|
1824
2075
|
* // Create dependency layers
|
|
1825
|
-
* const databaseLayer = Layer.succeed(Database
|
|
2076
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1826
2077
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1827
2078
|
* })
|
|
1828
2079
|
*
|
|
1829
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
2080
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1830
2081
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1831
2082
|
* })
|
|
1832
2083
|
*
|
|
1833
2084
|
* // UserService depends on Database and Logger
|
|
1834
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
2085
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1835
2086
|
* const database = yield* Database
|
|
1836
2087
|
* const logger = yield* Logger
|
|
1837
2088
|
*
|
|
@@ -1866,14 +2117,22 @@ export declare const provideMerge: {
|
|
|
1866
2117
|
* )
|
|
1867
2118
|
* ```
|
|
1868
2119
|
*
|
|
2120
|
+
* @see {@link provide} for keeping dependency services private
|
|
2121
|
+
*
|
|
1869
2122
|
* @category utils
|
|
1870
2123
|
* @since 2.0.0
|
|
1871
2124
|
*/
|
|
1872
2125
|
<const Layers extends [Any, ...Array<Any>]>(that: Layers): <A, E, R>(self: Layer<A, E, R>) => Layer<A | Success<Layers[number]>, E | Error<Layers[number]>, Services<Layers[number]> | Exclude<R, Success<Layers[number]>>>;
|
|
1873
2126
|
/**
|
|
1874
|
-
* Feeds the output services of
|
|
1875
|
-
* layer,
|
|
1876
|
-
*
|
|
2127
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
2128
|
+
* this layer, returning a layer that provides both sets of services.
|
|
2129
|
+
*
|
|
2130
|
+
* **When to use**
|
|
2131
|
+
*
|
|
2132
|
+
* Use this when callers need access to both the service being built and the
|
|
2133
|
+
* dependency used to build it, such as a health check that needs both a
|
|
2134
|
+
* repository and its database. Prefer `provide` when the dependency should stay
|
|
2135
|
+
* private.
|
|
1877
2136
|
*
|
|
1878
2137
|
* **Example** (Providing dependencies while retaining services)
|
|
1879
2138
|
*
|
|
@@ -1896,16 +2155,16 @@ export declare const provideMerge: {
|
|
|
1896
2155
|
* }>()("UserService") {}
|
|
1897
2156
|
*
|
|
1898
2157
|
* // Create dependency layers
|
|
1899
|
-
* const databaseLayer = Layer.succeed(Database
|
|
2158
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1900
2159
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1901
2160
|
* })
|
|
1902
2161
|
*
|
|
1903
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
2162
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1904
2163
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1905
2164
|
* })
|
|
1906
2165
|
*
|
|
1907
2166
|
* // UserService depends on Database and Logger
|
|
1908
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
2167
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1909
2168
|
* const database = yield* Database
|
|
1910
2169
|
* const logger = yield* Logger
|
|
1911
2170
|
*
|
|
@@ -1940,14 +2199,22 @@ export declare const provideMerge: {
|
|
|
1940
2199
|
* )
|
|
1941
2200
|
* ```
|
|
1942
2201
|
*
|
|
2202
|
+
* @see {@link provide} for keeping dependency services private
|
|
2203
|
+
*
|
|
1943
2204
|
* @category utils
|
|
1944
2205
|
* @since 2.0.0
|
|
1945
2206
|
*/
|
|
1946
2207
|
<RIn2, E2, ROut2, RIn, E, ROut>(self: Layer<ROut2, E2, RIn2>, that: Layer<ROut, E, RIn>): Layer<ROut | ROut2, E | E2, RIn | Exclude<RIn2, ROut>>;
|
|
1947
2208
|
/**
|
|
1948
|
-
* Feeds the output services of
|
|
1949
|
-
* layer,
|
|
1950
|
-
*
|
|
2209
|
+
* Feeds the output services of the dependency layer into the requirements of
|
|
2210
|
+
* this layer, returning a layer that provides both sets of services.
|
|
2211
|
+
*
|
|
2212
|
+
* **When to use**
|
|
2213
|
+
*
|
|
2214
|
+
* Use this when callers need access to both the service being built and the
|
|
2215
|
+
* dependency used to build it, such as a health check that needs both a
|
|
2216
|
+
* repository and its database. Prefer `provide` when the dependency should stay
|
|
2217
|
+
* private.
|
|
1951
2218
|
*
|
|
1952
2219
|
* **Example** (Providing dependencies while retaining services)
|
|
1953
2220
|
*
|
|
@@ -1970,16 +2237,16 @@ export declare const provideMerge: {
|
|
|
1970
2237
|
* }>()("UserService") {}
|
|
1971
2238
|
*
|
|
1972
2239
|
* // Create dependency layers
|
|
1973
|
-
* const databaseLayer = Layer.succeed(Database
|
|
2240
|
+
* const databaseLayer = Layer.succeed(Database, {
|
|
1974
2241
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1975
2242
|
* })
|
|
1976
2243
|
*
|
|
1977
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
2244
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
1978
2245
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1979
2246
|
* })
|
|
1980
2247
|
*
|
|
1981
2248
|
* // UserService depends on Database and Logger
|
|
1982
|
-
* const userServiceLayer = Layer.effect(UserService
|
|
2249
|
+
* const userServiceLayer = Layer.effect(UserService, Effect.gen(function*() {
|
|
1983
2250
|
* const database = yield* Database
|
|
1984
2251
|
* const logger = yield* Logger
|
|
1985
2252
|
*
|
|
@@ -2014,6 +2281,8 @@ export declare const provideMerge: {
|
|
|
2014
2281
|
* )
|
|
2015
2282
|
* ```
|
|
2016
2283
|
*
|
|
2284
|
+
* @see {@link provide} for keeping dependency services private
|
|
2285
|
+
*
|
|
2017
2286
|
* @category utils
|
|
2018
2287
|
* @since 2.0.0
|
|
2019
2288
|
*/
|
|
@@ -2041,7 +2310,7 @@ export declare const provideMerge: {
|
|
|
2041
2310
|
* }>()("Logger") {}
|
|
2042
2311
|
*
|
|
2043
2312
|
* // Base config layer
|
|
2044
|
-
* const configLayer = Layer.succeed(Config
|
|
2313
|
+
* const configLayer = Layer.succeed(Config, {
|
|
2045
2314
|
* dbUrl: "postgres://localhost:5432/mydb",
|
|
2046
2315
|
* logLevel: "debug"
|
|
2047
2316
|
* })
|
|
@@ -2052,7 +2321,7 @@ export declare const provideMerge: {
|
|
|
2052
2321
|
* const config = Context.get(context, Config)
|
|
2053
2322
|
*
|
|
2054
2323
|
* // Create database layer based on config
|
|
2055
|
-
* const dbLayer = Layer.succeed(Database
|
|
2324
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
2056
2325
|
* query: Effect.fn("Database.query")((sql: string) =>
|
|
2057
2326
|
* Effect.succeed(
|
|
2058
2327
|
* `Querying ${config.dbUrl}: ${sql}`
|
|
@@ -2060,7 +2329,7 @@ export declare const provideMerge: {
|
|
|
2060
2329
|
* })
|
|
2061
2330
|
*
|
|
2062
2331
|
* // Create logger layer based on config
|
|
2063
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
2332
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
2064
2333
|
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2065
2334
|
* config.logLevel === "debug"
|
|
2066
2335
|
* ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
|
|
@@ -2113,7 +2382,7 @@ export declare const flatMap: {
|
|
|
2113
2382
|
* }>()("Logger") {}
|
|
2114
2383
|
*
|
|
2115
2384
|
* // Base config layer
|
|
2116
|
-
* const configLayer = Layer.succeed(Config
|
|
2385
|
+
* const configLayer = Layer.succeed(Config, {
|
|
2117
2386
|
* dbUrl: "postgres://localhost:5432/mydb",
|
|
2118
2387
|
* logLevel: "debug"
|
|
2119
2388
|
* })
|
|
@@ -2124,7 +2393,7 @@ export declare const flatMap: {
|
|
|
2124
2393
|
* const config = Context.get(context, Config)
|
|
2125
2394
|
*
|
|
2126
2395
|
* // Create database layer based on config
|
|
2127
|
-
* const dbLayer = Layer.succeed(Database
|
|
2396
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
2128
2397
|
* query: Effect.fn("Database.query")((sql: string) =>
|
|
2129
2398
|
* Effect.succeed(
|
|
2130
2399
|
* `Querying ${config.dbUrl}: ${sql}`
|
|
@@ -2132,7 +2401,7 @@ export declare const flatMap: {
|
|
|
2132
2401
|
* })
|
|
2133
2402
|
*
|
|
2134
2403
|
* // Create logger layer based on config
|
|
2135
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
2404
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
2136
2405
|
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2137
2406
|
* config.logLevel === "debug"
|
|
2138
2407
|
* ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
|
|
@@ -2185,7 +2454,7 @@ export declare const flatMap: {
|
|
|
2185
2454
|
* }>()("Logger") {}
|
|
2186
2455
|
*
|
|
2187
2456
|
* // Base config layer
|
|
2188
|
-
* const configLayer = Layer.succeed(Config
|
|
2457
|
+
* const configLayer = Layer.succeed(Config, {
|
|
2189
2458
|
* dbUrl: "postgres://localhost:5432/mydb",
|
|
2190
2459
|
* logLevel: "debug"
|
|
2191
2460
|
* })
|
|
@@ -2196,7 +2465,7 @@ export declare const flatMap: {
|
|
|
2196
2465
|
* const config = Context.get(context, Config)
|
|
2197
2466
|
*
|
|
2198
2467
|
* // Create database layer based on config
|
|
2199
|
-
* const dbLayer = Layer.succeed(Database
|
|
2468
|
+
* const dbLayer = Layer.succeed(Database, {
|
|
2200
2469
|
* query: Effect.fn("Database.query")((sql: string) =>
|
|
2201
2470
|
* Effect.succeed(
|
|
2202
2471
|
* `Querying ${config.dbUrl}: ${sql}`
|
|
@@ -2204,7 +2473,7 @@ export declare const flatMap: {
|
|
|
2204
2473
|
* })
|
|
2205
2474
|
*
|
|
2206
2475
|
* // Create logger layer based on config
|
|
2207
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
2476
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
2208
2477
|
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2209
2478
|
* config.logLevel === "debug"
|
|
2210
2479
|
* ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
|
|
@@ -2239,6 +2508,11 @@ export declare const flatMap: {
|
|
|
2239
2508
|
/**
|
|
2240
2509
|
* Performs the specified effect if this layer succeeds.
|
|
2241
2510
|
*
|
|
2511
|
+
* **Details**
|
|
2512
|
+
*
|
|
2513
|
+
* The callback receives the services produced by this layer. Its result is
|
|
2514
|
+
* discarded, and the original layer output is preserved.
|
|
2515
|
+
*
|
|
2242
2516
|
* @category sequencing
|
|
2243
2517
|
* @since 2.0.0
|
|
2244
2518
|
*/
|
|
@@ -2246,6 +2520,11 @@ export declare const tap: {
|
|
|
2246
2520
|
/**
|
|
2247
2521
|
* Performs the specified effect if this layer succeeds.
|
|
2248
2522
|
*
|
|
2523
|
+
* **Details**
|
|
2524
|
+
*
|
|
2525
|
+
* The callback receives the services produced by this layer. Its result is
|
|
2526
|
+
* discarded, and the original layer output is preserved.
|
|
2527
|
+
*
|
|
2249
2528
|
* @category sequencing
|
|
2250
2529
|
* @since 2.0.0
|
|
2251
2530
|
*/
|
|
@@ -2253,6 +2532,11 @@ export declare const tap: {
|
|
|
2253
2532
|
/**
|
|
2254
2533
|
* Performs the specified effect if this layer succeeds.
|
|
2255
2534
|
*
|
|
2535
|
+
* **Details**
|
|
2536
|
+
*
|
|
2537
|
+
* The callback receives the services produced by this layer. Its result is
|
|
2538
|
+
* discarded, and the original layer output is preserved.
|
|
2539
|
+
*
|
|
2256
2540
|
* @category sequencing
|
|
2257
2541
|
* @since 2.0.0
|
|
2258
2542
|
*/
|
|
@@ -2261,6 +2545,12 @@ export declare const tap: {
|
|
|
2261
2545
|
/**
|
|
2262
2546
|
* Performs the specified effect if this layer fails.
|
|
2263
2547
|
*
|
|
2548
|
+
* **Details**
|
|
2549
|
+
*
|
|
2550
|
+
* The callback receives the typed error. If the callback succeeds, the layer
|
|
2551
|
+
* still fails with the original error; if the callback fails, that failure is
|
|
2552
|
+
* added to the layer's error type.
|
|
2553
|
+
*
|
|
2264
2554
|
* @category sequencing
|
|
2265
2555
|
* @since 2.0.0
|
|
2266
2556
|
*/
|
|
@@ -2268,6 +2558,12 @@ export declare const tapError: {
|
|
|
2268
2558
|
/**
|
|
2269
2559
|
* Performs the specified effect if this layer fails.
|
|
2270
2560
|
*
|
|
2561
|
+
* **Details**
|
|
2562
|
+
*
|
|
2563
|
+
* The callback receives the typed error. If the callback succeeds, the layer
|
|
2564
|
+
* still fails with the original error; if the callback fails, that failure is
|
|
2565
|
+
* added to the layer's error type.
|
|
2566
|
+
*
|
|
2271
2567
|
* @category sequencing
|
|
2272
2568
|
* @since 2.0.0
|
|
2273
2569
|
*/
|
|
@@ -2275,6 +2571,12 @@ export declare const tapError: {
|
|
|
2275
2571
|
/**
|
|
2276
2572
|
* Performs the specified effect if this layer fails.
|
|
2277
2573
|
*
|
|
2574
|
+
* **Details**
|
|
2575
|
+
*
|
|
2576
|
+
* The callback receives the typed error. If the callback succeeds, the layer
|
|
2577
|
+
* still fails with the original error; if the callback fails, that failure is
|
|
2578
|
+
* added to the layer's error type.
|
|
2579
|
+
*
|
|
2278
2580
|
* @category sequencing
|
|
2279
2581
|
* @since 2.0.0
|
|
2280
2582
|
*/
|
|
@@ -2284,6 +2586,7 @@ export declare const tapError: {
|
|
|
2284
2586
|
* Performs the specified effect when this layer fails with any cause.
|
|
2285
2587
|
*
|
|
2286
2588
|
* **Details**
|
|
2589
|
+
*
|
|
2287
2590
|
* The callback receives the layer's `Cause`, so it can inspect typed errors,
|
|
2288
2591
|
* defects, and interruption information. If the callback succeeds, the layer
|
|
2289
2592
|
* fails again with the original cause; if the callback fails, that failure is
|
|
@@ -2297,6 +2600,7 @@ export declare const tapCause: {
|
|
|
2297
2600
|
* Performs the specified effect when this layer fails with any cause.
|
|
2298
2601
|
*
|
|
2299
2602
|
* **Details**
|
|
2603
|
+
*
|
|
2300
2604
|
* The callback receives the layer's `Cause`, so it can inspect typed errors,
|
|
2301
2605
|
* defects, and interruption information. If the callback succeeds, the layer
|
|
2302
2606
|
* fails again with the original cause; if the callback fails, that failure is
|
|
@@ -2310,6 +2614,7 @@ export declare const tapCause: {
|
|
|
2310
2614
|
* Performs the specified effect when this layer fails with any cause.
|
|
2311
2615
|
*
|
|
2312
2616
|
* **Details**
|
|
2617
|
+
*
|
|
2313
2618
|
* The callback receives the layer's `Cause`, so it can inspect typed errors,
|
|
2314
2619
|
* defects, and interruption information. If the callback succeeds, the layer
|
|
2315
2620
|
* fails again with the original cause; if the callback fails, that failure is
|
|
@@ -2321,8 +2626,13 @@ export declare const tapCause: {
|
|
|
2321
2626
|
<RIn, E, XE extends E, ROut, RIn2, E2, X>(self: Layer<ROut, E, RIn>, f: (cause: Cause.Cause<XE>) => Effect<X, E2, RIn2>): Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>;
|
|
2322
2627
|
};
|
|
2323
2628
|
/**
|
|
2324
|
-
*
|
|
2325
|
-
*
|
|
2629
|
+
* Converts layer construction failures into defects, removing them from the
|
|
2630
|
+
* layer's error type.
|
|
2631
|
+
*
|
|
2632
|
+
* **Details**
|
|
2633
|
+
*
|
|
2634
|
+
* Use this only when failures should be treated as unrecoverable defects rather
|
|
2635
|
+
* than typed errors that callers can handle.
|
|
2326
2636
|
*
|
|
2327
2637
|
* **Example** (Converting layer failures to defects)
|
|
2328
2638
|
*
|
|
@@ -2338,7 +2648,7 @@ export declare const tapCause: {
|
|
|
2338
2648
|
* }>()("Database") {}
|
|
2339
2649
|
*
|
|
2340
2650
|
* // Layer that can fail during construction
|
|
2341
|
-
* const flakyDatabaseLayer = Layer.effect(Database
|
|
2651
|
+
* const flakyDatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
2342
2652
|
* console.log("connecting")
|
|
2343
2653
|
* return yield* new DatabaseError({ message: "Connection failed" })
|
|
2344
2654
|
* }))
|
|
@@ -2368,7 +2678,16 @@ declare const catch_: {
|
|
|
2368
2678
|
};
|
|
2369
2679
|
export {
|
|
2370
2680
|
/**
|
|
2371
|
-
* Recovers from all errors.
|
|
2681
|
+
* Recovers from all typed errors by switching to another layer.
|
|
2682
|
+
*
|
|
2683
|
+
* **When to use**
|
|
2684
|
+
*
|
|
2685
|
+
* Use `catch` when every typed construction error should use the same recovery
|
|
2686
|
+
* path. Use `catchTag` to recover from specific tagged errors, and `catchCause`
|
|
2687
|
+
* when recovery needs the full failure cause.
|
|
2688
|
+
*
|
|
2689
|
+
* @see {@link catchTag} for recovering from specific tagged errors
|
|
2690
|
+
* @see {@link catchCause} for recovering with access to the full cause
|
|
2372
2691
|
*
|
|
2373
2692
|
* @category error handling
|
|
2374
2693
|
* @since 4.0.0
|
|
@@ -2377,6 +2696,12 @@ catch_ as catch };
|
|
|
2377
2696
|
/**
|
|
2378
2697
|
* Recovers from specific tagged errors.
|
|
2379
2698
|
*
|
|
2699
|
+
* **When to use**
|
|
2700
|
+
*
|
|
2701
|
+
* Use `catchTag` when only some tagged construction errors should be recovered.
|
|
2702
|
+
* Use `catchCause` when recovery depends on defects, interruption, or other
|
|
2703
|
+
* cause information.
|
|
2704
|
+
*
|
|
2380
2705
|
* **Example** (Recovering from tagged layer errors)
|
|
2381
2706
|
*
|
|
2382
2707
|
* ```ts
|
|
@@ -2388,15 +2713,17 @@ catch_ as catch };
|
|
|
2388
2713
|
* readonly apiUrl: string
|
|
2389
2714
|
* }>()("Config") {}
|
|
2390
2715
|
*
|
|
2391
|
-
* const configLayer = Layer.effect(Config
|
|
2716
|
+
* const configLayer = Layer.effect(Config, Effect.fail(new ConfigError()))
|
|
2392
2717
|
*
|
|
2393
|
-
* const fallbackLayer = Layer.succeed(Config
|
|
2718
|
+
* const fallbackLayer = Layer.succeed(Config, { apiUrl: "http://localhost" })
|
|
2394
2719
|
*
|
|
2395
2720
|
* const recovered = configLayer.pipe(
|
|
2396
2721
|
* Layer.catchTag("ConfigError", () => fallbackLayer)
|
|
2397
2722
|
* )
|
|
2398
2723
|
* ```
|
|
2399
2724
|
*
|
|
2725
|
+
* @see {@link catchCause} for recovering with access to the full cause
|
|
2726
|
+
*
|
|
2400
2727
|
* @category error handling
|
|
2401
2728
|
* @since 4.0.0
|
|
2402
2729
|
*/
|
|
@@ -2404,6 +2731,12 @@ export declare const catchTag: {
|
|
|
2404
2731
|
/**
|
|
2405
2732
|
* Recovers from specific tagged errors.
|
|
2406
2733
|
*
|
|
2734
|
+
* **When to use**
|
|
2735
|
+
*
|
|
2736
|
+
* Use `catchTag` when only some tagged construction errors should be recovered.
|
|
2737
|
+
* Use `catchCause` when recovery depends on defects, interruption, or other
|
|
2738
|
+
* cause information.
|
|
2739
|
+
*
|
|
2407
2740
|
* **Example** (Recovering from tagged layer errors)
|
|
2408
2741
|
*
|
|
2409
2742
|
* ```ts
|
|
@@ -2415,15 +2748,17 @@ export declare const catchTag: {
|
|
|
2415
2748
|
* readonly apiUrl: string
|
|
2416
2749
|
* }>()("Config") {}
|
|
2417
2750
|
*
|
|
2418
|
-
* const configLayer = Layer.effect(Config
|
|
2751
|
+
* const configLayer = Layer.effect(Config, Effect.fail(new ConfigError()))
|
|
2419
2752
|
*
|
|
2420
|
-
* const fallbackLayer = Layer.succeed(Config
|
|
2753
|
+
* const fallbackLayer = Layer.succeed(Config, { apiUrl: "http://localhost" })
|
|
2421
2754
|
*
|
|
2422
2755
|
* const recovered = configLayer.pipe(
|
|
2423
2756
|
* Layer.catchTag("ConfigError", () => fallbackLayer)
|
|
2424
2757
|
* )
|
|
2425
2758
|
* ```
|
|
2426
2759
|
*
|
|
2760
|
+
* @see {@link catchCause} for recovering with access to the full cause
|
|
2761
|
+
*
|
|
2427
2762
|
* @category error handling
|
|
2428
2763
|
* @since 4.0.0
|
|
2429
2764
|
*/
|
|
@@ -2431,6 +2766,12 @@ export declare const catchTag: {
|
|
|
2431
2766
|
/**
|
|
2432
2767
|
* Recovers from specific tagged errors.
|
|
2433
2768
|
*
|
|
2769
|
+
* **When to use**
|
|
2770
|
+
*
|
|
2771
|
+
* Use `catchTag` when only some tagged construction errors should be recovered.
|
|
2772
|
+
* Use `catchCause` when recovery depends on defects, interruption, or other
|
|
2773
|
+
* cause information.
|
|
2774
|
+
*
|
|
2434
2775
|
* **Example** (Recovering from tagged layer errors)
|
|
2435
2776
|
*
|
|
2436
2777
|
* ```ts
|
|
@@ -2442,15 +2783,17 @@ export declare const catchTag: {
|
|
|
2442
2783
|
* readonly apiUrl: string
|
|
2443
2784
|
* }>()("Config") {}
|
|
2444
2785
|
*
|
|
2445
|
-
* const configLayer = Layer.effect(Config
|
|
2786
|
+
* const configLayer = Layer.effect(Config, Effect.fail(new ConfigError()))
|
|
2446
2787
|
*
|
|
2447
|
-
* const fallbackLayer = Layer.succeed(Config
|
|
2788
|
+
* const fallbackLayer = Layer.succeed(Config, { apiUrl: "http://localhost" })
|
|
2448
2789
|
*
|
|
2449
2790
|
* const recovered = configLayer.pipe(
|
|
2450
2791
|
* Layer.catchTag("ConfigError", () => fallbackLayer)
|
|
2451
2792
|
* )
|
|
2452
2793
|
* ```
|
|
2453
2794
|
*
|
|
2795
|
+
* @see {@link catchCause} for recovering with access to the full cause
|
|
2796
|
+
*
|
|
2454
2797
|
* @category error handling
|
|
2455
2798
|
* @since 4.0.0
|
|
2456
2799
|
*/
|
|
@@ -2459,10 +2802,18 @@ export declare const catchTag: {
|
|
|
2459
2802
|
/**
|
|
2460
2803
|
* Recovers from any failure cause by switching to another layer.
|
|
2461
2804
|
*
|
|
2805
|
+
* **When to use**
|
|
2806
|
+
*
|
|
2807
|
+
* Use `catchCause` when recovery needs more than the typed error, such as
|
|
2808
|
+
* defects or interruption information. Use `catchTag` when recovery only needs
|
|
2809
|
+
* to match specific tagged errors.
|
|
2810
|
+
*
|
|
2462
2811
|
* **Details**
|
|
2812
|
+
*
|
|
2463
2813
|
* The handler receives the full `Cause` of the failed layer, including typed
|
|
2464
|
-
* errors, defects, and interruption information, and returns the
|
|
2465
|
-
* to build instead.
|
|
2814
|
+
* errors, unexpected defects, and interruption information, and returns the
|
|
2815
|
+
* fallback layer to build instead. Finalizers for resources acquired by the
|
|
2816
|
+
* failed layer are still run before the fallback layer is acquired.
|
|
2466
2817
|
*
|
|
2467
2818
|
* **Example** (Recovering from layer failures by cause)
|
|
2468
2819
|
*
|
|
@@ -2477,13 +2828,13 @@ export declare const catchTag: {
|
|
|
2477
2828
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2478
2829
|
* }>()("Database") {}
|
|
2479
2830
|
*
|
|
2480
|
-
* const primaryDatabaseLayer = Layer.effect(Database
|
|
2831
|
+
* const primaryDatabaseLayer = Layer.effect(Database,
|
|
2481
2832
|
* Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
|
|
2482
2833
|
* )
|
|
2483
2834
|
*
|
|
2484
2835
|
* const databaseWithFallback = primaryDatabaseLayer.pipe(
|
|
2485
2836
|
* Layer.catchCause(() => {
|
|
2486
|
-
* return Layer.succeed(Database
|
|
2837
|
+
* return Layer.succeed(Database, {
|
|
2487
2838
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
|
|
2488
2839
|
* })
|
|
2489
2840
|
* })
|
|
@@ -2501,6 +2852,8 @@ export declare const catchTag: {
|
|
|
2501
2852
|
* // Memory: SELECT * FROM users
|
|
2502
2853
|
* ```
|
|
2503
2854
|
*
|
|
2855
|
+
* @see {@link catchTag} for recovering from specific tagged errors
|
|
2856
|
+
*
|
|
2504
2857
|
* @category error handling
|
|
2505
2858
|
* @since 4.0.0
|
|
2506
2859
|
*/
|
|
@@ -2508,10 +2861,18 @@ export declare const catchCause: {
|
|
|
2508
2861
|
/**
|
|
2509
2862
|
* Recovers from any failure cause by switching to another layer.
|
|
2510
2863
|
*
|
|
2864
|
+
* **When to use**
|
|
2865
|
+
*
|
|
2866
|
+
* Use `catchCause` when recovery needs more than the typed error, such as
|
|
2867
|
+
* defects or interruption information. Use `catchTag` when recovery only needs
|
|
2868
|
+
* to match specific tagged errors.
|
|
2869
|
+
*
|
|
2511
2870
|
* **Details**
|
|
2871
|
+
*
|
|
2512
2872
|
* The handler receives the full `Cause` of the failed layer, including typed
|
|
2513
|
-
* errors, defects, and interruption information, and returns the
|
|
2514
|
-
* to build instead.
|
|
2873
|
+
* errors, unexpected defects, and interruption information, and returns the
|
|
2874
|
+
* fallback layer to build instead. Finalizers for resources acquired by the
|
|
2875
|
+
* failed layer are still run before the fallback layer is acquired.
|
|
2515
2876
|
*
|
|
2516
2877
|
* **Example** (Recovering from layer failures by cause)
|
|
2517
2878
|
*
|
|
@@ -2526,13 +2887,13 @@ export declare const catchCause: {
|
|
|
2526
2887
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2527
2888
|
* }>()("Database") {}
|
|
2528
2889
|
*
|
|
2529
|
-
* const primaryDatabaseLayer = Layer.effect(Database
|
|
2890
|
+
* const primaryDatabaseLayer = Layer.effect(Database,
|
|
2530
2891
|
* Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
|
|
2531
2892
|
* )
|
|
2532
2893
|
*
|
|
2533
2894
|
* const databaseWithFallback = primaryDatabaseLayer.pipe(
|
|
2534
2895
|
* Layer.catchCause(() => {
|
|
2535
|
-
* return Layer.succeed(Database
|
|
2896
|
+
* return Layer.succeed(Database, {
|
|
2536
2897
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
|
|
2537
2898
|
* })
|
|
2538
2899
|
* })
|
|
@@ -2550,6 +2911,8 @@ export declare const catchCause: {
|
|
|
2550
2911
|
* // Memory: SELECT * FROM users
|
|
2551
2912
|
* ```
|
|
2552
2913
|
*
|
|
2914
|
+
* @see {@link catchTag} for recovering from specific tagged errors
|
|
2915
|
+
*
|
|
2553
2916
|
* @category error handling
|
|
2554
2917
|
* @since 4.0.0
|
|
2555
2918
|
*/
|
|
@@ -2557,10 +2920,18 @@ export declare const catchCause: {
|
|
|
2557
2920
|
/**
|
|
2558
2921
|
* Recovers from any failure cause by switching to another layer.
|
|
2559
2922
|
*
|
|
2923
|
+
* **When to use**
|
|
2924
|
+
*
|
|
2925
|
+
* Use `catchCause` when recovery needs more than the typed error, such as
|
|
2926
|
+
* defects or interruption information. Use `catchTag` when recovery only needs
|
|
2927
|
+
* to match specific tagged errors.
|
|
2928
|
+
*
|
|
2560
2929
|
* **Details**
|
|
2930
|
+
*
|
|
2561
2931
|
* The handler receives the full `Cause` of the failed layer, including typed
|
|
2562
|
-
* errors, defects, and interruption information, and returns the
|
|
2563
|
-
* to build instead.
|
|
2932
|
+
* errors, unexpected defects, and interruption information, and returns the
|
|
2933
|
+
* fallback layer to build instead. Finalizers for resources acquired by the
|
|
2934
|
+
* failed layer are still run before the fallback layer is acquired.
|
|
2564
2935
|
*
|
|
2565
2936
|
* **Example** (Recovering from layer failures by cause)
|
|
2566
2937
|
*
|
|
@@ -2575,13 +2946,13 @@ export declare const catchCause: {
|
|
|
2575
2946
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2576
2947
|
* }>()("Database") {}
|
|
2577
2948
|
*
|
|
2578
|
-
* const primaryDatabaseLayer = Layer.effect(Database
|
|
2949
|
+
* const primaryDatabaseLayer = Layer.effect(Database,
|
|
2579
2950
|
* Effect.fail(new DatabaseError({ message: "Primary DB unreachable" }))
|
|
2580
2951
|
* )
|
|
2581
2952
|
*
|
|
2582
2953
|
* const databaseWithFallback = primaryDatabaseLayer.pipe(
|
|
2583
2954
|
* Layer.catchCause(() => {
|
|
2584
|
-
* return Layer.succeed(Database
|
|
2955
|
+
* return Layer.succeed(Database, {
|
|
2585
2956
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
|
|
2586
2957
|
* })
|
|
2587
2958
|
* })
|
|
@@ -2599,6 +2970,8 @@ export declare const catchCause: {
|
|
|
2599
2970
|
* // Memory: SELECT * FROM users
|
|
2600
2971
|
* ```
|
|
2601
2972
|
*
|
|
2973
|
+
* @see {@link catchTag} for recovering from specific tagged errors
|
|
2974
|
+
*
|
|
2602
2975
|
* @category error handling
|
|
2603
2976
|
* @since 4.0.0
|
|
2604
2977
|
*/
|
|
@@ -2607,6 +2980,11 @@ export declare const catchCause: {
|
|
|
2607
2980
|
/**
|
|
2608
2981
|
* Updates a service in the context with a new implementation.
|
|
2609
2982
|
*
|
|
2983
|
+
* **When to use**
|
|
2984
|
+
*
|
|
2985
|
+
* Use this to adapt or extend a service's behavior during the creation of a
|
|
2986
|
+
* layer.
|
|
2987
|
+
*
|
|
2610
2988
|
* **Details**
|
|
2611
2989
|
*
|
|
2612
2990
|
* This function modifies the existing implementation of a service in the
|
|
@@ -2614,11 +2992,6 @@ export declare const catchCause: {
|
|
|
2614
2992
|
* transformation function `f`, and replaces the old service with the
|
|
2615
2993
|
* transformed one.
|
|
2616
2994
|
*
|
|
2617
|
-
* **When to Use**
|
|
2618
|
-
*
|
|
2619
|
-
* This is useful for adapting or extending a service's behavior during the
|
|
2620
|
-
* creation of a layer.
|
|
2621
|
-
*
|
|
2622
2995
|
* @category utils
|
|
2623
2996
|
* @since 3.13.0
|
|
2624
2997
|
*/
|
|
@@ -2626,6 +2999,11 @@ export declare const updateService: {
|
|
|
2626
2999
|
/**
|
|
2627
3000
|
* Updates a service in the context with a new implementation.
|
|
2628
3001
|
*
|
|
3002
|
+
* **When to use**
|
|
3003
|
+
*
|
|
3004
|
+
* Use this to adapt or extend a service's behavior during the creation of a
|
|
3005
|
+
* layer.
|
|
3006
|
+
*
|
|
2629
3007
|
* **Details**
|
|
2630
3008
|
*
|
|
2631
3009
|
* This function modifies the existing implementation of a service in the
|
|
@@ -2633,11 +3011,6 @@ export declare const updateService: {
|
|
|
2633
3011
|
* transformation function `f`, and replaces the old service with the
|
|
2634
3012
|
* transformed one.
|
|
2635
3013
|
*
|
|
2636
|
-
* **When to Use**
|
|
2637
|
-
*
|
|
2638
|
-
* This is useful for adapting or extending a service's behavior during the
|
|
2639
|
-
* creation of a layer.
|
|
2640
|
-
*
|
|
2641
3014
|
* @category utils
|
|
2642
3015
|
* @since 3.13.0
|
|
2643
3016
|
*/
|
|
@@ -2645,6 +3018,11 @@ export declare const updateService: {
|
|
|
2645
3018
|
/**
|
|
2646
3019
|
* Updates a service in the context with a new implementation.
|
|
2647
3020
|
*
|
|
3021
|
+
* **When to use**
|
|
3022
|
+
*
|
|
3023
|
+
* Use this to adapt or extend a service's behavior during the creation of a
|
|
3024
|
+
* layer.
|
|
3025
|
+
*
|
|
2648
3026
|
* **Details**
|
|
2649
3027
|
*
|
|
2650
3028
|
* This function modifies the existing implementation of a service in the
|
|
@@ -2652,11 +3030,6 @@ export declare const updateService: {
|
|
|
2652
3030
|
* transformation function `f`, and replaces the old service with the
|
|
2653
3031
|
* transformed one.
|
|
2654
3032
|
*
|
|
2655
|
-
* **When to Use**
|
|
2656
|
-
*
|
|
2657
|
-
* This is useful for adapting or extending a service's behavior during the
|
|
2658
|
-
* creation of a layer.
|
|
2659
|
-
*
|
|
2660
3033
|
* @category utils
|
|
2661
3034
|
* @since 3.13.0
|
|
2662
3035
|
*/
|
|
@@ -2665,6 +3038,13 @@ export declare const updateService: {
|
|
|
2665
3038
|
/**
|
|
2666
3039
|
* Creates a fresh version of this layer that will not be shared.
|
|
2667
3040
|
*
|
|
3041
|
+
* **When to use**
|
|
3042
|
+
*
|
|
3043
|
+
* Use `fresh` when two parts of an application must receive separate instances
|
|
3044
|
+
* of a resource, such as two independent client sessions. Do not use it just to
|
|
3045
|
+
* work around confusing composition: by default, sharing the same layer value is
|
|
3046
|
+
* usually the desired behavior.
|
|
3047
|
+
*
|
|
2668
3048
|
* **Example** (Creating non-shared layer instances)
|
|
2669
3049
|
*
|
|
2670
3050
|
* ```ts
|
|
@@ -2682,12 +3062,12 @@ export declare const updateService: {
|
|
|
2682
3062
|
* readonly counterId: number
|
|
2683
3063
|
* }>()("Right") {}
|
|
2684
3064
|
*
|
|
2685
|
-
* const leftLayer = Layer.effect(Left
|
|
3065
|
+
* const leftLayer = Layer.effect(Left, Effect.gen(function*() {
|
|
2686
3066
|
* const counter = yield* Counter
|
|
2687
3067
|
* return { counterId: counter.id }
|
|
2688
3068
|
* }))
|
|
2689
3069
|
*
|
|
2690
|
-
* const rightLayer = Layer.effect(Right
|
|
3070
|
+
* const rightLayer = Layer.effect(Right, Effect.gen(function*() {
|
|
2691
3071
|
* const counter = yield* Counter
|
|
2692
3072
|
* return { counterId: counter.id }
|
|
2693
3073
|
* }))
|
|
@@ -2701,7 +3081,7 @@ export declare const updateService: {
|
|
|
2701
3081
|
* const program = Effect.gen(function*() {
|
|
2702
3082
|
* const nextId = yield* Ref.make(0)
|
|
2703
3083
|
*
|
|
2704
|
-
* const counterLayer = Layer.effect(Counter
|
|
3084
|
+
* const counterLayer = Layer.effect(Counter, Effect.gen(function*() {
|
|
2705
3085
|
* const id = yield* Ref.updateAndGet(nextId, (n) => n + 1)
|
|
2706
3086
|
* console.log("constructed Counter")
|
|
2707
3087
|
* return { id }
|
|
@@ -2736,8 +3116,16 @@ export declare const updateService: {
|
|
|
2736
3116
|
*/
|
|
2737
3117
|
export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
|
|
2738
3118
|
/**
|
|
2739
|
-
* Builds this layer and
|
|
2740
|
-
*
|
|
3119
|
+
* Builds this layer and keeps it alive until the returned effect is interrupted.
|
|
3120
|
+
*
|
|
3121
|
+
* **When to use**
|
|
3122
|
+
*
|
|
3123
|
+
* Use this when your entire application is a layer, such as an HTTP server.
|
|
3124
|
+
*
|
|
3125
|
+
* **Details**
|
|
3126
|
+
*
|
|
3127
|
+
* When the returned effect is interrupted, the layer scope is closed and all
|
|
3128
|
+
* finalizers registered during layer acquisition are run.
|
|
2741
3129
|
*
|
|
2742
3130
|
* **Example** (Launching an application layer)
|
|
2743
3131
|
*
|
|
@@ -2754,7 +3142,7 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
|
|
|
2754
3142
|
* }>()("Logger") {}
|
|
2755
3143
|
*
|
|
2756
3144
|
* // Server layer that starts an HTTP server
|
|
2757
|
-
* const serverLayer = Layer.effect(HttpServer
|
|
3145
|
+
* const serverLayer = Layer.effect(HttpServer, Effect.gen(function*() {
|
|
2758
3146
|
* yield* Console.log("Starting HTTP server...")
|
|
2759
3147
|
*
|
|
2760
3148
|
* return {
|
|
@@ -2769,7 +3157,7 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
|
|
|
2769
3157
|
* }
|
|
2770
3158
|
* }))
|
|
2771
3159
|
*
|
|
2772
|
-
* const loggerLayer = Layer.succeed(Logger
|
|
3160
|
+
* const loggerLayer = Layer.succeed(Logger, {
|
|
2773
3161
|
* log: Effect.fn("Logger.log")((msg: string) => Console.log(`[LOG] ${msg}`))
|
|
2774
3162
|
* })
|
|
2775
3163
|
*
|
|
@@ -2794,11 +3182,13 @@ export declare const launch: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect
|
|
|
2794
3182
|
/**
|
|
2795
3183
|
* A utility type for creating partial mocks of services in testing.
|
|
2796
3184
|
*
|
|
3185
|
+
* **Details**
|
|
3186
|
+
*
|
|
2797
3187
|
* This type makes Effect methods and Effect-returning functions optional,
|
|
2798
3188
|
* while keeping non-Effect properties required. This allows you to provide
|
|
2799
3189
|
* only the methods you need to test while leaving others unimplemented.
|
|
2800
3190
|
*
|
|
2801
|
-
* @category
|
|
3191
|
+
* @category testing
|
|
2802
3192
|
* @since 3.17.0
|
|
2803
3193
|
*/
|
|
2804
3194
|
export type PartialEffectful<A extends object> = Types.Simplify<{
|
|
@@ -2809,8 +3199,16 @@ export type PartialEffectful<A extends object> = Types.Simplify<{
|
|
|
2809
3199
|
type AnyEffectOrStream = Effect<any, any, any> | Stream.Stream<any, any, any> | Channel.Channel<any, any, any, any, any, any, any> | ((...args: any) => Effect<any, any, any>) | ((...args: any) => Stream.Stream<any, any, any>) | ((...args: any) => Channel.Channel<any, any, any, any, any, any, any>);
|
|
2810
3200
|
/**
|
|
2811
3201
|
* Creates a mock layer for testing purposes. You can provide a partial
|
|
2812
|
-
* implementation of the service
|
|
2813
|
-
*
|
|
3202
|
+
* implementation of the service. Any missing members that are `Effect`s,
|
|
3203
|
+
* `Stream`s, `Channel`s, or functions returning them will fail with an
|
|
3204
|
+
* unimplemented defect when used.
|
|
3205
|
+
*
|
|
3206
|
+
* **Details**
|
|
3207
|
+
*
|
|
3208
|
+
* Missing members are represented by a value that can be used as an `Effect`,
|
|
3209
|
+
* `Stream`, `Channel`, or as a function returning an `Effect`. This lets the
|
|
3210
|
+
* mock preserve the shape of common service methods while still failing loudly
|
|
3211
|
+
* when an unimplemented member is exercised.
|
|
2814
3212
|
*
|
|
2815
3213
|
* **Example** (Mocking services for tests)
|
|
2816
3214
|
*
|
|
@@ -2851,14 +3249,22 @@ type AnyEffectOrStream = Effect<any, any, any> | Stream.Stream<any, any, any> |
|
|
|
2851
3249
|
* )
|
|
2852
3250
|
* ```
|
|
2853
3251
|
*
|
|
2854
|
-
* @category
|
|
3252
|
+
* @category testing
|
|
2855
3253
|
* @since 3.17.0
|
|
2856
3254
|
*/
|
|
2857
3255
|
export declare const mock: {
|
|
2858
3256
|
/**
|
|
2859
3257
|
* Creates a mock layer for testing purposes. You can provide a partial
|
|
2860
|
-
* implementation of the service
|
|
2861
|
-
*
|
|
3258
|
+
* implementation of the service. Any missing members that are `Effect`s,
|
|
3259
|
+
* `Stream`s, `Channel`s, or functions returning them will fail with an
|
|
3260
|
+
* unimplemented defect when used.
|
|
3261
|
+
*
|
|
3262
|
+
* **Details**
|
|
3263
|
+
*
|
|
3264
|
+
* Missing members are represented by a value that can be used as an `Effect`,
|
|
3265
|
+
* `Stream`, `Channel`, or as a function returning an `Effect`. This lets the
|
|
3266
|
+
* mock preserve the shape of common service methods while still failing loudly
|
|
3267
|
+
* when an unimplemented member is exercised.
|
|
2862
3268
|
*
|
|
2863
3269
|
* **Example** (Mocking services for tests)
|
|
2864
3270
|
*
|
|
@@ -2899,14 +3305,22 @@ export declare const mock: {
|
|
|
2899
3305
|
* )
|
|
2900
3306
|
* ```
|
|
2901
3307
|
*
|
|
2902
|
-
* @category
|
|
3308
|
+
* @category testing
|
|
2903
3309
|
* @since 3.17.0
|
|
2904
3310
|
*/
|
|
2905
3311
|
<I, S extends object>(service: Context.Key<I, S>): (implementation: PartialEffectful<S>) => Layer<I>;
|
|
2906
3312
|
/**
|
|
2907
3313
|
* Creates a mock layer for testing purposes. You can provide a partial
|
|
2908
|
-
* implementation of the service
|
|
2909
|
-
*
|
|
3314
|
+
* implementation of the service. Any missing members that are `Effect`s,
|
|
3315
|
+
* `Stream`s, `Channel`s, or functions returning them will fail with an
|
|
3316
|
+
* unimplemented defect when used.
|
|
3317
|
+
*
|
|
3318
|
+
* **Details**
|
|
3319
|
+
*
|
|
3320
|
+
* Missing members are represented by a value that can be used as an `Effect`,
|
|
3321
|
+
* `Stream`, `Channel`, or as a function returning an `Effect`. This lets the
|
|
3322
|
+
* mock preserve the shape of common service methods while still failing loudly
|
|
3323
|
+
* when an unimplemented member is exercised.
|
|
2910
3324
|
*
|
|
2911
3325
|
* **Example** (Mocking services for tests)
|
|
2912
3326
|
*
|
|
@@ -2947,16 +3361,18 @@ export declare const mock: {
|
|
|
2947
3361
|
* )
|
|
2948
3362
|
* ```
|
|
2949
3363
|
*
|
|
2950
|
-
* @category
|
|
3364
|
+
* @category testing
|
|
2951
3365
|
* @since 3.17.0
|
|
2952
3366
|
*/
|
|
2953
3367
|
<I, S extends object>(service: Context.Key<I, S>, implementation: Types.NoInfer<PartialEffectful<S>>): Layer<I>;
|
|
2954
3368
|
};
|
|
2955
3369
|
/**
|
|
2956
|
-
* Ensures that
|
|
3370
|
+
* Ensures that a layer's success type extends a given type `ROut`.
|
|
3371
|
+
*
|
|
3372
|
+
* **Details**
|
|
2957
3373
|
*
|
|
2958
3374
|
* This function provides compile-time type checking to ensure that the success
|
|
2959
|
-
* value of
|
|
3375
|
+
* value of a layer conforms to a specific type constraint.
|
|
2960
3376
|
*
|
|
2961
3377
|
* **Example** (Constraining layer success types)
|
|
2962
3378
|
*
|
|
@@ -2978,15 +3394,17 @@ export declare const mock: {
|
|
|
2978
3394
|
* // Type 'string' is not assignable to type 'number'
|
|
2979
3395
|
* ```
|
|
2980
3396
|
*
|
|
2981
|
-
* @category
|
|
3397
|
+
* @category utility types
|
|
2982
3398
|
* @since 4.0.0
|
|
2983
3399
|
*/
|
|
2984
3400
|
export declare const satisfiesSuccessType: <ROut>() => <ROut2 extends ROut, E, RIn>(layer: Layer<ROut2, E, RIn>) => Layer<ROut2, E, RIn>;
|
|
2985
3401
|
/**
|
|
2986
|
-
* Ensures that
|
|
3402
|
+
* Ensures that a layer's error type extends a given type `E`.
|
|
3403
|
+
*
|
|
3404
|
+
* **Details**
|
|
2987
3405
|
*
|
|
2988
3406
|
* This function provides compile-time type checking to ensure that the error
|
|
2989
|
-
* type of
|
|
3407
|
+
* type of a layer conforms to a specific type constraint.
|
|
2990
3408
|
*
|
|
2991
3409
|
* **Example** (Constraining layer error types)
|
|
2992
3410
|
*
|
|
@@ -3009,15 +3427,17 @@ export declare const satisfiesSuccessType: <ROut>() => <ROut2 extends ROut, E, R
|
|
|
3009
3427
|
* // Type 'string' is not assignable to type 'Error'
|
|
3010
3428
|
* ```
|
|
3011
3429
|
*
|
|
3012
|
-
* @category
|
|
3430
|
+
* @category utility types
|
|
3013
3431
|
* @since 4.0.0
|
|
3014
3432
|
*/
|
|
3015
3433
|
export declare const satisfiesErrorType: <E>() => <ROut, E2 extends E, RIn>(layer: Layer<ROut, E2, RIn>) => Layer<ROut, E2, RIn>;
|
|
3016
3434
|
/**
|
|
3017
|
-
* Ensures that
|
|
3435
|
+
* Ensures that a layer's requirements type extends a given type `R`.
|
|
3436
|
+
*
|
|
3437
|
+
* **Details**
|
|
3018
3438
|
*
|
|
3019
3439
|
* This function provides compile-time type checking to ensure that the
|
|
3020
|
-
* requirements
|
|
3440
|
+
* requirements type of a layer conforms to a specific type constraint.
|
|
3021
3441
|
*
|
|
3022
3442
|
* **Example** (Constraining layer service requirements)
|
|
3023
3443
|
*
|
|
@@ -3039,7 +3459,7 @@ export declare const satisfiesErrorType: <E>() => <ROut, E2 extends E, RIn>(laye
|
|
|
3039
3459
|
* // Type 'string' is not assignable to type 'number'
|
|
3040
3460
|
* ```
|
|
3041
3461
|
*
|
|
3042
|
-
* @category
|
|
3462
|
+
* @category utility types
|
|
3043
3463
|
* @since 4.0.0
|
|
3044
3464
|
*/
|
|
3045
3465
|
export declare const satisfiesServicesType: <RIn>() => <ROut, E, RIn2 extends RIn>(layer: Layer<ROut, E, RIn2>) => Layer<ROut, E, RIn2>;
|
|
@@ -3052,8 +3472,8 @@ export declare const satisfiesServicesType: <RIn>() => <ROut, E, RIn2 extends RI
|
|
|
3052
3472
|
*/
|
|
3053
3473
|
export interface SpanOptions extends Tracer.SpanOptions {
|
|
3054
3474
|
/**
|
|
3055
|
-
*
|
|
3056
|
-
*
|
|
3475
|
+
* Runs when the span associated with the layer ends, which happens when the
|
|
3476
|
+
* layer scope is closed.
|
|
3057
3477
|
*/
|
|
3058
3478
|
readonly onEnd?: ((span: Tracer.Span, exit: Exit.Exit<unknown, unknown>) => Effect<void>) | undefined;
|
|
3059
3479
|
}
|
|
@@ -3061,9 +3481,13 @@ export interface SpanOptions extends Tracer.SpanOptions {
|
|
|
3061
3481
|
* Constructs a new `Layer` which creates a span and registers it as the current
|
|
3062
3482
|
* parent span.
|
|
3063
3483
|
*
|
|
3484
|
+
* **Details**
|
|
3485
|
+
*
|
|
3064
3486
|
* This allows you to create a traced scope for layer construction, making all
|
|
3065
3487
|
* operations within the layer constructor part of the same trace span. The span
|
|
3066
|
-
* is automatically
|
|
3488
|
+
* is automatically ended when the layer's scope is closed. If `onEnd` is
|
|
3489
|
+
* provided, it receives the span and the layer scope's exit value when the span
|
|
3490
|
+
* ends.
|
|
3067
3491
|
*
|
|
3068
3492
|
* **Example** (Tracing layer construction with a span)
|
|
3069
3493
|
*
|
|
@@ -3109,6 +3533,7 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
|
|
|
3109
3533
|
* Constructs a layer that provides an existing span as the current parent span.
|
|
3110
3534
|
*
|
|
3111
3535
|
* **Details**
|
|
3536
|
+
*
|
|
3112
3537
|
* The supplied span is made available through `Tracer.ParentSpan` for layers
|
|
3113
3538
|
* that are built with this layer. This API does not create, end, or close the
|
|
3114
3539
|
* span; the caller remains responsible for the span's lifetime.
|
|
@@ -3146,9 +3571,11 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
|
|
|
3146
3571
|
*/
|
|
3147
3572
|
export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSpan>;
|
|
3148
3573
|
/**
|
|
3149
|
-
* Wraps a Layer with a new tracing span, making all operations in the layer
|
|
3574
|
+
* Wraps a `Layer` with a new tracing span, making all operations in the layer
|
|
3150
3575
|
* constructor part of the named trace span.
|
|
3151
3576
|
*
|
|
3577
|
+
* **Details**
|
|
3578
|
+
*
|
|
3152
3579
|
* This creates a new span for the layer's construction and execution. The span
|
|
3153
3580
|
* is automatically ended when the layer's scope is closed. This is useful for
|
|
3154
3581
|
* tracking the lifecycle and performance of layer initialization.
|
|
@@ -3197,8 +3624,7 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
|
|
|
3197
3624
|
*
|
|
3198
3625
|
* yield* logger.log("Application ready")
|
|
3199
3626
|
* return yield* database.query("SELECT * FROM users")
|
|
3200
|
-
* }).pipe(Effect.provide(appLayer)
|
|
3201
|
-
* )
|
|
3627
|
+
* }).pipe(Effect.provide(appLayer))
|
|
3202
3628
|
* ```
|
|
3203
3629
|
*
|
|
3204
3630
|
* @category tracing
|
|
@@ -3206,9 +3632,11 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
|
|
|
3206
3632
|
*/
|
|
3207
3633
|
export declare const withSpan: {
|
|
3208
3634
|
/**
|
|
3209
|
-
* Wraps a Layer with a new tracing span, making all operations in the layer
|
|
3635
|
+
* Wraps a `Layer` with a new tracing span, making all operations in the layer
|
|
3210
3636
|
* constructor part of the named trace span.
|
|
3211
3637
|
*
|
|
3638
|
+
* **Details**
|
|
3639
|
+
*
|
|
3212
3640
|
* This creates a new span for the layer's construction and execution. The span
|
|
3213
3641
|
* is automatically ended when the layer's scope is closed. This is useful for
|
|
3214
3642
|
* tracking the lifecycle and performance of layer initialization.
|
|
@@ -3257,8 +3685,7 @@ export declare const withSpan: {
|
|
|
3257
3685
|
*
|
|
3258
3686
|
* yield* logger.log("Application ready")
|
|
3259
3687
|
* return yield* database.query("SELECT * FROM users")
|
|
3260
|
-
* }).pipe(Effect.provide(appLayer)
|
|
3261
|
-
* )
|
|
3688
|
+
* }).pipe(Effect.provide(appLayer))
|
|
3262
3689
|
* ```
|
|
3263
3690
|
*
|
|
3264
3691
|
* @category tracing
|
|
@@ -3266,9 +3693,11 @@ export declare const withSpan: {
|
|
|
3266
3693
|
*/
|
|
3267
3694
|
(name: string, options?: SpanOptions): <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, Exclude<R, Tracer.ParentSpan>>;
|
|
3268
3695
|
/**
|
|
3269
|
-
* Wraps a Layer with a new tracing span, making all operations in the layer
|
|
3696
|
+
* Wraps a `Layer` with a new tracing span, making all operations in the layer
|
|
3270
3697
|
* constructor part of the named trace span.
|
|
3271
3698
|
*
|
|
3699
|
+
* **Details**
|
|
3700
|
+
*
|
|
3272
3701
|
* This creates a new span for the layer's construction and execution. The span
|
|
3273
3702
|
* is automatically ended when the layer's scope is closed. This is useful for
|
|
3274
3703
|
* tracking the lifecycle and performance of layer initialization.
|
|
@@ -3317,8 +3746,7 @@ export declare const withSpan: {
|
|
|
3317
3746
|
*
|
|
3318
3747
|
* yield* logger.log("Application ready")
|
|
3319
3748
|
* return yield* database.query("SELECT * FROM users")
|
|
3320
|
-
* }).pipe(Effect.provide(appLayer)
|
|
3321
|
-
* )
|
|
3749
|
+
* }).pipe(Effect.provide(appLayer))
|
|
3322
3750
|
* ```
|
|
3323
3751
|
*
|
|
3324
3752
|
* @category tracing
|
|
@@ -3331,9 +3759,15 @@ export declare const withSpan: {
|
|
|
3331
3759
|
* as their parent.
|
|
3332
3760
|
*
|
|
3333
3761
|
* **Details**
|
|
3762
|
+
*
|
|
3334
3763
|
* Use this to attach layer construction to an existing trace hierarchy. This API
|
|
3335
3764
|
* does not create or end the supplied parent span.
|
|
3336
3765
|
*
|
|
3766
|
+
* When the supplied span is a native `Span`, layer construction also receives
|
|
3767
|
+
* diagnostic information that helps associate failures with the layer call site.
|
|
3768
|
+
* External spans are only installed as the parent span and do not add this
|
|
3769
|
+
* diagnostic call-site information.
|
|
3770
|
+
*
|
|
3337
3771
|
* **Example** (Attaching layers to an existing parent span)
|
|
3338
3772
|
*
|
|
3339
3773
|
* ```ts
|
|
@@ -3393,9 +3827,15 @@ export declare const withParentSpan: {
|
|
|
3393
3827
|
* as their parent.
|
|
3394
3828
|
*
|
|
3395
3829
|
* **Details**
|
|
3830
|
+
*
|
|
3396
3831
|
* Use this to attach layer construction to an existing trace hierarchy. This API
|
|
3397
3832
|
* does not create or end the supplied parent span.
|
|
3398
3833
|
*
|
|
3834
|
+
* When the supplied span is a native `Span`, layer construction also receives
|
|
3835
|
+
* diagnostic information that helps associate failures with the layer call site.
|
|
3836
|
+
* External spans are only installed as the parent span and do not add this
|
|
3837
|
+
* diagnostic call-site information.
|
|
3838
|
+
*
|
|
3399
3839
|
* **Example** (Attaching layers to an existing parent span)
|
|
3400
3840
|
*
|
|
3401
3841
|
* ```ts
|
|
@@ -3455,9 +3895,15 @@ export declare const withParentSpan: {
|
|
|
3455
3895
|
* as their parent.
|
|
3456
3896
|
*
|
|
3457
3897
|
* **Details**
|
|
3898
|
+
*
|
|
3458
3899
|
* Use this to attach layer construction to an existing trace hierarchy. This API
|
|
3459
3900
|
* does not create or end the supplied parent span.
|
|
3460
3901
|
*
|
|
3902
|
+
* When the supplied span is a native `Span`, layer construction also receives
|
|
3903
|
+
* diagnostic information that helps associate failures with the layer call site.
|
|
3904
|
+
* External spans are only installed as the parent span and do not add this
|
|
3905
|
+
* diagnostic call-site information.
|
|
3906
|
+
*
|
|
3461
3907
|
* **Example** (Attaching layers to an existing parent span)
|
|
3462
3908
|
*
|
|
3463
3909
|
* ```ts
|