index.js
function animate(Promise, TweenModule) {
  var animateTo = _animateFunc.bind(null, TweenModule.to);

  var util = animateTo;
  util.to = animateTo;
  util.from = _animateFunc.bind(null, TweenModule.from);

  util.set = function animateSet(element, params) {
    params = Object.assign({}, params);
    return new Promise(function(resolve, reject) {
      params.onComplete = resolve;
      TweenModule.set(element, params);
    });
  };

  util.fromTo = function animateFromTo(element, duration, from, to) {
    to = Object.assign({}, to);
    var tween;
    return new Promise(function(resolve, reject, onCancel) {
      to.onComplete = resolve;
      tween = TweenModule.fromTo(element, duration, from, to);
      onCancel &&
        onCancel(function() {
          tween.kill();
        });
    });
  };

  util.killTweensOf = TweenModule.killTweensOf.bind(TweenModule);
  util.all = Promise.all;
  return util;
}
function animate(Promise, TweenModule) {
  var animateTo = _animateFunc.bind(null, TweenModule.to);

  var util = animateTo;
  util.to = animateTo;
  util.from = _animateFunc.bind(null, TweenModule.from);

  util.set = function animateSet(element, params) {
    params = Object.assign({}, params);
    return new Promise(function(resolve, reject) {
      params.onComplete = resolve;
      TweenModule.set(element, params);
    });
  };

  util.fromTo = function animateFromTo(element, duration, from, to) {
    to = Object.assign({}, to);
    var tween;
    return new Promise(function(resolve, reject, onCancel) {
      to.onComplete = resolve;
      tween = TweenModule.fromTo(element, duration, from, to);
      onCancel &&
        onCancel(function() {
          tween.kill();
        });
    });
  };

  util.killTweensOf = TweenModule.killTweensOf.bind(TweenModule);
  util.all = Promise.all;
  return util;
}
function animate ( Promise , TweenModule ) { var animateTo = _animateFunc . bind ( null , TweenModule . to ) ; var util = animateTo ; util . to = animateTo ; util . from = _animateFunc . bind ( null , TweenModule . from ) ; util . set = function animateSet ( element , params ) { params = Object . assign ( { } , params ) ; return new Promise ( function ( resolve , reject ) { params . onComplete = resolve ; TweenModule . set ( element , params ) ; } ) ; } ; util . fromTo = function animateFromTo ( element , duration , from , to ) { to = Object . assign ( { } , to ) ; var tween ; return new Promise ( function ( resolve , reject , onCancel ) { to . onComplete = resolve ; tween = TweenModule . fromTo ( element , duration , from , to ) ; onCancel && onCancel ( function ( ) { tween . kill ( ) ; } ) ; } ) ; } ; util . killTweensOf = TweenModule . killTweensOf . bind ( TweenModule ) ; util . all = Promise . all ; return util ; }
Get a wrapper of GSAP Tween

@param {Promise} Promise - Promise framework
@param {TweenModule} TweenModule - TweenMax or TweenLite
@returns {Object} GSAP Promisified
Get a wrapper of GSAP Tween