alwaysai
Version:
The alwaysAI command-line interface (CLI)
49 lines (46 loc) • 1.16 kB
text/typescript
import ora = require('ora');
import { NODE_ENV } from '../environment';
import { audit } from './audit';
type Spinner = {
fail: (message?: string) => void;
succeed: (message?: string) => void;
warn: (message?: string) => void;
setMessage: (message: string) => void;
};
export function Spinner(message: string) {
audit(`Spinner: ${message}`);
let spinner: Spinner;
if (NODE_ENV === 'test') {
spinner = {
fail(message) {
console.log(`Spinner test: ${message}`);
},
succeed(message) {
console.log(`Spinner test: ${message}`);
},
warn(message) {
console.log(`Spinner test: ${message}`);
},
setMessage(message) {
console.log(`Spinner test: ${message}`);
}
};
} else {
const oraSpinner = ora({ text: message, discardStdin: false }).start();
spinner = {
fail(message) {
oraSpinner.fail(message);
},
warn(message) {
oraSpinner.warn(message);
},
succeed(message) {
oraSpinner.succeed(message);
},
setMessage(message) {
oraSpinner.text = message;
}
};
}
return spinner;
}