@message-in-the-middle/core
Version:
Framework-agnostic middleware pattern for message queue processing. Core package with all middlewares.
46 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LogOutboundMiddleware = exports.LogInboundMiddleware = void 0;
class LogInboundMiddleware {
logger;
logLevel;
constructor(logger, options = {}) {
this.logger = logger;
this.logLevel = options.logLevel ?? 'info';
}
async process(context, next) {
const startTime = Date.now();
this.logger.log(`[SQS Inbound] Received message`, {
messageId: context.raw?.MessageId,
attributes: context.attributes,
level: this.logLevel,
});
try {
await next();
const duration = Date.now() - startTime;
this.logger.log(`[SQS Inbound] Processed successfully in ${duration}ms`, { messageId: context.raw?.MessageId });
}
catch (error) {
const duration = Date.now() - startTime;
this.logger.log(`[SQS Inbound] Processing failed after ${duration}ms: ${error.message}`, { messageId: context.raw?.MessageId, error });
throw error;
}
}
}
exports.LogInboundMiddleware = LogInboundMiddleware;
class LogOutboundMiddleware {
logger;
constructor(logger) {
this.logger = logger;
}
async processOutbound(context, next) {
this.logger.log(`[SQS Outbound] Sending message`, {
metadata: context.metadata,
messageSize: JSON.stringify(context.message).length,
});
await next();
this.logger.log(`[SQS Outbound] Message sent successfully`);
}
}
exports.LogOutboundMiddleware = LogOutboundMiddleware;
//# sourceMappingURL=logging.middleware.js.map