effect 4.0.0-beta.30 → 4.0.0-beta.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Array.d.ts +87 -86
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +47 -40
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +46 -45
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +35 -38
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +39 -32
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +32 -29
- package/dist/BigInt.js.map +1 -1
- package/dist/Channel.d.ts +2 -2
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +58 -57
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +20 -21
- package/dist/Chunk.js.map +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +4 -1
- package/dist/Config.js.map +1 -1
- package/dist/Cron.d.ts +3 -6
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +11 -18
- package/dist/Cron.js.map +1 -1
- package/dist/DateTime.d.ts +49 -92
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +9 -9
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +7 -5
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +7 -5
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +55 -25
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +100 -70
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +3 -4
- package/dist/Effect.js.map +1 -1
- package/dist/Fiber.d.ts +2 -1
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +9 -8
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +8 -7
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +20 -19
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +6 -6
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +17 -16
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +10 -7
- package/dist/FileSystem.js.map +1 -1
- package/dist/Graph.d.ts +64 -64
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +53 -53
- package/dist/Graph.js.map +1 -1
- package/dist/HashMap.d.ts +11 -5
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +3 -1
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +11 -11
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +12 -12
- package/dist/Iterable.js.map +1 -1
- package/dist/Latch.d.ts +69 -3
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +58 -0
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +181 -2
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +35 -2
- package/dist/Layer.js.map +1 -1
- package/dist/Number.d.ts +74 -18
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +34 -15
- package/dist/Number.js.map +1 -1
- package/dist/Option.d.ts +2 -0
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +183 -0
- package/dist/PartitionedSemaphore.d.ts.map +1 -0
- package/dist/PartitionedSemaphore.js +231 -0
- package/dist/PartitionedSemaphore.js.map +1 -0
- package/dist/PubSub.d.ts +5 -4
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +6 -5
- package/dist/PubSub.js.map +1 -1
- package/dist/Queue.d.ts +3 -3
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +2 -2
- package/dist/Queue.js.map +1 -1
- package/dist/Record.d.ts +40 -40
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +16 -15
- package/dist/Record.js.map +1 -1
- package/dist/Scheduler.d.ts +25 -123
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +20 -123
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +2346 -114
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +1359 -68
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +2 -2
- package/dist/SchemaAST.js +2 -2
- package/dist/SchemaGetter.js +6 -4
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +2 -2
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +32 -27
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Semaphore.d.ts +149 -53
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +137 -117
- package/dist/Semaphore.js.map +1 -1
- package/dist/ServiceMap.d.ts +26 -0
- package/dist/ServiceMap.d.ts.map +1 -1
- package/dist/ServiceMap.js +36 -21
- package/dist/ServiceMap.js.map +1 -1
- package/dist/Stream.js +1 -1
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +114 -47
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +29 -47
- package/dist/String.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +1 -2
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +81 -115
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Terminal.d.ts +2 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +5 -4
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +2 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +26 -14
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +8 -4
- package/dist/Trie.js.map +1 -1
- package/dist/TxHashMap.d.ts +77 -59
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +25 -19
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxSemaphore.d.ts +162 -2
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +16 -2
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/index.d.ts +88 -32
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +88 -32
- package/dist/index.js.map +1 -1
- package/dist/internal/dateTime.js +66 -59
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +21 -90
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +2 -1
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/option.js +6 -0
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/trie.js +3 -3
- package/dist/internal/trie.js.map +1 -1
- package/dist/unstable/ai/AiError.js +1 -1
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -0
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -4
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +2 -2
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +30 -16
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +10 -87
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +14 -0
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +13 -0
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +2 -4
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +1 -3
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +3 -2
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +4 -3
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +3 -2
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +3 -3
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +16 -0
- package/dist/unstable/cli/Completions.d.ts.map +1 -0
- package/dist/unstable/cli/Completions.js +23 -0
- package/dist/unstable/cli/Completions.js.map +1 -0
- package/dist/unstable/cli/Flag.d.ts +2 -2
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +1 -1
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.js +4 -4
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +14 -12
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +4 -4
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +7 -7
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +1 -1
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.js +71 -67
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.d.ts +4 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +4 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js +9 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +8 -3
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +25 -23
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +3 -2
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +7 -7
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +4 -3
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +3 -2
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +10 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +12 -12
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +2 -1
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +4 -3
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +9 -8
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +2 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +7 -6
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +19 -13
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +5 -4
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +4 -4
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +19 -18
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +9 -10
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +2 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +1 -4
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +8 -8
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +5 -4
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +3 -4
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +5 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +3 -2
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +2 -1
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +2 -1
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +4 -3
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +8 -6
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +2 -1
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +16 -15
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +3 -2
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +2 -1
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +7 -7
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- 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 +2 -1
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +2 -1
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +3 -2
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +14 -10
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +4 -3
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js +27 -15
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +5 -4
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +5 -6
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +4 -2
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +15 -0
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +81 -3
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +2 -2
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +7 -3
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/persistence/Persistable.js +1 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +1 -5
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +4 -2
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -3
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +4 -4
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +1 -3
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +3 -2
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +4 -1
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +3 -2
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +2 -1
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +1 -1
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +6 -6
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +2 -1
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +5 -4
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +19 -14
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +112 -105
- package/src/BigDecimal.ts +63 -66
- package/src/BigInt.ts +49 -41
- package/src/Channel.ts +3 -3
- package/src/Chunk.ts +68 -63
- package/src/Config.ts +4 -1
- package/src/Cron.ts +13 -18
- package/src/DateTime.ts +51 -92
- package/src/Deferred.ts +8 -6
- package/src/Duration.ts +112 -56
- package/src/Effect.ts +3 -4
- package/src/Fiber.ts +2 -1
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +22 -22
- package/src/FileSystem.ts +25 -22
- package/src/Graph.ts +105 -105
- package/src/HashMap.ts +11 -5
- package/src/Iterable.ts +13 -13
- package/src/Latch.ts +85 -3
- package/src/Layer.ts +244 -19
- package/src/Number.ts +85 -26
- package/src/Option.ts +2 -0
- package/src/PartitionedSemaphore.ts +414 -0
- package/src/PubSub.ts +7 -6
- package/src/Queue.ts +5 -5
- package/src/Record.ts +52 -47
- package/src/Scheduler.ts +37 -126
- package/src/Schema.ts +2366 -116
- package/src/SchemaAST.ts +2 -2
- package/src/SchemaGetter.ts +4 -4
- package/src/SchemaRepresentation.ts +2 -2
- package/src/SchemaTransformation.ts +27 -27
- package/src/Semaphore.ts +271 -183
- package/src/ServiceMap.ts +83 -31
- package/src/Stream.ts +1 -1
- package/src/String.ts +122 -69
- package/src/SubscriptionRef.ts +96 -117
- package/src/Terminal.ts +2 -1
- package/src/Tracer.ts +6 -5
- package/src/Trie.ts +26 -14
- package/src/TxHashMap.ts +78 -60
- package/src/TxSemaphore.ts +186 -11
- package/src/index.ts +89 -33
- package/src/internal/dateTime.ts +74 -65
- package/src/internal/effect.ts +30 -122
- package/src/internal/hashMap.ts +4 -3
- package/src/internal/option.ts +7 -0
- package/src/internal/trie.ts +6 -6
- package/src/unstable/ai/AiError.ts +1 -1
- package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
- package/src/unstable/ai/Chat.ts +17 -15
- package/src/unstable/ai/LanguageModel.ts +148 -97
- package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
- package/src/unstable/ai/Tool.ts +20 -0
- package/src/unstable/cli/Argument.ts +2 -4
- package/src/unstable/cli/CliOutput.ts +7 -5
- package/src/unstable/cli/Command.ts +5 -5
- package/src/unstable/cli/Completions.ts +36 -0
- package/src/unstable/cli/Flag.ts +2 -2
- package/src/unstable/cli/GlobalFlag.ts +4 -5
- package/src/unstable/cli/HelpDoc.ts +14 -12
- package/src/unstable/cli/Param.ts +15 -11
- package/src/unstable/cli/Primitive.ts +1 -1
- package/src/unstable/cli/Prompt.ts +81 -83
- package/src/unstable/cli/index.ts +5 -0
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +3 -2
- package/src/unstable/cli/internal/parser.ts +7 -4
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +35 -30
- package/src/unstable/cluster/DeliverAt.ts +1 -1
- package/src/unstable/cluster/Entity.ts +13 -12
- package/src/unstable/cluster/Message.ts +6 -5
- package/src/unstable/cluster/MessageStorage.ts +26 -25
- package/src/unstable/cluster/Reply.ts +7 -4
- package/src/unstable/cluster/RunnerServer.ts +10 -13
- package/src/unstable/cluster/Runners.ts +8 -7
- package/src/unstable/cluster/Sharding.ts +24 -17
- package/src/unstable/cluster/ShardingConfig.ts +6 -6
- package/src/unstable/cluster/SqlMessageStorage.ts +21 -18
- package/src/unstable/cluster/internal/entityManager.ts +27 -21
- package/src/unstable/devtools/DevToolsSchema.ts +3 -2
- package/src/unstable/encoding/Ndjson.ts +17 -17
- package/src/unstable/http/Cookies.ts +7 -8
- package/src/unstable/http/Etag.ts +5 -3
- package/src/unstable/http/Headers.ts +6 -5
- package/src/unstable/http/HttpClient.ts +2 -1
- package/src/unstable/http/HttpClientRequest.ts +11 -9
- package/src/unstable/http/HttpClientResponse.ts +5 -4
- package/src/unstable/http/HttpIncomingMessage.ts +3 -2
- package/src/unstable/http/HttpMiddleware.ts +16 -15
- package/src/unstable/http/HttpPlatform.ts +3 -2
- package/src/unstable/http/HttpRouter.ts +9 -9
- package/src/unstable/http/HttpServer.ts +3 -9
- package/src/unstable/http/HttpServerError.ts +3 -2
- package/src/unstable/http/HttpServerRequest.ts +29 -25
- package/src/unstable/http/HttpServerResponse.ts +7 -6
- package/src/unstable/http/HttpTraceContext.ts +31 -17
- package/src/unstable/http/UrlParams.ts +11 -14
- package/src/unstable/httpapi/HttpApiBuilder.ts +13 -7
- package/src/unstable/httpapi/HttpApiError.ts +67 -12
- package/src/unstable/observability/OtlpExporter.ts +5 -2
- package/src/unstable/observability/OtlpTracer.ts +8 -4
- package/src/unstable/persistence/Persistable.ts +1 -1
- package/src/unstable/reactivity/Atom.ts +1 -4
- package/src/unstable/reactivity/AtomRegistry.ts +5 -3
- package/src/unstable/rpc/Rpc.ts +4 -3
- package/src/unstable/rpc/RpcClient.ts +10 -9
- package/src/unstable/rpc/RpcGroup.ts +3 -3
- package/src/unstable/rpc/RpcSchema.ts +6 -5
- package/src/unstable/rpc/RpcSerialization.ts +4 -1
- package/src/unstable/rpc/RpcServer.ts +3 -3
- package/src/unstable/socket/Socket.ts +2 -1
- package/src/unstable/sql/SqlClient.ts +5 -3
- package/src/unstable/workflow/DurableDeferred.ts +6 -6
- package/src/unstable/workflow/Workflow.ts +1 -1
- package/src/unstable/workflow/WorkflowEngine.ts +29 -20
- package/dist/NullOr.d.ts +0 -149
- package/dist/NullOr.d.ts.map +0 -1
- package/dist/NullOr.js +0 -152
- package/dist/NullOr.js.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
- package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.js +0 -23
- package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
- package/src/NullOr.ts +0 -204
- package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/dist/Scheduler.d.ts
CHANGED
|
@@ -18,8 +18,16 @@ import * as ServiceMap from "./ServiceMap.ts";
|
|
|
18
18
|
*/
|
|
19
19
|
export interface Scheduler {
|
|
20
20
|
readonly executionMode: "sync" | "async";
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
shouldYield(fiber: Fiber.Fiber<unknown, unknown>): boolean;
|
|
22
|
+
makeDispatcher(): SchedulerDispatcher;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @since 4.0.0
|
|
26
|
+
* @category models
|
|
27
|
+
*/
|
|
28
|
+
export interface SchedulerDispatcher {
|
|
29
|
+
scheduleTask(task: () => void, priority: number): void;
|
|
30
|
+
flush(): void;
|
|
23
31
|
}
|
|
24
32
|
/**
|
|
25
33
|
* @since 4.0.0
|
|
@@ -37,59 +45,39 @@ export declare const Scheduler: ServiceMap.Reference<Scheduler>;
|
|
|
37
45
|
* - Automatic yielding based on operation count
|
|
38
46
|
* - Optimized for high-throughput scenarios
|
|
39
47
|
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```ts
|
|
42
|
-
* import { MixedScheduler } from "effect/Scheduler"
|
|
43
|
-
*
|
|
44
|
-
* // Create a mixed scheduler with async execution (default)
|
|
45
|
-
* const asyncScheduler = new MixedScheduler("async")
|
|
46
|
-
*
|
|
47
|
-
* // Create a mixed scheduler with sync execution
|
|
48
|
-
* const syncScheduler = new MixedScheduler("sync")
|
|
49
|
-
*
|
|
50
|
-
* // Schedule tasks with different priorities
|
|
51
|
-
* asyncScheduler.scheduleTask(() => console.log("High priority task"), 10)
|
|
52
|
-
* asyncScheduler.scheduleTask(() => console.log("Normal priority task"), 0)
|
|
53
|
-
* asyncScheduler.scheduleTask(() => console.log("Low priority task"), -1)
|
|
54
|
-
*
|
|
55
|
-
* // For sync scheduler, you can flush tasks immediately
|
|
56
|
-
* syncScheduler.scheduleTask(() => console.log("Task 1"), 0)
|
|
57
|
-
* syncScheduler.scheduleTask(() => console.log("Task 2"), 0)
|
|
58
|
-
*
|
|
59
|
-
* // Force flush all pending tasks in sync mode
|
|
60
|
-
* syncScheduler.flush()
|
|
61
|
-
* // Output: "Task 1", "Task 2"
|
|
62
|
-
*
|
|
63
|
-
* // Check execution mode
|
|
64
|
-
* console.log(asyncScheduler.executionMode) // "async"
|
|
65
|
-
* console.log(syncScheduler.executionMode) // "sync"
|
|
66
|
-
* ```
|
|
67
|
-
*
|
|
68
48
|
* @since 2.0.0
|
|
69
49
|
* @category schedulers
|
|
70
50
|
*/
|
|
71
51
|
export declare class MixedScheduler implements Scheduler {
|
|
72
|
-
private tasks;
|
|
73
|
-
private running;
|
|
74
52
|
readonly executionMode: "sync" | "async";
|
|
75
53
|
readonly setImmediate: (f: () => void) => () => void;
|
|
76
54
|
constructor(executionMode?: "sync" | "async", setImmediateFn?: (f: () => void) => () => void);
|
|
77
55
|
/**
|
|
78
56
|
* @since 2.0.0
|
|
79
57
|
*/
|
|
80
|
-
|
|
58
|
+
shouldYield(fiber: Fiber.Fiber<unknown, unknown>): boolean;
|
|
81
59
|
/**
|
|
82
60
|
* @since 2.0.0
|
|
83
61
|
*/
|
|
84
|
-
|
|
62
|
+
makeDispatcher(): MixedSchedulerDispatcher;
|
|
63
|
+
}
|
|
64
|
+
declare class MixedSchedulerDispatcher implements SchedulerDispatcher {
|
|
65
|
+
private tasks;
|
|
66
|
+
private running;
|
|
67
|
+
readonly setImmediate: (f: () => void) => () => void;
|
|
68
|
+
constructor(setImmediateFn?: (f: () => void) => () => void);
|
|
85
69
|
/**
|
|
86
70
|
* @since 2.0.0
|
|
87
71
|
*/
|
|
88
|
-
|
|
72
|
+
scheduleTask(task: () => void, priority: number): void;
|
|
89
73
|
/**
|
|
90
74
|
* @since 2.0.0
|
|
91
75
|
*/
|
|
92
|
-
|
|
76
|
+
afterScheduled: () => void;
|
|
77
|
+
/**
|
|
78
|
+
* @since 2.0.0
|
|
79
|
+
*/
|
|
80
|
+
runTasks(): void;
|
|
93
81
|
/**
|
|
94
82
|
* @since 2.0.0
|
|
95
83
|
*/
|
|
@@ -103,93 +91,6 @@ export declare class MixedScheduler implements Scheduler {
|
|
|
103
91
|
* The default value is 2048 operations, which provides a good balance between
|
|
104
92
|
* performance and fairness in concurrent execution.
|
|
105
93
|
*
|
|
106
|
-
* @example
|
|
107
|
-
* ```ts
|
|
108
|
-
* import { Effect } from "effect"
|
|
109
|
-
* import { MaxOpsBeforeYield } from "effect/Scheduler"
|
|
110
|
-
*
|
|
111
|
-
* // Configure a fiber to yield more frequently
|
|
112
|
-
* const program = Effect.gen(function*() {
|
|
113
|
-
* // Get current max ops setting (default is 2048)
|
|
114
|
-
* const currentMax = yield* MaxOpsBeforeYield
|
|
115
|
-
* yield* Effect.log(`Default max ops before yield: ${currentMax}`)
|
|
116
|
-
*
|
|
117
|
-
* // Run with reduced max ops for more frequent yielding
|
|
118
|
-
* return yield* Effect.provideService(
|
|
119
|
-
* Effect.gen(function*() {
|
|
120
|
-
* const maxOps = yield* MaxOpsBeforeYield
|
|
121
|
-
* yield* Effect.log(`Max ops before yield: ${maxOps}`)
|
|
122
|
-
*
|
|
123
|
-
* // Run a compute-intensive task that will yield frequently
|
|
124
|
-
* let result = 0
|
|
125
|
-
* for (let i = 0; i < 10000; i++) {
|
|
126
|
-
* result += i
|
|
127
|
-
* // This will cause yielding every 100 operations
|
|
128
|
-
* yield* Effect.sync(() => result)
|
|
129
|
-
* }
|
|
130
|
-
* return result
|
|
131
|
-
* }),
|
|
132
|
-
* MaxOpsBeforeYield,
|
|
133
|
-
* 100
|
|
134
|
-
* )
|
|
135
|
-
* })
|
|
136
|
-
*
|
|
137
|
-
* // Configure for high-performance scenarios
|
|
138
|
-
* const highPerformanceProgram = Effect.gen(function*() {
|
|
139
|
-
* // Run with increased max ops for better performance (less yielding)
|
|
140
|
-
* return yield* Effect.provideService(
|
|
141
|
-
* Effect.gen(function*() {
|
|
142
|
-
* const maxOps = yield* MaxOpsBeforeYield
|
|
143
|
-
* yield* Effect.log(`High-performance max ops: ${maxOps}`)
|
|
144
|
-
*
|
|
145
|
-
* // Run multiple concurrent tasks
|
|
146
|
-
* const tasks = Array.from(
|
|
147
|
-
* { length: 100 },
|
|
148
|
-
* (_, i) =>
|
|
149
|
-
* Effect.gen(function*() {
|
|
150
|
-
* yield* Effect.sleep(`${i * 10} millis`)
|
|
151
|
-
* return `Task ${i} completed`
|
|
152
|
-
* })
|
|
153
|
-
* )
|
|
154
|
-
*
|
|
155
|
-
* return yield* Effect.all(tasks, { concurrency: "unbounded" })
|
|
156
|
-
* }),
|
|
157
|
-
* MaxOpsBeforeYield,
|
|
158
|
-
* 10000
|
|
159
|
-
* )
|
|
160
|
-
* })
|
|
161
|
-
*
|
|
162
|
-
* // Configure for fair scheduling
|
|
163
|
-
* const fairSchedulingProgram = Effect.gen(function*() {
|
|
164
|
-
* // Run with lower max ops for more frequent yielding
|
|
165
|
-
* return yield* Effect.provideService(
|
|
166
|
-
* Effect.gen(function*() {
|
|
167
|
-
* const maxOps = yield* MaxOpsBeforeYield
|
|
168
|
-
* yield* Effect.log(`Fair scheduling max ops: ${maxOps}`)
|
|
169
|
-
*
|
|
170
|
-
* const longRunningTask = Effect.gen(function*() {
|
|
171
|
-
* for (let i = 0; i < 1000; i++) {
|
|
172
|
-
* yield* Effect.sync(() => Math.random())
|
|
173
|
-
* }
|
|
174
|
-
* return "Long task completed"
|
|
175
|
-
* })
|
|
176
|
-
*
|
|
177
|
-
* const quickTask = Effect.gen(function*() {
|
|
178
|
-
* yield* Effect.sleep("10 millis")
|
|
179
|
-
* return "Quick task completed"
|
|
180
|
-
* })
|
|
181
|
-
*
|
|
182
|
-
* // Both tasks will execute fairly due to frequent yielding
|
|
183
|
-
* return yield* Effect.all([longRunningTask, quickTask], {
|
|
184
|
-
* concurrency: "unbounded"
|
|
185
|
-
* })
|
|
186
|
-
* }),
|
|
187
|
-
* MaxOpsBeforeYield,
|
|
188
|
-
* 50
|
|
189
|
-
* )
|
|
190
|
-
* })
|
|
191
|
-
* ```
|
|
192
|
-
*
|
|
193
94
|
* @since 4.0.0
|
|
194
95
|
* @category references
|
|
195
96
|
*/
|
|
@@ -203,4 +104,5 @@ export declare const MaxOpsBeforeYield: ServiceMap.Reference<number>;
|
|
|
203
104
|
* @category references
|
|
204
105
|
*/
|
|
205
106
|
export declare const PreventSchedulerYield: ServiceMap.Reference<boolean>;
|
|
107
|
+
export {};
|
|
206
108
|
//# sourceMappingURL=Scheduler.d.ts.map
|
package/dist/Scheduler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scheduler.d.ts","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;IACxC,
|
|
1
|
+
{"version":3,"file":"Scheduler.d.ts","sourceRoot":"","sources":["../src/Scheduler.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;IACxC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC1D,cAAc,IAAI,mBAAmB,CAAA;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACtD,KAAK,IAAI,IAAI,CAAA;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAEpD,CAAA;AA0CF;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,YAAW,SAAS;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;IACxC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;gBAGlD,aAAa,GAAE,MAAM,GAAG,OAAiB,EACzC,cAAc,GAAE,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,MAAM,IAAmB;IAM9D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAIhD;;OAEG;IACH,cAAc;CAGf;AAED,cAAM,wBAAyB,YAAW,mBAAmB;IAC3D,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,OAAO,CAAsC;IACrD,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;gBAGlD,cAAc,GAAE,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,MAAM,IAAmB;IAK9D;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,QAAQ,EAAE,MAAM;IAO/C;;OAEG;IACH,cAAc,aAGb;IAED;;OAEG;IACH,QAAQ;IAUR;;OAEG;IACH,KAAK;CASN;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,8BAE5B,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,+BAEhC,CAAA"}
|
package/dist/Scheduler.js
CHANGED
|
@@ -51,46 +51,36 @@ class PriorityBuckets {
|
|
|
51
51
|
* - Automatic yielding based on operation count
|
|
52
52
|
* - Optimized for high-throughput scenarios
|
|
53
53
|
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```ts
|
|
56
|
-
* import { MixedScheduler } from "effect/Scheduler"
|
|
57
|
-
*
|
|
58
|
-
* // Create a mixed scheduler with async execution (default)
|
|
59
|
-
* const asyncScheduler = new MixedScheduler("async")
|
|
60
|
-
*
|
|
61
|
-
* // Create a mixed scheduler with sync execution
|
|
62
|
-
* const syncScheduler = new MixedScheduler("sync")
|
|
63
|
-
*
|
|
64
|
-
* // Schedule tasks with different priorities
|
|
65
|
-
* asyncScheduler.scheduleTask(() => console.log("High priority task"), 10)
|
|
66
|
-
* asyncScheduler.scheduleTask(() => console.log("Normal priority task"), 0)
|
|
67
|
-
* asyncScheduler.scheduleTask(() => console.log("Low priority task"), -1)
|
|
68
|
-
*
|
|
69
|
-
* // For sync scheduler, you can flush tasks immediately
|
|
70
|
-
* syncScheduler.scheduleTask(() => console.log("Task 1"), 0)
|
|
71
|
-
* syncScheduler.scheduleTask(() => console.log("Task 2"), 0)
|
|
72
|
-
*
|
|
73
|
-
* // Force flush all pending tasks in sync mode
|
|
74
|
-
* syncScheduler.flush()
|
|
75
|
-
* // Output: "Task 1", "Task 2"
|
|
76
|
-
*
|
|
77
|
-
* // Check execution mode
|
|
78
|
-
* console.log(asyncScheduler.executionMode) // "async"
|
|
79
|
-
* console.log(syncScheduler.executionMode) // "sync"
|
|
80
|
-
* ```
|
|
81
|
-
*
|
|
82
54
|
* @since 2.0.0
|
|
83
55
|
* @category schedulers
|
|
84
56
|
*/
|
|
85
57
|
export class MixedScheduler {
|
|
86
|
-
tasks = /*#__PURE__*/new PriorityBuckets();
|
|
87
|
-
running = undefined;
|
|
88
58
|
executionMode;
|
|
89
59
|
setImmediate;
|
|
90
60
|
constructor(executionMode = "async", setImmediateFn = setImmediate) {
|
|
91
61
|
this.executionMode = executionMode;
|
|
92
62
|
this.setImmediate = setImmediateFn;
|
|
93
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* @since 2.0.0
|
|
66
|
+
*/
|
|
67
|
+
shouldYield(fiber) {
|
|
68
|
+
return fiber.currentOpCount >= fiber.maxOpsBeforeYield;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @since 2.0.0
|
|
72
|
+
*/
|
|
73
|
+
makeDispatcher() {
|
|
74
|
+
return new MixedSchedulerDispatcher(this.setImmediate);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
class MixedSchedulerDispatcher {
|
|
78
|
+
tasks = /*#__PURE__*/new PriorityBuckets();
|
|
79
|
+
running = undefined;
|
|
80
|
+
setImmediate;
|
|
81
|
+
constructor(setImmediateFn = setImmediate) {
|
|
82
|
+
this.setImmediate = setImmediateFn;
|
|
83
|
+
}
|
|
94
84
|
/**
|
|
95
85
|
* @since 2.0.0
|
|
96
86
|
*/
|
|
@@ -119,12 +109,6 @@ export class MixedScheduler {
|
|
|
119
109
|
}
|
|
120
110
|
}
|
|
121
111
|
}
|
|
122
|
-
/**
|
|
123
|
-
* @since 2.0.0
|
|
124
|
-
*/
|
|
125
|
-
shouldYield(fiber) {
|
|
126
|
-
return fiber.currentOpCount >= fiber.maxOpsBeforeYield;
|
|
127
|
-
}
|
|
128
112
|
/**
|
|
129
113
|
* @since 2.0.0
|
|
130
114
|
*/
|
|
@@ -146,93 +130,6 @@ export class MixedScheduler {
|
|
|
146
130
|
* The default value is 2048 operations, which provides a good balance between
|
|
147
131
|
* performance and fairness in concurrent execution.
|
|
148
132
|
*
|
|
149
|
-
* @example
|
|
150
|
-
* ```ts
|
|
151
|
-
* import { Effect } from "effect"
|
|
152
|
-
* import { MaxOpsBeforeYield } from "effect/Scheduler"
|
|
153
|
-
*
|
|
154
|
-
* // Configure a fiber to yield more frequently
|
|
155
|
-
* const program = Effect.gen(function*() {
|
|
156
|
-
* // Get current max ops setting (default is 2048)
|
|
157
|
-
* const currentMax = yield* MaxOpsBeforeYield
|
|
158
|
-
* yield* Effect.log(`Default max ops before yield: ${currentMax}`)
|
|
159
|
-
*
|
|
160
|
-
* // Run with reduced max ops for more frequent yielding
|
|
161
|
-
* return yield* Effect.provideService(
|
|
162
|
-
* Effect.gen(function*() {
|
|
163
|
-
* const maxOps = yield* MaxOpsBeforeYield
|
|
164
|
-
* yield* Effect.log(`Max ops before yield: ${maxOps}`)
|
|
165
|
-
*
|
|
166
|
-
* // Run a compute-intensive task that will yield frequently
|
|
167
|
-
* let result = 0
|
|
168
|
-
* for (let i = 0; i < 10000; i++) {
|
|
169
|
-
* result += i
|
|
170
|
-
* // This will cause yielding every 100 operations
|
|
171
|
-
* yield* Effect.sync(() => result)
|
|
172
|
-
* }
|
|
173
|
-
* return result
|
|
174
|
-
* }),
|
|
175
|
-
* MaxOpsBeforeYield,
|
|
176
|
-
* 100
|
|
177
|
-
* )
|
|
178
|
-
* })
|
|
179
|
-
*
|
|
180
|
-
* // Configure for high-performance scenarios
|
|
181
|
-
* const highPerformanceProgram = Effect.gen(function*() {
|
|
182
|
-
* // Run with increased max ops for better performance (less yielding)
|
|
183
|
-
* return yield* Effect.provideService(
|
|
184
|
-
* Effect.gen(function*() {
|
|
185
|
-
* const maxOps = yield* MaxOpsBeforeYield
|
|
186
|
-
* yield* Effect.log(`High-performance max ops: ${maxOps}`)
|
|
187
|
-
*
|
|
188
|
-
* // Run multiple concurrent tasks
|
|
189
|
-
* const tasks = Array.from(
|
|
190
|
-
* { length: 100 },
|
|
191
|
-
* (_, i) =>
|
|
192
|
-
* Effect.gen(function*() {
|
|
193
|
-
* yield* Effect.sleep(`${i * 10} millis`)
|
|
194
|
-
* return `Task ${i} completed`
|
|
195
|
-
* })
|
|
196
|
-
* )
|
|
197
|
-
*
|
|
198
|
-
* return yield* Effect.all(tasks, { concurrency: "unbounded" })
|
|
199
|
-
* }),
|
|
200
|
-
* MaxOpsBeforeYield,
|
|
201
|
-
* 10000
|
|
202
|
-
* )
|
|
203
|
-
* })
|
|
204
|
-
*
|
|
205
|
-
* // Configure for fair scheduling
|
|
206
|
-
* const fairSchedulingProgram = Effect.gen(function*() {
|
|
207
|
-
* // Run with lower max ops for more frequent yielding
|
|
208
|
-
* return yield* Effect.provideService(
|
|
209
|
-
* Effect.gen(function*() {
|
|
210
|
-
* const maxOps = yield* MaxOpsBeforeYield
|
|
211
|
-
* yield* Effect.log(`Fair scheduling max ops: ${maxOps}`)
|
|
212
|
-
*
|
|
213
|
-
* const longRunningTask = Effect.gen(function*() {
|
|
214
|
-
* for (let i = 0; i < 1000; i++) {
|
|
215
|
-
* yield* Effect.sync(() => Math.random())
|
|
216
|
-
* }
|
|
217
|
-
* return "Long task completed"
|
|
218
|
-
* })
|
|
219
|
-
*
|
|
220
|
-
* const quickTask = Effect.gen(function*() {
|
|
221
|
-
* yield* Effect.sleep("10 millis")
|
|
222
|
-
* return "Quick task completed"
|
|
223
|
-
* })
|
|
224
|
-
*
|
|
225
|
-
* // Both tasks will execute fairly due to frequent yielding
|
|
226
|
-
* return yield* Effect.all([longRunningTask, quickTask], {
|
|
227
|
-
* concurrency: "unbounded"
|
|
228
|
-
* })
|
|
229
|
-
* }),
|
|
230
|
-
* MaxOpsBeforeYield,
|
|
231
|
-
* 50
|
|
232
|
-
* )
|
|
233
|
-
* })
|
|
234
|
-
* ```
|
|
235
|
-
*
|
|
236
133
|
* @since 4.0.0
|
|
237
134
|
* @category references
|
|
238
135
|
*/
|
package/dist/Scheduler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scheduler.js","names":["ServiceMap","Scheduler","Reference","defaultValue","MixedScheduler","setImmediate","globalThis","f","timer","clearImmediate","setTimeout","clearTimeout","PriorityBuckets","buckets","scheduleTask","task","priority","len","length","bucket","index","push","splice","drain","
|
|
1
|
+
{"version":3,"file":"Scheduler.js","names":["ServiceMap","Scheduler","Reference","defaultValue","MixedScheduler","setImmediate","globalThis","f","timer","clearImmediate","setTimeout","clearTimeout","PriorityBuckets","buckets","scheduleTask","task","priority","len","length","bucket","index","push","splice","drain","executionMode","constructor","setImmediateFn","shouldYield","fiber","currentOpCount","maxOpsBeforeYield","makeDispatcher","MixedSchedulerDispatcher","tasks","running","undefined","afterScheduled","runTasks","i","toRun","j","flush","MaxOpsBeforeYield","PreventSchedulerYield"],"sources":["../src/Scheduler.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,UAAU,MAAM,iBAAiB;AA8B7C;;;;AAIA,OAAO,MAAMC,SAAS,gBAAoCD,UAAU,CAACE,SAAS,CAAY,kBAAkB,EAAE;EAC5GC,YAAY,EAAEA,CAAA,KAAM,IAAIC,cAAc;CACvC,CAAC;AAEF,MAAMC,YAAY,GAAG,cAAc,IAAIC,UAAU,GAC5CC,CAAa,IAAI;EAClB;EACA,MAAMC,KAAK,GAAGF,UAAU,CAACD,YAAY,CAACE,CAAC,CAAC;EACxC;EACA,OAAO,MAAYD,UAAU,CAACG,cAAc,CAACD,KAAK,CAAC;AACrD,CAAC,GACED,CAAa,IAAI;EAClB,MAAMC,KAAK,GAAGE,UAAU,CAACH,CAAC,EAAE,CAAC,CAAC;EAC9B,OAAO,MAAYI,YAAY,CAACH,KAAK,CAAC;AACxC,CAAC;AAEH,MAAMI,eAAe;EACnBC,OAAO,GAAwD,EAAE;EAEjEC,YAAYA,CAACC,IAAgB,EAAEC,QAAgB;IAC7C,MAAMH,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,MAAMI,GAAG,GAAGJ,OAAO,CAACK,MAAM;IAC1B,IAAIC,MAA+C;IACnD,IAAIC,KAAK,GAAG,CAAC;IACb,OAAOA,KAAK,GAAGH,GAAG,EAAEG,KAAK,EAAE,EAAE;MAC3B,IAAIP,OAAO,CAACO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGJ,QAAQ,EAAE;MAClCG,MAAM,GAAGN,OAAO,CAACO,KAAK,CAAC;IACzB;IACA,IAAID,MAAM,IAAIA,MAAM,CAAC,CAAC,CAAC,KAAKH,QAAQ,EAAE;MACpCG,MAAM,CAAC,CAAC,CAAC,CAACE,IAAI,CAACN,IAAI,CAAC;IACtB,CAAC,MAAM,IAAIK,KAAK,KAAKH,GAAG,EAAE;MACxBJ,OAAO,CAACQ,IAAI,CAAC,CAACL,QAAQ,EAAE,CAACD,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC,MAAM;MACLF,OAAO,CAACS,MAAM,CAACF,KAAK,EAAE,CAAC,EAAE,CAACJ,QAAQ,EAAE,CAACD,IAAI,CAAC,CAAC,CAAC;IAC9C;EACF;EAEAQ,KAAKA,CAAA;IACH,MAAMV,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,IAAI,CAACA,OAAO,GAAG,EAAE;IACjB,OAAOA,OAAO;EAChB;;AAGF;;;;;;;;;;;;;;AAcA,OAAM,MAAOT,cAAc;EAChBoB,aAAa;EACbnB,YAAY;EAErBoB,YACED,aAAA,GAAkC,OAAO,EACzCE,cAAA,GAAgDrB,YAAY;IAE5D,IAAI,CAACmB,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACnB,YAAY,GAAGqB,cAAc;EACpC;EAEA;;;EAGAC,WAAWA,CAACC,KAAoC;IAC9C,OAAOA,KAAK,CAACC,cAAc,IAAID,KAAK,CAACE,iBAAiB;EACxD;EAEA;;;EAGAC,cAAcA,CAAA;IACZ,OAAO,IAAIC,wBAAwB,CAAC,IAAI,CAAC3B,YAAY,CAAC;EACxD;;AAGF,MAAM2B,wBAAwB;EACpBC,KAAK,gBAAG,IAAIrB,eAAe,EAAE;EAC7BsB,OAAO,GAA6BC,SAAS;EAC5C9B,YAAY;EAErBoB,YACEC,cAAA,GAAgDrB,YAAY;IAE5D,IAAI,CAACA,YAAY,GAAGqB,cAAc;EACpC;EAEA;;;EAGAZ,YAAYA,CAACC,IAAgB,EAAEC,QAAgB;IAC7C,IAAI,CAACiB,KAAK,CAACnB,YAAY,CAACC,IAAI,EAAEC,QAAQ,CAAC;IACvC,IAAI,IAAI,CAACkB,OAAO,KAAKC,SAAS,EAAE;MAC9B,IAAI,CAACD,OAAO,GAAG,IAAI,CAAC7B,YAAY,CAAC,IAAI,CAAC+B,cAAc,CAAC;IACvD;EACF;EAEA;;;EAGAA,cAAc,GAAGA,CAAA,KAAK;IACpB,IAAI,CAACF,OAAO,GAAGC,SAAS;IACxB,IAAI,CAACE,QAAQ,EAAE;EACjB,CAAC;EAED;;;EAGAA,QAAQA,CAAA;IACN,MAAMxB,OAAO,GAAG,IAAI,CAACoB,KAAK,CAACV,KAAK,EAAE;IAClC,KAAK,IAAIe,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGzB,OAAO,CAACK,MAAM,EAAEoB,CAAC,EAAE,EAAE;MACvC,MAAMC,KAAK,GAAG1B,OAAO,CAACyB,CAAC,CAAC,CAAC,CAAC,CAAC;MAC3B,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACrB,MAAM,EAAEsB,CAAC,EAAE,EAAE;QACrCD,KAAK,CAACC,CAAC,CAAC,EAAE;MACZ;IACF;EACF;EAEA;;;EAGAC,KAAKA,CAAA;IACH,OAAO,IAAI,CAACR,KAAK,CAACpB,OAAO,CAACK,MAAM,GAAG,CAAC,EAAE;MACpC,IAAI,IAAI,CAACgB,OAAO,KAAKC,SAAS,EAAE;QAC9B,IAAI,CAACD,OAAO,EAAE;QACd,IAAI,CAACA,OAAO,GAAGC,SAAS;MAC1B;MACA,IAAI,CAACE,QAAQ,EAAE;IACjB;EACF;;AAGF;;;;;;;;;;;AAWA,OAAO,MAAMK,iBAAiB,gBAAG1C,UAAU,CAACE,SAAS,CAAS,oCAAoC,EAAE;EAClGC,YAAY,EAAEA,CAAA,KAAM;CACrB,CAAC;AAEF;;;;;;;;AAQA,OAAO,MAAMwC,qBAAqB,gBAAG3C,UAAU,CAACE,SAAS,CAAU,wCAAwC,EAAE;EAC3GC,YAAY,EAAEA,CAAA,KAAM;CACrB,CAAC","ignoreList":[]}
|