12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- "use strict";
- module.exports = () => {
- const listeners = Object.create(null);
- return Object.freeze({
- on(eventName, listener) {
- if (eventName in listeners) {
- listeners[eventName].push(listener);
- } else {
- listeners[eventName] = [listener];
- }
- },
- emit(eventName, ...args) {
- if (eventName in listeners) {
- listeners[eventName].forEach(listener => listener(...args));
- }
- },
- eventNames() {
- return Object.keys(listeners);
- }
- });
- };
|