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

30 lines
974 B

7 years ago
function EV(eventName, arg) {
7 years ago
if (Object.values(EV.enum).indexOf(eventName) === -1) {
return console.warn('Unregistered event', eventName, 'registered events:', EV.enum);
7 years ago
}
7 years ago
EV.callbacks = EV.callbacks || {}; // static variable
EV.callbacks[eventName] = EV.callbacks[eventName] || [];
7 years ago
7 years ago
if (typeof arg !== 'function') {
// then its an argument
console.log('got event', eventName, '...');
7 years ago
for (let cc of EV.callbacks[eventName]) {
7 years ago
console.log('dispatching event', eventName);
cc(arg);
7 years ago
}
7 years ago
} else {
// its a callback. subscribe it to event
console.log('someone subscribed to', eventName);
EV.callbacks[eventName].push(arg);
7 years ago
}
}
EV.enum = {
WALLETS_COUNT_CHANGED: 'WALLETS_COUNT_CHANGED',
TRANSACTIONS_COUNT_CHANGED: 'TRANSACTIONS_COUNT_CHANGED',
CREATE_TRANSACTION_NEW_DESTINATION_ADDRESS: 'CREATE_TRANSACTION_NEW_DESTINATION_ADDRESS',
6 years ago
RECEIVE_ADDRESS_CHANGED: 'RECEIVE_ADDRESS_CHANGED',
7 years ago
};
7 years ago
7 years ago
module.exports = EV;