lib/utils/decorators.js
function decorators() {
  for (var _len3 = arguments.length, funcs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
    funcs[_key3] = arguments[_key3];
  }

  return function (key, value, descriptor) {
    var elementDescriptor;

    if (!descriptor) {
      elementDescriptor = key;
    } else {
      elementDescriptor = {
        key: key,
        descriptor: descriptor,
        value: value
      };
    }

    var ret = funcs.reduceRight(function (a, b) {
      return b.call(this, a);
    }, elementDescriptor);
    return ret && ret.descriptor;
  };
}
function decorators() {
  for (var _len3 = arguments.length, funcs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
    funcs[_key3] = arguments[_key3];
  }

  return function (key, value, descriptor) {
    var elementDescriptor;

    if (!descriptor) {
      elementDescriptor = key;
    } else {
      elementDescriptor = {
        key: key,
        descriptor: descriptor,
        value: value
      };
    }

    var ret = funcs.reduceRight(function (a, b) {
      return b.call(this, a);
    }, elementDescriptor);
    return ret && ret.descriptor;
  };
}
function decorators ( ) { for ( var _len3 = arguments . length , funcs = new Array ( _len3 ) , _key3 = 0 ; _key3 < _len3 ; _key3 ++ ) { funcs [ _key3 ] = arguments [ _key3 ] ; } return function ( key , value , descriptor ) { var elementDescriptor ; if ( ! descriptor ) { elementDescriptor = key ; } else { elementDescriptor = { key : key , descriptor : descriptor , value : value } ; } var ret = funcs . reduceRight ( function ( a , b ) { return b . call ( this , a ) ; } , elementDescriptor ) ; return ret && ret . descriptor ; } ; }
return a function to apply any decorators to a descriptor
return a function to apply any decorators to a descriptor