I have a system that is generating internal events for objects. I am extending their debugger to display a human-readable version of the events sent to the debugger.
For instance, the system will generate "OnClick" for the "Blue Button" control, on a "a-guid-value-for-the-view" view. If the readable version of "a-guid-value-for-the-view" is "Customer Edit View" I want to output
On the Customer Edit View, Blue Button was clicked.
To set this up, I will Map every event to a template literal which I evaluate dynamically. My code works but the setup of the Map in PopulateEvents looks too heavy. Is there a way to make this more readable?
//Setup the list of events
function populateEvents() {
events = new Map([
["OnClick", function _renderEvent(viewId, controlName, properEvent) {
return `On the ${_viewName(viewId)}, ${controlName} was ${properEvent}.`}],
])}
//Function to translate system event
var eventName = function (eventParams) {
return events.get(systemEventName)(viewId, controlName, properEvent);
}
var viewName = function (viewId) {
if (!views.has(viewId)) {
views.set(viewId, fnToConvertViewIdToName(viewId))
}
return views(viewId);
}
}