dist/decorators.js
function debounce(n, immed, f) {
    var _ref3 = function () {
      switch (_extractHiddenClass(immed)) {
        case 'Boolean':
          return [f, immed];
        case 'Function':
          return [immed, false];
        default:
          throw new TypeError('Unrecognized arguments ' + immed + ' and ' + f + ' to function debounce.');
      }
    }(),
        _ref4 = _slicedToArray(_ref3, 2),
        fn = _ref4[0],
        now = _ref4[1];

    var timer = null;
    return function () {
      var _this = this;

      for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
        args[_key4] = arguments[_key4];
      }

      if (timer === null && now) {
        fn.apply(this, args);
      }
      clearTimeout(timer);
      timer = setTimeout(function () {
        return fn.apply(_this, args);
      }, n);
      return timer;
    };
  }
function debounce(n, immed, f) {
    var _ref3 = function () {
      switch (_extractHiddenClass(immed)) {
        case 'Boolean':
          return [f, immed];
        case 'Function':
          return [immed, false];
        default:
          throw new TypeError('Unrecognized arguments ' + immed + ' and ' + f + ' to function debounce.');
      }
    }(),
        _ref4 = _slicedToArray(_ref3, 2),
        fn = _ref4[0],
        now = _ref4[1];

    var timer = null;
    return function () {
      var _this = this;

      for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
        args[_key4] = arguments[_key4];
      }

      if (timer === null && now) {
        fn.apply(this, args);
      }
      clearTimeout(timer);
      timer = setTimeout(function () {
        return fn.apply(_this, args);
      }, n);
      return timer;
    };
  }
function debounce ( n , immed , f ) { var _ref3 = function ( ) { switch ( _extractHiddenClass ( immed ) ) { case 'Boolean' : return [ f , immed ] ; case 'Function' : return [ immed , false ] ; default : throw new TypeError ( 'Unrecognized arguments ' + immed + ' and ' + f + ' to function debounce.' ) ; } } ( ) , _ref4 = _slicedToArray ( _ref3 , 2 ) , fn = _ref4 [ 0 ] , now = _ref4 [ 1 ] ; var timer = null ; return function ( ) { var _this = this ; for ( var _len4 = arguments . length , args = Array ( _len4 ) , _key4 = 0 ; _key4 < _len4 ; _key4 ++ ) { args [ _key4 ] = arguments [ _key4 ] ; } if ( timer === null && now ) { fn . apply ( this , args ) ; } clearTimeout ( timer ) ; timer = setTimeout ( function ( ) { return fn . apply ( _this , args ) ; } , n ) ; return timer ; } ; }
debounce :: Number -> (* -> Null) -> Number Delay in milliseconds. Returns the timer ID so caller can cancel
debounce :: Number - > ( * - > Null ) - > Number Delay in milliseconds . Returns the timer ID so caller can cancel