BlackDice/b3-chief

View on GitHub
src/core/EventEmittable.js

Summary

Maintainability
A
0 mins
Test Coverage
import stampit from 'stampit'
import EventEmitter from 'events'

const EventEmittable = stampit({
    initializers: function initEventEmitter() {
        Reflect.apply(EventEmitter, this, [])
    },
    methods: ['emit', 'on', 'once', 'removeListener', 'removeAllListeners'].reduce(useMethod, {}),
})

function useMethod(methods, methodName) {
    return { ...methods, [methodName]: EventEmitter.prototype[methodName] }
}

export default EventEmittable