@kaushverse/rabbitmq-core 1.0.3 → 1.0.5
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 -3
- package/dist/index.js +76 -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;
|
|
@@ -36,13 +37,30 @@ declare function consumeMessage(options: ConsumeOptions, handler: (data: any, ra
|
|
|
36
37
|
declare function publishMessage({ exchange, type, routingKey, message, headers, }: PublishOptions): Promise<void>;
|
|
37
38
|
|
|
38
39
|
type BootstrapOptions = {
|
|
39
|
-
serviceName
|
|
40
|
+
serviceName: string;
|
|
40
41
|
start: () => void | Promise<void>;
|
|
41
42
|
rabbit: {
|
|
42
43
|
url: string;
|
|
43
44
|
tls?: RabbitTLSOptions;
|
|
44
45
|
};
|
|
45
46
|
};
|
|
46
|
-
declare function bootstrap(
|
|
47
|
+
declare function bootstrap({ serviceName, rabbit, start, }: BootstrapOptions): Promise<void>;
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
declare function rabbitHealth(): {
|
|
50
|
+
"\uD83D\uDC07": {
|
|
51
|
+
service: string;
|
|
52
|
+
status: string;
|
|
53
|
+
healthy: boolean;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
declare function setLoggerService(name: string): void;
|
|
58
|
+
declare function setPrettyLogs(enabled: boolean): void;
|
|
59
|
+
declare const logger: {
|
|
60
|
+
info: (msg: string, meta?: any) => void;
|
|
61
|
+
warn: (msg: string, meta?: any) => void;
|
|
62
|
+
error: (msg: string, meta?: any) => void;
|
|
63
|
+
debug: (msg: string, meta?: any) => void;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export { type ConsumeOptions, type ExchangeType, type LogLevel, type PublishOptions, type RabbitConnectionOptions, type RabbitTLSOptions, bootstrap, consumeMessage, getChannel, logger, publishMessage, rabbitEvents, rabbitHealth, setLoggerService, setPrettyLogs };
|
package/dist/index.js
CHANGED
|
@@ -33,8 +33,12 @@ __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,
|
|
41
|
+
setPrettyLogs: () => setPrettyLogs
|
|
38
42
|
});
|
|
39
43
|
module.exports = __toCommonJS(index_exports);
|
|
40
44
|
|
|
@@ -104,6 +108,9 @@ async function closeRabbitMQ() {
|
|
|
104
108
|
rabbitEvents.emit("disconnected");
|
|
105
109
|
}
|
|
106
110
|
}
|
|
111
|
+
function isRabbitConnected() {
|
|
112
|
+
return connected;
|
|
113
|
+
}
|
|
107
114
|
|
|
108
115
|
// src/consumer.ts
|
|
109
116
|
async function consumeMessage(options, handler) {
|
|
@@ -165,33 +172,91 @@ async function publishMessage({
|
|
|
165
172
|
});
|
|
166
173
|
}
|
|
167
174
|
|
|
175
|
+
// src/logger/index.ts
|
|
176
|
+
var serviceName = "service";
|
|
177
|
+
var prettyLogs = true;
|
|
178
|
+
function setLoggerService(name) {
|
|
179
|
+
serviceName = name;
|
|
180
|
+
}
|
|
181
|
+
function setPrettyLogs(enabled) {
|
|
182
|
+
prettyLogs = enabled;
|
|
183
|
+
}
|
|
184
|
+
function log(level, message, meta) {
|
|
185
|
+
if (prettyLogs) {
|
|
186
|
+
if (meta) {
|
|
187
|
+
console[level](`${message}`, meta);
|
|
188
|
+
} else {
|
|
189
|
+
console[level](`${message}`);
|
|
190
|
+
}
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
const entry = {
|
|
194
|
+
level,
|
|
195
|
+
service: serviceName,
|
|
196
|
+
message,
|
|
197
|
+
time: (/* @__PURE__ */ new Date()).toISOString(),
|
|
198
|
+
...meta && { meta }
|
|
199
|
+
};
|
|
200
|
+
console[level === "debug" ? "log" : level](JSON.stringify(entry));
|
|
201
|
+
}
|
|
202
|
+
var logger = {
|
|
203
|
+
info: (msg, meta) => log("info", msg, meta),
|
|
204
|
+
warn: (msg, meta) => log("warn", msg, meta),
|
|
205
|
+
error: (msg, meta) => log("error", msg, meta),
|
|
206
|
+
debug: (msg, meta) => log("debug", msg, meta)
|
|
207
|
+
};
|
|
208
|
+
|
|
168
209
|
// src/bootstrap.ts
|
|
169
|
-
async function bootstrap(
|
|
170
|
-
|
|
210
|
+
async function bootstrap({
|
|
211
|
+
serviceName: serviceName2,
|
|
212
|
+
rabbit,
|
|
213
|
+
start
|
|
214
|
+
}) {
|
|
171
215
|
try {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
216
|
+
setLoggerService(serviceName2);
|
|
217
|
+
setPrettyLogs(process.env.NODE_ENV !== "production");
|
|
218
|
+
logger.info("\u{1F9E9} Bootstrap started");
|
|
219
|
+
await connectRabbitMQ(rabbit);
|
|
220
|
+
logger.info("\u{1F407} RabbitMQ connected");
|
|
176
221
|
await start();
|
|
177
|
-
|
|
222
|
+
logger.info("\u{1F680} Service started successfully");
|
|
178
223
|
const shutdown = async (signal) => {
|
|
179
|
-
|
|
224
|
+
logger.warn("\u{1F6D1} Shutdown signal received", { signal });
|
|
180
225
|
await closeRabbitMQ();
|
|
226
|
+
logger.info("\u{1F512} RabbitMQ connection closed");
|
|
227
|
+
logger.info("\u{1F44B} Service stopped gracefully");
|
|
181
228
|
process.exit(0);
|
|
182
229
|
};
|
|
183
230
|
process.on("SIGINT", shutdown);
|
|
184
231
|
process.on("SIGTERM", shutdown);
|
|
185
232
|
} catch (err) {
|
|
186
|
-
|
|
233
|
+
logger.error("\u{1F4A5} Startup failed", {
|
|
234
|
+
error: err instanceof Error ? err.message : err
|
|
235
|
+
});
|
|
187
236
|
process.exit(1);
|
|
188
237
|
}
|
|
189
238
|
}
|
|
239
|
+
|
|
240
|
+
// src/health/index.ts
|
|
241
|
+
function rabbitHealth() {
|
|
242
|
+
const connected2 = isRabbitConnected();
|
|
243
|
+
return {
|
|
244
|
+
"\u{1F407}": {
|
|
245
|
+
service: "rabbitmq",
|
|
246
|
+
status: connected2 ? "\u{1F7E2} up" : "\u{1F534} down",
|
|
247
|
+
healthy: connected2
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
}
|
|
190
251
|
// Annotate the CommonJS export names for ESM import in node:
|
|
191
252
|
0 && (module.exports = {
|
|
192
253
|
bootstrap,
|
|
193
254
|
consumeMessage,
|
|
194
255
|
getChannel,
|
|
256
|
+
logger,
|
|
195
257
|
publishMessage,
|
|
196
|
-
rabbitEvents
|
|
258
|
+
rabbitEvents,
|
|
259
|
+
rabbitHealth,
|
|
260
|
+
setLoggerService,
|
|
261
|
+
setPrettyLogs
|
|
197
262
|
});
|