effect 4.0.0-beta.0 → 4.0.0-beta.10
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/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +3 -3
- package/dist/Config.js +3 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/Cron.d.ts +1 -1
- package/dist/Data.d.ts +534 -365
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +132 -79
- 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 +175 -240
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +73 -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.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +124 -48
- package/dist/Equal.js.map +1 -1
- package/dist/FileSystem.d.ts +1 -1
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +5 -5
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +30 -1
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -0
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts +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/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/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/PlatformError.d.ts +10 -9
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +2 -2
- package/dist/PlatformError.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 +18 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +29 -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/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/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/Result.d.ts +12 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +12 -0
- package/dist/Result.js.map +1 -1
- package/dist/Schedule.d.ts +33 -14
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +65 -24
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +199 -49
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +386 -72
- 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 +43 -24
- 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 +14 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +499 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +499 -19
- 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 +37 -22
- 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/cli/Prompt.js +2 -2
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/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 +10 -10
- 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 +6 -6
- 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/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +1 -1
- package/dist/unstable/encoding/Sse.d.ts +4 -4
- 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 +2 -2
- 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 +6 -6
- package/dist/unstable/http/Cookies.d.ts +3 -3
- 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/HttpBody.d.ts +17 -2
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +28 -1
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +11 -11
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +4 -4
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +7 -7
- package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +15 -3
- 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/HttpMiddleware.d.ts +1 -6
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +4 -9
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +6 -6
- package/dist/unstable/http/HttpServerResponse.js +1 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +3 -3
- package/dist/unstable/http/UrlParams.d.ts +14 -6
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +1 -1
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +5 -5
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +3 -3
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
- package/dist/unstable/httpapi/HttpApiEndpoint.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/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +18 -16
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +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.d.ts +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +6 -6
- 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 +2 -2
- 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 +15 -12
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
- 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/Hydration.d.ts +39 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
- package/dist/unstable/reactivity/Hydration.js +76 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -0
- package/dist/unstable/reactivity/index.d.ts +4 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +4 -0
- 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/schema/Model.d.ts +4 -4
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +2 -2
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +13 -2
- package/dist/unstable/schema/VariantSchema.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/socket/SocketServer.d.ts +3 -3
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +24 -1
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +24 -3
- 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 +2 -2
- 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 +2 -2
- package/src/Cache.ts +3 -3
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +6 -4
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +3 -3
- package/src/Data.ts +538 -374
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +202 -261
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -1
- 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/Optic.ts +948 -19
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Random.ts +33 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Reducer.ts +166 -7
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Result.ts +13 -0
- package/src/Schedule.ts +279 -140
- package/src/Schema.ts +575 -113
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaRepresentation.ts +43 -24
- 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 +12 -2
- package/src/index.ts +502 -20
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +70 -37
- 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/cli/Prompt.ts +2 -2
- 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/HttpBody.ts +42 -1
- package/src/unstable/http/HttpClient.ts +19 -19
- package/src/unstable/http/HttpClientRequest.ts +38 -13
- package/src/unstable/http/HttpEffect.ts +17 -25
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +5 -10
- package/src/unstable/http/HttpServerResponse.ts +1 -1
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +20 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +5 -5
- package/src/unstable/httpapi/HttpApiClient.ts +3 -3
- package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/OpenApi.ts +18 -16
- 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 +6 -6
- 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 +2 -2
- package/src/unstable/process/ChildProcessSpawner.ts +6 -0
- package/src/unstable/reactivity/Atom.ts +20 -18
- package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- 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/schema/VariantSchema.ts +36 -7
- package/src/unstable/socket/Socket.ts +7 -6
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlSchema.ts +62 -13
- 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
|
*
|
|
@@ -346,7 +349,7 @@ export const fromStep = <Input, Output, EnvX, Error, ErrorX, Env>(
|
|
|
346
349
|
Error,
|
|
347
350
|
Env
|
|
348
351
|
>
|
|
349
|
-
): Schedule<Output, Input, Error | ErrorX
|
|
352
|
+
): Schedule<Output, Input, Error | Pull.ExcludeDone<ErrorX>, Env | EnvX> => {
|
|
350
353
|
const self = Object.create(ScheduleProto)
|
|
351
354
|
self.step = step
|
|
352
355
|
return self
|
|
@@ -395,7 +398,7 @@ export const fromStepWithMetadata = <Input, Output, EnvX, ErrorX, Error, Env>(
|
|
|
395
398
|
Error,
|
|
396
399
|
Env
|
|
397
400
|
>
|
|
398
|
-
): Schedule<Output, Input, Error | ErrorX
|
|
401
|
+
): Schedule<Output, Input, Error | Pull.ExcludeDone<ErrorX>, Env | EnvX> =>
|
|
399
402
|
fromStep(effect.map(step, (f) => {
|
|
400
403
|
const meta = metadataFn()
|
|
401
404
|
return (now, input) => f(meta(now, input))
|
|
@@ -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
|
|
@@ -2916,6 +3013,24 @@ export const delays = <Out, In, E, R>(self: Schedule<Out, In, E, R>): Schedule<D
|
|
|
2916
3013
|
)
|
|
2917
3014
|
)
|
|
2918
3015
|
|
|
3016
|
+
/**
|
|
3017
|
+
* Returns a schedule that recurs once after the specified duration.
|
|
3018
|
+
*
|
|
3019
|
+
* The schedule outputs the configured duration for its first recurrence and
|
|
3020
|
+
* then completes.
|
|
3021
|
+
*
|
|
3022
|
+
* @since 2.0.0
|
|
3023
|
+
* @category constructors
|
|
3024
|
+
*/
|
|
3025
|
+
export const duration = (durationInput: Duration.Input): Schedule<Duration.Duration> => {
|
|
3026
|
+
const duration = Duration.fromInputUnsafe(durationInput)
|
|
3027
|
+
return fromStepWithMetadata(effect.succeed((meta) =>
|
|
3028
|
+
meta.attempt === 1
|
|
3029
|
+
? effect.succeed([duration, duration])
|
|
3030
|
+
: Cause.done(Duration.zero)
|
|
3031
|
+
))
|
|
3032
|
+
}
|
|
3033
|
+
|
|
2919
3034
|
/**
|
|
2920
3035
|
* Returns a new `Schedule` that will always recur, but only during the
|
|
2921
3036
|
* specified `duration` of time.
|
|
@@ -3001,10 +3116,10 @@ export const delays = <Out, In, E, R>(self: Schedule<Out, In, E, R>): Schedule<D
|
|
|
3001
3116
|
* @since 4.0.0
|
|
3002
3117
|
* @category constructors
|
|
3003
3118
|
*/
|
|
3004
|
-
export const during = (duration: Duration.
|
|
3119
|
+
export const during = (duration: Duration.Input): Schedule<Duration.Duration> =>
|
|
3005
3120
|
while_(
|
|
3006
3121
|
elapsed,
|
|
3007
|
-
({ output }) => effect.succeed(Duration.isLessThanOrEqualTo(output, Duration.
|
|
3122
|
+
({ output }) => effect.succeed(Duration.isLessThanOrEqualTo(output, Duration.fromInputUnsafe(duration)))
|
|
3008
3123
|
)
|
|
3009
3124
|
|
|
3010
3125
|
/**
|
|
@@ -3744,10 +3859,10 @@ export const elapsed: Schedule<Duration.Duration> = fromStepWithMetadata(
|
|
|
3744
3859
|
* @category constructors
|
|
3745
3860
|
*/
|
|
3746
3861
|
export const exponential = (
|
|
3747
|
-
base: Duration.
|
|
3862
|
+
base: Duration.Input,
|
|
3748
3863
|
factor: number = 2
|
|
3749
3864
|
): Schedule<Duration.Duration> => {
|
|
3750
|
-
const baseMillis = Duration.toMillis(Duration.
|
|
3865
|
+
const baseMillis = Duration.toMillis(Duration.fromInputUnsafe(base))
|
|
3751
3866
|
return fromStepWithMetadata(effect.succeed((meta) => {
|
|
3752
3867
|
const duration = Duration.millis(baseMillis * Math.pow(factor, meta.attempt - 1))
|
|
3753
3868
|
return effect.succeed([duration, duration])
|
|
@@ -3818,8 +3933,8 @@ export const exponential = (
|
|
|
3818
3933
|
* @since 2.0.0
|
|
3819
3934
|
* @category constructors
|
|
3820
3935
|
*/
|
|
3821
|
-
export const fibonacci = (one: Duration.
|
|
3822
|
-
const oneMillis = Duration.toMillis(Duration.
|
|
3936
|
+
export const fibonacci = (one: Duration.Input): Schedule<Duration.Duration> => {
|
|
3937
|
+
const oneMillis = Duration.toMillis(Duration.fromInputUnsafe(one))
|
|
3823
3938
|
return fromStep(effect.sync(() => {
|
|
3824
3939
|
let a = 0
|
|
3825
3940
|
let b = oneMillis
|
|
@@ -3895,8 +4010,8 @@ export const fibonacci = (one: Duration.DurationInput): Schedule<Duration.Durati
|
|
|
3895
4010
|
* @since 2.0.0
|
|
3896
4011
|
* @category constructors
|
|
3897
4012
|
*/
|
|
3898
|
-
export const fixed = (interval: Duration.
|
|
3899
|
-
const window = Duration.toMillis(Duration.
|
|
4013
|
+
export const fixed = (interval: Duration.Input): Schedule<number> => {
|
|
4014
|
+
const window = Duration.toMillis(Duration.fromInputUnsafe(interval))
|
|
3900
4015
|
return fromStepWithMetadata(effect.succeed((meta) =>
|
|
3901
4016
|
effect.succeed([
|
|
3902
4017
|
meta.attempt - 1,
|
|
@@ -4032,7 +4147,7 @@ export const map: {
|
|
|
4032
4147
|
* @since 2.0.0
|
|
4033
4148
|
* @category mapping
|
|
4034
4149
|
*/
|
|
4035
|
-
<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>(
|
|
4036
4151
|
self: Schedule<Output, Input, Error, Env>
|
|
4037
4152
|
) => Schedule<Output2, Input, Error | Error2, Env | Env2>
|
|
4038
4153
|
/**
|
|
@@ -4099,17 +4214,24 @@ export const map: {
|
|
|
4099
4214
|
*/
|
|
4100
4215
|
<Output, Input, Error, Env, Output2, Error2 = never, Env2 = never>(
|
|
4101
4216
|
self: Schedule<Output, Input, Error, Env>,
|
|
4102
|
-
f: (output: Output) => Effect<Output2, Error2, Env2>
|
|
4217
|
+
f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>
|
|
4103
4218
|
): Schedule<Output2, Input, Error | Error2, Env | Env2>
|
|
4104
4219
|
} = dual(2, <Output, Input, Error, Env, Output2, Error2 = never, Env2 = never>(
|
|
4105
4220
|
self: Schedule<Output, Input, Error, Env>,
|
|
4106
|
-
f: (output: Output) => Effect<Output2, Error2, Env2>
|
|
4221
|
+
f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>
|
|
4107
4222
|
): Schedule<Output2, Input, Error | Error2, Env | Env2> => {
|
|
4108
4223
|
const handle = Pull.matchEffect({
|
|
4109
|
-
onSuccess: ([output, duration]: [Output, Duration.Duration]) =>
|
|
4110
|
-
|
|
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
|
+
},
|
|
4111
4229
|
onFailure: effect.failCause<Error>,
|
|
4112
|
-
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
|
+
}
|
|
4113
4235
|
})
|
|
4114
4236
|
return fromStep(effect.map(toStep(self), (step) => (now, input) => handle(step(now, input))))
|
|
4115
4237
|
})
|
|
@@ -4183,7 +4305,7 @@ export const modifyDelay: {
|
|
|
4183
4305
|
f: (
|
|
4184
4306
|
output: Output,
|
|
4185
4307
|
delay: Duration.Duration
|
|
4186
|
-
) => Effect<Duration.
|
|
4308
|
+
) => Effect<Duration.Input, Error2, Env2>
|
|
4187
4309
|
): <Input, Error, Env>(
|
|
4188
4310
|
self: Schedule<Output, Input, Error, Env>
|
|
4189
4311
|
) => Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
@@ -4223,22 +4345,39 @@ export const modifyDelay: {
|
|
|
4223
4345
|
self: Schedule<Output, Input, Error, Env>,
|
|
4224
4346
|
f: (
|
|
4225
4347
|
output: Output,
|
|
4226
|
-
delay: Duration.
|
|
4227
|
-
) => Effect<Duration.
|
|
4348
|
+
delay: Duration.Input
|
|
4349
|
+
) => Effect<Duration.Input, Error2, Env2>
|
|
4228
4350
|
): Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
4229
4351
|
} = dual(2, <Output, Input, Error, Env, Error2 = never, Env2 = never>(
|
|
4230
4352
|
self: Schedule<Output, Input, Error, Env>,
|
|
4231
4353
|
f: (
|
|
4232
4354
|
output: Output,
|
|
4233
|
-
delay: Duration.
|
|
4234
|
-
) => Effect<Duration.
|
|
4355
|
+
delay: Duration.Input
|
|
4356
|
+
) => Effect<Duration.Input, Error2, Env2>
|
|
4235
4357
|
): Schedule<Output, Input, Error | Error2, Env | Env2> =>
|
|
4236
4358
|
fromStep(effect.map(toStep(self), (step) => (now, input) =>
|
|
4237
4359
|
effect.flatMap(
|
|
4238
4360
|
step(now, input),
|
|
4239
|
-
([output, delay]) => effect.map(f(output, delay), (delay) => [output, Duration.
|
|
4361
|
+
([output, delay]) => effect.map(f(output, delay), (delay) => [output, Duration.fromInputUnsafe(delay)])
|
|
4240
4362
|
))))
|
|
4241
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
|
+
|
|
4242
4381
|
/**
|
|
4243
4382
|
* Returns a new `Schedule` that outputs the inputs of the specified schedule.
|
|
4244
4383
|
*
|
|
@@ -4747,8 +4886,8 @@ export const reduce: {
|
|
|
4747
4886
|
* @since 2.0.0
|
|
4748
4887
|
* @category constructors
|
|
4749
4888
|
*/
|
|
4750
|
-
export const spaced = (duration: Duration.
|
|
4751
|
-
const decoded = Duration.
|
|
4889
|
+
export const spaced = (duration: Duration.Input): Schedule<number> => {
|
|
4890
|
+
const decoded = Duration.fromInputUnsafe(duration)
|
|
4752
4891
|
return fromStepWithMetadata(effect.succeed((meta) => effect.succeed([meta.attempt - 1, decoded])))
|
|
4753
4892
|
}
|
|
4754
4893
|
|
|
@@ -5838,8 +5977,8 @@ export {
|
|
|
5838
5977
|
* @since 2.0.0
|
|
5839
5978
|
* @category constructors
|
|
5840
5979
|
*/
|
|
5841
|
-
export const windowed = (interval: Duration.
|
|
5842
|
-
const window = Duration.toMillis(Duration.
|
|
5980
|
+
export const windowed = (interval: Duration.Input): Schedule<number> => {
|
|
5981
|
+
const window = Duration.toMillis(Duration.fromInputUnsafe(interval))
|
|
5843
5982
|
return fromStepWithMetadata(effect.succeed((meta) =>
|
|
5844
5983
|
effect.sync(() => [
|
|
5845
5984
|
meta.attempt - 1,
|