Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jeremyckahn/74f2e34b47bd946ee654f016e1bce35c to your computer and use it in GitHub Desktop.
Save jeremyckahn/74f2e34b47bd946ee654f016e1bce35c to your computer and use it in GitHub Desktop.
What going from ES5 to ES6 can look like
/*!
* @param {Rekapi.Actor} actor
* @param {string} animName
* @param {number} steps
* @param {boolean} doCombineProperties
* @param {Array.<string>=} opt_vendors
* @return {string}
*/
function generateBoilerplatedKeyframes (
actor, animName, steps, doCombineProperties, opt_vendors) {
var trackNames = actor.getTrackNames();
var cssTracks = [];
if (doCombineProperties) {
cssTracks.push(generateCombinedActorKeyframes(actor, steps));
} else {
_.each(trackNames, function (trackName) {
cssTracks.push(
generateActorKeyframes(actor, steps, trackName));
});
}
var boilerplatedKeyframes = [];
if (doCombineProperties) {
boilerplatedKeyframes.push(applyVendorBoilerplates(
cssTracks[0], (animName), opt_vendors));
} else {
_.each(trackNames, function (trackName, i) {
boilerplatedKeyframes.push(applyVendorBoilerplates(
cssTracks[i], (animName + '-' + trackName), opt_vendors));
});
}
boilerplatedKeyframes = boilerplatedKeyframes.join('\n');
return boilerplatedKeyframes;
}
/*!
* @param {Rekapi.Actor} actor
* @param {string} animName
* @param {number} steps
* @param {boolean} doCombineProperties
* @param {Array.<string>=} vendors
* @return {string}
*/
const generateBoilerplatedKeyframes = (
actor, animName, steps, doCombineProperties, vendors = undefined) =>
doCombineProperties ?
applyVendorBoilerplates(
generateCombinedActorKeyframes(actor, steps),
animName,
vendors
) :
actor.getTrackNames().map(trackName =>
applyVendorBoilerplates(
generateActorKeyframes(actor, steps, trackName),
`${animName}-${trackName}`,
vendors
)
).join('\n');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment