effect 4.0.0-beta.2 → 4.0.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Array.d.ts +127 -299
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +102 -62
- package/dist/Array.js.map +1 -1
- package/dist/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +6 -5
- 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 +116 -30
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +82 -37
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +54 -247
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +36 -67
- package/dist/Chunk.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 +165 -9
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +62 -7
- 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 +829 -692
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +263 -251
- 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/ErrorReporter.d.ts +376 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +246 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/Fiber.d.ts +2 -2
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.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 -34
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -13
- 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 +5 -8
- package/dist/Graph.js.map +1 -1
- package/dist/HashMap.d.ts +15 -14
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +4 -4
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +40 -39
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +94 -22
- package/dist/Iterable.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/Layer.d.ts +9 -9
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LogLevel.d.ts +32 -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 +29 -95
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +2 -3
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +1 -1
- package/dist/ManagedRuntime.js +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/Option.d.ts +22 -15
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +14 -7
- package/dist/Option.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/Pull.d.ts.map +1 -1
- package/dist/Pull.js +1 -1
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +0 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +35 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +46 -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/Record.d.ts +24 -120
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +21 -41
- package/dist/Record.js.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/References.d.ts +3 -3
- package/dist/References.d.ts.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +6 -26
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/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 +47 -20
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +94 -34
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +266 -50
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +426 -74
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +7 -6
- package/dist/SchemaAST.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/SchemaParser.d.ts +5 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +10 -0
- package/dist/SchemaParser.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 +107 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +159 -4
- 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/ServiceMap.d.ts +39 -30
- package/dist/ServiceMap.d.ts.map +1 -1
- package/dist/ServiceMap.js +3 -3
- package/dist/ServiceMap.js.map +1 -1
- package/dist/Sink.d.ts +13 -13
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +53 -6
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -423
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +124 -77
- 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/Trie.d.ts +18 -17
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +5 -5
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +37 -37
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +3 -3
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +328 -0
- package/dist/TxDeferred.d.ts.map +1 -0
- package/dist/TxDeferred.js +196 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +84 -83
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +24 -24
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +35 -35
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +14 -14
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +609 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -0
- package/dist/TxPriorityQueue.js +415 -0
- package/dist/TxPriorityQueue.js.map +1 -0
- package/dist/TxPubSub.d.ts +585 -0
- package/dist/TxPubSub.d.ts.map +1 -0
- package/dist/TxPubSub.js +521 -0
- package/dist/TxPubSub.js.map +1 -0
- package/dist/TxQueue.d.ts +32 -32
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +26 -26
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +523 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +504 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +34 -34
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +21 -14
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +8 -8
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +7 -7
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +508 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -0
- package/dist/TxSubscriptionRef.js +293 -0
- package/dist/TxSubscriptionRef.js.map +1 -0
- package/dist/Types.d.ts +84 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +591 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +591 -20
- 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 +263 -99
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +5 -4
- package/dist/internal/hashMap.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/internal/request.js +2 -2
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/schema.js +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/trie.js +5 -4
- package/dist/internal/trie.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 +8 -8
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +128 -48
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +11 -12
- package/dist/unstable/ai/AiError.js.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 +4 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +86 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +163 -87
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +49 -12
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- 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 +35 -7
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +25 -7
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +22 -6
- package/dist/unstable/ai/Model.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/ai/Tool.d.ts +19 -3
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +14 -9
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +1 -1
- package/dist/unstable/ai/index.js +1 -1
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cli/CliOutput.js +59 -6
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +276 -19
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +234 -36
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
- package/dist/unstable/cli/GlobalFlag.js +118 -0
- package/dist/unstable/cli/GlobalFlag.js.map +1 -0
- package/dist/unstable/cli/HelpDoc.d.ts +70 -2
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/index.d.ts +4 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +4 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +17 -8
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +32 -23
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +33 -0
- package/dist/unstable/cli/internal/help.d.ts.map +1 -0
- package/dist/unstable/cli/internal/help.js +107 -0
- package/dist/unstable/cli/internal/help.js.map +1 -0
- package/dist/unstable/cli/internal/parser.js +29 -36
- package/dist/unstable/cli/internal/parser.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 +4 -3
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +7 -6
- 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 +4 -4
- 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 +9 -7
- 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 +20 -20
- 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 +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/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +27 -10
- package/dist/unstable/http/Headers.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 +37 -13
- 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 +3 -8
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +42 -56
- 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 +8 -17
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +20 -33
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +37 -44
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +5 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +3 -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/http/internal/preResponseHandler.d.ts +2 -0
- package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js +10 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
- package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
- package/dist/unstable/httpapi/HttpApiClient.d.ts.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 +31 -44
- 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/HttpApiError.d.ts +11 -0
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +29 -9
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.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/HttpApiSecurity.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +32 -21
- 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/OtlpLogger.js +7 -4
- package/dist/unstable/observability/OtlpLogger.js.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 +5 -128
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +1 -65
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +21 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +10 -10
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +16 -13
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
- 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/AtomRegistry.d.ts +6 -0
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +24 -7
- package/dist/unstable/reactivity/AtomRegistry.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 +4 -4
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js.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/RpcGroup.d.ts +2 -2
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +14 -0
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +34 -9
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +0 -7
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +15 -15
- 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 +1 -1
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +3 -3
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +3 -3
- 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 +6 -5
- 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/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +14 -14
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +9 -3
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +16 -5
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +3 -3
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +1 -1
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +137 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Array.ts +190 -342
- package/src/Cache.ts +9 -8
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +554 -138
- package/src/Chunk.ts +81 -268
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +183 -21
- package/src/Data.ts +538 -374
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +991 -800
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/ErrorReporter.ts +459 -0
- package/src/Fiber.ts +9 -2
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -58
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +24 -11
- package/src/HashMap.ts +15 -14
- package/src/Iterable.ts +105 -50
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/Layer.ts +11 -15
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +33 -100
- package/src/ManagedRuntime.ts +1 -1
- package/src/Metric.ts +4 -4
- package/src/Optic.ts +948 -19
- package/src/Option.ts +30 -20
- 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/Pull.ts +1 -1
- package/src/Queue.ts +0 -1
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +43 -152
- package/src/Reducer.ts +166 -7
- package/src/References.ts +4 -4
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Result.ts +13 -0
- package/src/Schedule.ts +318 -160
- package/src/Schema.ts +661 -116
- package/src/SchemaAST.ts +7 -6
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaParser.ts +11 -0
- package/src/SchemaRepresentation.ts +43 -24
- package/src/SchemaTransformation.ts +189 -4
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/ServiceMap.ts +47 -38
- package/src/Sink.ts +78 -26
- package/src/Stream.ts +566 -601
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Trie.ts +18 -17
- package/src/TxChunk.ts +72 -53
- package/src/TxDeferred.ts +394 -0
- package/src/TxHashMap.ts +332 -285
- package/src/TxHashSet.ts +111 -116
- package/src/TxPriorityQueue.ts +767 -0
- package/src/TxPubSub.ts +789 -0
- package/src/TxQueue.ts +241 -251
- package/src/TxReentrantLock.ts +753 -0
- package/src/TxRef.ts +50 -38
- package/src/TxSemaphore.ts +29 -32
- package/src/TxSubscriptionRef.ts +639 -0
- package/src/Types.ts +78 -2
- package/src/index.ts +600 -21
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +744 -265
- package/src/internal/hashMap.ts +9 -7
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/internal/request.ts +2 -2
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/schema.ts +1 -0
- package/src/internal/trie.ts +16 -9
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +10 -10
- package/src/unstable/ai/AiError.ts +97 -44
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +129 -25
- package/src/unstable/ai/McpSchema.ts +59 -13
- package/src/unstable/ai/McpServer.ts +48 -9
- package/src/unstable/ai/Model.ts +40 -9
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/ai/Tool.ts +19 -13
- package/src/unstable/ai/index.ts +1 -1
- package/src/unstable/cli/CliOutput.ts +75 -6
- package/src/unstable/cli/Command.ts +501 -60
- package/src/unstable/cli/GlobalFlag.ts +243 -0
- package/src/unstable/cli/HelpDoc.ts +80 -2
- package/src/unstable/cli/index.ts +5 -0
- package/src/unstable/cli/internal/command.ts +50 -34
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
- package/src/unstable/cli/internal/help.ts +146 -0
- package/src/unstable/cli/internal/parser.ts +33 -54
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
- package/src/unstable/cluster/Entity.ts +11 -10
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +5 -5
- package/src/unstable/cluster/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +12 -10
- package/src/unstable/cluster/ShardingConfig.ts +30 -31
- 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 +3 -5
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/Headers.ts +28 -13
- package/src/unstable/http/HttpBody.ts +42 -1
- package/src/unstable/http/HttpClient.ts +58 -23
- package/src/unstable/http/HttpClientRequest.ts +38 -13
- package/src/unstable/http/HttpEffect.ts +46 -68
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +9 -24
- package/src/unstable/http/HttpServerError.ts +42 -45
- package/src/unstable/http/HttpServerRequest.ts +1 -1
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +4 -2
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +20 -5
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +5 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
- package/src/unstable/httpapi/HttpApiClient.ts +14 -6
- package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
- package/src/unstable/httpapi/HttpApiError.ts +30 -9
- package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
- package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
- package/src/unstable/httpapi/OpenApi.ts +41 -23
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- 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 +6 -208
- package/src/unstable/process/ChildProcessSpawner.ts +75 -14
- package/src/unstable/reactivity/Atom.ts +27 -25
- package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
- package/src/unstable/reactivity/AtomRegistry.ts +31 -7
- 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 +6 -6
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcGroup.ts +4 -4
- package/src/unstable/rpc/RpcMiddleware.ts +3 -3
- package/src/unstable/rpc/RpcSchema.ts +17 -0
- package/src/unstable/rpc/RpcSerialization.ts +44 -9
- package/src/unstable/rpc/RpcServer.ts +21 -30
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/schema/VariantSchema.ts +6 -6
- package/src/unstable/socket/Socket.ts +16 -17
- package/src/unstable/sql/SqlClient.ts +1 -1
- package/src/unstable/sql/SqlError.ts +11 -9
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlSchema.ts +41 -25
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/Workflow.ts +6 -2
- package/src/unstable/workflow/WorkflowEngine.ts +185 -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/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
- package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.js +0 -44
- package/dist/unstable/cli/internal/builtInFlags.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/unstable/cli/internal/builtInFlags.ts +0 -78
package/src/TxHashMap.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import * as Effect from "./Effect.ts"
|
|
6
|
+
import type * as Filter from "./Filter.ts"
|
|
6
7
|
import { format } from "./Formatter.ts"
|
|
7
8
|
import { dual } from "./Function.ts"
|
|
8
9
|
import * as HashMap from "./HashMap.ts"
|
|
@@ -53,7 +54,7 @@ const TxHashMapProto = {
|
|
|
53
54
|
* console.log(user) // Option.some("Alice")
|
|
54
55
|
*
|
|
55
56
|
* // Multi-step atomic operations
|
|
56
|
-
* yield* Effect.
|
|
57
|
+
* yield* Effect.transaction(
|
|
57
58
|
* Effect.gen(function*() {
|
|
58
59
|
* const currentUser = yield* TxHashMap.get(txMap, "user1")
|
|
59
60
|
* if (Option.isSome(currentUser)) {
|
|
@@ -236,7 +237,7 @@ export declare namespace TxHashMap {
|
|
|
236
237
|
* @since 2.0.0
|
|
237
238
|
* @category constructors
|
|
238
239
|
*/
|
|
239
|
-
export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V
|
|
240
|
+
export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
240
241
|
Effect.gen(function*() {
|
|
241
242
|
const ref = yield* TxRef.make(HashMap.empty<K, V>())
|
|
242
243
|
return Object.assign(Object.create(TxHashMapProto), { ref })
|
|
@@ -273,7 +274,9 @@ export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>> =>
|
|
|
273
274
|
* @since 2.0.0
|
|
274
275
|
* @category constructors
|
|
275
276
|
*/
|
|
276
|
-
export const make = <K, V>(
|
|
277
|
+
export const make = <K, V>(
|
|
278
|
+
...entries: Array<readonly [K, V]>
|
|
279
|
+
): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
277
280
|
Effect.gen(function*() {
|
|
278
281
|
const hashMap = HashMap.make(...entries)
|
|
279
282
|
const ref = yield* TxRef.make(hashMap)
|
|
@@ -314,7 +317,9 @@ export const make = <K, V>(...entries: Array<readonly [K, V]>): Effect.Effect<Tx
|
|
|
314
317
|
* @since 2.0.0
|
|
315
318
|
* @category constructors
|
|
316
319
|
*/
|
|
317
|
-
export const fromIterable = <K, V>(
|
|
320
|
+
export const fromIterable = <K, V>(
|
|
321
|
+
entries: Iterable<readonly [K, V]>
|
|
322
|
+
): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
318
323
|
Effect.gen(function*() {
|
|
319
324
|
const hashMap = HashMap.fromIterable(entries)
|
|
320
325
|
const ref = yield* TxRef.make(hashMap)
|
|
@@ -384,7 +389,7 @@ export const get: {
|
|
|
384
389
|
* @since 2.0.0
|
|
385
390
|
* @category combinators
|
|
386
391
|
*/
|
|
387
|
-
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V
|
|
392
|
+
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
388
393
|
/**
|
|
389
394
|
* Safely lookup the value for the specified key in the TxHashMap.
|
|
390
395
|
*
|
|
@@ -416,10 +421,10 @@ export const get: {
|
|
|
416
421
|
* @since 2.0.0
|
|
417
422
|
* @category combinators
|
|
418
423
|
*/
|
|
419
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V
|
|
424
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
420
425
|
} = dual(
|
|
421
426
|
2,
|
|
422
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V
|
|
427
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
|
|
423
428
|
Effect.gen(function*() {
|
|
424
429
|
const map = yield* TxRef.get(self.ref)
|
|
425
430
|
return HashMap.get(map, key)
|
|
@@ -495,7 +500,7 @@ export const set: {
|
|
|
495
500
|
* @since 2.0.0
|
|
496
501
|
* @category combinators
|
|
497
502
|
*/
|
|
498
|
-
<K, V>(key: K, value: V): (self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
503
|
+
<K, V>(key: K, value: V): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
499
504
|
/**
|
|
500
505
|
* Sets the value for the specified key in the TxHashMap.
|
|
501
506
|
*
|
|
@@ -530,10 +535,10 @@ export const set: {
|
|
|
530
535
|
* @since 2.0.0
|
|
531
536
|
* @category combinators
|
|
532
537
|
*/
|
|
533
|
-
<K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void>
|
|
538
|
+
<K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void, never, Effect.Transaction>
|
|
534
539
|
} = dual(
|
|
535
540
|
3,
|
|
536
|
-
<K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void> =>
|
|
541
|
+
<K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void, never, Effect.Transaction> =>
|
|
537
542
|
TxRef.update(self.ref, (map) => HashMap.set(map, key, value))
|
|
538
543
|
)
|
|
539
544
|
|
|
@@ -598,7 +603,7 @@ export const has: {
|
|
|
598
603
|
* @since 2.0.0
|
|
599
604
|
* @category combinators
|
|
600
605
|
*/
|
|
601
|
-
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
606
|
+
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
602
607
|
/**
|
|
603
608
|
* Checks if the specified key exists in the TxHashMap.
|
|
604
609
|
*
|
|
@@ -629,10 +634,10 @@ export const has: {
|
|
|
629
634
|
* @since 2.0.0
|
|
630
635
|
* @category combinators
|
|
631
636
|
*/
|
|
632
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean>
|
|
637
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction>
|
|
633
638
|
} = dual(
|
|
634
639
|
2,
|
|
635
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean> =>
|
|
640
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
636
641
|
Effect.gen(function*() {
|
|
637
642
|
const map = yield* TxRef.get(self.ref)
|
|
638
643
|
return HashMap.has(map, key)
|
|
@@ -714,7 +719,7 @@ export const remove: {
|
|
|
714
719
|
* @since 2.0.0
|
|
715
720
|
* @category combinators
|
|
716
721
|
*/
|
|
717
|
-
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
722
|
+
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
718
723
|
/**
|
|
719
724
|
* Removes the specified key from the TxHashMap.
|
|
720
725
|
*
|
|
@@ -752,20 +757,18 @@ export const remove: {
|
|
|
752
757
|
* @since 2.0.0
|
|
753
758
|
* @category combinators
|
|
754
759
|
*/
|
|
755
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean>
|
|
760
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction>
|
|
756
761
|
} = dual(
|
|
757
762
|
2,
|
|
758
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean> =>
|
|
759
|
-
Effect.
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
})
|
|
768
|
-
)
|
|
763
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
764
|
+
Effect.gen(function*() {
|
|
765
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
766
|
+
const existed = HashMap.has(currentMap, key)
|
|
767
|
+
if (existed) {
|
|
768
|
+
yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
|
|
769
|
+
}
|
|
770
|
+
return existed
|
|
771
|
+
})
|
|
769
772
|
)
|
|
770
773
|
|
|
771
774
|
/**
|
|
@@ -804,7 +807,8 @@ export const remove: {
|
|
|
804
807
|
* @since 2.0.0
|
|
805
808
|
* @category combinators
|
|
806
809
|
*/
|
|
807
|
-
export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void
|
|
810
|
+
export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void, never, Effect.Transaction> =>
|
|
811
|
+
TxRef.set(self.ref, HashMap.empty<K, V>())
|
|
808
812
|
|
|
809
813
|
/**
|
|
810
814
|
* Returns the number of entries in the TxHashMap.
|
|
@@ -838,7 +842,7 @@ export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void> => TxRef
|
|
|
838
842
|
* @since 2.0.0
|
|
839
843
|
* @category combinators
|
|
840
844
|
*/
|
|
841
|
-
export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number> =>
|
|
845
|
+
export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number, never, Effect.Transaction> =>
|
|
842
846
|
Effect.gen(function*() {
|
|
843
847
|
const map = yield* TxRef.get(self.ref)
|
|
844
848
|
return HashMap.size(map)
|
|
@@ -872,7 +876,7 @@ export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number> =>
|
|
|
872
876
|
* @since 2.0.0
|
|
873
877
|
* @category combinators
|
|
874
878
|
*/
|
|
875
|
-
export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
|
|
879
|
+
export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
876
880
|
Effect.gen(function*() {
|
|
877
881
|
const map = yield* TxRef.get(self.ref)
|
|
878
882
|
return HashMap.isEmpty(map)
|
|
@@ -901,7 +905,7 @@ export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
|
|
|
901
905
|
* @since 2.0.0
|
|
902
906
|
* @category combinators
|
|
903
907
|
*/
|
|
904
|
-
export const isNonEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
|
|
908
|
+
export const isNonEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
905
909
|
Effect.map(isEmpty(self), (empty) => !empty)
|
|
906
910
|
|
|
907
911
|
/**
|
|
@@ -991,7 +995,7 @@ export const modify: {
|
|
|
991
995
|
* @since 2.0.0
|
|
992
996
|
* @category combinators
|
|
993
997
|
*/
|
|
994
|
-
<K, V>(key: K, f: (value: V) => V): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V
|
|
998
|
+
<K, V>(key: K, f: (value: V) => V): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
995
999
|
/**
|
|
996
1000
|
* Updates the value for the specified key if it exists.
|
|
997
1001
|
*
|
|
@@ -1035,22 +1039,24 @@ export const modify: {
|
|
|
1035
1039
|
* @since 2.0.0
|
|
1036
1040
|
* @category combinators
|
|
1037
1041
|
*/
|
|
1038
|
-
<K, V>(self: TxHashMap<K, V>, key: K, f: (value: V) => V): Effect.Effect<Option.Option<V
|
|
1042
|
+
<K, V>(self: TxHashMap<K, V>, key: K, f: (value: V) => V): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
1039
1043
|
} = dual(
|
|
1040
1044
|
3,
|
|
1041
|
-
<K, V>(
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1045
|
+
<K, V>(
|
|
1046
|
+
self: TxHashMap<K, V>,
|
|
1047
|
+
key: K,
|
|
1048
|
+
f: (value: V) => V
|
|
1049
|
+
): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
|
|
1050
|
+
Effect.gen(function*() {
|
|
1051
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
1052
|
+
const currentValue = HashMap.get(currentMap, key)
|
|
1053
|
+
if (Option.isSome(currentValue)) {
|
|
1054
|
+
const newValue = f(currentValue.value)
|
|
1055
|
+
yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue))
|
|
1056
|
+
return currentValue
|
|
1057
|
+
}
|
|
1058
|
+
return Option.none()
|
|
1059
|
+
})
|
|
1054
1060
|
)
|
|
1055
1061
|
|
|
1056
1062
|
/**
|
|
@@ -1140,7 +1146,7 @@ export const modifyAt: {
|
|
|
1140
1146
|
* @since 2.0.0
|
|
1141
1147
|
* @category combinators
|
|
1142
1148
|
*/
|
|
1143
|
-
<K, V>(key: K, f: (value: Option.Option<V>) => Option.Option<V>): (self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
1149
|
+
<K, V>(key: K, f: (value: Option.Option<V>) => Option.Option<V>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
1144
1150
|
/**
|
|
1145
1151
|
* Updates the value for the specified key using an Option-based update function.
|
|
1146
1152
|
*
|
|
@@ -1188,23 +1194,25 @@ export const modifyAt: {
|
|
|
1188
1194
|
self: TxHashMap<K, V>,
|
|
1189
1195
|
key: K,
|
|
1190
1196
|
f: (value: Option.Option<V>) => Option.Option<V>
|
|
1191
|
-
): Effect.Effect<void>
|
|
1197
|
+
): Effect.Effect<void, never, Effect.Transaction>
|
|
1192
1198
|
} = dual(
|
|
1193
1199
|
3,
|
|
1194
|
-
<K, V>(
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
+
<K, V>(
|
|
1201
|
+
self: TxHashMap<K, V>,
|
|
1202
|
+
key: K,
|
|
1203
|
+
f: (value: Option.Option<V>) => Option.Option<V>
|
|
1204
|
+
): Effect.Effect<void, never, Effect.Transaction> =>
|
|
1205
|
+
Effect.gen(function*() {
|
|
1206
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
1207
|
+
const currentValue = HashMap.get(currentMap, key)
|
|
1208
|
+
const newValue = f(currentValue)
|
|
1200
1209
|
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
)
|
|
1210
|
+
if (Option.isSome(newValue)) {
|
|
1211
|
+
yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue.value))
|
|
1212
|
+
} else if (Option.isSome(currentValue)) {
|
|
1213
|
+
yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
|
|
1214
|
+
}
|
|
1215
|
+
})
|
|
1208
1216
|
)
|
|
1209
1217
|
|
|
1210
1218
|
/**
|
|
@@ -1237,7 +1245,7 @@ export const modifyAt: {
|
|
|
1237
1245
|
* @since 2.0.0
|
|
1238
1246
|
* @category combinators
|
|
1239
1247
|
*/
|
|
1240
|
-
export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K
|
|
1248
|
+
export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>, never, Effect.Transaction> =>
|
|
1241
1249
|
Effect.gen(function*() {
|
|
1242
1250
|
const map = yield* TxRef.get(self.ref)
|
|
1243
1251
|
return Array.from(HashMap.keys(map))
|
|
@@ -1274,7 +1282,7 @@ export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>> =>
|
|
|
1274
1282
|
* @since 2.0.0
|
|
1275
1283
|
* @category combinators
|
|
1276
1284
|
*/
|
|
1277
|
-
export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V
|
|
1285
|
+
export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>, never, Effect.Transaction> =>
|
|
1278
1286
|
Effect.gen(function*() {
|
|
1279
1287
|
const map = yield* TxRef.get(self.ref)
|
|
1280
1288
|
return HashMap.toValues(map)
|
|
@@ -1311,7 +1319,9 @@ export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>> =>
|
|
|
1311
1319
|
* @since 2.0.0
|
|
1312
1320
|
* @category combinators
|
|
1313
1321
|
*/
|
|
1314
|
-
export const entries = <K, V>(
|
|
1322
|
+
export const entries = <K, V>(
|
|
1323
|
+
self: TxHashMap<K, V>
|
|
1324
|
+
): Effect.Effect<Array<readonly [K, V]>, never, Effect.Transaction> =>
|
|
1315
1325
|
Effect.gen(function*() {
|
|
1316
1326
|
const map = yield* TxRef.get(self.ref)
|
|
1317
1327
|
return HashMap.toEntries(map)
|
|
@@ -1351,7 +1361,9 @@ export const entries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<readon
|
|
|
1351
1361
|
* @since 2.0.0
|
|
1352
1362
|
* @category combinators
|
|
1353
1363
|
*/
|
|
1354
|
-
export const snapshot = <K, V>(
|
|
1364
|
+
export const snapshot = <K, V>(
|
|
1365
|
+
self: TxHashMap<K, V>
|
|
1366
|
+
): Effect.Effect<HashMap.HashMap<K, V>, never, Effect.Transaction> => TxRef.get(self.ref)
|
|
1355
1367
|
|
|
1356
1368
|
/**
|
|
1357
1369
|
* Merges another HashMap into this TxHashMap. If both maps contain the same key,
|
|
@@ -1448,7 +1460,7 @@ export const union: {
|
|
|
1448
1460
|
* @since 2.0.0
|
|
1449
1461
|
* @category combinators
|
|
1450
1462
|
*/
|
|
1451
|
-
<K1 extends K, K, V1 extends V, V>(other: HashMap.HashMap<K1, V1>): (self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
1463
|
+
<K1 extends K, K, V1 extends V, V>(other: HashMap.HashMap<K1, V1>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
1452
1464
|
/**
|
|
1453
1465
|
* Merges another HashMap into this TxHashMap. If both maps contain the same key,
|
|
1454
1466
|
* the value from the other map will be used.
|
|
@@ -1496,11 +1508,13 @@ export const union: {
|
|
|
1496
1508
|
* @since 2.0.0
|
|
1497
1509
|
* @category combinators
|
|
1498
1510
|
*/
|
|
1499
|
-
<K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, other: HashMap.HashMap<K1, V1>): Effect.Effect<void>
|
|
1511
|
+
<K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, other: HashMap.HashMap<K1, V1>): Effect.Effect<void, never, Effect.Transaction>
|
|
1500
1512
|
} = dual(
|
|
1501
1513
|
2,
|
|
1502
|
-
<K1 extends K, K, V1 extends V, V>(
|
|
1503
|
-
|
|
1514
|
+
<K1 extends K, K, V1 extends V, V>(
|
|
1515
|
+
self: TxHashMap<K, V>,
|
|
1516
|
+
other: HashMap.HashMap<K1, V1>
|
|
1517
|
+
): Effect.Effect<void, never, Effect.Transaction> => TxRef.update(self.ref, (map) => HashMap.union(map, other))
|
|
1504
1518
|
)
|
|
1505
1519
|
|
|
1506
1520
|
/**
|
|
@@ -1588,7 +1602,7 @@ export const removeMany: {
|
|
|
1588
1602
|
* @since 2.0.0
|
|
1589
1603
|
* @category combinators
|
|
1590
1604
|
*/
|
|
1591
|
-
<K1 extends K, K>(keys: Iterable<K1>): <V>(self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
1605
|
+
<K1 extends K, K>(keys: Iterable<K1>): <V>(self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
1592
1606
|
/**
|
|
1593
1607
|
* Removes multiple keys from the TxHashMap.
|
|
1594
1608
|
*
|
|
@@ -1631,10 +1645,10 @@ export const removeMany: {
|
|
|
1631
1645
|
* @since 2.0.0
|
|
1632
1646
|
* @category combinators
|
|
1633
1647
|
*/
|
|
1634
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void>
|
|
1648
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void, never, Effect.Transaction>
|
|
1635
1649
|
} = dual(
|
|
1636
1650
|
2,
|
|
1637
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void> =>
|
|
1651
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void, never, Effect.Transaction> =>
|
|
1638
1652
|
TxRef.update(self.ref, (map) => HashMap.removeMany(map, keys))
|
|
1639
1653
|
)
|
|
1640
1654
|
|
|
@@ -1753,7 +1767,7 @@ export const setMany: {
|
|
|
1753
1767
|
* @since 2.0.0
|
|
1754
1768
|
* @category combinators
|
|
1755
1769
|
*/
|
|
1756
|
-
<K1 extends K, K, V1 extends V, V>(entries: Iterable<readonly [K1, V1]>): (self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
1770
|
+
<K1 extends K, K, V1 extends V, V>(entries: Iterable<readonly [K1, V1]>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
1757
1771
|
/**
|
|
1758
1772
|
* Sets multiple key-value pairs in the TxHashMap.
|
|
1759
1773
|
*
|
|
@@ -1811,13 +1825,13 @@ export const setMany: {
|
|
|
1811
1825
|
* @since 2.0.0
|
|
1812
1826
|
* @category combinators
|
|
1813
1827
|
*/
|
|
1814
|
-
<K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, entries: Iterable<readonly [K1, V1]>): Effect.Effect<void>
|
|
1828
|
+
<K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, entries: Iterable<readonly [K1, V1]>): Effect.Effect<void, never, Effect.Transaction>
|
|
1815
1829
|
} = dual(
|
|
1816
1830
|
2,
|
|
1817
1831
|
<K1 extends K, K, V1 extends V, V>(
|
|
1818
1832
|
self: TxHashMap<K, V>,
|
|
1819
1833
|
entries: Iterable<readonly [K1, V1]>
|
|
1820
|
-
): Effect.Effect<void> => TxRef.update(self.ref, (map) => HashMap.setMany(map, entries))
|
|
1834
|
+
): Effect.Effect<void, never, Effect.Transaction> => TxRef.update(self.ref, (map) => HashMap.setMany(map, entries))
|
|
1821
1835
|
)
|
|
1822
1836
|
|
|
1823
1837
|
/**
|
|
@@ -1926,7 +1940,7 @@ export const getHash: {
|
|
|
1926
1940
|
* @since 2.0.0
|
|
1927
1941
|
* @category combinators
|
|
1928
1942
|
*/
|
|
1929
|
-
<K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V
|
|
1943
|
+
<K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
1930
1944
|
/**
|
|
1931
1945
|
* Lookup the value for the specified key in the TxHashMap using a custom hash.
|
|
1932
1946
|
* This can provide performance benefits when the hash is precomputed.
|
|
@@ -1963,10 +1977,14 @@ export const getHash: {
|
|
|
1963
1977
|
* @since 2.0.0
|
|
1964
1978
|
* @category combinators
|
|
1965
1979
|
*/
|
|
1966
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V
|
|
1980
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
1967
1981
|
} = dual(
|
|
1968
1982
|
3,
|
|
1969
|
-
<K1 extends K, K, V>(
|
|
1983
|
+
<K1 extends K, K, V>(
|
|
1984
|
+
self: TxHashMap<K, V>,
|
|
1985
|
+
key: K1,
|
|
1986
|
+
hash: number
|
|
1987
|
+
): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
|
|
1970
1988
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.getHash(map, key, hash)))
|
|
1971
1989
|
)
|
|
1972
1990
|
|
|
@@ -2061,7 +2079,7 @@ export const hasHash: {
|
|
|
2061
2079
|
* @since 2.0.0
|
|
2062
2080
|
* @category combinators
|
|
2063
2081
|
*/
|
|
2064
|
-
<K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
2082
|
+
<K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
2065
2083
|
/**
|
|
2066
2084
|
* Checks if the specified key has an entry in the TxHashMap using a custom hash.
|
|
2067
2085
|
* This can provide performance benefits when the hash is precomputed.
|
|
@@ -2107,10 +2125,14 @@ export const hasHash: {
|
|
|
2107
2125
|
* @since 2.0.0
|
|
2108
2126
|
* @category combinators
|
|
2109
2127
|
*/
|
|
2110
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean>
|
|
2128
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean, never, Effect.Transaction>
|
|
2111
2129
|
} = dual(
|
|
2112
2130
|
3,
|
|
2113
|
-
<K1 extends K, K, V>(
|
|
2131
|
+
<K1 extends K, K, V>(
|
|
2132
|
+
self: TxHashMap<K, V>,
|
|
2133
|
+
key: K1,
|
|
2134
|
+
hash: number
|
|
2135
|
+
): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
2114
2136
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.hasHash(map, key, hash)))
|
|
2115
2137
|
)
|
|
2116
2138
|
|
|
@@ -2205,7 +2227,7 @@ export const map: {
|
|
|
2205
2227
|
* @since 2.0.0
|
|
2206
2228
|
* @category combinators
|
|
2207
2229
|
*/
|
|
2208
|
-
<A, V, K>(f: (value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A
|
|
2230
|
+
<A, V, K>(f: (value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
2209
2231
|
/**
|
|
2210
2232
|
* Transforms all values in the TxHashMap using the provided function, preserving keys.
|
|
2211
2233
|
*
|
|
@@ -2251,17 +2273,18 @@ export const map: {
|
|
|
2251
2273
|
* @since 2.0.0
|
|
2252
2274
|
* @category combinators
|
|
2253
2275
|
*/
|
|
2254
|
-
<K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => A): Effect.Effect<TxHashMap<K, A
|
|
2276
|
+
<K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => A): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
2255
2277
|
} = dual(
|
|
2256
2278
|
2,
|
|
2257
|
-
<K, V, A>(
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2279
|
+
<K, V, A>(
|
|
2280
|
+
self: TxHashMap<K, V>,
|
|
2281
|
+
f: (value: V, key: K) => A
|
|
2282
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
|
|
2283
|
+
Effect.gen(function*() {
|
|
2284
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
2285
|
+
const mappedMap = HashMap.map(currentMap, f)
|
|
2286
|
+
return yield* fromHashMap(mappedMap)
|
|
2287
|
+
})
|
|
2265
2288
|
)
|
|
2266
2289
|
|
|
2267
2290
|
/**
|
|
@@ -2361,7 +2384,7 @@ export const filter: {
|
|
|
2361
2384
|
* @since 2.0.0
|
|
2362
2385
|
* @category combinators
|
|
2363
2386
|
*/
|
|
2364
|
-
<K, V, B extends V>(predicate: (value: V, key: K) => value is B): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, B
|
|
2387
|
+
<K, V, B extends V>(predicate: (value: V, key: K) => value is B): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, B>, never, Effect.Transaction>
|
|
2365
2388
|
/**
|
|
2366
2389
|
* Filters the TxHashMap to keep only entries that satisfy the provided predicate.
|
|
2367
2390
|
*
|
|
@@ -2410,7 +2433,7 @@ export const filter: {
|
|
|
2410
2433
|
* @since 2.0.0
|
|
2411
2434
|
* @category combinators
|
|
2412
2435
|
*/
|
|
2413
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, V
|
|
2436
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction>
|
|
2414
2437
|
/**
|
|
2415
2438
|
* Filters the TxHashMap to keep only entries that satisfy the provided predicate.
|
|
2416
2439
|
*
|
|
@@ -2459,7 +2482,7 @@ export const filter: {
|
|
|
2459
2482
|
* @since 2.0.0
|
|
2460
2483
|
* @category combinators
|
|
2461
2484
|
*/
|
|
2462
|
-
<K, V, B extends V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => value is B): Effect.Effect<TxHashMap<K, B
|
|
2485
|
+
<K, V, B extends V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => value is B): Effect.Effect<TxHashMap<K, B>, never, Effect.Transaction>
|
|
2463
2486
|
/**
|
|
2464
2487
|
* Filters the TxHashMap to keep only entries that satisfy the provided predicate.
|
|
2465
2488
|
*
|
|
@@ -2508,17 +2531,18 @@ export const filter: {
|
|
|
2508
2531
|
* @since 2.0.0
|
|
2509
2532
|
* @category combinators
|
|
2510
2533
|
*/
|
|
2511
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<TxHashMap<K, V
|
|
2534
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction>
|
|
2512
2535
|
} = dual(
|
|
2513
2536
|
2,
|
|
2514
|
-
<K, V>(
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2537
|
+
<K, V>(
|
|
2538
|
+
self: TxHashMap<K, V>,
|
|
2539
|
+
predicate: (value: V, key: K) => boolean
|
|
2540
|
+
): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
2541
|
+
Effect.gen(function*() {
|
|
2542
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
2543
|
+
const filteredMap = HashMap.filter(currentMap, predicate)
|
|
2544
|
+
return yield* fromHashMap(filteredMap)
|
|
2545
|
+
})
|
|
2522
2546
|
)
|
|
2523
2547
|
|
|
2524
2548
|
/**
|
|
@@ -2630,7 +2654,7 @@ export const reduce: {
|
|
|
2630
2654
|
* @since 2.0.0
|
|
2631
2655
|
* @category combinators
|
|
2632
2656
|
*/
|
|
2633
|
-
<A, V, K>(zero: A, f: (accumulator: A, value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<A>
|
|
2657
|
+
<A, V, K>(zero: A, f: (accumulator: A, value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<A, never, Effect.Transaction>
|
|
2634
2658
|
/**
|
|
2635
2659
|
* Reduces the TxHashMap entries to a single value by applying a reducer function.
|
|
2636
2660
|
* Iterates over all key-value pairs and accumulates them into a final result.
|
|
@@ -2685,23 +2709,27 @@ export const reduce: {
|
|
|
2685
2709
|
* @since 2.0.0
|
|
2686
2710
|
* @category combinators
|
|
2687
2711
|
*/
|
|
2688
|
-
<K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A>
|
|
2712
|
+
<K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A, never, Effect.Transaction>
|
|
2689
2713
|
} = dual(
|
|
2690
2714
|
3,
|
|
2691
|
-
<K, V, A>(
|
|
2715
|
+
<K, V, A>(
|
|
2716
|
+
self: TxHashMap<K, V>,
|
|
2717
|
+
zero: A,
|
|
2718
|
+
f: (accumulator: A, value: V, key: K) => A
|
|
2719
|
+
): Effect.Effect<A, never, Effect.Transaction> =>
|
|
2692
2720
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.reduce(map, zero, f)))
|
|
2693
2721
|
)
|
|
2694
2722
|
|
|
2695
2723
|
/**
|
|
2696
|
-
* Combines filtering and mapping in a single operation. Applies a
|
|
2697
|
-
*
|
|
2724
|
+
* Combines filtering and mapping in a single operation. Applies a filter to each
|
|
2725
|
+
* entry, keeping only successful results and transforming them.
|
|
2698
2726
|
*
|
|
2699
2727
|
* **Return behavior**: This function returns a new TxHashMap reference containing
|
|
2700
|
-
* only the transformed entries that
|
|
2728
|
+
* only the transformed entries that succeeded. The original TxHashMap is not modified.
|
|
2701
2729
|
*
|
|
2702
2730
|
* @example
|
|
2703
2731
|
* ```ts
|
|
2704
|
-
* import { Effect, Option, TxHashMap } from "effect"
|
|
2732
|
+
* import { Effect, Option, Result, TxHashMap } from "effect"
|
|
2705
2733
|
*
|
|
2706
2734
|
* const program = Effect.gen(function*() {
|
|
2707
2735
|
* // Create a mixed data map
|
|
@@ -2716,10 +2744,10 @@ export const reduce: {
|
|
|
2716
2744
|
* const activeAdminAges = yield* TxHashMap.filterMap(
|
|
2717
2745
|
* userData,
|
|
2718
2746
|
* (user, username) => {
|
|
2719
|
-
* if (!user.active || user.role !== "admin") return
|
|
2747
|
+
* if (!user.active || user.role !== "admin") return Result.failVoid
|
|
2720
2748
|
* const age = parseInt(user.age)
|
|
2721
|
-
* if (isNaN(age)) return
|
|
2722
|
-
* return
|
|
2749
|
+
* if (isNaN(age)) return Result.failVoid
|
|
2750
|
+
* return Result.succeed({
|
|
2723
2751
|
* username,
|
|
2724
2752
|
* age,
|
|
2725
2753
|
* seniority: age > 27 ? "senior" : "junior"
|
|
@@ -2737,7 +2765,7 @@ export const reduce: {
|
|
|
2737
2765
|
* const validAges = yield* userData.pipe(
|
|
2738
2766
|
* TxHashMap.filterMap((user) => {
|
|
2739
2767
|
* const age = parseInt(user.age)
|
|
2740
|
-
* return isNaN(age) ?
|
|
2768
|
+
* return isNaN(age) ? Result.failVoid : Result.succeed(age)
|
|
2741
2769
|
* })
|
|
2742
2770
|
* )
|
|
2743
2771
|
*
|
|
@@ -2751,15 +2779,15 @@ export const reduce: {
|
|
|
2751
2779
|
*/
|
|
2752
2780
|
export const filterMap: {
|
|
2753
2781
|
/**
|
|
2754
|
-
* Combines filtering and mapping in a single operation. Applies a
|
|
2755
|
-
*
|
|
2782
|
+
* Combines filtering and mapping in a single operation. Applies a filter to each
|
|
2783
|
+
* entry, keeping only successful results and transforming them.
|
|
2756
2784
|
*
|
|
2757
2785
|
* **Return behavior**: This function returns a new TxHashMap reference containing
|
|
2758
|
-
* only the transformed entries that
|
|
2786
|
+
* only the transformed entries that succeeded. The original TxHashMap is not modified.
|
|
2759
2787
|
*
|
|
2760
2788
|
* @example
|
|
2761
2789
|
* ```ts
|
|
2762
|
-
* import { Effect, Option, TxHashMap } from "effect"
|
|
2790
|
+
* import { Effect, Option, Result, TxHashMap } from "effect"
|
|
2763
2791
|
*
|
|
2764
2792
|
* const program = Effect.gen(function*() {
|
|
2765
2793
|
* // Create a mixed data map
|
|
@@ -2774,10 +2802,10 @@ export const filterMap: {
|
|
|
2774
2802
|
* const activeAdminAges = yield* TxHashMap.filterMap(
|
|
2775
2803
|
* userData,
|
|
2776
2804
|
* (user, username) => {
|
|
2777
|
-
* if (!user.active || user.role !== "admin") return
|
|
2805
|
+
* if (!user.active || user.role !== "admin") return Result.failVoid
|
|
2778
2806
|
* const age = parseInt(user.age)
|
|
2779
|
-
* if (isNaN(age)) return
|
|
2780
|
-
* return
|
|
2807
|
+
* if (isNaN(age)) return Result.failVoid
|
|
2808
|
+
* return Result.succeed({
|
|
2781
2809
|
* username,
|
|
2782
2810
|
* age,
|
|
2783
2811
|
* seniority: age > 27 ? "senior" : "junior"
|
|
@@ -2795,7 +2823,7 @@ export const filterMap: {
|
|
|
2795
2823
|
* const validAges = yield* userData.pipe(
|
|
2796
2824
|
* TxHashMap.filterMap((user) => {
|
|
2797
2825
|
* const age = parseInt(user.age)
|
|
2798
|
-
* return isNaN(age) ?
|
|
2826
|
+
* return isNaN(age) ? Result.failVoid : Result.succeed(age)
|
|
2799
2827
|
* })
|
|
2800
2828
|
* )
|
|
2801
2829
|
*
|
|
@@ -2807,17 +2835,17 @@ export const filterMap: {
|
|
|
2807
2835
|
* @since 2.0.0
|
|
2808
2836
|
* @category combinators
|
|
2809
2837
|
*/
|
|
2810
|
-
<
|
|
2838
|
+
<V, K, A, X>(f: Filter.Filter<V, A, X, [key: K]>): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
2811
2839
|
/**
|
|
2812
|
-
* Combines filtering and mapping in a single operation. Applies a
|
|
2813
|
-
*
|
|
2840
|
+
* Combines filtering and mapping in a single operation. Applies a filter to each
|
|
2841
|
+
* entry, keeping only successful results and transforming them.
|
|
2814
2842
|
*
|
|
2815
2843
|
* **Return behavior**: This function returns a new TxHashMap reference containing
|
|
2816
|
-
* only the transformed entries that
|
|
2844
|
+
* only the transformed entries that succeeded. The original TxHashMap is not modified.
|
|
2817
2845
|
*
|
|
2818
2846
|
* @example
|
|
2819
2847
|
* ```ts
|
|
2820
|
-
* import { Effect, Option, TxHashMap } from "effect"
|
|
2848
|
+
* import { Effect, Option, Result, TxHashMap } from "effect"
|
|
2821
2849
|
*
|
|
2822
2850
|
* const program = Effect.gen(function*() {
|
|
2823
2851
|
* // Create a mixed data map
|
|
@@ -2832,10 +2860,10 @@ export const filterMap: {
|
|
|
2832
2860
|
* const activeAdminAges = yield* TxHashMap.filterMap(
|
|
2833
2861
|
* userData,
|
|
2834
2862
|
* (user, username) => {
|
|
2835
|
-
* if (!user.active || user.role !== "admin") return
|
|
2863
|
+
* if (!user.active || user.role !== "admin") return Result.failVoid
|
|
2836
2864
|
* const age = parseInt(user.age)
|
|
2837
|
-
* if (isNaN(age)) return
|
|
2838
|
-
* return
|
|
2865
|
+
* if (isNaN(age)) return Result.failVoid
|
|
2866
|
+
* return Result.succeed({
|
|
2839
2867
|
* username,
|
|
2840
2868
|
* age,
|
|
2841
2869
|
* seniority: age > 27 ? "senior" : "junior"
|
|
@@ -2853,7 +2881,7 @@ export const filterMap: {
|
|
|
2853
2881
|
* const validAges = yield* userData.pipe(
|
|
2854
2882
|
* TxHashMap.filterMap((user) => {
|
|
2855
2883
|
* const age = parseInt(user.age)
|
|
2856
|
-
* return isNaN(age) ?
|
|
2884
|
+
* return isNaN(age) ? Result.failVoid : Result.succeed(age)
|
|
2857
2885
|
* })
|
|
2858
2886
|
* )
|
|
2859
2887
|
*
|
|
@@ -2865,17 +2893,18 @@ export const filterMap: {
|
|
|
2865
2893
|
* @since 2.0.0
|
|
2866
2894
|
* @category combinators
|
|
2867
2895
|
*/
|
|
2868
|
-
<K, V, A>(self: TxHashMap<K, V>, f:
|
|
2896
|
+
<K, V, A, X>(self: TxHashMap<K, V>, f: Filter.Filter<V, A, X, [key: K]>): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
2869
2897
|
} = dual(
|
|
2870
2898
|
2,
|
|
2871
|
-
<K, V, A
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2899
|
+
<K, V, A, X>(
|
|
2900
|
+
self: TxHashMap<K, V>,
|
|
2901
|
+
f: Filter.Filter<V, A, X, [key: K]>
|
|
2902
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
|
|
2903
|
+
Effect.gen(function*() {
|
|
2904
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
2905
|
+
const filteredMap = HashMap.filterMap(currentMap, f)
|
|
2906
|
+
return yield* fromHashMap(filteredMap)
|
|
2907
|
+
})
|
|
2879
2908
|
)
|
|
2880
2909
|
|
|
2881
2910
|
/**
|
|
@@ -2959,7 +2988,7 @@ export const hasBy: {
|
|
|
2959
2988
|
* @since 2.0.0
|
|
2960
2989
|
* @category combinators
|
|
2961
2990
|
*/
|
|
2962
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
2991
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
2963
2992
|
/**
|
|
2964
2993
|
* Checks if any entry in the TxHashMap matches the given predicate.
|
|
2965
2994
|
*
|
|
@@ -3000,10 +3029,13 @@ export const hasBy: {
|
|
|
3000
3029
|
* @since 2.0.0
|
|
3001
3030
|
* @category combinators
|
|
3002
3031
|
*/
|
|
3003
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
|
|
3032
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
|
|
3004
3033
|
} = dual(
|
|
3005
3034
|
2,
|
|
3006
|
-
<K, V>(
|
|
3035
|
+
<K, V>(
|
|
3036
|
+
self: TxHashMap<K, V>,
|
|
3037
|
+
predicate: (value: V, key: K) => boolean
|
|
3038
|
+
): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
3007
3039
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.hasBy(map, predicate)))
|
|
3008
3040
|
)
|
|
3009
3041
|
|
|
@@ -3092,7 +3124,7 @@ export const findFirst: {
|
|
|
3092
3124
|
* @since 2.0.0
|
|
3093
3125
|
* @category combinators
|
|
3094
3126
|
*/
|
|
3095
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<[K, V] | undefined>
|
|
3127
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<[K, V] | undefined, never, Effect.Transaction>
|
|
3096
3128
|
/**
|
|
3097
3129
|
* Finds the first entry in the TxHashMap that matches the given predicate.
|
|
3098
3130
|
* Returns the key-value pair as a tuple wrapped in an Option.
|
|
@@ -3135,10 +3167,13 @@ export const findFirst: {
|
|
|
3135
3167
|
* @since 2.0.0
|
|
3136
3168
|
* @category combinators
|
|
3137
3169
|
*/
|
|
3138
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<[K, V] | undefined>
|
|
3170
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<[K, V] | undefined, never, Effect.Transaction>
|
|
3139
3171
|
} = dual(
|
|
3140
3172
|
2,
|
|
3141
|
-
<K, V>(
|
|
3173
|
+
<K, V>(
|
|
3174
|
+
self: TxHashMap<K, V>,
|
|
3175
|
+
predicate: (value: V, key: K) => boolean
|
|
3176
|
+
): Effect.Effect<[K, V] | undefined, never, Effect.Transaction> =>
|
|
3142
3177
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.findFirst(map, predicate)))
|
|
3143
3178
|
)
|
|
3144
3179
|
|
|
@@ -3223,7 +3258,7 @@ export const some: {
|
|
|
3223
3258
|
* @since 2.0.0
|
|
3224
3259
|
* @category combinators
|
|
3225
3260
|
*/
|
|
3226
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
3261
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
3227
3262
|
/**
|
|
3228
3263
|
* Checks if at least one entry in the TxHashMap satisfies the given predicate.
|
|
3229
3264
|
*
|
|
@@ -3264,10 +3299,13 @@ export const some: {
|
|
|
3264
3299
|
* @since 2.0.0
|
|
3265
3300
|
* @category combinators
|
|
3266
3301
|
*/
|
|
3267
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
|
|
3302
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
|
|
3268
3303
|
} = dual(
|
|
3269
3304
|
2,
|
|
3270
|
-
<K, V>(
|
|
3305
|
+
<K, V>(
|
|
3306
|
+
self: TxHashMap<K, V>,
|
|
3307
|
+
predicate: (value: V, key: K) => boolean
|
|
3308
|
+
): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
3271
3309
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.some(map, predicate)))
|
|
3272
3310
|
)
|
|
3273
3311
|
|
|
@@ -3352,7 +3390,7 @@ export const every: {
|
|
|
3352
3390
|
* @since 2.0.0
|
|
3353
3391
|
* @category combinators
|
|
3354
3392
|
*/
|
|
3355
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
3393
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
3356
3394
|
/**
|
|
3357
3395
|
* Checks if all entries in the TxHashMap satisfy the given predicate.
|
|
3358
3396
|
*
|
|
@@ -3393,10 +3431,13 @@ export const every: {
|
|
|
3393
3431
|
* @since 2.0.0
|
|
3394
3432
|
* @category combinators
|
|
3395
3433
|
*/
|
|
3396
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
|
|
3434
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
|
|
3397
3435
|
} = dual(
|
|
3398
3436
|
2,
|
|
3399
|
-
<K, V>(
|
|
3437
|
+
<K, V>(
|
|
3438
|
+
self: TxHashMap<K, V>,
|
|
3439
|
+
predicate: (value: V, key: K) => boolean
|
|
3440
|
+
): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
3400
3441
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.every(map, predicate)))
|
|
3401
3442
|
)
|
|
3402
3443
|
|
|
@@ -3483,7 +3524,7 @@ export const forEach: {
|
|
|
3483
3524
|
* @since 2.0.0
|
|
3484
3525
|
* @category combinators
|
|
3485
3526
|
*/
|
|
3486
|
-
<V, K, R, E>(f: (value: V, key: K) => Effect.Effect<void, E, R>): (self: TxHashMap<K, V>) => Effect.Effect<void, E, R>
|
|
3527
|
+
<V, K, R, E>(f: (value: V, key: K) => Effect.Effect<void, E, R>): (self: TxHashMap<K, V>) => Effect.Effect<void, E, R | Effect.Transaction>
|
|
3487
3528
|
/**
|
|
3488
3529
|
* Executes a side-effect function for each entry in the TxHashMap.
|
|
3489
3530
|
* The function receives the value and key as parameters and can perform effects.
|
|
@@ -3525,10 +3566,13 @@ export const forEach: {
|
|
|
3525
3566
|
* @since 2.0.0
|
|
3526
3567
|
* @category combinators
|
|
3527
3568
|
*/
|
|
3528
|
-
<K, V, R, E>(self: TxHashMap<K, V>, f: (value: V, key: K) => Effect.Effect<void, E, R>): Effect.Effect<void, E, R>
|
|
3569
|
+
<K, V, R, E>(self: TxHashMap<K, V>, f: (value: V, key: K) => Effect.Effect<void, E, R>): Effect.Effect<void, E, R | Effect.Transaction>
|
|
3529
3570
|
} = dual(
|
|
3530
3571
|
2,
|
|
3531
|
-
<K, V, R, E>(
|
|
3572
|
+
<K, V, R, E>(
|
|
3573
|
+
self: TxHashMap<K, V>,
|
|
3574
|
+
f: (value: V, key: K) => Effect.Effect<void, E, R>
|
|
3575
|
+
): Effect.Effect<void, E, R | Effect.Transaction> =>
|
|
3532
3576
|
Effect.gen(function*() {
|
|
3533
3577
|
const currentMap = yield* TxRef.get(self.ref)
|
|
3534
3578
|
const entries = HashMap.toEntries(currentMap)
|
|
@@ -3639,7 +3683,9 @@ export const flatMap: {
|
|
|
3639
3683
|
* @since 2.0.0
|
|
3640
3684
|
* @category combinators
|
|
3641
3685
|
*/
|
|
3642
|
-
<A, V, K>(
|
|
3686
|
+
<A, V, K>(
|
|
3687
|
+
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3688
|
+
): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3643
3689
|
/**
|
|
3644
3690
|
* Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
|
|
3645
3691
|
* then flattening the results. Useful for complex transformations that require creating new maps.
|
|
@@ -3693,131 +3739,129 @@ export const flatMap: {
|
|
|
3693
3739
|
*/
|
|
3694
3740
|
<K, V, A>(
|
|
3695
3741
|
self: TxHashMap<K, V>,
|
|
3696
|
-
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A
|
|
3697
|
-
): Effect.Effect<TxHashMap<K, A
|
|
3742
|
+
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3743
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3698
3744
|
} = dual(
|
|
3699
3745
|
2,
|
|
3700
3746
|
<K, V, A>(
|
|
3701
3747
|
self: TxHashMap<K, V>,
|
|
3702
|
-
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A
|
|
3703
|
-
): Effect.Effect<TxHashMap<K, A
|
|
3704
|
-
Effect.
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
*
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
*
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
A>()
|
|
3748
|
+
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3749
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
|
|
3750
|
+
Effect.gen(function*() {
|
|
3751
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
3752
|
+
const result = yield* empty</**
|
|
3753
|
+
* Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
|
|
3754
|
+
* then flattening the results. Useful for complex transformations that require creating new maps.
|
|
3755
|
+
*
|
|
3756
|
+
* **Return behavior**: This function returns a new TxHashMap reference with the
|
|
3757
|
+
* flattened results. The original TxHashMap is not modified.
|
|
3758
|
+
*
|
|
3759
|
+
* @example
|
|
3760
|
+
* ```ts
|
|
3761
|
+
* import { Effect, TxHashMap } from "effect"
|
|
3762
|
+
*
|
|
3763
|
+
* const program = Effect.gen(function*() {
|
|
3764
|
+
* // Create a department-employee map
|
|
3765
|
+
* const departments = yield* TxHashMap.make(
|
|
3766
|
+
* ["engineering", ["alice", "bob"]],
|
|
3767
|
+
* ["marketing", ["charlie", "diana"]]
|
|
3768
|
+
* )
|
|
3769
|
+
*
|
|
3770
|
+
* // Expand each department into individual employee entries with metadata
|
|
3771
|
+
* const employeeDetails = yield* TxHashMap.flatMap(
|
|
3772
|
+
* departments,
|
|
3773
|
+
* (employees, department) =>
|
|
3774
|
+
* Effect.gen(function*() {
|
|
3775
|
+
* const employeeMap = yield* TxHashMap.empty<
|
|
3776
|
+
* string,
|
|
3777
|
+
* { department: string; role: string }
|
|
3778
|
+
* >()
|
|
3779
|
+
* for (let i = 0; i < employees.length; i++) {
|
|
3780
|
+
* const employee = employees[i]
|
|
3781
|
+
* const role = i === 0 ? "lead" : "member"
|
|
3782
|
+
* yield* TxHashMap.set(employeeMap, employee, { department, role })
|
|
3783
|
+
* }
|
|
3784
|
+
* return employeeMap
|
|
3785
|
+
* })
|
|
3786
|
+
* )
|
|
3787
|
+
*
|
|
3788
|
+
* // Check the flattened result
|
|
3789
|
+
* const alice = yield* TxHashMap.get(employeeDetails, "alice")
|
|
3790
|
+
* console.log(alice) // Option.some({ department: "engineering", role: "lead" })
|
|
3791
|
+
*
|
|
3792
|
+
* const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
|
|
3793
|
+
* console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
|
|
3794
|
+
*
|
|
3795
|
+
* const size = yield* TxHashMap.size(employeeDetails)
|
|
3796
|
+
* console.log(size) // 4 (all employees)
|
|
3797
|
+
* })
|
|
3798
|
+
* ```
|
|
3799
|
+
*
|
|
3800
|
+
* @since 2.0.0
|
|
3801
|
+
* @category combinators
|
|
3802
|
+
*/
|
|
3803
|
+
K, /**
|
|
3804
|
+
* Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
|
|
3805
|
+
* then flattening the results. Useful for complex transformations that require creating new maps.
|
|
3806
|
+
*
|
|
3807
|
+
* **Return behavior**: This function returns a new TxHashMap reference with the
|
|
3808
|
+
* flattened results. The original TxHashMap is not modified.
|
|
3809
|
+
*
|
|
3810
|
+
* @example
|
|
3811
|
+
* ```ts
|
|
3812
|
+
* import { Effect, TxHashMap } from "effect"
|
|
3813
|
+
*
|
|
3814
|
+
* const program = Effect.gen(function*() {
|
|
3815
|
+
* // Create a department-employee map
|
|
3816
|
+
* const departments = yield* TxHashMap.make(
|
|
3817
|
+
* ["engineering", ["alice", "bob"]],
|
|
3818
|
+
* ["marketing", ["charlie", "diana"]]
|
|
3819
|
+
* )
|
|
3820
|
+
*
|
|
3821
|
+
* // Expand each department into individual employee entries with metadata
|
|
3822
|
+
* const employeeDetails = yield* TxHashMap.flatMap(
|
|
3823
|
+
* departments,
|
|
3824
|
+
* (employees, department) =>
|
|
3825
|
+
* Effect.gen(function*() {
|
|
3826
|
+
* const employeeMap = yield* TxHashMap.empty<
|
|
3827
|
+
* string,
|
|
3828
|
+
* { department: string; role: string }
|
|
3829
|
+
* >()
|
|
3830
|
+
* for (let i = 0; i < employees.length; i++) {
|
|
3831
|
+
* const employee = employees[i]
|
|
3832
|
+
* const role = i === 0 ? "lead" : "member"
|
|
3833
|
+
* yield* TxHashMap.set(employeeMap, employee, { department, role })
|
|
3834
|
+
* }
|
|
3835
|
+
* return employeeMap
|
|
3836
|
+
* })
|
|
3837
|
+
* )
|
|
3838
|
+
*
|
|
3839
|
+
* // Check the flattened result
|
|
3840
|
+
* const alice = yield* TxHashMap.get(employeeDetails, "alice")
|
|
3841
|
+
* console.log(alice) // Option.some({ department: "engineering", role: "lead" })
|
|
3842
|
+
*
|
|
3843
|
+
* const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
|
|
3844
|
+
* console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
|
|
3845
|
+
*
|
|
3846
|
+
* const size = yield* TxHashMap.size(employeeDetails)
|
|
3847
|
+
* console.log(size) // 4 (all employees)
|
|
3848
|
+
* })
|
|
3849
|
+
* ```
|
|
3850
|
+
*
|
|
3851
|
+
* @since 2.0.0
|
|
3852
|
+
* @category combinators
|
|
3853
|
+
*/
|
|
3854
|
+
A>()
|
|
3810
3855
|
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3856
|
+
const mapEntries = HashMap.toEntries(currentMap)
|
|
3857
|
+
for (const [key, value] of mapEntries) {
|
|
3858
|
+
const newMap = yield* f(value, key)
|
|
3859
|
+
const newEntries = yield* entries(newMap)
|
|
3860
|
+
yield* setMany(result, newEntries)
|
|
3861
|
+
}
|
|
3817
3862
|
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
)
|
|
3863
|
+
return result
|
|
3864
|
+
})
|
|
3821
3865
|
)
|
|
3822
3866
|
|
|
3823
3867
|
/**
|
|
@@ -3865,14 +3909,14 @@ export const flatMap: {
|
|
|
3865
3909
|
* @since 2.0.0
|
|
3866
3910
|
* @category combinators
|
|
3867
3911
|
*/
|
|
3868
|
-
export const compact = <K, A>(
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
)
|
|
3912
|
+
export const compact = <K, A>(
|
|
3913
|
+
self: TxHashMap<K, Option.Option<A>>
|
|
3914
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
|
|
3915
|
+
Effect.gen(function*() {
|
|
3916
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
3917
|
+
const compactedMap = HashMap.compact(currentMap)
|
|
3918
|
+
return yield* fromHashMap(compactedMap)
|
|
3919
|
+
})
|
|
3876
3920
|
|
|
3877
3921
|
/**
|
|
3878
3922
|
* Returns an array of all key-value pairs in the TxHashMap.
|
|
@@ -3908,7 +3952,9 @@ export const compact = <K, A>(self: TxHashMap<K, Option.Option<A>>): Effect.Effe
|
|
|
3908
3952
|
* @since 2.0.0
|
|
3909
3953
|
* @category combinators
|
|
3910
3954
|
*/
|
|
3911
|
-
export const toEntries = <K, V>(
|
|
3955
|
+
export const toEntries = <K, V>(
|
|
3956
|
+
self: TxHashMap<K, V>
|
|
3957
|
+
): Effect.Effect<Array<readonly [K, V]>, never, Effect.Transaction> => entries(self)
|
|
3912
3958
|
|
|
3913
3959
|
/**
|
|
3914
3960
|
* Returns an array of all values in the TxHashMap.
|
|
@@ -3946,12 +3992,13 @@ export const toEntries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<read
|
|
|
3946
3992
|
* @since 2.0.0
|
|
3947
3993
|
* @category combinators
|
|
3948
3994
|
*/
|
|
3949
|
-
export const toValues = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V
|
|
3995
|
+
export const toValues = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>, never, Effect.Transaction> =>
|
|
3996
|
+
values(self)
|
|
3950
3997
|
|
|
3951
3998
|
/**
|
|
3952
3999
|
* Helper function to create a TxHashMap from an existing HashMap
|
|
3953
4000
|
*/
|
|
3954
|
-
const fromHashMap = <K, V>(hashMap: HashMap.HashMap<K, V>): Effect.Effect<TxHashMap<K, V
|
|
4001
|
+
const fromHashMap = <K, V>(hashMap: HashMap.HashMap<K, V>): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
3955
4002
|
Effect.gen(function*() {
|
|
3956
4003
|
const ref = yield* TxRef.make(hashMap)
|
|
3957
4004
|
return Object.assign(Object.create(TxHashMapProto), { ref })
|