@warlock.js/herald 4.0.166 → 4.0.171
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/cjs/communicators/broker-registry.d.ts +155 -0
- package/cjs/communicators/broker-registry.d.ts.map +1 -0
- package/cjs/communicators/broker-registry.js +206 -0
- package/cjs/communicators/broker-registry.js.map +1 -0
- package/{esm/communicators/communicator.d.ts → cjs/communicators/broker.d.ts} +20 -20
- package/cjs/communicators/broker.d.ts.map +1 -0
- package/cjs/communicators/{communicator.js → broker.js} +12 -12
- package/cjs/communicators/broker.js.map +1 -0
- package/cjs/communicators/index.d.ts +2 -2
- package/cjs/communicators/index.d.ts.map +1 -1
- package/{esm/contracts/communicator-driver.contract.d.ts → cjs/contracts/broker-driver.contract.d.ts} +8 -8
- package/cjs/contracts/broker-driver.contract.d.ts.map +1 -0
- package/cjs/contracts/channel.contract.d.ts +6 -1
- package/cjs/contracts/channel.contract.d.ts.map +1 -1
- package/cjs/contracts/index.d.ts +1 -1
- package/cjs/contracts/index.d.ts.map +1 -1
- package/cjs/decorators/consumable.d.ts +2 -2
- package/cjs/decorators/consumable.d.ts.map +1 -1
- package/cjs/decorators/consumable.js +12 -12
- package/cjs/decorators/consumable.js.map +1 -1
- package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts +2 -1
- package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts.map +1 -1
- package/cjs/drivers/rabbitmq/rabbitmq-channel.js +4 -2
- package/cjs/drivers/rabbitmq/rabbitmq-channel.js.map +1 -1
- package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts +10 -8
- package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts.map +1 -1
- package/cjs/drivers/rabbitmq/rabbitmq-driver.js +11 -10
- package/cjs/drivers/rabbitmq/rabbitmq-driver.js.map +1 -1
- package/cjs/index.d.ts +7 -7
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +1 -1
- package/cjs/message-managers/event-consumer.d.ts +2 -1
- package/cjs/message-managers/event-consumer.d.ts.map +1 -1
- package/cjs/message-managers/event-consumer.js +7 -1
- package/cjs/message-managers/event-consumer.js.map +1 -1
- package/cjs/message-managers/event-message.d.ts +7 -4
- package/cjs/message-managers/event-message.d.ts.map +1 -1
- package/cjs/message-managers/event-message.js +8 -8
- package/cjs/message-managers/event-message.js.map +1 -1
- package/cjs/message-managers/prepare-consumer-subscription.d.ts +1 -1
- package/cjs/message-managers/prepare-consumer-subscription.d.ts.map +1 -1
- package/cjs/message-managers/prepare-consumer-subscription.js +4 -3
- package/cjs/message-managers/prepare-consumer-subscription.js.map +1 -1
- package/cjs/types/channel.types.d.ts +19 -0
- package/cjs/types/channel.types.d.ts.map +1 -0
- package/cjs/types/connection.types.d.ts +65 -0
- package/cjs/types/connection.types.d.ts.map +1 -0
- package/cjs/types/driver.types.d.ts +10 -0
- package/cjs/types/driver.types.d.ts.map +1 -0
- package/cjs/types/index.d.ts +8 -0
- package/cjs/types/index.d.ts.map +1 -0
- package/cjs/types/message.types.d.ts +34 -0
- package/cjs/types/message.types.d.ts.map +1 -0
- package/cjs/types/publish.types.d.ts +13 -0
- package/cjs/types/publish.types.d.ts.map +1 -0
- package/cjs/types/registry.types.d.ts +4 -0
- package/cjs/types/registry.types.d.ts.map +1 -0
- package/cjs/types/subscribe.types.d.ts +18 -0
- package/cjs/types/subscribe.types.d.ts.map +1 -0
- package/{esm/utils/connect-to-communicator.d.ts → cjs/utils/connect-to-broker.d.ts} +43 -41
- package/cjs/utils/connect-to-broker.d.ts.map +1 -0
- package/cjs/utils/{connect-to-communicator.js → connect-to-broker.js} +52 -50
- package/cjs/utils/connect-to-broker.js.map +1 -0
- package/cjs/utils/index.d.ts +1 -1
- package/cjs/utils/index.d.ts.map +1 -1
- package/esm/communicators/broker-registry.d.ts +155 -0
- package/esm/communicators/broker-registry.d.ts.map +1 -0
- package/esm/communicators/broker-registry.js +206 -0
- package/esm/communicators/broker-registry.js.map +1 -0
- package/{cjs/communicators/communicator.d.ts → esm/communicators/broker.d.ts} +20 -20
- package/esm/communicators/broker.d.ts.map +1 -0
- package/esm/communicators/{communicator.js → broker.js} +12 -12
- package/esm/communicators/broker.js.map +1 -0
- package/esm/communicators/index.d.ts +2 -2
- package/esm/communicators/index.d.ts.map +1 -1
- package/{cjs/contracts/communicator-driver.contract.d.ts → esm/contracts/broker-driver.contract.d.ts} +8 -8
- package/esm/contracts/broker-driver.contract.d.ts.map +1 -0
- package/esm/contracts/channel.contract.d.ts +6 -1
- package/esm/contracts/channel.contract.d.ts.map +1 -1
- package/esm/contracts/index.d.ts +1 -1
- package/esm/contracts/index.d.ts.map +1 -1
- package/esm/decorators/consumable.d.ts +2 -2
- package/esm/decorators/consumable.d.ts.map +1 -1
- package/esm/decorators/consumable.js +12 -12
- package/esm/decorators/consumable.js.map +1 -1
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts +2 -1
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts.map +1 -1
- package/esm/drivers/rabbitmq/rabbitmq-channel.js +4 -2
- package/esm/drivers/rabbitmq/rabbitmq-channel.js.map +1 -1
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts +10 -8
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts.map +1 -1
- package/esm/drivers/rabbitmq/rabbitmq-driver.js +11 -10
- package/esm/drivers/rabbitmq/rabbitmq-driver.js.map +1 -1
- package/esm/index.d.ts +7 -7
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/message-managers/event-consumer.d.ts +2 -1
- package/esm/message-managers/event-consumer.d.ts.map +1 -1
- package/esm/message-managers/event-consumer.js +7 -1
- package/esm/message-managers/event-consumer.js.map +1 -1
- package/esm/message-managers/event-message.d.ts +7 -4
- package/esm/message-managers/event-message.d.ts.map +1 -1
- package/esm/message-managers/event-message.js +8 -8
- package/esm/message-managers/event-message.js.map +1 -1
- package/esm/message-managers/prepare-consumer-subscription.d.ts +1 -1
- package/esm/message-managers/prepare-consumer-subscription.d.ts.map +1 -1
- package/esm/message-managers/prepare-consumer-subscription.js +4 -3
- package/esm/message-managers/prepare-consumer-subscription.js.map +1 -1
- package/esm/types/channel.types.d.ts +19 -0
- package/esm/types/channel.types.d.ts.map +1 -0
- package/esm/types/connection.types.d.ts +65 -0
- package/esm/types/connection.types.d.ts.map +1 -0
- package/esm/types/driver.types.d.ts +10 -0
- package/esm/types/driver.types.d.ts.map +1 -0
- package/esm/types/index.d.ts +8 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/message.types.d.ts +34 -0
- package/esm/types/message.types.d.ts.map +1 -0
- package/esm/types/publish.types.d.ts +13 -0
- package/esm/types/publish.types.d.ts.map +1 -0
- package/esm/types/registry.types.d.ts +4 -0
- package/esm/types/registry.types.d.ts.map +1 -0
- package/esm/types/subscribe.types.d.ts +18 -0
- package/esm/types/subscribe.types.d.ts.map +1 -0
- package/{cjs/utils/connect-to-communicator.d.ts → esm/utils/connect-to-broker.d.ts} +43 -41
- package/esm/utils/connect-to-broker.d.ts.map +1 -0
- package/esm/utils/{connect-to-communicator.js → connect-to-broker.js} +52 -50
- package/esm/utils/connect-to-broker.js.map +1 -0
- package/esm/utils/index.d.ts +1 -1
- package/esm/utils/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/cjs/communicators/communicator-registry.d.ts +0 -155
- package/cjs/communicators/communicator-registry.d.ts.map +0 -1
- package/cjs/communicators/communicator-registry.js +0 -206
- package/cjs/communicators/communicator-registry.js.map +0 -1
- package/cjs/communicators/communicator.d.ts.map +0 -1
- package/cjs/communicators/communicator.js.map +0 -1
- package/cjs/contracts/communicator-driver.contract.d.ts.map +0 -1
- package/cjs/types.d.ts +0 -399
- package/cjs/types.d.ts.map +0 -1
- package/cjs/utils/connect-to-communicator.d.ts.map +0 -1
- package/cjs/utils/connect-to-communicator.js.map +0 -1
- package/esm/communicators/communicator-registry.d.ts +0 -155
- package/esm/communicators/communicator-registry.d.ts.map +0 -1
- package/esm/communicators/communicator-registry.js +0 -206
- package/esm/communicators/communicator-registry.js.map +0 -1
- package/esm/communicators/communicator.d.ts.map +0 -1
- package/esm/communicators/communicator.js.map +0 -1
- package/esm/contracts/communicator-driver.contract.d.ts.map +0 -1
- package/esm/types.d.ts +0 -399
- package/esm/types.d.ts.map +0 -1
- package/esm/utils/connect-to-communicator.d.ts.map +0 -1
- package/esm/utils/connect-to-communicator.js.map +0 -1
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { BrokerRegistryEvent, BrokerRegistryListener } from "../types";
|
|
2
|
+
import { Broker, type BrokerOptions } from "./broker";
|
|
3
|
+
/**
|
|
4
|
+
* Error thrown when a broker is not found
|
|
5
|
+
*/
|
|
6
|
+
export declare class MissingBrokerError extends Error {
|
|
7
|
+
readonly brokerName?: string;
|
|
8
|
+
constructor(message: string, brokerName?: string);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Broker Registry
|
|
12
|
+
*
|
|
13
|
+
* Maintains registry of named brokers.
|
|
14
|
+
* Similar to DataSourceRegistry in @warlock.js/cascade
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Register a broker
|
|
19
|
+
* brokerRegistry.register({
|
|
20
|
+
* name: "default",
|
|
21
|
+
* driver: rabbitMQDriver,
|
|
22
|
+
* isDefault: true,
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Get the default broker
|
|
26
|
+
* const comm = brokerRegistry.get();
|
|
27
|
+
*
|
|
28
|
+
* // Get a specific broker by name
|
|
29
|
+
* const analytics = brokerRegistry.get("analytics");
|
|
30
|
+
*
|
|
31
|
+
* // Listen for events
|
|
32
|
+
* brokerRegistry.on("connected", (comm) => {
|
|
33
|
+
* console.log(`${comm.name} connected`);
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
declare class BrokerRegistry {
|
|
38
|
+
private readonly sources;
|
|
39
|
+
private defaultSource?;
|
|
40
|
+
private readonly events;
|
|
41
|
+
/**
|
|
42
|
+
* Register a new broker
|
|
43
|
+
*
|
|
44
|
+
* Sets up event forwarding from the driver to the registry.
|
|
45
|
+
*
|
|
46
|
+
* @param options - Broker configuration
|
|
47
|
+
* @returns The registered broker instance
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const broker = brokerRegistry.register({
|
|
52
|
+
* name: "primary",
|
|
53
|
+
* driver: myDriver,
|
|
54
|
+
* isDefault: true,
|
|
55
|
+
* });
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
register(options: BrokerOptions): Broker;
|
|
59
|
+
/**
|
|
60
|
+
* Clear all registered brokers
|
|
61
|
+
*/
|
|
62
|
+
clear(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Listen for registry events
|
|
65
|
+
*
|
|
66
|
+
* @param event - Event to listen for
|
|
67
|
+
* @param listener - Callback function
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* brokerRegistry.on("registered", (comm) => {
|
|
72
|
+
* console.log(`Broker "${comm.name}" registered`);
|
|
73
|
+
* });
|
|
74
|
+
*
|
|
75
|
+
* brokerRegistry.on("connected", (comm) => {
|
|
76
|
+
* console.log(`Broker "${comm.name}" connected`);
|
|
77
|
+
* });
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
on(event: BrokerRegistryEvent, listener: BrokerRegistryListener): void;
|
|
81
|
+
/**
|
|
82
|
+
* Listen for a registry event once
|
|
83
|
+
*
|
|
84
|
+
* @param event - Event to listen for
|
|
85
|
+
* @param listener - Callback function
|
|
86
|
+
*/
|
|
87
|
+
once(event: BrokerRegistryEvent, listener: BrokerRegistryListener): void;
|
|
88
|
+
/**
|
|
89
|
+
* Remove an event listener
|
|
90
|
+
*
|
|
91
|
+
* @param event - Event to stop listening for
|
|
92
|
+
* @param listener - Callback to remove
|
|
93
|
+
*/
|
|
94
|
+
off(event: BrokerRegistryEvent, listener: BrokerRegistryListener): void;
|
|
95
|
+
/**
|
|
96
|
+
* Get a broker by name or the default one
|
|
97
|
+
*
|
|
98
|
+
* @param name - Optional broker name
|
|
99
|
+
* @returns Broker instance
|
|
100
|
+
* @throws MissingBrokerError if not found
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* // Get default broker
|
|
105
|
+
* const comm = brokerRegistry.get();
|
|
106
|
+
*
|
|
107
|
+
* // Get specific broker
|
|
108
|
+
* const analytics = brokerRegistry.get("analytics");
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
get(name?: string): Broker;
|
|
112
|
+
/**
|
|
113
|
+
* Check if a broker exists
|
|
114
|
+
*
|
|
115
|
+
* @param name - Broker name to check
|
|
116
|
+
* @returns True if exists
|
|
117
|
+
*/
|
|
118
|
+
has(name: string): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Check if any brokers are registered
|
|
121
|
+
*/
|
|
122
|
+
hasAny(): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Get all registered brokers
|
|
125
|
+
*
|
|
126
|
+
* @returns Array of all brokers
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* // Disconnect all brokers
|
|
131
|
+
* for (const comm of brokerRegistry.getAll()) {
|
|
132
|
+
* await comm.disconnect();
|
|
133
|
+
* }
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
getAll(): Broker[];
|
|
137
|
+
/**
|
|
138
|
+
* Get all broker names
|
|
139
|
+
*
|
|
140
|
+
* @returns Array of broker names
|
|
141
|
+
*/
|
|
142
|
+
getNames(): string[];
|
|
143
|
+
/**
|
|
144
|
+
* Get the default broker (if any)
|
|
145
|
+
*
|
|
146
|
+
* @returns Default broker or undefined
|
|
147
|
+
*/
|
|
148
|
+
getDefault(): Broker | undefined;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Global broker registry instance
|
|
152
|
+
*/
|
|
153
|
+
export declare const brokerRegistry: BrokerRegistry;
|
|
154
|
+
export {};
|
|
155
|
+
//# sourceMappingURL=broker-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broker-registry.d.ts","sourceRoot":"","sources":["../../src/communicators/broker-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAKxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C;;;;;;;;;;;;;;;;OAgBG;IACI,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IA6B/C;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;;;;;;;;;;;;;;;OAgBG;IACI,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAI7E;;;;;OAKG;IACI,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAI/E;;;;;OAKG;IACI,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAI9E;;;;;;;;;;;;;;;OAeG;IACI,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAgBjC;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACI,MAAM,IAAI,OAAO;IAIxB;;;;;;;;;;;;OAYG;IACI,MAAM,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACI,QAAQ,IAAI,MAAM,EAAE;IAI3B;;;;OAIG;IACI,UAAU,IAAI,MAAM,GAAG,SAAS;CAGxC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
'use strict';var node_events=require('node:events'),broker=require('./broker.js');/**
|
|
2
|
+
* Error thrown when a broker is not found
|
|
3
|
+
*/
|
|
4
|
+
class MissingBrokerError extends Error {
|
|
5
|
+
brokerName;
|
|
6
|
+
constructor(message, brokerName) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = "MissingBrokerError";
|
|
9
|
+
this.brokerName = brokerName;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Broker Registry
|
|
14
|
+
*
|
|
15
|
+
* Maintains registry of named brokers.
|
|
16
|
+
* Similar to DataSourceRegistry in @warlock.js/cascade
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* // Register a broker
|
|
21
|
+
* brokerRegistry.register({
|
|
22
|
+
* name: "default",
|
|
23
|
+
* driver: rabbitMQDriver,
|
|
24
|
+
* isDefault: true,
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Get the default broker
|
|
28
|
+
* const comm = brokerRegistry.get();
|
|
29
|
+
*
|
|
30
|
+
* // Get a specific broker by name
|
|
31
|
+
* const analytics = brokerRegistry.get("analytics");
|
|
32
|
+
*
|
|
33
|
+
* // Listen for events
|
|
34
|
+
* brokerRegistry.on("connected", (comm) => {
|
|
35
|
+
* console.log(`${comm.name} connected`);
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
class BrokerRegistry {
|
|
40
|
+
sources = new Map();
|
|
41
|
+
defaultSource;
|
|
42
|
+
events = new node_events.EventEmitter();
|
|
43
|
+
/**
|
|
44
|
+
* Register a new broker
|
|
45
|
+
*
|
|
46
|
+
* Sets up event forwarding from the driver to the registry.
|
|
47
|
+
*
|
|
48
|
+
* @param options - Broker configuration
|
|
49
|
+
* @returns The registered broker instance
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const broker = brokerRegistry.register({
|
|
54
|
+
* name: "primary",
|
|
55
|
+
* driver: myDriver,
|
|
56
|
+
* isDefault: true,
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
register(options) {
|
|
61
|
+
const broker$1 = new broker.Broker(options);
|
|
62
|
+
this.sources.set(broker$1.name, broker$1);
|
|
63
|
+
const isNewDefault = broker$1.isDefault || !this.defaultSource;
|
|
64
|
+
if (isNewDefault) {
|
|
65
|
+
this.defaultSource = broker$1;
|
|
66
|
+
}
|
|
67
|
+
// Emit registration events
|
|
68
|
+
this.events.emit("registered", broker$1);
|
|
69
|
+
if (isNewDefault) {
|
|
70
|
+
this.events.emit("default-registered", broker$1);
|
|
71
|
+
}
|
|
72
|
+
// Forward driver events to registry
|
|
73
|
+
broker$1.driver.on("connected", () => {
|
|
74
|
+
this.events.emit("connected", broker$1);
|
|
75
|
+
});
|
|
76
|
+
broker$1.driver.on("disconnected", () => {
|
|
77
|
+
this.events.emit("disconnected", broker$1);
|
|
78
|
+
});
|
|
79
|
+
return broker$1;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Clear all registered brokers
|
|
83
|
+
*/
|
|
84
|
+
clear() {
|
|
85
|
+
this.defaultSource = undefined;
|
|
86
|
+
this.sources.clear();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Listen for registry events
|
|
90
|
+
*
|
|
91
|
+
* @param event - Event to listen for
|
|
92
|
+
* @param listener - Callback function
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* brokerRegistry.on("registered", (comm) => {
|
|
97
|
+
* console.log(`Broker "${comm.name}" registered`);
|
|
98
|
+
* });
|
|
99
|
+
*
|
|
100
|
+
* brokerRegistry.on("connected", (comm) => {
|
|
101
|
+
* console.log(`Broker "${comm.name}" connected`);
|
|
102
|
+
* });
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
on(event, listener) {
|
|
106
|
+
this.events.on(event, listener);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Listen for a registry event once
|
|
110
|
+
*
|
|
111
|
+
* @param event - Event to listen for
|
|
112
|
+
* @param listener - Callback function
|
|
113
|
+
*/
|
|
114
|
+
once(event, listener) {
|
|
115
|
+
this.events.once(event, listener);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Remove an event listener
|
|
119
|
+
*
|
|
120
|
+
* @param event - Event to stop listening for
|
|
121
|
+
* @param listener - Callback to remove
|
|
122
|
+
*/
|
|
123
|
+
off(event, listener) {
|
|
124
|
+
this.events.off(event, listener);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get a broker by name or the default one
|
|
128
|
+
*
|
|
129
|
+
* @param name - Optional broker name
|
|
130
|
+
* @returns Broker instance
|
|
131
|
+
* @throws MissingBrokerError if not found
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* // Get default broker
|
|
136
|
+
* const comm = brokerRegistry.get();
|
|
137
|
+
*
|
|
138
|
+
* // Get specific broker
|
|
139
|
+
* const analytics = brokerRegistry.get("analytics");
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
get(name) {
|
|
143
|
+
if (name !== undefined) {
|
|
144
|
+
const source = this.sources.get(name);
|
|
145
|
+
if (!source) {
|
|
146
|
+
throw new MissingBrokerError(`Broker "${name}" is not registered.`, name);
|
|
147
|
+
}
|
|
148
|
+
return source;
|
|
149
|
+
}
|
|
150
|
+
if (!this.defaultSource) {
|
|
151
|
+
throw new MissingBrokerError("No default broker registered.");
|
|
152
|
+
}
|
|
153
|
+
return this.defaultSource;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Check if a broker exists
|
|
157
|
+
*
|
|
158
|
+
* @param name - Broker name to check
|
|
159
|
+
* @returns True if exists
|
|
160
|
+
*/
|
|
161
|
+
has(name) {
|
|
162
|
+
return this.sources.has(name);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Check if any brokers are registered
|
|
166
|
+
*/
|
|
167
|
+
hasAny() {
|
|
168
|
+
return this.sources.size > 0;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get all registered brokers
|
|
172
|
+
*
|
|
173
|
+
* @returns Array of all brokers
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* ```typescript
|
|
177
|
+
* // Disconnect all brokers
|
|
178
|
+
* for (const comm of brokerRegistry.getAll()) {
|
|
179
|
+
* await comm.disconnect();
|
|
180
|
+
* }
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
getAll() {
|
|
184
|
+
return Array.from(this.sources.values());
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get all broker names
|
|
188
|
+
*
|
|
189
|
+
* @returns Array of broker names
|
|
190
|
+
*/
|
|
191
|
+
getNames() {
|
|
192
|
+
return Array.from(this.sources.keys());
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get the default broker (if any)
|
|
196
|
+
*
|
|
197
|
+
* @returns Default broker or undefined
|
|
198
|
+
*/
|
|
199
|
+
getDefault() {
|
|
200
|
+
return this.defaultSource;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Global broker registry instance
|
|
205
|
+
*/
|
|
206
|
+
const brokerRegistry = new BrokerRegistry();exports.MissingBrokerError=MissingBrokerError;exports.brokerRegistry=brokerRegistry;//# sourceMappingURL=broker-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broker-registry.js","sources":["../../src/communicators/broker-registry.ts"],"sourcesContent":[null],"names":["EventEmitter","broker","Broker"],"mappings":"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"}
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BrokerDriverContract } from "../contracts";
|
|
2
2
|
import type { ChannelContract } from "../contracts/channel.contract";
|
|
3
3
|
import { EventMessage } from "../message-managers/event-message";
|
|
4
4
|
import { EventConsumerClass } from "../message-managers/types";
|
|
5
5
|
import type { ChannelOptions } from "../types";
|
|
6
6
|
/**
|
|
7
|
-
* Options for creating a
|
|
7
|
+
* Options for creating a Broker
|
|
8
8
|
*/
|
|
9
|
-
export interface
|
|
10
|
-
/** Unique name for this
|
|
9
|
+
export interface BrokerOptions {
|
|
10
|
+
/** Unique name for this broker */
|
|
11
11
|
name: string;
|
|
12
12
|
/** The underlying driver */
|
|
13
|
-
driver:
|
|
14
|
-
/** Whether this is the default
|
|
13
|
+
driver: BrokerDriverContract;
|
|
14
|
+
/** Whether this is the default broker */
|
|
15
15
|
isDefault?: boolean;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Broker - wrapper around a driver with metadata
|
|
19
19
|
*
|
|
20
20
|
* Similar to DataSource in @warlock.js/cascade
|
|
21
21
|
*
|
|
22
22
|
* @example
|
|
23
23
|
* ```typescript
|
|
24
|
-
* const
|
|
24
|
+
* const broker = new Broker({
|
|
25
25
|
* name: "default",
|
|
26
26
|
* driver: rabbitMQDriver,
|
|
27
27
|
* isDefault: true,
|
|
28
28
|
* });
|
|
29
29
|
*
|
|
30
30
|
* // Get a channel
|
|
31
|
-
* const channel =
|
|
31
|
+
* const channel = broker.channel("user.created");
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
|
-
export declare class
|
|
35
|
-
/** Unique name identifying this
|
|
34
|
+
export declare class Broker {
|
|
35
|
+
/** Unique name identifying this broker */
|
|
36
36
|
readonly name: string;
|
|
37
37
|
/** The underlying driver */
|
|
38
|
-
readonly driver:
|
|
39
|
-
/** Whether this is the default
|
|
38
|
+
readonly driver: BrokerDriverContract;
|
|
39
|
+
/** Whether this is the default broker */
|
|
40
40
|
readonly isDefault: boolean;
|
|
41
41
|
/**
|
|
42
|
-
* Create a new
|
|
42
|
+
* Create a new Broker
|
|
43
43
|
*
|
|
44
|
-
* @param options -
|
|
44
|
+
* @param options - Broker configuration
|
|
45
45
|
*/
|
|
46
|
-
constructor(options:
|
|
46
|
+
constructor(options: BrokerOptions);
|
|
47
47
|
/**
|
|
48
48
|
* Subscribe the given consumer
|
|
49
49
|
*/
|
|
@@ -62,10 +62,10 @@ export declare class Communicator {
|
|
|
62
62
|
* @example
|
|
63
63
|
* ```typescript
|
|
64
64
|
* // Simple channel
|
|
65
|
-
* const channel =
|
|
65
|
+
* const channel = broker.channel("notifications");
|
|
66
66
|
*
|
|
67
67
|
* // Typed channel with schema
|
|
68
|
-
* const orderChannel =
|
|
68
|
+
* const orderChannel = broker.channel<OrderPayload>("orders", {
|
|
69
69
|
* schema: OrderSchema,
|
|
70
70
|
* durable: true,
|
|
71
71
|
* });
|
|
@@ -73,7 +73,7 @@ export declare class Communicator {
|
|
|
73
73
|
*/
|
|
74
74
|
channel<TPayload = unknown>(name: string, options?: ChannelOptions<TPayload>): ChannelContract<TPayload>;
|
|
75
75
|
/**
|
|
76
|
-
* Check if the
|
|
76
|
+
* Check if the broker is connected
|
|
77
77
|
*/
|
|
78
78
|
get isConnected(): boolean;
|
|
79
79
|
/**
|
|
@@ -97,4 +97,4 @@ export declare class Communicator {
|
|
|
97
97
|
*/
|
|
98
98
|
healthCheck(): Promise<import("../types").HealthCheckResult>;
|
|
99
99
|
}
|
|
100
|
-
//# sourceMappingURL=
|
|
100
|
+
//# sourceMappingURL=broker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../src/communicators/broker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,MAAM;IACjB,0CAA0C;IAC1C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,4BAA4B;IAC5B,SAAgB,MAAM,EAAE,oBAAoB,CAAC;IAE7C,yCAAyC;IACzC,SAAgB,SAAS,EAAE,OAAO,CAAC;IAEnC;;;;OAIG;gBACgB,OAAO,EAAE,aAAa;IAMzC;;OAEG;IACI,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC;IAIlD;;OAEG;IACI,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC;IAI5E;;;;;;;;;;;;;;;;;;OAkBG;IACI,OAAO,CAAC,QAAQ,GAAG,OAAO,EAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GACjC,eAAe,CAAC,QAAQ,CAAC;IAI5B;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C;;OAEG;IACU,WAAW;CAGzB"}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
'use strict';/**
|
|
2
|
-
*
|
|
2
|
+
* Broker - wrapper around a driver with metadata
|
|
3
3
|
*
|
|
4
4
|
* Similar to DataSource in @warlock.js/cascade
|
|
5
5
|
*
|
|
6
6
|
* @example
|
|
7
7
|
* ```typescript
|
|
8
|
-
* const
|
|
8
|
+
* const broker = new Broker({
|
|
9
9
|
* name: "default",
|
|
10
10
|
* driver: rabbitMQDriver,
|
|
11
11
|
* isDefault: true,
|
|
12
12
|
* });
|
|
13
13
|
*
|
|
14
14
|
* // Get a channel
|
|
15
|
-
* const channel =
|
|
15
|
+
* const channel = broker.channel("user.created");
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
|
-
class
|
|
19
|
-
/** Unique name identifying this
|
|
18
|
+
class Broker {
|
|
19
|
+
/** Unique name identifying this broker */
|
|
20
20
|
name;
|
|
21
21
|
/** The underlying driver */
|
|
22
22
|
driver;
|
|
23
|
-
/** Whether this is the default
|
|
23
|
+
/** Whether this is the default broker */
|
|
24
24
|
isDefault;
|
|
25
25
|
/**
|
|
26
|
-
* Create a new
|
|
26
|
+
* Create a new Broker
|
|
27
27
|
*
|
|
28
|
-
* @param options -
|
|
28
|
+
* @param options - Broker configuration
|
|
29
29
|
*/
|
|
30
30
|
constructor(options) {
|
|
31
31
|
this.name = options.name;
|
|
@@ -54,10 +54,10 @@ class Communicator {
|
|
|
54
54
|
* @example
|
|
55
55
|
* ```typescript
|
|
56
56
|
* // Simple channel
|
|
57
|
-
* const channel =
|
|
57
|
+
* const channel = broker.channel("notifications");
|
|
58
58
|
*
|
|
59
59
|
* // Typed channel with schema
|
|
60
|
-
* const orderChannel =
|
|
60
|
+
* const orderChannel = broker.channel<OrderPayload>("orders", {
|
|
61
61
|
* schema: OrderSchema,
|
|
62
62
|
* durable: true,
|
|
63
63
|
* });
|
|
@@ -67,7 +67,7 @@ class Communicator {
|
|
|
67
67
|
return this.driver.channel(name, options);
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
|
-
* Check if the
|
|
70
|
+
* Check if the broker is connected
|
|
71
71
|
*/
|
|
72
72
|
get isConnected() {
|
|
73
73
|
return this.driver.isConnected;
|
|
@@ -102,4 +102,4 @@ class Communicator {
|
|
|
102
102
|
async healthCheck() {
|
|
103
103
|
return this.driver.healthCheck();
|
|
104
104
|
}
|
|
105
|
-
}exports.
|
|
105
|
+
}exports.Broker=Broker;//# sourceMappingURL=broker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broker.js","sources":["../../src/communicators/broker.ts"],"sourcesContent":[null],"names":[],"mappings":"aAkBA;;;;;;;;;;;;;;;;AAgBG;MACU,MAAM,CAAA;;AAED,IAAA,IAAI,CAAS;;AAGb,IAAA,MAAM,CAAuB;;AAG7B,IAAA,SAAS,CAAU;AAEnC;;;;AAIG;AACH,IAAA,WAAA,CAAmB,OAAsB,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KAC7C;AAED;;AAEG;AACI,IAAA,SAAS,CAAC,QAAiC,EAAA;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACxC;AAED;;AAEG;AACI,IAAA,OAAO,CAAiC,KAA6B,EAAA;AAC1E,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC5B;AAED;;;;;;;;;;;;;;;;;;AAkBG;IACI,OAAO,CACZ,IAAY,EACZ,OAAkC,EAAA;QAElC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAW,IAAI,EAAE,OAAO,CAAC,CAAC;KACrD;AAED;;AAEG;AACH,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;KAChC;AAED;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;AAClB,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;KAC7B;AAED;;AAEG;AACI,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;KAChC;AAED;;AAEG;AACI,IAAA,MAAM,cAAc,GAAA;AACzB,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;KACpC;AAED;;AAEG;AACI,IAAA,MAAM,aAAa,GAAA;AACxB,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;KACnC;AAED;;AAEG;AACI,IAAA,MAAM,WAAW,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;KAClC;AACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
1
|
+
export * from "./broker";
|
|
2
|
+
export * from "./broker-registry";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/communicators/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/communicators/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type EventMessage } from "../message-managers/event-message";
|
|
2
2
|
import { EventConsumerClass } from "../message-managers/types";
|
|
3
|
-
import type {
|
|
3
|
+
import type { BrokerDriverType, BrokerEvent, BrokerEventListener, ChannelOptions, HealthCheckResult } from "../types";
|
|
4
4
|
import type { ChannelContract } from "./channel.contract";
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Broker Driver Contract
|
|
7
7
|
*
|
|
8
8
|
* Base contract for all message bus drivers (RabbitMQ, Kafka, etc.)
|
|
9
9
|
* Similar to DriverContract in @warlock.js/cascade
|
|
@@ -11,19 +11,19 @@ import type { ChannelContract } from "./channel.contract";
|
|
|
11
11
|
* @example
|
|
12
12
|
* ```typescript
|
|
13
13
|
* // Driver implementation
|
|
14
|
-
* class RabbitMQDriver implements
|
|
14
|
+
* class RabbitMQDriver implements BrokerDriverContract {
|
|
15
15
|
* readonly name = "rabbitmq";
|
|
16
16
|
* // ...
|
|
17
17
|
* }
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
export interface
|
|
20
|
+
export interface BrokerDriverContract {
|
|
21
21
|
/**
|
|
22
22
|
* Driver name identifier
|
|
23
23
|
*
|
|
24
24
|
* @example "rabbitmq", "kafka", "redis-streams"
|
|
25
25
|
*/
|
|
26
|
-
readonly name:
|
|
26
|
+
readonly name: BrokerDriverType;
|
|
27
27
|
/**
|
|
28
28
|
* Whether currently connected to the message broker
|
|
29
29
|
*/
|
|
@@ -76,14 +76,14 @@ export interface CommunicatorDriverContract {
|
|
|
76
76
|
* });
|
|
77
77
|
* ```
|
|
78
78
|
*/
|
|
79
|
-
on(event:
|
|
79
|
+
on(event: BrokerEvent, listener: BrokerEventListener): void;
|
|
80
80
|
/**
|
|
81
81
|
* Remove an event listener
|
|
82
82
|
*
|
|
83
83
|
* @param event - Event name
|
|
84
84
|
* @param listener - Callback to remove
|
|
85
85
|
*/
|
|
86
|
-
off(event:
|
|
86
|
+
off(event: BrokerEvent, listener: BrokerEventListener): void;
|
|
87
87
|
/**
|
|
88
88
|
* Subscribe the given consumer class to the driver
|
|
89
89
|
*
|
|
@@ -193,4 +193,4 @@ export interface CommunicatorDriverContract {
|
|
|
193
193
|
*/
|
|
194
194
|
closeChannel(name: string): Promise<void>;
|
|
195
195
|
}
|
|
196
|
-
//# sourceMappingURL=
|
|
196
|
+
//# sourceMappingURL=broker-driver.contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broker-driver.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/broker-driver.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B;;;;;;;;;;OAUG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;;;;;;;OASG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAE5D;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAE7D;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAAC;IAEpD;;;;;;;;;OASG;IACH,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAE7E;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,QAAQ,GAAG,OAAO,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GACjC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE7B;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;;;;;;;;OASG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B;;;;;;;;;;;;;;OAcG;IACH,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE1C;;;;OAIG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C"}
|
|
@@ -9,7 +9,7 @@ import type { ChannelOptions, ChannelStats, MessageHandler, PublishOptions, Requ
|
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
11
|
* // Get a typed channel
|
|
12
|
-
* const userChannel =
|
|
12
|
+
* const userChannel = herald().channel<UserPayload>("user.created");
|
|
13
13
|
*
|
|
14
14
|
* // Publish
|
|
15
15
|
* await userChannel.publish({ userId: 1, email: "test@example.com" });
|
|
@@ -182,5 +182,10 @@ export interface ChannelContract<TPayload = unknown> {
|
|
|
182
182
|
* Creates the channel if it doesn't exist, or verifies options match.
|
|
183
183
|
*/
|
|
184
184
|
assert(): Promise<void>;
|
|
185
|
+
/**
|
|
186
|
+
* Stop consuming messages on this channel.
|
|
187
|
+
* Cancels all active subscriptions gracefully.
|
|
188
|
+
*/
|
|
189
|
+
stopConsuming(): Promise<void>;
|
|
185
190
|
}
|
|
186
191
|
//# sourceMappingURL=channel.contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/channel.contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,GAAG,OAAO;IACjD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE3C;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhG;;;;;;;;;OASG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9F;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,SAAS,GAAG,OAAO,EACzB,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,GAC5C,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;;;;;;OAUG;IACH,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/B;;;;;;;;;;;;OAYG;IACH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3B;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"channel.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/channel.contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,GAAG,OAAO;IACjD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE3C;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhG;;;;;;;;;OASG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9F;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,SAAS,GAAG,OAAO,EACzB,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,GAC5C,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;;;;;;OAUG;IACH,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/B;;;;;;;;;;;;OAYG;IACH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3B;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC"}
|
package/cjs/contracts/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC"}
|