You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
461 B
JavaScript

"use strict";
module.exports = function createHandlerTracker() {
let handlers = new Map();
return {
add: function (name, func) {
if (!handlers.has(name)) {
handlers.set(name, []);
}
handlers.get(name).push(func);
},
call: function (name, value) {
let funcs = handlers.get(name);
if (funcs != null) {
for (let func of funcs) {
func(value);
}
}
},
has: function (name) {
return handlers.has(name);
}
};
};