Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // const emitter = EventEmitter();
- // emitter.on('event', (...args) => console.log(...args));
- //
- const addHandler = (handlers, handler) => (
- handlers != null
- ? [...handlers, handler]
- : [handler]
- );
- const call = args => fn => fn(...args);
- const callHandlers = (handlers, args) => (
- handlers != null
- ? handlers.forEach(call(args))
- : void 0
- );
- const on = handlers => (event, handler) => handlers.set(
- event,
- addHandler(
- handlers.get(event), handler
- )
- );
- const emit = handlers => (event, ...args) => callHandlers(
- handlers.get(event),
- args
- );
- const EmitterMethods = handlers => ({
- on: on(handlers),
- emit: emit(handlers),
- });
- export const EventEmitter = () => EmitterMethods(new Map());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement