import { Message } from "./message.js"; /** * @typedef {Object} MessageLike * @property {string} action - every string valid for JS function name. * @property {Object} data - The user's last name. */ /** * @param {string|MessageLike} message - Message itself of JSON representation of Message */ function processMessage(messageLike = {}) { const message = new Message(messageLike); if(!message.isValid()) { console.error("Got mallformed message:", message); return; }; if (this.actions[message.action]) { this.actions[message.action](message.data); } else { this.fallbackAction(message); } }; const messageProcessor = { // Use Map instead? actions: {}, processMessage, fallbackAction: function(x) { console.log("No actions for message:", x) } } export { messageProcessor };