effect 4.0.0-beta.43 → 4.0.0-beta.45
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/Equal.d.ts.map +1 -1
- package/dist/Equal.js +16 -0
- package/dist/Equal.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/Hash.js +1 -1
- package/dist/Hash.js.map +1 -1
- package/dist/Layer.d.ts +286 -268
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +133 -134
- 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/Semaphore.d.ts +1 -1
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +1 -3
- package/dist/Semaphore.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/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 +49 -46
- 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/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/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.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +13 -14
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +8 -8
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +12 -12
- 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/Event.d.ts +0 -6
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js +0 -5
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +0 -2
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +0 -2
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +26 -9
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +128 -69
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +91 -37
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +223 -149
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +11 -9
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +15 -17
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +228 -0
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogMessage.js +214 -0
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -0
- package/dist/unstable/eventlog/EventLogRemote.d.ts +111 -193
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +167 -322
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +26 -48
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +128 -199
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +60 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +166 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +183 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +461 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +117 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js +284 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.d.ts → SqlEventJournal.d.ts} +2 -2
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.js → SqlEventJournal.js} +20 -14
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.d.ts → SqlEventLogServerEncrypted.d.ts} +5 -5
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.js → SqlEventLogServerEncrypted.js} +65 -24
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +25 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +354 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/index.d.ts +22 -2
- package/dist/unstable/eventlog/index.d.ts.map +1 -1
- package/dist/unstable/eventlog/index.js +22 -2
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts +2 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts.map +1 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js +89 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -0
- package/dist/unstable/http/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 +4 -5
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +4 -4
- 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 +4 -5
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +5 -5
- 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 +35 -14
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +30 -4
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +21 -21
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +73 -40
- 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 +8 -8
- 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 +8 -8
- 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 +2 -2
- 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 +21 -20
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +2 -2
- package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts +6 -3
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +46 -5
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +2 -2
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +2 -4
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +1 -12
- package/dist/unstable/schema/VariantSchema.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 +3 -3
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +7 -7
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +3 -3
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +6 -3
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +5 -5
- package/dist/unstable/workers/WorkerRunner.d.ts +2 -2
- package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerRunner.js +5 -2
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +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 +3 -3
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +5 -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/Equal.ts +17 -0
- 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/Hash.ts +2 -2
- package/src/Layer.ts +333 -307
- 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/Semaphore.ts +2 -4
- 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/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 +68 -66
- package/src/unstable/ai/Model.ts +8 -8
- 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/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 +14 -15
- package/src/unstable/cluster/Entity.ts +25 -25
- 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/Event.ts +0 -8
- package/src/unstable/eventlog/EventGroup.ts +0 -4
- package/src/unstable/eventlog/EventJournal.ts +146 -78
- package/src/unstable/eventlog/EventLog.ts +353 -232
- package/src/unstable/eventlog/EventLogEncryption.ts +18 -32
- package/src/unstable/eventlog/EventLogMessage.ts +277 -0
- package/src/unstable/eventlog/EventLogRemote.ts +263 -410
- package/src/unstable/eventlog/EventLogServer.ts +183 -275
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +206 -0
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +749 -0
- package/src/unstable/eventlog/EventLogSessionAuth.ts +437 -0
- package/src/unstable/eventlog/{SqlEventLogJournal.ts → SqlEventJournal.ts} +26 -18
- package/src/unstable/eventlog/{SqlEventLogServer.ts → SqlEventLogServerEncrypted.ts} +102 -40
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +500 -0
- package/src/unstable/eventlog/index.ts +27 -2
- package/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
- 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 +27 -12
- package/src/unstable/reactivity/AtomRegistry.ts +4 -4
- package/src/unstable/reactivity/AtomRpc.ts +20 -9
- package/src/unstable/reactivity/Reactivity.ts +6 -6
- package/src/unstable/rpc/Rpc.ts +59 -21
- package/src/unstable/rpc/RpcClient.ts +103 -54
- package/src/unstable/rpc/RpcGroup.ts +31 -31
- package/src/unstable/rpc/RpcMiddleware.ts +16 -16
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +2 -2
- package/src/unstable/rpc/RpcServer.ts +24 -22
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/rpc/Utils.ts +63 -4
- package/src/unstable/schema/Model.ts +4 -6
- package/src/unstable/schema/VariantSchema.ts +4 -17
- 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 +15 -17
- 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 +6 -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/unstable/eventlog/SqlEventLogJournal.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogJournal.js.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.js.map +0 -1
package/src/Layer.ts
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
import type { NonEmptyArray, 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 * as Deferred from "./Deferred.ts"
|
|
24
25
|
import type { Effect } from "./Effect.ts"
|
|
25
26
|
import type * as Exit from "./Exit.ts"
|
|
@@ -33,10 +34,10 @@ import { type Pipeable, pipeArguments } from "./Pipeable.ts"
|
|
|
33
34
|
import { hasProperty } from "./Predicate.ts"
|
|
34
35
|
import { CurrentStackFrame } from "./References.ts"
|
|
35
36
|
import * as Scope from "./Scope.ts"
|
|
36
|
-
import * as ServiceMap from "./ServiceMap.ts"
|
|
37
37
|
import type * as Stream from "./Stream.ts"
|
|
38
38
|
import * as Tracer from "./Tracer.ts"
|
|
39
39
|
import type * as Types from "./Types.ts"
|
|
40
|
+
import type * as Unify from "./Unify.ts"
|
|
40
41
|
|
|
41
42
|
const TypeId = "~effect/Layer"
|
|
42
43
|
|
|
@@ -53,9 +54,31 @@ const TypeId = "~effect/Layer"
|
|
|
53
54
|
*/
|
|
54
55
|
export interface Layer<in ROut, out E = never, out RIn = never> extends Variance<ROut, E, RIn>, Pipeable {
|
|
55
56
|
/** @internal */
|
|
56
|
-
build(memoMap: MemoMap, scope: Scope.Scope): Effect<
|
|
57
|
+
build(memoMap: MemoMap, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>
|
|
58
|
+
[Unify.typeSymbol]?: unknown
|
|
59
|
+
[Unify.unifySymbol]?: LayerUnify<this>
|
|
60
|
+
[Unify.ignoreSymbol]?: LayerUnifyIgnore
|
|
57
61
|
}
|
|
58
62
|
|
|
63
|
+
/**
|
|
64
|
+
* @since 4.0.0
|
|
65
|
+
* @category models
|
|
66
|
+
*/
|
|
67
|
+
export interface LayerUnify<A extends { [Unify.typeSymbol]?: any }> {
|
|
68
|
+
Layer?: () => A[Unify.typeSymbol] extends Layer<any, any, any> | infer _ ? Layer<
|
|
69
|
+
Success<Extract<A[Unify.typeSymbol], Any>>,
|
|
70
|
+
Error<Extract<A[Unify.typeSymbol], Any>>,
|
|
71
|
+
Services<Extract<A[Unify.typeSymbol], Any>>
|
|
72
|
+
>
|
|
73
|
+
: never
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @since 4.0.0
|
|
78
|
+
* @category models
|
|
79
|
+
*/
|
|
80
|
+
export interface LayerUnifyIgnore {}
|
|
81
|
+
|
|
59
82
|
/**
|
|
60
83
|
* The variance interface for Layer type parameters.
|
|
61
84
|
*
|
|
@@ -119,9 +142,9 @@ const MemoMapTypeId = "~effect/Layer/MemoMap"
|
|
|
119
142
|
*
|
|
120
143
|
* @example
|
|
121
144
|
* ```ts
|
|
122
|
-
* import { Effect, Layer,
|
|
145
|
+
* import { Effect, Layer, Context } from "effect"
|
|
123
146
|
*
|
|
124
|
-
* class Database extends
|
|
147
|
+
* class Database extends Context.Service<Database, {
|
|
125
148
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
126
149
|
* }>()("Database") {}
|
|
127
150
|
*
|
|
@@ -133,9 +156,9 @@ const MemoMapTypeId = "~effect/Layer/MemoMap"
|
|
|
133
156
|
* const dbLayer = Layer.succeed(Database)({
|
|
134
157
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
135
158
|
* })
|
|
136
|
-
* const
|
|
159
|
+
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
137
160
|
*
|
|
138
|
-
* return
|
|
161
|
+
* return Context.get(context, Database)
|
|
139
162
|
* })
|
|
140
163
|
* ```
|
|
141
164
|
*
|
|
@@ -147,8 +170,8 @@ export interface MemoMap {
|
|
|
147
170
|
readonly getOrElseMemoize: <RIn, E, ROut>(
|
|
148
171
|
layer: Layer<ROut, E, RIn>,
|
|
149
172
|
scope: Scope.Scope,
|
|
150
|
-
build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<
|
|
151
|
-
) => Effect<
|
|
173
|
+
build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<ROut>, E, RIn>
|
|
174
|
+
) => Effect<Context.Context<ROut>, E, RIn>
|
|
152
175
|
}
|
|
153
176
|
|
|
154
177
|
/**
|
|
@@ -156,9 +179,9 @@ export interface MemoMap {
|
|
|
156
179
|
*
|
|
157
180
|
* @example
|
|
158
181
|
* ```ts
|
|
159
|
-
* import { Effect, Layer,
|
|
182
|
+
* import { Effect, Layer, Context } from "effect"
|
|
160
183
|
*
|
|
161
|
-
* class Database extends
|
|
184
|
+
* class Database extends Context.Service<Database, {
|
|
162
185
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
163
186
|
* }>()("Database") {}
|
|
164
187
|
*
|
|
@@ -191,7 +214,7 @@ const fromBuildUnsafe = <ROut, E, RIn>(
|
|
|
191
214
|
build: (
|
|
192
215
|
memoMap: MemoMap,
|
|
193
216
|
scope: Scope.Scope
|
|
194
|
-
) => Effect<
|
|
217
|
+
) => Effect<Context.Context<ROut>, E, RIn>
|
|
195
218
|
): Layer<ROut, E, RIn> => {
|
|
196
219
|
const self = Object.create(LayerProto)
|
|
197
220
|
self.build = build
|
|
@@ -206,15 +229,15 @@ const fromBuildUnsafe = <ROut, E, RIn>(
|
|
|
206
229
|
*
|
|
207
230
|
* @example
|
|
208
231
|
* ```ts
|
|
209
|
-
* import { Effect, Layer,
|
|
232
|
+
* import { Effect, Layer, Context } from "effect"
|
|
210
233
|
*
|
|
211
|
-
* class Database extends
|
|
234
|
+
* class Database extends Context.Service<Database, {
|
|
212
235
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
213
236
|
* }>()("Database") {}
|
|
214
237
|
*
|
|
215
238
|
* const databaseLayer = Layer.fromBuild(() =>
|
|
216
239
|
* Effect.sync(() =>
|
|
217
|
-
*
|
|
240
|
+
* Context.make(Database, {
|
|
218
241
|
* query: (sql: string) => Effect.succeed("result")
|
|
219
242
|
* })
|
|
220
243
|
* )
|
|
@@ -228,7 +251,7 @@ export const fromBuild = <ROut, E, RIn>(
|
|
|
228
251
|
build: (
|
|
229
252
|
memoMap: MemoMap,
|
|
230
253
|
scope: Scope.Scope
|
|
231
|
-
) => Effect<
|
|
254
|
+
) => Effect<Context.Context<ROut>, E, RIn>
|
|
232
255
|
): Layer<ROut, E, RIn> =>
|
|
233
256
|
fromBuildUnsafe((memoMap: MemoMap, scope: Scope.Scope) => {
|
|
234
257
|
const layerScope = Scope.forkUnsafe(scope)
|
|
@@ -247,15 +270,15 @@ export const fromBuild = <ROut, E, RIn>(
|
|
|
247
270
|
*
|
|
248
271
|
* @example
|
|
249
272
|
* ```ts
|
|
250
|
-
* import { Effect, Layer,
|
|
273
|
+
* import { Effect, Layer, Context } from "effect"
|
|
251
274
|
*
|
|
252
|
-
* class Database extends
|
|
275
|
+
* class Database extends Context.Service<Database, {
|
|
253
276
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
254
277
|
* }>()("Database") {}
|
|
255
278
|
*
|
|
256
279
|
* const databaseLayer = Layer.fromBuildMemo(() =>
|
|
257
280
|
* Effect.sync(() =>
|
|
258
|
-
*
|
|
281
|
+
* Context.make(Database, {
|
|
259
282
|
* query: (sql: string) => Effect.succeed("result")
|
|
260
283
|
* })
|
|
261
284
|
* )
|
|
@@ -269,7 +292,7 @@ export const fromBuildMemo = <ROut, E, RIn>(
|
|
|
269
292
|
build: (
|
|
270
293
|
memoMap: MemoMap,
|
|
271
294
|
scope: Scope.Scope
|
|
272
|
-
) => Effect<
|
|
295
|
+
) => Effect<Context.Context<ROut>, E, RIn>
|
|
273
296
|
): Layer<ROut, E, RIn> => {
|
|
274
297
|
const self: Layer<ROut, E, RIn> = fromBuild((memoMap, scope) => memoMap.getOrElseMemoize(self, scope, build))
|
|
275
298
|
return self
|
|
@@ -282,15 +305,15 @@ class MemoMapImpl implements MemoMap {
|
|
|
282
305
|
|
|
283
306
|
readonly map = new Map<Layer<any, any, any>, {
|
|
284
307
|
observers: number
|
|
285
|
-
effect: Effect<
|
|
308
|
+
effect: Effect<Context.Context<any>, any>
|
|
286
309
|
readonly finalizer: (exit: Exit.Exit<unknown, unknown>) => Effect<void>
|
|
287
310
|
}>()
|
|
288
311
|
|
|
289
312
|
getOrElseMemoize<RIn, E, ROut>(
|
|
290
313
|
layer: Layer<ROut, E, RIn>,
|
|
291
314
|
scope: Scope.Scope,
|
|
292
|
-
build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<
|
|
293
|
-
): Effect<
|
|
315
|
+
build: (memoMap: MemoMap, scope: Scope.Scope) => Effect<Context.Context<ROut>, E, RIn>
|
|
316
|
+
): Effect<Context.Context<ROut>, E, RIn> {
|
|
294
317
|
if (this.map.has(layer)) {
|
|
295
318
|
const entry = this.map.get(layer)!
|
|
296
319
|
entry.observers++
|
|
@@ -300,7 +323,7 @@ class MemoMapImpl implements MemoMap {
|
|
|
300
323
|
)
|
|
301
324
|
}
|
|
302
325
|
const layerScope = Scope.makeUnsafe()
|
|
303
|
-
const deferred = Deferred.makeUnsafe<
|
|
326
|
+
const deferred = Deferred.makeUnsafe<Context.Context<ROut>, E>()
|
|
304
327
|
const entry = {
|
|
305
328
|
observers: 1,
|
|
306
329
|
effect: Deferred.await(deferred),
|
|
@@ -330,9 +353,9 @@ class MemoMapImpl implements MemoMap {
|
|
|
330
353
|
*
|
|
331
354
|
* @example
|
|
332
355
|
* ```ts
|
|
333
|
-
* import { Effect, Layer,
|
|
356
|
+
* import { Effect, Layer, Context } from "effect"
|
|
334
357
|
*
|
|
335
|
-
* class Database extends
|
|
358
|
+
* class Database extends Context.Service<Database, {
|
|
336
359
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
337
360
|
* }>()("Database") {}
|
|
338
361
|
*
|
|
@@ -344,9 +367,9 @@ class MemoMapImpl implements MemoMap {
|
|
|
344
367
|
* const dbLayer = Layer.succeed(Database)({
|
|
345
368
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
346
369
|
* })
|
|
347
|
-
* const
|
|
370
|
+
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
348
371
|
*
|
|
349
|
-
* return
|
|
372
|
+
* return Context.get(context, Database)
|
|
350
373
|
* })
|
|
351
374
|
* ```
|
|
352
375
|
*
|
|
@@ -360,9 +383,9 @@ export const makeMemoMapUnsafe = (): MemoMap => new MemoMapImpl()
|
|
|
360
383
|
*
|
|
361
384
|
* @example
|
|
362
385
|
* ```ts
|
|
363
|
-
* import { Effect, Layer,
|
|
386
|
+
* import { Effect, Layer, Context } from "effect"
|
|
364
387
|
*
|
|
365
|
-
* class Database extends
|
|
388
|
+
* class Database extends Context.Service<Database, {
|
|
366
389
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
367
390
|
* }>()("Database") {}
|
|
368
391
|
*
|
|
@@ -374,9 +397,9 @@ export const makeMemoMapUnsafe = (): MemoMap => new MemoMapImpl()
|
|
|
374
397
|
* const dbLayer = Layer.succeed(Database)({
|
|
375
398
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
376
399
|
* })
|
|
377
|
-
* const
|
|
400
|
+
* const context = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
378
401
|
*
|
|
379
|
-
* return
|
|
402
|
+
* return Context.get(context, Database)
|
|
380
403
|
* })
|
|
381
404
|
* ```
|
|
382
405
|
*
|
|
@@ -394,8 +417,8 @@ export const makeMemoMap: Effect<MemoMap> = internalEffect.sync(makeMemoMapUnsaf
|
|
|
394
417
|
* @since 3.13.0
|
|
395
418
|
* @category models
|
|
396
419
|
*/
|
|
397
|
-
export class CurrentMemoMap extends
|
|
398
|
-
static getOrCreate: <Services>(self:
|
|
420
|
+
export class CurrentMemoMap extends Context.Service<CurrentMemoMap, MemoMap>()("effect/Layer/CurrentMemoMap") {
|
|
421
|
+
static getOrCreate: <Services>(self: Context.Context<Services>) => MemoMap = Context.getOrElse(
|
|
399
422
|
this,
|
|
400
423
|
makeMemoMapUnsafe
|
|
401
424
|
)
|
|
@@ -407,13 +430,13 @@ export class CurrentMemoMap extends ServiceMap.Service<CurrentMemoMap, MemoMap>(
|
|
|
407
430
|
*
|
|
408
431
|
* @example
|
|
409
432
|
* ```ts
|
|
410
|
-
* import { Effect, Layer,
|
|
433
|
+
* import { Effect, Layer, Context } from "effect"
|
|
411
434
|
*
|
|
412
|
-
* class Database extends
|
|
435
|
+
* class Database extends Context.Service<Database, {
|
|
413
436
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
414
437
|
* }>()("Database") {}
|
|
415
438
|
*
|
|
416
|
-
* class Logger extends
|
|
439
|
+
* class Logger extends Context.Service<Logger, {
|
|
417
440
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
418
441
|
* }>()("Logger") {}
|
|
419
442
|
*
|
|
@@ -426,21 +449,21 @@ export class CurrentMemoMap extends ServiceMap.Service<CurrentMemoMap, MemoMap>(
|
|
|
426
449
|
* const dbLayer = Layer.succeed(Database)({
|
|
427
450
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
428
451
|
* })
|
|
429
|
-
* const
|
|
452
|
+
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
430
453
|
*
|
|
431
454
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
432
455
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
433
456
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
434
457
|
* })
|
|
435
|
-
* const
|
|
458
|
+
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
436
459
|
* loggerLayer,
|
|
437
460
|
* memoMap,
|
|
438
461
|
* scope
|
|
439
462
|
* )
|
|
440
463
|
*
|
|
441
464
|
* return {
|
|
442
|
-
* database:
|
|
443
|
-
* logger:
|
|
465
|
+
* database: Context.get(dbContext, Database),
|
|
466
|
+
* logger: Context.get(loggerContext, Logger)
|
|
444
467
|
* }
|
|
445
468
|
* })
|
|
446
469
|
* ```
|
|
@@ -455,13 +478,13 @@ export const buildWithMemoMap: {
|
|
|
455
478
|
*
|
|
456
479
|
* @example
|
|
457
480
|
* ```ts
|
|
458
|
-
* import { Effect, Layer,
|
|
481
|
+
* import { Effect, Layer, Context } from "effect"
|
|
459
482
|
*
|
|
460
|
-
* class Database extends
|
|
483
|
+
* class Database extends Context.Service<Database, {
|
|
461
484
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
462
485
|
* }>()("Database") {}
|
|
463
486
|
*
|
|
464
|
-
* class Logger extends
|
|
487
|
+
* class Logger extends Context.Service<Logger, {
|
|
465
488
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
466
489
|
* }>()("Logger") {}
|
|
467
490
|
*
|
|
@@ -474,21 +497,21 @@ export const buildWithMemoMap: {
|
|
|
474
497
|
* const dbLayer = Layer.succeed(Database)({
|
|
475
498
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
476
499
|
* })
|
|
477
|
-
* const
|
|
500
|
+
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
478
501
|
*
|
|
479
502
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
480
503
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
481
504
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
482
505
|
* })
|
|
483
|
-
* const
|
|
506
|
+
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
484
507
|
* loggerLayer,
|
|
485
508
|
* memoMap,
|
|
486
509
|
* scope
|
|
487
510
|
* )
|
|
488
511
|
*
|
|
489
512
|
* return {
|
|
490
|
-
* database:
|
|
491
|
-
* logger:
|
|
513
|
+
* database: Context.get(dbContext, Database),
|
|
514
|
+
* logger: Context.get(loggerContext, Logger)
|
|
492
515
|
* }
|
|
493
516
|
* })
|
|
494
517
|
* ```
|
|
@@ -496,20 +519,20 @@ export const buildWithMemoMap: {
|
|
|
496
519
|
* @since 2.0.0
|
|
497
520
|
* @category memo map
|
|
498
521
|
*/
|
|
499
|
-
(memoMap: MemoMap, scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
522
|
+
(memoMap: MemoMap, scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>
|
|
500
523
|
/**
|
|
501
524
|
* Builds a layer into an `Effect` value, using the specified `MemoMap` to memoize
|
|
502
525
|
* the layer construction.
|
|
503
526
|
*
|
|
504
527
|
* @example
|
|
505
528
|
* ```ts
|
|
506
|
-
* import { Effect, Layer,
|
|
529
|
+
* import { Effect, Layer, Context } from "effect"
|
|
507
530
|
*
|
|
508
|
-
* class Database extends
|
|
531
|
+
* class Database extends Context.Service<Database, {
|
|
509
532
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
510
533
|
* }>()("Database") {}
|
|
511
534
|
*
|
|
512
|
-
* class Logger extends
|
|
535
|
+
* class Logger extends Context.Service<Logger, {
|
|
513
536
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
514
537
|
* }>()("Logger") {}
|
|
515
538
|
*
|
|
@@ -522,21 +545,21 @@ export const buildWithMemoMap: {
|
|
|
522
545
|
* const dbLayer = Layer.succeed(Database)({
|
|
523
546
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
524
547
|
* })
|
|
525
|
-
* const
|
|
548
|
+
* const dbContext = yield* Layer.buildWithMemoMap(dbLayer, memoMap, scope)
|
|
526
549
|
*
|
|
527
550
|
* // Build logger layer with same memoization (reuses memo if same layer)
|
|
528
551
|
* const loggerLayer = Layer.succeed(Logger)({
|
|
529
552
|
* log: Effect.fn("Logger.log")((msg: string) => Effect.sync(() => console.log(msg)))
|
|
530
553
|
* })
|
|
531
|
-
* const
|
|
554
|
+
* const loggerContext = yield* Layer.buildWithMemoMap(
|
|
532
555
|
* loggerLayer,
|
|
533
556
|
* memoMap,
|
|
534
557
|
* scope
|
|
535
558
|
* )
|
|
536
559
|
*
|
|
537
560
|
* return {
|
|
538
|
-
* database:
|
|
539
|
-
* logger:
|
|
561
|
+
* database: Context.get(dbContext, Database),
|
|
562
|
+
* logger: Context.get(loggerContext, Logger)
|
|
540
563
|
* }
|
|
541
564
|
* })
|
|
542
565
|
* ```
|
|
@@ -544,14 +567,14 @@ export const buildWithMemoMap: {
|
|
|
544
567
|
* @since 2.0.0
|
|
545
568
|
* @category memo map
|
|
546
569
|
*/
|
|
547
|
-
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, memoMap: MemoMap, scope: Scope.Scope): Effect<
|
|
570
|
+
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, memoMap: MemoMap, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>
|
|
548
571
|
} = dual(3, <RIn, E, ROut>(
|
|
549
572
|
self: Layer<ROut, E, RIn>,
|
|
550
573
|
memoMap: MemoMap,
|
|
551
574
|
scope: Scope.Scope
|
|
552
|
-
): Effect<
|
|
575
|
+
): Effect<Context.Context<ROut>, E, RIn> =>
|
|
553
576
|
internalEffect.provideService(
|
|
554
|
-
internalEffect.map(self.build(memoMap, scope),
|
|
577
|
+
internalEffect.map(self.build(memoMap, scope), Context.add(CurrentMemoMap, memoMap)),
|
|
555
578
|
CurrentMemoMap,
|
|
556
579
|
memoMap
|
|
557
580
|
))
|
|
@@ -561,9 +584,9 @@ export const buildWithMemoMap: {
|
|
|
561
584
|
*
|
|
562
585
|
* @example
|
|
563
586
|
* ```ts
|
|
564
|
-
* import { Effect, Layer,
|
|
587
|
+
* import { Effect, Layer, Context } from "effect"
|
|
565
588
|
*
|
|
566
|
-
* class Database extends
|
|
589
|
+
* class Database extends Context.Service<Database, {
|
|
567
590
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
568
591
|
* }>()("Database") {}
|
|
569
592
|
*
|
|
@@ -573,11 +596,11 @@ export const buildWithMemoMap: {
|
|
|
573
596
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
574
597
|
* })
|
|
575
598
|
*
|
|
576
|
-
* // Build the layer into
|
|
577
|
-
* const
|
|
599
|
+
* // Build the layer into Context - automatically manages scope and memoization
|
|
600
|
+
* const context = yield* Layer.build(dbLayer)
|
|
578
601
|
*
|
|
579
602
|
* // Extract the specific service from the built layer
|
|
580
|
-
* const database =
|
|
603
|
+
* const database = Context.get(context, Database)
|
|
581
604
|
*
|
|
582
605
|
* return yield* database.query("SELECT * FROM users")
|
|
583
606
|
* })
|
|
@@ -588,12 +611,12 @@ export const buildWithMemoMap: {
|
|
|
588
611
|
*/
|
|
589
612
|
export const build = <RIn, E, ROut>(
|
|
590
613
|
self: Layer<ROut, E, RIn>
|
|
591
|
-
): Effect<
|
|
614
|
+
): Effect<Context.Context<ROut>, E, RIn | Scope.Scope> =>
|
|
592
615
|
core.withFiber((fiber) =>
|
|
593
616
|
buildWithMemoMap(
|
|
594
617
|
self,
|
|
595
|
-
CurrentMemoMap.getOrCreate(fiber.
|
|
596
|
-
|
|
618
|
+
CurrentMemoMap.getOrCreate(fiber.context),
|
|
619
|
+
Context.getUnsafe(fiber.context, Scope.Scope)
|
|
597
620
|
)
|
|
598
621
|
)
|
|
599
622
|
|
|
@@ -606,9 +629,9 @@ export const build = <RIn, E, ROut>(
|
|
|
606
629
|
*
|
|
607
630
|
* @example
|
|
608
631
|
* ```ts
|
|
609
|
-
* import { Effect, Layer, Scope,
|
|
632
|
+
* import { Effect, Layer, Scope, Context } from "effect"
|
|
610
633
|
*
|
|
611
|
-
* class Database extends
|
|
634
|
+
* class Database extends Context.Service<Database, {
|
|
612
635
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
613
636
|
* }>()("Database") {}
|
|
614
637
|
*
|
|
@@ -626,8 +649,8 @@ export const build = <RIn, E, ROut>(
|
|
|
626
649
|
* }))
|
|
627
650
|
*
|
|
628
651
|
* // Build with specific scope - resources tied to this scope
|
|
629
|
-
* const
|
|
630
|
-
* const database =
|
|
652
|
+
* const context = yield* Layer.buildWithScope(dbLayer, scope)
|
|
653
|
+
* const database = Context.get(context, Database)
|
|
631
654
|
*
|
|
632
655
|
* return yield* database.query("SELECT * FROM users")
|
|
633
656
|
* // Database will be closed when scope is closed
|
|
@@ -647,9 +670,9 @@ export const buildWithScope: {
|
|
|
647
670
|
*
|
|
648
671
|
* @example
|
|
649
672
|
* ```ts
|
|
650
|
-
* import { Effect, Layer, Scope,
|
|
673
|
+
* import { Effect, Layer, Scope, Context } from "effect"
|
|
651
674
|
*
|
|
652
|
-
* class Database extends
|
|
675
|
+
* class Database extends Context.Service<Database, {
|
|
653
676
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
654
677
|
* }>()("Database") {}
|
|
655
678
|
*
|
|
@@ -667,8 +690,8 @@ export const buildWithScope: {
|
|
|
667
690
|
* }))
|
|
668
691
|
*
|
|
669
692
|
* // Build with specific scope - resources tied to this scope
|
|
670
|
-
* const
|
|
671
|
-
* const database =
|
|
693
|
+
* const context = yield* Layer.buildWithScope(dbLayer, scope)
|
|
694
|
+
* const database = Context.get(context, Database)
|
|
672
695
|
*
|
|
673
696
|
* return yield* database.query("SELECT * FROM users")
|
|
674
697
|
* // Database will be closed when scope is closed
|
|
@@ -678,7 +701,7 @@ export const buildWithScope: {
|
|
|
678
701
|
* @since 2.0.0
|
|
679
702
|
* @category destructors
|
|
680
703
|
*/
|
|
681
|
-
(scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<
|
|
704
|
+
(scope: Scope.Scope): <RIn, E, ROut>(self: Layer<ROut, E, RIn>) => Effect<Context.Context<ROut>, E, RIn>
|
|
682
705
|
/**
|
|
683
706
|
* Builds a layer into an `Effect` value. Any resources associated with this
|
|
684
707
|
* layer will be released when the specified scope is closed unless their scope
|
|
@@ -688,9 +711,9 @@ export const buildWithScope: {
|
|
|
688
711
|
*
|
|
689
712
|
* @example
|
|
690
713
|
* ```ts
|
|
691
|
-
* import { Effect, Layer, Scope,
|
|
714
|
+
* import { Effect, Layer, Scope, Context } from "effect"
|
|
692
715
|
*
|
|
693
|
-
* class Database extends
|
|
716
|
+
* class Database extends Context.Service<Database, {
|
|
694
717
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
695
718
|
* }>()("Database") {}
|
|
696
719
|
*
|
|
@@ -708,8 +731,8 @@ export const buildWithScope: {
|
|
|
708
731
|
* }))
|
|
709
732
|
*
|
|
710
733
|
* // Build with specific scope - resources tied to this scope
|
|
711
|
-
* const
|
|
712
|
-
* const database =
|
|
734
|
+
* const context = yield* Layer.buildWithScope(dbLayer, scope)
|
|
735
|
+
* const database = Context.get(context, Database)
|
|
713
736
|
*
|
|
714
737
|
* return yield* database.query("SELECT * FROM users")
|
|
715
738
|
* // Database will be closed when scope is closed
|
|
@@ -719,15 +742,15 @@ export const buildWithScope: {
|
|
|
719
742
|
* @since 2.0.0
|
|
720
743
|
* @category destructors
|
|
721
744
|
*/
|
|
722
|
-
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, scope: Scope.Scope): Effect<
|
|
745
|
+
<RIn, E, ROut>(self: Layer<ROut, E, RIn>, scope: Scope.Scope): Effect<Context.Context<ROut>, E, RIn>
|
|
723
746
|
} = dual(2, <RIn, E, ROut>(
|
|
724
747
|
self: Layer<ROut, E, RIn>,
|
|
725
748
|
scope: Scope.Scope
|
|
726
|
-
): Effect<
|
|
749
|
+
): Effect<Context.Context<ROut>, E, RIn> =>
|
|
727
750
|
core.withFiber((fiber) =>
|
|
728
751
|
buildWithMemoMap(
|
|
729
752
|
self,
|
|
730
|
-
CurrentMemoMap.getOrCreate(fiber.
|
|
753
|
+
CurrentMemoMap.getOrCreate(fiber.context),
|
|
731
754
|
scope
|
|
732
755
|
)
|
|
733
756
|
))
|
|
@@ -737,13 +760,13 @@ export const buildWithScope: {
|
|
|
737
760
|
*
|
|
738
761
|
* @example
|
|
739
762
|
* ```ts
|
|
740
|
-
* import { Effect, Layer,
|
|
763
|
+
* import { Effect, Layer, Context } from "effect"
|
|
741
764
|
*
|
|
742
|
-
* class Database extends
|
|
765
|
+
* class Database extends Context.Service<Database, {
|
|
743
766
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
744
767
|
* }>()("Database") {}
|
|
745
768
|
*
|
|
746
|
-
* class Logger extends
|
|
769
|
+
* class Logger extends Context.Service<Logger, {
|
|
747
770
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
748
771
|
* }>()("Logger") {}
|
|
749
772
|
*
|
|
@@ -780,13 +803,13 @@ export const succeed: {
|
|
|
780
803
|
*
|
|
781
804
|
* @example
|
|
782
805
|
* ```ts
|
|
783
|
-
* import { Effect, Layer,
|
|
806
|
+
* import { Effect, Layer, Context } from "effect"
|
|
784
807
|
*
|
|
785
|
-
* class Database extends
|
|
808
|
+
* class Database extends Context.Service<Database, {
|
|
786
809
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
787
810
|
* }>()("Database") {}
|
|
788
811
|
*
|
|
789
|
-
* class Logger extends
|
|
812
|
+
* class Logger extends Context.Service<Logger, {
|
|
790
813
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
791
814
|
* }>()("Logger") {}
|
|
792
815
|
*
|
|
@@ -817,19 +840,19 @@ export const succeed: {
|
|
|
817
840
|
* @since 2.0.0
|
|
818
841
|
* @category constructors
|
|
819
842
|
*/
|
|
820
|
-
<I, S>(service:
|
|
843
|
+
<I, S>(service: Context.Key<I, S>): (resource: S) => Layer<I>
|
|
821
844
|
/**
|
|
822
845
|
* Constructs a layer from the specified value.
|
|
823
846
|
*
|
|
824
847
|
* @example
|
|
825
848
|
* ```ts
|
|
826
|
-
* import { Effect, Layer,
|
|
849
|
+
* import { Effect, Layer, Context } from "effect"
|
|
827
850
|
*
|
|
828
|
-
* class Database extends
|
|
851
|
+
* class Database extends Context.Service<Database, {
|
|
829
852
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
830
853
|
* }>()("Database") {}
|
|
831
854
|
*
|
|
832
|
-
* class Logger extends
|
|
855
|
+
* class Logger extends Context.Service<Logger, {
|
|
833
856
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
834
857
|
* }>()("Logger") {}
|
|
835
858
|
*
|
|
@@ -860,12 +883,12 @@ export const succeed: {
|
|
|
860
883
|
* @since 2.0.0
|
|
861
884
|
* @category constructors
|
|
862
885
|
*/
|
|
863
|
-
<I, S>(service:
|
|
886
|
+
<I, S>(service: Context.Key<I, S>, resource: Types.NoInfer<S>): Layer<I>
|
|
864
887
|
} = function() {
|
|
865
888
|
if (arguments.length === 1) {
|
|
866
|
-
return (resource: any) =>
|
|
889
|
+
return (resource: any) => succeedContext(Context.make(arguments[0], resource))
|
|
867
890
|
}
|
|
868
|
-
return
|
|
891
|
+
return succeedContext(Context.make(arguments[0], arguments[1]))
|
|
869
892
|
} as any
|
|
870
893
|
|
|
871
894
|
/**
|
|
@@ -873,40 +896,39 @@ export const succeed: {
|
|
|
873
896
|
* services.
|
|
874
897
|
*
|
|
875
898
|
* This is a more general version of `succeed` that allows you to provide multiple
|
|
876
|
-
* services at once through a `
|
|
899
|
+
* services at once through a `Context`.
|
|
877
900
|
*
|
|
878
901
|
* @example
|
|
879
902
|
* ```ts
|
|
880
|
-
* import { Effect, Layer,
|
|
903
|
+
* import { Effect, Layer, Context } from "effect"
|
|
881
904
|
*
|
|
882
|
-
* class Database extends
|
|
905
|
+
* class Database extends Context.Service<Database, {
|
|
883
906
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
884
907
|
* }>()("Database") {}
|
|
885
908
|
*
|
|
886
|
-
* class Logger extends
|
|
909
|
+
* class Logger extends Context.Service<Logger, {
|
|
887
910
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
888
911
|
* }>()("Logger") {}
|
|
889
912
|
*
|
|
890
|
-
* const
|
|
913
|
+
* const context = Context.make(Database, {
|
|
891
914
|
* query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result"))
|
|
892
|
-
* })
|
|
893
|
-
* .
|
|
894
|
-
*
|
|
895
|
-
*
|
|
896
|
-
*
|
|
897
|
-
* )
|
|
915
|
+
* }).pipe(
|
|
916
|
+
* Context.add(Logger, {
|
|
917
|
+
* log: (msg: string) => Effect.sync(() => console.log(msg))
|
|
918
|
+
* })
|
|
919
|
+
* )
|
|
898
920
|
*
|
|
899
|
-
* const layer = Layer.
|
|
921
|
+
* const layer = Layer.succeedContext(context)
|
|
900
922
|
* ```
|
|
901
923
|
*
|
|
902
924
|
* @since 2.0.0
|
|
903
925
|
* @category constructors
|
|
904
926
|
*/
|
|
905
|
-
export const
|
|
906
|
-
fromBuildUnsafe(constant(internalEffect.succeed(
|
|
927
|
+
export const succeedContext = <A>(context: Context.Context<A>): Layer<A> =>
|
|
928
|
+
fromBuildUnsafe(constant(internalEffect.succeed(context)))
|
|
907
929
|
|
|
908
930
|
/**
|
|
909
|
-
* A Layer that constructs an empty
|
|
931
|
+
* A Layer that constructs an empty Context.
|
|
910
932
|
*
|
|
911
933
|
* This layer provides no services and can be used as a neutral element
|
|
912
934
|
* in layer composition or as a starting point for building layers.
|
|
@@ -921,7 +943,7 @@ export const succeedServices = <A>(services: ServiceMap.ServiceMap<A>): Layer<A>
|
|
|
921
943
|
* @since 2.0.0
|
|
922
944
|
* @category constructors
|
|
923
945
|
*/
|
|
924
|
-
export const empty: Layer<never> =
|
|
946
|
+
export const empty: Layer<never> = succeedContext(Context.empty())
|
|
925
947
|
|
|
926
948
|
/**
|
|
927
949
|
* Lazily constructs a layer from the specified value.
|
|
@@ -931,9 +953,9 @@ export const empty: Layer<never> = succeedServices(ServiceMap.empty())
|
|
|
931
953
|
*
|
|
932
954
|
* @example
|
|
933
955
|
* ```ts
|
|
934
|
-
* import { Effect, Layer,
|
|
956
|
+
* import { Effect, Layer, Context } from "effect"
|
|
935
957
|
*
|
|
936
|
-
* class Database extends
|
|
958
|
+
* class Database extends Context.Service<Database, {
|
|
937
959
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
938
960
|
* }>()("Database") {}
|
|
939
961
|
*
|
|
@@ -954,9 +976,9 @@ export const sync: {
|
|
|
954
976
|
*
|
|
955
977
|
* @example
|
|
956
978
|
* ```ts
|
|
957
|
-
* import { Effect, Layer,
|
|
979
|
+
* import { Effect, Layer, Context } from "effect"
|
|
958
980
|
*
|
|
959
|
-
* class Database extends
|
|
981
|
+
* class Database extends Context.Service<Database, {
|
|
960
982
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
961
983
|
* }>()("Database") {}
|
|
962
984
|
*
|
|
@@ -968,7 +990,7 @@ export const sync: {
|
|
|
968
990
|
* @since 2.0.0
|
|
969
991
|
* @category constructors
|
|
970
992
|
*/
|
|
971
|
-
<I, S>(service:
|
|
993
|
+
<I, S>(service: Context.Key<I, S>): (evaluate: LazyArg<S>) => Layer<I>
|
|
972
994
|
/**
|
|
973
995
|
* Lazily constructs a layer from the specified value.
|
|
974
996
|
*
|
|
@@ -977,9 +999,9 @@ export const sync: {
|
|
|
977
999
|
*
|
|
978
1000
|
* @example
|
|
979
1001
|
* ```ts
|
|
980
|
-
* import { Effect, Layer,
|
|
1002
|
+
* import { Effect, Layer, Context } from "effect"
|
|
981
1003
|
*
|
|
982
|
-
* class Database extends
|
|
1004
|
+
* class Database extends Context.Service<Database, {
|
|
983
1005
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
984
1006
|
* }>()("Database") {}
|
|
985
1007
|
*
|
|
@@ -991,31 +1013,31 @@ export const sync: {
|
|
|
991
1013
|
* @since 2.0.0
|
|
992
1014
|
* @category constructors
|
|
993
1015
|
*/
|
|
994
|
-
<I, S>(service:
|
|
1016
|
+
<I, S>(service: Context.Key<I, S>, evaluate: LazyArg<Types.NoInfer<S>>): Layer<I>
|
|
995
1017
|
} = function() {
|
|
996
1018
|
if (arguments.length === 1) {
|
|
997
|
-
return (evaluate: LazyArg<any>) =>
|
|
1019
|
+
return (evaluate: LazyArg<any>) => syncContext(() => Context.make(arguments[0], evaluate()))
|
|
998
1020
|
}
|
|
999
|
-
return
|
|
1021
|
+
return syncContext(() => Context.make(arguments[0], arguments[1]()))
|
|
1000
1022
|
} as any
|
|
1001
1023
|
|
|
1002
1024
|
/**
|
|
1003
1025
|
* Lazily constructs a layer from the specified value, which must return one or more
|
|
1004
1026
|
* services.
|
|
1005
1027
|
*
|
|
1006
|
-
* This is a lazy version of `
|
|
1028
|
+
* This is a lazy version of `succeedContext` where the Context is computed
|
|
1007
1029
|
* synchronously only when the layer is built.
|
|
1008
1030
|
*
|
|
1009
1031
|
* @example
|
|
1010
1032
|
* ```ts
|
|
1011
|
-
* import { Effect, Layer,
|
|
1033
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1012
1034
|
*
|
|
1013
|
-
* class Database extends
|
|
1035
|
+
* class Database extends Context.Service<Database, {
|
|
1014
1036
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1015
1037
|
* }>()("Database") {}
|
|
1016
1038
|
*
|
|
1017
|
-
* const layer = Layer.
|
|
1018
|
-
*
|
|
1039
|
+
* const layer = Layer.syncContext(() =>
|
|
1040
|
+
* Context.make(Database, {
|
|
1019
1041
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
1020
1042
|
* })
|
|
1021
1043
|
* )
|
|
@@ -1024,7 +1046,7 @@ export const sync: {
|
|
|
1024
1046
|
* @since 2.0.0
|
|
1025
1047
|
* @category constructors
|
|
1026
1048
|
*/
|
|
1027
|
-
export const
|
|
1049
|
+
export const syncContext = <A>(evaluate: LazyArg<Context.Context<A>>): Layer<A> =>
|
|
1028
1050
|
fromBuildMemo(constant(internalEffect.sync(evaluate)))
|
|
1029
1051
|
|
|
1030
1052
|
/**
|
|
@@ -1042,9 +1064,9 @@ export const syncServices = <A>(evaluate: LazyArg<ServiceMap.ServiceMap<A>>): La
|
|
|
1042
1064
|
*
|
|
1043
1065
|
* @example
|
|
1044
1066
|
* ```ts
|
|
1045
|
-
* import { Effect, Layer,
|
|
1067
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1046
1068
|
*
|
|
1047
|
-
* class Database extends
|
|
1069
|
+
* class Database extends Context.Service<Database, {
|
|
1048
1070
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1049
1071
|
* }>()("Database") {}
|
|
1050
1072
|
*
|
|
@@ -1074,9 +1096,9 @@ export const effect: {
|
|
|
1074
1096
|
*
|
|
1075
1097
|
* @example
|
|
1076
1098
|
* ```ts
|
|
1077
|
-
* import { Effect, Layer,
|
|
1099
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1078
1100
|
*
|
|
1079
|
-
* class Database extends
|
|
1101
|
+
* class Database extends Context.Service<Database, {
|
|
1080
1102
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1081
1103
|
* }>()("Database") {}
|
|
1082
1104
|
*
|
|
@@ -1090,7 +1112,7 @@ export const effect: {
|
|
|
1090
1112
|
* @since 2.0.0
|
|
1091
1113
|
* @category constructors
|
|
1092
1114
|
*/
|
|
1093
|
-
<I, S>(service:
|
|
1115
|
+
<I, S>(service: Context.Key<I, S>): <E, R>(
|
|
1094
1116
|
effect: Effect<S, E, R>
|
|
1095
1117
|
) => Layer<I, E, Exclude<R, Scope.Scope>>
|
|
1096
1118
|
/**
|
|
@@ -1108,9 +1130,9 @@ export const effect: {
|
|
|
1108
1130
|
*
|
|
1109
1131
|
* @example
|
|
1110
1132
|
* ```ts
|
|
1111
|
-
* import { Effect, Layer,
|
|
1133
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1112
1134
|
*
|
|
1113
|
-
* class Database extends
|
|
1135
|
+
* class Database extends Context.Service<Database, {
|
|
1114
1136
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1115
1137
|
* }>()("Database") {}
|
|
1116
1138
|
*
|
|
@@ -1124,7 +1146,7 @@ export const effect: {
|
|
|
1124
1146
|
* @since 2.0.0
|
|
1125
1147
|
* @category constructors
|
|
1126
1148
|
*/
|
|
1127
|
-
<I, S, E, R>(service:
|
|
1149
|
+
<I, S, E, R>(service: Context.Key<I, S>, effect: Effect<Types.NoInfer<S>, E, R>): Layer<I, E, Exclude<R, Scope.Scope>>
|
|
1128
1150
|
} = function() {
|
|
1129
1151
|
if (arguments.length === 1) {
|
|
1130
1152
|
return (effect: any) => effectImpl(arguments[0], effect)
|
|
@@ -1133,10 +1155,10 @@ export const effect: {
|
|
|
1133
1155
|
} as any
|
|
1134
1156
|
|
|
1135
1157
|
const effectImpl = <I, S, E, R>(
|
|
1136
|
-
service:
|
|
1158
|
+
service: Context.Key<I, S>,
|
|
1137
1159
|
effect: Effect<S, E, R>
|
|
1138
1160
|
): Layer<I, E, Exclude<R, Scope.Scope>> =>
|
|
1139
|
-
|
|
1161
|
+
effectContext(internalEffect.map(effect, (value) => Context.make(service, value)))
|
|
1140
1162
|
|
|
1141
1163
|
/**
|
|
1142
1164
|
* Constructs a layer from the specified scoped effect, which must return one
|
|
@@ -1147,15 +1169,15 @@ const effectImpl = <I, S, E, R>(
|
|
|
1147
1169
|
*
|
|
1148
1170
|
* @example
|
|
1149
1171
|
* ```ts
|
|
1150
|
-
* import { Effect, Layer,
|
|
1172
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1151
1173
|
*
|
|
1152
|
-
* class Database extends
|
|
1174
|
+
* class Database extends Context.Service<
|
|
1153
1175
|
* Database,
|
|
1154
1176
|
* { readonly query: (sql: string) => Effect.Effect<string> }
|
|
1155
1177
|
* >()("Database") {}
|
|
1156
1178
|
*
|
|
1157
|
-
* const layer = Layer.
|
|
1158
|
-
* Effect.succeed(
|
|
1179
|
+
* const layer = Layer.effectContext(
|
|
1180
|
+
* Effect.succeed(Context.make(Database, {
|
|
1159
1181
|
* query: (sql: string) => Effect.succeed(`Query: ${sql}`)
|
|
1160
1182
|
* }))
|
|
1161
1183
|
* )
|
|
@@ -1164,8 +1186,8 @@ const effectImpl = <I, S, E, R>(
|
|
|
1164
1186
|
* @since 2.0.0
|
|
1165
1187
|
* @category constructors
|
|
1166
1188
|
*/
|
|
1167
|
-
export const
|
|
1168
|
-
effect: Effect<
|
|
1189
|
+
export const effectContext = <A, E, R>(
|
|
1190
|
+
effect: Effect<Context.Context<A>, E, R>
|
|
1169
1191
|
): Layer<A, E, Exclude<R, Scope.Scope>> => fromBuildMemo((_, scope) => Scope.provide(effect, scope))
|
|
1170
1192
|
|
|
1171
1193
|
/**
|
|
@@ -1195,7 +1217,7 @@ export const effectServices = <A, E, R>(
|
|
|
1195
1217
|
* @category constructors
|
|
1196
1218
|
*/
|
|
1197
1219
|
export const effectDiscard = <X, E, R>(effect: Effect<X, E, R>): Layer<never, E, Exclude<R, Scope.Scope>> =>
|
|
1198
|
-
|
|
1220
|
+
effectContext(internalEffect.as(effect, Context.empty()))
|
|
1199
1221
|
|
|
1200
1222
|
/**
|
|
1201
1223
|
* Lazily constructs a layer using the specified factory.
|
|
@@ -1205,9 +1227,9 @@ export const effectDiscard = <X, E, R>(effect: Effect<X, E, R>): Layer<never, E,
|
|
|
1205
1227
|
*
|
|
1206
1228
|
* @example
|
|
1207
1229
|
* ```ts
|
|
1208
|
-
* import { Layer,
|
|
1230
|
+
* import { Layer, Context } from "effect"
|
|
1209
1231
|
*
|
|
1210
|
-
* class Config extends
|
|
1232
|
+
* class Config extends Context.Service<Config, string>()("Config") {}
|
|
1211
1233
|
*
|
|
1212
1234
|
* const useProd = true
|
|
1213
1235
|
*
|
|
@@ -1233,9 +1255,9 @@ export const suspend = <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>): Layer<A, E,
|
|
|
1233
1255
|
*
|
|
1234
1256
|
* @example
|
|
1235
1257
|
* ```ts
|
|
1236
|
-
* import { Effect, Layer,
|
|
1258
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1237
1259
|
*
|
|
1238
|
-
* class Database extends
|
|
1260
|
+
* class Database extends Context.Service<Database, {
|
|
1239
1261
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1240
1262
|
* }>()("Database") {}
|
|
1241
1263
|
*
|
|
@@ -1252,8 +1274,8 @@ export const suspend = <A, E, R>(evaluate: LazyArg<Layer<A, E, R>>): Layer<A, E,
|
|
|
1252
1274
|
export const unwrap = <A, E1, R1, E, R>(
|
|
1253
1275
|
self: Effect<Layer<A, E1, R1>, E, R>
|
|
1254
1276
|
): Layer<A, E | E1, R1 | Exclude<R, Scope.Scope>> => {
|
|
1255
|
-
const service =
|
|
1256
|
-
return flatMap(effect(service)(self),
|
|
1277
|
+
const service = Context.Service<Layer<A, E1, R1>>("effect/Layer/unwrap")
|
|
1278
|
+
return flatMap(effect(service)(self), Context.get(service))
|
|
1257
1279
|
}
|
|
1258
1280
|
|
|
1259
1281
|
const mergeAllEffect = <Layers extends [Layer<never, any, any>, ...Array<Layer<never, any, any>>]>(
|
|
@@ -1261,7 +1283,7 @@ const mergeAllEffect = <Layers extends [Layer<never, any, any>, ...Array<Layer<n
|
|
|
1261
1283
|
memoMap: MemoMap,
|
|
1262
1284
|
scope: Scope.Scope
|
|
1263
1285
|
): Effect<
|
|
1264
|
-
|
|
1286
|
+
Context.Context<{ [k in keyof Layers]: Success<Layers[k]> }[number]>,
|
|
1265
1287
|
{ [k in keyof Layers]: Error<Layers[k]> }[number],
|
|
1266
1288
|
{ [k in keyof Layers]: Services<Layers[k]> }[number]
|
|
1267
1289
|
> => {
|
|
@@ -1269,7 +1291,7 @@ const mergeAllEffect = <Layers extends [Layer<never, any, any>, ...Array<Layer<n
|
|
|
1269
1291
|
return internalEffect.forEach(layers, (layer) => layer.build(memoMap, Scope.forkUnsafe(parentScope, "sequential")), {
|
|
1270
1292
|
concurrency: layers.length
|
|
1271
1293
|
}).pipe(
|
|
1272
|
-
internalEffect.map((
|
|
1294
|
+
internalEffect.map((context) => Context.mergeAll(...(context as any)))
|
|
1273
1295
|
)
|
|
1274
1296
|
}
|
|
1275
1297
|
|
|
@@ -1281,13 +1303,13 @@ const mergeAllEffect = <Layers extends [Layer<never, any, any>, ...Array<Layer<n
|
|
|
1281
1303
|
*
|
|
1282
1304
|
* @example
|
|
1283
1305
|
* ```ts
|
|
1284
|
-
* import { Effect, Layer,
|
|
1306
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1285
1307
|
*
|
|
1286
|
-
* class Database extends
|
|
1308
|
+
* class Database extends Context.Service<Database, {
|
|
1287
1309
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1288
1310
|
* }>()("Database") {}
|
|
1289
1311
|
*
|
|
1290
|
-
* class Logger extends
|
|
1312
|
+
* class Logger extends Context.Service<Logger, {
|
|
1291
1313
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1292
1314
|
* }>()("Logger") {}
|
|
1293
1315
|
*
|
|
@@ -1320,13 +1342,13 @@ export const mergeAll = <Layers extends [Layer<never, any, any>, ...Array<Layer<
|
|
|
1320
1342
|
*
|
|
1321
1343
|
* @example
|
|
1322
1344
|
* ```ts
|
|
1323
|
-
* import { Effect, Layer,
|
|
1345
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1324
1346
|
*
|
|
1325
|
-
* class Database extends
|
|
1347
|
+
* class Database extends Context.Service<Database, {
|
|
1326
1348
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1327
1349
|
* }>()("Database") {}
|
|
1328
1350
|
*
|
|
1329
|
-
* class Logger extends
|
|
1351
|
+
* class Logger extends Context.Service<Logger, {
|
|
1330
1352
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1331
1353
|
* }>()("Logger") {}
|
|
1332
1354
|
*
|
|
@@ -1352,13 +1374,13 @@ export const merge: {
|
|
|
1352
1374
|
*
|
|
1353
1375
|
* @example
|
|
1354
1376
|
* ```ts
|
|
1355
|
-
* import { Effect, Layer,
|
|
1377
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1356
1378
|
*
|
|
1357
|
-
* class Database extends
|
|
1379
|
+
* class Database extends Context.Service<Database, {
|
|
1358
1380
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1359
1381
|
* }>()("Database") {}
|
|
1360
1382
|
*
|
|
1361
|
-
* class Logger extends
|
|
1383
|
+
* class Logger extends Context.Service<Logger, {
|
|
1362
1384
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1363
1385
|
* }>()("Logger") {}
|
|
1364
1386
|
*
|
|
@@ -1384,13 +1406,13 @@ export const merge: {
|
|
|
1384
1406
|
*
|
|
1385
1407
|
* @example
|
|
1386
1408
|
* ```ts
|
|
1387
|
-
* import { Effect, Layer,
|
|
1409
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1388
1410
|
*
|
|
1389
|
-
* class Database extends
|
|
1411
|
+
* class Database extends Context.Service<Database, {
|
|
1390
1412
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1391
1413
|
* }>()("Database") {}
|
|
1392
1414
|
*
|
|
1393
|
-
* class Logger extends
|
|
1415
|
+
* class Logger extends Context.Service<Logger, {
|
|
1394
1416
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1395
1417
|
* }>()("Logger") {}
|
|
1396
1418
|
*
|
|
@@ -1423,13 +1445,13 @@ export const merge: {
|
|
|
1423
1445
|
*
|
|
1424
1446
|
* @example
|
|
1425
1447
|
* ```ts
|
|
1426
|
-
* import { Effect, Layer,
|
|
1448
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1427
1449
|
*
|
|
1428
|
-
* class Database extends
|
|
1450
|
+
* class Database extends Context.Service<Database, {
|
|
1429
1451
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1430
1452
|
* }>()("Database") {}
|
|
1431
1453
|
*
|
|
1432
|
-
* class Logger extends
|
|
1454
|
+
* class Logger extends Context.Service<Logger, {
|
|
1433
1455
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1434
1456
|
* }>()("Logger") {}
|
|
1435
1457
|
*
|
|
@@ -1455,13 +1477,13 @@ export const merge: {
|
|
|
1455
1477
|
*
|
|
1456
1478
|
* @example
|
|
1457
1479
|
* ```ts
|
|
1458
|
-
* import { Effect, Layer,
|
|
1480
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1459
1481
|
*
|
|
1460
|
-
* class Database extends
|
|
1482
|
+
* class Database extends Context.Service<Database, {
|
|
1461
1483
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1462
1484
|
* }>()("Database") {}
|
|
1463
1485
|
*
|
|
1464
|
-
* class Logger extends
|
|
1486
|
+
* class Logger extends Context.Service<Logger, {
|
|
1465
1487
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1466
1488
|
* }>()("Logger") {}
|
|
1467
1489
|
*
|
|
@@ -1493,9 +1515,9 @@ const provideWith = (
|
|
|
1493
1515
|
self: Layer<any, any, any>,
|
|
1494
1516
|
that: Layer<any, any, any> | ReadonlyArray<Layer<any, any, any>>,
|
|
1495
1517
|
f: (
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
) =>
|
|
1518
|
+
selfContext: Context.Context<any>,
|
|
1519
|
+
thatContext: Context.Context<any>
|
|
1520
|
+
) => Context.Context<any>
|
|
1499
1521
|
) =>
|
|
1500
1522
|
fromBuild((memoMap, scope) =>
|
|
1501
1523
|
internalEffect.flatMap(
|
|
@@ -1504,7 +1526,7 @@ const provideWith = (
|
|
|
1504
1526
|
: (that as Layer<any, any, any>).build(memoMap, scope),
|
|
1505
1527
|
(context) =>
|
|
1506
1528
|
self.build(memoMap, scope).pipe(
|
|
1507
|
-
internalEffect.
|
|
1529
|
+
internalEffect.provideContext(context),
|
|
1508
1530
|
internalEffect.map((merged) => f(merged, context))
|
|
1509
1531
|
)
|
|
1510
1532
|
)
|
|
@@ -1517,20 +1539,20 @@ const provideWith = (
|
|
|
1517
1539
|
*
|
|
1518
1540
|
* @example
|
|
1519
1541
|
* ```ts
|
|
1520
|
-
* import { Effect, Layer,
|
|
1542
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1521
1543
|
*
|
|
1522
|
-
* class Database extends
|
|
1544
|
+
* class Database extends Context.Service<Database, {
|
|
1523
1545
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1524
1546
|
* }>()("Database") {}
|
|
1525
1547
|
*
|
|
1526
|
-
* class UserService extends
|
|
1548
|
+
* class UserService extends Context.Service<UserService, {
|
|
1527
1549
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1528
1550
|
* id: string
|
|
1529
1551
|
* name: string
|
|
1530
1552
|
* }>
|
|
1531
1553
|
* }>()("UserService") {}
|
|
1532
1554
|
*
|
|
1533
|
-
* class Logger extends
|
|
1555
|
+
* class Logger extends Context.Service<Logger, {
|
|
1534
1556
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1535
1557
|
* }>()("Logger") {}
|
|
1536
1558
|
*
|
|
@@ -1584,20 +1606,20 @@ export const provide: {
|
|
|
1584
1606
|
*
|
|
1585
1607
|
* @example
|
|
1586
1608
|
* ```ts
|
|
1587
|
-
* import { Effect, Layer,
|
|
1609
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1588
1610
|
*
|
|
1589
|
-
* class Database extends
|
|
1611
|
+
* class Database extends Context.Service<Database, {
|
|
1590
1612
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1591
1613
|
* }>()("Database") {}
|
|
1592
1614
|
*
|
|
1593
|
-
* class UserService extends
|
|
1615
|
+
* class UserService extends Context.Service<UserService, {
|
|
1594
1616
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1595
1617
|
* id: string
|
|
1596
1618
|
* name: string
|
|
1597
1619
|
* }>
|
|
1598
1620
|
* }>()("UserService") {}
|
|
1599
1621
|
*
|
|
1600
|
-
* class Logger extends
|
|
1622
|
+
* class Logger extends Context.Service<Logger, {
|
|
1601
1623
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1602
1624
|
* }>()("Logger") {}
|
|
1603
1625
|
*
|
|
@@ -1651,20 +1673,20 @@ export const provide: {
|
|
|
1651
1673
|
*
|
|
1652
1674
|
* @example
|
|
1653
1675
|
* ```ts
|
|
1654
|
-
* import { Effect, Layer,
|
|
1676
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1655
1677
|
*
|
|
1656
|
-
* class Database extends
|
|
1678
|
+
* class Database extends Context.Service<Database, {
|
|
1657
1679
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1658
1680
|
* }>()("Database") {}
|
|
1659
1681
|
*
|
|
1660
|
-
* class UserService extends
|
|
1682
|
+
* class UserService extends Context.Service<UserService, {
|
|
1661
1683
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1662
1684
|
* id: string
|
|
1663
1685
|
* name: string
|
|
1664
1686
|
* }>
|
|
1665
1687
|
* }>()("UserService") {}
|
|
1666
1688
|
*
|
|
1667
|
-
* class Logger extends
|
|
1689
|
+
* class Logger extends Context.Service<Logger, {
|
|
1668
1690
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1669
1691
|
* }>()("Logger") {}
|
|
1670
1692
|
*
|
|
@@ -1725,20 +1747,20 @@ export const provide: {
|
|
|
1725
1747
|
*
|
|
1726
1748
|
* @example
|
|
1727
1749
|
* ```ts
|
|
1728
|
-
* import { Effect, Layer,
|
|
1750
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1729
1751
|
*
|
|
1730
|
-
* class Database extends
|
|
1752
|
+
* class Database extends Context.Service<Database, {
|
|
1731
1753
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1732
1754
|
* }>()("Database") {}
|
|
1733
1755
|
*
|
|
1734
|
-
* class UserService extends
|
|
1756
|
+
* class UserService extends Context.Service<UserService, {
|
|
1735
1757
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1736
1758
|
* id: string
|
|
1737
1759
|
* name: string
|
|
1738
1760
|
* }>
|
|
1739
1761
|
* }>()("UserService") {}
|
|
1740
1762
|
*
|
|
1741
|
-
* class Logger extends
|
|
1763
|
+
* class Logger extends Context.Service<Logger, {
|
|
1742
1764
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1743
1765
|
* }>()("Logger") {}
|
|
1744
1766
|
*
|
|
@@ -1792,20 +1814,20 @@ export const provide: {
|
|
|
1792
1814
|
*
|
|
1793
1815
|
* @example
|
|
1794
1816
|
* ```ts
|
|
1795
|
-
* import { Effect, Layer,
|
|
1817
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1796
1818
|
*
|
|
1797
|
-
* class Database extends
|
|
1819
|
+
* class Database extends Context.Service<Database, {
|
|
1798
1820
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1799
1821
|
* }>()("Database") {}
|
|
1800
1822
|
*
|
|
1801
|
-
* class UserService extends
|
|
1823
|
+
* class UserService extends Context.Service<UserService, {
|
|
1802
1824
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1803
1825
|
* id: string
|
|
1804
1826
|
* name: string
|
|
1805
1827
|
* }>
|
|
1806
1828
|
* }>()("UserService") {}
|
|
1807
1829
|
*
|
|
1808
|
-
* class Logger extends
|
|
1830
|
+
* class Logger extends Context.Service<Logger, {
|
|
1809
1831
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1810
1832
|
* }>()("Logger") {}
|
|
1811
1833
|
*
|
|
@@ -1869,17 +1891,17 @@ export const provide: {
|
|
|
1869
1891
|
*
|
|
1870
1892
|
* @example
|
|
1871
1893
|
* ```ts
|
|
1872
|
-
* import { Effect, Layer,
|
|
1894
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1873
1895
|
*
|
|
1874
|
-
* class Database extends
|
|
1896
|
+
* class Database extends Context.Service<Database, {
|
|
1875
1897
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1876
1898
|
* }>()("Database") {}
|
|
1877
1899
|
*
|
|
1878
|
-
* class Logger extends
|
|
1900
|
+
* class Logger extends Context.Service<Logger, {
|
|
1879
1901
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1880
1902
|
* }>()("Logger") {}
|
|
1881
1903
|
*
|
|
1882
|
-
* class UserService extends
|
|
1904
|
+
* class UserService extends Context.Service<UserService, {
|
|
1883
1905
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1884
1906
|
* id: string
|
|
1885
1907
|
* name: string
|
|
@@ -1942,17 +1964,17 @@ export const provideMerge: {
|
|
|
1942
1964
|
*
|
|
1943
1965
|
* @example
|
|
1944
1966
|
* ```ts
|
|
1945
|
-
* import { Effect, Layer,
|
|
1967
|
+
* import { Effect, Layer, Context } from "effect"
|
|
1946
1968
|
*
|
|
1947
|
-
* class Database extends
|
|
1969
|
+
* class Database extends Context.Service<Database, {
|
|
1948
1970
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
1949
1971
|
* }>()("Database") {}
|
|
1950
1972
|
*
|
|
1951
|
-
* class Logger extends
|
|
1973
|
+
* class Logger extends Context.Service<Logger, {
|
|
1952
1974
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
1953
1975
|
* }>()("Logger") {}
|
|
1954
1976
|
*
|
|
1955
|
-
* class UserService extends
|
|
1977
|
+
* class UserService extends Context.Service<UserService, {
|
|
1956
1978
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
1957
1979
|
* id: string
|
|
1958
1980
|
* name: string
|
|
@@ -2015,17 +2037,17 @@ export const provideMerge: {
|
|
|
2015
2037
|
*
|
|
2016
2038
|
* @example
|
|
2017
2039
|
* ```ts
|
|
2018
|
-
* import { Effect, Layer,
|
|
2040
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2019
2041
|
*
|
|
2020
|
-
* class Database extends
|
|
2042
|
+
* class Database extends Context.Service<Database, {
|
|
2021
2043
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2022
2044
|
* }>()("Database") {}
|
|
2023
2045
|
*
|
|
2024
|
-
* class Logger extends
|
|
2046
|
+
* class Logger extends Context.Service<Logger, {
|
|
2025
2047
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2026
2048
|
* }>()("Logger") {}
|
|
2027
2049
|
*
|
|
2028
|
-
* class UserService extends
|
|
2050
|
+
* class UserService extends Context.Service<UserService, {
|
|
2029
2051
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
2030
2052
|
* id: string
|
|
2031
2053
|
* name: string
|
|
@@ -2095,17 +2117,17 @@ export const provideMerge: {
|
|
|
2095
2117
|
*
|
|
2096
2118
|
* @example
|
|
2097
2119
|
* ```ts
|
|
2098
|
-
* import { Effect, Layer,
|
|
2120
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2099
2121
|
*
|
|
2100
|
-
* class Database extends
|
|
2122
|
+
* class Database extends Context.Service<Database, {
|
|
2101
2123
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2102
2124
|
* }>()("Database") {}
|
|
2103
2125
|
*
|
|
2104
|
-
* class Logger extends
|
|
2126
|
+
* class Logger extends Context.Service<Logger, {
|
|
2105
2127
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2106
2128
|
* }>()("Logger") {}
|
|
2107
2129
|
*
|
|
2108
|
-
* class UserService extends
|
|
2130
|
+
* class UserService extends Context.Service<UserService, {
|
|
2109
2131
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
2110
2132
|
* id: string
|
|
2111
2133
|
* name: string
|
|
@@ -2168,17 +2190,17 @@ export const provideMerge: {
|
|
|
2168
2190
|
*
|
|
2169
2191
|
* @example
|
|
2170
2192
|
* ```ts
|
|
2171
|
-
* import { Effect, Layer,
|
|
2193
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2172
2194
|
*
|
|
2173
|
-
* class Database extends
|
|
2195
|
+
* class Database extends Context.Service<Database, {
|
|
2174
2196
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2175
2197
|
* }>()("Database") {}
|
|
2176
2198
|
*
|
|
2177
|
-
* class Logger extends
|
|
2199
|
+
* class Logger extends Context.Service<Logger, {
|
|
2178
2200
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2179
2201
|
* }>()("Logger") {}
|
|
2180
2202
|
*
|
|
2181
|
-
* class UserService extends
|
|
2203
|
+
* class UserService extends Context.Service<UserService, {
|
|
2182
2204
|
* readonly getUser: (id: string) => Effect.Effect<{
|
|
2183
2205
|
* id: string
|
|
2184
2206
|
* name: string
|
|
@@ -2246,7 +2268,7 @@ export const provideMerge: {
|
|
|
2246
2268
|
provideWith(
|
|
2247
2269
|
self,
|
|
2248
2270
|
that,
|
|
2249
|
-
(self, that) =>
|
|
2271
|
+
(self, that) => Context.merge(that, self)
|
|
2250
2272
|
))
|
|
2251
2273
|
|
|
2252
2274
|
/**
|
|
@@ -2254,18 +2276,18 @@ export const provideMerge: {
|
|
|
2254
2276
|
*
|
|
2255
2277
|
* @example
|
|
2256
2278
|
* ```ts
|
|
2257
|
-
* import { Effect, Layer,
|
|
2279
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2258
2280
|
*
|
|
2259
|
-
* class Config extends
|
|
2281
|
+
* class Config extends Context.Service<Config, {
|
|
2260
2282
|
* readonly dbUrl: string
|
|
2261
2283
|
* readonly logLevel: string
|
|
2262
2284
|
* }>()("Config") {}
|
|
2263
2285
|
*
|
|
2264
|
-
* class Database extends
|
|
2286
|
+
* class Database extends Context.Service<Database, {
|
|
2265
2287
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2266
2288
|
* }>()("Database") {}
|
|
2267
2289
|
*
|
|
2268
|
-
* class Logger extends
|
|
2290
|
+
* class Logger extends Context.Service<Logger, {
|
|
2269
2291
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2270
2292
|
* }>()("Logger") {}
|
|
2271
2293
|
*
|
|
@@ -2277,8 +2299,8 @@ export const provideMerge: {
|
|
|
2277
2299
|
*
|
|
2278
2300
|
* // Dynamically create services based on config
|
|
2279
2301
|
* const dynamicServiceLayer = configLayer.pipe(
|
|
2280
|
-
* Layer.flatMap((
|
|
2281
|
-
* const config =
|
|
2302
|
+
* Layer.flatMap((context) => {
|
|
2303
|
+
* const config = Context.get(context, Config)
|
|
2282
2304
|
*
|
|
2283
2305
|
* // Create database layer based on config
|
|
2284
2306
|
* const dbLayer = Layer.succeed(Database)({
|
|
@@ -2325,18 +2347,18 @@ export const flatMap: {
|
|
|
2325
2347
|
*
|
|
2326
2348
|
* @example
|
|
2327
2349
|
* ```ts
|
|
2328
|
-
* import { Effect, Layer,
|
|
2350
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2329
2351
|
*
|
|
2330
|
-
* class Config extends
|
|
2352
|
+
* class Config extends Context.Service<Config, {
|
|
2331
2353
|
* readonly dbUrl: string
|
|
2332
2354
|
* readonly logLevel: string
|
|
2333
2355
|
* }>()("Config") {}
|
|
2334
2356
|
*
|
|
2335
|
-
* class Database extends
|
|
2357
|
+
* class Database extends Context.Service<Database, {
|
|
2336
2358
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2337
2359
|
* }>()("Database") {}
|
|
2338
2360
|
*
|
|
2339
|
-
* class Logger extends
|
|
2361
|
+
* class Logger extends Context.Service<Logger, {
|
|
2340
2362
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2341
2363
|
* }>()("Logger") {}
|
|
2342
2364
|
*
|
|
@@ -2348,8 +2370,8 @@ export const flatMap: {
|
|
|
2348
2370
|
*
|
|
2349
2371
|
* // Dynamically create services based on config
|
|
2350
2372
|
* const dynamicServiceLayer = configLayer.pipe(
|
|
2351
|
-
* Layer.flatMap((
|
|
2352
|
-
* const config =
|
|
2373
|
+
* Layer.flatMap((context) => {
|
|
2374
|
+
* const config = Context.get(context, Config)
|
|
2353
2375
|
*
|
|
2354
2376
|
* // Create database layer based on config
|
|
2355
2377
|
* const dbLayer = Layer.succeed(Database)({
|
|
@@ -2390,24 +2412,24 @@ export const flatMap: {
|
|
|
2390
2412
|
* @since 2.0.0
|
|
2391
2413
|
* @category sequencing
|
|
2392
2414
|
*/
|
|
2393
|
-
<A, A2, E2, R2>(f: (context:
|
|
2415
|
+
<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>
|
|
2394
2416
|
/**
|
|
2395
2417
|
* Constructs a layer dynamically based on the output of this layer.
|
|
2396
2418
|
*
|
|
2397
2419
|
* @example
|
|
2398
2420
|
* ```ts
|
|
2399
|
-
* import { Effect, Layer,
|
|
2421
|
+
* import { Effect, Layer, Context } from "effect"
|
|
2400
2422
|
*
|
|
2401
|
-
* class Config extends
|
|
2423
|
+
* class Config extends Context.Service<Config, {
|
|
2402
2424
|
* readonly dbUrl: string
|
|
2403
2425
|
* readonly logLevel: string
|
|
2404
2426
|
* }>()("Config") {}
|
|
2405
2427
|
*
|
|
2406
|
-
* class Database extends
|
|
2428
|
+
* class Database extends Context.Service<Database, {
|
|
2407
2429
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2408
2430
|
* }>()("Database") {}
|
|
2409
2431
|
*
|
|
2410
|
-
* class Logger extends
|
|
2432
|
+
* class Logger extends Context.Service<Logger, {
|
|
2411
2433
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2412
2434
|
* }>()("Logger") {}
|
|
2413
2435
|
*
|
|
@@ -2419,8 +2441,8 @@ export const flatMap: {
|
|
|
2419
2441
|
*
|
|
2420
2442
|
* // Dynamically create services based on config
|
|
2421
2443
|
* const dynamicServiceLayer = configLayer.pipe(
|
|
2422
|
-
* Layer.flatMap((
|
|
2423
|
-
* const config =
|
|
2444
|
+
* Layer.flatMap((context) => {
|
|
2445
|
+
* const config = Context.get(context, Config)
|
|
2424
2446
|
*
|
|
2425
2447
|
* // Create database layer based on config
|
|
2426
2448
|
* const dbLayer = Layer.succeed(Database)({
|
|
@@ -2463,11 +2485,11 @@ export const flatMap: {
|
|
|
2463
2485
|
*/
|
|
2464
2486
|
<A, E, R, A2, E2, R2>(
|
|
2465
2487
|
self: Layer<A, E, R>,
|
|
2466
|
-
f: (context:
|
|
2488
|
+
f: (context: Context.Context<A>) => Layer<A2, E2, R2>
|
|
2467
2489
|
): Layer<A2, E | E2, R | R2>
|
|
2468
2490
|
} = dual(2, <A, E, R, A2, E2, R2>(
|
|
2469
2491
|
self: Layer<A, E, R>,
|
|
2470
|
-
f: (context:
|
|
2492
|
+
f: (context: Context.Context<A>) => Layer<A2, E2, R2>
|
|
2471
2493
|
): Layer<A2, E | E2, R | R2> =>
|
|
2472
2494
|
fromBuild((memoMap, scope) =>
|
|
2473
2495
|
internalEffect.flatMap(
|
|
@@ -2489,7 +2511,7 @@ export const tap: {
|
|
|
2489
2511
|
* @since 4.0.0
|
|
2490
2512
|
* @category sequencing
|
|
2491
2513
|
*/
|
|
2492
|
-
<ROut, XR extends ROut, RIn2, E2, X>(f: (context:
|
|
2514
|
+
<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>>
|
|
2493
2515
|
/**
|
|
2494
2516
|
* Performs the specified effect if this layer succeeds.
|
|
2495
2517
|
*
|
|
@@ -2498,16 +2520,16 @@ export const tap: {
|
|
|
2498
2520
|
*/
|
|
2499
2521
|
<RIn, E, ROut, XR extends ROut, RIn2, E2, X>(
|
|
2500
2522
|
self: Layer<ROut, E, RIn>,
|
|
2501
|
-
f: (context:
|
|
2523
|
+
f: (context: Context.Context<XR>) => Effect<X, E2, RIn2>
|
|
2502
2524
|
): Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>>
|
|
2503
2525
|
} = dual(2, <RIn, E, ROut, XR extends ROut, RIn2, E2, X>(
|
|
2504
2526
|
self: Layer<ROut, E, RIn>,
|
|
2505
|
-
f: (context:
|
|
2527
|
+
f: (context: Context.Context<XR>) => Effect<X, E2, RIn2>
|
|
2506
2528
|
): Layer<ROut, E | E2, RIn | Exclude<RIn2, Scope.Scope>> =>
|
|
2507
2529
|
fromBuild((memoMap, scope) =>
|
|
2508
2530
|
internalEffect.flatMap(
|
|
2509
2531
|
self.build(memoMap, scope),
|
|
2510
|
-
(context) => Scope.provide(internalEffect.as(f(context as
|
|
2532
|
+
(context) => Scope.provide(internalEffect.as(f(context as Context.Context<XR>), context), scope)
|
|
2511
2533
|
)
|
|
2512
2534
|
))
|
|
2513
2535
|
|
|
@@ -2603,13 +2625,13 @@ export const tapCause: {
|
|
|
2603
2625
|
*
|
|
2604
2626
|
* @example
|
|
2605
2627
|
* ```ts
|
|
2606
|
-
* import { Data, Effect, Layer,
|
|
2628
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2607
2629
|
*
|
|
2608
2630
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2609
2631
|
* message: string
|
|
2610
2632
|
* }> {}
|
|
2611
2633
|
*
|
|
2612
|
-
* class Database extends
|
|
2634
|
+
* class Database extends Context.Service<Database, {
|
|
2613
2635
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2614
2636
|
* }>()("Database") {}
|
|
2615
2637
|
*
|
|
@@ -2679,11 +2701,11 @@ export {
|
|
|
2679
2701
|
*
|
|
2680
2702
|
* @example
|
|
2681
2703
|
* ```ts
|
|
2682
|
-
* import { Data, Effect, Layer,
|
|
2704
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2683
2705
|
*
|
|
2684
2706
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
2685
2707
|
*
|
|
2686
|
-
* class Config extends
|
|
2708
|
+
* class Config extends Context.Service<Config, {
|
|
2687
2709
|
* readonly apiUrl: string
|
|
2688
2710
|
* }>()("Config") {}
|
|
2689
2711
|
*
|
|
@@ -2705,11 +2727,11 @@ export const catchTag: {
|
|
|
2705
2727
|
*
|
|
2706
2728
|
* @example
|
|
2707
2729
|
* ```ts
|
|
2708
|
-
* import { Data, Effect, Layer,
|
|
2730
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2709
2731
|
*
|
|
2710
2732
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
2711
2733
|
*
|
|
2712
|
-
* class Config extends
|
|
2734
|
+
* class Config extends Context.Service<Config, {
|
|
2713
2735
|
* readonly apiUrl: string
|
|
2714
2736
|
* }>()("Config") {}
|
|
2715
2737
|
*
|
|
@@ -2742,11 +2764,11 @@ export const catchTag: {
|
|
|
2742
2764
|
*
|
|
2743
2765
|
* @example
|
|
2744
2766
|
* ```ts
|
|
2745
|
-
* import { Data, Effect, Layer,
|
|
2767
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2746
2768
|
*
|
|
2747
2769
|
* class ConfigError extends Data.TaggedError("ConfigError") {}
|
|
2748
2770
|
*
|
|
2749
|
-
* class Config extends
|
|
2771
|
+
* class Config extends Context.Service<Config, {
|
|
2750
2772
|
* readonly apiUrl: string
|
|
2751
2773
|
* }>()("Config") {}
|
|
2752
2774
|
*
|
|
@@ -2805,7 +2827,7 @@ export const catchTag: {
|
|
|
2805
2827
|
*
|
|
2806
2828
|
* @example
|
|
2807
2829
|
* ```ts
|
|
2808
|
-
* import { Data, Effect, Layer,
|
|
2830
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2809
2831
|
*
|
|
2810
2832
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2811
2833
|
* message: string
|
|
@@ -2815,11 +2837,11 @@ export const catchTag: {
|
|
|
2815
2837
|
* reason: string
|
|
2816
2838
|
* }> {}
|
|
2817
2839
|
*
|
|
2818
|
-
* class Database extends
|
|
2840
|
+
* class Database extends Context.Service<Database, {
|
|
2819
2841
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2820
2842
|
* }>()("Database") {}
|
|
2821
2843
|
*
|
|
2822
|
-
* class Logger extends
|
|
2844
|
+
* class Logger extends Context.Service<Logger, {
|
|
2823
2845
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2824
2846
|
* }>()("Logger") {}
|
|
2825
2847
|
*
|
|
@@ -2863,7 +2885,7 @@ export const catchCause: {
|
|
|
2863
2885
|
*
|
|
2864
2886
|
* @example
|
|
2865
2887
|
* ```ts
|
|
2866
|
-
* import { Data, Effect, Layer,
|
|
2888
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2867
2889
|
*
|
|
2868
2890
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2869
2891
|
* message: string
|
|
@@ -2873,11 +2895,11 @@ export const catchCause: {
|
|
|
2873
2895
|
* reason: string
|
|
2874
2896
|
* }> {}
|
|
2875
2897
|
*
|
|
2876
|
-
* class Database extends
|
|
2898
|
+
* class Database extends Context.Service<Database, {
|
|
2877
2899
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2878
2900
|
* }>()("Database") {}
|
|
2879
2901
|
*
|
|
2880
|
-
* class Logger extends
|
|
2902
|
+
* class Logger extends Context.Service<Logger, {
|
|
2881
2903
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2882
2904
|
* }>()("Logger") {}
|
|
2883
2905
|
*
|
|
@@ -2921,7 +2943,7 @@ export const catchCause: {
|
|
|
2921
2943
|
*
|
|
2922
2944
|
* @example
|
|
2923
2945
|
* ```ts
|
|
2924
|
-
* import { Data, Effect, Layer,
|
|
2946
|
+
* import { Data, Effect, Layer, Context } from "effect"
|
|
2925
2947
|
*
|
|
2926
2948
|
* class DatabaseError extends Data.TaggedError("DatabaseError")<{
|
|
2927
2949
|
* message: string
|
|
@@ -2931,11 +2953,11 @@ export const catchCause: {
|
|
|
2931
2953
|
* reason: string
|
|
2932
2954
|
* }> {}
|
|
2933
2955
|
*
|
|
2934
|
-
* class Database extends
|
|
2956
|
+
* class Database extends Context.Service<Database, {
|
|
2935
2957
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
2936
2958
|
* }>()("Database") {}
|
|
2937
2959
|
*
|
|
2938
|
-
* class Logger extends
|
|
2960
|
+
* class Logger extends Context.Service<Logger, {
|
|
2939
2961
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
2940
2962
|
* }>()("Logger") {}
|
|
2941
2963
|
*
|
|
@@ -3025,7 +3047,7 @@ export const updateService: {
|
|
|
3025
3047
|
* @since 3.13.0
|
|
3026
3048
|
* @category utils
|
|
3027
3049
|
*/
|
|
3028
|
-
<I, A>(service:
|
|
3050
|
+
<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>
|
|
3029
3051
|
/**
|
|
3030
3052
|
* Updates a service in the context with a new implementation.
|
|
3031
3053
|
*
|
|
@@ -3044,13 +3066,17 @@ export const updateService: {
|
|
|
3044
3066
|
* @since 3.13.0
|
|
3045
3067
|
* @category utils
|
|
3046
3068
|
*/
|
|
3047
|
-
<A1, E1, R1, I, A>(
|
|
3069
|
+
<A1, E1, R1, I, A>(
|
|
3070
|
+
layer: Layer<A1, E1, R1>,
|
|
3071
|
+
service: Context.Key<I, A>,
|
|
3072
|
+
f: (a: Types.NoInfer<A>) => A
|
|
3073
|
+
): Layer<A1, E1, I | R1>
|
|
3048
3074
|
} = dual(
|
|
3049
3075
|
3,
|
|
3050
3076
|
<A1, E1, R1, I, A>(
|
|
3051
3077
|
layer: Layer<A1, E1, R1>,
|
|
3052
|
-
service:
|
|
3053
|
-
f: (a: A) => A
|
|
3078
|
+
service: Context.Key<I, A>,
|
|
3079
|
+
f: (a: Types.NoInfer<A>) => A
|
|
3054
3080
|
): Layer<A1, E1, I | R1> => provide(layer, effect(service, internalEffect.map(service.asEffect(), f)))
|
|
3055
3081
|
)
|
|
3056
3082
|
|
|
@@ -3059,9 +3085,9 @@ export const updateService: {
|
|
|
3059
3085
|
*
|
|
3060
3086
|
* @example
|
|
3061
3087
|
* ```ts
|
|
3062
|
-
* import { Effect, Layer, Ref,
|
|
3088
|
+
* import { Effect, Layer, Ref, Context } from "effect"
|
|
3063
3089
|
*
|
|
3064
|
-
* class Counter extends
|
|
3090
|
+
* class Counter extends Context.Service<Counter, {
|
|
3065
3091
|
* readonly count: number
|
|
3066
3092
|
* readonly increment: () => Effect.Effect<number>
|
|
3067
3093
|
* }>()("Counter") {}
|
|
@@ -3114,14 +3140,14 @@ export const fresh = <A, E, R>(self: Layer<A, E, R>): Layer<A, E, R> =>
|
|
|
3114
3140
|
*
|
|
3115
3141
|
* @example
|
|
3116
3142
|
* ```ts
|
|
3117
|
-
* import { Console, Effect, Layer,
|
|
3143
|
+
* import { Console, Effect, Layer, Context } from "effect"
|
|
3118
3144
|
*
|
|
3119
|
-
* class HttpServer extends
|
|
3145
|
+
* class HttpServer extends Context.Service<HttpServer, {
|
|
3120
3146
|
* readonly start: () => Effect.Effect<string>
|
|
3121
3147
|
* readonly stop: () => Effect.Effect<string>
|
|
3122
3148
|
* }>()("HttpServer") {}
|
|
3123
3149
|
*
|
|
3124
|
-
* class Logger extends
|
|
3150
|
+
* class Logger extends Context.Service<Logger, {
|
|
3125
3151
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3126
3152
|
* }>()("Logger") {}
|
|
3127
3153
|
*
|
|
@@ -3199,9 +3225,9 @@ type AnyEffectOrStream =
|
|
|
3199
3225
|
*
|
|
3200
3226
|
* @example
|
|
3201
3227
|
* ```ts
|
|
3202
|
-
* import { Effect, Layer,
|
|
3228
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3203
3229
|
*
|
|
3204
|
-
* class UserService extends
|
|
3230
|
+
* class UserService extends Context.Service<UserService, {
|
|
3205
3231
|
* readonly config: { apiUrl: string }
|
|
3206
3232
|
* readonly getUser: (
|
|
3207
3233
|
* id: string
|
|
@@ -3246,9 +3272,9 @@ export const mock: {
|
|
|
3246
3272
|
*
|
|
3247
3273
|
* @example
|
|
3248
3274
|
* ```ts
|
|
3249
|
-
* import { Effect, Layer,
|
|
3275
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3250
3276
|
*
|
|
3251
|
-
* class UserService extends
|
|
3277
|
+
* class UserService extends Context.Service<UserService, {
|
|
3252
3278
|
* readonly config: { apiUrl: string }
|
|
3253
3279
|
* readonly getUser: (
|
|
3254
3280
|
* id: string
|
|
@@ -3285,7 +3311,7 @@ export const mock: {
|
|
|
3285
3311
|
* @since 4.0.0
|
|
3286
3312
|
* @category Testing
|
|
3287
3313
|
*/
|
|
3288
|
-
<I, S extends object>(service:
|
|
3314
|
+
<I, S extends object>(service: Context.Key<I, S>): (implementation: PartialEffectful<S>) => Layer<I>
|
|
3289
3315
|
/**
|
|
3290
3316
|
* Creates a mock layer for testing purposes. You can provide a partial
|
|
3291
3317
|
* implementation of the service, and any methods not provided will
|
|
@@ -3293,9 +3319,9 @@ export const mock: {
|
|
|
3293
3319
|
*
|
|
3294
3320
|
* @example
|
|
3295
3321
|
* ```ts
|
|
3296
|
-
* import { Effect, Layer,
|
|
3322
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3297
3323
|
*
|
|
3298
|
-
* class UserService extends
|
|
3324
|
+
* class UserService extends Context.Service<UserService, {
|
|
3299
3325
|
* readonly config: { apiUrl: string }
|
|
3300
3326
|
* readonly getUser: (
|
|
3301
3327
|
* id: string
|
|
@@ -3333,7 +3359,7 @@ export const mock: {
|
|
|
3333
3359
|
* @category Testing
|
|
3334
3360
|
*/
|
|
3335
3361
|
<I, S extends object>(
|
|
3336
|
-
service:
|
|
3362
|
+
service: Context.Key<I, S>,
|
|
3337
3363
|
implementation: Types.NoInfer<PartialEffectful<S>>
|
|
3338
3364
|
): Layer<I>
|
|
3339
3365
|
} = function() {
|
|
@@ -3343,7 +3369,7 @@ export const mock: {
|
|
|
3343
3369
|
return mockImpl(arguments[0], arguments[1])
|
|
3344
3370
|
} as any
|
|
3345
3371
|
|
|
3346
|
-
const mockImpl = <I, S extends object>(service:
|
|
3372
|
+
const mockImpl = <I, S extends object>(service: Context.Key<I, S>, implementation: PartialEffectful<S>): Layer<I> =>
|
|
3347
3373
|
succeed(service)(
|
|
3348
3374
|
new Proxy({ ...implementation as object } as S, {
|
|
3349
3375
|
get(target, prop, _receiver) {
|
|
@@ -3515,9 +3541,9 @@ export interface SpanOptions extends Tracer.SpanOptions {
|
|
|
3515
3541
|
*
|
|
3516
3542
|
* @example
|
|
3517
3543
|
* ```ts
|
|
3518
|
-
* import { Console, Effect, Layer,
|
|
3544
|
+
* import { Console, Effect, Layer, Context, type Tracer } from "effect"
|
|
3519
3545
|
*
|
|
3520
|
-
* class Database extends
|
|
3546
|
+
* class Database extends Context.Service<Database, {
|
|
3521
3547
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3522
3548
|
* }>()("Database") {}
|
|
3523
3549
|
*
|
|
@@ -3576,9 +3602,9 @@ export const span = (
|
|
|
3576
3602
|
*
|
|
3577
3603
|
* @example
|
|
3578
3604
|
* ```ts
|
|
3579
|
-
* import { Console, Effect, Layer,
|
|
3605
|
+
* import { Console, Effect, Layer, Context, Tracer } from "effect"
|
|
3580
3606
|
*
|
|
3581
|
-
* class Database extends
|
|
3607
|
+
* class Database extends Context.Service<Database, {
|
|
3582
3608
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3583
3609
|
* }>()("Database") {}
|
|
3584
3610
|
*
|
|
@@ -3605,7 +3631,7 @@ export const span = (
|
|
|
3605
3631
|
* @category tracing
|
|
3606
3632
|
*/
|
|
3607
3633
|
export const parentSpan = (span: Tracer.AnySpan): Layer<Tracer.ParentSpan> =>
|
|
3608
|
-
|
|
3634
|
+
succeedContext(Tracer.ParentSpan.context(span))
|
|
3609
3635
|
|
|
3610
3636
|
/**
|
|
3611
3637
|
* Wraps a Layer with a new tracing span, making all operations in the layer
|
|
@@ -3617,13 +3643,13 @@ export const parentSpan = (span: Tracer.AnySpan): Layer<Tracer.ParentSpan> =>
|
|
|
3617
3643
|
*
|
|
3618
3644
|
* @example
|
|
3619
3645
|
* ```ts
|
|
3620
|
-
* import { Effect, Layer,
|
|
3646
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3621
3647
|
*
|
|
3622
|
-
* class Database extends
|
|
3648
|
+
* class Database extends Context.Service<Database, {
|
|
3623
3649
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3624
3650
|
* }>()("Database") {}
|
|
3625
3651
|
*
|
|
3626
|
-
* class Logger extends
|
|
3652
|
+
* class Logger extends Context.Service<Logger, {
|
|
3627
3653
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3628
3654
|
* }>()("Logger") {}
|
|
3629
3655
|
*
|
|
@@ -3676,13 +3702,13 @@ export const withSpan: {
|
|
|
3676
3702
|
*
|
|
3677
3703
|
* @example
|
|
3678
3704
|
* ```ts
|
|
3679
|
-
* import { Effect, Layer,
|
|
3705
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3680
3706
|
*
|
|
3681
|
-
* class Database extends
|
|
3707
|
+
* class Database extends Context.Service<Database, {
|
|
3682
3708
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3683
3709
|
* }>()("Database") {}
|
|
3684
3710
|
*
|
|
3685
|
-
* class Logger extends
|
|
3711
|
+
* class Logger extends Context.Service<Logger, {
|
|
3686
3712
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3687
3713
|
* }>()("Logger") {}
|
|
3688
3714
|
*
|
|
@@ -3737,13 +3763,13 @@ export const withSpan: {
|
|
|
3737
3763
|
*
|
|
3738
3764
|
* @example
|
|
3739
3765
|
* ```ts
|
|
3740
|
-
* import { Effect, Layer,
|
|
3766
|
+
* import { Effect, Layer, Context } from "effect"
|
|
3741
3767
|
*
|
|
3742
|
-
* class Database extends
|
|
3768
|
+
* class Database extends Context.Service<Database, {
|
|
3743
3769
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3744
3770
|
* }>()("Database") {}
|
|
3745
3771
|
*
|
|
3746
|
-
* class Logger extends
|
|
3772
|
+
* class Logger extends Context.Service<Logger, {
|
|
3747
3773
|
* readonly log: (msg: string) => Effect.Effect<void>
|
|
3748
3774
|
* }>()("Logger") {}
|
|
3749
3775
|
*
|
|
@@ -3827,13 +3853,13 @@ export const withSpan: {
|
|
|
3827
3853
|
*
|
|
3828
3854
|
* @example
|
|
3829
3855
|
* ```ts
|
|
3830
|
-
* import { Effect, Layer,
|
|
3856
|
+
* import { Effect, Layer, Context, Tracer } from "effect"
|
|
3831
3857
|
*
|
|
3832
|
-
* class Database extends
|
|
3858
|
+
* class Database extends Context.Service<Database, {
|
|
3833
3859
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3834
3860
|
* }>()("Database") {}
|
|
3835
3861
|
*
|
|
3836
|
-
* class Cache extends
|
|
3862
|
+
* class Cache extends Context.Service<Cache, {
|
|
3837
3863
|
* readonly get: (key: string) => Effect.Effect<string | null>
|
|
3838
3864
|
* }>()("Cache") {}
|
|
3839
3865
|
*
|
|
@@ -3862,9 +3888,9 @@ export const withSpan: {
|
|
|
3862
3888
|
* Layer.withParentSpan(parentSpan)
|
|
3863
3889
|
* )
|
|
3864
3890
|
*
|
|
3865
|
-
* const
|
|
3866
|
-
* const database =
|
|
3867
|
-
* const cache =
|
|
3891
|
+
* const context = yield* Layer.build(AppLayer)
|
|
3892
|
+
* const database = Context.get(context, Database)
|
|
3893
|
+
* const cache = Context.get(context, Cache)
|
|
3868
3894
|
*
|
|
3869
3895
|
* const dbResult = yield* database.query("SELECT * FROM users")
|
|
3870
3896
|
* const cacheResult = yield* cache.get("user:123")
|
|
@@ -3887,13 +3913,13 @@ export const withParentSpan: {
|
|
|
3887
3913
|
*
|
|
3888
3914
|
* @example
|
|
3889
3915
|
* ```ts
|
|
3890
|
-
* import { Effect, Layer,
|
|
3916
|
+
* import { Effect, Layer, Context, Tracer } from "effect"
|
|
3891
3917
|
*
|
|
3892
|
-
* class Database extends
|
|
3918
|
+
* class Database extends Context.Service<Database, {
|
|
3893
3919
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3894
3920
|
* }>()("Database") {}
|
|
3895
3921
|
*
|
|
3896
|
-
* class Cache extends
|
|
3922
|
+
* class Cache extends Context.Service<Cache, {
|
|
3897
3923
|
* readonly get: (key: string) => Effect.Effect<string | null>
|
|
3898
3924
|
* }>()("Cache") {}
|
|
3899
3925
|
*
|
|
@@ -3922,9 +3948,9 @@ export const withParentSpan: {
|
|
|
3922
3948
|
* Layer.withParentSpan(parentSpan)
|
|
3923
3949
|
* )
|
|
3924
3950
|
*
|
|
3925
|
-
* const
|
|
3926
|
-
* const database =
|
|
3927
|
-
* const cache =
|
|
3951
|
+
* const context = yield* Layer.build(AppLayer)
|
|
3952
|
+
* const database = Context.get(context, Database)
|
|
3953
|
+
* const cache = Context.get(context, Cache)
|
|
3928
3954
|
*
|
|
3929
3955
|
* const dbResult = yield* database.query("SELECT * FROM users")
|
|
3930
3956
|
* const cacheResult = yield* cache.get("user:123")
|
|
@@ -3949,13 +3975,13 @@ export const withParentSpan: {
|
|
|
3949
3975
|
*
|
|
3950
3976
|
* @example
|
|
3951
3977
|
* ```ts
|
|
3952
|
-
* import { Effect, Layer,
|
|
3978
|
+
* import { Effect, Layer, Context, Tracer } from "effect"
|
|
3953
3979
|
*
|
|
3954
|
-
* class Database extends
|
|
3980
|
+
* class Database extends Context.Service<Database, {
|
|
3955
3981
|
* readonly query: (sql: string) => Effect.Effect<string>
|
|
3956
3982
|
* }>()("Database") {}
|
|
3957
3983
|
*
|
|
3958
|
-
* class Cache extends
|
|
3984
|
+
* class Cache extends Context.Service<Cache, {
|
|
3959
3985
|
* readonly get: (key: string) => Effect.Effect<string | null>
|
|
3960
3986
|
* }>()("Cache") {}
|
|
3961
3987
|
*
|
|
@@ -3984,9 +4010,9 @@ export const withParentSpan: {
|
|
|
3984
4010
|
* Layer.withParentSpan(parentSpan)
|
|
3985
4011
|
* )
|
|
3986
4012
|
*
|
|
3987
|
-
* const
|
|
3988
|
-
* const database =
|
|
3989
|
-
* const cache =
|
|
4013
|
+
* const context = yield* Layer.build(AppLayer)
|
|
4014
|
+
* const database = Context.get(context, Database)
|
|
4015
|
+
* const cache = Context.get(context, Cache)
|
|
3990
4016
|
*
|
|
3991
4017
|
* const dbResult = yield* database.query("SELECT * FROM users")
|
|
3992
4018
|
* const cacheResult = yield* cache.get("user:123")
|