@kaushverse/rabbitmq-core 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +21 -6
- package/dist/index.js +61 -11
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ interface RabbitConnectionOptions {
|
|
|
12
12
|
socketOptions?: Options.Connect;
|
|
13
13
|
}
|
|
14
14
|
type ExchangeType = "direct" | "topic" | "fanout" | "headers";
|
|
15
|
+
type LogLevel = "info" | "warn" | "error" | "debug";
|
|
15
16
|
interface ConsumeOptions {
|
|
16
17
|
queue: string;
|
|
17
18
|
exchange: string;
|
|
@@ -35,14 +36,28 @@ declare function consumeMessage(options: ConsumeOptions, handler: (data: any, ra
|
|
|
35
36
|
|
|
36
37
|
declare function publishMessage({ exchange, type, routingKey, message, headers, }: PublishOptions): Promise<void>;
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
serviceName
|
|
40
|
-
start: () => void | Promise<void>;
|
|
39
|
+
declare function bootstrap({ serviceName, rabbit, start, }: {
|
|
40
|
+
serviceName: string;
|
|
41
41
|
rabbit: {
|
|
42
42
|
url: string;
|
|
43
|
-
tls?: RabbitTLSOptions;
|
|
44
43
|
};
|
|
44
|
+
start: () => void | Promise<void>;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
|
|
47
|
+
declare function rabbitHealth(): {
|
|
48
|
+
"\uD83D\uDC07": {
|
|
49
|
+
service: string;
|
|
50
|
+
status: string;
|
|
51
|
+
healthy: boolean;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
declare function setLoggerService(name: string): void;
|
|
56
|
+
declare const logger: {
|
|
57
|
+
info: (msg: string, meta?: any) => void;
|
|
58
|
+
warn: (msg: string, meta?: any) => void;
|
|
59
|
+
error: (msg: string, meta?: any) => void;
|
|
60
|
+
debug: (msg: string, meta?: any) => void;
|
|
45
61
|
};
|
|
46
|
-
declare function bootstrap(options: BootstrapOptions): Promise<void>;
|
|
47
62
|
|
|
48
|
-
export { type ConsumeOptions, type ExchangeType, type PublishOptions, type RabbitConnectionOptions, type RabbitTLSOptions, bootstrap, consumeMessage, getChannel, publishMessage, rabbitEvents };
|
|
63
|
+
export { type ConsumeOptions, type ExchangeType, type LogLevel, type PublishOptions, type RabbitConnectionOptions, type RabbitTLSOptions, bootstrap, consumeMessage, getChannel, logger, publishMessage, rabbitEvents, rabbitHealth, setLoggerService };
|
package/dist/index.js
CHANGED
|
@@ -33,8 +33,11 @@ __export(index_exports, {
|
|
|
33
33
|
bootstrap: () => bootstrap,
|
|
34
34
|
consumeMessage: () => consumeMessage,
|
|
35
35
|
getChannel: () => getChannel,
|
|
36
|
+
logger: () => logger,
|
|
36
37
|
publishMessage: () => publishMessage,
|
|
37
|
-
rabbitEvents: () => rabbitEvents
|
|
38
|
+
rabbitEvents: () => rabbitEvents,
|
|
39
|
+
rabbitHealth: () => rabbitHealth,
|
|
40
|
+
setLoggerService: () => setLoggerService
|
|
38
41
|
});
|
|
39
42
|
module.exports = __toCommonJS(index_exports);
|
|
40
43
|
|
|
@@ -104,6 +107,9 @@ async function closeRabbitMQ() {
|
|
|
104
107
|
rabbitEvents.emit("disconnected");
|
|
105
108
|
}
|
|
106
109
|
}
|
|
110
|
+
function isRabbitConnected() {
|
|
111
|
+
return connected;
|
|
112
|
+
}
|
|
107
113
|
|
|
108
114
|
// src/consumer.ts
|
|
109
115
|
async function consumeMessage(options, handler) {
|
|
@@ -165,33 +171,77 @@ async function publishMessage({
|
|
|
165
171
|
});
|
|
166
172
|
}
|
|
167
173
|
|
|
174
|
+
// src/logger/index.ts
|
|
175
|
+
var serviceName = "rabbitmq-core";
|
|
176
|
+
function setLoggerService(name) {
|
|
177
|
+
serviceName = name;
|
|
178
|
+
}
|
|
179
|
+
function log(level, message, meta) {
|
|
180
|
+
const entry = {
|
|
181
|
+
level,
|
|
182
|
+
service: serviceName,
|
|
183
|
+
message,
|
|
184
|
+
time: (/* @__PURE__ */ new Date()).toISOString(),
|
|
185
|
+
...meta && { meta }
|
|
186
|
+
};
|
|
187
|
+
console[level === "debug" ? "log" : level](JSON.stringify(entry));
|
|
188
|
+
}
|
|
189
|
+
var logger = {
|
|
190
|
+
info: (msg, meta) => log("info", msg, meta),
|
|
191
|
+
warn: (msg, meta) => log("warn", msg, meta),
|
|
192
|
+
error: (msg, meta) => log("error", msg, meta),
|
|
193
|
+
debug: (msg, meta) => log("debug", msg, meta)
|
|
194
|
+
};
|
|
195
|
+
|
|
168
196
|
// src/bootstrap.ts
|
|
169
|
-
async function bootstrap(
|
|
170
|
-
|
|
197
|
+
async function bootstrap({
|
|
198
|
+
serviceName: serviceName2,
|
|
199
|
+
rabbit,
|
|
200
|
+
start
|
|
201
|
+
}) {
|
|
171
202
|
try {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
});
|
|
203
|
+
setLoggerService(serviceName2);
|
|
204
|
+
logger.info("\u{1F9E9} Bootstrap started");
|
|
205
|
+
await connectRabbitMQ(rabbit);
|
|
206
|
+
logger.info("\u{1F407} RabbitMQ connected");
|
|
176
207
|
await start();
|
|
177
|
-
|
|
208
|
+
logger.info("\u{1F680} Service started successfully");
|
|
178
209
|
const shutdown = async (signal) => {
|
|
179
|
-
|
|
210
|
+
logger.warn("\u{1F6D1} Shutdown signal received", { signal });
|
|
180
211
|
await closeRabbitMQ();
|
|
212
|
+
logger.info("\u{1F512} RabbitMQ connection closed");
|
|
213
|
+
logger.info("\u{1F44B} Service stopped gracefully");
|
|
181
214
|
process.exit(0);
|
|
182
215
|
};
|
|
183
216
|
process.on("SIGINT", shutdown);
|
|
184
217
|
process.on("SIGTERM", shutdown);
|
|
185
218
|
} catch (err) {
|
|
186
|
-
|
|
219
|
+
logger.error("\u{1F4A5} Startup failed", {
|
|
220
|
+
error: err instanceof Error ? err.message : err
|
|
221
|
+
});
|
|
187
222
|
process.exit(1);
|
|
188
223
|
}
|
|
189
224
|
}
|
|
225
|
+
|
|
226
|
+
// src/health/index.ts
|
|
227
|
+
function rabbitHealth() {
|
|
228
|
+
const connected2 = isRabbitConnected();
|
|
229
|
+
return {
|
|
230
|
+
"\u{1F407}": {
|
|
231
|
+
service: "rabbitmq",
|
|
232
|
+
status: connected2 ? "\u{1F7E2} up" : "\u{1F534} down",
|
|
233
|
+
healthy: connected2
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
}
|
|
190
237
|
// Annotate the CommonJS export names for ESM import in node:
|
|
191
238
|
0 && (module.exports = {
|
|
192
239
|
bootstrap,
|
|
193
240
|
consumeMessage,
|
|
194
241
|
getChannel,
|
|
242
|
+
logger,
|
|
195
243
|
publishMessage,
|
|
196
|
-
rabbitEvents
|
|
244
|
+
rabbitEvents,
|
|
245
|
+
rabbitHealth,
|
|
246
|
+
setLoggerService
|
|
197
247
|
});
|