My_Test_Repo/force-app/main/default/lwc/pubSub/pubSub.js

38 lines
772 B
JavaScript

let callbacks = {};
const register = (eventName, callback) => {
if (!callbacks[eventName]) {
callbacks[eventName] = new Set();
}
callbacks[eventName].add(callback);
};
const unRegister = (eventName, callback) => {
if (!callbacks[eventName]) {
callbacks[eventName] = new Set();
}
callbacks[eventName].delete(callback);
};
const unRegisterAll = () => {
callbacks = {};
};
const fire = (eventName, payload) => {
if (callbacks[eventName]) {
callbacks[eventName].forEach(callback => {
try {
callback(payload);
} catch (error) {
console.log(error);
}
});
}
};
export default {
register,
unRegister,
unRegisterAll,
fire
};