@warlock.js/herald 4.0.174 → 4.1.2
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/README.md +36 -33
- package/cjs/index.cjs +1355 -0
- package/cjs/index.cjs.map +1 -0
- package/esm/communicators/broker-registry.d.mts +157 -0
- package/esm/communicators/broker-registry.d.mts.map +1 -0
- package/esm/communicators/broker-registry.mjs +204 -0
- package/esm/communicators/broker-registry.mjs.map +1 -0
- package/esm/communicators/broker.d.mts +104 -0
- package/esm/communicators/broker.d.mts.map +1 -0
- package/esm/communicators/broker.mjs +104 -0
- package/esm/communicators/broker.mjs.map +1 -0
- package/esm/communicators/index.d.mts +2 -0
- package/esm/communicators/index.mjs +4 -0
- package/esm/contracts/broker-driver.contract.d.mts +200 -0
- package/esm/contracts/broker-driver.contract.d.mts.map +1 -0
- package/esm/contracts/channel.contract.d.mts +197 -0
- package/esm/contracts/channel.contract.d.mts.map +1 -0
- package/esm/contracts/index.d.mts +2 -0
- package/esm/decorators/consumable.d.mts +17 -0
- package/esm/decorators/consumable.d.mts.map +1 -0
- package/esm/decorators/consumable.mjs +36 -0
- package/esm/decorators/consumable.mjs.map +1 -0
- package/esm/decorators/index.d.mts +1 -0
- package/esm/decorators/index.mjs +3 -0
- package/esm/drivers/index.d.mts +2 -0
- package/esm/drivers/index.mjs +5 -0
- package/esm/drivers/rabbitmq/index.d.mts +2 -0
- package/esm/drivers/rabbitmq/index.mjs +4 -0
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.mts +85 -0
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.mts.map +1 -0
- package/esm/drivers/rabbitmq/rabbitmq-channel.mjs +352 -0
- package/esm/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -0
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.mts +130 -0
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.mts.map +1 -0
- package/esm/drivers/rabbitmq/rabbitmq-driver.mjs +291 -0
- package/esm/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -0
- package/esm/index.d.mts +20 -0
- package/esm/index.mjs +16 -0
- package/esm/message-managers/event-consumer.d.mts +61 -0
- package/esm/message-managers/event-consumer.d.mts.map +1 -0
- package/esm/message-managers/event-consumer.mjs +63 -0
- package/esm/message-managers/event-consumer.mjs.map +1 -0
- package/esm/message-managers/event-message.d.mts +87 -0
- package/esm/message-managers/event-message.d.mts.map +1 -0
- package/esm/message-managers/event-message.mjs +68 -0
- package/esm/message-managers/event-message.mjs.map +1 -0
- package/esm/message-managers/index.d.mts +3 -0
- package/esm/message-managers/index.mjs +4 -0
- package/esm/message-managers/prepare-consumer-subscription.mjs +42 -0
- package/esm/message-managers/prepare-consumer-subscription.mjs.map +1 -0
- package/esm/message-managers/types.d.mts +23 -0
- package/esm/message-managers/types.d.mts.map +1 -0
- package/esm/types/channel.types.d.mts +23 -0
- package/esm/types/channel.types.d.mts.map +1 -0
- package/esm/types/connection.types.d.mts +67 -0
- package/esm/types/connection.types.d.mts.map +1 -0
- package/esm/types/driver.types.d.mts +13 -0
- package/esm/types/driver.types.d.mts.map +1 -0
- package/esm/types/index.d.mts +7 -0
- package/esm/types/message.types.d.mts +37 -0
- package/esm/types/message.types.d.mts.map +1 -0
- package/esm/types/publish.types.d.mts +16 -0
- package/esm/types/publish.types.d.mts.map +1 -0
- package/esm/types/registry.types.d.mts +8 -0
- package/esm/types/registry.types.d.mts.map +1 -0
- package/esm/types/subscribe.types.d.mts +21 -0
- package/esm/types/subscribe.types.d.mts.map +1 -0
- package/esm/use-case-broadcast.d.mts +41 -0
- package/esm/use-case-broadcast.d.mts.map +1 -0
- package/esm/use-case-broadcast.mjs +30 -0
- package/esm/use-case-broadcast.mjs.map +1 -0
- package/esm/utils/{connect-to-broker.d.ts → connect-to-broker.d.mts} +15 -10
- package/esm/utils/connect-to-broker.d.mts.map +1 -0
- package/esm/utils/connect-to-broker.mjs +168 -0
- package/esm/utils/connect-to-broker.mjs.map +1 -0
- package/esm/utils/index.d.mts +1 -0
- package/esm/utils/index.mjs +3 -0
- package/llms-full.txt +581 -0
- package/llms.txt +12 -0
- package/package.json +46 -46
- package/skills/README.md +21 -0
- package/skills/consume-message/SKILL.md +217 -0
- package/skills/herald-basics/SKILL.md +96 -0
- package/skills/publish-message/SKILL.md +172 -0
- package/skills/request-and-respond/SKILL.md +74 -0
- package/cjs/communicators/broker-registry.d.ts +0 -155
- package/cjs/communicators/broker-registry.d.ts.map +0 -1
- package/cjs/communicators/broker-registry.js +0 -206
- package/cjs/communicators/broker-registry.js.map +0 -1
- package/cjs/communicators/broker.d.ts +0 -100
- package/cjs/communicators/broker.d.ts.map +0 -1
- package/cjs/communicators/broker.js +0 -105
- package/cjs/communicators/broker.js.map +0 -1
- package/cjs/communicators/index.d.ts +0 -3
- package/cjs/communicators/index.d.ts.map +0 -1
- package/cjs/contracts/broker-driver.contract.d.ts +0 -196
- package/cjs/contracts/broker-driver.contract.d.ts.map +0 -1
- package/cjs/contracts/channel.contract.d.ts +0 -191
- package/cjs/contracts/channel.contract.d.ts.map +0 -1
- package/cjs/contracts/index.d.ts +0 -3
- package/cjs/contracts/index.d.ts.map +0 -1
- package/cjs/decorators/consumable.d.ts +0 -13
- package/cjs/decorators/consumable.d.ts.map +0 -1
- package/cjs/decorators/consumable.js +0 -33
- package/cjs/decorators/consumable.js.map +0 -1
- package/cjs/decorators/index.d.ts +0 -2
- package/cjs/decorators/index.d.ts.map +0 -1
- package/cjs/drivers/index.d.ts +0 -2
- package/cjs/drivers/index.d.ts.map +0 -1
- package/cjs/drivers/rabbitmq/index.d.ts +0 -3
- package/cjs/drivers/rabbitmq/index.d.ts.map +0 -1
- package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts +0 -79
- package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts.map +0 -1
- package/cjs/drivers/rabbitmq/rabbitmq-channel.js +0 -414
- package/cjs/drivers/rabbitmq/rabbitmq-channel.js.map +0 -1
- package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts +0 -124
- package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts.map +0 -1
- package/cjs/drivers/rabbitmq/rabbitmq-driver.js +0 -347
- package/cjs/drivers/rabbitmq/rabbitmq-driver.js.map +0 -1
- package/cjs/index.d.ts +0 -47
- package/cjs/index.d.ts.map +0 -1
- package/cjs/index.js +0 -1
- package/cjs/index.js.map +0 -1
- package/cjs/message-managers/event-consumer.d.ts +0 -64
- package/cjs/message-managers/event-consumer.d.ts.map +0 -1
- package/cjs/message-managers/event-consumer.js +0 -71
- package/cjs/message-managers/event-consumer.js.map +0 -1
- package/cjs/message-managers/event-message.d.ts +0 -90
- package/cjs/message-managers/event-message.d.ts.map +0 -1
- package/cjs/message-managers/event-message.js +0 -84
- package/cjs/message-managers/event-message.js.map +0 -1
- package/cjs/message-managers/index.d.ts +0 -4
- package/cjs/message-managers/index.d.ts.map +0 -1
- package/cjs/message-managers/prepare-consumer-subscription.d.ts +0 -4
- package/cjs/message-managers/prepare-consumer-subscription.d.ts.map +0 -1
- package/cjs/message-managers/prepare-consumer-subscription.js +0 -40
- package/cjs/message-managers/prepare-consumer-subscription.js.map +0 -1
- package/cjs/message-managers/types.d.ts +0 -20
- package/cjs/message-managers/types.d.ts.map +0 -1
- package/cjs/types/channel.types.d.ts +0 -19
- package/cjs/types/channel.types.d.ts.map +0 -1
- package/cjs/types/connection.types.d.ts +0 -65
- package/cjs/types/connection.types.d.ts.map +0 -1
- package/cjs/types/driver.types.d.ts +0 -10
- package/cjs/types/driver.types.d.ts.map +0 -1
- package/cjs/types/index.d.ts +0 -8
- package/cjs/types/index.d.ts.map +0 -1
- package/cjs/types/message.types.d.ts +0 -34
- package/cjs/types/message.types.d.ts.map +0 -1
- package/cjs/types/publish.types.d.ts +0 -13
- package/cjs/types/publish.types.d.ts.map +0 -1
- package/cjs/types/registry.types.d.ts +0 -4
- package/cjs/types/registry.types.d.ts.map +0 -1
- package/cjs/types/subscribe.types.d.ts +0 -18
- package/cjs/types/subscribe.types.d.ts.map +0 -1
- package/cjs/utils/connect-to-broker.d.ts +0 -131
- package/cjs/utils/connect-to-broker.d.ts.map +0 -1
- package/cjs/utils/connect-to-broker.js +0 -171
- package/cjs/utils/connect-to-broker.js.map +0 -1
- package/cjs/utils/index.d.ts +0 -2
- package/cjs/utils/index.d.ts.map +0 -1
- package/esm/communicators/broker-registry.d.ts +0 -155
- package/esm/communicators/broker-registry.d.ts.map +0 -1
- package/esm/communicators/broker-registry.js +0 -206
- package/esm/communicators/broker-registry.js.map +0 -1
- package/esm/communicators/broker.d.ts +0 -100
- package/esm/communicators/broker.d.ts.map +0 -1
- package/esm/communicators/broker.js +0 -105
- package/esm/communicators/broker.js.map +0 -1
- package/esm/communicators/index.d.ts +0 -3
- package/esm/communicators/index.d.ts.map +0 -1
- package/esm/contracts/broker-driver.contract.d.ts +0 -196
- package/esm/contracts/broker-driver.contract.d.ts.map +0 -1
- package/esm/contracts/channel.contract.d.ts +0 -191
- package/esm/contracts/channel.contract.d.ts.map +0 -1
- package/esm/contracts/index.d.ts +0 -3
- package/esm/contracts/index.d.ts.map +0 -1
- package/esm/decorators/consumable.d.ts +0 -13
- package/esm/decorators/consumable.d.ts.map +0 -1
- package/esm/decorators/consumable.js +0 -33
- package/esm/decorators/consumable.js.map +0 -1
- package/esm/decorators/index.d.ts +0 -2
- package/esm/decorators/index.d.ts.map +0 -1
- package/esm/drivers/index.d.ts +0 -2
- package/esm/drivers/index.d.ts.map +0 -1
- package/esm/drivers/rabbitmq/index.d.ts +0 -3
- package/esm/drivers/rabbitmq/index.d.ts.map +0 -1
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts +0 -79
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts.map +0 -1
- package/esm/drivers/rabbitmq/rabbitmq-channel.js +0 -414
- package/esm/drivers/rabbitmq/rabbitmq-channel.js.map +0 -1
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts +0 -124
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts.map +0 -1
- package/esm/drivers/rabbitmq/rabbitmq-driver.js +0 -347
- package/esm/drivers/rabbitmq/rabbitmq-driver.js.map +0 -1
- package/esm/index.d.ts +0 -47
- package/esm/index.d.ts.map +0 -1
- package/esm/index.js +0 -1
- package/esm/index.js.map +0 -1
- package/esm/message-managers/event-consumer.d.ts +0 -64
- package/esm/message-managers/event-consumer.d.ts.map +0 -1
- package/esm/message-managers/event-consumer.js +0 -71
- package/esm/message-managers/event-consumer.js.map +0 -1
- package/esm/message-managers/event-message.d.ts +0 -90
- package/esm/message-managers/event-message.d.ts.map +0 -1
- package/esm/message-managers/event-message.js +0 -84
- package/esm/message-managers/event-message.js.map +0 -1
- package/esm/message-managers/index.d.ts +0 -4
- package/esm/message-managers/index.d.ts.map +0 -1
- package/esm/message-managers/prepare-consumer-subscription.d.ts +0 -4
- package/esm/message-managers/prepare-consumer-subscription.d.ts.map +0 -1
- package/esm/message-managers/prepare-consumer-subscription.js +0 -40
- package/esm/message-managers/prepare-consumer-subscription.js.map +0 -1
- package/esm/message-managers/types.d.ts +0 -20
- package/esm/message-managers/types.d.ts.map +0 -1
- package/esm/types/channel.types.d.ts +0 -19
- package/esm/types/channel.types.d.ts.map +0 -1
- package/esm/types/connection.types.d.ts +0 -65
- package/esm/types/connection.types.d.ts.map +0 -1
- package/esm/types/driver.types.d.ts +0 -10
- package/esm/types/driver.types.d.ts.map +0 -1
- package/esm/types/index.d.ts +0 -8
- package/esm/types/index.d.ts.map +0 -1
- package/esm/types/message.types.d.ts +0 -34
- package/esm/types/message.types.d.ts.map +0 -1
- package/esm/types/publish.types.d.ts +0 -13
- package/esm/types/publish.types.d.ts.map +0 -1
- package/esm/types/registry.types.d.ts +0 -4
- package/esm/types/registry.types.d.ts.map +0 -1
- package/esm/types/subscribe.types.d.ts +0 -18
- package/esm/types/subscribe.types.d.ts.map +0 -1
- package/esm/utils/connect-to-broker.d.ts.map +0 -1
- package/esm/utils/connect-to-broker.js +0 -171
- package/esm/utils/connect-to-broker.js.map +0 -1
- package/esm/utils/index.d.ts +0 -2
- package/esm/utils/index.d.ts.map +0 -1
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
'use strict';var brokerRegistry=require('../communicators/broker-registry.js');/**
|
|
2
|
-
* Connect to a message broker and register it.
|
|
3
|
-
*
|
|
4
|
-
* This is a high-level utility function that simplifies connection setup
|
|
5
|
-
* for most projects. It handles driver instantiation, connection,
|
|
6
|
-
* broker creation, and automatic registration.
|
|
7
|
-
*
|
|
8
|
-
* **Supported Drivers:**
|
|
9
|
-
* - `rabbitmq` (default) - RabbitMQ/AMQP driver
|
|
10
|
-
* - `kafka` - Apache Kafka driver (coming soon)
|
|
11
|
-
*
|
|
12
|
-
* @param options - Connection configuration options
|
|
13
|
-
* @returns A connected and registered Broker instance
|
|
14
|
-
* @throws {Error} If connection fails or driver is not implemented
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // RabbitMQ connection
|
|
19
|
-
* const broker = await connectToBroker({
|
|
20
|
-
* driver: "rabbitmq",
|
|
21
|
-
* host: "localhost",
|
|
22
|
-
* port: 5672,
|
|
23
|
-
* username: "guest",
|
|
24
|
-
* password: "guest",
|
|
25
|
-
* });
|
|
26
|
-
*
|
|
27
|
-
* // Use the broker
|
|
28
|
-
* await broker.channel("user.created").publish({ userId: 1 });
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```typescript
|
|
33
|
-
* // Multiple brokers
|
|
34
|
-
* await connectToBroker({
|
|
35
|
-
* driver: "rabbitmq",
|
|
36
|
-
* name: "notifications",
|
|
37
|
-
* isDefault: true,
|
|
38
|
-
* host: process.env.RABBITMQ_HOST,
|
|
39
|
-
* });
|
|
40
|
-
*
|
|
41
|
-
* await connectToBroker({
|
|
42
|
-
* driver: "rabbitmq",
|
|
43
|
-
* name: "analytics",
|
|
44
|
-
* host: process.env.ANALYTICS_RABBITMQ_HOST,
|
|
45
|
-
* });
|
|
46
|
-
*
|
|
47
|
-
* // Use default broker
|
|
48
|
-
* herald().channel("notifications").publish({ ... });
|
|
49
|
-
*
|
|
50
|
-
* // Use specific broker
|
|
51
|
-
* herald("analytics").channel("events").publish({ ... });
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
async function connectToBroker(options) {
|
|
55
|
-
// Default values
|
|
56
|
-
const driverType = options.driver ?? "rabbitmq";
|
|
57
|
-
const brokerName = options.name ?? "default";
|
|
58
|
-
const isDefault = options.isDefault ?? true;
|
|
59
|
-
// Create driver based on type
|
|
60
|
-
let driver;
|
|
61
|
-
switch (driverType) {
|
|
62
|
-
case "rabbitmq": {
|
|
63
|
-
const rabbitOptions = options;
|
|
64
|
-
// Dynamic import to avoid requiring amqplib if not used
|
|
65
|
-
const { RabbitMQDriver } = await Promise.resolve().then(function(){return require('../drivers/rabbitmq/rabbitmq-driver.js')});
|
|
66
|
-
driver = new RabbitMQDriver(rabbitOptions);
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
case "kafka": {
|
|
70
|
-
// const kafkaOptions = options as KafkaConnectionOptions;
|
|
71
|
-
// Dynamic import to avoid requiring kafkajs if not used
|
|
72
|
-
throw new Error("Kafka driver is not yet implemented. Coming soon! For now, please use RabbitMQ.");
|
|
73
|
-
}
|
|
74
|
-
default:
|
|
75
|
-
throw new Error(`Unknown driver: "${driverType}". Supported drivers: rabbitmq, kafka`);
|
|
76
|
-
}
|
|
77
|
-
// Create broker
|
|
78
|
-
const broker = brokerRegistry.brokerRegistry.register({
|
|
79
|
-
name: brokerName,
|
|
80
|
-
driver,
|
|
81
|
-
isDefault,
|
|
82
|
-
});
|
|
83
|
-
// Connect to the message broker
|
|
84
|
-
try {
|
|
85
|
-
await driver.connect();
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
throw new Error(`Failed to connect to ${driverType}: ${error instanceof Error ? error.message : String(error)}`);
|
|
89
|
-
}
|
|
90
|
-
return broker;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Get a broker by name or the default one.
|
|
94
|
-
*
|
|
95
|
-
* This is the main entry point for using brokers in your application.
|
|
96
|
-
* Named after the package — `herald()` carries your messages!
|
|
97
|
-
*
|
|
98
|
-
* @param name - Optional broker name (uses default if not provided)
|
|
99
|
-
* @returns Broker instance
|
|
100
|
-
* @throws MissingBrokerError if broker not found
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
* // Get default broker
|
|
104
|
-
* const channel = herald().channel("user.created");
|
|
105
|
-
* await channel.publish({ userId: 1 });
|
|
106
|
-
*
|
|
107
|
-
* // Get specific broker
|
|
108
|
-
* const analyticsChannel = herald("analytics").channel("events");
|
|
109
|
-
* await analyticsChannel.publish({ event: "page_view" });
|
|
110
|
-
*
|
|
111
|
-
* // Subscribe to messages
|
|
112
|
-
* herald()
|
|
113
|
-
* .channel<UserPayload>("user.created")
|
|
114
|
-
* .subscribe(async (message, ctx) => {
|
|
115
|
-
* console.log("User created:", message.payload);
|
|
116
|
-
* await ctx.ack();
|
|
117
|
-
* });
|
|
118
|
-
* ```
|
|
119
|
-
*/
|
|
120
|
-
function herald(name) {
|
|
121
|
-
return brokerRegistry.brokerRegistry.get(name);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Get channel instance for the given name from default broker.
|
|
125
|
-
*
|
|
126
|
-
* Shorthand for `herald().channel(name, options)`.
|
|
127
|
-
*
|
|
128
|
-
* @param name - Channel name
|
|
129
|
-
* @param options - Optional channel options
|
|
130
|
-
* @returns Channel instance
|
|
131
|
-
* @throws MissingBrokerError if broker not found
|
|
132
|
-
*
|
|
133
|
-
* @example
|
|
134
|
-
* ```typescript
|
|
135
|
-
* const channel = heraldChannel("user.created");
|
|
136
|
-
* await channel.publish({ userId: 1 });
|
|
137
|
-
* ```
|
|
138
|
-
*/
|
|
139
|
-
function heraldChannel(name, options) {
|
|
140
|
-
return herald().channel(name, options);
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Publish an EventMessage to the default broker.
|
|
144
|
-
*
|
|
145
|
-
* @param event - Event message to publish
|
|
146
|
-
* @returns Promise that resolves when the event is published
|
|
147
|
-
* @throws Error if the broker is not connected
|
|
148
|
-
*
|
|
149
|
-
* @example
|
|
150
|
-
* ```typescript
|
|
151
|
-
* await publishEvent(new UserUpdatedEvent({ id: 1, name: "John Doe" }));
|
|
152
|
-
* ```
|
|
153
|
-
*/
|
|
154
|
-
async function publishEvent(event) {
|
|
155
|
-
return herald().publish(event);
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Subscribe an EventConsumer class to the default broker.
|
|
159
|
-
*
|
|
160
|
-
* @param Consumer - Event consumer class
|
|
161
|
-
* @returns Unsubscribe function
|
|
162
|
-
* @throws MissingBrokerError if broker not found
|
|
163
|
-
*
|
|
164
|
-
* @example
|
|
165
|
-
* ```typescript
|
|
166
|
-
* await subscribeConsumer(UserUpdatedConsumer);
|
|
167
|
-
* ```
|
|
168
|
-
*/
|
|
169
|
-
async function subscribeConsumer(Consumer) {
|
|
170
|
-
return herald().subscribe(Consumer);
|
|
171
|
-
}exports.connectToBroker=connectToBroker;exports.herald=herald;exports.heraldChannel=heraldChannel;exports.publishEvent=publishEvent;exports.subscribeConsumer=subscribeConsumer;//# sourceMappingURL=connect-to-broker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connect-to-broker.js","sources":["../../src/utils/connect-to-broker.ts"],"sourcesContent":[null],"names":["brokerRegistry"],"mappings":"+EAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDG;AACI,eAAe,eAAe,CAAC,OAA0B,EAAA;;AAE9D,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;AAChD,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;AAC7C,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;;AAG5C,IAAA,IAAI,MAA4B,CAAC;AAEjC,IAAA,QAAQ,UAAU;QAChB,KAAK,UAAU,EAAE;YACf,MAAM,aAAa,GAAG,OAAoC,CAAC;;YAE3D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,iDAAO,wCAAqC,GAAC,CAAC;AAC/E,YAAA,MAAM,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;YAC3C,MAAM;AACP,SAAA;QAED,KAAK,OAAO,EAAE;;;AAGZ,YAAA,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;AACH,SAAA;AAED,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,CAAA,qCAAA,CAAuC,CAAC,CAAC;AAC1F,KAAA;;AAGD,IAAA,MAAM,MAAM,GAAGA,6BAAc,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,SAAS;AACV,KAAA,CAAC,CAAC;;IAGH,IAAI;AACF,QAAA,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AACxB,KAAA;AAAC,IAAA,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CACb,CAAwB,qBAAA,EAAA,UAAU,KAAK,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAE,CAAA,CAChG,CAAC;AACH,KAAA;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACG,SAAU,MAAM,CAAC,IAAa,EAAA;AAClC,IAAA,OAAOA,6BAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;;;;;AAeG;AACa,SAAA,aAAa,CAC3B,IAAY,EACZ,OAAkC,EAAA;IAElC,OAAO,MAAM,EAAE,CAAC,OAAO,CAAW,IAAI,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;AAWG;AACI,eAAe,YAAY,CAAiC,KAA6B,EAAA;AAC9F,IAAA,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;AAWG;AACI,eAAe,iBAAiB,CACrC,QAAsC,EAAA;AAEtC,IAAA,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtC"}
|
package/cjs/utils/index.d.ts
DELETED
package/cjs/utils/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,155 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import {EventEmitter}from'node:events';import {Broker}from'./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 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 = new Broker(options);
|
|
62
|
-
this.sources.set(broker.name, broker);
|
|
63
|
-
const isNewDefault = broker.isDefault || !this.defaultSource;
|
|
64
|
-
if (isNewDefault) {
|
|
65
|
-
this.defaultSource = broker;
|
|
66
|
-
}
|
|
67
|
-
// Emit registration events
|
|
68
|
-
this.events.emit("registered", broker);
|
|
69
|
-
if (isNewDefault) {
|
|
70
|
-
this.events.emit("default-registered", broker);
|
|
71
|
-
}
|
|
72
|
-
// Forward driver events to registry
|
|
73
|
-
broker.driver.on("connected", () => {
|
|
74
|
-
this.events.emit("connected", broker);
|
|
75
|
-
});
|
|
76
|
-
broker.driver.on("disconnected", () => {
|
|
77
|
-
this.events.emit("disconnected", broker);
|
|
78
|
-
});
|
|
79
|
-
return broker;
|
|
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();export{MissingBrokerError,brokerRegistry};//# sourceMappingURL=broker-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"broker-registry.js","sources":["../../src/communicators/broker-registry.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import type { BrokerDriverContract } from "../contracts";
|
|
2
|
-
import type { ChannelContract } from "../contracts/channel.contract";
|
|
3
|
-
import { EventMessage } from "../message-managers/event-message";
|
|
4
|
-
import { EventConsumerClass } from "../message-managers/types";
|
|
5
|
-
import type { ChannelOptions } from "../types";
|
|
6
|
-
/**
|
|
7
|
-
* Options for creating a Broker
|
|
8
|
-
*/
|
|
9
|
-
export interface BrokerOptions {
|
|
10
|
-
/** Unique name for this broker */
|
|
11
|
-
name: string;
|
|
12
|
-
/** The underlying driver */
|
|
13
|
-
driver: BrokerDriverContract;
|
|
14
|
-
/** Whether this is the default broker */
|
|
15
|
-
isDefault?: boolean;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Broker - wrapper around a driver with metadata
|
|
19
|
-
*
|
|
20
|
-
* Similar to DataSource in @warlock.js/cascade
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const broker = new Broker({
|
|
25
|
-
* name: "default",
|
|
26
|
-
* driver: rabbitMQDriver,
|
|
27
|
-
* isDefault: true,
|
|
28
|
-
* });
|
|
29
|
-
*
|
|
30
|
-
* // Get a channel
|
|
31
|
-
* const channel = broker.channel("user.created");
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export declare class Broker {
|
|
35
|
-
/** Unique name identifying this broker */
|
|
36
|
-
readonly name: string;
|
|
37
|
-
/** The underlying driver */
|
|
38
|
-
readonly driver: BrokerDriverContract;
|
|
39
|
-
/** Whether this is the default broker */
|
|
40
|
-
readonly isDefault: boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Create a new Broker
|
|
43
|
-
*
|
|
44
|
-
* @param options - Broker configuration
|
|
45
|
-
*/
|
|
46
|
-
constructor(options: BrokerOptions);
|
|
47
|
-
/**
|
|
48
|
-
* Subscribe the given consumer
|
|
49
|
-
*/
|
|
50
|
-
subscribe(consumer: EventConsumerClass<any>): () => void;
|
|
51
|
-
/**
|
|
52
|
-
* Publish the given event message
|
|
53
|
-
*/
|
|
54
|
-
publish<TPayload = Record<string, any>>(event: EventMessage<TPayload>): void;
|
|
55
|
-
/**
|
|
56
|
-
* Get or create a channel
|
|
57
|
-
*
|
|
58
|
-
* @param name - Channel name
|
|
59
|
-
* @param options - Channel options
|
|
60
|
-
* @returns Channel instance
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* ```typescript
|
|
64
|
-
* // Simple channel
|
|
65
|
-
* const channel = broker.channel("notifications");
|
|
66
|
-
*
|
|
67
|
-
* // Typed channel with schema
|
|
68
|
-
* const orderChannel = broker.channel<OrderPayload>("orders", {
|
|
69
|
-
* schema: OrderSchema,
|
|
70
|
-
* durable: true,
|
|
71
|
-
* });
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
|
-
channel<TPayload = unknown>(name: string, options?: ChannelOptions<TPayload>): ChannelContract<TPayload>;
|
|
75
|
-
/**
|
|
76
|
-
* Check if the broker is connected
|
|
77
|
-
*/
|
|
78
|
-
get isConnected(): boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Connect the underlying driver
|
|
81
|
-
*/
|
|
82
|
-
connect(): Promise<void>;
|
|
83
|
-
/**
|
|
84
|
-
* Disconnect the underlying driver
|
|
85
|
-
*/
|
|
86
|
-
disconnect(): Promise<void>;
|
|
87
|
-
/**
|
|
88
|
-
* Start consuming messages
|
|
89
|
-
*/
|
|
90
|
-
startConsuming(): Promise<void>;
|
|
91
|
-
/**
|
|
92
|
-
* Stop consuming messages
|
|
93
|
-
*/
|
|
94
|
-
stopConsuming(): Promise<void>;
|
|
95
|
-
/**
|
|
96
|
-
* Health check
|
|
97
|
-
*/
|
|
98
|
-
healthCheck(): Promise<import("../types").HealthCheckResult>;
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=broker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|