effect 4.0.0-beta.6 → 4.0.0-beta.62
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 +213 -385
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +149 -102
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +82 -45
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +105 -52
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +39 -32
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +36 -33
- package/dist/BigInt.js.map +1 -1
- package/dist/Brand.d.ts +3 -5
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +14 -45
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +21 -47
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +53 -22
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +108 -10
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +166 -48
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +176 -87
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +112 -304
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +56 -88
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +2 -2
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +189 -29
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +85 -35
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +6 -6
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +5 -5
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +2 -2
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +1150 -0
- package/dist/Context.d.ts.map +1 -0
- package/dist/{ServiceMap.js → Context.js} +181 -165
- package/dist/Context.js.map +1 -0
- package/dist/Cron.d.ts +11 -7
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +120 -63
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +533 -365
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +125 -73
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +74 -255
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +17 -62
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +12 -5
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +13 -5
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +74 -40
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +126 -87
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +1435 -927
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +516 -328
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +29 -0
- package/dist/Effectable.d.ts.map +1 -0
- package/dist/Effectable.js +31 -0
- package/dist/Effectable.js.map +1 -0
- package/dist/Encoding.d.ts +1 -1
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +140 -48
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +60 -3
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +70 -13
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +374 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +245 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/ExecutionPlan.d.ts +6 -6
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +4 -4
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +24 -12
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -4
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +10 -8
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +11 -10
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +12 -11
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +22 -21
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +10 -10
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +2 -2
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +4 -4
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +20 -19
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +15 -11
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +4 -37
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +0 -13
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +243 -55
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +1 -9
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +2 -10
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +65 -65
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +58 -60
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.js +1 -1
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +26 -19
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +7 -5
- package/dist/HashMap.js.map +1 -1
- package/dist/Inspectable.d.ts +0 -4
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +4 -13
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +50 -50
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +106 -34
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +69 -3
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +58 -0
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +599 -379
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +249 -180
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +27 -26
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +21 -18
- package/dist/LayerMap.js.map +1 -1
- package/dist/LogLevel.d.ts +32 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +31 -97
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +2 -3
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +8 -8
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +34 -25
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +23 -25
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +24 -26
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +7 -0
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +8 -0
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +7 -0
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +8 -0
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +3 -0
- package/dist/MutableList.js.map +1 -1
- package/dist/Newtype.d.ts +291 -0
- package/dist/Newtype.d.ts.map +1 -0
- package/dist/Newtype.js +161 -0
- package/dist/Newtype.js.map +1 -0
- package/dist/Number.d.ts +74 -18
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +46 -18
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +25 -16
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +15 -9
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +6 -1
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +19 -14
- package/dist/Order.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +183 -0
- package/dist/PartitionedSemaphore.d.ts.map +1 -0
- package/dist/PartitionedSemaphore.js +231 -0
- package/dist/PartitionedSemaphore.js.map +1 -0
- package/dist/Path.d.ts +2 -2
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +2 -2
- package/dist/Path.js.map +1 -1
- package/dist/PlatformError.d.ts +2 -2
- package/dist/Pool.d.ts +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +5 -5
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +1 -1
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/PubSub.d.ts +5 -4
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +15 -8
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +1 -1
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +9 -6
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +7 -5
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +36 -2
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +46 -35
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +4 -4
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +13 -13
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Record.d.ts +63 -160
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +37 -56
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +139 -62
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +59 -55
- package/dist/Redactable.js.map +1 -1
- package/dist/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/References.d.ts +257 -229
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +240 -259
- package/dist/References.js.map +1 -1
- package/dist/Request.d.ts +5 -5
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +25 -25
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +15 -16
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +0 -3
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +5 -4
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +1 -1
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +1 -2
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +66 -0
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +79 -6
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +174 -291
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +132 -120
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +36 -125
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +37 -126
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +3213 -392
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2058 -252
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +13 -2
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +340 -257
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +55 -13
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +73 -11
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +29 -11
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +44 -54
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +69 -4
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +2 -2
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +63 -39
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +245 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +297 -33
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +2 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +5 -5
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +148 -52
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +135 -117
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +22 -19
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +54 -7
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +18 -6
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +20 -2
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +465 -542
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +329 -145
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +114 -47
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +29 -47
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +7 -7
- package/dist/Struct.d.ts.map +1 -1
- package/dist/SubscriptionRef.d.ts +1 -2
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +83 -116
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Terminal.d.ts +5 -4
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +2 -2
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +21 -20
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +13 -9
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +44 -31
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +13 -9
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +4 -4
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +4 -4
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +328 -0
- package/dist/TxDeferred.d.ts.map +1 -0
- package/dist/TxDeferred.js +197 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +105 -86
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +51 -44
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +2 -2
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +16 -15
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +609 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -0
- package/dist/TxPriorityQueue.js +416 -0
- package/dist/TxPriorityQueue.js.map +1 -0
- package/dist/TxPubSub.d.ts +585 -0
- package/dist/TxPubSub.d.ts.map +1 -0
- package/dist/TxPubSub.js +521 -0
- package/dist/TxPubSub.js.map +1 -0
- package/dist/TxQueue.d.ts +1 -1
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +42 -57
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +500 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +481 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +14 -20
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +8 -10
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +162 -2
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +25 -10
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +508 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -0
- package/dist/TxSubscriptionRef.js +293 -0
- package/dist/TxSubscriptionRef.js.map +1 -0
- package/dist/Types.d.ts +80 -22
- package/dist/Types.d.ts.map +1 -1
- package/dist/Unify.d.ts +8 -2
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +137 -65
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +38 -66
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +886 -71
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +886 -71
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +77 -71
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +502 -326
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +7 -5
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/layer.js +3 -3
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/option.js +6 -0
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +9 -9
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/references.d.ts +2 -0
- package/dist/internal/references.d.ts.map +1 -0
- package/dist/internal/references.js +51 -0
- package/dist/internal/references.js.map +1 -0
- package/dist/internal/request.js +6 -6
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/representation.js +87 -109
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/schema.d.ts +10 -1
- package/dist/internal/schema/schema.d.ts.map +1 -1
- package/dist/internal/schema/schema.js +59 -1
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/trie.js +8 -7
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/TestClock.d.ts +5 -5
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +2 -2
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +267 -33
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +296 -23
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.d.ts +64 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +64 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +127 -45
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +29 -23
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +9 -2
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +39 -11
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +40 -47
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
- package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
- package/dist/unstable/ai/EmbeddingModel.js +127 -0
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
- package/dist/unstable/ai/IdGenerator.d.ts +2 -2
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +2 -2
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +119 -49
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +260 -61
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +207 -112
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +71 -19
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +68 -15
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +225 -73
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +27 -9
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +25 -9
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +9 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +17 -17
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +6 -9
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +24 -24
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +7 -8
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
- package/dist/unstable/ai/ResponseIdTracker.js +68 -0
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
- package/dist/unstable/ai/Telemetry.d.ts +35 -2
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +2 -2
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +2 -2
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +2 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +46 -16
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +68 -22
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +4 -4
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +14 -21
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +22 -1
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +22 -1
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js +5 -7
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +4 -7
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +1 -3
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +51 -63
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +32 -57
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +5 -4
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +67 -12
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +372 -59
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +328 -66
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +97 -0
- package/dist/unstable/cli/Completions.d.ts.map +1 -0
- package/dist/unstable/cli/Completions.js +25 -0
- package/dist/unstable/cli/Completions.js.map +1 -0
- package/dist/unstable/cli/Flag.d.ts +4 -5
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +1 -1
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
- package/dist/unstable/cli/GlobalFlag.js +118 -0
- package/dist/unstable/cli/GlobalFlag.js.map +1 -0
- package/dist/unstable/cli/HelpDoc.d.ts +81 -11
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +34 -6
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +24 -14
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +2 -2
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +1 -1
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.js +266 -86
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.d.ts +10 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +10 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +41 -15
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +84 -47
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.d.ts +2 -0
- package/dist/unstable/cli/internal/completions/descriptor.d.ts.map +1 -0
- package/dist/unstable/cli/internal/completions/{CommandDescriptor.js → descriptor.js} +17 -5
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -0
- package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
- package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
- package/dist/unstable/cli/internal/config.js +42 -0
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +33 -0
- package/dist/unstable/cli/internal/help.d.ts.map +1 -0
- package/dist/unstable/cli/internal/help.js +125 -0
- package/dist/unstable/cli/internal/help.js.map +1 -0
- package/dist/unstable/cli/internal/parser.js +155 -58
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.d.ts +7 -7
- package/dist/unstable/cluster/ClusterSchema.d.ts +28 -7
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +28 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +4 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +96 -63
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +17 -16
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +31 -25
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts +2 -2
- package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +3 -3
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +6 -6
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +4 -4
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/HttpRunner.js +2 -2
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +5 -5
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +7 -7
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +16 -10
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +16 -8
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +46 -23
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +40 -25
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +7 -6
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +8 -7
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runner.d.ts.map +1 -1
- package/dist/unstable/cluster/Runner.js +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +2 -2
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +2 -2
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +10 -9
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +12 -12
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +3 -3
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +5 -4
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +16 -14
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.d.ts +35 -49
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +65 -67
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +4 -4
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +59 -49
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +28 -27
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +27 -27
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +2 -2
- package/dist/unstable/cluster/Snowflake.d.ts +2 -2
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +2 -2
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +24 -20
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +7 -7
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +30 -24
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -2
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js +3 -3
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts +2 -2
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +9 -8
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +4 -4
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +9 -2
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +9 -9
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +3 -3
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +0 -6
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js +0 -5
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +0 -2
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +0 -2
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +27 -10
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +130 -71
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +94 -37
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +225 -151
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +11 -9
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +15 -17
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +228 -0
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogMessage.js +214 -0
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -0
- package/dist/unstable/eventlog/EventLogRemote.d.ts +112 -194
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +168 -322
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +26 -48
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +128 -199
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +60 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +166 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +183 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +461 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +117 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js +284 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.d.ts → SqlEventJournal.d.ts} +2 -2
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.js → SqlEventJournal.js} +28 -21
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.d.ts → SqlEventLogServerEncrypted.d.ts} +5 -5
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.js → SqlEventLogServerEncrypted.js} +69 -27
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +25 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +355 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/index.d.ts +22 -2
- package/dist/unstable/eventlog/index.d.ts.map +1 -1
- package/dist/unstable/eventlog/index.js +22 -2
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts +2 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts.map +1 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js +89 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -0
- package/dist/unstable/http/Cookies.d.ts +51 -6
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +27 -6
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +2 -2
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +7 -3
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts +6 -3
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js +5 -5
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +24 -4
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +42 -13
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +1 -1
- package/dist/unstable/http/HttpClient.d.ts +125 -21
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +197 -19
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +8 -8
- package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +131 -21
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +18 -3
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +13 -11
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +51 -51
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +5 -4
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +6 -10
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +4 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +47 -43
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +2 -2
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +5 -4
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +9 -8
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +36 -36
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +2 -2
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +4 -4
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +22 -34
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +39 -45
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +19 -7
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +307 -13
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +5 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +52 -5
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +240 -5
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
- package/dist/unstable/http/HttpStaticServer.js +353 -0
- package/dist/unstable/http/HttpStaticServer.js.map +1 -0
- package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js +27 -15
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +7 -7
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +7 -7
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +604 -0
- package/dist/unstable/http/Url.d.ts.map +1 -0
- package/dist/unstable/http/Url.js +256 -0
- package/dist/unstable/http/Url.js.map +1 -0
- package/dist/unstable/http/UrlParams.d.ts +18 -9
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +6 -7
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +8 -0
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +8 -0
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
- package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js +10 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
- package/dist/unstable/httpapi/HttpApi.d.ts +11 -11
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +8 -8
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +12 -9
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +73 -48
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +82 -7
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +79 -11
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +210 -105
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +52 -47
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +66 -29
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +138 -32
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +9 -8
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +4 -4
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +49 -17
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +38 -8
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +88 -9
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +86 -11
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +9 -6
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js +6 -6
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +17 -25
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +59 -60
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +8 -8
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +7 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +2 -2
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.d.ts +2 -2
- package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js +2 -2
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +7 -3
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +3 -3
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +4 -33
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +4 -4
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +24 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +144 -2
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +1 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +1 -2
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +10 -11
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +16 -16
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +9 -9
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +5 -5
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +5 -5
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +9 -9
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +4 -4
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +3 -3
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +2 -2
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +5 -128
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +1 -65
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +83 -8
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +22 -2
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +37 -17
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +9 -0
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +108 -47
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +105 -25
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +25 -20
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +58 -26
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +8 -2
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +57 -14
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +12 -12
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +59 -31
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +2 -2
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +6 -6
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +137 -19
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +99 -7
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +26 -47
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +117 -75
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.d.ts +2 -2
- package/dist/unstable/rpc/RpcGroup.d.ts +15 -11
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js +30 -20
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +12 -12
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +5 -5
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +14 -1
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +17 -2
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +13 -2
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +60 -27
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +8 -12
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +73 -43
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +2 -2
- package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts +6 -3
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +46 -5
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +24 -3
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +17 -4
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +7 -7
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +7 -18
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +35 -15
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +34 -27
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +8 -5
- package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
- package/dist/unstable/socket/SocketServer.js +2 -2
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +2 -2
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +24 -6
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +37 -32
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.d.ts +2 -2
- package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
- package/dist/unstable/sql/SqlConnection.js +5 -2
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +237 -17
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +260 -4
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +8 -9
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +12 -38
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +24 -17
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +17 -6
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +3 -5
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +14 -13
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +4 -4
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +7 -7
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +3 -3
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +6 -3
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +5 -5
- package/dist/unstable/workers/WorkerRunner.d.ts +2 -2
- package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerRunner.js +5 -2
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +8 -3
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +25 -11
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -6
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +6 -6
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +2 -5
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +33 -15
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +12 -14
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +30 -26
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +24 -7
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +165 -16
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +4 -4
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/package.json +11 -10
- package/src/Array.ts +304 -447
- package/src/BigDecimal.ts +137 -82
- package/src/BigInt.ts +53 -45
- package/src/Brand.ts +3 -5
- package/src/Cache.ts +27 -54
- package/src/Cause.ts +57 -22
- package/src/Channel.ts +687 -220
- package/src/Chunk.ts +149 -331
- package/src/Clock.ts +2 -2
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +214 -52
- package/src/ConfigProvider.ts +5 -5
- package/src/Console.ts +2 -2
- package/src/Context.ts +1454 -0
- package/src/Cron.ts +155 -63
- package/src/Data.ts +530 -368
- package/src/DateTime.ts +77 -258
- package/src/Deferred.ts +15 -6
- package/src/Duration.ts +151 -81
- package/src/Effect.ts +1633 -1055
- package/src/Effectable.ts +47 -0
- package/src/Equal.ts +293 -109
- package/src/Equivalence.ts +114 -52
- package/src/ErrorReporter.ts +458 -0
- package/src/ExecutionPlan.ts +8 -9
- package/src/Exit.ts +24 -12
- package/src/Fiber.ts +17 -8
- package/src/FiberHandle.ts +15 -14
- package/src/FiberMap.ts +27 -27
- package/src/FiberSet.ts +5 -5
- package/src/FileSystem.ts +30 -26
- package/src/Filter.ts +4 -62
- package/src/Formatter.ts +268 -60
- package/src/Function.ts +2 -10
- package/src/Graph.ts +123 -112
- package/src/Hash.ts +2 -2
- package/src/HashMap.ts +26 -19
- package/src/Inspectable.ts +2 -22
- package/src/Iterable.ts +117 -63
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +85 -3
- package/src/Layer.ts +728 -441
- package/src/LayerMap.ts +38 -35
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +35 -102
- package/src/ManagedRuntime.ts +61 -48
- package/src/Metric.ts +64 -66
- package/src/MutableHashMap.ts +9 -0
- package/src/MutableHashSet.ts +9 -0
- package/src/MutableList.ts +3 -0
- package/src/Newtype.ts +308 -0
- package/src/Number.ts +98 -29
- package/src/Optic.ts +948 -19
- package/src/Option.ts +34 -24
- package/src/Order.ts +39 -32
- package/src/PartitionedSemaphore.ts +414 -0
- package/src/Path.ts +2 -2
- package/src/Pool.ts +9 -9
- package/src/Predicate.ts +1 -1
- package/src/PubSub.ts +20 -11
- package/src/Pull.ts +1 -1
- package/src/Queue.ts +11 -9
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +19 -19
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +94 -199
- package/src/Redactable.ts +146 -72
- package/src/Reducer.ts +166 -7
- package/src/References.ts +283 -287
- package/src/Request.ts +5 -5
- package/src/RequestResolver.ts +34 -35
- package/src/Resource.ts +6 -5
- package/src/Result.ts +2 -4
- package/src/Runtime.ts +102 -6
- package/src/Schedule.ts +243 -336
- package/src/Scheduler.ts +52 -129
- package/src/Schema.ts +3769 -597
- package/src/SchemaAST.ts +480 -302
- package/src/SchemaGetter.ts +80 -24
- package/src/SchemaIssue.ts +28 -15
- package/src/SchemaParser.ts +100 -29
- package/src/SchemaRepresentation.ts +57 -33
- package/src/SchemaTransformation.ts +321 -32
- package/src/Scope.ts +2 -2
- package/src/ScopedCache.ts +8 -8
- package/src/Semaphore.ts +268 -182
- package/src/Sink.ts +89 -34
- package/src/Stdio.ts +29 -6
- package/src/Stream.ts +908 -752
- package/src/String.ts +122 -69
- package/src/Struct.ts +7 -7
- package/src/SubscriptionRef.ts +98 -118
- package/src/Terminal.ts +5 -4
- package/src/Tracer.ts +23 -22
- package/src/Trie.ts +44 -31
- package/src/TxChunk.ts +26 -16
- package/src/TxDeferred.ts +391 -0
- package/src/TxHashMap.ts +347 -291
- package/src/TxHashSet.ts +54 -61
- package/src/TxPriorityQueue.ts +762 -0
- package/src/TxPubSub.ts +787 -0
- package/src/TxQueue.ts +221 -245
- package/src/TxReentrantLock.ts +729 -0
- package/src/TxRef.ts +31 -31
- package/src/TxSemaphore.ts +203 -31
- package/src/TxSubscriptionRef.ts +637 -0
- package/src/Types.ts +75 -23
- package/src/Unify.ts +26 -2
- package/src/Utils.ts +137 -111
- package/src/index.ts +896 -73
- package/src/internal/core.ts +9 -10
- package/src/internal/dateTime.ts +91 -96
- package/src/internal/effect.ts +1179 -614
- package/src/internal/hashMap.ts +12 -10
- package/src/internal/layer.ts +7 -7
- package/src/internal/option.ts +7 -0
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +12 -12
- package/src/internal/references.ts +72 -0
- package/src/internal/request.ts +8 -8
- package/src/internal/schedule.ts +3 -1
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/representation.ts +82 -97
- package/src/internal/schema/schema.ts +68 -1
- package/src/internal/trie.ts +21 -15
- package/src/testing/TestClock.ts +6 -6
- package/src/testing/TestSchema.ts +333 -36
- package/src/testing/index.ts +64 -1
- package/src/unstable/ai/AiError.ts +111 -53
- package/src/unstable/ai/AnthropicStructuredOutput.ts +7 -3
- package/src/unstable/ai/Chat.ts +136 -88
- package/src/unstable/ai/EmbeddingModel.ts +209 -0
- package/src/unstable/ai/IdGenerator.ts +2 -2
- package/src/unstable/ai/LanguageModel.ts +685 -255
- package/src/unstable/ai/McpSchema.ts +84 -22
- package/src/unstable/ai/McpServer.ts +307 -87
- package/src/unstable/ai/Model.ts +44 -13
- package/src/unstable/ai/OpenAiStructuredOutput.ts +9 -2
- package/src/unstable/ai/Prompt.ts +23 -29
- package/src/unstable/ai/Response.ts +29 -31
- package/src/unstable/ai/ResponseIdTracker.ts +95 -0
- package/src/unstable/ai/Telemetry.ts +2 -2
- package/src/unstable/ai/Tokenizer.ts +2 -2
- package/src/unstable/ai/Tool.ts +62 -36
- package/src/unstable/ai/Toolkit.ts +17 -26
- package/src/unstable/ai/index.ts +24 -1
- package/src/unstable/ai/internal/codec-transformer.ts +3 -9
- package/src/unstable/cli/Argument.ts +5 -8
- package/src/unstable/cli/CliError.ts +67 -66
- package/src/unstable/cli/CliOutput.ts +87 -15
- package/src/unstable/cli/Command.ts +808 -193
- package/src/unstable/cli/Completions.ts +107 -0
- package/src/unstable/cli/Flag.ts +5 -6
- package/src/unstable/cli/GlobalFlag.ts +242 -0
- package/src/unstable/cli/HelpDoc.ts +91 -11
- package/src/unstable/cli/Param.ts +54 -27
- package/src/unstable/cli/Primitive.ts +2 -2
- package/src/unstable/cli/Prompt.ts +275 -104
- package/src/unstable/cli/index.ts +12 -0
- package/src/unstable/cli/internal/command.ts +125 -64
- package/src/unstable/cli/internal/completions/bash.ts +7 -7
- package/src/unstable/cli/internal/completions/{CommandDescriptor.ts → descriptor.ts} +16 -58
- package/src/unstable/cli/internal/completions/fish.ts +7 -7
- package/src/unstable/cli/internal/completions/zsh.ts +8 -14
- package/src/unstable/cli/internal/config.ts +49 -0
- package/src/unstable/cli/internal/help.ts +171 -0
- package/src/unstable/cli/internal/parser.ts +201 -84
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterSchema.ts +38 -10
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +142 -80
- package/src/unstable/cluster/DeliverAt.ts +1 -1
- package/src/unstable/cluster/Entity.ts +58 -45
- package/src/unstable/cluster/EntityAddress.ts +1 -1
- package/src/unstable/cluster/EntityProxy.ts +3 -3
- package/src/unstable/cluster/EntityProxyServer.ts +6 -6
- package/src/unstable/cluster/EntityResource.ts +6 -6
- package/src/unstable/cluster/HttpRunner.ts +2 -2
- package/src/unstable/cluster/K8sHttpClient.ts +10 -10
- package/src/unstable/cluster/Message.ts +30 -17
- package/src/unstable/cluster/MessageStorage.ts +74 -45
- package/src/unstable/cluster/Reply.ts +13 -10
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/RunnerHealth.ts +2 -2
- package/src/unstable/cluster/RunnerServer.ts +11 -14
- package/src/unstable/cluster/RunnerStorage.ts +9 -9
- package/src/unstable/cluster/Runners.ts +22 -18
- package/src/unstable/cluster/ShardId.ts +84 -74
- package/src/unstable/cluster/Sharding.ts +75 -60
- package/src/unstable/cluster/ShardingConfig.ts +39 -40
- package/src/unstable/cluster/Snowflake.ts +2 -2
- package/src/unstable/cluster/SqlMessageStorage.ts +29 -20
- package/src/unstable/cluster/SqlRunnerStorage.ts +13 -7
- package/src/unstable/cluster/internal/entityManager.ts +60 -41
- package/src/unstable/cluster/internal/entityReaper.ts +2 -2
- package/src/unstable/cluster/internal/resourceMap.ts +3 -3
- package/src/unstable/devtools/DevToolsClient.ts +26 -21
- package/src/unstable/devtools/DevToolsSchema.ts +16 -3
- package/src/unstable/encoding/Ndjson.ts +17 -17
- package/src/unstable/encoding/Sse.ts +3 -5
- package/src/unstable/eventlog/Event.ts +0 -8
- package/src/unstable/eventlog/EventGroup.ts +0 -4
- package/src/unstable/eventlog/EventJournal.ts +148 -80
- package/src/unstable/eventlog/EventLog.ts +360 -234
- package/src/unstable/eventlog/EventLogEncryption.ts +18 -32
- package/src/unstable/eventlog/EventLogMessage.ts +277 -0
- package/src/unstable/eventlog/EventLogRemote.ts +264 -410
- package/src/unstable/eventlog/EventLogServer.ts +183 -275
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +206 -0
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +749 -0
- package/src/unstable/eventlog/EventLogSessionAuth.ts +437 -0
- package/src/unstable/eventlog/{SqlEventLogJournal.ts → SqlEventJournal.ts} +38 -22
- package/src/unstable/eventlog/{SqlEventLogServer.ts → SqlEventLogServerEncrypted.ts} +110 -43
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +506 -0
- package/src/unstable/eventlog/index.ts +27 -2
- package/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
- package/src/unstable/http/Cookies.ts +94 -11
- package/src/unstable/http/Etag.ts +7 -5
- package/src/unstable/http/FetchHttpClient.ts +5 -5
- package/src/unstable/http/Headers.ts +70 -20
- package/src/unstable/http/HttpClient.ts +385 -42
- package/src/unstable/http/HttpClientRequest.ts +151 -39
- package/src/unstable/http/HttpClientResponse.ts +24 -8
- package/src/unstable/http/HttpEffect.ts +71 -77
- package/src/unstable/http/HttpIncomingMessage.ts +9 -8
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +50 -50
- package/src/unstable/http/HttpPlatform.ts +5 -4
- package/src/unstable/http/HttpRouter.ts +46 -46
- package/src/unstable/http/HttpServer.ts +5 -11
- package/src/unstable/http/HttpServerError.ts +45 -47
- package/src/unstable/http/HttpServerRequest.ts +414 -23
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +351 -13
- package/src/unstable/http/HttpStaticServer.ts +456 -0
- package/src/unstable/http/HttpTraceContext.ts +31 -17
- package/src/unstable/http/Multipart.ts +8 -8
- package/src/unstable/http/Url.ts +650 -0
- package/src/unstable/http/UrlParams.ts +30 -18
- package/src/unstable/http/index.ts +10 -0
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +22 -22
- package/src/unstable/httpapi/HttpApiBuilder.ts +156 -66
- package/src/unstable/httpapi/HttpApiClient.ts +185 -34
- package/src/unstable/httpapi/HttpApiEndpoint.ts +225 -114
- package/src/unstable/httpapi/HttpApiError.ts +129 -30
- package/src/unstable/httpapi/HttpApiGroup.ts +18 -17
- package/src/unstable/httpapi/HttpApiMiddleware.ts +95 -32
- package/src/unstable/httpapi/HttpApiSchema.ts +106 -11
- package/src/unstable/httpapi/HttpApiSecurity.ts +13 -13
- package/src/unstable/httpapi/OpenApi.ts +74 -73
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +14 -10
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- package/src/unstable/observability/OtlpMetrics.ts +6 -6
- package/src/unstable/observability/OtlpSerialization.ts +2 -2
- package/src/unstable/observability/OtlpTracer.ts +14 -10
- package/src/unstable/observability/PrometheusMetrics.ts +5 -5
- package/src/unstable/observability/internal/protobuf.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +226 -3
- package/src/unstable/persistence/Persistable.ts +3 -3
- package/src/unstable/persistence/PersistedCache.ts +20 -17
- package/src/unstable/persistence/PersistedQueue.ts +21 -21
- package/src/unstable/persistence/Persistence.ts +7 -7
- package/src/unstable/persistence/RateLimiter.ts +7 -7
- package/src/unstable/persistence/Redis.ts +2 -2
- package/src/unstable/process/ChildProcess.ts +6 -208
- package/src/unstable/process/ChildProcessSpawner.ts +114 -15
- package/src/unstable/reactivity/AsyncResult.ts +59 -17
- package/src/unstable/reactivity/Atom.ts +280 -124
- package/src/unstable/reactivity/AtomHttpApi.ts +127 -61
- package/src/unstable/reactivity/AtomRegistry.ts +70 -16
- package/src/unstable/reactivity/AtomRpc.ts +82 -37
- package/src/unstable/reactivity/Reactivity.ts +6 -6
- package/src/unstable/rpc/Rpc.ts +212 -32
- package/src/unstable/rpc/RpcClient.ts +161 -142
- package/src/unstable/rpc/RpcGroup.ts +51 -34
- package/src/unstable/rpc/RpcMiddleware.ts +28 -22
- package/src/unstable/rpc/RpcSchema.ts +24 -6
- package/src/unstable/rpc/RpcSerialization.ts +97 -54
- package/src/unstable/rpc/RpcServer.ts +91 -65
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/rpc/Utils.ts +63 -4
- package/src/unstable/schema/Model.ts +35 -6
- package/src/unstable/schema/VariantSchema.ts +14 -27
- package/src/unstable/socket/Socket.ts +102 -62
- package/src/unstable/socket/SocketServer.ts +2 -2
- package/src/unstable/sql/Migrator.ts +7 -5
- package/src/unstable/sql/SqlClient.ts +48 -19
- package/src/unstable/sql/SqlConnection.ts +2 -2
- package/src/unstable/sql/SqlError.ts +365 -11
- package/src/unstable/sql/SqlModel.ts +57 -85
- package/src/unstable/sql/SqlResolver.ts +28 -20
- package/src/unstable/sql/SqlSchema.ts +42 -26
- package/src/unstable/sql/Statement.ts +21 -25
- package/src/unstable/workers/Transferable.ts +17 -19
- package/src/unstable/workers/Worker.ts +4 -4
- package/src/unstable/workers/WorkerRunner.ts +2 -2
- package/src/unstable/workflow/Activity.ts +36 -13
- package/src/unstable/workflow/DurableClock.ts +11 -11
- package/src/unstable/workflow/DurableDeferred.ts +36 -18
- package/src/unstable/workflow/Workflow.ts +46 -35
- package/src/unstable/workflow/WorkflowEngine.ts +236 -23
- package/src/unstable/workflow/WorkflowProxyServer.ts +4 -4
- package/dist/NullOr.d.ts +0 -149
- package/dist/NullOr.d.ts.map +0 -1
- package/dist/NullOr.js +0 -152
- package/dist/NullOr.js.map +0 -1
- package/dist/ServiceMap.d.ts +0 -1126
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js.map +0 -1
- package/dist/internal/schema/to-codec.d.ts +0 -2
- package/dist/internal/schema/to-codec.d.ts.map +0 -1
- package/dist/internal/schema/to-codec.js +0 -129
- package/dist/internal/schema/to-codec.js.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
- package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.js +0 -44
- package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.d.ts +0 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.d.ts.map +0 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
- package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.js +0 -23
- package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogJournal.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogJournal.js.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.js.map +0 -1
- package/src/NullOr.ts +0 -204
- package/src/ServiceMap.ts +0 -1410
- package/src/internal/schema/to-codec.ts +0 -148
- package/src/unstable/cli/internal/builtInFlags.ts +0 -78
- package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/dist/Layer.d.ts
CHANGED
|
@@ -19,14 +19,17 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import type { NonEmptyReadonlyArray } from "./Array.ts";
|
|
21
21
|
import type * as Cause from "./Cause.ts";
|
|
22
|
+
import type * as Channel from "./Channel.ts";
|
|
23
|
+
import * as Context from "./Context.ts";
|
|
22
24
|
import type { Effect } from "./Effect.ts";
|
|
23
25
|
import type * as Exit from "./Exit.ts";
|
|
24
26
|
import type { LazyArg } from "./Function.ts";
|
|
25
27
|
import { type Pipeable } from "./Pipeable.ts";
|
|
26
28
|
import * as Scope from "./Scope.ts";
|
|
27
|
-
import * as
|
|
29
|
+
import type * as Stream from "./Stream.ts";
|
|
28
30
|
import * as Tracer from "./Tracer.ts";
|
|
29
31
|
import type * as Types from "./Types.ts";
|
|
32
|
+
import type * as Unify from "./Unify.ts";
|
|
30
33
|
declare const TypeId = "~effect/Layer";
|
|
31
34
|
/**
|
|
32
35
|
* A Layer describes how to build one or more services for dependency injection.
|
|
@@ -40,6 +43,24 @@ declare const TypeId = "~effect/Layer";
|
|
|
40
43
|
* @category models
|
|
41
44
|
*/
|
|
42
45
|
export interface Layer<in ROut, out E = never, out RIn = never> extends Variance<ROut, E, RIn>, Pipeable {
|
|
46
|
+
[Unify.typeSymbol]?: unknown;
|
|
47
|
+
[Unify.unifySymbol]?: LayerUnify<this>;
|
|
48
|
+
[Unify.ignoreSymbol]?: LayerUnifyIgnore;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @since 4.0.0
|
|
52
|
+
* @category models
|
|
53
|
+
*/
|
|
54
|
+
export interface LayerUnify<A extends {
|
|
55
|
+
[Unify.typeSymbol]?: any;
|
|
56
|
+
}> {
|
|
57
|
+
Layer?: () => A[Unify.typeSymbol] extends Layer<any, any, any> | infer _ ? Layer<Success<Extract<A[Unify.typeSymbol], Any>>, Error<Extract<A[Unify.typeSymbol], Any>>, Services<Extract<A[Unify.typeSymbol], Any>>> : never;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @since 4.0.0
|
|
61
|
+
* @category models
|
|
62
|
+
*/
|
|
63
|
+
export interface LayerUnifyIgnore {
|
|
43
64
|
}
|
|
44
65
|
/**
|
|
45
66
|
* The variance interface for Layer type parameters.
|
|
@@ -100,9 +121,9 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
|
100
121
|
*
|
|
101
122
|
* @example
|
|
102
123
|
* ```ts
|
|
103
|
-
* import { Effect, Layer,
|
|
124
|
+
* import { Effect, Layer, Context } from "effect"
|
|
104
125
|
*
|
|
105
|
-
* class Database extends
|
|
126
|
+
* class Database extends Context.Service<Database, {
|
|
106
127
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
107
128
|
* }>()("Database") {}
|
|
108
129
|
*
|
|
@@ -112,11 +133,11 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
|
112
133
|
* const scope = yield* Effect.scope
|
|
113
134
|
*
|
|
114
135
|
* const dbLayer = Layer.succeed(Database)({
|
|
115
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
136
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
116
137
|
* })
|
|
117
|
-
* const
|
|
138
|
+
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
118
139
|
*
|
|
119
|
-
* return
|
|
140
|
+
* return Context.get(context, Database)
|
|
120
141
|
* })
|
|
121
142
|
* ```
|
|
122
143
|
*
|
|
@@ -125,21 +146,21 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
|
125
146
|
*/
|
|
126
147
|
export interface MemoMap {
|
|
127
148
|
readonly [MemoMapTypeId]: typeof MemoMapTypeId;
|
|
128
|
-
readonly getOrElseMemoize: <RIn, E, ROut>(layer: Layer<ROut, E, RIn>, scope: Scope.Scope, build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<
|
|
149
|
+
readonly getOrElseMemoize: <RIn, E, ROut>(layer: Layer<ROut, E, RIn>, scope: Scope.Scope, build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<ROut>, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>;
|
|
129
150
|
}
|
|
130
151
|
/**
|
|
131
152
|
* Returns `true` if the specified value is a `Layer`, `false` otherwise.
|
|
132
153
|
*
|
|
133
154
|
* @example
|
|
134
155
|
* ```ts
|
|
135
|
-
* import { Effect, Layer,
|
|
156
|
+
* import { Effect, Layer, Context } from "effect"
|
|
136
157
|
*
|
|
137
|
-
* class Database extends
|
|
158
|
+
* class Database extends Context.Service<Database, {
|
|
138
159
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
139
160
|
* }>()("Database") {}
|
|
140
161
|
*
|
|
141
162
|
* const dbLayer = Layer.succeed(Database)({
|
|
142
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
163
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
143
164
|
* })
|
|
144
165
|
* const notALayer = { someProperty: "value" }
|
|
145
166
|
*
|
|
@@ -159,15 +180,15 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
|
|
|
159
180
|
*
|
|
160
181
|
* @example
|
|
161
182
|
* ```ts
|
|
162
|
-
* import { Effect, Layer,
|
|
183
|
+
* import { Effect, Layer, Context } from "effect"
|
|
163
184
|
*
|
|
164
|
-
* class Database extends
|
|
185
|
+
* class Database extends Context.Service<Database, {
|
|
165
186
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
166
187
|
* }>()("Database") {}
|
|
167
188
|
*
|
|
168
189
|
* const databaseLayer = Layer.fromBuild(() =>
|
|
169
190
|
* Effect.sync(() =>
|
|
170
|
-
*
|
|
191
|
+
* Context.make(Database, {
|
|
171
192
|
* query: (sql: string) => Effect.succeed("result")
|
|
172
193
|
* })
|
|
173
194
|
* )
|
|
@@ -177,7 +198,7 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
|
|
|
177
198
|
* @since 4.0.0
|
|
178
199
|
* @category constructors
|
|
179
200
|
*/
|
|
180
|
-
export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<
|
|
201
|
+
export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<ROut>, E, RIn>) => Layer<ROut, E, RIn>;
|
|
181
202
|
/**
|
|
182
203
|
* Constructs a Layer from a function that uses a `MemoMap` and `Scope` to build the layer,
|
|
183
204
|
* with automatic memoization.
|
|
@@ -187,15 +208,15 @@ export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope:
|
|
|
187
208
|
*
|
|
188
209
|
* @example
|
|
189
210
|
* ```ts
|
|
190
|
-
* import { Effect, Layer,
|
|
211
|
+
* import { Effect, Layer, Context } from "effect"
|
|
191
212
|
*
|
|
192
|
-
* class Database extends
|
|
213
|
+
* class Database extends Context.Service<Database, {
|
|
193
214
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
194
215
|
* }>()("Database") {}
|
|
195
216
|
*
|
|
196
217
|
* const databaseLayer = Layer.fromBuildMemo(() =>
|
|
197
218
|
* Effect.sync(() =>
|
|
198
|
-
*
|
|
219
|
+
* Context.make(Database, {
|
|
199
220
|
* query: (sql: string) => Effect.succeed("result")
|
|
200
221
|
* })
|
|
201
222
|
* )
|
|
@@ -205,15 +226,15 @@ export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope:
|
|
|
205
226
|
* @since 4.0.0
|
|
206
227
|
* @category constructors
|
|
207
228
|
*/
|
|
208
|
-
export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<
|
|
229
|
+
export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<ROut>, E, RIn>) => Layer<ROut, E, RIn>;
|
|
209
230
|
/**
|
|
210
231
|
* Constructs a `MemoMap` that can be used to build additional layers.
|
|
211
232
|
*
|
|
212
233
|
* @example
|
|
213
234
|
* ```ts
|
|
214
|
-
* import { Effect, Layer,
|
|
235
|
+
* import { Effect, Layer, Context } from "effect"
|
|
215
236
|
*
|
|
216
|
-
* class Database extends
|
|
237
|
+
* class Database extends Context.Service<Database, {
|
|
217
238
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
218
239
|
* }>()("Database") {}
|
|
219
240
|
*
|
|
@@ -223,11 +244,11 @@ export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, sco
|
|
|
223
244
|
* const scope = yield* Effect.scope
|
|
224
245
|
*
|
|
225
246
|
* const dbLayer = Layer.succeed(Database)({
|
|
226
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
247
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
227
248
|
* })
|
|
228
|
-
* const
|
|
249
|
+
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
229
250
|
*
|
|
230
|
-
* return
|
|
251
|
+
* return Context.get(context, Database)
|
|
231
252
|
* })
|
|
232
253
|
* ```
|
|
233
254
|
*
|
|
@@ -240,9 +261,9 @@ export declare const makeMemoMapUnsafe: () => MemoMap;
|
|
|
240
261
|
*
|
|
241
262
|
* @example
|
|
242
263
|
* ```ts
|
|
243
|
-
* import { Effect, Layer,
|
|
264
|
+
* import { Effect, Layer, Context } from "effect"
|
|
244
265
|
*
|
|
245
|
-
* class Database extends
|
|
266
|
+
* class Database extends Context.Service<Database, {
|
|
246
267
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
247
268
|
* }>()("Database") {}
|
|
248
269
|
*
|
|
@@ -252,11 +273,11 @@ export declare const makeMemoMapUnsafe: () => MemoMap;
|
|
|
252
273
|
* const scope = yield* Effect.scope
|
|
253
274
|
*
|
|
254
275
|
* const dbLayer = Layer.succeed(Database)({
|
|
255
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
276
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
256
277
|
* })
|
|
257
|
-
* const
|
|
278
|
+
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
258
279
|
*
|
|
259
|
-
* return
|
|
280
|
+
* return Context.get(context, Database)
|
|
260
281
|
* })
|
|
261
282
|
* ```
|
|
262
283
|
*
|
|
@@ -264,7 +285,7 @@ export declare const makeMemoMapUnsafe: () => MemoMap;
|
|
|
264
285
|
* @category memo map
|
|
265
286
|
*/
|
|
266
287
|
export declare const makeMemoMap: Effect<MemoMap>;
|
|
267
|
-
declare const CurrentMemoMap_base:
|
|
288
|
+
declare const CurrentMemoMap_base: Context.ServiceClass<CurrentMemoMap, "effect/Layer/CurrentMemoMap", MemoMap>;
|
|
268
289
|
/**
|
|
269
290
|
* A service reference for the current `MemoMap` used in layer construction.
|
|
270
291
|
*
|
|
@@ -275,7 +296,7 @@ declare const CurrentMemoMap_base: ServiceMap.ServiceClass<CurrentMemoMap, "effe
|
|
|
275
296
|
* @category models
|
|
276
297
|
*/
|
|
277
298
|
export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
278
|
-
static getOrCreate: <Services>(self:
|
|
299
|
+
static getOrCreate: <Services>(self: Context.Context<Services>) => MemoMap;
|
|
279
300
|
}
|
|
280
301
|
/**
|
|
281
302
|
* Builds a layer into an `Effect` value, using the specified `MemoMap` to memoize
|
|
@@ -283,13 +304,13 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
|
283
304
|
*
|
|
284
305
|
* @example
|
|
285
306
|
* ```ts
|
|
286
|
-
* import { Effect, Layer,
|
|
307
|
+
* import { Effect, Layer, Context } from "effect"
|
|
287
308
|
*
|
|
288
|
-
* class Database extends
|
|
309
|
+
* class Database extends Context.Service<Database, {
|
|
289
310
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
290
311
|
* }>()("Database") {}
|
|
291
312
|
*
|
|
292
|
-
* class Logger extends
|
|
313
|
+
* class Logger extends Context.Service<Logger, {
|
|
293
314
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
294
315
|
* }>()("Logger") {}
|
|
295
316
|
*
|
|
@@ -300,23 +321,23 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
|
300
321
|
*
|
|
301
322
|
* // Build database layer with memoization
|
|
302
323
|
* const dbLayer = Layer.succeed(Database)({
|
|
303
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
324
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
304
325
|
* })
|
|
305
|
-
* const
|
|
326
|
+
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
306
327
|
*
|
|
307
328
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
308
329
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
309
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
330
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
310
331
|
* })
|
|
311
|
-
* const
|
|
332
|
+
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
312
333
|
* loggerLayer,
|
|
313
334
|
* memoMap,
|
|
314
335
|
* scope
|
|
315
336
|
* )
|
|
316
337
|
*
|
|
317
338
|
* return {
|
|
318
|
-
* database:
|
|
319
|
-
* logger:
|
|
339
|
+
* database: Context.get(dbContext, Database),
|
|
340
|
+
* logger: Context.get(loggerContext, Logger)
|
|
320
341
|
* }
|
|
321
342
|
* })
|
|
322
343
|
* ```
|
|
@@ -331,13 +352,13 @@ export declare const buildWithMemoMap: {
|
|
|
331
352
|
*
|
|
332
353
|
* @example
|
|
333
354
|
* ```ts
|
|
334
|
-
* import { Effect, Layer,
|
|
355
|
+
* import { Effect, Layer, Context } from "effect"
|
|
335
356
|
*
|
|
336
|
-
* class Database extends
|
|
357
|
+
* class Database extends Context.Service<Database, {
|
|
337
358
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
338
359
|
* }>()("Database") {}
|
|
339
360
|
*
|
|
340
|
-
* class Logger extends
|
|
361
|
+
* class Logger extends Context.Service<Logger, {
|
|
341
362
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
342
363
|
* }>()("Logger") {}
|
|
343
364
|
*
|
|
@@ -348,23 +369,23 @@ export declare const buildWithMemoMap: {
|
|
|
348
369
|
*
|
|
349
370
|
* // Build database layer with memoization
|
|
350
371
|
* const dbLayer = Layer.succeed(Database)({
|
|
351
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
372
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
352
373
|
* })
|
|
353
|
-
* const
|
|
374
|
+
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
354
375
|
*
|
|
355
376
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
356
377
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
357
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
378
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
358
379
|
* })
|
|
359
|
-
* const
|
|
380
|
+
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
360
381
|
* loggerLayer,
|
|
361
382
|
* memoMap,
|
|
362
383
|
* scope
|
|
363
384
|
* )
|
|
364
385
|
*
|
|
365
386
|
* return {
|
|
366
|
-
* database:
|
|
367
|
-
* logger:
|
|
387
|
+
* database: Context.get(dbContext, Database),
|
|
388
|
+
* logger: Context.get(loggerContext, Logger)
|
|
368
389
|
* }
|
|
369
390
|
* })
|
|
370
391
|
* ```
|
|
@@ -372,20 +393,20 @@ export declare const buildWithMemoMap: {
|
|
|
372
393
|
* @since 2.0.0
|
|
373
394
|
* @category memo map
|
|
374
395
|
*/
|
|
375
|
-
(memoMap: MemoMap, scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
396
|
+
(memoMap: MemoMap, scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>;
|
|
376
397
|
/**
|
|
377
398
|
* Builds a layer into an `Effect` value, using the specified `MemoMap` to memoize
|
|
378
399
|
* the layer construction.
|
|
379
400
|
*
|
|
380
401
|
* @example
|
|
381
402
|
* ```ts
|
|
382
|
-
* import { Effect, Layer,
|
|
403
|
+
* import { Effect, Layer, Context } from "effect"
|
|
383
404
|
*
|
|
384
|
-
* class Database extends
|
|
405
|
+
* class Database extends Context.Service<Database, {
|
|
385
406
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
386
407
|
* }>()("Database") {}
|
|
387
408
|
*
|
|
388
|
-
* class Logger extends
|
|
409
|
+
* class Logger extends Context.Service<Logger, {
|
|
389
410
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
390
411
|
* }>()("Logger") {}
|
|
391
412
|
*
|
|
@@ -396,23 +417,23 @@ export declare const buildWithMemoMap: {
|
|
|
396
417
|
*
|
|
397
418
|
* // Build database layer with memoization
|
|
398
419
|
* const dbLayer = Layer.succeed(Database)({
|
|
399
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
420
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
400
421
|
* })
|
|
401
|
-
* const
|
|
422
|
+
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
402
423
|
*
|
|
403
424
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
404
425
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
405
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
426
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
406
427
|
* })
|
|
407
|
-
* const
|
|
428
|
+
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
408
429
|
* loggerLayer,
|
|
409
430
|
* memoMap,
|
|
410
431
|
* scope
|
|
411
432
|
* )
|
|
412
433
|
*
|
|
413
434
|
* return {
|
|
414
|
-
* database:
|
|
415
|
-
* logger:
|
|
435
|
+
* database: Context.get(dbContext, Database),
|
|
436
|
+
* logger: Context.get(loggerContext, Logger)
|
|
416
437
|
* }
|
|
417
438
|
* })
|
|
418
439
|
* ```
|
|
@@ -420,30 +441,30 @@ export declare const buildWithMemoMap: {
|
|
|
420
441
|
* @since 2.0.0
|
|
421
442
|
* @category memo map
|
|
422
443
|
*/
|
|
423
|
-
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, memoMap: MemoMap, scope: Scope.Scope): Effect<
|
|
444
|
+
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, memoMap: MemoMap, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>;
|
|
424
445
|
};
|
|
425
446
|
/**
|
|
426
447
|
* Builds a layer into a scoped value.
|
|
427
448
|
*
|
|
428
449
|
* @example
|
|
429
450
|
* ```ts
|
|
430
|
-
* import { Effect, Layer,
|
|
451
|
+
* import { Effect, Layer, Context } from "effect"
|
|
431
452
|
*
|
|
432
|
-
* class Database extends
|
|
453
|
+
* class Database extends Context.Service<Database, {
|
|
433
454
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
434
455
|
* }>()("Database") {}
|
|
435
456
|
*
|
|
436
457
|
* // Build a layer to get its services
|
|
437
458
|
* const program = Effect.gen(function*() {
|
|
438
459
|
* const dbLayer = Layer.succeed(Database)({
|
|
439
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
460
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
440
461
|
* })
|
|
441
462
|
*
|
|
442
|
-
* // Build the layer into
|
|
443
|
-
* const
|
|
463
|
+
* // Build the layer into Context - automatically manages scope and memoization
|
|
464
|
+
* const context = yield* Layer.build(dbLayer)
|
|
444
465
|
*
|
|
445
466
|
* // Extract the specific service from the built layer
|
|
446
|
-
* const database =
|
|
467
|
+
* const database = Context.get(context, Database)
|
|
447
468
|
*
|
|
448
469
|
* return yield* database.query("SELECT * FROM users")
|
|
449
470
|
* })
|
|
@@ -452,7 +473,7 @@ export declare const buildWithMemoMap: {
|
|
|
452
473
|
* @since 2.0.0
|
|
453
474
|
* @category destructors
|
|
454
475
|
*/
|
|
455
|
-
export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
476
|
+
export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn | Scope.Scope>;
|
|
456
477
|
/**
|
|
457
478
|
* Builds a layer into an `Effect` value. Any resources associated with this
|
|
458
479
|
* layer will be released when the specified scope is closed unless their scope
|
|
@@ -462,9 +483,9 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
|
462
483
|
*
|
|
463
484
|
* @example
|
|
464
485
|
* ```ts
|
|
465
|
-
* import { Effect, Layer, Scope,
|
|
486
|
+
* import { Effect, Layer, Scope, Context } from "effect"
|
|
466
487
|
*
|
|
467
|
-
* class Database extends
|
|
488
|
+
* class Database extends Context.Service<Database, {
|
|
468
489
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
469
490
|
* }>()("Database") {}
|
|
470
491
|
*
|
|
@@ -478,12 +499,12 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
|
478
499
|
* scope,
|
|
479
500
|
* Effect.sync(() => console.log("Database closed"))
|
|
480
501
|
* )
|
|
481
|
-
* return { query: (sql: string) => Effect.succeed(`Result: ${sql}`) }
|
|
502
|
+
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
|
|
482
503
|
* }))
|
|
483
504
|
*
|
|
484
505
|
* // Build with specific scope - resources tied to this scope
|
|
485
|
-
* const
|
|
486
|
-
* const database =
|
|
506
|
+
* const context = yield* Layer.buildWithScope(dbLayer, scope)
|
|
507
|
+
* const database = Context.get(context, Database)
|
|
487
508
|
*
|
|
488
509
|
* return yield* database.query("SELECT * FROM users")
|
|
489
510
|
* // Database will be closed when scope is closed
|
|
@@ -503,9 +524,9 @@ export declare const buildWithScope: {
|
|
|
503
524
|
*
|
|
504
525
|
* @example
|
|
505
526
|
* ```ts
|
|
506
|
-
* import { Effect, Layer, Scope,
|
|
527
|
+
* import { Effect, Layer, Scope, Context } from "effect"
|
|
507
528
|
*
|
|
508
|
-
* class Database extends
|
|
529
|
+
* class Database extends Context.Service<Database, {
|
|
509
530
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
510
531
|
* }>()("Database") {}
|
|
511
532
|
*
|
|
@@ -519,12 +540,12 @@ export declare const buildWithScope: {
|
|
|
519
540
|
* scope,
|
|
520
541
|
* Effect.sync(() => console.log("Database closed"))
|
|
521
542
|
* )
|
|
522
|
-
* return { query: (sql: string) => Effect.succeed(`Result: ${sql}`) }
|
|
543
|
+
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
|
|
523
544
|
* }))
|
|
524
545
|
*
|
|
525
546
|
* // Build with specific scope - resources tied to this scope
|
|
526
|
-
* const
|
|
527
|
-
* const database =
|
|
547
|
+
* const context = yield* Layer.buildWithScope(dbLayer, scope)
|
|
548
|
+
* const database = Context.get(context, Database)
|
|
528
549
|
*
|
|
529
550
|
* return yield* database.query("SELECT * FROM users")
|
|
530
551
|
* // Database will be closed when scope is closed
|
|
@@ -534,7 +555,7 @@ export declare const buildWithScope: {
|
|
|
534
555
|
* @since 2.0.0
|
|
535
556
|
* @category destructors
|
|
536
557
|
*/
|
|
537
|
-
(scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
558
|
+
(scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>;
|
|
538
559
|
/**
|
|
539
560
|
* Builds a layer into an `Effect` value. Any resources associated with this
|
|
540
561
|
* layer will be released when the specified scope is closed unless their scope
|
|
@@ -544,9 +565,9 @@ export declare const buildWithScope: {
|
|
|
544
565
|
*
|
|
545
566
|
* @example
|
|
546
567
|
* ```ts
|
|
547
|
-
* import { Effect, Layer, Scope,
|
|
568
|
+
* import { Effect, Layer, Scope, Context } from "effect"
|
|
548
569
|
*
|
|
549
|
-
* class Database extends
|
|
570
|
+
* class Database extends Context.Service<Database, {
|
|
550
571
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
551
572
|
* }>()("Database") {}
|
|
552
573
|
*
|
|
@@ -560,12 +581,12 @@ export declare const buildWithScope: {
|
|
|
560
581
|
* scope,
|
|
561
582
|
* Effect.sync(() => console.log("Database closed"))
|
|
562
583
|
* )
|
|
563
|
-
* return { query: (sql: string) => Effect.succeed(`Result: ${sql}`) }
|
|
584
|
+
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
|
|
564
585
|
* }))
|
|
565
586
|
*
|
|
566
587
|
* // Build with specific scope - resources tied to this scope
|
|
567
|
-
* const
|
|
568
|
-
* const database =
|
|
588
|
+
* const context = yield* Layer.buildWithScope(dbLayer, scope)
|
|
589
|
+
* const database = Context.get(context, Database)
|
|
569
590
|
*
|
|
570
591
|
* return yield* database.query("SELECT * FROM users")
|
|
571
592
|
* // Database will be closed when scope is closed
|
|
@@ -575,30 +596,30 @@ export declare const buildWithScope: {
|
|
|
575
596
|
* @since 2.0.0
|
|
576
597
|
* @category destructors
|
|
577
598
|
*/
|
|
578
|
-
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, scope: Scope.Scope): Effect<
|
|
599
|
+
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>;
|
|
579
600
|
};
|
|
580
601
|
/**
|
|
581
602
|
* Constructs a layer from the specified value.
|
|
582
603
|
*
|
|
583
604
|
* @example
|
|
584
605
|
* ```ts
|
|
585
|
-
* import { Effect, Layer,
|
|
606
|
+
* import { Effect, Layer, Context } from "effect"
|
|
586
607
|
*
|
|
587
|
-
* class Database extends
|
|
608
|
+
* class Database extends Context.Service<Database, {
|
|
588
609
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
589
610
|
* }>()("Database") {}
|
|
590
611
|
*
|
|
591
|
-
* class Logger extends
|
|
612
|
+
* class Logger extends Context.Service<Logger, {
|
|
592
613
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
593
614
|
* }>()("Logger") {}
|
|
594
615
|
*
|
|
595
616
|
* // Create layers from concrete service implementations
|
|
596
617
|
* const databaseLayer = Layer.succeed(Database)({
|
|
597
|
-
* query: (sql: string) => Effect.succeed(`Query result: ${sql}`)
|
|
618
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
598
619
|
* })
|
|
599
620
|
*
|
|
600
621
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
601
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
622
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
602
623
|
* })
|
|
603
624
|
*
|
|
604
625
|
* // Use the layers in a program
|
|
@@ -625,23 +646,23 @@ export declare const succeed: {
|
|
|
625
646
|
*
|
|
626
647
|
* @example
|
|
627
648
|
* ```ts
|
|
628
|
-
* import { Effect, Layer,
|
|
649
|
+
* import { Effect, Layer, Context } from "effect"
|
|
629
650
|
*
|
|
630
|
-
* class Database extends
|
|
651
|
+
* class Database extends Context.Service<Database, {
|
|
631
652
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
632
653
|
* }>()("Database") {}
|
|
633
654
|
*
|
|
634
|
-
* class Logger extends
|
|
655
|
+
* class Logger extends Context.Service<Logger, {
|
|
635
656
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
636
657
|
* }>()("Logger") {}
|
|
637
658
|
*
|
|
638
659
|
* // Create layers from concrete service implementations
|
|
639
660
|
* const databaseLayer = Layer.succeed(Database)({
|
|
640
|
-
* query: (sql: string) => Effect.succeed(`Query result: ${sql}`)
|
|
661
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
641
662
|
* })
|
|
642
663
|
*
|
|
643
664
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
644
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
665
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
645
666
|
* })
|
|
646
667
|
*
|
|
647
668
|
* // Use the layers in a program
|
|
@@ -662,29 +683,29 @@ export declare const succeed: {
|
|
|
662
683
|
* @since 2.0.0
|
|
663
684
|
* @category constructors
|
|
664
685
|
*/
|
|
665
|
-
<I, S>(service:
|
|
686
|
+
<I, S>(service: Context.Key<I, S>): (resource: S) => Layer<I>;
|
|
666
687
|
/**
|
|
667
688
|
* Constructs a layer from the specified value.
|
|
668
689
|
*
|
|
669
690
|
* @example
|
|
670
691
|
* ```ts
|
|
671
|
-
* import { Effect, Layer,
|
|
692
|
+
* import { Effect, Layer, Context } from "effect"
|
|
672
693
|
*
|
|
673
|
-
* class Database extends
|
|
694
|
+
* class Database extends Context.Service<Database, {
|
|
674
695
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
675
696
|
* }>()("Database") {}
|
|
676
697
|
*
|
|
677
|
-
* class Logger extends
|
|
698
|
+
* class Logger extends Context.Service<Logger, {
|
|
678
699
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
679
700
|
* }>()("Logger") {}
|
|
680
701
|
*
|
|
681
702
|
* // Create layers from concrete service implementations
|
|
682
703
|
* const databaseLayer = Layer.succeed(Database)({
|
|
683
|
-
* query: (sql: string) => Effect.succeed(`Query result: ${sql}`)
|
|
704
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Query result: ${sql}`))
|
|
684
705
|
* })
|
|
685
706
|
*
|
|
686
707
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
687
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
708
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
688
709
|
* })
|
|
689
710
|
*
|
|
690
711
|
* // Use the layers in a program
|
|
@@ -705,45 +726,44 @@ export declare const succeed: {
|
|
|
705
726
|
* @since 2.0.0
|
|
706
727
|
* @category constructors
|
|
707
728
|
*/
|
|
708
|
-
<I, S>(service:
|
|
729
|
+
<I, S>(service: Context.Key<I, S>, resource: Types.NoInfer<S>): Layer<I>;
|
|
709
730
|
};
|
|
710
731
|
/**
|
|
711
732
|
* Constructs a layer from the specified value, which must return one or more
|
|
712
733
|
* services.
|
|
713
734
|
*
|
|
714
735
|
* This is a more general version of `succeed` that allows you to provide multiple
|
|
715
|
-
* services at once through a `
|
|
736
|
+
* services at once through a `Context`.
|
|
716
737
|
*
|
|
717
738
|
* @example
|
|
718
739
|
* ```ts
|
|
719
|
-
* import { Effect, Layer,
|
|
740
|
+
* import { Effect, Layer, Context } from "effect"
|
|
720
741
|
*
|
|
721
|
-
* class Database extends
|
|
742
|
+
* class Database extends Context.Service<Database, {
|
|
722
743
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
723
744
|
* }>()("Database") {}
|
|
724
745
|
*
|
|
725
|
-
* class Logger extends
|
|
746
|
+
* class Logger extends Context.Service<Logger, {
|
|
726
747
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
727
748
|
* }>()("Logger") {}
|
|
728
749
|
*
|
|
729
|
-
* const
|
|
730
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
731
|
-
* })
|
|
732
|
-
* .
|
|
733
|
-
*
|
|
734
|
-
*
|
|
735
|
-
*
|
|
736
|
-
* )
|
|
750
|
+
* const context = Context.make(Database, {
|
|
751
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
752
|
+
* }).pipe(
|
|
753
|
+
* Context.add(Logger, {
|
|
754
|
+
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
755
|
+
* })
|
|
756
|
+
* )
|
|
737
757
|
*
|
|
738
|
-
* const layer = Layer.
|
|
758
|
+
* const layer = Layer.succeedContext(context)
|
|
739
759
|
* ```
|
|
740
760
|
*
|
|
741
761
|
* @since 2.0.0
|
|
742
762
|
* @category constructors
|
|
743
763
|
*/
|
|
744
|
-
export declare const
|
|
764
|
+
export declare const succeedContext: <A>(context: Context.Context<A>) => Layer<A>;
|
|
745
765
|
/**
|
|
746
|
-
* A Layer that constructs an empty
|
|
766
|
+
* A Layer that constructs an empty Context.
|
|
747
767
|
*
|
|
748
768
|
* This layer provides no services and can be used as a neutral element
|
|
749
769
|
* in layer composition or as a starting point for building layers.
|
|
@@ -767,9 +787,9 @@ export declare const empty: Layer<never>;
|
|
|
767
787
|
*
|
|
768
788
|
* @example
|
|
769
789
|
* ```ts
|
|
770
|
-
* import { Effect, Layer,
|
|
790
|
+
* import { Effect, Layer, Context } from "effect"
|
|
771
791
|
*
|
|
772
|
-
* class Database extends
|
|
792
|
+
* class Database extends Context.Service<Database, {
|
|
773
793
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
774
794
|
* }>()("Database") {}
|
|
775
795
|
*
|
|
@@ -790,9 +810,9 @@ export declare const sync: {
|
|
|
790
810
|
*
|
|
791
811
|
* @example
|
|
792
812
|
* ```ts
|
|
793
|
-
* import { Effect, Layer,
|
|
813
|
+
* import { Effect, Layer, Context } from "effect"
|
|
794
814
|
*
|
|
795
|
-
* class Database extends
|
|
815
|
+
* class Database extends Context.Service<Database, {
|
|
796
816
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
797
817
|
* }>()("Database") {}
|
|
798
818
|
*
|
|
@@ -804,7 +824,7 @@ export declare const sync: {
|
|
|
804
824
|
* @since 2.0.0
|
|
805
825
|
* @category constructors
|
|
806
826
|
*/
|
|
807
|
-
<I, S>(service:
|
|
827
|
+
<I, S>(service: Context.Key<I, S>): (evaluate: LazyArg<S>) => Layer<I>;
|
|
808
828
|
/**
|
|
809
829
|
* Lazily constructs a layer from the specified value.
|
|
810
830
|
*
|
|
@@ -813,9 +833,9 @@ export declare const sync: {
|
|
|
813
833
|
*
|
|
814
834
|
* @example
|
|
815
835
|
* ```ts
|
|
816
|
-
* import { Effect, Layer,
|
|
836
|
+
* import { Effect, Layer, Context } from "effect"
|
|
817
837
|
*
|
|
818
|
-
* class Database extends
|
|
838
|
+
* class Database extends Context.Service<Database, {
|
|
819
839
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
820
840
|
* }>()("Database") {}
|
|
821
841
|
*
|
|
@@ -827,25 +847,25 @@ export declare const sync: {
|
|
|
827
847
|
* @since 2.0.0
|
|
828
848
|
* @category constructors
|
|
829
849
|
*/
|
|
830
|
-
<I, S>(service:
|
|
850
|
+
<I, S>(service: Context.Key<I, S>, evaluate: LazyArg<Types.NoInfer<S>>): Layer<I>;
|
|
831
851
|
};
|
|
832
852
|
/**
|
|
833
853
|
* Lazily constructs a layer from the specified value, which must return one or more
|
|
834
854
|
* services.
|
|
835
855
|
*
|
|
836
|
-
* This is a lazy version of `
|
|
856
|
+
* This is a lazy version of `succeedContext` where the Context is computed
|
|
837
857
|
* synchronously only when the layer is built.
|
|
838
858
|
*
|
|
839
859
|
* @example
|
|
840
860
|
* ```ts
|
|
841
|
-
* import { Effect, Layer,
|
|
861
|
+
* import { Effect, Layer, Context } from "effect"
|
|
842
862
|
*
|
|
843
|
-
* class Database extends
|
|
863
|
+
* class Database extends Context.Service<Database, {
|
|
844
864
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
845
865
|
* }>()("Database") {}
|
|
846
866
|
*
|
|
847
|
-
* const layer = Layer.
|
|
848
|
-
*
|
|
867
|
+
* const layer = Layer.syncContext(() =>
|
|
868
|
+
* Context.make(Database, {
|
|
849
869
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
850
870
|
* })
|
|
851
871
|
* )
|
|
@@ -854,7 +874,7 @@ export declare const sync: {
|
|
|
854
874
|
* @since 2.0.0
|
|
855
875
|
* @category constructors
|
|
856
876
|
*/
|
|
857
|
-
export declare const
|
|
877
|
+
export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) => Layer<A>;
|
|
858
878
|
/**
|
|
859
879
|
* Constructs a layer from the specified scoped effect.
|
|
860
880
|
*
|
|
@@ -870,9 +890,9 @@ export declare const syncServices: <A>(evaluate: LazyArg<ServiceMap.ServiceMap<A
|
|
|
870
890
|
*
|
|
871
891
|
* @example
|
|
872
892
|
* ```ts
|
|
873
|
-
* import { Effect, Layer,
|
|
893
|
+
* import { Effect, Layer, Context } from "effect"
|
|
874
894
|
*
|
|
875
|
-
* class Database extends
|
|
895
|
+
* class Database extends Context.Service<Database, {
|
|
876
896
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
877
897
|
* }>()("Database") {}
|
|
878
898
|
*
|
|
@@ -902,9 +922,9 @@ export declare const effect: {
|
|
|
902
922
|
*
|
|
903
923
|
* @example
|
|
904
924
|
* ```ts
|
|
905
|
-
* import { Effect, Layer,
|
|
925
|
+
* import { Effect, Layer, Context } from "effect"
|
|
906
926
|
*
|
|
907
|
-
* class Database extends
|
|
927
|
+
* class Database extends Context.Service<Database, {
|
|
908
928
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
909
929
|
* }>()("Database") {}
|
|
910
930
|
*
|
|
@@ -918,7 +938,7 @@ export declare const effect: {
|
|
|
918
938
|
* @since 2.0.0
|
|
919
939
|
* @category constructors
|
|
920
940
|
*/
|
|
921
|
-
<I, S>(service:
|
|
941
|
+
<I, S>(service: Context.Key<I, S>): <E, R>(effect: Effect<S, E, R>) => Layer<I, E, Exclude<R, Scope.Scope>>;
|
|
922
942
|
/**
|
|
923
943
|
* Constructs a layer from the specified scoped effect.
|
|
924
944
|
*
|
|
@@ -934,9 +954,9 @@ export declare const effect: {
|
|
|
934
954
|
*
|
|
935
955
|
* @example
|
|
936
956
|
* ```ts
|
|
937
|
-
* import { Effect, Layer,
|
|
957
|
+
* import { Effect, Layer, Context } from "effect"
|
|
938
958
|
*
|
|
939
|
-
* class Database extends
|
|
959
|
+
* class Database extends Context.Service<Database, {
|
|
940
960
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
941
961
|
* }>()("Database") {}
|
|
942
962
|
*
|
|
@@ -950,7 +970,7 @@ export declare const effect: {
|
|
|
950
970
|
* @since 2.0.0
|
|
951
971
|
* @category constructors
|
|
952
972
|
*/
|
|
953
|
-
<I, S, E, R>(service:
|
|
973
|
+
<I, S, E, R>(service: Context.Key<I, S>, effect: Effect<Types.NoInfer<S>, E, R>): Layer<I, E, Exclude<R, Scope.Scope>>;
|
|
954
974
|
};
|
|
955
975
|
/**
|
|
956
976
|
* Constructs a layer from the specified scoped effect, which must return one
|
|
@@ -961,15 +981,15 @@ export declare const effect: {
|
|
|
961
981
|
*
|
|
962
982
|
* @example
|
|
963
983
|
* ```ts
|
|
964
|
-
* import { Effect, Layer,
|
|
984
|
+
* import { Effect, Layer, Context } from "effect"
|
|
965
985
|
*
|
|
966
|
-
* class Database extends
|
|
986
|
+
* class Database extends Context.Service<
|
|
967
987
|
* Database,
|
|
968
988
|
* { readonly query: (sql: string) => Effect.Effect<string> }
|
|
969
989
|
* >()("Database") {}
|
|
970
990
|
*
|
|
971
|
-
* const layer = Layer.
|
|
972
|
-
* Effect.succeed(
|
|
991
|
+
* const layer = Layer.effectContext(
|
|
992
|
+
* Effect.succeed(Context.make(Database, {
|
|
973
993
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
974
994
|
* }))
|
|
975
995
|
* )
|
|
@@ -978,7 +998,7 @@ export declare const effect: {
|
|
|
978
998
|
* @since 2.0.0
|
|
979
999
|
* @category constructors
|
|
980
1000
|
*/
|
|
981
|
-
export declare const
|
|
1001
|
+
export declare const effectContext: <A, E, R>(effect: Effect<Context.Context<A>, E, R>) => Layer<A, E, Exclude<R, Scope.Scope>>;
|
|
982
1002
|
/**
|
|
983
1003
|
* Constructs a layer from the specified scoped effect.
|
|
984
1004
|
*
|
|
@@ -1006,6 +1026,31 @@ export declare const effectServices: <A, E, R>(effect: Effect<ServiceMap.Service
|
|
|
1006
1026
|
* @category constructors
|
|
1007
1027
|
*/
|
|
1008
1028
|
export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<never, E, Exclude<R, Scope.Scope>>;
|
|
1029
|
+
/**
|
|
1030
|
+
* Lazily constructs a layer using the specified factory.
|
|
1031
|
+
*
|
|
1032
|
+
* The factory is evaluated only when the suspended layer is first built, and
|
|
1033
|
+
* the result is memoized with normal layer sharing semantics.
|
|
1034
|
+
*
|
|
1035
|
+
* @example
|
|
1036
|
+
* ```ts
|
|
1037
|
+
* import { Layer, Context } from "effect"
|
|
1038
|
+
*
|
|
1039
|
+
* class Config extends Context.Service<Config, string>()("Config") {}
|
|
1040
|
+
*
|
|
1041
|
+
* const useProd = true
|
|
1042
|
+
*
|
|
1043
|
+
* const layer = Layer.suspend(() =>
|
|
1044
|
+
* useProd
|
|
1045
|
+
* ? Layer.succeed(Config)("https://api.example.com")
|
|
1046
|
+
* : Layer.succeed(Config)("http://localhost:3000")
|
|
1047
|
+
* )
|
|
1048
|
+
* ```
|
|
1049
|
+
*
|
|
1050
|
+
* @since 4.0.0
|
|
1051
|
+
* @category constructors
|
|
1052
|
+
*/
|
|
1053
|
+
export declare const suspend: <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>) => Layer<A, E, R>;
|
|
1009
1054
|
/**
|
|
1010
1055
|
* Unwraps a Layer from an Effect, flattening the nested structure.
|
|
1011
1056
|
*
|
|
@@ -1015,14 +1060,14 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
|
|
|
1015
1060
|
*
|
|
1016
1061
|
* @example
|
|
1017
1062
|
* ```ts
|
|
1018
|
-
* import { Effect, Layer,
|
|
1063
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1019
1064
|
*
|
|
1020
|
-
* class Database extends
|
|
1065
|
+
* class Database extends Context.Service<Database, {
|
|
1021
1066
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1022
1067
|
* }>()("Database") {}
|
|
1023
1068
|
*
|
|
1024
1069
|
* const layerEffect = Effect.succeed(
|
|
1025
|
-
* Layer.succeed(Database)({ query: (sql: string) => Effect.succeed("result") })
|
|
1070
|
+
* Layer.succeed(Database)({ query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result")) })
|
|
1026
1071
|
* )
|
|
1027
1072
|
*
|
|
1028
1073
|
* const unwrappedLayer = Layer.unwrap(layerEffect)
|
|
@@ -1040,21 +1085,21 @@ export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E,
|
|
|
1040
1085
|
*
|
|
1041
1086
|
* @example
|
|
1042
1087
|
* ```ts
|
|
1043
|
-
* import { Effect, Layer,
|
|
1088
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1044
1089
|
*
|
|
1045
|
-
* class Database extends
|
|
1090
|
+
* class Database extends Context.Service<Database, {
|
|
1046
1091
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1047
1092
|
* }>()("Database") {}
|
|
1048
1093
|
*
|
|
1049
|
-
* class Logger extends
|
|
1094
|
+
* class Logger extends Context.Service<Logger, {
|
|
1050
1095
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1051
1096
|
* }>()("Logger") {}
|
|
1052
1097
|
*
|
|
1053
1098
|
* const dbLayer = Layer.succeed(Database)({
|
|
1054
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
1099
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1055
1100
|
* })
|
|
1056
1101
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1057
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
1102
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1058
1103
|
* })
|
|
1059
1104
|
*
|
|
1060
1105
|
* const mergedLayer = Layer.mergeAll(dbLayer, loggerLayer)
|
|
@@ -1072,21 +1117,21 @@ export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array
|
|
|
1072
1117
|
*
|
|
1073
1118
|
* @example
|
|
1074
1119
|
* ```ts
|
|
1075
|
-
* import { Effect, Layer,
|
|
1120
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1076
1121
|
*
|
|
1077
|
-
* class Database extends
|
|
1122
|
+
* class Database extends Context.Service<Database, {
|
|
1078
1123
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1079
1124
|
* }>()("Database") {}
|
|
1080
1125
|
*
|
|
1081
|
-
* class Logger extends
|
|
1126
|
+
* class Logger extends Context.Service<Logger, {
|
|
1082
1127
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1083
1128
|
* }>()("Logger") {}
|
|
1084
1129
|
*
|
|
1085
1130
|
* const dbLayer = Layer.succeed(Database)({
|
|
1086
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
1131
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1087
1132
|
* })
|
|
1088
1133
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1089
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
1134
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1090
1135
|
* })
|
|
1091
1136
|
*
|
|
1092
1137
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
@@ -1104,21 +1149,21 @@ export declare const merge: {
|
|
|
1104
1149
|
*
|
|
1105
1150
|
* @example
|
|
1106
1151
|
* ```ts
|
|
1107
|
-
* import { Effect, Layer,
|
|
1152
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1108
1153
|
*
|
|
1109
|
-
* class Database extends
|
|
1154
|
+
* class Database extends Context.Service<Database, {
|
|
1110
1155
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1111
1156
|
* }>()("Database") {}
|
|
1112
1157
|
*
|
|
1113
|
-
* class Logger extends
|
|
1158
|
+
* class Logger extends Context.Service<Logger, {
|
|
1114
1159
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1115
1160
|
* }>()("Logger") {}
|
|
1116
1161
|
*
|
|
1117
1162
|
* const dbLayer = Layer.succeed(Database)({
|
|
1118
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
1163
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1119
1164
|
* })
|
|
1120
1165
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1121
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
1166
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1122
1167
|
* })
|
|
1123
1168
|
*
|
|
1124
1169
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
@@ -1136,21 +1181,21 @@ export declare const merge: {
|
|
|
1136
1181
|
*
|
|
1137
1182
|
* @example
|
|
1138
1183
|
* ```ts
|
|
1139
|
-
* import { Effect, Layer,
|
|
1184
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1140
1185
|
*
|
|
1141
|
-
* class Database extends
|
|
1186
|
+
* class Database extends Context.Service<Database, {
|
|
1142
1187
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1143
1188
|
* }>()("Database") {}
|
|
1144
1189
|
*
|
|
1145
|
-
* class Logger extends
|
|
1190
|
+
* class Logger extends Context.Service<Logger, {
|
|
1146
1191
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1147
1192
|
* }>()("Logger") {}
|
|
1148
1193
|
*
|
|
1149
1194
|
* const dbLayer = Layer.succeed(Database)({
|
|
1150
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
1195
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1151
1196
|
* })
|
|
1152
1197
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1153
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
1198
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1154
1199
|
* })
|
|
1155
1200
|
*
|
|
1156
1201
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
@@ -1168,21 +1213,21 @@ export declare const merge: {
|
|
|
1168
1213
|
*
|
|
1169
1214
|
* @example
|
|
1170
1215
|
* ```ts
|
|
1171
|
-
* import { Effect, Layer,
|
|
1216
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1172
1217
|
*
|
|
1173
|
-
* class Database extends
|
|
1218
|
+
* class Database extends Context.Service<Database, {
|
|
1174
1219
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1175
1220
|
* }>()("Database") {}
|
|
1176
1221
|
*
|
|
1177
|
-
* class Logger extends
|
|
1222
|
+
* class Logger extends Context.Service<Logger, {
|
|
1178
1223
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1179
1224
|
* }>()("Logger") {}
|
|
1180
1225
|
*
|
|
1181
1226
|
* const dbLayer = Layer.succeed(Database)({
|
|
1182
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
1227
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1183
1228
|
* })
|
|
1184
1229
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1185
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
1230
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1186
1231
|
* })
|
|
1187
1232
|
*
|
|
1188
1233
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
@@ -1200,21 +1245,21 @@ export declare const merge: {
|
|
|
1200
1245
|
*
|
|
1201
1246
|
* @example
|
|
1202
1247
|
* ```ts
|
|
1203
|
-
* import { Effect, Layer,
|
|
1248
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1204
1249
|
*
|
|
1205
|
-
* class Database extends
|
|
1250
|
+
* class Database extends Context.Service<Database, {
|
|
1206
1251
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1207
1252
|
* }>()("Database") {}
|
|
1208
1253
|
*
|
|
1209
|
-
* class Logger extends
|
|
1254
|
+
* class Logger extends Context.Service<Logger, {
|
|
1210
1255
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1211
1256
|
* }>()("Logger") {}
|
|
1212
1257
|
*
|
|
1213
1258
|
* const dbLayer = Layer.succeed(Database)({
|
|
1214
|
-
* query: (sql: string) => Effect.succeed("result")
|
|
1259
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
1215
1260
|
* })
|
|
1216
1261
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1217
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
1262
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
1218
1263
|
* })
|
|
1219
1264
|
*
|
|
1220
1265
|
* const mergedLayer = Layer.merge(dbLayer, loggerLayer)
|
|
@@ -1232,30 +1277,30 @@ export declare const merge: {
|
|
|
1232
1277
|
*
|
|
1233
1278
|
* @example
|
|
1234
1279
|
* ```ts
|
|
1235
|
-
* import { Effect, Layer,
|
|
1280
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1236
1281
|
*
|
|
1237
|
-
* class Database extends
|
|
1282
|
+
* class Database extends Context.Service<Database, {
|
|
1238
1283
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1239
1284
|
* }>()("Database") {}
|
|
1240
1285
|
*
|
|
1241
|
-
* class UserService extends
|
|
1286
|
+
* class UserService extends Context.Service<UserService, {
|
|
1242
1287
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1243
1288
|
* id: string
|
|
1244
1289
|
* name: string
|
|
1245
1290
|
* }>
|
|
1246
1291
|
* }>()("UserService") {}
|
|
1247
1292
|
*
|
|
1248
|
-
* class Logger extends
|
|
1293
|
+
* class Logger extends Context.Service<Logger, {
|
|
1249
1294
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1250
1295
|
* }>()("Logger") {}
|
|
1251
1296
|
*
|
|
1252
1297
|
* // Create dependency layers
|
|
1253
1298
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1254
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1299
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1255
1300
|
* })
|
|
1256
1301
|
*
|
|
1257
1302
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1258
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1303
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1259
1304
|
* })
|
|
1260
1305
|
*
|
|
1261
1306
|
* // UserService depends on Database and Logger
|
|
@@ -1264,8 +1309,7 @@ export declare const merge: {
|
|
|
1264
1309
|
* const logger = yield* Logger
|
|
1265
1310
|
*
|
|
1266
1311
|
* return {
|
|
1267
|
-
* getUser: (id: string)
|
|
1268
|
-
* Effect.gen(function*() {
|
|
1312
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1269
1313
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1270
1314
|
* const result = yield* database.query(
|
|
1271
1315
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1300,30 +1344,30 @@ export declare const provide: {
|
|
|
1300
1344
|
*
|
|
1301
1345
|
* @example
|
|
1302
1346
|
* ```ts
|
|
1303
|
-
* import { Effect, Layer,
|
|
1347
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1304
1348
|
*
|
|
1305
|
-
* class Database extends
|
|
1349
|
+
* class Database extends Context.Service<Database, {
|
|
1306
1350
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1307
1351
|
* }>()("Database") {}
|
|
1308
1352
|
*
|
|
1309
|
-
* class UserService extends
|
|
1353
|
+
* class UserService extends Context.Service<UserService, {
|
|
1310
1354
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1311
1355
|
* id: string
|
|
1312
1356
|
* name: string
|
|
1313
1357
|
* }>
|
|
1314
1358
|
* }>()("UserService") {}
|
|
1315
1359
|
*
|
|
1316
|
-
* class Logger extends
|
|
1360
|
+
* class Logger extends Context.Service<Logger, {
|
|
1317
1361
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1318
1362
|
* }>()("Logger") {}
|
|
1319
1363
|
*
|
|
1320
1364
|
* // Create dependency layers
|
|
1321
1365
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1322
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1366
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1323
1367
|
* })
|
|
1324
1368
|
*
|
|
1325
1369
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1326
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1370
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1327
1371
|
* })
|
|
1328
1372
|
*
|
|
1329
1373
|
* // UserService depends on Database and Logger
|
|
@@ -1332,8 +1376,7 @@ export declare const provide: {
|
|
|
1332
1376
|
* const logger = yield* Logger
|
|
1333
1377
|
*
|
|
1334
1378
|
* return {
|
|
1335
|
-
* getUser: (id: string)
|
|
1336
|
-
* Effect.gen(function*() {
|
|
1379
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1337
1380
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1338
1381
|
* const result = yield* database.query(
|
|
1339
1382
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1368,30 +1411,30 @@ export declare const provide: {
|
|
|
1368
1411
|
*
|
|
1369
1412
|
* @example
|
|
1370
1413
|
* ```ts
|
|
1371
|
-
* import { Effect, Layer,
|
|
1414
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1372
1415
|
*
|
|
1373
|
-
* class Database extends
|
|
1416
|
+
* class Database extends Context.Service<Database, {
|
|
1374
1417
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1375
1418
|
* }>()("Database") {}
|
|
1376
1419
|
*
|
|
1377
|
-
* class UserService extends
|
|
1420
|
+
* class UserService extends Context.Service<UserService, {
|
|
1378
1421
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1379
1422
|
* id: string
|
|
1380
1423
|
* name: string
|
|
1381
1424
|
* }>
|
|
1382
1425
|
* }>()("UserService") {}
|
|
1383
1426
|
*
|
|
1384
|
-
* class Logger extends
|
|
1427
|
+
* class Logger extends Context.Service<Logger, {
|
|
1385
1428
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1386
1429
|
* }>()("Logger") {}
|
|
1387
1430
|
*
|
|
1388
1431
|
* // Create dependency layers
|
|
1389
1432
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1390
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1433
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1391
1434
|
* })
|
|
1392
1435
|
*
|
|
1393
1436
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1394
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1437
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1395
1438
|
* })
|
|
1396
1439
|
*
|
|
1397
1440
|
* // UserService depends on Database and Logger
|
|
@@ -1400,8 +1443,7 @@ export declare const provide: {
|
|
|
1400
1443
|
* const logger = yield* Logger
|
|
1401
1444
|
*
|
|
1402
1445
|
* return {
|
|
1403
|
-
* getUser: (id: string)
|
|
1404
|
-
* Effect.gen(function*() {
|
|
1446
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1405
1447
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1406
1448
|
* const result = yield* database.query(
|
|
1407
1449
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1436,30 +1478,30 @@ export declare const provide: {
|
|
|
1436
1478
|
*
|
|
1437
1479
|
* @example
|
|
1438
1480
|
* ```ts
|
|
1439
|
-
* import { Effect, Layer,
|
|
1481
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1440
1482
|
*
|
|
1441
|
-
* class Database extends
|
|
1483
|
+
* class Database extends Context.Service<Database, {
|
|
1442
1484
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1443
1485
|
* }>()("Database") {}
|
|
1444
1486
|
*
|
|
1445
|
-
* class UserService extends
|
|
1487
|
+
* class UserService extends Context.Service<UserService, {
|
|
1446
1488
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1447
1489
|
* id: string
|
|
1448
1490
|
* name: string
|
|
1449
1491
|
* }>
|
|
1450
1492
|
* }>()("UserService") {}
|
|
1451
1493
|
*
|
|
1452
|
-
* class Logger extends
|
|
1494
|
+
* class Logger extends Context.Service<Logger, {
|
|
1453
1495
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1454
1496
|
* }>()("Logger") {}
|
|
1455
1497
|
*
|
|
1456
1498
|
* // Create dependency layers
|
|
1457
1499
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1458
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1500
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1459
1501
|
* })
|
|
1460
1502
|
*
|
|
1461
1503
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1462
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1504
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1463
1505
|
* })
|
|
1464
1506
|
*
|
|
1465
1507
|
* // UserService depends on Database and Logger
|
|
@@ -1468,8 +1510,7 @@ export declare const provide: {
|
|
|
1468
1510
|
* const logger = yield* Logger
|
|
1469
1511
|
*
|
|
1470
1512
|
* return {
|
|
1471
|
-
* getUser: (id: string)
|
|
1472
|
-
* Effect.gen(function*() {
|
|
1513
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1473
1514
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1474
1515
|
* const result = yield* database.query(
|
|
1475
1516
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1504,30 +1545,30 @@ export declare const provide: {
|
|
|
1504
1545
|
*
|
|
1505
1546
|
* @example
|
|
1506
1547
|
* ```ts
|
|
1507
|
-
* import { Effect, Layer,
|
|
1548
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1508
1549
|
*
|
|
1509
|
-
* class Database extends
|
|
1550
|
+
* class Database extends Context.Service<Database, {
|
|
1510
1551
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1511
1552
|
* }>()("Database") {}
|
|
1512
1553
|
*
|
|
1513
|
-
* class UserService extends
|
|
1554
|
+
* class UserService extends Context.Service<UserService, {
|
|
1514
1555
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1515
1556
|
* id: string
|
|
1516
1557
|
* name: string
|
|
1517
1558
|
* }>
|
|
1518
1559
|
* }>()("UserService") {}
|
|
1519
1560
|
*
|
|
1520
|
-
* class Logger extends
|
|
1561
|
+
* class Logger extends Context.Service<Logger, {
|
|
1521
1562
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1522
1563
|
* }>()("Logger") {}
|
|
1523
1564
|
*
|
|
1524
1565
|
* // Create dependency layers
|
|
1525
1566
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1526
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1567
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1527
1568
|
* })
|
|
1528
1569
|
*
|
|
1529
1570
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1530
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1571
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1531
1572
|
* })
|
|
1532
1573
|
*
|
|
1533
1574
|
* // UserService depends on Database and Logger
|
|
@@ -1536,8 +1577,7 @@ export declare const provide: {
|
|
|
1536
1577
|
* const logger = yield* Logger
|
|
1537
1578
|
*
|
|
1538
1579
|
* return {
|
|
1539
|
-
* getUser: (id: string)
|
|
1540
|
-
* Effect.gen(function*() {
|
|
1580
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1541
1581
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1542
1582
|
* const result = yield* database.query(
|
|
1543
1583
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1573,17 +1613,17 @@ export declare const provide: {
|
|
|
1573
1613
|
*
|
|
1574
1614
|
* @example
|
|
1575
1615
|
* ```ts
|
|
1576
|
-
* import { Effect, Layer,
|
|
1616
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1577
1617
|
*
|
|
1578
|
-
* class Database extends
|
|
1618
|
+
* class Database extends Context.Service<Database, {
|
|
1579
1619
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1580
1620
|
* }>()("Database") {}
|
|
1581
1621
|
*
|
|
1582
|
-
* class Logger extends
|
|
1622
|
+
* class Logger extends Context.Service<Logger, {
|
|
1583
1623
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1584
1624
|
* }>()("Logger") {}
|
|
1585
1625
|
*
|
|
1586
|
-
* class UserService extends
|
|
1626
|
+
* class UserService extends Context.Service<UserService, {
|
|
1587
1627
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1588
1628
|
* id: string
|
|
1589
1629
|
* name: string
|
|
@@ -1592,11 +1632,11 @@ export declare const provide: {
|
|
|
1592
1632
|
*
|
|
1593
1633
|
* // Create dependency layers
|
|
1594
1634
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1595
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1635
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1596
1636
|
* })
|
|
1597
1637
|
*
|
|
1598
1638
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1599
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1639
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1600
1640
|
* })
|
|
1601
1641
|
*
|
|
1602
1642
|
* // UserService depends on Database and Logger
|
|
@@ -1605,8 +1645,7 @@ export declare const provide: {
|
|
|
1605
1645
|
* const logger = yield* Logger
|
|
1606
1646
|
*
|
|
1607
1647
|
* return {
|
|
1608
|
-
* getUser: (id: string)
|
|
1609
|
-
* Effect.gen(function*() {
|
|
1648
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1610
1649
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1611
1650
|
* const result = yield* database.query(
|
|
1612
1651
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1647,17 +1686,17 @@ export declare const provideMerge: {
|
|
|
1647
1686
|
*
|
|
1648
1687
|
* @example
|
|
1649
1688
|
* ```ts
|
|
1650
|
-
* import { Effect, Layer,
|
|
1689
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1651
1690
|
*
|
|
1652
|
-
* class Database extends
|
|
1691
|
+
* class Database extends Context.Service<Database, {
|
|
1653
1692
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1654
1693
|
* }>()("Database") {}
|
|
1655
1694
|
*
|
|
1656
|
-
* class Logger extends
|
|
1695
|
+
* class Logger extends Context.Service<Logger, {
|
|
1657
1696
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1658
1697
|
* }>()("Logger") {}
|
|
1659
1698
|
*
|
|
1660
|
-
* class UserService extends
|
|
1699
|
+
* class UserService extends Context.Service<UserService, {
|
|
1661
1700
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1662
1701
|
* id: string
|
|
1663
1702
|
* name: string
|
|
@@ -1666,11 +1705,11 @@ export declare const provideMerge: {
|
|
|
1666
1705
|
*
|
|
1667
1706
|
* // Create dependency layers
|
|
1668
1707
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1669
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1708
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1670
1709
|
* })
|
|
1671
1710
|
*
|
|
1672
1711
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1673
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1712
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1674
1713
|
* })
|
|
1675
1714
|
*
|
|
1676
1715
|
* // UserService depends on Database and Logger
|
|
@@ -1679,8 +1718,7 @@ export declare const provideMerge: {
|
|
|
1679
1718
|
* const logger = yield* Logger
|
|
1680
1719
|
*
|
|
1681
1720
|
* return {
|
|
1682
|
-
* getUser: (id: string)
|
|
1683
|
-
* Effect.gen(function*() {
|
|
1721
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1684
1722
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1685
1723
|
* const result = yield* database.query(
|
|
1686
1724
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1721,17 +1759,17 @@ export declare const provideMerge: {
|
|
|
1721
1759
|
*
|
|
1722
1760
|
* @example
|
|
1723
1761
|
* ```ts
|
|
1724
|
-
* import { Effect, Layer,
|
|
1762
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1725
1763
|
*
|
|
1726
|
-
* class Database extends
|
|
1764
|
+
* class Database extends Context.Service<Database, {
|
|
1727
1765
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1728
1766
|
* }>()("Database") {}
|
|
1729
1767
|
*
|
|
1730
|
-
* class Logger extends
|
|
1768
|
+
* class Logger extends Context.Service<Logger, {
|
|
1731
1769
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1732
1770
|
* }>()("Logger") {}
|
|
1733
1771
|
*
|
|
1734
|
-
* class UserService extends
|
|
1772
|
+
* class UserService extends Context.Service<UserService, {
|
|
1735
1773
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1736
1774
|
* id: string
|
|
1737
1775
|
* name: string
|
|
@@ -1740,11 +1778,11 @@ export declare const provideMerge: {
|
|
|
1740
1778
|
*
|
|
1741
1779
|
* // Create dependency layers
|
|
1742
1780
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1743
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1781
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1744
1782
|
* })
|
|
1745
1783
|
*
|
|
1746
1784
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1747
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1785
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1748
1786
|
* })
|
|
1749
1787
|
*
|
|
1750
1788
|
* // UserService depends on Database and Logger
|
|
@@ -1753,8 +1791,7 @@ export declare const provideMerge: {
|
|
|
1753
1791
|
* const logger = yield* Logger
|
|
1754
1792
|
*
|
|
1755
1793
|
* return {
|
|
1756
|
-
* getUser: (id: string)
|
|
1757
|
-
* Effect.gen(function*() {
|
|
1794
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1758
1795
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1759
1796
|
* const result = yield* database.query(
|
|
1760
1797
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1795,17 +1832,17 @@ export declare const provideMerge: {
|
|
|
1795
1832
|
*
|
|
1796
1833
|
* @example
|
|
1797
1834
|
* ```ts
|
|
1798
|
-
* import { Effect, Layer,
|
|
1835
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1799
1836
|
*
|
|
1800
|
-
* class Database extends
|
|
1837
|
+
* class Database extends Context.Service<Database, {
|
|
1801
1838
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1802
1839
|
* }>()("Database") {}
|
|
1803
1840
|
*
|
|
1804
|
-
* class Logger extends
|
|
1841
|
+
* class Logger extends Context.Service<Logger, {
|
|
1805
1842
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1806
1843
|
* }>()("Logger") {}
|
|
1807
1844
|
*
|
|
1808
|
-
* class UserService extends
|
|
1845
|
+
* class UserService extends Context.Service<UserService, {
|
|
1809
1846
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1810
1847
|
* id: string
|
|
1811
1848
|
* name: string
|
|
@@ -1814,11 +1851,11 @@ export declare const provideMerge: {
|
|
|
1814
1851
|
*
|
|
1815
1852
|
* // Create dependency layers
|
|
1816
1853
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1817
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1854
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1818
1855
|
* })
|
|
1819
1856
|
*
|
|
1820
1857
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1821
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1858
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1822
1859
|
* })
|
|
1823
1860
|
*
|
|
1824
1861
|
* // UserService depends on Database and Logger
|
|
@@ -1827,8 +1864,7 @@ export declare const provideMerge: {
|
|
|
1827
1864
|
* const logger = yield* Logger
|
|
1828
1865
|
*
|
|
1829
1866
|
* return {
|
|
1830
|
-
* getUser: (id: string)
|
|
1831
|
-
* Effect.gen(function*() {
|
|
1867
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1832
1868
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1833
1869
|
* const result = yield* database.query(
|
|
1834
1870
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1869,17 +1905,17 @@ export declare const provideMerge: {
|
|
|
1869
1905
|
*
|
|
1870
1906
|
* @example
|
|
1871
1907
|
* ```ts
|
|
1872
|
-
* import { Effect, Layer,
|
|
1908
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1873
1909
|
*
|
|
1874
|
-
* class Database extends
|
|
1910
|
+
* class Database extends Context.Service<Database, {
|
|
1875
1911
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1876
1912
|
* }>()("Database") {}
|
|
1877
1913
|
*
|
|
1878
|
-
* class Logger extends
|
|
1914
|
+
* class Logger extends Context.Service<Logger, {
|
|
1879
1915
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1880
1916
|
* }>()("Logger") {}
|
|
1881
1917
|
*
|
|
1882
|
-
* class UserService extends
|
|
1918
|
+
* class UserService extends Context.Service<UserService, {
|
|
1883
1919
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1884
1920
|
* id: string
|
|
1885
1921
|
* name: string
|
|
@@ -1888,11 +1924,11 @@ export declare const provideMerge: {
|
|
|
1888
1924
|
*
|
|
1889
1925
|
* // Create dependency layers
|
|
1890
1926
|
* const databaseLayer = Layer.succeed(Database)({
|
|
1891
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
1927
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
1892
1928
|
* })
|
|
1893
1929
|
*
|
|
1894
1930
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1895
|
-
* log: (msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`))
|
|
1931
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(`[LOG] ${msg}`)))
|
|
1896
1932
|
* })
|
|
1897
1933
|
*
|
|
1898
1934
|
* // UserService depends on Database and Logger
|
|
@@ -1901,8 +1937,7 @@ export declare const provideMerge: {
|
|
|
1901
1937
|
* const logger = yield* Logger
|
|
1902
1938
|
*
|
|
1903
1939
|
* return {
|
|
1904
|
-
* getUser: (id: string)
|
|
1905
|
-
* Effect.gen(function*() {
|
|
1940
|
+
* getUser: Effect.fn("UserService.getUser")(function*(id: string) {
|
|
1906
1941
|
* yield* logger.log(`Looking up user ${id}`)
|
|
1907
1942
|
* const result = yield* database.query(
|
|
1908
1943
|
* `SELECT * FROM users WHERE id = ${id}`
|
|
@@ -1942,18 +1977,18 @@ export declare const provideMerge: {
|
|
|
1942
1977
|
*
|
|
1943
1978
|
* @example
|
|
1944
1979
|
* ```ts
|
|
1945
|
-
* import { Effect, Layer,
|
|
1980
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1946
1981
|
*
|
|
1947
|
-
* class Config extends
|
|
1982
|
+
* class Config extends Context.Service<Config, {
|
|
1948
1983
|
* readonly dbUrl: string
|
|
1949
1984
|
* readonly logLevel: string
|
|
1950
1985
|
* }>()("Config") {}
|
|
1951
1986
|
*
|
|
1952
|
-
* class Database extends
|
|
1987
|
+
* class Database extends Context.Service<Database, {
|
|
1953
1988
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1954
1989
|
* }>()("Database") {}
|
|
1955
1990
|
*
|
|
1956
|
-
* class Logger extends
|
|
1991
|
+
* class Logger extends Context.Service<Logger, {
|
|
1957
1992
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1958
1993
|
* }>()("Logger") {}
|
|
1959
1994
|
*
|
|
@@ -1965,23 +2000,24 @@ export declare const provideMerge: {
|
|
|
1965
2000
|
*
|
|
1966
2001
|
* // Dynamically create services based on config
|
|
1967
2002
|
* const dynamicServiceLayer = configLayer.pipe(
|
|
1968
|
-
* Layer.flatMap((
|
|
1969
|
-
* const config =
|
|
2003
|
+
* Layer.flatMap((context) => {
|
|
2004
|
+
* const config = Context.get(context, Config)
|
|
1970
2005
|
*
|
|
1971
2006
|
* // Create database layer based on config
|
|
1972
2007
|
* const dbLayer = Layer.succeed(Database)({
|
|
1973
|
-
* query: (sql: string) =>
|
|
2008
|
+
* query: Effect.fn("Database.query")((sql: string) =>
|
|
1974
2009
|
* Effect.succeed(
|
|
1975
2010
|
* `Querying ${config.dbUrl}: ${sql}`
|
|
1976
|
-
* )
|
|
2011
|
+
* ))
|
|
1977
2012
|
* })
|
|
1978
2013
|
*
|
|
1979
2014
|
* // Create logger layer based on config
|
|
1980
2015
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
1981
|
-
* log: (msg: string) =>
|
|
2016
|
+
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
1982
2017
|
* config.logLevel === "debug"
|
|
1983
2018
|
* ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
|
|
1984
2019
|
* : Effect.sync(() => console.log(msg))
|
|
2020
|
+
* )
|
|
1985
2021
|
* })
|
|
1986
2022
|
*
|
|
1987
2023
|
* // Return combined layer
|
|
@@ -2012,18 +2048,18 @@ export declare const flatMap: {
|
|
|
2012
2048
|
*
|
|
2013
2049
|
* @example
|
|
2014
2050
|
* ```ts
|
|
2015
|
-
* import { Effect, Layer,
|
|
2051
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2016
2052
|
*
|
|
2017
|
-
* class Config extends
|
|
2053
|
+
* class Config extends Context.Service<Config, {
|
|
2018
2054
|
* readonly dbUrl: string
|
|
2019
2055
|
* readonly logLevel: string
|
|
2020
2056
|
* }>()("Config") {}
|
|
2021
2057
|
*
|
|
2022
|
-
* class Database extends
|
|
2058
|
+
* class Database extends Context.Service<Database, {
|
|
2023
2059
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2024
2060
|
* }>()("Database") {}
|
|
2025
2061
|
*
|
|
2026
|
-
* class Logger extends
|
|
2062
|
+
* class Logger extends Context.Service<Logger, {
|
|
2027
2063
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2028
2064
|
* }>()("Logger") {}
|
|
2029
2065
|
*
|
|
@@ -2035,23 +2071,24 @@ export declare const flatMap: {
|
|
|
2035
2071
|
*
|
|
2036
2072
|
* // Dynamically create services based on config
|
|
2037
2073
|
* const dynamicServiceLayer = configLayer.pipe(
|
|
2038
|
-
* Layer.flatMap((
|
|
2039
|
-
* const config =
|
|
2074
|
+
* Layer.flatMap((context) => {
|
|
2075
|
+
* const config = Context.get(context, Config)
|
|
2040
2076
|
*
|
|
2041
2077
|
* // Create database layer based on config
|
|
2042
2078
|
* const dbLayer = Layer.succeed(Database)({
|
|
2043
|
-
* query: (sql: string) =>
|
|
2079
|
+
* query: Effect.fn("Database.query")((sql: string) =>
|
|
2044
2080
|
* Effect.succeed(
|
|
2045
2081
|
* `Querying ${config.dbUrl}: ${sql}`
|
|
2046
|
-
* )
|
|
2082
|
+
* ))
|
|
2047
2083
|
* })
|
|
2048
2084
|
*
|
|
2049
2085
|
* // Create logger layer based on config
|
|
2050
2086
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
2051
|
-
* log: (msg: string) =>
|
|
2087
|
+
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2052
2088
|
* config.logLevel === "debug"
|
|
2053
2089
|
* ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
|
|
2054
2090
|
* : Effect.sync(() => console.log(msg))
|
|
2091
|
+
* )
|
|
2055
2092
|
* })
|
|
2056
2093
|
*
|
|
2057
2094
|
* // Return combined layer
|
|
@@ -2076,24 +2113,24 @@ export declare const flatMap: {
|
|
|
2076
2113
|
* @since 2.0.0
|
|
2077
2114
|
* @category sequencing
|
|
2078
2115
|
*/
|
|
2079
|
-
<A, A2, E2, R2>(f: (context:
|
|
2116
|
+
<A, A2, E2, R2>(f: (context: Context.Context<A>) => Layer<A2, E2, R2>): <E, R>(self: Layer<A, E, R>) => Layer<A2, E2 | E, R2 | R>;
|
|
2080
2117
|
/**
|
|
2081
2118
|
* Constructs a layer dynamically based on the output of this layer.
|
|
2082
2119
|
*
|
|
2083
2120
|
* @example
|
|
2084
2121
|
* ```ts
|
|
2085
|
-
* import { Effect, Layer,
|
|
2122
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2086
2123
|
*
|
|
2087
|
-
* class Config extends
|
|
2124
|
+
* class Config extends Context.Service<Config, {
|
|
2088
2125
|
* readonly dbUrl: string
|
|
2089
2126
|
* readonly logLevel: string
|
|
2090
2127
|
* }>()("Config") {}
|
|
2091
2128
|
*
|
|
2092
|
-
* class Database extends
|
|
2129
|
+
* class Database extends Context.Service<Database, {
|
|
2093
2130
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2094
2131
|
* }>()("Database") {}
|
|
2095
2132
|
*
|
|
2096
|
-
* class Logger extends
|
|
2133
|
+
* class Logger extends Context.Service<Logger, {
|
|
2097
2134
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2098
2135
|
* }>()("Logger") {}
|
|
2099
2136
|
*
|
|
@@ -2105,23 +2142,24 @@ export declare const flatMap: {
|
|
|
2105
2142
|
*
|
|
2106
2143
|
* // Dynamically create services based on config
|
|
2107
2144
|
* const dynamicServiceLayer = configLayer.pipe(
|
|
2108
|
-
* Layer.flatMap((
|
|
2109
|
-
* const config =
|
|
2145
|
+
* Layer.flatMap((context) => {
|
|
2146
|
+
* const config = Context.get(context, Config)
|
|
2110
2147
|
*
|
|
2111
2148
|
* // Create database layer based on config
|
|
2112
2149
|
* const dbLayer = Layer.succeed(Database)({
|
|
2113
|
-
* query: (sql: string) =>
|
|
2150
|
+
* query: Effect.fn("Database.query")((sql: string) =>
|
|
2114
2151
|
* Effect.succeed(
|
|
2115
2152
|
* `Querying ${config.dbUrl}: ${sql}`
|
|
2116
|
-
* )
|
|
2153
|
+
* ))
|
|
2117
2154
|
* })
|
|
2118
2155
|
*
|
|
2119
2156
|
* // Create logger layer based on config
|
|
2120
2157
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
2121
|
-
* log: (msg: string) =>
|
|
2158
|
+
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2122
2159
|
* config.logLevel === "debug"
|
|
2123
2160
|
* ? Effect.sync(() => console.log(`[DEBUG] ${msg}`))
|
|
2124
2161
|
* : Effect.sync(() => console.log(msg))
|
|
2162
|
+
* )
|
|
2125
2163
|
* })
|
|
2126
2164
|
*
|
|
2127
2165
|
* // Return combined layer
|
|
@@ -2146,7 +2184,91 @@ export declare const flatMap: {
|
|
|
2146
2184
|
* @since 2.0.0
|
|
2147
2185
|
* @category sequencing
|
|
2148
2186
|
*/
|
|
2149
|
-
<A, E, R, A2, E2, R2>(self: Layer<A, E, R>, f: (context:
|
|
2187
|
+
<A, E, R, A2, E2, R2>(self: Layer<A, E, R>, f: (context: Context.Context<A>) => Layer<A2, E2, R2>): Layer<A2, E | E2, R | R2>;
|
|
2188
|
+
};
|
|
2189
|
+
/**
|
|
2190
|
+
* Performs the specified effect if this layer succeeds.
|
|
2191
|
+
*
|
|
2192
|
+
* @since 4.0.0
|
|
2193
|
+
* @category sequencing
|
|
2194
|
+
*/
|
|
2195
|
+
export declare const tap: {
|
|
2196
|
+
/**
|
|
2197
|
+
* Performs the specified effect if this layer succeeds.
|
|
2198
|
+
*
|
|
2199
|
+
* @since 4.0.0
|
|
2200
|
+
* @category sequencing
|
|
2201
|
+
*/
|
|
2202
|
+
<ROut, XR extends ROut, RIn2, E2, X>(f: (context: Context.Context<XR>) => Effect<X, E2, RIn2>): <RIn, E>(self: Layer<ROut, E, RIn>) => Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>;
|
|
2203
|
+
/**
|
|
2204
|
+
* Performs the specified effect if this layer succeeds.
|
|
2205
|
+
*
|
|
2206
|
+
* @since 4.0.0
|
|
2207
|
+
* @category sequencing
|
|
2208
|
+
*/
|
|
2209
|
+
<RIn, E, ROut, XR extends ROut, RIn2, E2, X>(self: Layer<ROut, E, RIn>, f: (context: Context.Context<XR>) => Effect<X, E2, RIn2>): Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>;
|
|
2210
|
+
};
|
|
2211
|
+
/**
|
|
2212
|
+
* Performs the specified effect if this layer fails.
|
|
2213
|
+
*
|
|
2214
|
+
* @since 4.0.0
|
|
2215
|
+
* @category sequencing
|
|
2216
|
+
*/
|
|
2217
|
+
export declare const tapError: {
|
|
2218
|
+
/**
|
|
2219
|
+
* Performs the specified effect if this layer fails.
|
|
2220
|
+
*
|
|
2221
|
+
* @since 4.0.0
|
|
2222
|
+
* @category sequencing
|
|
2223
|
+
*/
|
|
2224
|
+
<E, XE extends E, RIn2, E2, X>(f: (e: XE) => Effect<X, E2, RIn2>): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>;
|
|
2225
|
+
/**
|
|
2226
|
+
* Performs the specified effect if this layer fails.
|
|
2227
|
+
*
|
|
2228
|
+
* @since 4.0.0
|
|
2229
|
+
* @category sequencing
|
|
2230
|
+
*/
|
|
2231
|
+
<RIn, E, XE extends E, ROut, RIn2, E2, X>(self: Layer<ROut, E, RIn>, f: (e: XE) => Effect<X, E2, RIn2>): Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>;
|
|
2232
|
+
};
|
|
2233
|
+
/**
|
|
2234
|
+
* Performs the specified effect if this layer fails.
|
|
2235
|
+
*
|
|
2236
|
+
* **Previously Known As**
|
|
2237
|
+
*
|
|
2238
|
+
* This API replaces the following from Effect 3.x:
|
|
2239
|
+
*
|
|
2240
|
+
* - `Layer.tapErrorCause`
|
|
2241
|
+
*
|
|
2242
|
+
* @since 4.0.0
|
|
2243
|
+
* @category sequencing
|
|
2244
|
+
*/
|
|
2245
|
+
export declare const tapCause: {
|
|
2246
|
+
/**
|
|
2247
|
+
* Performs the specified effect if this layer fails.
|
|
2248
|
+
*
|
|
2249
|
+
* **Previously Known As**
|
|
2250
|
+
*
|
|
2251
|
+
* This API replaces the following from Effect 3.x:
|
|
2252
|
+
*
|
|
2253
|
+
* - `Layer.tapErrorCause`
|
|
2254
|
+
*
|
|
2255
|
+
* @since 4.0.0
|
|
2256
|
+
* @category sequencing
|
|
2257
|
+
*/
|
|
2258
|
+
<E, XE extends E, RIn2, E2, X>(f: (cause: Cause.Cause<XE>) => Effect<X, E2, RIn2>): <RIn, ROut>(self: Layer<ROut, E, RIn>) => Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>;
|
|
2259
|
+
/**
|
|
2260
|
+
* Performs the specified effect if this layer fails.
|
|
2261
|
+
*
|
|
2262
|
+
* **Previously Known As**
|
|
2263
|
+
*
|
|
2264
|
+
* This API replaces the following from Effect 3.x:
|
|
2265
|
+
*
|
|
2266
|
+
* - `Layer.tapErrorCause`
|
|
2267
|
+
*
|
|
2268
|
+
* @since 4.0.0
|
|
2269
|
+
* @category sequencing
|
|
2270
|
+
*/
|
|
2271
|
+
<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>>;
|
|
2150
2272
|
};
|
|
2151
2273
|
/**
|
|
2152
2274
|
* Translates effect failure into death of the fiber, making all failures
|
|
@@ -2154,13 +2276,13 @@ export declare const flatMap: {
|
|
|
2154
2276
|
*
|
|
2155
2277
|
* @example
|
|
2156
2278
|
* ```ts
|
|
2157
|
-
* import { Data, Effect, Layer,
|
|
2279
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2158
2280
|
*
|
|
2159
2281
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2160
2282
|
* message: string
|
|
2161
2283
|
* }> {}
|
|
2162
2284
|
*
|
|
2163
|
-
* class Database extends
|
|
2285
|
+
* class Database extends Context.Service<Database, {
|
|
2164
2286
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2165
2287
|
* }>()("Database") {}
|
|
2166
2288
|
*
|
|
@@ -2169,10 +2291,10 @@ export declare const flatMap: {
|
|
|
2169
2291
|
* // Simulate a database connection that might fail
|
|
2170
2292
|
* const shouldFail = Math.random() > 0.5
|
|
2171
2293
|
* if (shouldFail) {
|
|
2172
|
-
* yield*
|
|
2294
|
+
* return yield* new DatabaseError({ message: "Connection failed" })
|
|
2173
2295
|
* }
|
|
2174
2296
|
*
|
|
2175
|
-
* return { query: (sql: string) => Effect.succeed(`Result: ${sql}`) }
|
|
2297
|
+
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`)) }
|
|
2176
2298
|
* }))
|
|
2177
2299
|
*
|
|
2178
2300
|
* // Convert failures to fiber death - removes error from type
|
|
@@ -2211,11 +2333,11 @@ catch_ as catch };
|
|
|
2211
2333
|
*
|
|
2212
2334
|
* @example
|
|
2213
2335
|
* ```ts
|
|
2214
|
-
* import { Data, Effect, Layer,
|
|
2336
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2215
2337
|
*
|
|
2216
2338
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
2217
2339
|
*
|
|
2218
|
-
* class Config extends
|
|
2340
|
+
* class Config extends Context.Service<Config, {
|
|
2219
2341
|
* readonly apiUrl: string
|
|
2220
2342
|
* }>()("Config") {}
|
|
2221
2343
|
*
|
|
@@ -2237,11 +2359,11 @@ export declare const catchTag: {
|
|
|
2237
2359
|
*
|
|
2238
2360
|
* @example
|
|
2239
2361
|
* ```ts
|
|
2240
|
-
* import { Data, Effect, Layer,
|
|
2362
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2241
2363
|
*
|
|
2242
2364
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
2243
2365
|
*
|
|
2244
|
-
* class Config extends
|
|
2366
|
+
* class Config extends Context.Service<Config, {
|
|
2245
2367
|
* readonly apiUrl: string
|
|
2246
2368
|
* }>()("Config") {}
|
|
2247
2369
|
*
|
|
@@ -2263,11 +2385,11 @@ export declare const catchTag: {
|
|
|
2263
2385
|
*
|
|
2264
2386
|
* @example
|
|
2265
2387
|
* ```ts
|
|
2266
|
-
* import { Data, Effect, Layer,
|
|
2388
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2267
2389
|
*
|
|
2268
2390
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
2269
2391
|
*
|
|
2270
|
-
* class Config extends
|
|
2392
|
+
* class Config extends Context.Service<Config, {
|
|
2271
2393
|
* readonly apiUrl: string
|
|
2272
2394
|
* }>()("Config") {}
|
|
2273
2395
|
*
|
|
@@ -2290,7 +2412,7 @@ export declare const catchTag: {
|
|
|
2290
2412
|
*
|
|
2291
2413
|
* @example
|
|
2292
2414
|
* ```ts
|
|
2293
|
-
* import { Data, Effect, Layer,
|
|
2415
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2294
2416
|
*
|
|
2295
2417
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2296
2418
|
* message: string
|
|
@@ -2300,18 +2422,18 @@ export declare const catchTag: {
|
|
|
2300
2422
|
* reason: string
|
|
2301
2423
|
* }> {}
|
|
2302
2424
|
*
|
|
2303
|
-
* class Database extends
|
|
2425
|
+
* class Database extends Context.Service<Database, {
|
|
2304
2426
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2305
2427
|
* }>()("Database") {}
|
|
2306
2428
|
*
|
|
2307
|
-
* class Logger extends
|
|
2429
|
+
* class Logger extends Context.Service<Logger, {
|
|
2308
2430
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2309
2431
|
* }>()("Logger") {}
|
|
2310
2432
|
*
|
|
2311
2433
|
* // Primary database layer that might fail
|
|
2312
2434
|
* const primaryDatabaseLayer = Layer.effect(Database)(Effect.gen(function*() {
|
|
2313
|
-
* yield*
|
|
2314
|
-
* return { query: (sql: string) => Effect.succeed(`Primary: ${sql}`) }
|
|
2435
|
+
* return yield* new DatabaseError({ message: "Primary DB unreachable" })
|
|
2436
|
+
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Primary: ${sql}`)) }
|
|
2315
2437
|
* }))
|
|
2316
2438
|
*
|
|
2317
2439
|
* // Fallback layers for different error causes
|
|
@@ -2320,11 +2442,12 @@ export declare const catchTag: {
|
|
|
2320
2442
|
* // For any cause/error, fallback to in-memory database
|
|
2321
2443
|
* return Layer.mergeAll(
|
|
2322
2444
|
* Layer.succeed(Database)({
|
|
2323
|
-
* query: (sql: string) => Effect.succeed(`Memory: ${sql}`)
|
|
2445
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
|
|
2324
2446
|
* }),
|
|
2325
2447
|
* Layer.succeed(Logger)({
|
|
2326
|
-
* log: (msg: string) =>
|
|
2448
|
+
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2327
2449
|
* Effect.sync(() => console.log(`[FALLBACK] ${msg}`))
|
|
2450
|
+
* )
|
|
2328
2451
|
* })
|
|
2329
2452
|
* )
|
|
2330
2453
|
* })
|
|
@@ -2347,7 +2470,7 @@ export declare const catchCause: {
|
|
|
2347
2470
|
*
|
|
2348
2471
|
* @example
|
|
2349
2472
|
* ```ts
|
|
2350
|
-
* import { Data, Effect, Layer,
|
|
2473
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2351
2474
|
*
|
|
2352
2475
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2353
2476
|
* message: string
|
|
@@ -2357,18 +2480,18 @@ export declare const catchCause: {
|
|
|
2357
2480
|
* reason: string
|
|
2358
2481
|
* }> {}
|
|
2359
2482
|
*
|
|
2360
|
-
* class Database extends
|
|
2483
|
+
* class Database extends Context.Service<Database, {
|
|
2361
2484
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2362
2485
|
* }>()("Database") {}
|
|
2363
2486
|
*
|
|
2364
|
-
* class Logger extends
|
|
2487
|
+
* class Logger extends Context.Service<Logger, {
|
|
2365
2488
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2366
2489
|
* }>()("Logger") {}
|
|
2367
2490
|
*
|
|
2368
2491
|
* // Primary database layer that might fail
|
|
2369
2492
|
* const primaryDatabaseLayer = Layer.effect(Database)(Effect.gen(function*() {
|
|
2370
|
-
* yield*
|
|
2371
|
-
* return { query: (sql: string) => Effect.succeed(`Primary: ${sql}`) }
|
|
2493
|
+
* return yield* new DatabaseError({ message: "Primary DB unreachable" })
|
|
2494
|
+
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Primary: ${sql}`)) }
|
|
2372
2495
|
* }))
|
|
2373
2496
|
*
|
|
2374
2497
|
* // Fallback layers for different error causes
|
|
@@ -2377,11 +2500,12 @@ export declare const catchCause: {
|
|
|
2377
2500
|
* // For any cause/error, fallback to in-memory database
|
|
2378
2501
|
* return Layer.mergeAll(
|
|
2379
2502
|
* Layer.succeed(Database)({
|
|
2380
|
-
* query: (sql: string) => Effect.succeed(`Memory: ${sql}`)
|
|
2503
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
|
|
2381
2504
|
* }),
|
|
2382
2505
|
* Layer.succeed(Logger)({
|
|
2383
|
-
* log: (msg: string) =>
|
|
2506
|
+
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2384
2507
|
* Effect.sync(() => console.log(`[FALLBACK] ${msg}`))
|
|
2508
|
+
* )
|
|
2385
2509
|
* })
|
|
2386
2510
|
* )
|
|
2387
2511
|
* })
|
|
@@ -2404,7 +2528,7 @@ export declare const catchCause: {
|
|
|
2404
2528
|
*
|
|
2405
2529
|
* @example
|
|
2406
2530
|
* ```ts
|
|
2407
|
-
* import { Data, Effect, Layer,
|
|
2531
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2408
2532
|
*
|
|
2409
2533
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2410
2534
|
* message: string
|
|
@@ -2414,18 +2538,18 @@ export declare const catchCause: {
|
|
|
2414
2538
|
* reason: string
|
|
2415
2539
|
* }> {}
|
|
2416
2540
|
*
|
|
2417
|
-
* class Database extends
|
|
2541
|
+
* class Database extends Context.Service<Database, {
|
|
2418
2542
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2419
2543
|
* }>()("Database") {}
|
|
2420
2544
|
*
|
|
2421
|
-
* class Logger extends
|
|
2545
|
+
* class Logger extends Context.Service<Logger, {
|
|
2422
2546
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2423
2547
|
* }>()("Logger") {}
|
|
2424
2548
|
*
|
|
2425
2549
|
* // Primary database layer that might fail
|
|
2426
2550
|
* const primaryDatabaseLayer = Layer.effect(Database)(Effect.gen(function*() {
|
|
2427
|
-
* yield*
|
|
2428
|
-
* return { query: (sql: string) => Effect.succeed(`Primary: ${sql}`) }
|
|
2551
|
+
* return yield* new DatabaseError({ message: "Primary DB unreachable" })
|
|
2552
|
+
* return { query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Primary: ${sql}`)) }
|
|
2429
2553
|
* }))
|
|
2430
2554
|
*
|
|
2431
2555
|
* // Fallback layers for different error causes
|
|
@@ -2434,11 +2558,12 @@ export declare const catchCause: {
|
|
|
2434
2558
|
* // For any cause/error, fallback to in-memory database
|
|
2435
2559
|
* return Layer.mergeAll(
|
|
2436
2560
|
* Layer.succeed(Database)({
|
|
2437
|
-
* query: (sql: string) => Effect.succeed(`Memory: ${sql}`)
|
|
2561
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Memory: ${sql}`))
|
|
2438
2562
|
* }),
|
|
2439
2563
|
* Layer.succeed(Logger)({
|
|
2440
|
-
* log: (msg: string) =>
|
|
2564
|
+
* log: Effect.fn("Logger.log")((msg: string) =>
|
|
2441
2565
|
* Effect.sync(() => console.log(`[FALLBACK] ${msg}`))
|
|
2566
|
+
* )
|
|
2442
2567
|
* })
|
|
2443
2568
|
* )
|
|
2444
2569
|
* })
|
|
@@ -2494,7 +2619,7 @@ export declare const updateService: {
|
|
|
2494
2619
|
* @since 3.13.0
|
|
2495
2620
|
* @category utils
|
|
2496
2621
|
*/
|
|
2497
|
-
<I, A>(service:
|
|
2622
|
+
<I, A>(service: Context.Key<I, A>, f: (a: Types.NoInfer<A>) => A): <A1, E1, R1>(layer: Layer<A1, E1, R1>) => Layer<A1, E1, I | R1>;
|
|
2498
2623
|
/**
|
|
2499
2624
|
* Updates a service in the context with a new implementation.
|
|
2500
2625
|
*
|
|
@@ -2513,16 +2638,16 @@ export declare const updateService: {
|
|
|
2513
2638
|
* @since 3.13.0
|
|
2514
2639
|
* @category utils
|
|
2515
2640
|
*/
|
|
2516
|
-
<A1, E1, R1, I, A>(layer: Layer<A1, E1, R1>, service:
|
|
2641
|
+
<A1, E1, R1, I, A>(layer: Layer<A1, E1, R1>, service: Context.Key<I, A>, f: (a: Types.NoInfer<A>) => A): Layer<A1, E1, I | R1>;
|
|
2517
2642
|
};
|
|
2518
2643
|
/**
|
|
2519
2644
|
* Creates a fresh version of this layer that will not be shared.
|
|
2520
2645
|
*
|
|
2521
2646
|
* @example
|
|
2522
2647
|
* ```ts
|
|
2523
|
-
* import { Effect, Layer, Ref,
|
|
2648
|
+
* import { Effect, Layer, Ref, Context } from "effect"
|
|
2524
2649
|
*
|
|
2525
|
-
* class Counter extends
|
|
2650
|
+
* class Counter extends Context.Service<Counter, {
|
|
2526
2651
|
* readonly count: number
|
|
2527
2652
|
* readonly increment: () => Effect.Effect<number>
|
|
2528
2653
|
* }>()("Counter") {}
|
|
@@ -2532,10 +2657,11 @@ export declare const updateService: {
|
|
|
2532
2657
|
* const ref = yield* Ref.make(0)
|
|
2533
2658
|
* return {
|
|
2534
2659
|
* count: 0,
|
|
2535
|
-
* increment: () =>
|
|
2660
|
+
* increment: Effect.fn("Counter.increment")(() =>
|
|
2536
2661
|
* Ref.update(ref, (n) => n + 1).pipe(
|
|
2537
2662
|
* Effect.flatMap(() => Ref.get(ref))
|
|
2538
2663
|
* )
|
|
2664
|
+
* )
|
|
2539
2665
|
* }
|
|
2540
2666
|
* }))
|
|
2541
2667
|
*
|
|
@@ -2572,14 +2698,14 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
|
|
|
2572
2698
|
*
|
|
2573
2699
|
* @example
|
|
2574
2700
|
* ```ts
|
|
2575
|
-
* import { Console, Effect, Layer,
|
|
2701
|
+
* import { Console, Effect, Layer, Context } from "effect"
|
|
2576
2702
|
*
|
|
2577
|
-
* class HttpServer extends
|
|
2703
|
+
* class HttpServer extends Context.Service<HttpServer, {
|
|
2578
2704
|
* readonly start: () => Effect.Effect<string>
|
|
2579
2705
|
* readonly stop: () => Effect.Effect<string>
|
|
2580
2706
|
* }>()("HttpServer") {}
|
|
2581
2707
|
*
|
|
2582
|
-
* class Logger extends
|
|
2708
|
+
* class Logger extends Context.Service<Logger, {
|
|
2583
2709
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2584
2710
|
* }>()("Logger") {}
|
|
2585
2711
|
*
|
|
@@ -2588,13 +2714,11 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
|
|
|
2588
2714
|
* yield* Console.log("Starting HTTP server...")
|
|
2589
2715
|
*
|
|
2590
2716
|
* return {
|
|
2591
|
-
* start: ()
|
|
2592
|
-
* Effect.gen(function*() {
|
|
2717
|
+
* start: Effect.fn("HttpServer.start")(function*() {
|
|
2593
2718
|
* yield* Console.log("Server listening on port 3000")
|
|
2594
2719
|
* return "Server started"
|
|
2595
2720
|
* }),
|
|
2596
|
-
* stop: ()
|
|
2597
|
-
* Effect.gen(function*() {
|
|
2721
|
+
* stop: Effect.fn("HttpServer.stop")(function*() {
|
|
2598
2722
|
* yield* Console.log("Server stopped gracefully")
|
|
2599
2723
|
* return "Server stopped"
|
|
2600
2724
|
* })
|
|
@@ -2602,7 +2726,7 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
|
|
|
2602
2726
|
* }))
|
|
2603
2727
|
*
|
|
2604
2728
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
2605
|
-
* log: (msg: string) => Console.log(`[LOG] ${msg}`)
|
|
2729
|
+
* log: Effect.fn("Logger.log")((msg: string) => Console.log(`[LOG] ${msg}`))
|
|
2606
2730
|
* })
|
|
2607
2731
|
*
|
|
2608
2732
|
* // Application layer combining all services
|
|
@@ -2634,10 +2758,11 @@ export declare const launch: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect
|
|
|
2634
2758
|
* @category Testing
|
|
2635
2759
|
*/
|
|
2636
2760
|
export type PartialEffectful<A extends object> = Types.Simplify<{
|
|
2637
|
-
[K in keyof A as A[K] extends
|
|
2761
|
+
[K in keyof A as A[K] extends AnyEffectOrStream ? K : never]?: A[K];
|
|
2638
2762
|
} & {
|
|
2639
|
-
[K in keyof A as A[K] extends
|
|
2763
|
+
[K in keyof A as A[K] extends AnyEffectOrStream ? never : K]: A[K];
|
|
2640
2764
|
}>;
|
|
2765
|
+
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>);
|
|
2641
2766
|
/**
|
|
2642
2767
|
* Creates a mock layer for testing purposes. You can provide a partial
|
|
2643
2768
|
* implementation of the service, and any methods not provided will
|
|
@@ -2645,9 +2770,9 @@ export type PartialEffectful<A extends object> = Types.Simplify<{
|
|
|
2645
2770
|
*
|
|
2646
2771
|
* @example
|
|
2647
2772
|
* ```ts
|
|
2648
|
-
* import { Effect, Layer,
|
|
2773
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2649
2774
|
*
|
|
2650
|
-
* class UserService extends
|
|
2775
|
+
* class UserService extends Context.Service<UserService, {
|
|
2651
2776
|
* readonly config: { apiUrl: string }
|
|
2652
2777
|
* readonly getUser: (
|
|
2653
2778
|
* id: string
|
|
@@ -2660,7 +2785,7 @@ export type PartialEffectful<A extends object> = Types.Simplify<{
|
|
|
2660
2785
|
* }>()("UserService") {}
|
|
2661
2786
|
*
|
|
2662
2787
|
* // Create a partial mock - only implement what you need for testing
|
|
2663
|
-
* const testUserLayer = Layer.mock(UserService
|
|
2788
|
+
* const testUserLayer = Layer.mock(UserService, {
|
|
2664
2789
|
* config: { apiUrl: "https://test-api.com" }, // Required - non-Effect property
|
|
2665
2790
|
* getUser: (id: string) => Effect.succeed({ id, name: "Test User" }) // Mock implementation
|
|
2666
2791
|
* // deleteUser and updateUser are omitted - will throw UnimplementedError if called
|
|
@@ -2684,7 +2809,102 @@ export type PartialEffectful<A extends object> = Types.Simplify<{
|
|
|
2684
2809
|
* @since 4.0.0
|
|
2685
2810
|
* @category Testing
|
|
2686
2811
|
*/
|
|
2687
|
-
export declare const mock:
|
|
2812
|
+
export declare const mock: {
|
|
2813
|
+
/**
|
|
2814
|
+
* Creates a mock layer for testing purposes. You can provide a partial
|
|
2815
|
+
* implementation of the service, and any methods not provided will
|
|
2816
|
+
* throw an unimplemented defect when called.
|
|
2817
|
+
*
|
|
2818
|
+
* @example
|
|
2819
|
+
* ```ts
|
|
2820
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2821
|
+
*
|
|
2822
|
+
* class UserService extends Context.Service<UserService, {
|
|
2823
|
+
* readonly config: { apiUrl: string }
|
|
2824
|
+
* readonly getUser: (
|
|
2825
|
+
* id: string
|
|
2826
|
+
* ) => Effect.Effect<{ id: string; name: string }, Error>
|
|
2827
|
+
* readonly deleteUser: (id: string) => Effect.Effect<void, Error>
|
|
2828
|
+
* readonly updateUser: (
|
|
2829
|
+
* id: string,
|
|
2830
|
+
* data: object
|
|
2831
|
+
* ) => Effect.Effect<{ id: string; name: string }, Error>
|
|
2832
|
+
* }>()("UserService") {}
|
|
2833
|
+
*
|
|
2834
|
+
* // Create a partial mock - only implement what you need for testing
|
|
2835
|
+
* const testUserLayer = Layer.mock(UserService, {
|
|
2836
|
+
* config: { apiUrl: "https://test-api.com" }, // Required - non-Effect property
|
|
2837
|
+
* getUser: (id: string) => Effect.succeed({ id, name: "Test User" }) // Mock implementation
|
|
2838
|
+
* // deleteUser and updateUser are omitted - will throw UnimplementedError if called
|
|
2839
|
+
* })
|
|
2840
|
+
*
|
|
2841
|
+
* // Use in tests
|
|
2842
|
+
* const testProgram = Effect.gen(function*() {
|
|
2843
|
+
* const userService = yield* UserService
|
|
2844
|
+
*
|
|
2845
|
+
* // This works - we provided an implementation
|
|
2846
|
+
* const user = yield* userService.getUser("123")
|
|
2847
|
+
* console.log(user.name) // "Test User"
|
|
2848
|
+
*
|
|
2849
|
+
* // This would throw - we didn't implement deleteUser
|
|
2850
|
+
* // yield* userService.deleteUser("123") // UnimplementedError
|
|
2851
|
+
* }).pipe(
|
|
2852
|
+
* Effect.provide(testUserLayer)
|
|
2853
|
+
* )
|
|
2854
|
+
* ```
|
|
2855
|
+
*
|
|
2856
|
+
* @since 4.0.0
|
|
2857
|
+
* @category Testing
|
|
2858
|
+
*/
|
|
2859
|
+
<I, S extends object>(service: Context.Key<I, S>): (implementation: PartialEffectful<S>) => Layer<I>;
|
|
2860
|
+
/**
|
|
2861
|
+
* Creates a mock layer for testing purposes. You can provide a partial
|
|
2862
|
+
* implementation of the service, and any methods not provided will
|
|
2863
|
+
* throw an unimplemented defect when called.
|
|
2864
|
+
*
|
|
2865
|
+
* @example
|
|
2866
|
+
* ```ts
|
|
2867
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2868
|
+
*
|
|
2869
|
+
* class UserService extends Context.Service<UserService, {
|
|
2870
|
+
* readonly config: { apiUrl: string }
|
|
2871
|
+
* readonly getUser: (
|
|
2872
|
+
* id: string
|
|
2873
|
+
* ) => Effect.Effect<{ id: string; name: string }, Error>
|
|
2874
|
+
* readonly deleteUser: (id: string) => Effect.Effect<void, Error>
|
|
2875
|
+
* readonly updateUser: (
|
|
2876
|
+
* id: string,
|
|
2877
|
+
* data: object
|
|
2878
|
+
* ) => Effect.Effect<{ id: string; name: string }, Error>
|
|
2879
|
+
* }>()("UserService") {}
|
|
2880
|
+
*
|
|
2881
|
+
* // Create a partial mock - only implement what you need for testing
|
|
2882
|
+
* const testUserLayer = Layer.mock(UserService, {
|
|
2883
|
+
* config: { apiUrl: "https://test-api.com" }, // Required - non-Effect property
|
|
2884
|
+
* getUser: (id: string) => Effect.succeed({ id, name: "Test User" }) // Mock implementation
|
|
2885
|
+
* // deleteUser and updateUser are omitted - will throw UnimplementedError if called
|
|
2886
|
+
* })
|
|
2887
|
+
*
|
|
2888
|
+
* // Use in tests
|
|
2889
|
+
* const testProgram = Effect.gen(function*() {
|
|
2890
|
+
* const userService = yield* UserService
|
|
2891
|
+
*
|
|
2892
|
+
* // This works - we provided an implementation
|
|
2893
|
+
* const user = yield* userService.getUser("123")
|
|
2894
|
+
* console.log(user.name) // "Test User"
|
|
2895
|
+
*
|
|
2896
|
+
* // This would throw - we didn't implement deleteUser
|
|
2897
|
+
* // yield* userService.deleteUser("123") // UnimplementedError
|
|
2898
|
+
* }).pipe(
|
|
2899
|
+
* Effect.provide(testUserLayer)
|
|
2900
|
+
* )
|
|
2901
|
+
* ```
|
|
2902
|
+
*
|
|
2903
|
+
* @since 4.0.0
|
|
2904
|
+
* @category Testing
|
|
2905
|
+
*/
|
|
2906
|
+
<I, S extends object>(service: Context.Key<I, S>, implementation: Types.NoInfer<PartialEffectful<S>>): Layer<I>;
|
|
2907
|
+
};
|
|
2688
2908
|
/**
|
|
2689
2909
|
* Ensures that an layer's success type extends a given type `ROut`.
|
|
2690
2910
|
*
|
|
@@ -2797,9 +3017,9 @@ export interface SpanOptions extends Tracer.SpanOptions {
|
|
|
2797
3017
|
*
|
|
2798
3018
|
* @example
|
|
2799
3019
|
* ```ts
|
|
2800
|
-
* import { Console, Effect, Layer,
|
|
3020
|
+
* import { Console, Effect, Layer, Context, type Tracer } from "effect"
|
|
2801
3021
|
*
|
|
2802
|
-
* class Database extends
|
|
3022
|
+
* class Database extends Context.Service<Database, {
|
|
2803
3023
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2804
3024
|
* }>()("Database") {}
|
|
2805
3025
|
*
|
|
@@ -2815,7 +3035,7 @@ export interface SpanOptions extends Tracer.SpanOptions {
|
|
|
2815
3035
|
* yield* Console.log((parentSpan as Tracer.Span).name) // "database-init"
|
|
2816
3036
|
*
|
|
2817
3037
|
* return {
|
|
2818
|
-
* query: (sql: string) => Effect.succeed(`Result: ${sql}`)
|
|
3038
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
2819
3039
|
* }
|
|
2820
3040
|
* })).pipe(Layer.provide(Layer.span("database-init")))
|
|
2821
3041
|
*
|
|
@@ -2843,9 +3063,9 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
|
|
|
2843
3063
|
*
|
|
2844
3064
|
* @example
|
|
2845
3065
|
* ```ts
|
|
2846
|
-
* import { Console, Effect, Layer,
|
|
3066
|
+
* import { Console, Effect, Layer, Context, Tracer } from "effect"
|
|
2847
3067
|
*
|
|
2848
|
-
* class Database extends
|
|
3068
|
+
* class Database extends Context.Service<Database, {
|
|
2849
3069
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2850
3070
|
* }>()("Database") {}
|
|
2851
3071
|
*
|
|
@@ -2859,7 +3079,7 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
|
|
|
2859
3079
|
* yield* Console.log(parentSpan.spanId) // "42"
|
|
2860
3080
|
*
|
|
2861
3081
|
* return {
|
|
2862
|
-
* query: (sql: string) => Effect.succeed(`Result: ${sql}`)
|
|
3082
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
2863
3083
|
* }
|
|
2864
3084
|
* })
|
|
2865
3085
|
* ).pipe(Layer.provide(Layer.parentSpan(Tracer.externalSpan({
|
|
@@ -2882,13 +3102,13 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
|
|
|
2882
3102
|
*
|
|
2883
3103
|
* @example
|
|
2884
3104
|
* ```ts
|
|
2885
|
-
* import { Effect, Layer,
|
|
3105
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2886
3106
|
*
|
|
2887
|
-
* class Database extends
|
|
3107
|
+
* class Database extends Context.Service<Database, {
|
|
2888
3108
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2889
3109
|
* }>()("Database") {}
|
|
2890
3110
|
*
|
|
2891
|
-
* class Logger extends
|
|
3111
|
+
* class Logger extends Context.Service<Logger, {
|
|
2892
3112
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2893
3113
|
* }>()("Logger") {}
|
|
2894
3114
|
*
|
|
@@ -2897,14 +3117,14 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
|
|
|
2897
3117
|
* yield* Effect.log("Connecting to database")
|
|
2898
3118
|
* yield* Effect.sleep("100 millis")
|
|
2899
3119
|
* return {
|
|
2900
|
-
* query: (sql: string) => Effect.succeed(`Result: ${sql}`)
|
|
3120
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
2901
3121
|
* }
|
|
2902
3122
|
* })).pipe(Layer.withSpan("database-initialization", {
|
|
2903
3123
|
* attributes: { dbType: "postgres" }
|
|
2904
3124
|
* }))
|
|
2905
3125
|
*
|
|
2906
3126
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
2907
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
3127
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
2908
3128
|
* }).pipe(Layer.withSpan("logger-initialization"))
|
|
2909
3129
|
*
|
|
2910
3130
|
* // Combine traced layers
|
|
@@ -2941,13 +3161,13 @@ export declare const withSpan: {
|
|
|
2941
3161
|
*
|
|
2942
3162
|
* @example
|
|
2943
3163
|
* ```ts
|
|
2944
|
-
* import { Effect, Layer,
|
|
3164
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2945
3165
|
*
|
|
2946
|
-
* class Database extends
|
|
3166
|
+
* class Database extends Context.Service<Database, {
|
|
2947
3167
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2948
3168
|
* }>()("Database") {}
|
|
2949
3169
|
*
|
|
2950
|
-
* class Logger extends
|
|
3170
|
+
* class Logger extends Context.Service<Logger, {
|
|
2951
3171
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2952
3172
|
* }>()("Logger") {}
|
|
2953
3173
|
*
|
|
@@ -2956,14 +3176,14 @@ export declare const withSpan: {
|
|
|
2956
3176
|
* yield* Effect.log("Connecting to database")
|
|
2957
3177
|
* yield* Effect.sleep("100 millis")
|
|
2958
3178
|
* return {
|
|
2959
|
-
* query: (sql: string) => Effect.succeed(`Result: ${sql}`)
|
|
3179
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
2960
3180
|
* }
|
|
2961
3181
|
* })).pipe(Layer.withSpan("database-initialization", {
|
|
2962
3182
|
* attributes: { dbType: "postgres" }
|
|
2963
3183
|
* }))
|
|
2964
3184
|
*
|
|
2965
3185
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
2966
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
3186
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
2967
3187
|
* }).pipe(Layer.withSpan("logger-initialization"))
|
|
2968
3188
|
*
|
|
2969
3189
|
* // Combine traced layers
|
|
@@ -3000,13 +3220,13 @@ export declare const withSpan: {
|
|
|
3000
3220
|
*
|
|
3001
3221
|
* @example
|
|
3002
3222
|
* ```ts
|
|
3003
|
-
* import { Effect, Layer,
|
|
3223
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3004
3224
|
*
|
|
3005
|
-
* class Database extends
|
|
3225
|
+
* class Database extends Context.Service<Database, {
|
|
3006
3226
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3007
3227
|
* }>()("Database") {}
|
|
3008
3228
|
*
|
|
3009
|
-
* class Logger extends
|
|
3229
|
+
* class Logger extends Context.Service<Logger, {
|
|
3010
3230
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3011
3231
|
* }>()("Logger") {}
|
|
3012
3232
|
*
|
|
@@ -3015,14 +3235,14 @@ export declare const withSpan: {
|
|
|
3015
3235
|
* yield* Effect.log("Connecting to database")
|
|
3016
3236
|
* yield* Effect.sleep("100 millis")
|
|
3017
3237
|
* return {
|
|
3018
|
-
* query: (sql: string) => Effect.succeed(`Result: ${sql}`)
|
|
3238
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`Result: ${sql}`))
|
|
3019
3239
|
* }
|
|
3020
3240
|
* })).pipe(Layer.withSpan("database-initialization", {
|
|
3021
3241
|
* attributes: { dbType: "postgres" }
|
|
3022
3242
|
* }))
|
|
3023
3243
|
*
|
|
3024
3244
|
* const loggerLayer = Layer.succeed(Logger, {
|
|
3025
|
-
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
3245
|
+
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
3026
3246
|
* }).pipe(Layer.withSpan("logger-initialization"))
|
|
3027
3247
|
*
|
|
3028
3248
|
* // Combine traced layers
|
|
@@ -3059,13 +3279,13 @@ export declare const withSpan: {
|
|
|
3059
3279
|
*
|
|
3060
3280
|
* @example
|
|
3061
3281
|
* ```ts
|
|
3062
|
-
* import { Effect, Layer,
|
|
3282
|
+
* import { Effect, Layer, Context, Tracer } from "effect"
|
|
3063
3283
|
*
|
|
3064
|
-
* class Database extends
|
|
3284
|
+
* class Database extends Context.Service<Database, {
|
|
3065
3285
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3066
3286
|
* }>()("Database") {}
|
|
3067
3287
|
*
|
|
3068
|
-
* class Cache extends
|
|
3288
|
+
* class Cache extends Context.Service<Cache, {
|
|
3069
3289
|
* readonly get: (key: string) => Effect.Effect<string | null>
|
|
3070
3290
|
* }>()("Cache") {}
|
|
3071
3291
|
*
|
|
@@ -3073,14 +3293,14 @@ export declare const withSpan: {
|
|
|
3073
3293
|
* const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
3074
3294
|
* yield* Effect.log("Connecting to database")
|
|
3075
3295
|
* return {
|
|
3076
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
3296
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
3077
3297
|
* }
|
|
3078
3298
|
* }))
|
|
3079
3299
|
*
|
|
3080
3300
|
* const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
|
|
3081
3301
|
* yield* Effect.log("Connecting to cache")
|
|
3082
3302
|
* return {
|
|
3083
|
-
* get: (key: string) => Effect.succeed(`Cache: ${key}`)
|
|
3303
|
+
* get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
|
|
3084
3304
|
* }
|
|
3085
3305
|
* }))
|
|
3086
3306
|
*
|
|
@@ -3094,9 +3314,9 @@ export declare const withSpan: {
|
|
|
3094
3314
|
* Layer.withParentSpan(parentSpan)
|
|
3095
3315
|
* )
|
|
3096
3316
|
*
|
|
3097
|
-
* const
|
|
3098
|
-
* const database =
|
|
3099
|
-
* const cache =
|
|
3317
|
+
* const context = yield* Layer.build(AppLayer)
|
|
3318
|
+
* const database = Context.get(context, Database)
|
|
3319
|
+
* const cache = Context.get(context, Cache)
|
|
3100
3320
|
*
|
|
3101
3321
|
* const dbResult = yield* database.query("SELECT * FROM users")
|
|
3102
3322
|
* const cacheResult = yield* cache.get("user:123")
|
|
@@ -3119,13 +3339,13 @@ export declare const withParentSpan: {
|
|
|
3119
3339
|
*
|
|
3120
3340
|
* @example
|
|
3121
3341
|
* ```ts
|
|
3122
|
-
* import { Effect, Layer,
|
|
3342
|
+
* import { Effect, Layer, Context, Tracer } from "effect"
|
|
3123
3343
|
*
|
|
3124
|
-
* class Database extends
|
|
3344
|
+
* class Database extends Context.Service<Database, {
|
|
3125
3345
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3126
3346
|
* }>()("Database") {}
|
|
3127
3347
|
*
|
|
3128
|
-
* class Cache extends
|
|
3348
|
+
* class Cache extends Context.Service<Cache, {
|
|
3129
3349
|
* readonly get: (key: string) => Effect.Effect<string | null>
|
|
3130
3350
|
* }>()("Cache") {}
|
|
3131
3351
|
*
|
|
@@ -3133,14 +3353,14 @@ export declare const withParentSpan: {
|
|
|
3133
3353
|
* const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
3134
3354
|
* yield* Effect.log("Connecting to database")
|
|
3135
3355
|
* return {
|
|
3136
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
3356
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
3137
3357
|
* }
|
|
3138
3358
|
* }))
|
|
3139
3359
|
*
|
|
3140
3360
|
* const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
|
|
3141
3361
|
* yield* Effect.log("Connecting to cache")
|
|
3142
3362
|
* return {
|
|
3143
|
-
* get: (key: string) => Effect.succeed(`Cache: ${key}`)
|
|
3363
|
+
* get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
|
|
3144
3364
|
* }
|
|
3145
3365
|
* }))
|
|
3146
3366
|
*
|
|
@@ -3154,9 +3374,9 @@ export declare const withParentSpan: {
|
|
|
3154
3374
|
* Layer.withParentSpan(parentSpan)
|
|
3155
3375
|
* )
|
|
3156
3376
|
*
|
|
3157
|
-
* const
|
|
3158
|
-
* const database =
|
|
3159
|
-
* const cache =
|
|
3377
|
+
* const context = yield* Layer.build(AppLayer)
|
|
3378
|
+
* const database = Context.get(context, Database)
|
|
3379
|
+
* const cache = Context.get(context, Cache)
|
|
3160
3380
|
*
|
|
3161
3381
|
* const dbResult = yield* database.query("SELECT * FROM users")
|
|
3162
3382
|
* const cacheResult = yield* cache.get("user:123")
|
|
@@ -3179,13 +3399,13 @@ export declare const withParentSpan: {
|
|
|
3179
3399
|
*
|
|
3180
3400
|
* @example
|
|
3181
3401
|
* ```ts
|
|
3182
|
-
* import { Effect, Layer,
|
|
3402
|
+
* import { Effect, Layer, Context, Tracer } from "effect"
|
|
3183
3403
|
*
|
|
3184
|
-
* class Database extends
|
|
3404
|
+
* class Database extends Context.Service<Database, {
|
|
3185
3405
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3186
3406
|
* }>()("Database") {}
|
|
3187
3407
|
*
|
|
3188
|
-
* class Cache extends
|
|
3408
|
+
* class Cache extends Context.Service<Cache, {
|
|
3189
3409
|
* readonly get: (key: string) => Effect.Effect<string | null>
|
|
3190
3410
|
* }>()("Cache") {}
|
|
3191
3411
|
*
|
|
@@ -3193,14 +3413,14 @@ export declare const withParentSpan: {
|
|
|
3193
3413
|
* const DatabaseLayer = Layer.effect(Database, Effect.gen(function*() {
|
|
3194
3414
|
* yield* Effect.log("Connecting to database")
|
|
3195
3415
|
* return {
|
|
3196
|
-
* query: (sql: string) => Effect.succeed(`DB: ${sql}`)
|
|
3416
|
+
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed(`DB: ${sql}`))
|
|
3197
3417
|
* }
|
|
3198
3418
|
* }))
|
|
3199
3419
|
*
|
|
3200
3420
|
* const CacheLayer = Layer.effect(Cache, Effect.gen(function*() {
|
|
3201
3421
|
* yield* Effect.log("Connecting to cache")
|
|
3202
3422
|
* return {
|
|
3203
|
-
* get: (key: string) => Effect.succeed(`Cache: ${key}`)
|
|
3423
|
+
* get: Effect.fn("Cache.get")((key: string) => Effect.succeed(`Cache: ${key}`))
|
|
3204
3424
|
* }
|
|
3205
3425
|
* }))
|
|
3206
3426
|
*
|
|
@@ -3214,9 +3434,9 @@ export declare const withParentSpan: {
|
|
|
3214
3434
|
* Layer.withParentSpan(parentSpan)
|
|
3215
3435
|
* )
|
|
3216
3436
|
*
|
|
3217
|
-
* const
|
|
3218
|
-
* const database =
|
|
3219
|
-
* const cache =
|
|
3437
|
+
* const context = yield* Layer.build(AppLayer)
|
|
3438
|
+
* const database = Context.get(context, Database)
|
|
3439
|
+
* const cache = Context.get(context, Cache)
|
|
3220
3440
|
*
|
|
3221
3441
|
* const dbResult = yield* database.query("SELECT * FROM users")
|
|
3222
3442
|
* const cacheResult = yield* cache.get("user:123")
|