tiny-spinner
Version:
A simple, yet beautiful, CLI spinner.
23 lines (22 loc) • 583 B
JavaScript
/* IMPORT */
import truncate from 'tiny-truncate';
/* MAIN */
const isTTY = () => {
return !!globalThis.process?.stdout?.isTTY;
};
const writeLine = (line) => {
line = truncate(line);
const process = globalThis.process;
if (process) {
const isTerminal = /(\r?\n|\r)$/.test(line);
process.stdout?.cursorTo?.(0);
process.stdout?.write?.(line.trim());
process.stdout?.clearLine?.(1);
process.stdout?.write?.(isTerminal ? '\r\n' : '');
}
else {
console.log(line);
}
};
/* EXPORT */
export { isTTY, writeLine };