Skip to content

Instantly share code, notes, and snippets.

@umcconnell
Created November 26, 2019 18:00
Show Gist options
  • Save umcconnell/f5af0e6be7e1bf3466fba08cd265a9c0 to your computer and use it in GitHub Desktop.
Save umcconnell/f5af0e6be7e1bf3466fba08cd265a9c0 to your computer and use it in GitHub Desktop.
Loading animation for node console
// Adapted from https://stackoverflow.com/questions/34848505/how-to-make-a-loading-animation-in-console-application-written-in-javascript-or
/**
* Create and display a loader in the console.
*
* @param {string} [text=""] Text to display after loader
* @param {array.<string>} [chars=["⠙", "⠘", "⠰", "⠴", "⠤", "⠦", "⠆", "⠃", "⠋", "⠉"]]
* Array of characters representing loader steps
* @param {number} [delay=100] Delay in ms between loader steps
* @example
* let loader = loadingAnimation("Loading…");
*
* // Stop loader after 1 second
* setTimeout(() => clearInterval(loader), 1000);
* @returns {number} An interval that can be cleared to stop the animation
*/
function loadingAnimation(
text = "",
chars = ["⠙", "⠘", "⠰", "⠴", "⠤", "⠦", "⠆", "⠃", "⠋", "⠉"],
delay = 100
) {
let x = 0;
return setInterval(function() {
process.stdout.write("\r" + chars[x++] + " " + text);
x = x % chars.length;
}, delay);
}
@ByteJoseph
Copy link

Thanks bro

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment