The Mousetrap.js library lets you bind a callback function to keys like so:
Mousetrap.bind('space', function, 'keydown');
What's the best way to attach a stream to this without using the Bus of Doom? Should I use emitter or pool?
I'm trying to get arrow keys hooked up in this fiddle: jsfiddle.net/vzafq25w
You can use general wrapper stream
var leftKeys = Kefir.stream(function(emitter){
    Mousetrap.bind('left', function(e) {
        emitter.emit(e);
        console.log(e);
    });
    return function(){
        // unbind
    };
});
http://jsfiddle.net/be9200kh/1/
Normally, you can use Kefir.fromEvents, but in your case, where Mousetrap.js does not bind using on|off methods, you can instead just use Kefir.pool (Kefir.emitter was deprecated) and trigger Kefir in the Mousetrap callbacks. I modified your code to demonstrate using Kefir.pool in the Mousetrap callbacks: http://jsfiddle.net/be9200kh/
Basically, you do
var pool = Kefir.pool();
pool.plug(Kefir.constant(1));
pool.map(...).filter(etc)
Have fun!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With