継承できない / したくないけど EventEmitter なクラスを作りたい事がよくあるので、デコレータつかって mixin できるパッケージを作ってみた。
使い方
babel で stage 0 するの前提です。
import EventEmitter from 'eventemitter-decorator'; @EventEmitter class Foo {} const foo = new Foo(); foo.on('hello', (name) => console.log(`hello, ${name}!!`)); foo.emit('hello', 'world'); // 'hello, world!!'
ES7 Decorator
デコレータデビューして満足
azuさんの資料で雰囲気よんで、wycatsのproposal見ながら書いた
WeakMap使ってる
mixin したクラスのインスタンス毎に new EventEmitter()
して WeakMap に突っ込んでる。
まだ require("babel/polyfill");
してないのでブラウザで動かなくて不便。WeakMap使うのやめようかなあ