rxpoweredup
Version:
A Typescript RxJS-based library for controlling LEGO Powered UP hubs & peripherals.
19 lines (18 loc) • 686 B
JavaScript
import { formatMessageForDump } from '../helpers';
export class MessageLoggingMiddleware {
logger;
logMessageTypes;
logMessageTypesSet;
constructor(logger, logMessageTypes) {
this.logger = logger;
this.logMessageTypes = logMessageTypes;
this.logMessageTypesSet = new Set(logMessageTypes === 'all' ? [] : logMessageTypes);
}
handle(originalMessage) {
if (this.logMessageTypes === 'all' || this.logMessageTypesSet.has(originalMessage.header.messageType)) {
const formattedMessage = formatMessageForDump(originalMessage);
this.logger.debug(formattedMessage);
}
return originalMessage;
}
}