jxson
7/18/2014 - 6:20 PM

value-event-event.js

var extend = require('xtend');

module.exports = SinkEventHandler;

function SinkEventHandler(sink, data) {
  if (!(this instanceof SinkEventHandler)) {
    return new SinkEventHandler(sink, data);
  }

  this.sink = sink;
  this.id = sink.id;
  this.data = extend({ preventDefault: true }, data);
}

SinkEventHandler.prototype.handleEvent = handleEvent;

function handleEvent(ev) {
  var data = this.data;

  if (data.preventDefault) ev.preventDefault();

  if (typeof this.sink === 'function') {
    this.sink(this.data);
  } else {
    this.sink.write(this.data);
  }
}