backed-cli
Version:
The official command line interface for Backed
51 lines (47 loc) • 1.09 kB
JavaScript
;
const elegantSpinner = require('elegant-spinner');
const logUpdate = require('log-update');
const chalk = require('chalk');
let frame = elegantSpinner();
let text = 'Building';
let done = false;
let running = false;
let startTime;
const time = () => {
return new Date().toLocaleTimeString();
};
const now = () => {
return Date.now();
};
let interval = () => {
setInterval(() => {
if (running) {
logUpdate(`[${time()}] ${text} ${frame()}`);
if (done) {
process.send('done');
}
}
}, 50);
};
process.on('message', message => {
if (message === 'start') {
running = true;
startTime = now();
interval();
} else if (message === 'pauze') {
running = false;
} else if (message === 'resume') {
running = true;
} else if (message.includes('finished')) {
frame = () => {
return '';
};
let period = now() - startTime;
period /= 1000;
text = `${message} after: ${chalk.magenta(period + ' sec')}`;
} else if (message === 'done') {
done = true;
} else {
text = message;
}
});