effect 4.0.0-beta.42 → 4.0.0-beta.44
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/Cache.d.ts +12 -43
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +15 -42
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +21 -21
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +89 -10
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +42 -19
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +86 -46
- package/dist/Channel.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/Config.d.ts +2 -2
- package/dist/ConfigProvider.d.ts +5 -5
- 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} +139 -139
- package/dist/Context.js.map +1 -0
- package/dist/DateTime.d.ts +2 -2
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +2 -2
- package/dist/DateTime.js.map +1 -1
- package/dist/Effect.d.ts +177 -177
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +81 -81
- package/dist/Effect.js.map +1 -1
- package/dist/ErrorReporter.d.ts +3 -3
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +1 -1
- package/dist/ErrorReporter.js.map +1 -1
- 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/Fiber.d.ts +7 -7
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +2 -2
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +4 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +2 -2
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +4 -4
- 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 +3 -3
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -3
- package/dist/FileSystem.js.map +1 -1
- package/dist/Layer.d.ts +309 -266
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +156 -132
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +18 -18
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +18 -15
- package/dist/LayerMap.js.map +1 -1
- package/dist/Logger.d.ts +3 -3
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +6 -6
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +18 -21
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +19 -19
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +21 -21
- package/dist/Metric.js.map +1 -1
- 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/Pool.d.ts.map +1 -1
- package/dist/Pool.js +4 -4
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -3
- package/dist/PubSub.js.map +1 -1
- package/dist/Random.d.ts +2 -2
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +0 -23
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +12 -12
- package/dist/RcMap.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/References.d.ts +26 -14
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +0 -12
- 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.map +1 -1
- package/dist/RequestResolver.js +6 -7
- 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 +3 -3
- package/dist/Resource.js.map +1 -1
- package/dist/Schedule.d.ts +2 -2
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +2 -2
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +4 -4
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +7 -4
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +531 -214
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +304 -103
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +5 -15
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +49 -5
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +64 -5
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +145 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +146 -0
- 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.map +1 -1
- package/dist/ScopedCache.js +4 -4
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Sink.d.ts +6 -6
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +1 -1
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +2 -2
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +2 -2
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +187 -117
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +133 -57
- package/dist/Stream.js.map +1 -1
- package/dist/Terminal.d.ts +3 -3
- 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 +16 -16
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +11 -8
- package/dist/Tracer.js.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/index.d.ts +81 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -15
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/effect.js +74 -74
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/layer.js +3 -3
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/random.js +2 -2
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js +9 -9
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/references.js +13 -13
- package/dist/internal/references.js.map +1 -1
- 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/representation.js +11 -1
- 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 +21 -1
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +3 -3
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +19 -19
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +2 -1
- 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 +5 -2
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +4 -4
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +3 -3
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +6 -6
- package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +3 -3
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- 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 +2 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +2 -2
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +54 -54
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +15 -8
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +22 -22
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +25 -25
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +3 -3
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +5 -5
- 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 +2 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- 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 +1 -1
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +6 -7
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +2 -2
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js +2 -2
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- 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 +16 -16
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +41 -13
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +3 -3
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +10 -10
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js +5 -2
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +2 -3
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +29 -8
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +8 -1
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +2 -2
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +2 -2
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +14 -14
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +11 -10
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +2 -3
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +2 -2
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.js +2 -2
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +8 -8
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +30 -2
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +17 -7
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Prompt.js +8 -2
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +5 -5
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +3 -3
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +94 -15
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.d.ts +7 -7
- package/dist/unstable/cluster/ClusterSchema.d.ts +12 -9
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +9 -9
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +1 -0
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +68 -40
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -10
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +25 -20
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts +2 -2
- 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 +4 -4
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- 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 +4 -4
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +2 -2
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +7 -4
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +5 -5
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +14 -14
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +8 -8
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +2 -2
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +5 -5
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +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.js +1 -1
- 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 +3 -3
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +7 -7
- 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 +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +21 -21
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +2 -2
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +5 -5
- 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.js +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +15 -14
- 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 +5 -5
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +4 -4
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +2 -2
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +5 -5
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +18 -18
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +2 -2
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -12
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +2 -2
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +3 -3
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +2 -2
- package/dist/unstable/eventlog/EventLogServer.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 +2 -2
- 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 +5 -2
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +3 -3
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +8 -6
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +6 -6
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +2 -2
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +4 -4
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +6 -6
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +24 -24
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +2 -2
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +2 -2
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +3 -3
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +26 -14
- 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 +2 -2
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +7 -7
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +29 -29
- 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 +2 -2
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +3 -3
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +3 -3
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +6 -6
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +2 -2
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +6 -6
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +6 -6
- 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/httpapi/HttpApi.d.ts +9 -9
- 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 +0 -3
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +20 -20
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +7 -7
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +4 -4
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +8 -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 +6 -6
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +5 -5
- package/dist/unstable/httpapi/HttpApiMiddleware.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 +15 -15
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +23 -23
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +5 -5
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +1 -1
- 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.map +1 -1
- 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/persistence/KeyValueStore.d.ts +23 -2
- 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/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 +4 -4
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +3 -3
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +4 -4
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +3 -3
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +6 -6
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +3 -3
- 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/ChildProcessSpawner.d.ts +45 -2
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +2 -2
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +36 -36
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +9 -9
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +3 -3
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +2 -2
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +2 -2
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +3 -3
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +3 -3
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +2 -2
- 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 +11 -11
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -4
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +18 -8
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +27 -18
- 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 +7 -7
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js +20 -20
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +6 -6
- 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 +3 -3
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +3 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +2 -2
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +7 -7
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +2 -2
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +18 -18
- 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 +0 -3
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -5
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +10 -10
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +9 -9
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +5 -2
- 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/SqlClient.d.ts +5 -5
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +7 -7
- 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 +12 -12
- 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 +9 -35
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +11 -11
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +2 -2
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +2 -2
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +2 -2
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +6 -6
- 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 +7 -7
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +7 -7
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +0 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +7 -7
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +9 -9
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +18 -18
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +9 -3
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +14 -5
- 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 +1 -1
- package/src/Cache.ts +18 -46
- package/src/Cause.ts +21 -21
- package/src/Channel.ts +120 -79
- package/src/Clock.ts +2 -2
- package/src/Config.ts +2 -2
- package/src/ConfigProvider.ts +5 -5
- package/src/Console.ts +2 -2
- package/src/{ServiceMap.ts → Context.ts} +337 -340
- package/src/DateTime.ts +2 -2
- package/src/Effect.ts +182 -184
- package/src/ErrorReporter.ts +3 -3
- package/src/ExecutionPlan.ts +8 -9
- package/src/Fiber.ts +7 -7
- package/src/FiberHandle.ts +5 -5
- package/src/FiberMap.ts +5 -5
- package/src/FiberSet.ts +5 -5
- package/src/FileSystem.ts +3 -3
- package/src/Layer.ts +358 -305
- package/src/LayerMap.ts +27 -26
- package/src/Logger.ts +3 -3
- package/src/ManagedRuntime.ts +32 -32
- package/src/Metric.ts +58 -58
- package/src/Path.ts +2 -2
- package/src/Pool.ts +5 -5
- package/src/PubSub.ts +3 -3
- package/src/Random.ts +2 -2
- package/src/RcMap.ts +14 -14
- package/src/Redactable.ts +146 -72
- package/src/References.ts +14 -14
- package/src/Request.ts +5 -5
- package/src/RequestResolver.ts +6 -7
- package/src/Resource.ts +4 -4
- package/src/Schedule.ts +2 -2
- package/src/Scheduler.ts +4 -4
- package/src/Schema.ts +837 -397
- package/src/SchemaAST.ts +5 -14
- package/src/SchemaGetter.ts +69 -11
- package/src/SchemaTransformation.ts +166 -0
- package/src/Scope.ts +2 -2
- package/src/ScopedCache.ts +5 -5
- package/src/Sink.ts +9 -9
- package/src/Stdio.ts +2 -2
- package/src/Stream.ts +234 -158
- package/src/Terminal.ts +3 -3
- package/src/Tracer.ts +17 -17
- package/src/Unify.ts +26 -2
- package/src/index.ts +82 -16
- package/src/internal/core.ts +7 -7
- package/src/internal/effect.ts +106 -106
- package/src/internal/layer.ts +7 -7
- package/src/internal/random.ts +2 -2
- package/src/internal/rcRef.ts +10 -10
- package/src/internal/references.ts +13 -13
- package/src/internal/request.ts +8 -8
- package/src/internal/schedule.ts +3 -1
- package/src/internal/schema/representation.ts +8 -1
- package/src/internal/schema/schema.ts +24 -1
- package/src/testing/TestSchema.ts +3 -3
- package/src/unstable/ai/AiError.ts +3 -2
- package/src/unstable/ai/AnthropicStructuredOutput.ts +3 -3
- package/src/unstable/ai/Chat.ts +3 -3
- package/src/unstable/ai/EmbeddingModel.ts +3 -3
- package/src/unstable/ai/IdGenerator.ts +2 -2
- package/src/unstable/ai/LanguageModel.ts +2 -2
- package/src/unstable/ai/McpSchema.ts +11 -9
- package/src/unstable/ai/McpServer.ts +44 -44
- package/src/unstable/ai/Model.ts +8 -8
- package/src/unstable/ai/OpenAiStructuredOutput.ts +2 -2
- package/src/unstable/ai/Prompt.ts +6 -12
- package/src/unstable/ai/Response.ts +6 -8
- package/src/unstable/ai/ResponseIdTracker.ts +2 -4
- package/src/unstable/ai/Telemetry.ts +2 -2
- package/src/unstable/ai/Tokenizer.ts +2 -2
- package/src/unstable/ai/Tool.ts +25 -25
- package/src/unstable/ai/Toolkit.ts +12 -12
- package/src/unstable/ai/internal/codec-transformer.ts +3 -2
- package/src/unstable/cli/Argument.ts +3 -4
- package/src/unstable/cli/CliError.ts +22 -9
- package/src/unstable/cli/CliOutput.ts +2 -2
- package/src/unstable/cli/Command.ts +36 -30
- package/src/unstable/cli/Flag.ts +3 -4
- package/src/unstable/cli/GlobalFlag.ts +3 -3
- package/src/unstable/cli/HelpDoc.ts +8 -8
- package/src/unstable/cli/Param.ts +39 -16
- package/src/unstable/cli/Prompt.ts +13 -6
- package/src/unstable/cli/internal/command.ts +7 -7
- package/src/unstable/cli/internal/parser.ts +130 -21
- package/src/unstable/cluster/ClusterSchema.ts +12 -12
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +91 -53
- package/src/unstable/cluster/Entity.ts +43 -32
- package/src/unstable/cluster/EntityProxy.ts +3 -3
- package/src/unstable/cluster/EntityProxyServer.ts +4 -4
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/HttpRunner.ts +2 -2
- package/src/unstable/cluster/K8sHttpClient.ts +2 -2
- package/src/unstable/cluster/Message.ts +8 -8
- package/src/unstable/cluster/MessageStorage.ts +11 -11
- package/src/unstable/cluster/Reply.ts +7 -7
- package/src/unstable/cluster/RunnerHealth.ts +2 -2
- package/src/unstable/cluster/RunnerServer.ts +1 -1
- package/src/unstable/cluster/RunnerStorage.ts +9 -9
- package/src/unstable/cluster/Runners.ts +7 -7
- package/src/unstable/cluster/ShardId.ts +84 -74
- package/src/unstable/cluster/Sharding.ts +26 -26
- package/src/unstable/cluster/ShardingConfig.ts +5 -5
- package/src/unstable/cluster/Snowflake.ts +2 -2
- package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +27 -23
- package/src/unstable/cluster/internal/entityReaper.ts +2 -2
- package/src/unstable/cluster/internal/resourceMap.ts +3 -3
- package/src/unstable/devtools/DevToolsClient.ts +5 -5
- package/src/unstable/eventlog/EventJournal.ts +2 -2
- package/src/unstable/eventlog/EventLog.ts +21 -21
- package/src/unstable/eventlog/EventLogEncryption.ts +2 -2
- package/src/unstable/eventlog/EventLogRemote.ts +2 -2
- package/src/unstable/eventlog/EventLogServer.ts +2 -2
- package/src/unstable/http/Etag.ts +2 -2
- package/src/unstable/http/FetchHttpClient.ts +5 -5
- package/src/unstable/http/Headers.ts +4 -4
- package/src/unstable/http/HttpClient.ts +9 -8
- package/src/unstable/http/HttpClientRequest.ts +5 -5
- package/src/unstable/http/HttpEffect.ts +35 -35
- package/src/unstable/http/HttpIncomingMessage.ts +2 -2
- package/src/unstable/http/HttpMiddleware.ts +28 -14
- package/src/unstable/http/HttpPlatform.ts +2 -2
- package/src/unstable/http/HttpRouter.ts +37 -37
- package/src/unstable/http/HttpServer.ts +2 -2
- package/src/unstable/http/HttpServerError.ts +4 -4
- package/src/unstable/http/HttpServerRequest.ts +7 -7
- package/src/unstable/http/HttpServerResponse.ts +8 -8
- package/src/unstable/http/Multipart.ts +8 -8
- package/src/unstable/httpapi/HttpApi.ts +18 -18
- package/src/unstable/httpapi/HttpApiBuilder.ts +20 -20
- package/src/unstable/httpapi/HttpApiClient.ts +4 -4
- package/src/unstable/httpapi/HttpApiEndpoint.ts +14 -14
- package/src/unstable/httpapi/HttpApiGroup.ts +16 -16
- package/src/unstable/httpapi/HttpApiMiddleware.ts +14 -14
- package/src/unstable/httpapi/HttpApiSecurity.ts +13 -13
- package/src/unstable/httpapi/OpenApi.ts +29 -31
- package/src/unstable/observability/OtlpExporter.ts +5 -5
- package/src/unstable/observability/OtlpMetrics.ts +1 -1
- package/src/unstable/observability/OtlpSerialization.ts +2 -2
- package/src/unstable/observability/OtlpTracer.ts +2 -2
- package/src/unstable/observability/PrometheusMetrics.ts +5 -5
- package/src/unstable/persistence/KeyValueStore.ts +226 -3
- package/src/unstable/persistence/PersistedCache.ts +20 -17
- package/src/unstable/persistence/PersistedQueue.ts +3 -3
- package/src/unstable/persistence/Persistence.ts +4 -4
- package/src/unstable/persistence/RateLimiter.ts +3 -3
- package/src/unstable/persistence/Redis.ts +2 -2
- package/src/unstable/process/ChildProcessSpawner.ts +46 -2
- package/src/unstable/reactivity/Atom.ts +79 -79
- package/src/unstable/reactivity/AtomHttpApi.ts +4 -4
- package/src/unstable/reactivity/AtomRegistry.ts +4 -4
- package/src/unstable/reactivity/AtomRpc.ts +4 -4
- package/src/unstable/reactivity/Reactivity.ts +6 -6
- package/src/unstable/rpc/Rpc.ts +17 -17
- package/src/unstable/rpc/RpcClient.ts +44 -30
- package/src/unstable/rpc/RpcGroup.ts +30 -30
- package/src/unstable/rpc/RpcMiddleware.ts +14 -14
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +7 -7
- package/src/unstable/rpc/RpcServer.ts +19 -19
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/rpc/Utils.ts +4 -4
- package/src/unstable/socket/Socket.ts +9 -9
- package/src/unstable/socket/SocketServer.ts +2 -2
- package/src/unstable/sql/SqlClient.ts +11 -11
- package/src/unstable/sql/SqlConnection.ts +2 -2
- package/src/unstable/sql/SqlModel.ts +54 -82
- package/src/unstable/sql/SqlResolver.ts +11 -11
- package/src/unstable/sql/Statement.ts +2 -2
- package/src/unstable/workers/Transferable.ts +6 -6
- package/src/unstable/workers/Worker.ts +4 -4
- package/src/unstable/workers/WorkerRunner.ts +2 -2
- package/src/unstable/workflow/Activity.ts +14 -14
- package/src/unstable/workflow/DurableClock.ts +3 -3
- package/src/unstable/workflow/DurableDeferred.ts +8 -8
- package/src/unstable/workflow/Workflow.ts +23 -23
- package/src/unstable/workflow/WorkflowEngine.ts +28 -6
- package/src/unstable/workflow/WorkflowProxyServer.ts +4 -4
- package/dist/ServiceMap.d.ts +0 -1150
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js.map +0 -1
package/dist/Layer.d.ts
CHANGED
|
@@ -20,15 +20,16 @@
|
|
|
20
20
|
import type { NonEmptyReadonlyArray } from "./Array.ts";
|
|
21
21
|
import type * as Cause from "./Cause.ts";
|
|
22
22
|
import type * as Channel from "./Channel.ts";
|
|
23
|
+
import * as Context from "./Context.ts";
|
|
23
24
|
import type { Effect } from "./Effect.ts";
|
|
24
25
|
import type * as Exit from "./Exit.ts";
|
|
25
26
|
import type { LazyArg } from "./Function.ts";
|
|
26
27
|
import { type Pipeable } from "./Pipeable.ts";
|
|
27
28
|
import * as Scope from "./Scope.ts";
|
|
28
|
-
import * as ServiceMap from "./ServiceMap.ts";
|
|
29
29
|
import type * as Stream from "./Stream.ts";
|
|
30
30
|
import * as Tracer from "./Tracer.ts";
|
|
31
31
|
import type * as Types from "./Types.ts";
|
|
32
|
+
import type * as Unify from "./Unify.ts";
|
|
32
33
|
declare const TypeId = "~effect/Layer";
|
|
33
34
|
/**
|
|
34
35
|
* A Layer describes how to build one or more services for dependency injection.
|
|
@@ -42,6 +43,24 @@ declare const TypeId = "~effect/Layer";
|
|
|
42
43
|
* @category models
|
|
43
44
|
*/
|
|
44
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 {
|
|
45
64
|
}
|
|
46
65
|
/**
|
|
47
66
|
* The variance interface for Layer type parameters.
|
|
@@ -102,9 +121,9 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
|
102
121
|
*
|
|
103
122
|
* @example
|
|
104
123
|
* ```ts
|
|
105
|
-
* import { Effect, Layer,
|
|
124
|
+
* import { Effect, Layer, Context } from "effect"
|
|
106
125
|
*
|
|
107
|
-
* class Database extends
|
|
126
|
+
* class Database extends Context.Service<Database, {
|
|
108
127
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
109
128
|
* }>()("Database") {}
|
|
110
129
|
*
|
|
@@ -116,9 +135,9 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
|
116
135
|
* const dbLayer = Layer.succeed(Database)({
|
|
117
136
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
118
137
|
* })
|
|
119
|
-
* const
|
|
138
|
+
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
120
139
|
*
|
|
121
|
-
* return
|
|
140
|
+
* return Context.get(context, Database)
|
|
122
141
|
* })
|
|
123
142
|
* ```
|
|
124
143
|
*
|
|
@@ -127,16 +146,16 @@ declare const MemoMapTypeId = "~effect/Layer/MemoMap";
|
|
|
127
146
|
*/
|
|
128
147
|
export interface MemoMap {
|
|
129
148
|
readonly [MemoMapTypeId]: typeof MemoMapTypeId;
|
|
130
|
-
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>;
|
|
131
150
|
}
|
|
132
151
|
/**
|
|
133
152
|
* Returns `true` if the specified value is a `Layer`, `false` otherwise.
|
|
134
153
|
*
|
|
135
154
|
* @example
|
|
136
155
|
* ```ts
|
|
137
|
-
* import { Effect, Layer,
|
|
156
|
+
* import { Effect, Layer, Context } from "effect"
|
|
138
157
|
*
|
|
139
|
-
* class Database extends
|
|
158
|
+
* class Database extends Context.Service<Database, {
|
|
140
159
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
141
160
|
* }>()("Database") {}
|
|
142
161
|
*
|
|
@@ -161,15 +180,15 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
|
|
|
161
180
|
*
|
|
162
181
|
* @example
|
|
163
182
|
* ```ts
|
|
164
|
-
* import { Effect, Layer,
|
|
183
|
+
* import { Effect, Layer, Context } from "effect"
|
|
165
184
|
*
|
|
166
|
-
* class Database extends
|
|
185
|
+
* class Database extends Context.Service<Database, {
|
|
167
186
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
168
187
|
* }>()("Database") {}
|
|
169
188
|
*
|
|
170
189
|
* const databaseLayer = Layer.fromBuild(() =>
|
|
171
190
|
* Effect.sync(() =>
|
|
172
|
-
*
|
|
191
|
+
* Context.make(Database, {
|
|
173
192
|
* query: (sql: string) => Effect.succeed("result")
|
|
174
193
|
* })
|
|
175
194
|
* )
|
|
@@ -179,7 +198,7 @@ export declare const isLayer: (u: unknown) => u is Layer<unknown, unknown, unkno
|
|
|
179
198
|
* @since 4.0.0
|
|
180
199
|
* @category constructors
|
|
181
200
|
*/
|
|
182
|
-
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>;
|
|
183
202
|
/**
|
|
184
203
|
* Constructs a Layer from a function that uses a `MemoMap` and `Scope` to build the layer,
|
|
185
204
|
* with automatic memoization.
|
|
@@ -189,15 +208,15 @@ export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope:
|
|
|
189
208
|
*
|
|
190
209
|
* @example
|
|
191
210
|
* ```ts
|
|
192
|
-
* import { Effect, Layer,
|
|
211
|
+
* import { Effect, Layer, Context } from "effect"
|
|
193
212
|
*
|
|
194
|
-
* class Database extends
|
|
213
|
+
* class Database extends Context.Service<Database, {
|
|
195
214
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
196
215
|
* }>()("Database") {}
|
|
197
216
|
*
|
|
198
217
|
* const databaseLayer = Layer.fromBuildMemo(() =>
|
|
199
218
|
* Effect.sync(() =>
|
|
200
|
-
*
|
|
219
|
+
* Context.make(Database, {
|
|
201
220
|
* query: (sql: string) => Effect.succeed("result")
|
|
202
221
|
* })
|
|
203
222
|
* )
|
|
@@ -207,15 +226,15 @@ export declare const fromBuild: <ROut, E, RIn>(build: (memoMap: MemoMap, scope:
|
|
|
207
226
|
* @since 4.0.0
|
|
208
227
|
* @category constructors
|
|
209
228
|
*/
|
|
210
|
-
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>;
|
|
211
230
|
/**
|
|
212
231
|
* Constructs a `MemoMap` that can be used to build additional layers.
|
|
213
232
|
*
|
|
214
233
|
* @example
|
|
215
234
|
* ```ts
|
|
216
|
-
* import { Effect, Layer,
|
|
235
|
+
* import { Effect, Layer, Context } from "effect"
|
|
217
236
|
*
|
|
218
|
-
* class Database extends
|
|
237
|
+
* class Database extends Context.Service<Database, {
|
|
219
238
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
220
239
|
* }>()("Database") {}
|
|
221
240
|
*
|
|
@@ -227,9 +246,9 @@ export declare const fromBuildMemo: <ROut, E, RIn>(build: (memoMap: MemoMap, sco
|
|
|
227
246
|
* const dbLayer = Layer.succeed(Database)({
|
|
228
247
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
229
248
|
* })
|
|
230
|
-
* const
|
|
249
|
+
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
231
250
|
*
|
|
232
|
-
* return
|
|
251
|
+
* return Context.get(context, Database)
|
|
233
252
|
* })
|
|
234
253
|
* ```
|
|
235
254
|
*
|
|
@@ -242,9 +261,9 @@ export declare const makeMemoMapUnsafe: () => MemoMap;
|
|
|
242
261
|
*
|
|
243
262
|
* @example
|
|
244
263
|
* ```ts
|
|
245
|
-
* import { Effect, Layer,
|
|
264
|
+
* import { Effect, Layer, Context } from "effect"
|
|
246
265
|
*
|
|
247
|
-
* class Database extends
|
|
266
|
+
* class Database extends Context.Service<Database, {
|
|
248
267
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
249
268
|
* }>()("Database") {}
|
|
250
269
|
*
|
|
@@ -256,9 +275,9 @@ export declare const makeMemoMapUnsafe: () => MemoMap;
|
|
|
256
275
|
* const dbLayer = Layer.succeed(Database)({
|
|
257
276
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
258
277
|
* })
|
|
259
|
-
* const
|
|
278
|
+
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
260
279
|
*
|
|
261
|
-
* return
|
|
280
|
+
* return Context.get(context, Database)
|
|
262
281
|
* })
|
|
263
282
|
* ```
|
|
264
283
|
*
|
|
@@ -266,7 +285,7 @@ export declare const makeMemoMapUnsafe: () => MemoMap;
|
|
|
266
285
|
* @category memo map
|
|
267
286
|
*/
|
|
268
287
|
export declare const makeMemoMap: Effect<MemoMap>;
|
|
269
|
-
declare const CurrentMemoMap_base:
|
|
288
|
+
declare const CurrentMemoMap_base: Context.ServiceClass<CurrentMemoMap, "effect/Layer/CurrentMemoMap", MemoMap>;
|
|
270
289
|
/**
|
|
271
290
|
* A service reference for the current `MemoMap` used in layer construction.
|
|
272
291
|
*
|
|
@@ -277,7 +296,7 @@ declare const CurrentMemoMap_base: ServiceMap.ServiceClass<CurrentMemoMap, "effe
|
|
|
277
296
|
* @category models
|
|
278
297
|
*/
|
|
279
298
|
export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
280
|
-
static getOrCreate: <Services>(self:
|
|
299
|
+
static getOrCreate: <Services>(self: Context.Context<Services>) => MemoMap;
|
|
281
300
|
}
|
|
282
301
|
/**
|
|
283
302
|
* Builds a layer into an `Effect` value, using the specified `MemoMap` to memoize
|
|
@@ -285,13 +304,13 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
|
285
304
|
*
|
|
286
305
|
* @example
|
|
287
306
|
* ```ts
|
|
288
|
-
* import { Effect, Layer,
|
|
307
|
+
* import { Effect, Layer, Context } from "effect"
|
|
289
308
|
*
|
|
290
|
-
* class Database extends
|
|
309
|
+
* class Database extends Context.Service<Database, {
|
|
291
310
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
292
311
|
* }>()("Database") {}
|
|
293
312
|
*
|
|
294
|
-
* class Logger extends
|
|
313
|
+
* class Logger extends Context.Service<Logger, {
|
|
295
314
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
296
315
|
* }>()("Logger") {}
|
|
297
316
|
*
|
|
@@ -304,21 +323,21 @@ export declare class CurrentMemoMap extends CurrentMemoMap_base {
|
|
|
304
323
|
* const dbLayer = Layer.succeed(Database)({
|
|
305
324
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
306
325
|
* })
|
|
307
|
-
* const
|
|
326
|
+
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
308
327
|
*
|
|
309
328
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
310
329
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
311
330
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
312
331
|
* })
|
|
313
|
-
* const
|
|
332
|
+
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
314
333
|
* loggerLayer,
|
|
315
334
|
* memoMap,
|
|
316
335
|
* scope
|
|
317
336
|
* )
|
|
318
337
|
*
|
|
319
338
|
* return {
|
|
320
|
-
* database:
|
|
321
|
-
* logger:
|
|
339
|
+
* database: Context.get(dbContext, Database),
|
|
340
|
+
* logger: Context.get(loggerContext, Logger)
|
|
322
341
|
* }
|
|
323
342
|
* })
|
|
324
343
|
* ```
|
|
@@ -333,13 +352,13 @@ export declare const buildWithMemoMap: {
|
|
|
333
352
|
*
|
|
334
353
|
* @example
|
|
335
354
|
* ```ts
|
|
336
|
-
* import { Effect, Layer,
|
|
355
|
+
* import { Effect, Layer, Context } from "effect"
|
|
337
356
|
*
|
|
338
|
-
* class Database extends
|
|
357
|
+
* class Database extends Context.Service<Database, {
|
|
339
358
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
340
359
|
* }>()("Database") {}
|
|
341
360
|
*
|
|
342
|
-
* class Logger extends
|
|
361
|
+
* class Logger extends Context.Service<Logger, {
|
|
343
362
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
344
363
|
* }>()("Logger") {}
|
|
345
364
|
*
|
|
@@ -352,21 +371,21 @@ export declare const buildWithMemoMap: {
|
|
|
352
371
|
* const dbLayer = Layer.succeed(Database)({
|
|
353
372
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
354
373
|
* })
|
|
355
|
-
* const
|
|
374
|
+
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
356
375
|
*
|
|
357
376
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
358
377
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
359
378
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
360
379
|
* })
|
|
361
|
-
* const
|
|
380
|
+
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
362
381
|
* loggerLayer,
|
|
363
382
|
* memoMap,
|
|
364
383
|
* scope
|
|
365
384
|
* )
|
|
366
385
|
*
|
|
367
386
|
* return {
|
|
368
|
-
* database:
|
|
369
|
-
* logger:
|
|
387
|
+
* database: Context.get(dbContext, Database),
|
|
388
|
+
* logger: Context.get(loggerContext, Logger)
|
|
370
389
|
* }
|
|
371
390
|
* })
|
|
372
391
|
* ```
|
|
@@ -374,20 +393,20 @@ export declare const buildWithMemoMap: {
|
|
|
374
393
|
* @since 2.0.0
|
|
375
394
|
* @category memo map
|
|
376
395
|
*/
|
|
377
|
-
(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>;
|
|
378
397
|
/**
|
|
379
398
|
* Builds a layer into an `Effect` value, using the specified `MemoMap` to memoize
|
|
380
399
|
* the layer construction.
|
|
381
400
|
*
|
|
382
401
|
* @example
|
|
383
402
|
* ```ts
|
|
384
|
-
* import { Effect, Layer,
|
|
403
|
+
* import { Effect, Layer, Context } from "effect"
|
|
385
404
|
*
|
|
386
|
-
* class Database extends
|
|
405
|
+
* class Database extends Context.Service<Database, {
|
|
387
406
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
388
407
|
* }>()("Database") {}
|
|
389
408
|
*
|
|
390
|
-
* class Logger extends
|
|
409
|
+
* class Logger extends Context.Service<Logger, {
|
|
391
410
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
392
411
|
* }>()("Logger") {}
|
|
393
412
|
*
|
|
@@ -400,21 +419,21 @@ export declare const buildWithMemoMap: {
|
|
|
400
419
|
* const dbLayer = Layer.succeed(Database)({
|
|
401
420
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
402
421
|
* })
|
|
403
|
-
* const
|
|
422
|
+
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
404
423
|
*
|
|
405
424
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
406
425
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
407
426
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
408
427
|
* })
|
|
409
|
-
* const
|
|
428
|
+
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
410
429
|
* loggerLayer,
|
|
411
430
|
* memoMap,
|
|
412
431
|
* scope
|
|
413
432
|
* )
|
|
414
433
|
*
|
|
415
434
|
* return {
|
|
416
|
-
* database:
|
|
417
|
-
* logger:
|
|
435
|
+
* database: Context.get(dbContext, Database),
|
|
436
|
+
* logger: Context.get(loggerContext, Logger)
|
|
418
437
|
* }
|
|
419
438
|
* })
|
|
420
439
|
* ```
|
|
@@ -422,16 +441,16 @@ export declare const buildWithMemoMap: {
|
|
|
422
441
|
* @since 2.0.0
|
|
423
442
|
* @category memo map
|
|
424
443
|
*/
|
|
425
|
-
<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>;
|
|
426
445
|
};
|
|
427
446
|
/**
|
|
428
447
|
* Builds a layer into a scoped value.
|
|
429
448
|
*
|
|
430
449
|
* @example
|
|
431
450
|
* ```ts
|
|
432
|
-
* import { Effect, Layer,
|
|
451
|
+
* import { Effect, Layer, Context } from "effect"
|
|
433
452
|
*
|
|
434
|
-
* class Database extends
|
|
453
|
+
* class Database extends Context.Service<Database, {
|
|
435
454
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
436
455
|
* }>()("Database") {}
|
|
437
456
|
*
|
|
@@ -441,11 +460,11 @@ export declare const buildWithMemoMap: {
|
|
|
441
460
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
442
461
|
* })
|
|
443
462
|
*
|
|
444
|
-
* // Build the layer into
|
|
445
|
-
* const
|
|
463
|
+
* // Build the layer into Context - automatically manages scope and memoization
|
|
464
|
+
* const context = yield* Layer.build(dbLayer)
|
|
446
465
|
*
|
|
447
466
|
* // Extract the specific service from the built layer
|
|
448
|
-
* const database =
|
|
467
|
+
* const database = Context.get(context, Database)
|
|
449
468
|
*
|
|
450
469
|
* return yield* database.query("SELECT * FROM users")
|
|
451
470
|
* })
|
|
@@ -454,7 +473,7 @@ export declare const buildWithMemoMap: {
|
|
|
454
473
|
* @since 2.0.0
|
|
455
474
|
* @category destructors
|
|
456
475
|
*/
|
|
457
|
-
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>;
|
|
458
477
|
/**
|
|
459
478
|
* Builds a layer into an `Effect` value. Any resources associated with this
|
|
460
479
|
* layer will be released when the specified scope is closed unless their scope
|
|
@@ -464,9 +483,9 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
|
464
483
|
*
|
|
465
484
|
* @example
|
|
466
485
|
* ```ts
|
|
467
|
-
* import { Effect, Layer, Scope,
|
|
486
|
+
* import { Effect, Layer, Scope, Context } from "effect"
|
|
468
487
|
*
|
|
469
|
-
* class Database extends
|
|
488
|
+
* class Database extends Context.Service<Database, {
|
|
470
489
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
471
490
|
* }>()("Database") {}
|
|
472
491
|
*
|
|
@@ -484,8 +503,8 @@ export declare const build: <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
|
484
503
|
* }))
|
|
485
504
|
*
|
|
486
505
|
* // Build with specific scope - resources tied to this scope
|
|
487
|
-
* const
|
|
488
|
-
* const database =
|
|
506
|
+
* const context = yield* Layer.buildWithScope(dbLayer, scope)
|
|
507
|
+
* const database = Context.get(context, Database)
|
|
489
508
|
*
|
|
490
509
|
* return yield* database.query("SELECT * FROM users")
|
|
491
510
|
* // Database will be closed when scope is closed
|
|
@@ -505,9 +524,9 @@ export declare const buildWithScope: {
|
|
|
505
524
|
*
|
|
506
525
|
* @example
|
|
507
526
|
* ```ts
|
|
508
|
-
* import { Effect, Layer, Scope,
|
|
527
|
+
* import { Effect, Layer, Scope, Context } from "effect"
|
|
509
528
|
*
|
|
510
|
-
* class Database extends
|
|
529
|
+
* class Database extends Context.Service<Database, {
|
|
511
530
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
512
531
|
* }>()("Database") {}
|
|
513
532
|
*
|
|
@@ -525,8 +544,8 @@ export declare const buildWithScope: {
|
|
|
525
544
|
* }))
|
|
526
545
|
*
|
|
527
546
|
* // Build with specific scope - resources tied to this scope
|
|
528
|
-
* const
|
|
529
|
-
* const database =
|
|
547
|
+
* const context = yield* Layer.buildWithScope(dbLayer, scope)
|
|
548
|
+
* const database = Context.get(context, Database)
|
|
530
549
|
*
|
|
531
550
|
* return yield* database.query("SELECT * FROM users")
|
|
532
551
|
* // Database will be closed when scope is closed
|
|
@@ -536,7 +555,7 @@ export declare const buildWithScope: {
|
|
|
536
555
|
* @since 2.0.0
|
|
537
556
|
* @category destructors
|
|
538
557
|
*/
|
|
539
|
-
(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>;
|
|
540
559
|
/**
|
|
541
560
|
* Builds a layer into an `Effect` value. Any resources associated with this
|
|
542
561
|
* layer will be released when the specified scope is closed unless their scope
|
|
@@ -546,9 +565,9 @@ export declare const buildWithScope: {
|
|
|
546
565
|
*
|
|
547
566
|
* @example
|
|
548
567
|
* ```ts
|
|
549
|
-
* import { Effect, Layer, Scope,
|
|
568
|
+
* import { Effect, Layer, Scope, Context } from "effect"
|
|
550
569
|
*
|
|
551
|
-
* class Database extends
|
|
570
|
+
* class Database extends Context.Service<Database, {
|
|
552
571
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
553
572
|
* }>()("Database") {}
|
|
554
573
|
*
|
|
@@ -566,8 +585,8 @@ export declare const buildWithScope: {
|
|
|
566
585
|
* }))
|
|
567
586
|
*
|
|
568
587
|
* // Build with specific scope - resources tied to this scope
|
|
569
|
-
* const
|
|
570
|
-
* const database =
|
|
588
|
+
* const context = yield* Layer.buildWithScope(dbLayer, scope)
|
|
589
|
+
* const database = Context.get(context, Database)
|
|
571
590
|
*
|
|
572
591
|
* return yield* database.query("SELECT * FROM users")
|
|
573
592
|
* // Database will be closed when scope is closed
|
|
@@ -577,20 +596,20 @@ export declare const buildWithScope: {
|
|
|
577
596
|
* @since 2.0.0
|
|
578
597
|
* @category destructors
|
|
579
598
|
*/
|
|
580
|
-
<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>;
|
|
581
600
|
};
|
|
582
601
|
/**
|
|
583
602
|
* Constructs a layer from the specified value.
|
|
584
603
|
*
|
|
585
604
|
* @example
|
|
586
605
|
* ```ts
|
|
587
|
-
* import { Effect, Layer,
|
|
606
|
+
* import { Effect, Layer, Context } from "effect"
|
|
588
607
|
*
|
|
589
|
-
* class Database extends
|
|
608
|
+
* class Database extends Context.Service<Database, {
|
|
590
609
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
591
610
|
* }>()("Database") {}
|
|
592
611
|
*
|
|
593
|
-
* class Logger extends
|
|
612
|
+
* class Logger extends Context.Service<Logger, {
|
|
594
613
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
595
614
|
* }>()("Logger") {}
|
|
596
615
|
*
|
|
@@ -627,13 +646,13 @@ export declare const succeed: {
|
|
|
627
646
|
*
|
|
628
647
|
* @example
|
|
629
648
|
* ```ts
|
|
630
|
-
* import { Effect, Layer,
|
|
649
|
+
* import { Effect, Layer, Context } from "effect"
|
|
631
650
|
*
|
|
632
|
-
* class Database extends
|
|
651
|
+
* class Database extends Context.Service<Database, {
|
|
633
652
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
634
653
|
* }>()("Database") {}
|
|
635
654
|
*
|
|
636
|
-
* class Logger extends
|
|
655
|
+
* class Logger extends Context.Service<Logger, {
|
|
637
656
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
638
657
|
* }>()("Logger") {}
|
|
639
658
|
*
|
|
@@ -664,19 +683,19 @@ export declare const succeed: {
|
|
|
664
683
|
* @since 2.0.0
|
|
665
684
|
* @category constructors
|
|
666
685
|
*/
|
|
667
|
-
<I, S>(service:
|
|
686
|
+
<I, S>(service: Context.Key<I, S>): (resource: S) => Layer<I>;
|
|
668
687
|
/**
|
|
669
688
|
* Constructs a layer from the specified value.
|
|
670
689
|
*
|
|
671
690
|
* @example
|
|
672
691
|
* ```ts
|
|
673
|
-
* import { Effect, Layer,
|
|
692
|
+
* import { Effect, Layer, Context } from "effect"
|
|
674
693
|
*
|
|
675
|
-
* class Database extends
|
|
694
|
+
* class Database extends Context.Service<Database, {
|
|
676
695
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
677
696
|
* }>()("Database") {}
|
|
678
697
|
*
|
|
679
|
-
* class Logger extends
|
|
698
|
+
* class Logger extends Context.Service<Logger, {
|
|
680
699
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
681
700
|
* }>()("Logger") {}
|
|
682
701
|
*
|
|
@@ -707,45 +726,44 @@ export declare const succeed: {
|
|
|
707
726
|
* @since 2.0.0
|
|
708
727
|
* @category constructors
|
|
709
728
|
*/
|
|
710
|
-
<I, S>(service:
|
|
729
|
+
<I, S>(service: Context.Key<I, S>, resource: Types.NoInfer<S>): Layer<I>;
|
|
711
730
|
};
|
|
712
731
|
/**
|
|
713
732
|
* Constructs a layer from the specified value, which must return one or more
|
|
714
733
|
* services.
|
|
715
734
|
*
|
|
716
735
|
* This is a more general version of `succeed` that allows you to provide multiple
|
|
717
|
-
* services at once through a `
|
|
736
|
+
* services at once through a `Context`.
|
|
718
737
|
*
|
|
719
738
|
* @example
|
|
720
739
|
* ```ts
|
|
721
|
-
* import { Effect, Layer,
|
|
740
|
+
* import { Effect, Layer, Context } from "effect"
|
|
722
741
|
*
|
|
723
|
-
* class Database extends
|
|
742
|
+
* class Database extends Context.Service<Database, {
|
|
724
743
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
725
744
|
* }>()("Database") {}
|
|
726
745
|
*
|
|
727
|
-
* class Logger extends
|
|
746
|
+
* class Logger extends Context.Service<Logger, {
|
|
728
747
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
729
748
|
* }>()("Logger") {}
|
|
730
749
|
*
|
|
731
|
-
* const
|
|
750
|
+
* const context = Context.make(Database, {
|
|
732
751
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
733
|
-
* })
|
|
734
|
-
* .
|
|
735
|
-
*
|
|
736
|
-
*
|
|
737
|
-
*
|
|
738
|
-
* )
|
|
752
|
+
* }).pipe(
|
|
753
|
+
* Context.add(Logger, {
|
|
754
|
+
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
755
|
+
* })
|
|
756
|
+
* )
|
|
739
757
|
*
|
|
740
|
-
* const layer = Layer.
|
|
758
|
+
* const layer = Layer.succeedContext(context)
|
|
741
759
|
* ```
|
|
742
760
|
*
|
|
743
761
|
* @since 2.0.0
|
|
744
762
|
* @category constructors
|
|
745
763
|
*/
|
|
746
|
-
export declare const
|
|
764
|
+
export declare const succeedContext: <A>(context: Context.Context<A>) => Layer<A>;
|
|
747
765
|
/**
|
|
748
|
-
* A Layer that constructs an empty
|
|
766
|
+
* A Layer that constructs an empty Context.
|
|
749
767
|
*
|
|
750
768
|
* This layer provides no services and can be used as a neutral element
|
|
751
769
|
* in layer composition or as a starting point for building layers.
|
|
@@ -769,9 +787,9 @@ export declare const empty: Layer<never>;
|
|
|
769
787
|
*
|
|
770
788
|
* @example
|
|
771
789
|
* ```ts
|
|
772
|
-
* import { Effect, Layer,
|
|
790
|
+
* import { Effect, Layer, Context } from "effect"
|
|
773
791
|
*
|
|
774
|
-
* class Database extends
|
|
792
|
+
* class Database extends Context.Service<Database, {
|
|
775
793
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
776
794
|
* }>()("Database") {}
|
|
777
795
|
*
|
|
@@ -792,9 +810,9 @@ export declare const sync: {
|
|
|
792
810
|
*
|
|
793
811
|
* @example
|
|
794
812
|
* ```ts
|
|
795
|
-
* import { Effect, Layer,
|
|
813
|
+
* import { Effect, Layer, Context } from "effect"
|
|
796
814
|
*
|
|
797
|
-
* class Database extends
|
|
815
|
+
* class Database extends Context.Service<Database, {
|
|
798
816
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
799
817
|
* }>()("Database") {}
|
|
800
818
|
*
|
|
@@ -806,7 +824,7 @@ export declare const sync: {
|
|
|
806
824
|
* @since 2.0.0
|
|
807
825
|
* @category constructors
|
|
808
826
|
*/
|
|
809
|
-
<I, S>(service:
|
|
827
|
+
<I, S>(service: Context.Key<I, S>): (evaluate: LazyArg<S>) => Layer<I>;
|
|
810
828
|
/**
|
|
811
829
|
* Lazily constructs a layer from the specified value.
|
|
812
830
|
*
|
|
@@ -815,9 +833,9 @@ export declare const sync: {
|
|
|
815
833
|
*
|
|
816
834
|
* @example
|
|
817
835
|
* ```ts
|
|
818
|
-
* import { Effect, Layer,
|
|
836
|
+
* import { Effect, Layer, Context } from "effect"
|
|
819
837
|
*
|
|
820
|
-
* class Database extends
|
|
838
|
+
* class Database extends Context.Service<Database, {
|
|
821
839
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
822
840
|
* }>()("Database") {}
|
|
823
841
|
*
|
|
@@ -829,25 +847,25 @@ export declare const sync: {
|
|
|
829
847
|
* @since 2.0.0
|
|
830
848
|
* @category constructors
|
|
831
849
|
*/
|
|
832
|
-
<I, S>(service:
|
|
850
|
+
<I, S>(service: Context.Key<I, S>, evaluate: LazyArg<Types.NoInfer<S>>): Layer<I>;
|
|
833
851
|
};
|
|
834
852
|
/**
|
|
835
853
|
* Lazily constructs a layer from the specified value, which must return one or more
|
|
836
854
|
* services.
|
|
837
855
|
*
|
|
838
|
-
* This is a lazy version of `
|
|
856
|
+
* This is a lazy version of `succeedContext` where the Context is computed
|
|
839
857
|
* synchronously only when the layer is built.
|
|
840
858
|
*
|
|
841
859
|
* @example
|
|
842
860
|
* ```ts
|
|
843
|
-
* import { Effect, Layer,
|
|
861
|
+
* import { Effect, Layer, Context } from "effect"
|
|
844
862
|
*
|
|
845
|
-
* class Database extends
|
|
863
|
+
* class Database extends Context.Service<Database, {
|
|
846
864
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
847
865
|
* }>()("Database") {}
|
|
848
866
|
*
|
|
849
|
-
* const layer = Layer.
|
|
850
|
-
*
|
|
867
|
+
* const layer = Layer.syncContext(() =>
|
|
868
|
+
* Context.make(Database, {
|
|
851
869
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
852
870
|
* })
|
|
853
871
|
* )
|
|
@@ -856,7 +874,7 @@ export declare const sync: {
|
|
|
856
874
|
* @since 2.0.0
|
|
857
875
|
* @category constructors
|
|
858
876
|
*/
|
|
859
|
-
export declare const
|
|
877
|
+
export declare const syncContext: <A>(evaluate: LazyArg<Context.Context<A>>) => Layer<A>;
|
|
860
878
|
/**
|
|
861
879
|
* Constructs a layer from the specified scoped effect.
|
|
862
880
|
*
|
|
@@ -872,9 +890,9 @@ export declare const syncServices: <A>(evaluate: LazyArg<ServiceMap.ServiceMap<A
|
|
|
872
890
|
*
|
|
873
891
|
* @example
|
|
874
892
|
* ```ts
|
|
875
|
-
* import { Effect, Layer,
|
|
893
|
+
* import { Effect, Layer, Context } from "effect"
|
|
876
894
|
*
|
|
877
|
-
* class Database extends
|
|
895
|
+
* class Database extends Context.Service<Database, {
|
|
878
896
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
879
897
|
* }>()("Database") {}
|
|
880
898
|
*
|
|
@@ -904,9 +922,9 @@ export declare const effect: {
|
|
|
904
922
|
*
|
|
905
923
|
* @example
|
|
906
924
|
* ```ts
|
|
907
|
-
* import { Effect, Layer,
|
|
925
|
+
* import { Effect, Layer, Context } from "effect"
|
|
908
926
|
*
|
|
909
|
-
* class Database extends
|
|
927
|
+
* class Database extends Context.Service<Database, {
|
|
910
928
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
911
929
|
* }>()("Database") {}
|
|
912
930
|
*
|
|
@@ -920,7 +938,7 @@ export declare const effect: {
|
|
|
920
938
|
* @since 2.0.0
|
|
921
939
|
* @category constructors
|
|
922
940
|
*/
|
|
923
|
-
<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>>;
|
|
924
942
|
/**
|
|
925
943
|
* Constructs a layer from the specified scoped effect.
|
|
926
944
|
*
|
|
@@ -936,9 +954,9 @@ export declare const effect: {
|
|
|
936
954
|
*
|
|
937
955
|
* @example
|
|
938
956
|
* ```ts
|
|
939
|
-
* import { Effect, Layer,
|
|
957
|
+
* import { Effect, Layer, Context } from "effect"
|
|
940
958
|
*
|
|
941
|
-
* class Database extends
|
|
959
|
+
* class Database extends Context.Service<Database, {
|
|
942
960
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
943
961
|
* }>()("Database") {}
|
|
944
962
|
*
|
|
@@ -952,7 +970,7 @@ export declare const effect: {
|
|
|
952
970
|
* @since 2.0.0
|
|
953
971
|
* @category constructors
|
|
954
972
|
*/
|
|
955
|
-
<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>>;
|
|
956
974
|
};
|
|
957
975
|
/**
|
|
958
976
|
* Constructs a layer from the specified scoped effect, which must return one
|
|
@@ -963,15 +981,15 @@ export declare const effect: {
|
|
|
963
981
|
*
|
|
964
982
|
* @example
|
|
965
983
|
* ```ts
|
|
966
|
-
* import { Effect, Layer,
|
|
984
|
+
* import { Effect, Layer, Context } from "effect"
|
|
967
985
|
*
|
|
968
|
-
* class Database extends
|
|
986
|
+
* class Database extends Context.Service<
|
|
969
987
|
* Database,
|
|
970
988
|
* { readonly query: (sql: string) => Effect.Effect<string> }
|
|
971
989
|
* >()("Database") {}
|
|
972
990
|
*
|
|
973
|
-
* const layer = Layer.
|
|
974
|
-
* Effect.succeed(
|
|
991
|
+
* const layer = Layer.effectContext(
|
|
992
|
+
* Effect.succeed(Context.make(Database, {
|
|
975
993
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
976
994
|
* }))
|
|
977
995
|
* )
|
|
@@ -980,7 +998,7 @@ export declare const effect: {
|
|
|
980
998
|
* @since 2.0.0
|
|
981
999
|
* @category constructors
|
|
982
1000
|
*/
|
|
983
|
-
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>>;
|
|
984
1002
|
/**
|
|
985
1003
|
* Constructs a layer from the specified scoped effect.
|
|
986
1004
|
*
|
|
@@ -1008,6 +1026,31 @@ export declare const effectServices: <A, E, R>(effect: Effect<ServiceMap.Service
|
|
|
1008
1026
|
* @category constructors
|
|
1009
1027
|
*/
|
|
1010
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>;
|
|
1011
1054
|
/**
|
|
1012
1055
|
* Unwraps a Layer from an Effect, flattening the nested structure.
|
|
1013
1056
|
*
|
|
@@ -1017,9 +1060,9 @@ export declare const effectDiscard: <X, E, R>(effect: Effect<X, E, R>) => Layer<
|
|
|
1017
1060
|
*
|
|
1018
1061
|
* @example
|
|
1019
1062
|
* ```ts
|
|
1020
|
-
* import { Effect, Layer,
|
|
1063
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1021
1064
|
*
|
|
1022
|
-
* class Database extends
|
|
1065
|
+
* class Database extends Context.Service<Database, {
|
|
1023
1066
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1024
1067
|
* }>()("Database") {}
|
|
1025
1068
|
*
|
|
@@ -1042,13 +1085,13 @@ export declare const unwrap: <A, E1, R1, E, R>(self: Effect<Layer<A, E1, R1>, E,
|
|
|
1042
1085
|
*
|
|
1043
1086
|
* @example
|
|
1044
1087
|
* ```ts
|
|
1045
|
-
* import { Effect, Layer,
|
|
1088
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1046
1089
|
*
|
|
1047
|
-
* class Database extends
|
|
1090
|
+
* class Database extends Context.Service<Database, {
|
|
1048
1091
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1049
1092
|
* }>()("Database") {}
|
|
1050
1093
|
*
|
|
1051
|
-
* class Logger extends
|
|
1094
|
+
* class Logger extends Context.Service<Logger, {
|
|
1052
1095
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1053
1096
|
* }>()("Logger") {}
|
|
1054
1097
|
*
|
|
@@ -1074,13 +1117,13 @@ export declare const mergeAll: <Layers extends [Layer<never, any, any>, ...Array
|
|
|
1074
1117
|
*
|
|
1075
1118
|
* @example
|
|
1076
1119
|
* ```ts
|
|
1077
|
-
* import { Effect, Layer,
|
|
1120
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1078
1121
|
*
|
|
1079
|
-
* class Database extends
|
|
1122
|
+
* class Database extends Context.Service<Database, {
|
|
1080
1123
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1081
1124
|
* }>()("Database") {}
|
|
1082
1125
|
*
|
|
1083
|
-
* class Logger extends
|
|
1126
|
+
* class Logger extends Context.Service<Logger, {
|
|
1084
1127
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1085
1128
|
* }>()("Logger") {}
|
|
1086
1129
|
*
|
|
@@ -1106,13 +1149,13 @@ export declare const merge: {
|
|
|
1106
1149
|
*
|
|
1107
1150
|
* @example
|
|
1108
1151
|
* ```ts
|
|
1109
|
-
* import { Effect, Layer,
|
|
1152
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1110
1153
|
*
|
|
1111
|
-
* class Database extends
|
|
1154
|
+
* class Database extends Context.Service<Database, {
|
|
1112
1155
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1113
1156
|
* }>()("Database") {}
|
|
1114
1157
|
*
|
|
1115
|
-
* class Logger extends
|
|
1158
|
+
* class Logger extends Context.Service<Logger, {
|
|
1116
1159
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1117
1160
|
* }>()("Logger") {}
|
|
1118
1161
|
*
|
|
@@ -1138,13 +1181,13 @@ export declare const merge: {
|
|
|
1138
1181
|
*
|
|
1139
1182
|
* @example
|
|
1140
1183
|
* ```ts
|
|
1141
|
-
* import { Effect, Layer,
|
|
1184
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1142
1185
|
*
|
|
1143
|
-
* class Database extends
|
|
1186
|
+
* class Database extends Context.Service<Database, {
|
|
1144
1187
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1145
1188
|
* }>()("Database") {}
|
|
1146
1189
|
*
|
|
1147
|
-
* class Logger extends
|
|
1190
|
+
* class Logger extends Context.Service<Logger, {
|
|
1148
1191
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1149
1192
|
* }>()("Logger") {}
|
|
1150
1193
|
*
|
|
@@ -1170,13 +1213,13 @@ export declare const merge: {
|
|
|
1170
1213
|
*
|
|
1171
1214
|
* @example
|
|
1172
1215
|
* ```ts
|
|
1173
|
-
* import { Effect, Layer,
|
|
1216
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1174
1217
|
*
|
|
1175
|
-
* class Database extends
|
|
1218
|
+
* class Database extends Context.Service<Database, {
|
|
1176
1219
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1177
1220
|
* }>()("Database") {}
|
|
1178
1221
|
*
|
|
1179
|
-
* class Logger extends
|
|
1222
|
+
* class Logger extends Context.Service<Logger, {
|
|
1180
1223
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1181
1224
|
* }>()("Logger") {}
|
|
1182
1225
|
*
|
|
@@ -1202,13 +1245,13 @@ export declare const merge: {
|
|
|
1202
1245
|
*
|
|
1203
1246
|
* @example
|
|
1204
1247
|
* ```ts
|
|
1205
|
-
* import { Effect, Layer,
|
|
1248
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1206
1249
|
*
|
|
1207
|
-
* class Database extends
|
|
1250
|
+
* class Database extends Context.Service<Database, {
|
|
1208
1251
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1209
1252
|
* }>()("Database") {}
|
|
1210
1253
|
*
|
|
1211
|
-
* class Logger extends
|
|
1254
|
+
* class Logger extends Context.Service<Logger, {
|
|
1212
1255
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1213
1256
|
* }>()("Logger") {}
|
|
1214
1257
|
*
|
|
@@ -1234,20 +1277,20 @@ export declare const merge: {
|
|
|
1234
1277
|
*
|
|
1235
1278
|
* @example
|
|
1236
1279
|
* ```ts
|
|
1237
|
-
* import { Effect, Layer,
|
|
1280
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1238
1281
|
*
|
|
1239
|
-
* class Database extends
|
|
1282
|
+
* class Database extends Context.Service<Database, {
|
|
1240
1283
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1241
1284
|
* }>()("Database") {}
|
|
1242
1285
|
*
|
|
1243
|
-
* class UserService extends
|
|
1286
|
+
* class UserService extends Context.Service<UserService, {
|
|
1244
1287
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1245
1288
|
* id: string
|
|
1246
1289
|
* name: string
|
|
1247
1290
|
* }>
|
|
1248
1291
|
* }>()("UserService") {}
|
|
1249
1292
|
*
|
|
1250
|
-
* class Logger extends
|
|
1293
|
+
* class Logger extends Context.Service<Logger, {
|
|
1251
1294
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1252
1295
|
* }>()("Logger") {}
|
|
1253
1296
|
*
|
|
@@ -1301,20 +1344,20 @@ export declare const provide: {
|
|
|
1301
1344
|
*
|
|
1302
1345
|
* @example
|
|
1303
1346
|
* ```ts
|
|
1304
|
-
* import { Effect, Layer,
|
|
1347
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1305
1348
|
*
|
|
1306
|
-
* class Database extends
|
|
1349
|
+
* class Database extends Context.Service<Database, {
|
|
1307
1350
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1308
1351
|
* }>()("Database") {}
|
|
1309
1352
|
*
|
|
1310
|
-
* class UserService extends
|
|
1353
|
+
* class UserService extends Context.Service<UserService, {
|
|
1311
1354
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1312
1355
|
* id: string
|
|
1313
1356
|
* name: string
|
|
1314
1357
|
* }>
|
|
1315
1358
|
* }>()("UserService") {}
|
|
1316
1359
|
*
|
|
1317
|
-
* class Logger extends
|
|
1360
|
+
* class Logger extends Context.Service<Logger, {
|
|
1318
1361
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1319
1362
|
* }>()("Logger") {}
|
|
1320
1363
|
*
|
|
@@ -1368,20 +1411,20 @@ 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
|
*
|
|
@@ -1435,20 +1478,20 @@ export declare const provide: {
|
|
|
1435
1478
|
*
|
|
1436
1479
|
* @example
|
|
1437
1480
|
* ```ts
|
|
1438
|
-
* import { Effect, Layer,
|
|
1481
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1439
1482
|
*
|
|
1440
|
-
* class Database extends
|
|
1483
|
+
* class Database extends Context.Service<Database, {
|
|
1441
1484
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1442
1485
|
* }>()("Database") {}
|
|
1443
1486
|
*
|
|
1444
|
-
* class UserService extends
|
|
1487
|
+
* class UserService extends Context.Service<UserService, {
|
|
1445
1488
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1446
1489
|
* id: string
|
|
1447
1490
|
* name: string
|
|
1448
1491
|
* }>
|
|
1449
1492
|
* }>()("UserService") {}
|
|
1450
1493
|
*
|
|
1451
|
-
* class Logger extends
|
|
1494
|
+
* class Logger extends Context.Service<Logger, {
|
|
1452
1495
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1453
1496
|
* }>()("Logger") {}
|
|
1454
1497
|
*
|
|
@@ -1502,20 +1545,20 @@ export declare const provide: {
|
|
|
1502
1545
|
*
|
|
1503
1546
|
* @example
|
|
1504
1547
|
* ```ts
|
|
1505
|
-
* import { Effect, Layer,
|
|
1548
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1506
1549
|
*
|
|
1507
|
-
* class Database extends
|
|
1550
|
+
* class Database extends Context.Service<Database, {
|
|
1508
1551
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1509
1552
|
* }>()("Database") {}
|
|
1510
1553
|
*
|
|
1511
|
-
* class UserService extends
|
|
1554
|
+
* class UserService extends Context.Service<UserService, {
|
|
1512
1555
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1513
1556
|
* id: string
|
|
1514
1557
|
* name: string
|
|
1515
1558
|
* }>
|
|
1516
1559
|
* }>()("UserService") {}
|
|
1517
1560
|
*
|
|
1518
|
-
* class Logger extends
|
|
1561
|
+
* class Logger extends Context.Service<Logger, {
|
|
1519
1562
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1520
1563
|
* }>()("Logger") {}
|
|
1521
1564
|
*
|
|
@@ -1570,17 +1613,17 @@ export declare const provide: {
|
|
|
1570
1613
|
*
|
|
1571
1614
|
* @example
|
|
1572
1615
|
* ```ts
|
|
1573
|
-
* import { Effect, Layer,
|
|
1616
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1574
1617
|
*
|
|
1575
|
-
* class Database extends
|
|
1618
|
+
* class Database extends Context.Service<Database, {
|
|
1576
1619
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1577
1620
|
* }>()("Database") {}
|
|
1578
1621
|
*
|
|
1579
|
-
* class Logger extends
|
|
1622
|
+
* class Logger extends Context.Service<Logger, {
|
|
1580
1623
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1581
1624
|
* }>()("Logger") {}
|
|
1582
1625
|
*
|
|
1583
|
-
* class UserService extends
|
|
1626
|
+
* class UserService extends Context.Service<UserService, {
|
|
1584
1627
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1585
1628
|
* id: string
|
|
1586
1629
|
* name: string
|
|
@@ -1643,17 +1686,17 @@ export declare const provideMerge: {
|
|
|
1643
1686
|
*
|
|
1644
1687
|
* @example
|
|
1645
1688
|
* ```ts
|
|
1646
|
-
* import { Effect, Layer,
|
|
1689
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1647
1690
|
*
|
|
1648
|
-
* class Database extends
|
|
1691
|
+
* class Database extends Context.Service<Database, {
|
|
1649
1692
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1650
1693
|
* }>()("Database") {}
|
|
1651
1694
|
*
|
|
1652
|
-
* class Logger extends
|
|
1695
|
+
* class Logger extends Context.Service<Logger, {
|
|
1653
1696
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1654
1697
|
* }>()("Logger") {}
|
|
1655
1698
|
*
|
|
1656
|
-
* class UserService extends
|
|
1699
|
+
* class UserService extends Context.Service<UserService, {
|
|
1657
1700
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1658
1701
|
* id: string
|
|
1659
1702
|
* name: string
|
|
@@ -1716,17 +1759,17 @@ export declare const provideMerge: {
|
|
|
1716
1759
|
*
|
|
1717
1760
|
* @example
|
|
1718
1761
|
* ```ts
|
|
1719
|
-
* import { Effect, Layer,
|
|
1762
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1720
1763
|
*
|
|
1721
|
-
* class Database extends
|
|
1764
|
+
* class Database extends Context.Service<Database, {
|
|
1722
1765
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1723
1766
|
* }>()("Database") {}
|
|
1724
1767
|
*
|
|
1725
|
-
* class Logger extends
|
|
1768
|
+
* class Logger extends Context.Service<Logger, {
|
|
1726
1769
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1727
1770
|
* }>()("Logger") {}
|
|
1728
1771
|
*
|
|
1729
|
-
* class UserService extends
|
|
1772
|
+
* class UserService extends Context.Service<UserService, {
|
|
1730
1773
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1731
1774
|
* id: string
|
|
1732
1775
|
* name: string
|
|
@@ -1789,17 +1832,17 @@ export declare const provideMerge: {
|
|
|
1789
1832
|
*
|
|
1790
1833
|
* @example
|
|
1791
1834
|
* ```ts
|
|
1792
|
-
* import { Effect, Layer,
|
|
1835
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1793
1836
|
*
|
|
1794
|
-
* class Database extends
|
|
1837
|
+
* class Database extends Context.Service<Database, {
|
|
1795
1838
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1796
1839
|
* }>()("Database") {}
|
|
1797
1840
|
*
|
|
1798
|
-
* class Logger extends
|
|
1841
|
+
* class Logger extends Context.Service<Logger, {
|
|
1799
1842
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1800
1843
|
* }>()("Logger") {}
|
|
1801
1844
|
*
|
|
1802
|
-
* class UserService extends
|
|
1845
|
+
* class UserService extends Context.Service<UserService, {
|
|
1803
1846
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1804
1847
|
* id: string
|
|
1805
1848
|
* name: string
|
|
@@ -1862,17 +1905,17 @@ export declare const provideMerge: {
|
|
|
1862
1905
|
*
|
|
1863
1906
|
* @example
|
|
1864
1907
|
* ```ts
|
|
1865
|
-
* import { Effect, Layer,
|
|
1908
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1866
1909
|
*
|
|
1867
|
-
* class Database extends
|
|
1910
|
+
* class Database extends Context.Service<Database, {
|
|
1868
1911
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1869
1912
|
* }>()("Database") {}
|
|
1870
1913
|
*
|
|
1871
|
-
* class Logger extends
|
|
1914
|
+
* class Logger extends Context.Service<Logger, {
|
|
1872
1915
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1873
1916
|
* }>()("Logger") {}
|
|
1874
1917
|
*
|
|
1875
|
-
* class UserService extends
|
|
1918
|
+
* class UserService extends Context.Service<UserService, {
|
|
1876
1919
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1877
1920
|
* id: string
|
|
1878
1921
|
* name: string
|
|
@@ -1934,18 +1977,18 @@ export declare const provideMerge: {
|
|
|
1934
1977
|
*
|
|
1935
1978
|
* @example
|
|
1936
1979
|
* ```ts
|
|
1937
|
-
* import { Effect, Layer,
|
|
1980
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1938
1981
|
*
|
|
1939
|
-
* class Config extends
|
|
1982
|
+
* class Config extends Context.Service<Config, {
|
|
1940
1983
|
* readonly dbUrl: string
|
|
1941
1984
|
* readonly logLevel: string
|
|
1942
1985
|
* }>()("Config") {}
|
|
1943
1986
|
*
|
|
1944
|
-
* class Database extends
|
|
1987
|
+
* class Database extends Context.Service<Database, {
|
|
1945
1988
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1946
1989
|
* }>()("Database") {}
|
|
1947
1990
|
*
|
|
1948
|
-
* class Logger extends
|
|
1991
|
+
* class Logger extends Context.Service<Logger, {
|
|
1949
1992
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1950
1993
|
* }>()("Logger") {}
|
|
1951
1994
|
*
|
|
@@ -1957,8 +2000,8 @@ export declare const provideMerge: {
|
|
|
1957
2000
|
*
|
|
1958
2001
|
* // Dynamically create services based on config
|
|
1959
2002
|
* const dynamicServiceLayer = configLayer.pipe(
|
|
1960
|
-
* Layer.flatMap((
|
|
1961
|
-
* const config =
|
|
2003
|
+
* Layer.flatMap((context) => {
|
|
2004
|
+
* const config = Context.get(context, Config)
|
|
1962
2005
|
*
|
|
1963
2006
|
* // Create database layer based on config
|
|
1964
2007
|
* const dbLayer = Layer.succeed(Database)({
|
|
@@ -2005,18 +2048,18 @@ export declare const flatMap: {
|
|
|
2005
2048
|
*
|
|
2006
2049
|
* @example
|
|
2007
2050
|
* ```ts
|
|
2008
|
-
* import { Effect, Layer,
|
|
2051
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2009
2052
|
*
|
|
2010
|
-
* class Config extends
|
|
2053
|
+
* class Config extends Context.Service<Config, {
|
|
2011
2054
|
* readonly dbUrl: string
|
|
2012
2055
|
* readonly logLevel: string
|
|
2013
2056
|
* }>()("Config") {}
|
|
2014
2057
|
*
|
|
2015
|
-
* class Database extends
|
|
2058
|
+
* class Database extends Context.Service<Database, {
|
|
2016
2059
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2017
2060
|
* }>()("Database") {}
|
|
2018
2061
|
*
|
|
2019
|
-
* class Logger extends
|
|
2062
|
+
* class Logger extends Context.Service<Logger, {
|
|
2020
2063
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2021
2064
|
* }>()("Logger") {}
|
|
2022
2065
|
*
|
|
@@ -2028,8 +2071,8 @@ export declare const flatMap: {
|
|
|
2028
2071
|
*
|
|
2029
2072
|
* // Dynamically create services based on config
|
|
2030
2073
|
* const dynamicServiceLayer = configLayer.pipe(
|
|
2031
|
-
* Layer.flatMap((
|
|
2032
|
-
* const config =
|
|
2074
|
+
* Layer.flatMap((context) => {
|
|
2075
|
+
* const config = Context.get(context, Config)
|
|
2033
2076
|
*
|
|
2034
2077
|
* // Create database layer based on config
|
|
2035
2078
|
* const dbLayer = Layer.succeed(Database)({
|
|
@@ -2070,24 +2113,24 @@ export declare const flatMap: {
|
|
|
2070
2113
|
* @since 2.0.0
|
|
2071
2114
|
* @category sequencing
|
|
2072
2115
|
*/
|
|
2073
|
-
<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>;
|
|
2074
2117
|
/**
|
|
2075
2118
|
* Constructs a layer dynamically based on the output of this layer.
|
|
2076
2119
|
*
|
|
2077
2120
|
* @example
|
|
2078
2121
|
* ```ts
|
|
2079
|
-
* import { Effect, Layer,
|
|
2122
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2080
2123
|
*
|
|
2081
|
-
* class Config extends
|
|
2124
|
+
* class Config extends Context.Service<Config, {
|
|
2082
2125
|
* readonly dbUrl: string
|
|
2083
2126
|
* readonly logLevel: string
|
|
2084
2127
|
* }>()("Config") {}
|
|
2085
2128
|
*
|
|
2086
|
-
* class Database extends
|
|
2129
|
+
* class Database extends Context.Service<Database, {
|
|
2087
2130
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2088
2131
|
* }>()("Database") {}
|
|
2089
2132
|
*
|
|
2090
|
-
* class Logger extends
|
|
2133
|
+
* class Logger extends Context.Service<Logger, {
|
|
2091
2134
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2092
2135
|
* }>()("Logger") {}
|
|
2093
2136
|
*
|
|
@@ -2099,8 +2142,8 @@ export declare const flatMap: {
|
|
|
2099
2142
|
*
|
|
2100
2143
|
* // Dynamically create services based on config
|
|
2101
2144
|
* const dynamicServiceLayer = configLayer.pipe(
|
|
2102
|
-
* Layer.flatMap((
|
|
2103
|
-
* const config =
|
|
2145
|
+
* Layer.flatMap((context) => {
|
|
2146
|
+
* const config = Context.get(context, Config)
|
|
2104
2147
|
*
|
|
2105
2148
|
* // Create database layer based on config
|
|
2106
2149
|
* const dbLayer = Layer.succeed(Database)({
|
|
@@ -2141,7 +2184,7 @@ export declare const flatMap: {
|
|
|
2141
2184
|
* @since 2.0.0
|
|
2142
2185
|
* @category sequencing
|
|
2143
2186
|
*/
|
|
2144
|
-
<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>;
|
|
2145
2188
|
};
|
|
2146
2189
|
/**
|
|
2147
2190
|
* Performs the specified effect if this layer succeeds.
|
|
@@ -2156,14 +2199,14 @@ export declare const tap: {
|
|
|
2156
2199
|
* @since 4.0.0
|
|
2157
2200
|
* @category sequencing
|
|
2158
2201
|
*/
|
|
2159
|
-
<ROut, XR extends ROut, RIn2, E2, X>(f: (context:
|
|
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>>;
|
|
2160
2203
|
/**
|
|
2161
2204
|
* Performs the specified effect if this layer succeeds.
|
|
2162
2205
|
*
|
|
2163
2206
|
* @since 4.0.0
|
|
2164
2207
|
* @category sequencing
|
|
2165
2208
|
*/
|
|
2166
|
-
<RIn, E, ROut, XR extends ROut, RIn2, E2, X>(self: Layer<ROut, E, RIn>, f: (context:
|
|
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>>;
|
|
2167
2210
|
};
|
|
2168
2211
|
/**
|
|
2169
2212
|
* Performs the specified effect if this layer fails.
|
|
@@ -2233,13 +2276,13 @@ export declare const tapCause: {
|
|
|
2233
2276
|
*
|
|
2234
2277
|
* @example
|
|
2235
2278
|
* ```ts
|
|
2236
|
-
* import { Data, Effect, Layer,
|
|
2279
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2237
2280
|
*
|
|
2238
2281
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2239
2282
|
* message: string
|
|
2240
2283
|
* }> {}
|
|
2241
2284
|
*
|
|
2242
|
-
* class Database extends
|
|
2285
|
+
* class Database extends Context.Service<Database, {
|
|
2243
2286
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2244
2287
|
* }>()("Database") {}
|
|
2245
2288
|
*
|
|
@@ -2290,11 +2333,11 @@ catch_ as catch };
|
|
|
2290
2333
|
*
|
|
2291
2334
|
* @example
|
|
2292
2335
|
* ```ts
|
|
2293
|
-
* import { Data, Effect, Layer,
|
|
2336
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2294
2337
|
*
|
|
2295
2338
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
2296
2339
|
*
|
|
2297
|
-
* class Config extends
|
|
2340
|
+
* class Config extends Context.Service<Config, {
|
|
2298
2341
|
* readonly apiUrl: string
|
|
2299
2342
|
* }>()("Config") {}
|
|
2300
2343
|
*
|
|
@@ -2316,11 +2359,11 @@ export declare const catchTag: {
|
|
|
2316
2359
|
*
|
|
2317
2360
|
* @example
|
|
2318
2361
|
* ```ts
|
|
2319
|
-
* import { Data, Effect, Layer,
|
|
2362
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2320
2363
|
*
|
|
2321
2364
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
2322
2365
|
*
|
|
2323
|
-
* class Config extends
|
|
2366
|
+
* class Config extends Context.Service<Config, {
|
|
2324
2367
|
* readonly apiUrl: string
|
|
2325
2368
|
* }>()("Config") {}
|
|
2326
2369
|
*
|
|
@@ -2342,11 +2385,11 @@ export declare const catchTag: {
|
|
|
2342
2385
|
*
|
|
2343
2386
|
* @example
|
|
2344
2387
|
* ```ts
|
|
2345
|
-
* import { Data, Effect, Layer,
|
|
2388
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2346
2389
|
*
|
|
2347
2390
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
2348
2391
|
*
|
|
2349
|
-
* class Config extends
|
|
2392
|
+
* class Config extends Context.Service<Config, {
|
|
2350
2393
|
* readonly apiUrl: string
|
|
2351
2394
|
* }>()("Config") {}
|
|
2352
2395
|
*
|
|
@@ -2369,7 +2412,7 @@ export declare const catchTag: {
|
|
|
2369
2412
|
*
|
|
2370
2413
|
* @example
|
|
2371
2414
|
* ```ts
|
|
2372
|
-
* import { Data, Effect, Layer,
|
|
2415
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2373
2416
|
*
|
|
2374
2417
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2375
2418
|
* message: string
|
|
@@ -2379,11 +2422,11 @@ export declare const catchTag: {
|
|
|
2379
2422
|
* reason: string
|
|
2380
2423
|
* }> {}
|
|
2381
2424
|
*
|
|
2382
|
-
* class Database extends
|
|
2425
|
+
* class Database extends Context.Service<Database, {
|
|
2383
2426
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2384
2427
|
* }>()("Database") {}
|
|
2385
2428
|
*
|
|
2386
|
-
* class Logger extends
|
|
2429
|
+
* class Logger extends Context.Service<Logger, {
|
|
2387
2430
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2388
2431
|
* }>()("Logger") {}
|
|
2389
2432
|
*
|
|
@@ -2427,7 +2470,7 @@ export declare const catchCause: {
|
|
|
2427
2470
|
*
|
|
2428
2471
|
* @example
|
|
2429
2472
|
* ```ts
|
|
2430
|
-
* import { Data, Effect, Layer,
|
|
2473
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2431
2474
|
*
|
|
2432
2475
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2433
2476
|
* message: string
|
|
@@ -2437,11 +2480,11 @@ export declare const catchCause: {
|
|
|
2437
2480
|
* reason: string
|
|
2438
2481
|
* }> {}
|
|
2439
2482
|
*
|
|
2440
|
-
* class Database extends
|
|
2483
|
+
* class Database extends Context.Service<Database, {
|
|
2441
2484
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2442
2485
|
* }>()("Database") {}
|
|
2443
2486
|
*
|
|
2444
|
-
* class Logger extends
|
|
2487
|
+
* class Logger extends Context.Service<Logger, {
|
|
2445
2488
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2446
2489
|
* }>()("Logger") {}
|
|
2447
2490
|
*
|
|
@@ -2485,7 +2528,7 @@ export declare const catchCause: {
|
|
|
2485
2528
|
*
|
|
2486
2529
|
* @example
|
|
2487
2530
|
* ```ts
|
|
2488
|
-
* import { Data, Effect, Layer,
|
|
2531
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2489
2532
|
*
|
|
2490
2533
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2491
2534
|
* message: string
|
|
@@ -2495,11 +2538,11 @@ export declare const catchCause: {
|
|
|
2495
2538
|
* reason: string
|
|
2496
2539
|
* }> {}
|
|
2497
2540
|
*
|
|
2498
|
-
* class Database extends
|
|
2541
|
+
* class Database extends Context.Service<Database, {
|
|
2499
2542
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2500
2543
|
* }>()("Database") {}
|
|
2501
2544
|
*
|
|
2502
|
-
* class Logger extends
|
|
2545
|
+
* class Logger extends Context.Service<Logger, {
|
|
2503
2546
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2504
2547
|
* }>()("Logger") {}
|
|
2505
2548
|
*
|
|
@@ -2576,7 +2619,7 @@ export declare const updateService: {
|
|
|
2576
2619
|
* @since 3.13.0
|
|
2577
2620
|
* @category utils
|
|
2578
2621
|
*/
|
|
2579
|
-
<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>;
|
|
2580
2623
|
/**
|
|
2581
2624
|
* Updates a service in the context with a new implementation.
|
|
2582
2625
|
*
|
|
@@ -2595,16 +2638,16 @@ export declare const updateService: {
|
|
|
2595
2638
|
* @since 3.13.0
|
|
2596
2639
|
* @category utils
|
|
2597
2640
|
*/
|
|
2598
|
-
<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>;
|
|
2599
2642
|
};
|
|
2600
2643
|
/**
|
|
2601
2644
|
* Creates a fresh version of this layer that will not be shared.
|
|
2602
2645
|
*
|
|
2603
2646
|
* @example
|
|
2604
2647
|
* ```ts
|
|
2605
|
-
* import { Effect, Layer, Ref,
|
|
2648
|
+
* import { Effect, Layer, Ref, Context } from "effect"
|
|
2606
2649
|
*
|
|
2607
|
-
* class Counter extends
|
|
2650
|
+
* class Counter extends Context.Service<Counter, {
|
|
2608
2651
|
* readonly count: number
|
|
2609
2652
|
* readonly increment: () => Effect.Effect<number>
|
|
2610
2653
|
* }>()("Counter") {}
|
|
@@ -2655,14 +2698,14 @@ export declare const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R>;
|
|
|
2655
2698
|
*
|
|
2656
2699
|
* @example
|
|
2657
2700
|
* ```ts
|
|
2658
|
-
* import { Console, Effect, Layer,
|
|
2701
|
+
* import { Console, Effect, Layer, Context } from "effect"
|
|
2659
2702
|
*
|
|
2660
|
-
* class HttpServer extends
|
|
2703
|
+
* class HttpServer extends Context.Service<HttpServer, {
|
|
2661
2704
|
* readonly start: () => Effect.Effect<string>
|
|
2662
2705
|
* readonly stop: () => Effect.Effect<string>
|
|
2663
2706
|
* }>()("HttpServer") {}
|
|
2664
2707
|
*
|
|
2665
|
-
* class Logger extends
|
|
2708
|
+
* class Logger extends Context.Service<Logger, {
|
|
2666
2709
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2667
2710
|
* }>()("Logger") {}
|
|
2668
2711
|
*
|
|
@@ -2727,9 +2770,9 @@ type AnyEffectOrStream = Effect<any, any, any> | Stream.Stream<any, any, any> |
|
|
|
2727
2770
|
*
|
|
2728
2771
|
* @example
|
|
2729
2772
|
* ```ts
|
|
2730
|
-
* import { Effect, Layer,
|
|
2773
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2731
2774
|
*
|
|
2732
|
-
* class UserService extends
|
|
2775
|
+
* class UserService extends Context.Service<UserService, {
|
|
2733
2776
|
* readonly config: { apiUrl: string }
|
|
2734
2777
|
* readonly getUser: (
|
|
2735
2778
|
* id: string
|
|
@@ -2774,9 +2817,9 @@ export declare const mock: {
|
|
|
2774
2817
|
*
|
|
2775
2818
|
* @example
|
|
2776
2819
|
* ```ts
|
|
2777
|
-
* import { Effect, Layer,
|
|
2820
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2778
2821
|
*
|
|
2779
|
-
* class UserService extends
|
|
2822
|
+
* class UserService extends Context.Service<UserService, {
|
|
2780
2823
|
* readonly config: { apiUrl: string }
|
|
2781
2824
|
* readonly getUser: (
|
|
2782
2825
|
* id: string
|
|
@@ -2813,7 +2856,7 @@ export declare const mock: {
|
|
|
2813
2856
|
* @since 4.0.0
|
|
2814
2857
|
* @category Testing
|
|
2815
2858
|
*/
|
|
2816
|
-
<I, S extends object>(service:
|
|
2859
|
+
<I, S extends object>(service: Context.Key<I, S>): (implementation: PartialEffectful<S>) => Layer<I>;
|
|
2817
2860
|
/**
|
|
2818
2861
|
* Creates a mock layer for testing purposes. You can provide a partial
|
|
2819
2862
|
* implementation of the service, and any methods not provided will
|
|
@@ -2821,9 +2864,9 @@ export declare const mock: {
|
|
|
2821
2864
|
*
|
|
2822
2865
|
* @example
|
|
2823
2866
|
* ```ts
|
|
2824
|
-
* import { Effect, Layer,
|
|
2867
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2825
2868
|
*
|
|
2826
|
-
* class UserService extends
|
|
2869
|
+
* class UserService extends Context.Service<UserService, {
|
|
2827
2870
|
* readonly config: { apiUrl: string }
|
|
2828
2871
|
* readonly getUser: (
|
|
2829
2872
|
* id: string
|
|
@@ -2860,7 +2903,7 @@ export declare const mock: {
|
|
|
2860
2903
|
* @since 4.0.0
|
|
2861
2904
|
* @category Testing
|
|
2862
2905
|
*/
|
|
2863
|
-
<I, S extends object>(service:
|
|
2906
|
+
<I, S extends object>(service: Context.Key<I, S>, implementation: Types.NoInfer<PartialEffectful<S>>): Layer<I>;
|
|
2864
2907
|
};
|
|
2865
2908
|
/**
|
|
2866
2909
|
* Ensures that an layer's success type extends a given type `ROut`.
|
|
@@ -2974,9 +3017,9 @@ export interface SpanOptions extends Tracer.SpanOptions {
|
|
|
2974
3017
|
*
|
|
2975
3018
|
* @example
|
|
2976
3019
|
* ```ts
|
|
2977
|
-
* import { Console, Effect, Layer,
|
|
3020
|
+
* import { Console, Effect, Layer, Context, type Tracer } from "effect"
|
|
2978
3021
|
*
|
|
2979
|
-
* class Database extends
|
|
3022
|
+
* class Database extends Context.Service<Database, {
|
|
2980
3023
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2981
3024
|
* }>()("Database") {}
|
|
2982
3025
|
*
|
|
@@ -3020,9 +3063,9 @@ export declare const span: (name: string, options?: SpanOptions) => Layer<Tracer
|
|
|
3020
3063
|
*
|
|
3021
3064
|
* @example
|
|
3022
3065
|
* ```ts
|
|
3023
|
-
* import { Console, Effect, Layer,
|
|
3066
|
+
* import { Console, Effect, Layer, Context, Tracer } from "effect"
|
|
3024
3067
|
*
|
|
3025
|
-
* class Database extends
|
|
3068
|
+
* class Database extends Context.Service<Database, {
|
|
3026
3069
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3027
3070
|
* }>()("Database") {}
|
|
3028
3071
|
*
|
|
@@ -3059,13 +3102,13 @@ export declare const parentSpan: (span: Tracer.AnySpan) => Layer<Tracer.ParentSp
|
|
|
3059
3102
|
*
|
|
3060
3103
|
* @example
|
|
3061
3104
|
* ```ts
|
|
3062
|
-
* import { Effect, Layer,
|
|
3105
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3063
3106
|
*
|
|
3064
|
-
* class Database extends
|
|
3107
|
+
* class Database extends Context.Service<Database, {
|
|
3065
3108
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3066
3109
|
* }>()("Database") {}
|
|
3067
3110
|
*
|
|
3068
|
-
* class Logger extends
|
|
3111
|
+
* class Logger extends Context.Service<Logger, {
|
|
3069
3112
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3070
3113
|
* }>()("Logger") {}
|
|
3071
3114
|
*
|
|
@@ -3118,13 +3161,13 @@ export declare const withSpan: {
|
|
|
3118
3161
|
*
|
|
3119
3162
|
* @example
|
|
3120
3163
|
* ```ts
|
|
3121
|
-
* import { Effect, Layer,
|
|
3164
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3122
3165
|
*
|
|
3123
|
-
* class Database extends
|
|
3166
|
+
* class Database extends Context.Service<Database, {
|
|
3124
3167
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3125
3168
|
* }>()("Database") {}
|
|
3126
3169
|
*
|
|
3127
|
-
* class Logger extends
|
|
3170
|
+
* class Logger extends Context.Service<Logger, {
|
|
3128
3171
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3129
3172
|
* }>()("Logger") {}
|
|
3130
3173
|
*
|
|
@@ -3177,13 +3220,13 @@ export declare const withSpan: {
|
|
|
3177
3220
|
*
|
|
3178
3221
|
* @example
|
|
3179
3222
|
* ```ts
|
|
3180
|
-
* import { Effect, Layer,
|
|
3223
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3181
3224
|
*
|
|
3182
|
-
* class Database extends
|
|
3225
|
+
* class Database extends Context.Service<Database, {
|
|
3183
3226
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3184
3227
|
* }>()("Database") {}
|
|
3185
3228
|
*
|
|
3186
|
-
* class Logger extends
|
|
3229
|
+
* class Logger extends Context.Service<Logger, {
|
|
3187
3230
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3188
3231
|
* }>()("Logger") {}
|
|
3189
3232
|
*
|
|
@@ -3236,13 +3279,13 @@ export declare const withSpan: {
|
|
|
3236
3279
|
*
|
|
3237
3280
|
* @example
|
|
3238
3281
|
* ```ts
|
|
3239
|
-
* import { Effect, Layer,
|
|
3282
|
+
* import { Effect, Layer, Context, Tracer } from "effect"
|
|
3240
3283
|
*
|
|
3241
|
-
* class Database extends
|
|
3284
|
+
* class Database extends Context.Service<Database, {
|
|
3242
3285
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3243
3286
|
* }>()("Database") {}
|
|
3244
3287
|
*
|
|
3245
|
-
* class Cache extends
|
|
3288
|
+
* class Cache extends Context.Service<Cache, {
|
|
3246
3289
|
* readonly get: (key: string) => Effect.Effect<string | null>
|
|
3247
3290
|
* }>()("Cache") {}
|
|
3248
3291
|
*
|
|
@@ -3271,9 +3314,9 @@ export declare const withSpan: {
|
|
|
3271
3314
|
* Layer.withParentSpan(parentSpan)
|
|
3272
3315
|
* )
|
|
3273
3316
|
*
|
|
3274
|
-
* const
|
|
3275
|
-
* const database =
|
|
3276
|
-
* const cache =
|
|
3317
|
+
* const context = yield* Layer.build(AppLayer)
|
|
3318
|
+
* const database = Context.get(context, Database)
|
|
3319
|
+
* const cache = Context.get(context, Cache)
|
|
3277
3320
|
*
|
|
3278
3321
|
* const dbResult = yield* database.query("SELECT * FROM users")
|
|
3279
3322
|
* const cacheResult = yield* cache.get("user:123")
|
|
@@ -3296,13 +3339,13 @@ export declare const withParentSpan: {
|
|
|
3296
3339
|
*
|
|
3297
3340
|
* @example
|
|
3298
3341
|
* ```ts
|
|
3299
|
-
* import { Effect, Layer,
|
|
3342
|
+
* import { Effect, Layer, Context, Tracer } from "effect"
|
|
3300
3343
|
*
|
|
3301
|
-
* class Database extends
|
|
3344
|
+
* class Database extends Context.Service<Database, {
|
|
3302
3345
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3303
3346
|
* }>()("Database") {}
|
|
3304
3347
|
*
|
|
3305
|
-
* class Cache extends
|
|
3348
|
+
* class Cache extends Context.Service<Cache, {
|
|
3306
3349
|
* readonly get: (key: string) => Effect.Effect<string | null>
|
|
3307
3350
|
* }>()("Cache") {}
|
|
3308
3351
|
*
|
|
@@ -3331,9 +3374,9 @@ export declare const withParentSpan: {
|
|
|
3331
3374
|
* Layer.withParentSpan(parentSpan)
|
|
3332
3375
|
* )
|
|
3333
3376
|
*
|
|
3334
|
-
* const
|
|
3335
|
-
* const database =
|
|
3336
|
-
* const cache =
|
|
3377
|
+
* const context = yield* Layer.build(AppLayer)
|
|
3378
|
+
* const database = Context.get(context, Database)
|
|
3379
|
+
* const cache = Context.get(context, Cache)
|
|
3337
3380
|
*
|
|
3338
3381
|
* const dbResult = yield* database.query("SELECT * FROM users")
|
|
3339
3382
|
* const cacheResult = yield* cache.get("user:123")
|
|
@@ -3356,13 +3399,13 @@ export declare const withParentSpan: {
|
|
|
3356
3399
|
*
|
|
3357
3400
|
* @example
|
|
3358
3401
|
* ```ts
|
|
3359
|
-
* import { Effect, Layer,
|
|
3402
|
+
* import { Effect, Layer, Context, Tracer } from "effect"
|
|
3360
3403
|
*
|
|
3361
|
-
* class Database extends
|
|
3404
|
+
* class Database extends Context.Service<Database, {
|
|
3362
3405
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3363
3406
|
* }>()("Database") {}
|
|
3364
3407
|
*
|
|
3365
|
-
* class Cache extends
|
|
3408
|
+
* class Cache extends Context.Service<Cache, {
|
|
3366
3409
|
* readonly get: (key: string) => Effect.Effect<string | null>
|
|
3367
3410
|
* }>()("Cache") {}
|
|
3368
3411
|
*
|
|
@@ -3391,9 +3434,9 @@ export declare const withParentSpan: {
|
|
|
3391
3434
|
* Layer.withParentSpan(parentSpan)
|
|
3392
3435
|
* )
|
|
3393
3436
|
*
|
|
3394
|
-
* const
|
|
3395
|
-
* const database =
|
|
3396
|
-
* const cache =
|
|
3437
|
+
* const context = yield* Layer.build(AppLayer)
|
|
3438
|
+
* const database = Context.get(context, Database)
|
|
3439
|
+
* const cache = Context.get(context, Cache)
|
|
3397
3440
|
*
|
|
3398
3441
|
* const dbResult = yield* database.query("SELECT * FROM users")
|
|
3399
3442
|
* const cacheResult = yield* cache.get("user:123")
|