effect 4.0.0-beta.5 → 4.0.0-beta.7
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 +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +1 -1
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +6 -4
- package/dist/Channel.js.map +1 -1
- package/dist/Config.d.ts +3 -3
- package/dist/Config.js +3 -3
- package/dist/Config.js.map +1 -1
- package/dist/Data.d.ts +3 -2
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +9 -8
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +23 -161
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +6 -51
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +12 -12
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +13 -239
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1 -119
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.js.map +1 -1
- package/dist/FileSystem.js +2 -2
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +2 -2
- package/dist/Graph.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +109 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +72 -0
- package/dist/Latch.js.map +1 -0
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LogLevel.d.ts +27 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +4 -4
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Metric.d.ts +2 -2
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +7 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +3 -2
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -2
- package/dist/PubSub.js.map +1 -1
- package/dist/Random.d.ts +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +3 -12
- 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 +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +6 -26
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Schedule.d.ts +22 -13
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +53 -25
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +196 -46
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +385 -71
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaGetter.d.ts +2 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +12 -14
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -43
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +5 -2
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +37 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +80 -0
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +211 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
- package/dist/Semaphore.js.map +1 -0
- package/dist/Stream.d.ts +19 -19
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +12 -11
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts +16 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +2 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +2 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Types.d.ts +8 -0
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +148 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -5
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +3 -11
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +2 -2
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +3 -2
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/testing/TestClock.d.ts +7 -6
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +6 -6
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +48 -48
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -3
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -3
- package/dist/unstable/ai/Chat.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/McpSchema.d.ts +51 -51
- package/dist/unstable/ai/McpServer.d.ts +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +26 -26
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +5 -4
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.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/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +5 -5
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +2 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +3 -3
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +4 -3
- package/dist/unstable/cluster/Runners.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 +8 -6
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -4
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
- package/dist/unstable/encoding/Sse.d.ts +3 -3
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -1
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +5 -5
- package/dist/unstable/http/Cookies.d.ts +2 -2
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -2
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +4 -4
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +11 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +8 -1
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +18 -26
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +2 -2
- package/dist/unstable/http/UrlParams.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +2 -2
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +1 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +4 -4
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +12 -11
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +1 -1
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +6 -6
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +3 -3
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/index.d.ts +2 -2
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +2 -2
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +2 -2
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +6 -13
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +5 -3
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +4 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +3 -2
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +16 -5
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -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.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +2 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +1 -2
- package/src/Cache.ts +3 -3
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +6 -4
- package/src/Config.ts +3 -3
- package/src/Data.ts +10 -9
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +15 -261
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +2 -2
- package/src/FileSystem.ts +4 -4
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +8 -5
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +31 -0
- package/src/Logger.ts +5 -5
- package/src/Metric.ts +4 -4
- package/src/Pipeable.ts +32 -1
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Random.ts +5 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Schedule.ts +261 -140
- package/src/Schema.ts +571 -109
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaRepresentation.ts +5 -2
- package/src/SchemaTransformation.ts +104 -0
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/Stream.ts +43 -42
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Types.ts +9 -0
- package/src/index.ts +151 -6
- package/src/internal/core.ts +10 -2
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +24 -23
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +8 -8
- package/src/unstable/ai/AiError.ts +2 -2
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +3 -3
- package/src/unstable/ai/McpServer.ts +2 -2
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
- package/src/unstable/cluster/Entity.ts +7 -6
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +1 -1
- package/src/unstable/cluster/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +11 -9
- package/src/unstable/cluster/ShardingConfig.ts +10 -11
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +9 -8
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/encoding/Sse.ts +2 -4
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/HttpClient.ts +4 -4
- package/src/unstable/http/HttpClientRequest.ts +15 -11
- package/src/unstable/http/HttpEffect.ts +17 -25
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +1 -1
- package/src/unstable/httpapi/HttpApiBuilder.ts +2 -2
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +4 -4
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +4 -4
- package/src/unstable/persistence/Persistable.ts +2 -2
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +25 -24
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +1 -1
- package/src/unstable/process/ChildProcessSpawner.ts +6 -0
- package/src/unstable/reactivity/Atom.ts +13 -13
- package/src/unstable/reactivity/AtomHttpApi.ts +3 -3
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/index.ts +2 -2
- package/src/unstable/rpc/Rpc.ts +3 -3
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcServer.ts +6 -4
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/socket/Socket.ts +7 -6
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlSchema.ts +41 -25
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/WorkflowEngine.ts +3 -2
- package/dist/PartitionedSemaphore.d.ts +0 -52
- package/dist/PartitionedSemaphore.d.ts.map +0 -1
- package/dist/PartitionedSemaphore.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/src/PartitionedSemaphore.ts +0 -182
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
package/src/Schedule.ts
CHANGED
|
@@ -36,8 +36,9 @@ import * as Duration from "./Duration.ts"
|
|
|
36
36
|
import type { Effect } from "./Effect.ts"
|
|
37
37
|
import type { LazyArg } from "./Function.ts"
|
|
38
38
|
import { constant, dual, identity } from "./Function.ts"
|
|
39
|
-
|
|
39
|
+
import { isEffect } from "./internal/core.ts"
|
|
40
40
|
import * as effect from "./internal/effect.ts"
|
|
41
|
+
import * as random from "./internal/random.ts"
|
|
41
42
|
import { type Pipeable, pipeArguments } from "./Pipeable.ts"
|
|
42
43
|
import { hasProperty } from "./Predicate.ts"
|
|
43
44
|
import * as Pull from "./Pull.ts"
|
|
@@ -47,6 +48,8 @@ import type { Contravariant, Covariant, Mutable } from "./Types.ts"
|
|
|
47
48
|
|
|
48
49
|
const TypeId = "~effect/Schedule"
|
|
49
50
|
|
|
51
|
+
const randomNext: Effect<number> = random.Random.useSync((random) => random.nextDoubleUnsafe())
|
|
52
|
+
|
|
50
53
|
/**
|
|
51
54
|
* A Schedule defines a strategy for repeating or retrying effects based on some policy.
|
|
52
55
|
*
|
|
@@ -747,7 +750,7 @@ export const addDelay: {
|
|
|
747
750
|
* @since 2.0.0
|
|
748
751
|
* @category utils
|
|
749
752
|
*/
|
|
750
|
-
<Output, Error2 = never, Env2 = never>(f: (output: Output) => Effect<Duration.
|
|
753
|
+
<Output, Error2 = never, Env2 = never>(f: (output: Output) => Effect<Duration.Input, Error2, Env2>): <Input, Error, Env>(
|
|
751
754
|
self: Schedule<Output, Input, Error, Env>
|
|
752
755
|
) => Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
753
756
|
/**
|
|
@@ -868,17 +871,16 @@ export const addDelay: {
|
|
|
868
871
|
*/
|
|
869
872
|
<Output, Input, Error, Env, Error2 = never, Env2 = never>(
|
|
870
873
|
self: Schedule<Output, Input, Error, Env>,
|
|
871
|
-
f: (output: Output) => Effect<Duration.
|
|
874
|
+
f: (output: Output) => Effect<Duration.Input, Error2, Env2>
|
|
872
875
|
): Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
873
876
|
} = dual(2, <Output, Input, Error, Env, Error2 = never, Env2 = never>(
|
|
874
877
|
self: Schedule<Output, Input, Error, Env>,
|
|
875
|
-
f: (output: Output) => Effect<Duration.
|
|
878
|
+
f: (output: Output) => Effect<Duration.Input, Error2, Env2>
|
|
876
879
|
): Schedule<Output, Input, Error | Error2, Env | Env2> =>
|
|
877
880
|
modifyDelay(
|
|
878
881
|
self,
|
|
879
882
|
(output, delay) =>
|
|
880
|
-
effect.map(f(output), (d) =>
|
|
881
|
-
Duration.sum(Duration.fromDurationInputUnsafe(d), Duration.fromDurationInputUnsafe(delay)))
|
|
883
|
+
effect.map(f(output), (d) => Duration.sum(Duration.fromInputUnsafe(d), Duration.fromInputUnsafe(delay)))
|
|
882
884
|
))
|
|
883
885
|
|
|
884
886
|
/**
|
|
@@ -1140,116 +1142,211 @@ export const andThenResult: {
|
|
|
1140
1142
|
} = dual(2, <Output, Input, Error, Env, Output2, Input2, Error2, Env2>(
|
|
1141
1143
|
self: Schedule<Output, Input, Error, Env>,
|
|
1142
1144
|
other: Schedule<Output2, Input2, Error2, Env2>
|
|
1143
|
-
): Schedule<Result.Result<
|
|
1144
|
-
fromStep(effect.
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1145
|
+
): Schedule<Result.Result<Output, Output2>, Input & Input2, Error | Error2, Env | Env2> =>
|
|
1146
|
+
fromStep(effect.sync(() => {
|
|
1147
|
+
let currentSide = 0
|
|
1148
|
+
let currentStep:
|
|
1149
|
+
| undefined
|
|
1150
|
+
| ((now: number, input: Input & Input2) => Pull.Pull<
|
|
1151
|
+
[Result.Result<Output, Output2>, Duration.Duration],
|
|
1149
1152
|
Error | Error2,
|
|
1150
|
-
Output
|
|
1153
|
+
Result.Result<Output, Output2>,
|
|
1151
1154
|
Env | Env2
|
|
1152
|
-
>
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1155
|
+
>)
|
|
1156
|
+
const left = map(self, Result.succeed)
|
|
1157
|
+
const right = map(other, Result.fail)
|
|
1158
|
+
return function recur(
|
|
1159
|
+
now,
|
|
1160
|
+
input
|
|
1161
|
+
): Pull.Pull<
|
|
1162
|
+
[Result.Result<Output, Output2>, Duration.Duration],
|
|
1163
|
+
Error | Error2,
|
|
1164
|
+
Result.Result<Output, Output2>,
|
|
1165
|
+
Env | Env2
|
|
1166
|
+
> {
|
|
1167
|
+
if (currentStep) return currentStep(now, input)
|
|
1168
|
+
return toStep<
|
|
1169
|
+
/**
|
|
1170
|
+
* Returns a new `Schedule` that will first execute the left (i.e. `self`)
|
|
1171
|
+
* schedule to completion. Once the left schedule is complete, the right (i.e.
|
|
1172
|
+
* `other`) schedule will be executed to completion.
|
|
1173
|
+
*
|
|
1174
|
+
* The output of the resulting schedule is a `Result` where outputs of the
|
|
1175
|
+
* left schedule are emitted as `Result.Err<Output>` and outputs of the right
|
|
1176
|
+
* schedule are emitted as `Result.Ok<Output>`.
|
|
1177
|
+
*
|
|
1178
|
+
* @example
|
|
1179
|
+
* ```ts
|
|
1180
|
+
* import { Console, Effect, Result, Schedule } from "effect"
|
|
1181
|
+
*
|
|
1182
|
+
* // Track which phase of the schedule we're in
|
|
1183
|
+
* const phaseTracker = Schedule.andThenResult(
|
|
1184
|
+
* Schedule.exponential("100 millis").pipe(Schedule.take(2)),
|
|
1185
|
+
* Schedule.spaced("500 millis").pipe(Schedule.take(2))
|
|
1186
|
+
* )
|
|
1187
|
+
*
|
|
1188
|
+
* const program = Effect.gen(function*() {
|
|
1189
|
+
* yield* Effect.repeat(
|
|
1190
|
+
* Effect.gen(function*() {
|
|
1191
|
+
* yield* Console.log("Task executed")
|
|
1192
|
+
* return "task-result"
|
|
1193
|
+
* }),
|
|
1194
|
+
* phaseTracker.pipe(
|
|
1195
|
+
* Schedule.tapOutput((result) =>
|
|
1196
|
+
* Result.match(result, {
|
|
1197
|
+
* onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
|
|
1198
|
+
* onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
|
|
1199
|
+
* })
|
|
1200
|
+
* )
|
|
1201
|
+
* )
|
|
1202
|
+
* )
|
|
1203
|
+
* })
|
|
1204
|
+
* ```
|
|
1205
|
+
*
|
|
1206
|
+
* @since 2.0.0
|
|
1207
|
+
* @category sequencing
|
|
1208
|
+
*/
|
|
1209
|
+
Result.Result<Output, Output2>,
|
|
1210
|
+
/**
|
|
1211
|
+
* Returns a new `Schedule` that will first execute the left (i.e. `self`)
|
|
1212
|
+
* schedule to completion. Once the left schedule is complete, the right (i.e.
|
|
1213
|
+
* `other`) schedule will be executed to completion.
|
|
1214
|
+
*
|
|
1215
|
+
* The output of the resulting schedule is a `Result` where outputs of the
|
|
1216
|
+
* left schedule are emitted as `Result.Err<Output>` and outputs of the right
|
|
1217
|
+
* schedule are emitted as `Result.Ok<Output>`.
|
|
1218
|
+
*
|
|
1219
|
+
* @example
|
|
1220
|
+
* ```ts
|
|
1221
|
+
* import { Console, Effect, Result, Schedule } from "effect"
|
|
1222
|
+
*
|
|
1223
|
+
* // Track which phase of the schedule we're in
|
|
1224
|
+
* const phaseTracker = Schedule.andThenResult(
|
|
1225
|
+
* Schedule.exponential("100 millis").pipe(Schedule.take(2)),
|
|
1226
|
+
* Schedule.spaced("500 millis").pipe(Schedule.take(2))
|
|
1227
|
+
* )
|
|
1228
|
+
*
|
|
1229
|
+
* const program = Effect.gen(function*() {
|
|
1230
|
+
* yield* Effect.repeat(
|
|
1231
|
+
* Effect.gen(function*() {
|
|
1232
|
+
* yield* Console.log("Task executed")
|
|
1233
|
+
* return "task-result"
|
|
1234
|
+
* }),
|
|
1235
|
+
* phaseTracker.pipe(
|
|
1236
|
+
* Schedule.tapOutput((result) =>
|
|
1237
|
+
* Result.match(result, {
|
|
1238
|
+
* onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
|
|
1239
|
+
* onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
|
|
1240
|
+
* })
|
|
1241
|
+
* )
|
|
1242
|
+
* )
|
|
1243
|
+
* )
|
|
1244
|
+
* })
|
|
1245
|
+
* ```
|
|
1246
|
+
*
|
|
1247
|
+
* @since 2.0.0
|
|
1248
|
+
* @category sequencing
|
|
1249
|
+
*/
|
|
1250
|
+
Input & Input2,
|
|
1251
|
+
/**
|
|
1252
|
+
* Returns a new `Schedule` that will first execute the left (i.e. `self`)
|
|
1253
|
+
* schedule to completion. Once the left schedule is complete, the right (i.e.
|
|
1254
|
+
* `other`) schedule will be executed to completion.
|
|
1255
|
+
*
|
|
1256
|
+
* The output of the resulting schedule is a `Result` where outputs of the
|
|
1257
|
+
* left schedule are emitted as `Result.Err<Output>` and outputs of the right
|
|
1258
|
+
* schedule are emitted as `Result.Ok<Output>`.
|
|
1259
|
+
*
|
|
1260
|
+
* @example
|
|
1261
|
+
* ```ts
|
|
1262
|
+
* import { Console, Effect, Result, Schedule } from "effect"
|
|
1263
|
+
*
|
|
1264
|
+
* // Track which phase of the schedule we're in
|
|
1265
|
+
* const phaseTracker = Schedule.andThenResult(
|
|
1266
|
+
* Schedule.exponential("100 millis").pipe(Schedule.take(2)),
|
|
1267
|
+
* Schedule.spaced("500 millis").pipe(Schedule.take(2))
|
|
1268
|
+
* )
|
|
1269
|
+
*
|
|
1270
|
+
* const program = Effect.gen(function*() {
|
|
1271
|
+
* yield* Effect.repeat(
|
|
1272
|
+
* Effect.gen(function*() {
|
|
1273
|
+
* yield* Console.log("Task executed")
|
|
1274
|
+
* return "task-result"
|
|
1275
|
+
* }),
|
|
1276
|
+
* phaseTracker.pipe(
|
|
1277
|
+
* Schedule.tapOutput((result) =>
|
|
1278
|
+
* Result.match(result, {
|
|
1279
|
+
* onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
|
|
1280
|
+
* onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
|
|
1281
|
+
* })
|
|
1282
|
+
* )
|
|
1283
|
+
* )
|
|
1284
|
+
* )
|
|
1285
|
+
* })
|
|
1286
|
+
* ```
|
|
1287
|
+
*
|
|
1288
|
+
* @since 2.0.0
|
|
1289
|
+
* @category sequencing
|
|
1290
|
+
*/
|
|
1291
|
+
Error | Error2,
|
|
1292
|
+
/**
|
|
1293
|
+
* Returns a new `Schedule` that will first execute the left (i.e. `self`)
|
|
1294
|
+
* schedule to completion. Once the left schedule is complete, the right (i.e.
|
|
1295
|
+
* `other`) schedule will be executed to completion.
|
|
1296
|
+
*
|
|
1297
|
+
* The output of the resulting schedule is a `Result` where outputs of the
|
|
1298
|
+
* left schedule are emitted as `Result.Err<Output>` and outputs of the right
|
|
1299
|
+
* schedule are emitted as `Result.Ok<Output>`.
|
|
1300
|
+
*
|
|
1301
|
+
* @example
|
|
1302
|
+
* ```ts
|
|
1303
|
+
* import { Console, Effect, Result, Schedule } from "effect"
|
|
1304
|
+
*
|
|
1305
|
+
* // Track which phase of the schedule we're in
|
|
1306
|
+
* const phaseTracker = Schedule.andThenResult(
|
|
1307
|
+
* Schedule.exponential("100 millis").pipe(Schedule.take(2)),
|
|
1308
|
+
* Schedule.spaced("500 millis").pipe(Schedule.take(2))
|
|
1309
|
+
* )
|
|
1310
|
+
*
|
|
1311
|
+
* const program = Effect.gen(function*() {
|
|
1312
|
+
* yield* Effect.repeat(
|
|
1313
|
+
* Effect.gen(function*() {
|
|
1314
|
+
* yield* Console.log("Task executed")
|
|
1315
|
+
* return "task-result"
|
|
1316
|
+
* }),
|
|
1317
|
+
* phaseTracker.pipe(
|
|
1318
|
+
* Schedule.tapOutput((result) =>
|
|
1319
|
+
* Result.match(result, {
|
|
1320
|
+
* onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
|
|
1321
|
+
* onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
|
|
1322
|
+
* })
|
|
1323
|
+
* )
|
|
1324
|
+
* )
|
|
1325
|
+
* )
|
|
1326
|
+
* })
|
|
1327
|
+
* ```
|
|
1328
|
+
*
|
|
1329
|
+
* @since 2.0.0
|
|
1330
|
+
* @category sequencing
|
|
1331
|
+
*/
|
|
1332
|
+
Env | Env2
|
|
1333
|
+
>(currentSide === 0 ? left : right).pipe(
|
|
1334
|
+
effect.flatMap((step) => {
|
|
1335
|
+
currentSide++
|
|
1336
|
+
if (currentSide === 1) {
|
|
1337
|
+
currentStep = (now, input) =>
|
|
1338
|
+
Pull.catchDone(step(now, input), (_) => {
|
|
1339
|
+
currentStep = undefined
|
|
1340
|
+
return recur(now, input)
|
|
1341
|
+
})
|
|
1342
|
+
return currentStep(now, input)
|
|
1343
|
+
}
|
|
1344
|
+
currentStep = step
|
|
1345
|
+
return currentStep(now, input)
|
|
1346
|
+
})
|
|
1347
|
+
);
|
|
1348
|
+
};
|
|
1349
|
+
})))
|
|
1253
1350
|
|
|
1254
1351
|
/**
|
|
1255
1352
|
* Combines two `Schedule`s by recurring if both of the two schedules want
|
|
@@ -2925,8 +3022,8 @@ export const delays = <Out, In, E, R>(self: Schedule<Out, In, E, R>): Schedule<D
|
|
|
2925
3022
|
* @since 2.0.0
|
|
2926
3023
|
* @category constructors
|
|
2927
3024
|
*/
|
|
2928
|
-
export const duration = (durationInput: Duration.
|
|
2929
|
-
const duration = Duration.
|
|
3025
|
+
export const duration = (durationInput: Duration.Input): Schedule<Duration.Duration> => {
|
|
3026
|
+
const duration = Duration.fromInputUnsafe(durationInput)
|
|
2930
3027
|
return fromStepWithMetadata(effect.succeed((meta) =>
|
|
2931
3028
|
meta.attempt === 1
|
|
2932
3029
|
? effect.succeed([duration, duration])
|
|
@@ -3019,10 +3116,10 @@ export const duration = (durationInput: Duration.DurationInput): Schedule<Durati
|
|
|
3019
3116
|
* @since 4.0.0
|
|
3020
3117
|
* @category constructors
|
|
3021
3118
|
*/
|
|
3022
|
-
export const during = (duration: Duration.
|
|
3119
|
+
export const during = (duration: Duration.Input): Schedule<Duration.Duration> =>
|
|
3023
3120
|
while_(
|
|
3024
3121
|
elapsed,
|
|
3025
|
-
({ output }) => effect.succeed(Duration.isLessThanOrEqualTo(output, Duration.
|
|
3122
|
+
({ output }) => effect.succeed(Duration.isLessThanOrEqualTo(output, Duration.fromInputUnsafe(duration)))
|
|
3026
3123
|
)
|
|
3027
3124
|
|
|
3028
3125
|
/**
|
|
@@ -3762,10 +3859,10 @@ export const elapsed: Schedule<Duration.Duration> = fromStepWithMetadata(
|
|
|
3762
3859
|
* @category constructors
|
|
3763
3860
|
*/
|
|
3764
3861
|
export const exponential = (
|
|
3765
|
-
base: Duration.
|
|
3862
|
+
base: Duration.Input,
|
|
3766
3863
|
factor: number = 2
|
|
3767
3864
|
): Schedule<Duration.Duration> => {
|
|
3768
|
-
const baseMillis = Duration.toMillis(Duration.
|
|
3865
|
+
const baseMillis = Duration.toMillis(Duration.fromInputUnsafe(base))
|
|
3769
3866
|
return fromStepWithMetadata(effect.succeed((meta) => {
|
|
3770
3867
|
const duration = Duration.millis(baseMillis * Math.pow(factor, meta.attempt - 1))
|
|
3771
3868
|
return effect.succeed([duration, duration])
|
|
@@ -3836,8 +3933,8 @@ export const exponential = (
|
|
|
3836
3933
|
* @since 2.0.0
|
|
3837
3934
|
* @category constructors
|
|
3838
3935
|
*/
|
|
3839
|
-
export const fibonacci = (one: Duration.
|
|
3840
|
-
const oneMillis = Duration.toMillis(Duration.
|
|
3936
|
+
export const fibonacci = (one: Duration.Input): Schedule<Duration.Duration> => {
|
|
3937
|
+
const oneMillis = Duration.toMillis(Duration.fromInputUnsafe(one))
|
|
3841
3938
|
return fromStep(effect.sync(() => {
|
|
3842
3939
|
let a = 0
|
|
3843
3940
|
let b = oneMillis
|
|
@@ -3913,8 +4010,8 @@ export const fibonacci = (one: Duration.DurationInput): Schedule<Duration.Durati
|
|
|
3913
4010
|
* @since 2.0.0
|
|
3914
4011
|
* @category constructors
|
|
3915
4012
|
*/
|
|
3916
|
-
export const fixed = (interval: Duration.
|
|
3917
|
-
const window = Duration.toMillis(Duration.
|
|
4013
|
+
export const fixed = (interval: Duration.Input): Schedule<number> => {
|
|
4014
|
+
const window = Duration.toMillis(Duration.fromInputUnsafe(interval))
|
|
3918
4015
|
return fromStepWithMetadata(effect.succeed((meta) =>
|
|
3919
4016
|
effect.succeed([
|
|
3920
4017
|
meta.attempt - 1,
|
|
@@ -4050,7 +4147,7 @@ export const map: {
|
|
|
4050
4147
|
* @since 2.0.0
|
|
4051
4148
|
* @category mapping
|
|
4052
4149
|
*/
|
|
4053
|
-
<Output, Output2, Error2 = never, Env2 = never>(f: (output: Output) => Effect<Output2, Error2, Env2>): <Input, Error, Env>(
|
|
4150
|
+
<Output, Output2, Error2 = never, Env2 = never>(f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>): <Input, Error, Env>(
|
|
4054
4151
|
self: Schedule<Output, Input, Error, Env>
|
|
4055
4152
|
) => Schedule<Output2, Input, Error | Error2, Env | Env2>
|
|
4056
4153
|
/**
|
|
@@ -4117,17 +4214,24 @@ export const map: {
|
|
|
4117
4214
|
*/
|
|
4118
4215
|
<Output, Input, Error, Env, Output2, Error2 = never, Env2 = never>(
|
|
4119
4216
|
self: Schedule<Output, Input, Error, Env>,
|
|
4120
|
-
f: (output: Output) => Effect<Output2, Error2, Env2>
|
|
4217
|
+
f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>
|
|
4121
4218
|
): Schedule<Output2, Input, Error | Error2, Env | Env2>
|
|
4122
4219
|
} = dual(2, <Output, Input, Error, Env, Output2, Error2 = never, Env2 = never>(
|
|
4123
4220
|
self: Schedule<Output, Input, Error, Env>,
|
|
4124
|
-
f: (output: Output) => Effect<Output2, Error2, Env2>
|
|
4221
|
+
f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>
|
|
4125
4222
|
): Schedule<Output2, Input, Error | Error2, Env | Env2> => {
|
|
4126
4223
|
const handle = Pull.matchEffect({
|
|
4127
|
-
onSuccess: ([output, duration]: [Output, Duration.Duration]) =>
|
|
4128
|
-
|
|
4224
|
+
onSuccess: ([output, duration]: [Output, Duration.Duration]) => {
|
|
4225
|
+
const result = f(output)
|
|
4226
|
+
if (!isEffect(result)) return effect.succeed([result, duration] as [Output2, Duration.Duration])
|
|
4227
|
+
return effect.map(result, (output) => [output, duration] as [Output2, Duration.Duration])
|
|
4228
|
+
},
|
|
4129
4229
|
onFailure: effect.failCause<Error>,
|
|
4130
|
-
onDone: (output: Output) =>
|
|
4230
|
+
onDone: (output: Output) => {
|
|
4231
|
+
const result = f(output)
|
|
4232
|
+
if (!isEffect(result)) return Cause.done(result as Output2)
|
|
4233
|
+
return effect.flatMap(result, Cause.done)
|
|
4234
|
+
}
|
|
4131
4235
|
})
|
|
4132
4236
|
return fromStep(effect.map(toStep(self), (step) => (now, input) => handle(step(now, input))))
|
|
4133
4237
|
})
|
|
@@ -4201,7 +4305,7 @@ export const modifyDelay: {
|
|
|
4201
4305
|
f: (
|
|
4202
4306
|
output: Output,
|
|
4203
4307
|
delay: Duration.Duration
|
|
4204
|
-
) => Effect<Duration.
|
|
4308
|
+
) => Effect<Duration.Input, Error2, Env2>
|
|
4205
4309
|
): <Input, Error, Env>(
|
|
4206
4310
|
self: Schedule<Output, Input, Error, Env>
|
|
4207
4311
|
) => Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
@@ -4241,22 +4345,39 @@ export const modifyDelay: {
|
|
|
4241
4345
|
self: Schedule<Output, Input, Error, Env>,
|
|
4242
4346
|
f: (
|
|
4243
4347
|
output: Output,
|
|
4244
|
-
delay: Duration.
|
|
4245
|
-
) => Effect<Duration.
|
|
4348
|
+
delay: Duration.Input
|
|
4349
|
+
) => Effect<Duration.Input, Error2, Env2>
|
|
4246
4350
|
): Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
4247
4351
|
} = dual(2, <Output, Input, Error, Env, Error2 = never, Env2 = never>(
|
|
4248
4352
|
self: Schedule<Output, Input, Error, Env>,
|
|
4249
4353
|
f: (
|
|
4250
4354
|
output: Output,
|
|
4251
|
-
delay: Duration.
|
|
4252
|
-
) => Effect<Duration.
|
|
4355
|
+
delay: Duration.Input
|
|
4356
|
+
) => Effect<Duration.Input, Error2, Env2>
|
|
4253
4357
|
): Schedule<Output, Input, Error | Error2, Env | Env2> =>
|
|
4254
4358
|
fromStep(effect.map(toStep(self), (step) => (now, input) =>
|
|
4255
4359
|
effect.flatMap(
|
|
4256
4360
|
step(now, input),
|
|
4257
|
-
([output, delay]) => effect.map(f(output, delay), (delay) => [output, Duration.
|
|
4361
|
+
([output, delay]) => effect.map(f(output, delay), (delay) => [output, Duration.fromInputUnsafe(delay)])
|
|
4258
4362
|
))))
|
|
4259
4363
|
|
|
4364
|
+
/**
|
|
4365
|
+
* Returns a new `Schedule` that randomly adjusts each recurrence delay.
|
|
4366
|
+
*
|
|
4367
|
+
* Delays are jittered between `80%` and `120%` of the original delay.
|
|
4368
|
+
*
|
|
4369
|
+
* @since 2.0.0
|
|
4370
|
+
* @category utilities
|
|
4371
|
+
*/
|
|
4372
|
+
export const jittered = <Output, Input, Error, Env>(
|
|
4373
|
+
self: Schedule<Output, Input, Error, Env>
|
|
4374
|
+
): Schedule<Output, Input, Error, Env> =>
|
|
4375
|
+
modifyDelay(self, (_, delay) =>
|
|
4376
|
+
effect.map(randomNext, (random) => {
|
|
4377
|
+
const millis = Duration.toMillis(Duration.fromInputUnsafe(delay))
|
|
4378
|
+
return Duration.millis(millis * 0.8 * (1 - random) + millis * 1.2 * random)
|
|
4379
|
+
}))
|
|
4380
|
+
|
|
4260
4381
|
/**
|
|
4261
4382
|
* Returns a new `Schedule` that outputs the inputs of the specified schedule.
|
|
4262
4383
|
*
|
|
@@ -4765,8 +4886,8 @@ export const reduce: {
|
|
|
4765
4886
|
* @since 2.0.0
|
|
4766
4887
|
* @category constructors
|
|
4767
4888
|
*/
|
|
4768
|
-
export const spaced = (duration: Duration.
|
|
4769
|
-
const decoded = Duration.
|
|
4889
|
+
export const spaced = (duration: Duration.Input): Schedule<number> => {
|
|
4890
|
+
const decoded = Duration.fromInputUnsafe(duration)
|
|
4770
4891
|
return fromStepWithMetadata(effect.succeed((meta) => effect.succeed([meta.attempt - 1, decoded])))
|
|
4771
4892
|
}
|
|
4772
4893
|
|
|
@@ -5856,8 +5977,8 @@ export {
|
|
|
5856
5977
|
* @since 2.0.0
|
|
5857
5978
|
* @category constructors
|
|
5858
5979
|
*/
|
|
5859
|
-
export const windowed = (interval: Duration.
|
|
5860
|
-
const window = Duration.toMillis(Duration.
|
|
5980
|
+
export const windowed = (interval: Duration.Input): Schedule<number> => {
|
|
5981
|
+
const window = Duration.toMillis(Duration.fromInputUnsafe(interval))
|
|
5861
5982
|
return fromStepWithMetadata(effect.succeed((meta) =>
|
|
5862
5983
|
effect.sync(() => [
|
|
5863
5984
|
meta.attempt - 1,
|