effect 4.0.0-beta.1 → 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 +125 -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 +31 -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/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 +143 -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 +57 -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/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
|
@@ -28,13 +28,13 @@ export const layer = (options: {
|
|
|
28
28
|
readonly headers?: Headers.Input | undefined
|
|
29
29
|
readonly maxBatchSize?: number | undefined
|
|
30
30
|
readonly tracerContext?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
31
|
-
readonly loggerExportInterval?: Duration.
|
|
31
|
+
readonly loggerExportInterval?: Duration.Input | undefined
|
|
32
32
|
readonly loggerExcludeLogSpans?: boolean | undefined
|
|
33
33
|
readonly loggerMergeWithExisting?: boolean | undefined
|
|
34
|
-
readonly metricsExportInterval?: Duration.
|
|
34
|
+
readonly metricsExportInterval?: Duration.Input | undefined
|
|
35
35
|
readonly metricsTemporality?: AggregationTemporality | undefined
|
|
36
|
-
readonly tracerExportInterval?: Duration.
|
|
37
|
-
readonly shutdownTimeout?: Duration.
|
|
36
|
+
readonly tracerExportInterval?: Duration.Input | undefined
|
|
37
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
38
38
|
}): Layer.Layer<never, never, HttpClient.HttpClient | OtlpSerialization.OtlpSerialization> => {
|
|
39
39
|
const base = HttpClientRequest.get(options.baseUrl)
|
|
40
40
|
const url = (path: string) => HttpClientRequest.appendUrl(base, path).url
|
|
@@ -83,13 +83,13 @@ export const layerJson: (options: {
|
|
|
83
83
|
readonly headers?: Headers.Input | undefined
|
|
84
84
|
readonly maxBatchSize?: number | undefined
|
|
85
85
|
readonly tracerContext?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
86
|
-
readonly loggerExportInterval?: Duration.
|
|
86
|
+
readonly loggerExportInterval?: Duration.Input | undefined
|
|
87
87
|
readonly loggerExcludeLogSpans?: boolean | undefined
|
|
88
88
|
readonly loggerMergeWithExisting?: boolean | undefined
|
|
89
|
-
readonly metricsExportInterval?: Duration.
|
|
89
|
+
readonly metricsExportInterval?: Duration.Input | undefined
|
|
90
90
|
readonly metricsTemporality?: AggregationTemporality | undefined
|
|
91
|
-
readonly tracerExportInterval?: Duration.
|
|
92
|
-
readonly shutdownTimeout?: Duration.
|
|
91
|
+
readonly tracerExportInterval?: Duration.Input | undefined
|
|
92
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
93
93
|
}) => Layer.Layer<never, never, HttpClient.HttpClient> = flow(layer, Layer.provide(OtlpSerialization.layerJson))
|
|
94
94
|
|
|
95
95
|
/**
|
|
@@ -106,11 +106,11 @@ export const layerProtobuf: (options: {
|
|
|
106
106
|
readonly headers?: Headers.Input | undefined
|
|
107
107
|
readonly maxBatchSize?: number | undefined
|
|
108
108
|
readonly tracerContext?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
109
|
-
readonly loggerExportInterval?: Duration.
|
|
109
|
+
readonly loggerExportInterval?: Duration.Input | undefined
|
|
110
110
|
readonly loggerExcludeLogSpans?: boolean | undefined
|
|
111
111
|
readonly loggerMergeWithExisting?: boolean | undefined
|
|
112
|
-
readonly metricsExportInterval?: Duration.
|
|
112
|
+
readonly metricsExportInterval?: Duration.Input | undefined
|
|
113
113
|
readonly metricsTemporality?: AggregationTemporality | undefined
|
|
114
|
-
readonly tracerExportInterval?: Duration.
|
|
115
|
-
readonly shutdownTimeout?: Duration.
|
|
114
|
+
readonly tracerExportInterval?: Duration.Input | undefined
|
|
115
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
116
116
|
}) => Layer.Layer<never, never, HttpClient.HttpClient> = flow(layer, Layer.provide(OtlpSerialization.layerProtobuf))
|
|
@@ -40,10 +40,10 @@ export const make: (
|
|
|
40
40
|
readonly url: string
|
|
41
41
|
readonly headers: Headers.Input | undefined
|
|
42
42
|
readonly label: string
|
|
43
|
-
readonly exportInterval: Duration.
|
|
43
|
+
readonly exportInterval: Duration.Input
|
|
44
44
|
readonly maxBatchSize: number | "disabled"
|
|
45
45
|
readonly body: (data: Array<any>) => HttpBody
|
|
46
|
-
readonly shutdownTimeout: Duration.
|
|
46
|
+
readonly shutdownTimeout: Duration.Input
|
|
47
47
|
}
|
|
48
48
|
) => Effect.Effect<
|
|
49
49
|
{ readonly push: (data: unknown) => void },
|
|
@@ -54,7 +54,7 @@ export const make: (
|
|
|
54
54
|
const clock = ServiceMap.get(services, Clock)
|
|
55
55
|
const scope = ServiceMap.get(services, Scope.Scope)
|
|
56
56
|
const runFork = Effect.runForkWith(services)
|
|
57
|
-
const exportInterval = Duration.max(Duration.
|
|
57
|
+
const exportInterval = Duration.max(Duration.fromInputUnsafe(options.exportInterval), Duration.zero)
|
|
58
58
|
let disabledUntil: number | undefined = undefined
|
|
59
59
|
|
|
60
60
|
const client = HttpClient.filterStatusOk(ServiceMap.get(services, HttpClient.HttpClient)).pipe(
|
|
@@ -30,9 +30,9 @@ export const make: (
|
|
|
30
30
|
readonly attributes?: Record<string, unknown>
|
|
31
31
|
} | undefined
|
|
32
32
|
readonly headers?: Headers.Input | undefined
|
|
33
|
-
readonly exportInterval?: Duration.
|
|
33
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
34
34
|
readonly maxBatchSize?: number | undefined
|
|
35
|
-
readonly shutdownTimeout?: Duration.
|
|
35
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
36
36
|
readonly excludeLogSpans?: boolean | undefined
|
|
37
37
|
}
|
|
38
38
|
) => Effect.Effect<
|
|
@@ -85,9 +85,9 @@ export const layer = (options: {
|
|
|
85
85
|
readonly attributes?: Record<string, unknown>
|
|
86
86
|
} | undefined
|
|
87
87
|
readonly headers?: Headers.Input | undefined
|
|
88
|
-
readonly exportInterval?: Duration.
|
|
88
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
89
89
|
readonly maxBatchSize?: number | undefined
|
|
90
|
-
readonly shutdownTimeout?: Duration.
|
|
90
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
91
91
|
readonly excludeLogSpans?: boolean | undefined
|
|
92
92
|
readonly mergeWithExisting?: boolean | undefined
|
|
93
93
|
}): Layer.Layer<never, never, HttpClient.HttpClient | OtlpSerialization> =>
|
|
@@ -60,8 +60,8 @@ export const make: (options: {
|
|
|
60
60
|
readonly attributes?: Record<string, unknown>
|
|
61
61
|
} | undefined
|
|
62
62
|
readonly headers?: Headers.Input | undefined
|
|
63
|
-
readonly exportInterval?: Duration.
|
|
64
|
-
readonly shutdownTimeout?: Duration.
|
|
63
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
64
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
65
65
|
readonly temporality?: AggregationTemporality | undefined
|
|
66
66
|
}) => Effect.Effect<
|
|
67
67
|
void,
|
|
@@ -440,8 +440,8 @@ export const layer = (options: {
|
|
|
440
440
|
readonly attributes?: Record<string, unknown>
|
|
441
441
|
} | undefined
|
|
442
442
|
readonly headers?: Headers.Input | undefined
|
|
443
|
-
readonly exportInterval?: Duration.
|
|
444
|
-
readonly shutdownTimeout?: Duration.
|
|
443
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
444
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
445
445
|
readonly temporality?: AggregationTemporality | undefined
|
|
446
446
|
}): Layer.Layer<never, never, HttpClient.HttpClient | OtlpSerialization> => Layer.effectDiscard(make(options))
|
|
447
447
|
|
|
@@ -32,10 +32,10 @@ export const make: (
|
|
|
32
32
|
readonly attributes?: Record<string, unknown>
|
|
33
33
|
} | undefined
|
|
34
34
|
readonly headers?: Headers.Input | undefined
|
|
35
|
-
readonly exportInterval?: Duration.
|
|
35
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
36
36
|
readonly maxBatchSize?: number | undefined
|
|
37
37
|
readonly context?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
38
|
-
readonly shutdownTimeout?: Duration.
|
|
38
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
39
39
|
}
|
|
40
40
|
) => Effect.Effect<
|
|
41
41
|
Tracer.Tracer,
|
|
@@ -109,10 +109,10 @@ export const layer: (options: {
|
|
|
109
109
|
readonly attributes?: Record<string, unknown>
|
|
110
110
|
} | undefined
|
|
111
111
|
readonly headers?: Headers.Input | undefined
|
|
112
|
-
readonly exportInterval?: Duration.
|
|
112
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
113
113
|
readonly maxBatchSize?: number | undefined
|
|
114
114
|
readonly context?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
115
|
-
readonly shutdownTimeout?: Duration.
|
|
115
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
116
116
|
}) => Layer.Layer<never, never, OtlpSerialization | HttpClient.HttpClient> = flow(make, Layer.effect(Tracer.Tracer))
|
|
117
117
|
|
|
118
118
|
// internal
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Data from "../../Data.ts"
|
|
5
5
|
import * as Effect from "../../Effect.ts"
|
|
6
|
-
import * as
|
|
6
|
+
import * as Encoding from "../../Encoding.ts"
|
|
7
7
|
import * as FileSystem from "../../FileSystem.ts"
|
|
8
8
|
import { dual, identity, type LazyArg } from "../../Function.ts"
|
|
9
9
|
import * as Layer from "../../Layer.ts"
|
|
@@ -225,7 +225,7 @@ export const makeStringOnly = (
|
|
|
225
225
|
getUint8Array: (key) =>
|
|
226
226
|
options.get(key).pipe(
|
|
227
227
|
Effect.map(UndefinedOr.map((value) =>
|
|
228
|
-
Result.match(
|
|
228
|
+
Result.match(Encoding.decodeBase64(value), {
|
|
229
229
|
onFailure: () => encoder.encode(value),
|
|
230
230
|
onSuccess: identity
|
|
231
231
|
})
|
|
@@ -234,7 +234,7 @@ export const makeStringOnly = (
|
|
|
234
234
|
set: (key, value) =>
|
|
235
235
|
typeof value === "string"
|
|
236
236
|
? options.set(key, value)
|
|
237
|
-
: Effect.suspend(() => options.set(key,
|
|
237
|
+
: Effect.suspend(() => options.set(key, Encoding.encodeBase64(value)))
|
|
238
238
|
})
|
|
239
239
|
}
|
|
240
240
|
|
|
@@ -276,7 +276,7 @@ export const layerMemory: Layer.Layer<KeyValueStore> = Layer.sync(KeyValueStore)
|
|
|
276
276
|
get: (key: string) =>
|
|
277
277
|
Effect.sync(() => {
|
|
278
278
|
const value = store.get(key)
|
|
279
|
-
return value === undefined ? undefined : typeof value === "string" ? value :
|
|
279
|
+
return value === undefined ? undefined : typeof value === "string" ? value : Encoding.encodeBase64(value)
|
|
280
280
|
}),
|
|
281
281
|
getUint8Array: (key: string) =>
|
|
282
282
|
Effect.sync(() => {
|
|
@@ -312,7 +312,7 @@ export const layerFileSystem = (
|
|
|
312
312
|
fs.readFileString(keyPath(key)),
|
|
313
313
|
"PlatformError",
|
|
314
314
|
(cause) =>
|
|
315
|
-
cause.reason._tag === "
|
|
315
|
+
cause.reason._tag === "NotFound" ? Effect.undefined : Effect.fail(
|
|
316
316
|
new KeyValueStoreError({
|
|
317
317
|
method: "get",
|
|
318
318
|
key,
|
|
@@ -326,7 +326,7 @@ export const layerFileSystem = (
|
|
|
326
326
|
fs.readFile(keyPath(key)),
|
|
327
327
|
"PlatformError",
|
|
328
328
|
(cause) =>
|
|
329
|
-
cause.reason._tag === "
|
|
329
|
+
cause.reason._tag === "NotFound" ? Effect.undefined : Effect.fail(
|
|
330
330
|
new KeyValueStoreError({
|
|
331
331
|
method: "getUint8Array",
|
|
332
332
|
key,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
|
-
import type
|
|
4
|
+
import type * as Duration from "../../Duration.ts"
|
|
5
5
|
import type * as Effect from "../../Effect.ts"
|
|
6
6
|
import type * as Exit from "../../Exit.ts"
|
|
7
7
|
import * as PrimaryKey from "../../PrimaryKey.ts"
|
|
@@ -87,7 +87,7 @@ export type Services<A extends Any> =
|
|
|
87
87
|
* @since 4.0.0
|
|
88
88
|
* @category Models
|
|
89
89
|
*/
|
|
90
|
-
export type TimeToLiveFn<K extends Any> = (exit: Exit.Exit<Success<K>, Error<K>>, request: K) =>
|
|
90
|
+
export type TimeToLiveFn<K extends Any> = (exit: Exit.Exit<Success<K>, Error<K>>, request: K) => Duration.Input
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
93
|
* @since 4.0.0
|
|
@@ -17,18 +17,18 @@ const TypeId = "~effect/persistence/PersistedCache" as const
|
|
|
17
17
|
* @since 4.0.0
|
|
18
18
|
* @category Models
|
|
19
19
|
*/
|
|
20
|
-
export interface PersistedCache<K extends Persistable.Any> {
|
|
20
|
+
export interface PersistedCache<K extends Persistable.Any, out R = never> {
|
|
21
21
|
readonly [TypeId]: typeof TypeId
|
|
22
22
|
readonly inMemory: Cache.Cache<
|
|
23
23
|
K,
|
|
24
24
|
Persistable.Success<K>,
|
|
25
25
|
Persistable.Error<K> | Persistence.PersistenceError | Schema.SchemaError,
|
|
26
|
-
Persistable.Services<K>
|
|
26
|
+
Persistable.Services<K> | R
|
|
27
27
|
>
|
|
28
28
|
readonly get: (key: K) => Effect.Effect<
|
|
29
29
|
Persistable.Success<K>,
|
|
30
30
|
Persistable.Error<K> | Persistence.PersistenceError | Schema.SchemaError,
|
|
31
|
-
Persistable.Services<K>
|
|
31
|
+
Persistable.Services<K> | R
|
|
32
32
|
>
|
|
33
33
|
readonly invalidate: (key: K) => Effect.Effect<void, Persistence.PersistenceError>
|
|
34
34
|
}
|
|
@@ -37,22 +37,32 @@ export interface PersistedCache<K extends Persistable.Any> {
|
|
|
37
37
|
* @since 4.0.0
|
|
38
38
|
* @category Constructors
|
|
39
39
|
*/
|
|
40
|
-
export const make: <
|
|
40
|
+
export const make: <
|
|
41
|
+
K extends Persistable.Any,
|
|
42
|
+
R = never,
|
|
43
|
+
ServiceMode extends "lookup" | "construction" = never
|
|
44
|
+
>(options: {
|
|
41
45
|
readonly storeId: string
|
|
42
46
|
readonly lookup: (key: K) => Effect.Effect<Persistable.Success<K>, Persistable.Error<K>, R>
|
|
43
47
|
readonly timeToLive: Persistable.TimeToLiveFn<K>
|
|
44
48
|
readonly inMemoryCapacity?: number | undefined
|
|
45
49
|
readonly inMemoryTTL?: Persistable.TimeToLiveFn<K> | undefined
|
|
50
|
+
readonly requireServicesAt?: ServiceMode | undefined
|
|
46
51
|
}) => Effect.Effect<
|
|
47
|
-
PersistedCache<K>,
|
|
52
|
+
PersistedCache<K, "lookup" extends ServiceMode ? R : never>,
|
|
48
53
|
never,
|
|
49
|
-
R | Persistence.Persistence | Scope.Scope
|
|
50
|
-
> = Effect.fnUntraced(function*<
|
|
54
|
+
("lookup" extends ServiceMode ? never : R) | Persistence.Persistence | Scope.Scope
|
|
55
|
+
> = Effect.fnUntraced(function*<
|
|
56
|
+
K extends Persistable.Any,
|
|
57
|
+
R = never,
|
|
58
|
+
ServiceMode extends "lookup" | "construction" = never
|
|
59
|
+
>(options: {
|
|
51
60
|
readonly storeId: string
|
|
52
61
|
readonly lookup: (key: K) => Effect.Effect<Persistable.Success<K>, Persistable.Error<K>, R>
|
|
53
62
|
readonly timeToLive: Persistable.TimeToLiveFn<K>
|
|
54
63
|
readonly inMemoryCapacity?: number | undefined
|
|
55
64
|
readonly inMemoryTTL?: Persistable.TimeToLiveFn<K> | undefined
|
|
65
|
+
readonly requireServicesAt?: ServiceMode | undefined
|
|
56
66
|
}) {
|
|
57
67
|
const store = yield* (yield* Persistence.Persistence).make({
|
|
58
68
|
storeId: options.storeId,
|
|
@@ -69,9 +79,10 @@ export const make: <K extends Persistable.Any, R>(options: {
|
|
|
69
79
|
return yield* result
|
|
70
80
|
}),
|
|
71
81
|
timeToLive: options.inMemoryTTL ?? constant(Duration.seconds(10)),
|
|
72
|
-
capacity: options.inMemoryCapacity ?? 1024
|
|
82
|
+
capacity: options.inMemoryCapacity ?? 1024,
|
|
83
|
+
requireServicesAt: options.requireServicesAt
|
|
73
84
|
})
|
|
74
|
-
return identity<PersistedCache<K>>({
|
|
85
|
+
return identity<PersistedCache<K, "lookup" extends ServiceMode ? R : never>>({
|
|
75
86
|
[TypeId]: TypeId,
|
|
76
87
|
inMemory,
|
|
77
88
|
get: (key) => Cache.get(inMemory, key),
|
|
@@ -9,6 +9,7 @@ import * as Effect from "../../Effect.ts"
|
|
|
9
9
|
import * as Exit from "../../Exit.ts"
|
|
10
10
|
import { flow } from "../../Function.ts"
|
|
11
11
|
import * as Iterable from "../../Iterable.ts"
|
|
12
|
+
import * as Latch from "../../Latch.ts"
|
|
12
13
|
import * as Layer from "../../Layer.ts"
|
|
13
14
|
import * as MutableRef from "../../MutableRef.ts"
|
|
14
15
|
import * as Queue from "../../Queue.ts"
|
|
@@ -235,14 +236,14 @@ export const layerStoreMemory: Layer.Layer<
|
|
|
235
236
|
}
|
|
236
237
|
const ids = new Set<string>()
|
|
237
238
|
const queues = new Map<string, {
|
|
238
|
-
latch:
|
|
239
|
+
latch: Latch.Latch
|
|
239
240
|
items: Set<Entry>
|
|
240
241
|
}>()
|
|
241
242
|
const getOrCreateQueue = (name: string) => {
|
|
242
243
|
let queue = queues.get(name)
|
|
243
244
|
if (!queue) {
|
|
244
245
|
queue = {
|
|
245
|
-
latch:
|
|
246
|
+
latch: Latch.makeUnsafe(false),
|
|
246
247
|
items: new Set()
|
|
247
248
|
}
|
|
248
249
|
queues.set(name, queue)
|
|
@@ -294,26 +295,26 @@ export const layerStoreMemory: Layer.Layer<
|
|
|
294
295
|
export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
295
296
|
options?: {
|
|
296
297
|
readonly prefix?: string | undefined
|
|
297
|
-
readonly pollInterval?: Duration.
|
|
298
|
-
readonly lockRefreshInterval?: Duration.
|
|
299
|
-
readonly lockExpiration?: Duration.
|
|
298
|
+
readonly pollInterval?: Duration.Input | undefined
|
|
299
|
+
readonly lockRefreshInterval?: Duration.Input | undefined
|
|
300
|
+
readonly lockExpiration?: Duration.Input | undefined
|
|
300
301
|
}
|
|
301
302
|
) {
|
|
302
303
|
const redis = yield* Redis.Redis
|
|
303
304
|
|
|
304
305
|
const pollInterval = Duration.max(
|
|
305
|
-
options?.pollInterval ? Duration.
|
|
306
|
+
options?.pollInterval ? Duration.fromInputUnsafe(options.pollInterval) : Duration.seconds(1),
|
|
306
307
|
Duration.millis(1)
|
|
307
308
|
)
|
|
308
309
|
const lockRefreshMillis = Math.max(
|
|
309
310
|
options?.lockRefreshInterval
|
|
310
|
-
? Duration.toMillis(Duration.
|
|
311
|
+
? Duration.toMillis(Duration.fromInputUnsafe(options.lockRefreshInterval))
|
|
311
312
|
: 30_000,
|
|
312
313
|
1
|
|
313
314
|
)
|
|
314
315
|
const lockExpirationMillis = Math.max(
|
|
315
316
|
options?.lockExpiration
|
|
316
|
-
? Duration.toMillis(Duration.
|
|
317
|
+
? Duration.toMillis(Duration.fromInputUnsafe(options.lockExpiration))
|
|
317
318
|
: 90_000,
|
|
318
319
|
1
|
|
319
320
|
)
|
|
@@ -345,8 +346,8 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
|
345
346
|
const pendingKey = keyPending(name)
|
|
346
347
|
const queue = yield* Queue.make<Element>()
|
|
347
348
|
const takers = MutableRef.make(0)
|
|
348
|
-
const pollLatch =
|
|
349
|
-
const takenLatch =
|
|
349
|
+
const pollLatch = Latch.makeUnsafe()
|
|
350
|
+
const takenLatch = Latch.makeUnsafe()
|
|
350
351
|
|
|
351
352
|
yield* Effect.addFinalizer(() =>
|
|
352
353
|
Effect.orDie(
|
|
@@ -653,9 +654,9 @@ end
|
|
|
653
654
|
export const layerStoreRedis: (
|
|
654
655
|
options?: {
|
|
655
656
|
readonly prefix?: string | undefined
|
|
656
|
-
readonly pollInterval?: Duration.
|
|
657
|
-
readonly lockRefreshInterval?: Duration.
|
|
658
|
-
readonly lockExpiration?: Duration.
|
|
657
|
+
readonly pollInterval?: Duration.Input | undefined
|
|
658
|
+
readonly lockRefreshInterval?: Duration.Input | undefined
|
|
659
|
+
readonly lockExpiration?: Duration.Input | undefined
|
|
659
660
|
} | undefined
|
|
660
661
|
) => Layer.Layer<
|
|
661
662
|
PersistedQueueStore,
|
|
@@ -670,9 +671,9 @@ export const layerStoreRedis: (
|
|
|
670
671
|
export const makeStoreSql: (
|
|
671
672
|
options?: {
|
|
672
673
|
readonly tableName?: string | undefined
|
|
673
|
-
readonly pollInterval?: Duration.
|
|
674
|
-
readonly lockRefreshInterval?: Duration.
|
|
675
|
-
readonly lockExpiration?: Duration.
|
|
674
|
+
readonly pollInterval?: Duration.Input | undefined
|
|
675
|
+
readonly lockRefreshInterval?: Duration.Input | undefined
|
|
676
|
+
readonly lockExpiration?: Duration.Input | undefined
|
|
676
677
|
} | undefined
|
|
677
678
|
) => Effect.Effect<
|
|
678
679
|
PersistedQueueStore["Service"],
|
|
@@ -683,15 +684,15 @@ export const makeStoreSql: (
|
|
|
683
684
|
const tableName = options?.tableName ?? "effect_queue"
|
|
684
685
|
const tableNameSql = sql(tableName)
|
|
685
686
|
const pollInterval = Duration.max(
|
|
686
|
-
options?.pollInterval ? Duration.
|
|
687
|
+
options?.pollInterval ? Duration.fromInputUnsafe(options.pollInterval) : Duration.millis(1000),
|
|
687
688
|
Duration.millis(1)
|
|
688
689
|
)
|
|
689
690
|
const lockRefreshInterval = Duration.max(
|
|
690
|
-
options?.lockRefreshInterval ? Duration.
|
|
691
|
+
options?.lockRefreshInterval ? Duration.fromInputUnsafe(options.lockRefreshInterval) : Duration.seconds(30),
|
|
691
692
|
Duration.millis(1)
|
|
692
693
|
)
|
|
693
694
|
const lockExpiration = Duration.max(
|
|
694
|
-
options?.lockExpiration ? Duration.
|
|
695
|
+
options?.lockExpiration ? Duration.fromInputUnsafe(options.lockExpiration) : Duration.minutes(2),
|
|
695
696
|
Duration.millis(1)
|
|
696
697
|
)
|
|
697
698
|
const lockExpirationSql = sql.literal(Math.ceil(Duration.toSeconds(lockExpiration)).toString())
|
|
@@ -930,8 +931,8 @@ export const makeStoreSql: (
|
|
|
930
931
|
lookup: Effect.fnUntraced(function*({ maxAttempts, name }: QueueKey) {
|
|
931
932
|
const queue = yield* Queue.make<Element>()
|
|
932
933
|
const takers = MutableRef.make(0)
|
|
933
|
-
const pollLatch =
|
|
934
|
-
const takenLatch =
|
|
934
|
+
const pollLatch = Latch.makeUnsafe()
|
|
935
|
+
const takenLatch = Latch.makeUnsafe()
|
|
935
936
|
|
|
936
937
|
yield* Effect.addFinalizer(() =>
|
|
937
938
|
Effect.flatMap(Queue.clear(queue), (elements) => {
|
|
@@ -1098,9 +1099,9 @@ class QueueKey extends Data.Class<{
|
|
|
1098
1099
|
export const layerStoreSql: (
|
|
1099
1100
|
options?: {
|
|
1100
1101
|
readonly tableName?: string | undefined
|
|
1101
|
-
readonly pollInterval?: Duration.
|
|
1102
|
-
readonly lockRefreshInterval?: Duration.
|
|
1103
|
-
readonly lockExpiration?: Duration.
|
|
1102
|
+
readonly pollInterval?: Duration.Input | undefined
|
|
1103
|
+
readonly lockRefreshInterval?: Duration.Input | undefined
|
|
1104
|
+
readonly lockExpiration?: Duration.Input | undefined
|
|
1104
1105
|
} | undefined
|
|
1105
1106
|
) => Layer.Layer<
|
|
1106
1107
|
PersistedQueueStore,
|
|
@@ -42,7 +42,7 @@ export class PersistenceError extends Schema.ErrorClass(ErrorTypeId)({
|
|
|
42
42
|
export class Persistence extends ServiceMap.Service<Persistence, {
|
|
43
43
|
readonly make: (options: {
|
|
44
44
|
readonly storeId: string
|
|
45
|
-
readonly timeToLive?: (exit: Exit.Exit<unknown, unknown>, key: Persistable.Any) => Duration.
|
|
45
|
+
readonly timeToLive?: (exit: Exit.Exit<unknown, unknown>, key: Persistable.Any) => Duration.Input
|
|
46
46
|
}) => Effect.Effect<PersistenceStore, never, Scope.Scope>
|
|
47
47
|
}>()("effect/persistence/Persistence") {}
|
|
48
48
|
|
|
@@ -169,7 +169,7 @@ export const layer = Layer.effect(Persistence)(Effect.gen(function*() {
|
|
|
169
169
|
return out
|
|
170
170
|
}),
|
|
171
171
|
set(key, value) {
|
|
172
|
-
const ttl = Duration.
|
|
172
|
+
const ttl = Duration.fromInputUnsafe(timeToLive(value, key))
|
|
173
173
|
if (Duration.isZero(ttl) || Duration.isNegative(ttl)) return Effect.void
|
|
174
174
|
return Persistable.serializeExit(key, value).pipe(
|
|
175
175
|
Effect.flatMap((encoded) =>
|
|
@@ -180,7 +180,7 @@ export const layer = Layer.effect(Persistence)(Effect.gen(function*() {
|
|
|
180
180
|
setMany: Effect.fnUntraced(function*(entries) {
|
|
181
181
|
const encodedEntries = Arr.empty<readonly [string, object, Duration.Duration | undefined]>()
|
|
182
182
|
for (const [key, value] of entries) {
|
|
183
|
-
const ttl = Duration.
|
|
183
|
+
const ttl = Duration.fromInputUnsafe(timeToLive(value, key))
|
|
184
184
|
if (Duration.isZero(ttl) || Duration.isNegative(ttl)) continue
|
|
185
185
|
const encoded = Persistable.serializeExit(key, value)
|
|
186
186
|
const exit = Exit.isExit(encoded)
|
|
@@ -32,7 +32,7 @@ export interface RateLimiter {
|
|
|
32
32
|
readonly consume: (options: {
|
|
33
33
|
readonly algorithm?: "fixed-window" | "token-bucket" | undefined
|
|
34
34
|
readonly onExceeded?: "delay" | "fail" | undefined
|
|
35
|
-
readonly window: Duration.
|
|
35
|
+
readonly window: Duration.Input
|
|
36
36
|
readonly limit: number
|
|
37
37
|
readonly key: string
|
|
38
38
|
readonly tokens?: number | undefined
|
|
@@ -62,7 +62,7 @@ export const make: Effect.Effect<
|
|
|
62
62
|
const tokens = options.tokens ?? 1
|
|
63
63
|
const onExceeded = options.onExceeded ?? "fail"
|
|
64
64
|
const algorithm = options.algorithm ?? "fixed-window"
|
|
65
|
-
const window = Duration.max(Duration.
|
|
65
|
+
const window = Duration.max(Duration.fromInputUnsafe(options.window), Duration.millis(1))
|
|
66
66
|
const windowMillis = Duration.toMillis(window)
|
|
67
67
|
const refillRate = Duration.divideUnsafe(window, options.limit)
|
|
68
68
|
const refillRateMillis = Duration.toMillis(refillRate)
|
|
@@ -222,7 +222,7 @@ export const makeWithRateLimiter: Effect.Effect<
|
|
|
222
222
|
((options: {
|
|
223
223
|
readonly algorithm?: "fixed-window" | "token-bucket" | undefined
|
|
224
224
|
readonly onExceeded?: "delay" | "fail" | undefined
|
|
225
|
-
readonly window: Duration.
|
|
225
|
+
readonly window: Duration.Input
|
|
226
226
|
readonly limit: number
|
|
227
227
|
readonly key: string
|
|
228
228
|
readonly tokens?: number | undefined
|
|
@@ -266,7 +266,7 @@ export const makeWithRateLimiter: Effect.Effect<
|
|
|
266
266
|
export const makeSleep: Effect.Effect<
|
|
267
267
|
((options: {
|
|
268
268
|
readonly algorithm?: "fixed-window" | "token-bucket" | undefined
|
|
269
|
-
readonly window: Duration.
|
|
269
|
+
readonly window: Duration.Input
|
|
270
270
|
readonly limit: number
|
|
271
271
|
readonly key: string
|
|
272
272
|
readonly tokens?: number | undefined
|
|
@@ -283,7 +283,7 @@ export interface KillOptions {
|
|
|
283
283
|
* Defaults to `undefined`, which means that no timeout will be enforced by
|
|
284
284
|
* default.
|
|
285
285
|
*/
|
|
286
|
-
readonly forceKillAfter?: Duration.
|
|
286
|
+
readonly forceKillAfter?: Duration.Input | undefined
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
/**
|
|
@@ -414,7 +414,7 @@ export interface CommandOptions extends KillOptions {
|
|
|
414
414
|
* the value of `globalThis.process.env`, prioritizing the values in `env`
|
|
415
415
|
* when conflicts exist.
|
|
416
416
|
*/
|
|
417
|
-
readonly env?: Record<string, string> | undefined
|
|
417
|
+
readonly env?: Record<string, string | undefined> | undefined
|
|
418
418
|
/**
|
|
419
419
|
* If set to `true`, the child process uses both the values in `env` as well
|
|
420
420
|
* as the values in `globalThis.process.env`, prioritizing the values in `env`
|
|
@@ -76,10 +76,16 @@ export interface ChildProcessHandle {
|
|
|
76
76
|
readonly stdin: Sink.Sink<void, Uint8Array, never, PlatformError.PlatformError>
|
|
77
77
|
/**
|
|
78
78
|
* The standard output stream for the child process.
|
|
79
|
+
*
|
|
80
|
+
* Note: Using alongside `all` may cause interleaving of output and unexpected
|
|
81
|
+
* results.
|
|
79
82
|
*/
|
|
80
83
|
readonly stdout: Stream.Stream<Uint8Array, PlatformError.PlatformError>
|
|
81
84
|
/**
|
|
82
85
|
* The standard error stream for the child process.
|
|
86
|
+
*
|
|
87
|
+
* Note: Using alongside `all` may cause interleaving of output and unexpected
|
|
88
|
+
* results.
|
|
83
89
|
*/
|
|
84
90
|
readonly stderr: Stream.Stream<Uint8Array, PlatformError.PlatformError>
|
|
85
91
|
/**
|
|
@@ -169,25 +169,25 @@ export const setIdleTTL: {
|
|
|
169
169
|
* @since 4.0.0
|
|
170
170
|
* @category combinators
|
|
171
171
|
*/
|
|
172
|
-
(duration: Duration.
|
|
172
|
+
(duration: Duration.Input): <A extends Atom<any>>(self: A) => A
|
|
173
173
|
/**
|
|
174
174
|
* @since 4.0.0
|
|
175
175
|
* @category combinators
|
|
176
176
|
*/
|
|
177
|
-
<A extends Atom<any>>(self: A, duration: Duration.
|
|
177
|
+
<A extends Atom<any>>(self: A, duration: Duration.Input): A
|
|
178
178
|
} = dual<
|
|
179
179
|
/**
|
|
180
180
|
* @since 4.0.0
|
|
181
181
|
* @category combinators
|
|
182
182
|
*/
|
|
183
|
-
(duration: Duration.
|
|
183
|
+
(duration: Duration.Input) => <A extends Atom<any>>(self: A) => A,
|
|
184
184
|
/**
|
|
185
185
|
* @since 4.0.0
|
|
186
186
|
* @category combinators
|
|
187
187
|
*/
|
|
188
|
-
<A extends Atom<any>>(self: A, duration: Duration.
|
|
188
|
+
<A extends Atom<any>>(self: A, duration: Duration.Input) => A
|
|
189
189
|
>(2, (self, durationInput) => {
|
|
190
|
-
const duration = Duration.
|
|
190
|
+
const duration = Duration.fromInputUnsafe(durationInput)
|
|
191
191
|
const isFinite = Duration.isFinite(duration)
|
|
192
192
|
return Object.assign(Object.create(Object.getPrototypeOf(self)), {
|
|
193
193
|
...self,
|
|
@@ -1684,16 +1684,16 @@ export const debounce: {
|
|
|
1684
1684
|
* @since 4.0.0
|
|
1685
1685
|
* @category combinators
|
|
1686
1686
|
*/
|
|
1687
|
-
(duration: Duration.
|
|
1687
|
+
(duration: Duration.Input): <A extends Atom<any>>(self: A) => WithoutSerializable<A>
|
|
1688
1688
|
/**
|
|
1689
1689
|
* @since 4.0.0
|
|
1690
1690
|
* @category combinators
|
|
1691
1691
|
*/
|
|
1692
|
-
<A extends Atom<any>>(self: A, duration: Duration.
|
|
1692
|
+
<A extends Atom<any>>(self: A, duration: Duration.Input): WithoutSerializable<A>
|
|
1693
1693
|
} = dual(
|
|
1694
1694
|
2,
|
|
1695
|
-
<A>(self: Atom<A>, duration: Duration.
|
|
1696
|
-
const millis = Duration.toMillis(Duration.
|
|
1695
|
+
<A>(self: Atom<A>, duration: Duration.Input): Atom<A> => {
|
|
1696
|
+
const millis = Duration.toMillis(Duration.fromInputUnsafe(duration))
|
|
1697
1697
|
return transform(self, function(get) {
|
|
1698
1698
|
let timeout: number | undefined
|
|
1699
1699
|
let value = get.once(self)
|
|
@@ -1729,7 +1729,7 @@ export const withRefresh: {
|
|
|
1729
1729
|
* @since 4.0.0
|
|
1730
1730
|
* @category combinators
|
|
1731
1731
|
*/
|
|
1732
|
-
(duration: Duration.
|
|
1732
|
+
(duration: Duration.Input): <A extends Atom<any>>(self: A) => WithoutSerializable<A>
|
|
1733
1733
|
/**
|
|
1734
1734
|
* Ensures that the value of the atom is refreshed at most once per specified
|
|
1735
1735
|
* duration.
|
|
@@ -1737,11 +1737,11 @@ export const withRefresh: {
|
|
|
1737
1737
|
* @since 4.0.0
|
|
1738
1738
|
* @category combinators
|
|
1739
1739
|
*/
|
|
1740
|
-
<A extends Atom<any>>(self: A, duration: Duration.
|
|
1740
|
+
<A extends Atom<any>>(self: A, duration: Duration.Input): WithoutSerializable<A>
|
|
1741
1741
|
} = dual(
|
|
1742
1742
|
2,
|
|
1743
|
-
<A>(self: Atom<A>, duration: Duration.
|
|
1744
|
-
const millis = Duration.toMillis(Duration.
|
|
1743
|
+
<A>(self: Atom<A>, duration: Duration.Input): Atom<A> => {
|
|
1744
|
+
const millis = Duration.toMillis(Duration.fromInputUnsafe(duration))
|
|
1745
1745
|
return transform(self, function(get) {
|
|
1746
1746
|
const handle = setTimeout(() => get.refresh(self), millis) as any
|
|
1747
1747
|
get.addFinalizer(() => clearTimeout(handle))
|
|
@@ -2291,16 +2291,18 @@ export const serializable: {
|
|
|
2291
2291
|
} = dual(2, <R extends Atom<any>, A, I>(self: R, options: {
|
|
2292
2292
|
readonly key: string
|
|
2293
2293
|
readonly schema: Schema.Codec<A, I>
|
|
2294
|
-
}): R & Serializable<any> =>
|
|
2295
|
-
|
|
2294
|
+
}): R & Serializable<any> => {
|
|
2295
|
+
const codecJson = Schema.toCodecJson(options.schema)
|
|
2296
|
+
return Object.assign(Object.create(Object.getPrototypeOf(self)), {
|
|
2296
2297
|
...self,
|
|
2297
2298
|
label: self.label ?? [options.key, new Error().stack?.split("\n")[5] ?? ""],
|
|
2298
2299
|
[SerializableTypeId]: {
|
|
2299
2300
|
key: options.key,
|
|
2300
|
-
encode: Schema.encodeSync(
|
|
2301
|
-
decode: Schema.decodeSync(
|
|
2301
|
+
encode: Schema.encodeSync(codecJson),
|
|
2302
|
+
decode: Schema.decodeSync(codecJson)
|
|
2302
2303
|
}
|
|
2303
|
-
})
|
|
2304
|
+
})
|
|
2305
|
+
})
|
|
2304
2306
|
|
|
2305
2307
|
/**
|
|
2306
2308
|
* @since 4.0.0
|