function tween(object, props, duration, ease, delay = 0, complete, update) {
    if (typeof delay !== 'number') {
        update = complete;
        complete = delay;
        delay = 0;
    }

    const promise = new Promise(resolve => {
        const tween = new Tween(object, props, duration, ease, delay, resolve, update);

        Tweens.push(tween);
    });

    if (complete) {
        promise.then(complete);
    }

    return promise;
}
Tween that animates to the specified destination properties.

See the Easing Functions Cheat Sheet for examples by name.
https://easings.net/

@export
@param {object} object Target object.
@param {object} props Tween properties.
@param {number} duration Time in milliseconds.
@param {string|function} ease Ease string or function.
@param {number} [delay=0] Time to wait in milliseconds.
@param {function} [complete] Callback function when the animation has completed.
@param {function} [update] Callback function every time the animation updates.
@returns {Promise}
@example
tween(data, { value: 0.3 }, 1000, 'linear');