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/Effect.ts
CHANGED
|
@@ -119,6 +119,7 @@ import type {
|
|
|
119
119
|
NoInfer,
|
|
120
120
|
ReasonOf,
|
|
121
121
|
ReasonTags,
|
|
122
|
+
Simplify,
|
|
122
123
|
Tags,
|
|
123
124
|
unassigned
|
|
124
125
|
} from "./Types.ts"
|
|
@@ -1511,6 +1512,103 @@ export const callback: <A, E = never, R = never>(
|
|
|
1511
1512
|
*/
|
|
1512
1513
|
export const never: Effect<never> = internal.never
|
|
1513
1514
|
|
|
1515
|
+
/**
|
|
1516
|
+
* An `Effect` containing an empty record `{}`, used as the starting point for
|
|
1517
|
+
* do notation chains.
|
|
1518
|
+
*
|
|
1519
|
+
* @example
|
|
1520
|
+
* ```ts
|
|
1521
|
+
* import { Effect } from "effect"
|
|
1522
|
+
* import { pipe } from "effect/Function"
|
|
1523
|
+
*
|
|
1524
|
+
* const program = pipe(
|
|
1525
|
+
* Effect.Do,
|
|
1526
|
+
* Effect.bind("x", () => Effect.succeed(2)),
|
|
1527
|
+
* Effect.bind("y", ({ x }) => Effect.succeed(x + 1)),
|
|
1528
|
+
* Effect.let("sum", ({ x, y }) => x + y)
|
|
1529
|
+
* )
|
|
1530
|
+
* ```
|
|
1531
|
+
*
|
|
1532
|
+
* @since 4.0.0
|
|
1533
|
+
* @category Do notation
|
|
1534
|
+
*/
|
|
1535
|
+
export const Do: Effect<{}> = internal.Do
|
|
1536
|
+
|
|
1537
|
+
/**
|
|
1538
|
+
* Gives a name to the success value of an `Effect`, creating a single-key
|
|
1539
|
+
* record used in do notation pipelines.
|
|
1540
|
+
*
|
|
1541
|
+
* @since 4.0.0
|
|
1542
|
+
* @category Do notation
|
|
1543
|
+
*/
|
|
1544
|
+
export const bindTo: {
|
|
1545
|
+
/**
|
|
1546
|
+
* Gives a name to the success value of an `Effect`, creating a single-key
|
|
1547
|
+
* record used in do notation pipelines.
|
|
1548
|
+
*
|
|
1549
|
+
* @since 4.0.0
|
|
1550
|
+
* @category Do notation
|
|
1551
|
+
*/
|
|
1552
|
+
<N extends string>(name: N): <A, E, R>(self: Effect<A, E, R>) => Effect<{ [K in N]: A }, E, R>
|
|
1553
|
+
/**
|
|
1554
|
+
* Gives a name to the success value of an `Effect`, creating a single-key
|
|
1555
|
+
* record used in do notation pipelines.
|
|
1556
|
+
*
|
|
1557
|
+
* @since 4.0.0
|
|
1558
|
+
* @category Do notation
|
|
1559
|
+
*/
|
|
1560
|
+
<A, E, R, N extends string>(self: Effect<A, E, R>, name: N): Effect<{ [K in N]: A }, E, R>
|
|
1561
|
+
} = internal.bindTo
|
|
1562
|
+
|
|
1563
|
+
const let_: {
|
|
1564
|
+
<N extends string, A extends Record<string, any>, B>(
|
|
1565
|
+
name: N,
|
|
1566
|
+
f: (a: NoInfer<A>) => B
|
|
1567
|
+
): <E, R>(
|
|
1568
|
+
self: Effect<A, E, R>
|
|
1569
|
+
) => Effect<Simplify<Omit<A, N> & Record<N, B>>, E, R>
|
|
1570
|
+
<A extends Record<string, any>, E, R, B, N extends string>(
|
|
1571
|
+
self: Effect<A, E, R>,
|
|
1572
|
+
name: N,
|
|
1573
|
+
f: (a: NoInfer<A>) => B
|
|
1574
|
+
): Effect<Simplify<Omit<A, N> & Record<N, B>>, E, R>
|
|
1575
|
+
} = internal.let
|
|
1576
|
+
|
|
1577
|
+
export {
|
|
1578
|
+
/**
|
|
1579
|
+
* Adds a computed plain value to the do notation record.
|
|
1580
|
+
*
|
|
1581
|
+
* @since 4.0.0
|
|
1582
|
+
* @category Do notation
|
|
1583
|
+
*/
|
|
1584
|
+
let_ as let
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
/**
|
|
1588
|
+
* Adds an `Effect` value to the do notation record under a given name.
|
|
1589
|
+
*
|
|
1590
|
+
* @since 4.0.0
|
|
1591
|
+
* @category Do notation
|
|
1592
|
+
*/
|
|
1593
|
+
export const bind: {
|
|
1594
|
+
/**
|
|
1595
|
+
* Adds an `Effect` value to the do notation record under a given name.
|
|
1596
|
+
*
|
|
1597
|
+
* @since 4.0.0
|
|
1598
|
+
* @category Do notation
|
|
1599
|
+
*/
|
|
1600
|
+
<N extends string, A extends Record<string, any>, B, E2, R2>(name: N, f: (a: NoInfer<A>) => Effect<B, E2, R2>): <E, R>(
|
|
1601
|
+
self: Effect<A, E, R>
|
|
1602
|
+
) => Effect<Simplify<Omit<A, N> & Record<N, B>>, E | E2, R | R2>
|
|
1603
|
+
/**
|
|
1604
|
+
* Adds an `Effect` value to the do notation record under a given name.
|
|
1605
|
+
*
|
|
1606
|
+
* @since 4.0.0
|
|
1607
|
+
* @category Do notation
|
|
1608
|
+
*/
|
|
1609
|
+
<A extends Record<string, any>, E, R, B, E2, R2, N extends string>(self: Effect<A, E, R>, name: N, f: (a: NoInfer<A>) => Effect<B, E2, R2>): Effect<Simplify<Omit<A, N> & Record<N, B>>, E | E2, R | R2>
|
|
1610
|
+
} = internal.bind
|
|
1611
|
+
|
|
1514
1612
|
/**
|
|
1515
1613
|
* Provides a way to write effectful code using generator functions, simplifying
|
|
1516
1614
|
* control flow and error handling.
|
|
@@ -5124,6 +5222,36 @@ export const catchIf: {
|
|
|
5124
5222
|
): Effect<A | A2 | A3, E2 | E3, R | R2 | R3>
|
|
5125
5223
|
} = internal.catchIf
|
|
5126
5224
|
|
|
5225
|
+
/**
|
|
5226
|
+
* Catches `NoSuchElementError` failures and converts them to `Option.none`.
|
|
5227
|
+
*
|
|
5228
|
+
* Success values become `Option.some`, `NoSuchElementError` becomes
|
|
5229
|
+
* `Option.none`, and all other errors are preserved.
|
|
5230
|
+
*
|
|
5231
|
+
* @example
|
|
5232
|
+
* ```ts
|
|
5233
|
+
* import { Effect, Option } from "effect"
|
|
5234
|
+
*
|
|
5235
|
+
* const some = Effect.fromNullishOr(1).pipe(Effect.catchNoSuchElement)
|
|
5236
|
+
* const none = Effect.fromNullishOr(null).pipe(Effect.catchNoSuchElement)
|
|
5237
|
+
*
|
|
5238
|
+
* Effect.runPromise(some).then(console.log) // { _id: 'Option', _tag: 'Some', value: 1 }
|
|
5239
|
+
* Effect.runPromise(none).then(console.log) // { _id: 'Option', _tag: 'None' }
|
|
5240
|
+
* ```
|
|
5241
|
+
*
|
|
5242
|
+
* **Previously Known As**
|
|
5243
|
+
*
|
|
5244
|
+
* This API replaces the following from Effect 3.x:
|
|
5245
|
+
*
|
|
5246
|
+
* - `Effect.optionFromOptional`
|
|
5247
|
+
*
|
|
5248
|
+
* @since 2.0.0
|
|
5249
|
+
* @category Error Handling
|
|
5250
|
+
*/
|
|
5251
|
+
export const catchNoSuchElement: <A, E, R>(
|
|
5252
|
+
self: Effect<A, E, R>
|
|
5253
|
+
) => Effect<Option<A>, Exclude<E, Cause.NoSuchElementError>, R> = internal.catchNoSuchElement
|
|
5254
|
+
|
|
5127
5255
|
/**
|
|
5128
5256
|
* Recovers from specific failures based on a predicate.
|
|
5129
5257
|
*
|
|
@@ -7194,7 +7322,7 @@ export const timeout: {
|
|
|
7194
7322
|
* @since 2.0.0
|
|
7195
7323
|
* @category Delays & Timeouts
|
|
7196
7324
|
*/
|
|
7197
|
-
(duration: Duration.
|
|
7325
|
+
(duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E | Cause.TimeoutError, R>
|
|
7198
7326
|
// -----------------------------------------------------------------------------
|
|
7199
7327
|
// Delays & timeouts
|
|
7200
7328
|
// -----------------------------------------------------------------------------
|
|
@@ -7245,7 +7373,7 @@ export const timeout: {
|
|
|
7245
7373
|
* @since 2.0.0
|
|
7246
7374
|
* @category Delays & Timeouts
|
|
7247
7375
|
*/
|
|
7248
|
-
<A, E, R>(self: Effect<A, E, R>, duration: Duration.
|
|
7376
|
+
<A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E | Cause.TimeoutError, R>
|
|
7249
7377
|
} = internal.timeout
|
|
7250
7378
|
|
|
7251
7379
|
/**
|
|
@@ -7347,7 +7475,7 @@ export const timeoutOption: {
|
|
|
7347
7475
|
* @since 3.1.0
|
|
7348
7476
|
* @category Delays & Timeouts
|
|
7349
7477
|
*/
|
|
7350
|
-
(duration: Duration.
|
|
7478
|
+
(duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>
|
|
7351
7479
|
/**
|
|
7352
7480
|
* Handles timeouts by returning an `Option` that represents either the result
|
|
7353
7481
|
* or a timeout.
|
|
@@ -7397,7 +7525,7 @@ export const timeoutOption: {
|
|
|
7397
7525
|
* @since 3.1.0
|
|
7398
7526
|
* @category Delays & Timeouts
|
|
7399
7527
|
*/
|
|
7400
|
-
<A, E, R>(self: Effect<A, E, R>, duration: Duration.
|
|
7528
|
+
<A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<Option<A>, E, R>
|
|
7401
7529
|
} = internal.timeoutOption
|
|
7402
7530
|
|
|
7403
7531
|
/**
|
|
@@ -7475,7 +7603,7 @@ export const timeoutOrElse: {
|
|
|
7475
7603
|
*/
|
|
7476
7604
|
<A2, E2, R2>(
|
|
7477
7605
|
options: {
|
|
7478
|
-
readonly duration: Duration.
|
|
7606
|
+
readonly duration: Duration.Input
|
|
7479
7607
|
readonly onTimeout: LazyArg<Effect<A2, E2, R2>>
|
|
7480
7608
|
}
|
|
7481
7609
|
): <A, E, R>(self: Effect<A, E, R>) => Effect<A | A2, E | E2, R | R2>
|
|
@@ -7518,7 +7646,7 @@ export const timeoutOrElse: {
|
|
|
7518
7646
|
<A, E, R, A2, E2, R2>(
|
|
7519
7647
|
self: Effect<A, E, R>,
|
|
7520
7648
|
options: {
|
|
7521
|
-
readonly duration: Duration.
|
|
7649
|
+
readonly duration: Duration.Input
|
|
7522
7650
|
readonly onTimeout: LazyArg<Effect<A2, E2, R2>>
|
|
7523
7651
|
}
|
|
7524
7652
|
): Effect<A | A2, E | E2, R | R2>
|
|
@@ -7565,7 +7693,7 @@ export const delay: {
|
|
|
7565
7693
|
* @since 2.0.0
|
|
7566
7694
|
* @category Delays & Timeouts
|
|
7567
7695
|
*/
|
|
7568
|
-
(duration: Duration.
|
|
7696
|
+
(duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
|
|
7569
7697
|
/**
|
|
7570
7698
|
* Returns an effect that is delayed from this effect by the specified
|
|
7571
7699
|
* `Duration`.
|
|
@@ -7586,7 +7714,7 @@ export const delay: {
|
|
|
7586
7714
|
* @since 2.0.0
|
|
7587
7715
|
* @category Delays & Timeouts
|
|
7588
7716
|
*/
|
|
7589
|
-
<A, E, R>(self: Effect<A, E, R>, duration: Duration.
|
|
7717
|
+
<A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E, R>
|
|
7590
7718
|
} = internal.delay
|
|
7591
7719
|
|
|
7592
7720
|
/**
|
|
@@ -7611,7 +7739,7 @@ export const delay: {
|
|
|
7611
7739
|
* @since 2.0.0
|
|
7612
7740
|
* @category Delays & Timeouts
|
|
7613
7741
|
*/
|
|
7614
|
-
export const sleep: (duration: Duration.
|
|
7742
|
+
export const sleep: (duration: Duration.Input) => Effect<void> = internal.sleep
|
|
7615
7743
|
|
|
7616
7744
|
/**
|
|
7617
7745
|
* Measures the runtime of an effect and returns the duration with its result.
|
|
@@ -8014,6 +8142,37 @@ export const filter: {
|
|
|
8014
8142
|
// Filtering
|
|
8015
8143
|
// -----------------------------------------------------------------------------
|
|
8016
8144
|
|
|
8145
|
+
/**
|
|
8146
|
+
* Filters elements of an iterable using a predicate, refinement, effectful
|
|
8147
|
+
* predicate, or `Filter.FilterEffect`.
|
|
8148
|
+
*
|
|
8149
|
+
* @example
|
|
8150
|
+
* ```ts
|
|
8151
|
+
* import { Effect, Filter, Result } from "effect"
|
|
8152
|
+
*
|
|
8153
|
+
* // Sync predicate
|
|
8154
|
+
* const evens = Effect.filter([1, 2, 3, 4], (n) => n % 2 === 0)
|
|
8155
|
+
*
|
|
8156
|
+
* // Effectful predicate
|
|
8157
|
+
* const checked = Effect.filter([1, 2, 3], (n) => Effect.succeed(n > 1))
|
|
8158
|
+
*
|
|
8159
|
+
* // FilterEffect
|
|
8160
|
+
* const mapped = Effect.filter([1, 2, 3, 4], (n) =>
|
|
8161
|
+
* Effect.succeed(n % 2 === 0 ? Result.succeed(n * 2) : Result.fail(n))
|
|
8162
|
+
* )
|
|
8163
|
+
* ```
|
|
8164
|
+
*
|
|
8165
|
+
* @since 2.0.0
|
|
8166
|
+
* @category Filtering
|
|
8167
|
+
*/
|
|
8168
|
+
<A, B, X>(
|
|
8169
|
+
filter: Filter.Filter<NoInfer<A>, B, X>,
|
|
8170
|
+
options?: { readonly concurrency?: Concurrency | undefined }
|
|
8171
|
+
): (elements: Iterable<A>) => Effect<Array<B>>
|
|
8172
|
+
// -----------------------------------------------------------------------------
|
|
8173
|
+
// Filtering
|
|
8174
|
+
// -----------------------------------------------------------------------------
|
|
8175
|
+
|
|
8017
8176
|
/**
|
|
8018
8177
|
* Filters elements of an iterable using a predicate, refinement, effectful
|
|
8019
8178
|
* predicate, or `Filter.FilterEffect`.
|
|
@@ -8132,6 +8291,34 @@ export const filter: {
|
|
|
8132
8291
|
// Filtering
|
|
8133
8292
|
// -----------------------------------------------------------------------------
|
|
8134
8293
|
|
|
8294
|
+
/**
|
|
8295
|
+
* Filters elements of an iterable using a predicate, refinement, effectful
|
|
8296
|
+
* predicate, or `Filter.FilterEffect`.
|
|
8297
|
+
*
|
|
8298
|
+
* @example
|
|
8299
|
+
* ```ts
|
|
8300
|
+
* import { Effect, Filter, Result } from "effect"
|
|
8301
|
+
*
|
|
8302
|
+
* // Sync predicate
|
|
8303
|
+
* const evens = Effect.filter([1, 2, 3, 4], (n) => n % 2 === 0)
|
|
8304
|
+
*
|
|
8305
|
+
* // Effectful predicate
|
|
8306
|
+
* const checked = Effect.filter([1, 2, 3], (n) => Effect.succeed(n > 1))
|
|
8307
|
+
*
|
|
8308
|
+
* // FilterEffect
|
|
8309
|
+
* const mapped = Effect.filter([1, 2, 3, 4], (n) =>
|
|
8310
|
+
* Effect.succeed(n % 2 === 0 ? Result.succeed(n * 2) : Result.fail(n))
|
|
8311
|
+
* )
|
|
8312
|
+
* ```
|
|
8313
|
+
*
|
|
8314
|
+
* @since 2.0.0
|
|
8315
|
+
* @category Filtering
|
|
8316
|
+
*/
|
|
8317
|
+
<A, B, X>(elements: Iterable<A>, filter: Filter.Filter<NoInfer<A>, B, X>): Effect<Array<B>>
|
|
8318
|
+
// -----------------------------------------------------------------------------
|
|
8319
|
+
// Filtering
|
|
8320
|
+
// -----------------------------------------------------------------------------
|
|
8321
|
+
|
|
8135
8322
|
/**
|
|
8136
8323
|
* Filters elements of an iterable using a predicate, refinement, effectful
|
|
8137
8324
|
* predicate, or `Filter.FilterEffect`.
|
|
@@ -12183,7 +12370,7 @@ export const cachedWithTTL: {
|
|
|
12183
12370
|
* @since 2.0.0
|
|
12184
12371
|
* @category Caching
|
|
12185
12372
|
*/
|
|
12186
|
-
(timeToLive: Duration.
|
|
12373
|
+
(timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Effect<A, E, R>>
|
|
12187
12374
|
/**
|
|
12188
12375
|
* Returns an effect that caches its result for a specified `Duration`,
|
|
12189
12376
|
* known as "timeToLive" (TTL).
|
|
@@ -12250,7 +12437,7 @@ export const cachedWithTTL: {
|
|
|
12250
12437
|
* @since 2.0.0
|
|
12251
12438
|
* @category Caching
|
|
12252
12439
|
*/
|
|
12253
|
-
<A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.
|
|
12440
|
+
<A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<Effect<A, E, R>>
|
|
12254
12441
|
} = internal.cachedWithTTL
|
|
12255
12442
|
|
|
12256
12443
|
/**
|
|
@@ -12392,7 +12579,7 @@ export const cachedInvalidateWithTTL: {
|
|
|
12392
12579
|
* @since 2.0.0
|
|
12393
12580
|
* @category Caching
|
|
12394
12581
|
*/
|
|
12395
|
-
(timeToLive: Duration.
|
|
12582
|
+
(timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<[Effect<A, E, R>, Effect<void>]>
|
|
12396
12583
|
/**
|
|
12397
12584
|
* Caches an effect's result for a specified duration and allows manual
|
|
12398
12585
|
* invalidation before expiration.
|
|
@@ -12462,7 +12649,7 @@ export const cachedInvalidateWithTTL: {
|
|
|
12462
12649
|
* @since 2.0.0
|
|
12463
12650
|
* @category Caching
|
|
12464
12651
|
*/
|
|
12465
|
-
<A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.
|
|
12652
|
+
<A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<[Effect<A, E, R>, Effect<void>]>
|
|
12466
12653
|
} = internal.cachedInvalidateWithTTL
|
|
12467
12654
|
|
|
12468
12655
|
// -----------------------------------------------------------------------------
|
|
@@ -12688,252 +12875,6 @@ export const interruptibleMask: <A, E, R>(
|
|
|
12688
12875
|
) => Effect<A, E, R>
|
|
12689
12876
|
) => Effect<A, E, R> = internal.interruptibleMask
|
|
12690
12877
|
|
|
12691
|
-
// -----------------------------------------------------------------------------
|
|
12692
|
-
// Semaphore
|
|
12693
|
-
// -----------------------------------------------------------------------------
|
|
12694
|
-
|
|
12695
|
-
/**
|
|
12696
|
-
* @category Semaphore
|
|
12697
|
-
* @since 2.0.0
|
|
12698
|
-
* @example
|
|
12699
|
-
* ```ts
|
|
12700
|
-
* import { Effect } from "effect"
|
|
12701
|
-
*
|
|
12702
|
-
* // Create and use a semaphore for controlling concurrent access
|
|
12703
|
-
* const program = Effect.gen(function*() {
|
|
12704
|
-
* const semaphore = yield* Effect.makeSemaphore(2)
|
|
12705
|
-
*
|
|
12706
|
-
* return yield* semaphore.withPermits(1)(
|
|
12707
|
-
* Effect.succeed("Resource accessed")
|
|
12708
|
-
* )
|
|
12709
|
-
* })
|
|
12710
|
-
* ```
|
|
12711
|
-
*/
|
|
12712
|
-
export interface Semaphore {
|
|
12713
|
-
/**
|
|
12714
|
-
* Adjusts the number of permits available in the semaphore.
|
|
12715
|
-
*/
|
|
12716
|
-
resize(permits: number): Effect<void>
|
|
12717
|
-
|
|
12718
|
-
/**
|
|
12719
|
-
* Runs an effect with the given number of permits and releases the permits
|
|
12720
|
-
* when the effect completes.
|
|
12721
|
-
*
|
|
12722
|
-
* **Details**
|
|
12723
|
-
*
|
|
12724
|
-
* This function acquires the specified number of permits before executing
|
|
12725
|
-
* the provided effect. Once the effect finishes, the permits are released.
|
|
12726
|
-
* If insufficient permits are available, the function will wait until they
|
|
12727
|
-
* are released by other tasks.
|
|
12728
|
-
*/
|
|
12729
|
-
withPermits(permits: number): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
|
|
12730
|
-
|
|
12731
|
-
/**
|
|
12732
|
-
* Runs an effect with the given number of permits and releases the permits
|
|
12733
|
-
* when the effect completes.
|
|
12734
|
-
*
|
|
12735
|
-
* **Details**
|
|
12736
|
-
*
|
|
12737
|
-
* This function acquires the specified number of permits before executing
|
|
12738
|
-
* the provided effect. Once the effect finishes, the permits are released.
|
|
12739
|
-
* If insufficient permits are available, the function will wait until they
|
|
12740
|
-
* are released by other tasks.
|
|
12741
|
-
*/
|
|
12742
|
-
withPermit<A, E, R>(self: Effect<A, E, R>): Effect<A, E, R>
|
|
12743
|
-
|
|
12744
|
-
/**
|
|
12745
|
-
* Runs an effect only if the specified number of permits are immediately
|
|
12746
|
-
* available.
|
|
12747
|
-
*
|
|
12748
|
-
* **Details**
|
|
12749
|
-
*
|
|
12750
|
-
* This function attempts to acquire the specified number of permits. If they
|
|
12751
|
-
* are available, it runs the effect and releases the permits after the effect
|
|
12752
|
-
* completes. If permits are not available, the effect does not execute, and
|
|
12753
|
-
* the result is `Option.none`.
|
|
12754
|
-
*/
|
|
12755
|
-
withPermitsIfAvailable(permits: number): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>
|
|
12756
|
-
|
|
12757
|
-
/**
|
|
12758
|
-
* Acquires the specified number of permits and returns the resulting
|
|
12759
|
-
* available permits, suspending the task if they are not yet available.
|
|
12760
|
-
* Concurrent pending `take` calls are processed in a first-in, first-out manner.
|
|
12761
|
-
*/
|
|
12762
|
-
take(permits: number): Effect<number>
|
|
12763
|
-
|
|
12764
|
-
/**
|
|
12765
|
-
* Releases the specified number of permits and returns the resulting
|
|
12766
|
-
* available permits.
|
|
12767
|
-
*/
|
|
12768
|
-
release(permits: number): Effect<number>
|
|
12769
|
-
|
|
12770
|
-
/**
|
|
12771
|
-
* Releases all permits held by this semaphore and returns the resulting available permits.
|
|
12772
|
-
*/
|
|
12773
|
-
releaseAll: Effect<number>
|
|
12774
|
-
}
|
|
12775
|
-
|
|
12776
|
-
/**
|
|
12777
|
-
* Unsafely creates a new Semaphore.
|
|
12778
|
-
*
|
|
12779
|
-
* @example
|
|
12780
|
-
* ```ts
|
|
12781
|
-
* import { Effect } from "effect"
|
|
12782
|
-
*
|
|
12783
|
-
* const semaphore = Effect.makeSemaphoreUnsafe(3)
|
|
12784
|
-
*
|
|
12785
|
-
* const task = (id: number) =>
|
|
12786
|
-
* semaphore.withPermits(1)(
|
|
12787
|
-
* Effect.gen(function*() {
|
|
12788
|
-
* yield* Effect.log(`Task ${id} started`)
|
|
12789
|
-
* yield* Effect.sleep("1 second")
|
|
12790
|
-
* yield* Effect.log(`Task ${id} completed`)
|
|
12791
|
-
* })
|
|
12792
|
-
* )
|
|
12793
|
-
*
|
|
12794
|
-
* // Only 3 tasks can run concurrently
|
|
12795
|
-
* const program = Effect.all([
|
|
12796
|
-
* task(1),
|
|
12797
|
-
* task(2),
|
|
12798
|
-
* task(3),
|
|
12799
|
-
* task(4),
|
|
12800
|
-
* task(5)
|
|
12801
|
-
* ], { concurrency: "unbounded" })
|
|
12802
|
-
* ```
|
|
12803
|
-
*
|
|
12804
|
-
* @since 2.0.0
|
|
12805
|
-
* @category Semaphore
|
|
12806
|
-
*/
|
|
12807
|
-
export const makeSemaphoreUnsafe: (permits: number) => Semaphore = internal.makeSemaphoreUnsafe
|
|
12808
|
-
|
|
12809
|
-
/**
|
|
12810
|
-
* Creates a new Semaphore.
|
|
12811
|
-
*
|
|
12812
|
-
* @example
|
|
12813
|
-
* ```ts
|
|
12814
|
-
* import { Effect } from "effect"
|
|
12815
|
-
*
|
|
12816
|
-
* const program = Effect.gen(function*() {
|
|
12817
|
-
* const semaphore = yield* Effect.makeSemaphore(2)
|
|
12818
|
-
*
|
|
12819
|
-
* const task = (id: number) =>
|
|
12820
|
-
* semaphore.withPermits(1)(
|
|
12821
|
-
* Effect.gen(function*() {
|
|
12822
|
-
* yield* Effect.log(`Task ${id} acquired permit`)
|
|
12823
|
-
* yield* Effect.sleep("1 second")
|
|
12824
|
-
* yield* Effect.log(`Task ${id} releasing permit`)
|
|
12825
|
-
* })
|
|
12826
|
-
* )
|
|
12827
|
-
*
|
|
12828
|
-
* // Run 4 tasks, but only 2 can run concurrently
|
|
12829
|
-
* yield* Effect.all([task(1), task(2), task(3), task(4)])
|
|
12830
|
-
* })
|
|
12831
|
-
* ```
|
|
12832
|
-
*
|
|
12833
|
-
* @since 2.0.0
|
|
12834
|
-
* @category Semaphore
|
|
12835
|
-
*/
|
|
12836
|
-
export const makeSemaphore: (permits: number) => Effect<Semaphore> = internal.makeSemaphore
|
|
12837
|
-
|
|
12838
|
-
// -----------------------------------------------------------------------------
|
|
12839
|
-
// Latch
|
|
12840
|
-
// -----------------------------------------------------------------------------
|
|
12841
|
-
|
|
12842
|
-
/**
|
|
12843
|
-
* @category Latch
|
|
12844
|
-
* @since 3.8.0
|
|
12845
|
-
* @example
|
|
12846
|
-
* ```ts
|
|
12847
|
-
* import { Effect } from "effect"
|
|
12848
|
-
*
|
|
12849
|
-
* // Create and use a latch for coordination between fibers
|
|
12850
|
-
* const program = Effect.gen(function*() {
|
|
12851
|
-
* const latch = yield* Effect.makeLatch()
|
|
12852
|
-
*
|
|
12853
|
-
* // Wait for the latch to be opened
|
|
12854
|
-
* yield* latch.await
|
|
12855
|
-
*
|
|
12856
|
-
* return "Latch was opened!"
|
|
12857
|
-
* })
|
|
12858
|
-
* ```
|
|
12859
|
-
*/
|
|
12860
|
-
export interface Latch {
|
|
12861
|
-
/** open the latch, releasing all fibers waiting on it */
|
|
12862
|
-
readonly open: Effect<boolean>
|
|
12863
|
-
/** open the latch, releasing all fibers waiting on it */
|
|
12864
|
-
readonly openUnsafe: () => boolean
|
|
12865
|
-
/** release all fibers waiting on the latch, without opening it */
|
|
12866
|
-
readonly release: Effect<boolean>
|
|
12867
|
-
/** wait for the latch to be opened */
|
|
12868
|
-
readonly await: Effect<void>
|
|
12869
|
-
/** close the latch */
|
|
12870
|
-
readonly close: Effect<boolean>
|
|
12871
|
-
/** close the latch */
|
|
12872
|
-
readonly closeUnsafe: () => boolean
|
|
12873
|
-
/** only run the given effect when the latch is open */
|
|
12874
|
-
readonly whenOpen: <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
|
|
12875
|
-
}
|
|
12876
|
-
|
|
12877
|
-
/**
|
|
12878
|
-
* Creates a new Latch.
|
|
12879
|
-
*
|
|
12880
|
-
* @example
|
|
12881
|
-
* ```ts
|
|
12882
|
-
* import { Effect } from "effect"
|
|
12883
|
-
*
|
|
12884
|
-
* const latch = Effect.makeLatchUnsafe(false)
|
|
12885
|
-
*
|
|
12886
|
-
* const waiter = Effect.gen(function*() {
|
|
12887
|
-
* yield* Effect.log("Waiting for latch to open...")
|
|
12888
|
-
* yield* latch.await
|
|
12889
|
-
* yield* Effect.log("Latch opened! Continuing...")
|
|
12890
|
-
* })
|
|
12891
|
-
*
|
|
12892
|
-
* const opener = Effect.gen(function*() {
|
|
12893
|
-
* yield* Effect.sleep("2 seconds")
|
|
12894
|
-
* yield* Effect.log("Opening latch...")
|
|
12895
|
-
* yield* latch.open
|
|
12896
|
-
* })
|
|
12897
|
-
*
|
|
12898
|
-
* const program = Effect.all([waiter, opener])
|
|
12899
|
-
* ```
|
|
12900
|
-
*
|
|
12901
|
-
* @category Latch
|
|
12902
|
-
* @since 3.8.0
|
|
12903
|
-
*/
|
|
12904
|
-
export const makeLatchUnsafe: (open?: boolean | undefined) => Latch = internal.makeLatchUnsafe
|
|
12905
|
-
|
|
12906
|
-
/**
|
|
12907
|
-
* Creates a new Latch.
|
|
12908
|
-
*
|
|
12909
|
-
* @example
|
|
12910
|
-
* ```ts
|
|
12911
|
-
* import { Effect } from "effect"
|
|
12912
|
-
*
|
|
12913
|
-
* const program = Effect.gen(function*() {
|
|
12914
|
-
* const latch = yield* Effect.makeLatch(false)
|
|
12915
|
-
*
|
|
12916
|
-
* const waiter = Effect.gen(function*() {
|
|
12917
|
-
* yield* Effect.log("Waiting for latch to open...")
|
|
12918
|
-
* yield* latch.await
|
|
12919
|
-
* yield* Effect.log("Latch opened! Continuing...")
|
|
12920
|
-
* })
|
|
12921
|
-
*
|
|
12922
|
-
* const opener = Effect.gen(function*() {
|
|
12923
|
-
* yield* Effect.sleep("2 seconds")
|
|
12924
|
-
* yield* Effect.log("Opening latch...")
|
|
12925
|
-
* yield* latch.open
|
|
12926
|
-
* })
|
|
12927
|
-
*
|
|
12928
|
-
* yield* Effect.all([waiter, opener])
|
|
12929
|
-
* })
|
|
12930
|
-
* ```
|
|
12931
|
-
*
|
|
12932
|
-
* @category Latch
|
|
12933
|
-
* @since 3.8.0
|
|
12934
|
-
*/
|
|
12935
|
-
export const makeLatch: (open?: boolean | undefined) => Effect<Latch> = internal.makeLatch
|
|
12936
|
-
|
|
12937
12878
|
// -----------------------------------------------------------------------------
|
|
12938
12879
|
// Repetition & Recursion
|
|
12939
12880
|
// -----------------------------------------------------------------------------
|
|
@@ -22062,8 +22003,8 @@ export const trackDuration: {
|
|
|
22062
22003
|
return onExit(self, () => {
|
|
22063
22004
|
const endTime = clock.currentTimeNanosUnsafe()
|
|
22064
22005
|
const duration = Duration.subtract(
|
|
22065
|
-
Duration.
|
|
22066
|
-
Duration.
|
|
22006
|
+
Duration.fromInputUnsafe(endTime),
|
|
22007
|
+
Duration.fromInputUnsafe(startTime)
|
|
22067
22008
|
)
|
|
22068
22009
|
const input = f === undefined ? duration : internalCall(() => f(duration))
|
|
22069
22010
|
return Metric.update(metric, input as any)
|