// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

var extend = require('xtend');
var BaseEvent = require('mercury').BaseEvent;

module.exports = BaseEvent(lambda); // jshint ignore:line

// TODO(jasoncampbell): Add validation for event target type
function lambda(ev, broadcast) {
  var target = ev.target;
  var valid = ev.type === 'change';

  if (!valid) {
    // Make sure to bubble
    if (ev.startPropagation) {
      ev.startPropagation();
    }

    return;
  }

  // Merges passed in data.
  var blob = target.files[0];
  var data = extend({ blob: blob }, this.data);
  broadcast(data);
}
