@effect/cluster 0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b
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/AtLeastOnce/package.json +6 -0
- package/AtLeastOnceStorage/package.json +6 -0
- package/Broadcaster/package.json +6 -0
- package/LICENSE +21 -0
- package/ManagerConfig/package.json +6 -0
- package/Message/package.json +6 -0
- package/MessageState/package.json +6 -0
- package/Messenger/package.json +6 -0
- package/Pod/package.json +6 -0
- package/PodAddress/package.json +6 -0
- package/Pods/package.json +6 -0
- package/PodsHealth/package.json +6 -0
- package/PoisonPill/package.json +6 -0
- package/README.md +3 -0
- package/RecipientAddress/package.json +6 -0
- package/RecipientBehaviour/package.json +6 -0
- package/RecipientBehaviourContext/package.json +6 -0
- package/RecipientType/package.json +6 -0
- package/Serialization/package.json +6 -0
- package/SerializedEnvelope/package.json +6 -0
- package/SerializedMessage/package.json +6 -0
- package/ShardId/package.json +6 -0
- package/ShardManager/package.json +6 -0
- package/ShardManagerClient/package.json +6 -0
- package/Sharding/package.json +6 -0
- package/ShardingConfig/package.json +6 -0
- package/ShardingEvent/package.json +6 -0
- package/ShardingException/package.json +6 -0
- package/ShardingRegistrationEvent/package.json +6 -0
- package/Storage/package.json +6 -0
- package/dist/cjs/AtLeastOnce.js +43 -0
- package/dist/cjs/AtLeastOnce.js.map +1 -0
- package/dist/cjs/AtLeastOnceStorage.js +48 -0
- package/dist/cjs/AtLeastOnceStorage.js.map +1 -0
- package/dist/cjs/Broadcaster.js +6 -0
- package/dist/cjs/Broadcaster.js.map +1 -0
- package/dist/cjs/ManagerConfig.js +57 -0
- package/dist/cjs/ManagerConfig.js.map +1 -0
- package/dist/cjs/Message.js +64 -0
- package/dist/cjs/Message.js.map +1 -0
- package/dist/cjs/MessageState.js +78 -0
- package/dist/cjs/MessageState.js.map +1 -0
- package/dist/cjs/Messenger.js +6 -0
- package/dist/cjs/Messenger.js.map +1 -0
- package/dist/cjs/Pod.js +101 -0
- package/dist/cjs/Pod.js.map +1 -0
- package/dist/cjs/PodAddress.js +100 -0
- package/dist/cjs/PodAddress.js.map +1 -0
- package/dist/cjs/Pods.js +58 -0
- package/dist/cjs/Pods.js.map +1 -0
- package/dist/cjs/PodsHealth.js +64 -0
- package/dist/cjs/PodsHealth.js.map +1 -0
- package/dist/cjs/PoisonPill.js +101 -0
- package/dist/cjs/PoisonPill.js.map +1 -0
- package/dist/cjs/RecipientAddress.js +102 -0
- package/dist/cjs/RecipientAddress.js.map +1 -0
- package/dist/cjs/RecipientBehaviour.js +61 -0
- package/dist/cjs/RecipientBehaviour.js.map +1 -0
- package/dist/cjs/RecipientBehaviourContext.js +87 -0
- package/dist/cjs/RecipientBehaviourContext.js.map +1 -0
- package/dist/cjs/RecipientType.js +142 -0
- package/dist/cjs/RecipientType.js.map +1 -0
- package/dist/cjs/Serialization.js +55 -0
- package/dist/cjs/Serialization.js.map +1 -0
- package/dist/cjs/SerializedEnvelope.js +111 -0
- package/dist/cjs/SerializedEnvelope.js.map +1 -0
- package/dist/cjs/SerializedMessage.js +87 -0
- package/dist/cjs/SerializedMessage.js.map +1 -0
- package/dist/cjs/ShardId.js +89 -0
- package/dist/cjs/ShardId.js.map +1 -0
- package/dist/cjs/ShardManager.js +48 -0
- package/dist/cjs/ShardManager.js.map +1 -0
- package/dist/cjs/ShardManagerClient.js +53 -0
- package/dist/cjs/ShardManagerClient.js.map +1 -0
- package/dist/cjs/Sharding.js +129 -0
- package/dist/cjs/Sharding.js.map +1 -0
- package/dist/cjs/ShardingConfig.js +64 -0
- package/dist/cjs/ShardingConfig.js.map +1 -0
- package/dist/cjs/ShardingEvent.js +72 -0
- package/dist/cjs/ShardingEvent.js.map +1 -0
- package/dist/cjs/ShardingException.js +130 -0
- package/dist/cjs/ShardingException.js.map +1 -0
- package/dist/cjs/ShardingRegistrationEvent.js +44 -0
- package/dist/cjs/ShardingRegistrationEvent.js.map +1 -0
- package/dist/cjs/Storage.js +63 -0
- package/dist/cjs/Storage.js.map +1 -0
- package/dist/cjs/index.js +88 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/atLeastOnce.js +58 -0
- package/dist/cjs/internal/atLeastOnce.js.map +1 -0
- package/dist/cjs/internal/atLeastOnceStorage.js +186 -0
- package/dist/cjs/internal/atLeastOnceStorage.js.map +1 -0
- package/dist/cjs/internal/entityManager.js +191 -0
- package/dist/cjs/internal/entityManager.js.map +1 -0
- package/dist/cjs/internal/entityState.js +70 -0
- package/dist/cjs/internal/entityState.js.map +1 -0
- package/dist/cjs/internal/managerConfig.js +69 -0
- package/dist/cjs/internal/managerConfig.js.map +1 -0
- package/dist/cjs/internal/message.js +68 -0
- package/dist/cjs/internal/message.js.map +1 -0
- package/dist/cjs/internal/messageState.js +102 -0
- package/dist/cjs/internal/messageState.js.map +1 -0
- package/dist/cjs/internal/podWithMetadata.js +77 -0
- package/dist/cjs/internal/podWithMetadata.js.map +1 -0
- package/dist/cjs/internal/pods.js +58 -0
- package/dist/cjs/internal/pods.js.map +1 -0
- package/dist/cjs/internal/podsHealth.js +63 -0
- package/dist/cjs/internal/podsHealth.js.map +1 -0
- package/dist/cjs/internal/recipientBehaviour.js +75 -0
- package/dist/cjs/internal/recipientBehaviour.js.map +1 -0
- package/dist/cjs/internal/recipientBehaviourContext.js +59 -0
- package/dist/cjs/internal/recipientBehaviourContext.js.map +1 -0
- package/dist/cjs/internal/serialization.js +72 -0
- package/dist/cjs/internal/serialization.js.map +1 -0
- package/dist/cjs/internal/shardManager.js +291 -0
- package/dist/cjs/internal/shardManager.js.map +1 -0
- package/dist/cjs/internal/shardManagerClient.js +71 -0
- package/dist/cjs/internal/shardManagerClient.js.map +1 -0
- package/dist/cjs/internal/shardManagerState.js +67 -0
- package/dist/cjs/internal/shardManagerState.js.map +1 -0
- package/dist/cjs/internal/sharding.js +329 -0
- package/dist/cjs/internal/sharding.js.map +1 -0
- package/dist/cjs/internal/shardingConfig.js +79 -0
- package/dist/cjs/internal/shardingConfig.js.map +1 -0
- package/dist/cjs/internal/storage.js +75 -0
- package/dist/cjs/internal/storage.js.map +1 -0
- package/dist/cjs/internal/utils.js +92 -0
- package/dist/cjs/internal/utils.js.map +1 -0
- package/dist/dts/AtLeastOnce.d.ts +20 -0
- package/dist/dts/AtLeastOnce.d.ts.map +1 -0
- package/dist/dts/AtLeastOnceStorage.d.ts +75 -0
- package/dist/dts/AtLeastOnceStorage.d.ts.map +1 -0
- package/dist/dts/Broadcaster.d.ts +32 -0
- package/dist/dts/Broadcaster.d.ts.map +1 -0
- package/dist/dts/ManagerConfig.d.ts +61 -0
- package/dist/dts/ManagerConfig.d.ts.map +1 -0
- package/dist/dts/Message.d.ts +106 -0
- package/dist/dts/Message.d.ts.map +1 -0
- package/dist/dts/MessageState.d.ts +107 -0
- package/dist/dts/MessageState.d.ts.map +1 -0
- package/dist/dts/Messenger.d.ts +32 -0
- package/dist/dts/Messenger.d.ts.map +1 -0
- package/dist/dts/Pod.d.ts +81 -0
- package/dist/dts/Pod.d.ts.map +1 -0
- package/dist/dts/PodAddress.d.ts +80 -0
- package/dist/dts/PodAddress.d.ts.map +1 -0
- package/dist/dts/Pods.d.ts +78 -0
- package/dist/dts/Pods.d.ts.map +1 -0
- package/dist/dts/PodsHealth.d.ts +66 -0
- package/dist/dts/PodsHealth.d.ts.map +1 -0
- package/dist/dts/PoisonPill.d.ts +78 -0
- package/dist/dts/PoisonPill.d.ts.map +1 -0
- package/dist/dts/RecipientAddress.d.ts +57 -0
- package/dist/dts/RecipientAddress.d.ts.map +1 -0
- package/dist/dts/RecipientBehaviour.d.ts +72 -0
- package/dist/dts/RecipientBehaviour.d.ts.map +1 -0
- package/dist/dts/RecipientBehaviourContext.d.ts +83 -0
- package/dist/dts/RecipientBehaviourContext.d.ts.map +1 -0
- package/dist/dts/RecipientType.d.ts +96 -0
- package/dist/dts/RecipientType.d.ts.map +1 -0
- package/dist/dts/Serialization.d.ts +58 -0
- package/dist/dts/Serialization.d.ts.map +1 -0
- package/dist/dts/SerializedEnvelope.d.ts +87 -0
- package/dist/dts/SerializedEnvelope.d.ts.map +1 -0
- package/dist/dts/SerializedMessage.d.ts +66 -0
- package/dist/dts/SerializedMessage.d.ts.map +1 -0
- package/dist/dts/ShardId.d.ts +70 -0
- package/dist/dts/ShardId.d.ts.map +1 -0
- package/dist/dts/ShardManager.d.ts +44 -0
- package/dist/dts/ShardManager.d.ts.map +1 -0
- package/dist/dts/ShardManagerClient.d.ts +50 -0
- package/dist/dts/ShardManagerClient.d.ts.map +1 -0
- package/dist/dts/Sharding.d.ts +146 -0
- package/dist/dts/Sharding.d.ts.map +1 -0
- package/dist/dts/ShardingConfig.d.ts +69 -0
- package/dist/dts/ShardingConfig.d.ts.map +1 -0
- package/dist/dts/ShardingEvent.d.ts +90 -0
- package/dist/dts/ShardingEvent.d.ts.map +1 -0
- package/dist/dts/ShardingException.d.ts +125 -0
- package/dist/dts/ShardingException.d.ts.map +1 -0
- package/dist/dts/ShardingRegistrationEvent.d.ts +44 -0
- package/dist/dts/ShardingRegistrationEvent.d.ts.map +1 -0
- package/dist/dts/Storage.d.ts +78 -0
- package/dist/dts/Storage.d.ts.map +1 -0
- package/dist/dts/index.d.ts +113 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/internal/atLeastOnce.d.ts +2 -0
- package/dist/dts/internal/atLeastOnce.d.ts.map +1 -0
- package/dist/dts/internal/atLeastOnceStorage.d.ts +2 -0
- package/dist/dts/internal/atLeastOnceStorage.d.ts.map +1 -0
- package/dist/dts/internal/entityManager.d.ts +2 -0
- package/dist/dts/internal/entityManager.d.ts.map +1 -0
- package/dist/dts/internal/entityState.d.ts +21 -0
- package/dist/dts/internal/entityState.d.ts.map +1 -0
- package/dist/dts/internal/managerConfig.d.ts +2 -0
- package/dist/dts/internal/managerConfig.d.ts.map +1 -0
- package/dist/dts/internal/message.d.ts +9 -0
- package/dist/dts/internal/message.d.ts.map +1 -0
- package/dist/dts/internal/messageState.d.ts +2 -0
- package/dist/dts/internal/messageState.d.ts.map +1 -0
- package/dist/dts/internal/podWithMetadata.d.ts +2 -0
- package/dist/dts/internal/podWithMetadata.d.ts.map +1 -0
- package/dist/dts/internal/pods.d.ts +2 -0
- package/dist/dts/internal/pods.d.ts.map +1 -0
- package/dist/dts/internal/podsHealth.d.ts +2 -0
- package/dist/dts/internal/podsHealth.d.ts.map +1 -0
- package/dist/dts/internal/recipientBehaviour.d.ts +2 -0
- package/dist/dts/internal/recipientBehaviour.d.ts.map +1 -0
- package/dist/dts/internal/recipientBehaviourContext.d.ts +2 -0
- package/dist/dts/internal/recipientBehaviourContext.d.ts.map +1 -0
- package/dist/dts/internal/serialization.d.ts +2 -0
- package/dist/dts/internal/serialization.d.ts.map +1 -0
- package/dist/dts/internal/shardManager.d.ts +12 -0
- package/dist/dts/internal/shardManager.d.ts.map +1 -0
- package/dist/dts/internal/shardManagerClient.d.ts +2 -0
- package/dist/dts/internal/shardManagerClient.d.ts.map +1 -0
- package/dist/dts/internal/shardManagerState.d.ts +26 -0
- package/dist/dts/internal/shardManagerState.d.ts.map +1 -0
- package/dist/dts/internal/sharding.d.ts +2 -0
- package/dist/dts/internal/sharding.d.ts.map +1 -0
- package/dist/dts/internal/shardingConfig.d.ts +2 -0
- package/dist/dts/internal/shardingConfig.d.ts.map +1 -0
- package/dist/dts/internal/storage.d.ts +2 -0
- package/dist/dts/internal/storage.d.ts.map +1 -0
- package/dist/dts/internal/utils.d.ts +2 -0
- package/dist/dts/internal/utils.d.ts.map +1 -0
- package/dist/esm/AtLeastOnce.js +12 -0
- package/dist/esm/AtLeastOnce.js.map +1 -0
- package/dist/esm/AtLeastOnceStorage.js +17 -0
- package/dist/esm/AtLeastOnceStorage.js.map +1 -0
- package/dist/esm/Broadcaster.js +2 -0
- package/dist/esm/Broadcaster.js.map +1 -0
- package/dist/esm/ManagerConfig.js +26 -0
- package/dist/esm/ManagerConfig.js.map +1 -0
- package/dist/esm/Message.js +33 -0
- package/dist/esm/Message.js.map +1 -0
- package/dist/esm/MessageState.js +47 -0
- package/dist/esm/MessageState.js.map +1 -0
- package/dist/esm/Messenger.js +2 -0
- package/dist/esm/Messenger.js.map +1 -0
- package/dist/esm/Pod.js +65 -0
- package/dist/esm/Pod.js.map +1 -0
- package/dist/esm/PodAddress.js +64 -0
- package/dist/esm/PodAddress.js.map +1 -0
- package/dist/esm/Pods.js +27 -0
- package/dist/esm/Pods.js.map +1 -0
- package/dist/esm/PodsHealth.js +33 -0
- package/dist/esm/PodsHealth.js.map +1 -0
- package/dist/esm/PoisonPill.js +65 -0
- package/dist/esm/PoisonPill.js.map +1 -0
- package/dist/esm/RecipientAddress.js +67 -0
- package/dist/esm/RecipientAddress.js.map +1 -0
- package/dist/esm/RecipientBehaviour.js +30 -0
- package/dist/esm/RecipientBehaviour.js.map +1 -0
- package/dist/esm/RecipientBehaviourContext.js +56 -0
- package/dist/esm/RecipientBehaviourContext.js.map +1 -0
- package/dist/esm/RecipientType.js +105 -0
- package/dist/esm/RecipientType.js.map +1 -0
- package/dist/esm/Serialization.js +24 -0
- package/dist/esm/Serialization.js.map +1 -0
- package/dist/esm/SerializedEnvelope.js +75 -0
- package/dist/esm/SerializedEnvelope.js.map +1 -0
- package/dist/esm/SerializedMessage.js +51 -0
- package/dist/esm/SerializedMessage.js.map +1 -0
- package/dist/esm/ShardId.js +54 -0
- package/dist/esm/ShardId.js.map +1 -0
- package/dist/esm/ShardManager.js +17 -0
- package/dist/esm/ShardManager.js.map +1 -0
- package/dist/esm/ShardManagerClient.js +22 -0
- package/dist/esm/ShardManagerClient.js.map +1 -0
- package/dist/esm/Sharding.js +98 -0
- package/dist/esm/Sharding.js.map +1 -0
- package/dist/esm/ShardingConfig.js +33 -0
- package/dist/esm/ShardingConfig.js.map +1 -0
- package/dist/esm/ShardingEvent.js +62 -0
- package/dist/esm/ShardingEvent.js.map +1 -0
- package/dist/esm/ShardingException.js +91 -0
- package/dist/esm/ShardingException.js.map +1 -0
- package/dist/esm/ShardingRegistrationEvent.js +36 -0
- package/dist/esm/ShardingRegistrationEvent.js.map +1 -0
- package/dist/esm/Storage.js +32 -0
- package/dist/esm/Storage.js.map +1 -0
- package/dist/esm/index.js +113 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/atLeastOnce.js +26 -0
- package/dist/esm/internal/atLeastOnce.js.map +1 -0
- package/dist/esm/internal/atLeastOnceStorage.js +154 -0
- package/dist/esm/internal/atLeastOnceStorage.js.map +1 -0
- package/dist/esm/internal/entityManager.js +159 -0
- package/dist/esm/internal/entityManager.js.map +1 -0
- package/dist/esm/internal/entityState.js +35 -0
- package/dist/esm/internal/entityState.js.map +1 -0
- package/dist/esm/internal/managerConfig.js +38 -0
- package/dist/esm/internal/managerConfig.js.map +1 -0
- package/dist/esm/internal/message.js +32 -0
- package/dist/esm/internal/message.js.map +1 -0
- package/dist/esm/internal/messageState.js +66 -0
- package/dist/esm/internal/messageState.js.map +1 -0
- package/dist/esm/internal/podWithMetadata.js +41 -0
- package/dist/esm/internal/podWithMetadata.js.map +1 -0
- package/dist/esm/internal/pods.js +25 -0
- package/dist/esm/internal/pods.js.map +1 -0
- package/dist/esm/internal/podsHealth.js +30 -0
- package/dist/esm/internal/podsHealth.js.map +1 -0
- package/dist/esm/internal/recipientBehaviour.js +42 -0
- package/dist/esm/internal/recipientBehaviour.js.map +1 -0
- package/dist/esm/internal/recipientBehaviourContext.js +26 -0
- package/dist/esm/internal/recipientBehaviourContext.js.map +1 -0
- package/dist/esm/internal/serialization.js +39 -0
- package/dist/esm/internal/serialization.js.map +1 -0
- package/dist/esm/internal/shardManager.js +256 -0
- package/dist/esm/internal/shardManager.js.map +1 -0
- package/dist/esm/internal/shardManagerClient.js +38 -0
- package/dist/esm/internal/shardManagerClient.js.map +1 -0
- package/dist/esm/internal/shardManagerState.js +36 -0
- package/dist/esm/internal/shardManagerState.js.map +1 -0
- package/dist/esm/internal/sharding.js +288 -0
- package/dist/esm/internal/sharding.js.map +1 -0
- package/dist/esm/internal/shardingConfig.js +47 -0
- package/dist/esm/internal/shardingConfig.js.map +1 -0
- package/dist/esm/internal/storage.js +42 -0
- package/dist/esm/internal/storage.js.map +1 -0
- package/dist/esm/internal/utils.js +56 -0
- package/dist/esm/internal/utils.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +259 -0
- package/src/AtLeastOnce.ts +28 -0
- package/src/AtLeastOnceStorage.ts +96 -0
- package/src/Broadcaster.ts +48 -0
- package/src/ManagerConfig.ts +67 -0
- package/src/Message.ts +132 -0
- package/src/MessageState.ts +126 -0
- package/src/Messenger.ts +40 -0
- package/src/Pod.ts +95 -0
- package/src/PodAddress.ts +94 -0
- package/src/Pods.ts +100 -0
- package/src/PodsHealth.ts +74 -0
- package/src/PoisonPill.ts +105 -0
- package/src/RecipientAddress.ts +72 -0
- package/src/RecipientBehaviour.ts +108 -0
- package/src/RecipientBehaviourContext.ts +101 -0
- package/src/RecipientType.ts +134 -0
- package/src/Serialization.ts +72 -0
- package/src/SerializedEnvelope.ts +109 -0
- package/src/SerializedMessage.ts +82 -0
- package/src/ShardId.ts +79 -0
- package/src/ShardManager.ts +53 -0
- package/src/ShardManagerClient.ts +57 -0
- package/src/Sharding.ts +214 -0
- package/src/ShardingConfig.ts +76 -0
- package/src/ShardingEvent.ts +121 -0
- package/src/ShardingException.ts +151 -0
- package/src/ShardingRegistrationEvent.ts +62 -0
- package/src/Storage.ts +92 -0
- package/src/index.ts +139 -0
- package/src/internal/atLeastOnce.ts +59 -0
- package/src/internal/atLeastOnceStorage.ts +218 -0
- package/src/internal/entityManager.ts +404 -0
- package/src/internal/entityState.ts +64 -0
- package/src/internal/managerConfig.ts +84 -0
- package/src/internal/message.ts +64 -0
- package/src/internal/messageState.ts +98 -0
- package/src/internal/podWithMetadata.ts +72 -0
- package/src/internal/pods.ts +29 -0
- package/src/internal/podsHealth.ts +39 -0
- package/src/internal/recipientBehaviour.ts +133 -0
- package/src/internal/recipientBehaviourContext.ts +70 -0
- package/src/internal/serialization.ts +59 -0
- package/src/internal/shardManager.ts +593 -0
- package/src/internal/shardManagerClient.ts +49 -0
- package/src/internal/shardManagerState.ts +80 -0
- package/src/internal/sharding.ts +793 -0
- package/src/internal/shardingConfig.ts +97 -0
- package/src/internal/storage.ts +60 -0
- package/src/internal/utils.ts +54 -0
package/package.json
ADDED
@@ -0,0 +1,259 @@
|
|
1
|
+
{
|
2
|
+
"name": "@effect/cluster",
|
3
|
+
"version": "0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b",
|
4
|
+
"description": "Unified interfaces for common cluster-specific services",
|
5
|
+
"license": "MIT",
|
6
|
+
"repository": {
|
7
|
+
"type": "git",
|
8
|
+
"url": "https://github.com/Effect-TS/effect.git",
|
9
|
+
"directory": "packages/cluster"
|
10
|
+
},
|
11
|
+
"sideEffects": [],
|
12
|
+
"peerDependencies": {
|
13
|
+
"@effect/schema": "^0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b",
|
14
|
+
"@effect/sql": "^0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b",
|
15
|
+
"effect": "^0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b"
|
16
|
+
},
|
17
|
+
"publishConfig": {
|
18
|
+
"provenance": true
|
19
|
+
},
|
20
|
+
"main": "./dist/cjs/index.js",
|
21
|
+
"module": "./dist/esm/index.js",
|
22
|
+
"types": "./dist/dts/index.d.ts",
|
23
|
+
"exports": {
|
24
|
+
"./package.json": "./package.json",
|
25
|
+
".": {
|
26
|
+
"types": "./dist/dts/index.d.ts",
|
27
|
+
"import": "./dist/esm/index.js",
|
28
|
+
"default": "./dist/cjs/index.js"
|
29
|
+
},
|
30
|
+
"./AtLeastOnce": {
|
31
|
+
"types": "./dist/dts/AtLeastOnce.d.ts",
|
32
|
+
"import": "./dist/esm/AtLeastOnce.js",
|
33
|
+
"default": "./dist/cjs/AtLeastOnce.js"
|
34
|
+
},
|
35
|
+
"./AtLeastOnceStorage": {
|
36
|
+
"types": "./dist/dts/AtLeastOnceStorage.d.ts",
|
37
|
+
"import": "./dist/esm/AtLeastOnceStorage.js",
|
38
|
+
"default": "./dist/cjs/AtLeastOnceStorage.js"
|
39
|
+
},
|
40
|
+
"./Broadcaster": {
|
41
|
+
"types": "./dist/dts/Broadcaster.d.ts",
|
42
|
+
"import": "./dist/esm/Broadcaster.js",
|
43
|
+
"default": "./dist/cjs/Broadcaster.js"
|
44
|
+
},
|
45
|
+
"./ManagerConfig": {
|
46
|
+
"types": "./dist/dts/ManagerConfig.d.ts",
|
47
|
+
"import": "./dist/esm/ManagerConfig.js",
|
48
|
+
"default": "./dist/cjs/ManagerConfig.js"
|
49
|
+
},
|
50
|
+
"./Message": {
|
51
|
+
"types": "./dist/dts/Message.d.ts",
|
52
|
+
"import": "./dist/esm/Message.js",
|
53
|
+
"default": "./dist/cjs/Message.js"
|
54
|
+
},
|
55
|
+
"./MessageState": {
|
56
|
+
"types": "./dist/dts/MessageState.d.ts",
|
57
|
+
"import": "./dist/esm/MessageState.js",
|
58
|
+
"default": "./dist/cjs/MessageState.js"
|
59
|
+
},
|
60
|
+
"./Messenger": {
|
61
|
+
"types": "./dist/dts/Messenger.d.ts",
|
62
|
+
"import": "./dist/esm/Messenger.js",
|
63
|
+
"default": "./dist/cjs/Messenger.js"
|
64
|
+
},
|
65
|
+
"./Pod": {
|
66
|
+
"types": "./dist/dts/Pod.d.ts",
|
67
|
+
"import": "./dist/esm/Pod.js",
|
68
|
+
"default": "./dist/cjs/Pod.js"
|
69
|
+
},
|
70
|
+
"./PodAddress": {
|
71
|
+
"types": "./dist/dts/PodAddress.d.ts",
|
72
|
+
"import": "./dist/esm/PodAddress.js",
|
73
|
+
"default": "./dist/cjs/PodAddress.js"
|
74
|
+
},
|
75
|
+
"./Pods": {
|
76
|
+
"types": "./dist/dts/Pods.d.ts",
|
77
|
+
"import": "./dist/esm/Pods.js",
|
78
|
+
"default": "./dist/cjs/Pods.js"
|
79
|
+
},
|
80
|
+
"./PodsHealth": {
|
81
|
+
"types": "./dist/dts/PodsHealth.d.ts",
|
82
|
+
"import": "./dist/esm/PodsHealth.js",
|
83
|
+
"default": "./dist/cjs/PodsHealth.js"
|
84
|
+
},
|
85
|
+
"./PoisonPill": {
|
86
|
+
"types": "./dist/dts/PoisonPill.d.ts",
|
87
|
+
"import": "./dist/esm/PoisonPill.js",
|
88
|
+
"default": "./dist/cjs/PoisonPill.js"
|
89
|
+
},
|
90
|
+
"./RecipientAddress": {
|
91
|
+
"types": "./dist/dts/RecipientAddress.d.ts",
|
92
|
+
"import": "./dist/esm/RecipientAddress.js",
|
93
|
+
"default": "./dist/cjs/RecipientAddress.js"
|
94
|
+
},
|
95
|
+
"./RecipientBehaviour": {
|
96
|
+
"types": "./dist/dts/RecipientBehaviour.d.ts",
|
97
|
+
"import": "./dist/esm/RecipientBehaviour.js",
|
98
|
+
"default": "./dist/cjs/RecipientBehaviour.js"
|
99
|
+
},
|
100
|
+
"./RecipientBehaviourContext": {
|
101
|
+
"types": "./dist/dts/RecipientBehaviourContext.d.ts",
|
102
|
+
"import": "./dist/esm/RecipientBehaviourContext.js",
|
103
|
+
"default": "./dist/cjs/RecipientBehaviourContext.js"
|
104
|
+
},
|
105
|
+
"./RecipientType": {
|
106
|
+
"types": "./dist/dts/RecipientType.d.ts",
|
107
|
+
"import": "./dist/esm/RecipientType.js",
|
108
|
+
"default": "./dist/cjs/RecipientType.js"
|
109
|
+
},
|
110
|
+
"./Serialization": {
|
111
|
+
"types": "./dist/dts/Serialization.d.ts",
|
112
|
+
"import": "./dist/esm/Serialization.js",
|
113
|
+
"default": "./dist/cjs/Serialization.js"
|
114
|
+
},
|
115
|
+
"./SerializedEnvelope": {
|
116
|
+
"types": "./dist/dts/SerializedEnvelope.d.ts",
|
117
|
+
"import": "./dist/esm/SerializedEnvelope.js",
|
118
|
+
"default": "./dist/cjs/SerializedEnvelope.js"
|
119
|
+
},
|
120
|
+
"./SerializedMessage": {
|
121
|
+
"types": "./dist/dts/SerializedMessage.d.ts",
|
122
|
+
"import": "./dist/esm/SerializedMessage.js",
|
123
|
+
"default": "./dist/cjs/SerializedMessage.js"
|
124
|
+
},
|
125
|
+
"./ShardId": {
|
126
|
+
"types": "./dist/dts/ShardId.d.ts",
|
127
|
+
"import": "./dist/esm/ShardId.js",
|
128
|
+
"default": "./dist/cjs/ShardId.js"
|
129
|
+
},
|
130
|
+
"./ShardManager": {
|
131
|
+
"types": "./dist/dts/ShardManager.d.ts",
|
132
|
+
"import": "./dist/esm/ShardManager.js",
|
133
|
+
"default": "./dist/cjs/ShardManager.js"
|
134
|
+
},
|
135
|
+
"./ShardManagerClient": {
|
136
|
+
"types": "./dist/dts/ShardManagerClient.d.ts",
|
137
|
+
"import": "./dist/esm/ShardManagerClient.js",
|
138
|
+
"default": "./dist/cjs/ShardManagerClient.js"
|
139
|
+
},
|
140
|
+
"./Sharding": {
|
141
|
+
"types": "./dist/dts/Sharding.d.ts",
|
142
|
+
"import": "./dist/esm/Sharding.js",
|
143
|
+
"default": "./dist/cjs/Sharding.js"
|
144
|
+
},
|
145
|
+
"./ShardingConfig": {
|
146
|
+
"types": "./dist/dts/ShardingConfig.d.ts",
|
147
|
+
"import": "./dist/esm/ShardingConfig.js",
|
148
|
+
"default": "./dist/cjs/ShardingConfig.js"
|
149
|
+
},
|
150
|
+
"./ShardingEvent": {
|
151
|
+
"types": "./dist/dts/ShardingEvent.d.ts",
|
152
|
+
"import": "./dist/esm/ShardingEvent.js",
|
153
|
+
"default": "./dist/cjs/ShardingEvent.js"
|
154
|
+
},
|
155
|
+
"./ShardingException": {
|
156
|
+
"types": "./dist/dts/ShardingException.d.ts",
|
157
|
+
"import": "./dist/esm/ShardingException.js",
|
158
|
+
"default": "./dist/cjs/ShardingException.js"
|
159
|
+
},
|
160
|
+
"./ShardingRegistrationEvent": {
|
161
|
+
"types": "./dist/dts/ShardingRegistrationEvent.d.ts",
|
162
|
+
"import": "./dist/esm/ShardingRegistrationEvent.js",
|
163
|
+
"default": "./dist/cjs/ShardingRegistrationEvent.js"
|
164
|
+
},
|
165
|
+
"./Storage": {
|
166
|
+
"types": "./dist/dts/Storage.d.ts",
|
167
|
+
"import": "./dist/esm/Storage.js",
|
168
|
+
"default": "./dist/cjs/Storage.js"
|
169
|
+
}
|
170
|
+
},
|
171
|
+
"typesVersions": {
|
172
|
+
"*": {
|
173
|
+
"AtLeastOnce": [
|
174
|
+
"./dist/dts/AtLeastOnce.d.ts"
|
175
|
+
],
|
176
|
+
"AtLeastOnceStorage": [
|
177
|
+
"./dist/dts/AtLeastOnceStorage.d.ts"
|
178
|
+
],
|
179
|
+
"Broadcaster": [
|
180
|
+
"./dist/dts/Broadcaster.d.ts"
|
181
|
+
],
|
182
|
+
"ManagerConfig": [
|
183
|
+
"./dist/dts/ManagerConfig.d.ts"
|
184
|
+
],
|
185
|
+
"Message": [
|
186
|
+
"./dist/dts/Message.d.ts"
|
187
|
+
],
|
188
|
+
"MessageState": [
|
189
|
+
"./dist/dts/MessageState.d.ts"
|
190
|
+
],
|
191
|
+
"Messenger": [
|
192
|
+
"./dist/dts/Messenger.d.ts"
|
193
|
+
],
|
194
|
+
"Pod": [
|
195
|
+
"./dist/dts/Pod.d.ts"
|
196
|
+
],
|
197
|
+
"PodAddress": [
|
198
|
+
"./dist/dts/PodAddress.d.ts"
|
199
|
+
],
|
200
|
+
"Pods": [
|
201
|
+
"./dist/dts/Pods.d.ts"
|
202
|
+
],
|
203
|
+
"PodsHealth": [
|
204
|
+
"./dist/dts/PodsHealth.d.ts"
|
205
|
+
],
|
206
|
+
"PoisonPill": [
|
207
|
+
"./dist/dts/PoisonPill.d.ts"
|
208
|
+
],
|
209
|
+
"RecipientAddress": [
|
210
|
+
"./dist/dts/RecipientAddress.d.ts"
|
211
|
+
],
|
212
|
+
"RecipientBehaviour": [
|
213
|
+
"./dist/dts/RecipientBehaviour.d.ts"
|
214
|
+
],
|
215
|
+
"RecipientBehaviourContext": [
|
216
|
+
"./dist/dts/RecipientBehaviourContext.d.ts"
|
217
|
+
],
|
218
|
+
"RecipientType": [
|
219
|
+
"./dist/dts/RecipientType.d.ts"
|
220
|
+
],
|
221
|
+
"Serialization": [
|
222
|
+
"./dist/dts/Serialization.d.ts"
|
223
|
+
],
|
224
|
+
"SerializedEnvelope": [
|
225
|
+
"./dist/dts/SerializedEnvelope.d.ts"
|
226
|
+
],
|
227
|
+
"SerializedMessage": [
|
228
|
+
"./dist/dts/SerializedMessage.d.ts"
|
229
|
+
],
|
230
|
+
"ShardId": [
|
231
|
+
"./dist/dts/ShardId.d.ts"
|
232
|
+
],
|
233
|
+
"ShardManager": [
|
234
|
+
"./dist/dts/ShardManager.d.ts"
|
235
|
+
],
|
236
|
+
"ShardManagerClient": [
|
237
|
+
"./dist/dts/ShardManagerClient.d.ts"
|
238
|
+
],
|
239
|
+
"Sharding": [
|
240
|
+
"./dist/dts/Sharding.d.ts"
|
241
|
+
],
|
242
|
+
"ShardingConfig": [
|
243
|
+
"./dist/dts/ShardingConfig.d.ts"
|
244
|
+
],
|
245
|
+
"ShardingEvent": [
|
246
|
+
"./dist/dts/ShardingEvent.d.ts"
|
247
|
+
],
|
248
|
+
"ShardingException": [
|
249
|
+
"./dist/dts/ShardingException.d.ts"
|
250
|
+
],
|
251
|
+
"ShardingRegistrationEvent": [
|
252
|
+
"./dist/dts/ShardingRegistrationEvent.d.ts"
|
253
|
+
],
|
254
|
+
"Storage": [
|
255
|
+
"./dist/dts/Storage.d.ts"
|
256
|
+
]
|
257
|
+
}
|
258
|
+
}
|
259
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/**
|
2
|
+
* @since 1.0.0
|
3
|
+
*/
|
4
|
+
import type * as Duration from "effect/Duration"
|
5
|
+
import type * as Effect from "effect/Effect"
|
6
|
+
import type * as Scope from "effect/Scope"
|
7
|
+
import type * as AtLeastOnceStorage from "./AtLeastOnceStorage.js"
|
8
|
+
import * as internal from "./internal/atLeastOnce.js"
|
9
|
+
import type * as RecipientBehaviour from "./RecipientBehaviour.js"
|
10
|
+
import type * as Sharding from "./Sharding.js"
|
11
|
+
|
12
|
+
/**
|
13
|
+
* @since 1.0.0
|
14
|
+
* @category constructors
|
15
|
+
*/
|
16
|
+
export const atLeastOnceRecipientBehaviour: <Msg, R>(
|
17
|
+
fa: RecipientBehaviour.RecipientBehaviour<Msg, R>
|
18
|
+
) => RecipientBehaviour.RecipientBehaviour<Msg, R | AtLeastOnceStorage.AtLeastOnceStorage> =
|
19
|
+
internal.atLeastOnceRecipientBehaviour
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @since 1.0.0
|
23
|
+
* @category utils
|
24
|
+
*/
|
25
|
+
export const runPendingMessageSweeperScoped: (
|
26
|
+
interval: Duration.Duration
|
27
|
+
) => Effect.Effect<void, never, AtLeastOnceStorage.AtLeastOnceStorage | Sharding.Sharding | Scope.Scope> =
|
28
|
+
internal.runPendingMessageSweeperScoped
|
@@ -0,0 +1,96 @@
|
|
1
|
+
/**
|
2
|
+
* @since 1.0.0
|
3
|
+
*/
|
4
|
+
import type { Message } from "@effect/cluster/Message"
|
5
|
+
import type { SqlClient } from "@effect/sql/SqlClient"
|
6
|
+
import type { SqlError } from "@effect/sql/SqlError"
|
7
|
+
import type { Tag } from "effect/Context"
|
8
|
+
import type { Effect } from "effect/Effect"
|
9
|
+
import type { Layer } from "effect/Layer"
|
10
|
+
import type { Stream } from "effect/Stream"
|
11
|
+
import * as Internal from "./internal/atLeastOnceStorage.js"
|
12
|
+
import type { RecipientType } from "./RecipientType.js"
|
13
|
+
import type { Serialization } from "./Serialization.js"
|
14
|
+
import type { SerializedEnvelope } from "./SerializedEnvelope.js"
|
15
|
+
import type { ShardId } from "./ShardId.js"
|
16
|
+
|
17
|
+
/**
|
18
|
+
* @since 1.0.0
|
19
|
+
* @category symbols
|
20
|
+
*/
|
21
|
+
export const TypeId: unique symbol = Internal.TypeId
|
22
|
+
|
23
|
+
/**
|
24
|
+
* @since 1.0.0
|
25
|
+
* @category symbols
|
26
|
+
*/
|
27
|
+
export type TypeId = typeof TypeId
|
28
|
+
|
29
|
+
/**
|
30
|
+
* @since 1.0.0
|
31
|
+
* @category models
|
32
|
+
*/
|
33
|
+
export interface AtLeastOnceStorage extends AtLeastOnceStorage.Proto {
|
34
|
+
/**
|
35
|
+
* Upserts a message into the storage, eventually returning the already
|
36
|
+
* existing message state as result in the storage.
|
37
|
+
*/
|
38
|
+
upsert<Msg extends Message.Any>(
|
39
|
+
recipientType: RecipientType<Msg>,
|
40
|
+
shardId: ShardId,
|
41
|
+
entityId: string,
|
42
|
+
message: Msg
|
43
|
+
): Effect<void>
|
44
|
+
|
45
|
+
/**
|
46
|
+
* Marks the specified message as processed to prevent additional attempts to
|
47
|
+
* send the message.
|
48
|
+
*/
|
49
|
+
markAsProcessed<Msg extends Message.Any>(
|
50
|
+
recipientType: RecipientType<Msg>,
|
51
|
+
shardId: ShardId,
|
52
|
+
entityId: string,
|
53
|
+
message: Msg
|
54
|
+
): Effect<void>
|
55
|
+
|
56
|
+
/**
|
57
|
+
* Returns a stream of messages that will be sent to the local pod as a second
|
58
|
+
* attempt.
|
59
|
+
*/
|
60
|
+
sweepPending(shardIds: Iterable<ShardId>): Stream<SerializedEnvelope>
|
61
|
+
}
|
62
|
+
|
63
|
+
/**
|
64
|
+
* @since 1.0.0
|
65
|
+
* @category context
|
66
|
+
*/
|
67
|
+
export const AtLeastOnceStorage: Tag<AtLeastOnceStorage, AtLeastOnceStorage> = Internal.atLeastOnceStorageTag
|
68
|
+
|
69
|
+
/**
|
70
|
+
* @since 1.0.0
|
71
|
+
*/
|
72
|
+
export declare namespace AtLeastOnceStorage {
|
73
|
+
/**
|
74
|
+
* @since 1.0.0
|
75
|
+
* @category models
|
76
|
+
*/
|
77
|
+
export interface Proto {
|
78
|
+
readonly [TypeId]: TypeId
|
79
|
+
}
|
80
|
+
|
81
|
+
/**
|
82
|
+
* @since 1.0.0
|
83
|
+
* @category models
|
84
|
+
*/
|
85
|
+
export interface MakeOptions {
|
86
|
+
readonly table: string
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
/**
|
91
|
+
* @since 1.0.0
|
92
|
+
* @category context
|
93
|
+
*/
|
94
|
+
export const layer: (
|
95
|
+
options: AtLeastOnceStorage.MakeOptions
|
96
|
+
) => Layer<AtLeastOnceStorage, SqlError, SqlClient | Serialization> = Internal.layer
|
@@ -0,0 +1,48 @@
|
|
1
|
+
/**
|
2
|
+
* @since 1.0.0
|
3
|
+
*/
|
4
|
+
import type * as Effect from "effect/Effect"
|
5
|
+
import type * as Either from "effect/Either"
|
6
|
+
import type * as HashMap from "effect/HashMap"
|
7
|
+
import type * as Message from "./Message.js"
|
8
|
+
import type * as PodAddress from "./PodAddress.js"
|
9
|
+
import type * as ShardingException from "./ShardingException.js"
|
10
|
+
|
11
|
+
/**
|
12
|
+
* An interface to communicate with a remote broadcast receiver
|
13
|
+
*
|
14
|
+
* @since 1.0.0
|
15
|
+
* @category models
|
16
|
+
*/
|
17
|
+
export interface Broadcaster<Msg extends Message.Message.Any> {
|
18
|
+
/**
|
19
|
+
* Broadcast a message without waiting for a response (fire and forget)
|
20
|
+
*
|
21
|
+
* You can use Effect timeout to get send timeouts. The default behaviour is to send the message indifinetely.
|
22
|
+
* @since 1.0.0
|
23
|
+
*/
|
24
|
+
readonly broadcastDiscard: (
|
25
|
+
topicId: string
|
26
|
+
) => (message: Msg) => Effect.Effect<void, ShardingException.ShardingException>
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Broadcast a message and wait for a response from each consumer
|
30
|
+
*
|
31
|
+
* You can use Effect timeout to get send timeouts. The default behaviour is to send the message indifinetely
|
32
|
+
* @since 1.0.0
|
33
|
+
*/
|
34
|
+
readonly broadcast: (
|
35
|
+
topicId: string
|
36
|
+
) => <A extends Msg>(
|
37
|
+
message: A
|
38
|
+
) => Effect.Effect<
|
39
|
+
HashMap.HashMap<
|
40
|
+
PodAddress.PodAddress,
|
41
|
+
Either.Either<
|
42
|
+
ShardingException.ShardingException | Message.Message.Error<A>,
|
43
|
+
Message.Message.Success<A>
|
44
|
+
>
|
45
|
+
>,
|
46
|
+
ShardingException.ShardingException
|
47
|
+
>
|
48
|
+
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
/**
|
2
|
+
* @since 1.0.0
|
3
|
+
*/
|
4
|
+
import type * as ConfigError from "effect/ConfigError"
|
5
|
+
import type * as Context from "effect/Context"
|
6
|
+
import type * as Duration from "effect/Duration"
|
7
|
+
import type * as Layer from "effect/Layer"
|
8
|
+
import * as internal from "./internal/managerConfig.js"
|
9
|
+
|
10
|
+
/**
|
11
|
+
* @since 1.0.0
|
12
|
+
* @category symbols
|
13
|
+
*/
|
14
|
+
export const ManagerConfigTypeId: unique symbol = internal.ManagerConfigTypeId
|
15
|
+
|
16
|
+
/**
|
17
|
+
* @since 1.0.0
|
18
|
+
* @category symbols
|
19
|
+
*/
|
20
|
+
export type ManagerConfigTypeId = typeof ManagerConfigTypeId
|
21
|
+
|
22
|
+
/**
|
23
|
+
* This is the Shard Manager configuration.
|
24
|
+
*
|
25
|
+
* @param numberOfShards number of shards (see documentation on how to choose this), should be same on all nodes
|
26
|
+
* @param apiPort port to expose the GraphQL API
|
27
|
+
* @param rebalanceInterval interval for regular rebalancing of shards
|
28
|
+
* @param rebalanceRetryInterval retry interval for rebalancing when some shards failed to be rebalanced
|
29
|
+
* @param pingTimeout time to wait for a pod to respond to a ping request
|
30
|
+
* @param persistRetryInterval retry interval for persistence of pods and shard assignments
|
31
|
+
* @param persistRetryCount max retry count for persistence of pods and shard assignments
|
32
|
+
* @param rebalanceRate max ratio of shards to rebalance at once
|
33
|
+
* @since 1.0.0
|
34
|
+
* @category models
|
35
|
+
*/
|
36
|
+
export interface ManagerConfig {
|
37
|
+
readonly numberOfShards: number
|
38
|
+
readonly apiPort: number
|
39
|
+
readonly rebalanceInterval: Duration.Duration
|
40
|
+
readonly rebalanceRetryInterval: Duration.Duration
|
41
|
+
readonly pingTimeout: Duration.Duration
|
42
|
+
readonly persistRetryInterval: Duration.Duration
|
43
|
+
readonly persistRetryCount: number
|
44
|
+
readonly rebalanceRate: number
|
45
|
+
}
|
46
|
+
|
47
|
+
/**
|
48
|
+
* @since 1.0.0
|
49
|
+
* @category context
|
50
|
+
*/
|
51
|
+
export const ManagerConfig: Context.Tag<ManagerConfig, ManagerConfig> = internal.managerConfigTag
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Uses the default as ManagerConfig.
|
55
|
+
*
|
56
|
+
* @since 1.0.0
|
57
|
+
* @category utils
|
58
|
+
*/
|
59
|
+
export const defaults: Layer.Layer<ManagerConfig> = internal.defaults
|
60
|
+
|
61
|
+
/**
|
62
|
+
* Reads the ManagerConfig from the provided Config.
|
63
|
+
*
|
64
|
+
* @since 1.0.0
|
65
|
+
* @category constructors
|
66
|
+
*/
|
67
|
+
export const fromConfig: Layer.Layer<ManagerConfig, ConfigError.ConfigError, never> = internal.fromConfig
|
package/src/Message.ts
ADDED
@@ -0,0 +1,132 @@
|
|
1
|
+
/**
|
2
|
+
* @since 1.0.0
|
3
|
+
*/
|
4
|
+
import type * as Schema from "@effect/schema/Schema"
|
5
|
+
import type * as Serializable from "@effect/schema/Serializable"
|
6
|
+
import type * as Exit_ from "effect/Exit"
|
7
|
+
import type * as PrimaryKey from "effect/PrimaryKey"
|
8
|
+
import type * as Types from "effect/Types"
|
9
|
+
import * as internal from "./internal/message.js"
|
10
|
+
|
11
|
+
/**
|
12
|
+
* A Message is a request for an entity that will process it.
|
13
|
+
* A Message also has a PrimaryKey so that the receiver is eventually able to detect duplicated messages.
|
14
|
+
*
|
15
|
+
* @since 1.0.0
|
16
|
+
* @category models
|
17
|
+
*/
|
18
|
+
export interface Message<A, AI, E, EI>
|
19
|
+
extends Serializable.SerializableWithResult<any, any, never, A, AI, E, EI, never>, PrimaryKey.PrimaryKey
|
20
|
+
{}
|
21
|
+
|
22
|
+
/**
|
23
|
+
* @since 1.0.0
|
24
|
+
* @category models
|
25
|
+
*/
|
26
|
+
export namespace Message {
|
27
|
+
/**
|
28
|
+
* @since 1.0.0
|
29
|
+
* @category models
|
30
|
+
*/
|
31
|
+
export type Any =
|
32
|
+
| Message<any, any, any, any>
|
33
|
+
| Message<any, any, never, never>
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Extracts the success type from a `Message`.
|
37
|
+
*
|
38
|
+
* @since 1.0.0
|
39
|
+
* @category utils
|
40
|
+
*/
|
41
|
+
export type Success<S> = S extends Message<infer A, infer _AI, infer _E, infer _EI> ? A : never
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Extracts the success type from a `Message`.
|
45
|
+
*
|
46
|
+
* @since 1.0.0
|
47
|
+
* @category utils
|
48
|
+
*/
|
49
|
+
export type SuccessEncoded<S> = S extends Message<infer _A, infer _AI, infer _E, infer _EI> ? _AI : never
|
50
|
+
|
51
|
+
/**
|
52
|
+
* Extracts the error type from a `Message`.
|
53
|
+
*
|
54
|
+
* @since 1.0.0
|
55
|
+
* @category utils
|
56
|
+
*/
|
57
|
+
export type Error<S> = S extends Message<infer _A, infer _AI, infer E, infer _EI> ? E : never
|
58
|
+
|
59
|
+
/**
|
60
|
+
* Extracts the error type from a `Message`.
|
61
|
+
*
|
62
|
+
* @since 1.0.0
|
63
|
+
* @category utils
|
64
|
+
*/
|
65
|
+
export type ErrorEncoded<S> = S extends Message<infer _A, infer _AI, infer _E, infer _EI> ? _EI : never
|
66
|
+
|
67
|
+
/**
|
68
|
+
* Extracts the exit type from a `Message`.
|
69
|
+
*
|
70
|
+
* @since 1.0.0
|
71
|
+
* @category utils
|
72
|
+
*/
|
73
|
+
export type Exit<S> = S extends Serializable.WithResult<infer A, infer _AI, infer E, infer _EI, infer _R> ?
|
74
|
+
Exit_.Exit<A, E>
|
75
|
+
: never
|
76
|
+
}
|
77
|
+
|
78
|
+
/**
|
79
|
+
* @since 1.0.0
|
80
|
+
* @category schemas
|
81
|
+
*/
|
82
|
+
export interface TaggedMessageConstructor<Tag extends string, Self, R, IS, S, IE, E, IA, A>
|
83
|
+
extends Schema.Schema<Self, Types.Simplify<IS & { readonly _tag: Tag }>, R>
|
84
|
+
{
|
85
|
+
new(
|
86
|
+
props: Types.Equals<S, {}> extends true ? void : S,
|
87
|
+
disableValidation?: boolean
|
88
|
+
): Schema.TaggedRequest<Tag, S, IS & { readonly _tag: Tag }, never, A, IA, E, IE, never> & S & PrimaryKey.PrimaryKey
|
89
|
+
}
|
90
|
+
|
91
|
+
/**
|
92
|
+
* @since 1.0.0
|
93
|
+
* @category schemas
|
94
|
+
*/
|
95
|
+
export const TaggedMessage = internal.TaggedMessage_
|
96
|
+
|
97
|
+
/**
|
98
|
+
* @since 1.0.0
|
99
|
+
* @category utils
|
100
|
+
*/
|
101
|
+
export const isMessageWithResult: (value: unknown) => value is Message<unknown, unknown, unknown, unknown> =
|
102
|
+
internal.isMessageWithResult
|
103
|
+
|
104
|
+
/**
|
105
|
+
* Extracts the exit schema from a Message. This schema will be used to encode the remote exit of the Message processor.
|
106
|
+
*
|
107
|
+
* @since 1.0.0
|
108
|
+
* @category utils
|
109
|
+
*/
|
110
|
+
export const exitSchema: <A extends Message.Any>(
|
111
|
+
message: A
|
112
|
+
) => Schema.Schema<Message.Exit<A>, unknown> = internal.exitSchema
|
113
|
+
|
114
|
+
/**
|
115
|
+
* Extracts the failure schema from a Message. This schema will be used to encode remote failures of the Message processor.
|
116
|
+
*
|
117
|
+
* @since 1.0.0
|
118
|
+
* @category utils
|
119
|
+
*/
|
120
|
+
export const failureSchema: <A extends Message.Any>(
|
121
|
+
message: A
|
122
|
+
) => Schema.Schema<Message.Error<A>, unknown> = internal.failureSchema
|
123
|
+
|
124
|
+
/**
|
125
|
+
* Extracts the success schema from a Message. This schema will be used to encode the remote success of the Message processor.
|
126
|
+
*
|
127
|
+
* @since 1.0.0
|
128
|
+
* @category utils
|
129
|
+
*/
|
130
|
+
export const successSchema: <A extends Message.Any>(
|
131
|
+
message: A
|
132
|
+
) => Schema.Schema<Message.Success<A>, unknown> = internal.successSchema
|