@equinor/fusion-framework-cli
Version:
--- title: Fusion Framework CLI ---
65 lines • 1.57 kB
JavaScript
import ora from 'ora';
const parseArgs = (args) => args.length ? args.join(' ') : undefined;
const originalConsole = console;
export class Spinner {
#ora;
get ora() {
return this.#ora;
}
set attachConsole(value) {
if (value) {
console.log = this.info.bind(this);
console.info = this.info.bind(this);
}
else {
// biome-ignore lint/suspicious/noGlobalAssign: duh
console = originalConsole;
}
}
static Global(options) {
_spinner = new Spinner(options);
return _spinner;
}
static Clone(spinner) {
const { prefixText } = spinner || _spinner;
return new Spinner({ prefixText });
}
static get Current() {
return _spinner;
}
static set Current(spinner) {
_spinner = spinner;
}
constructor(options) {
this.#ora = ora(options);
}
get prefixText() {
return this.#ora.prefixText;
}
info(...args) {
this.#ora.info(parseArgs(args));
}
succeed(...args) {
this.#ora.succeed(parseArgs(args));
}
start(...args) {
this.#ora.start(parseArgs(args));
}
fail(...args) {
this.#ora.fail(parseArgs(args));
}
warn(...args) {
this.#ora.warn(parseArgs(args));
}
clear() {
this.#ora.clear();
}
stop() {
this.#ora.stop();
}
stopAndPersist(...args) {
this.#ora.stopAndPersist(...args);
}
}
let _spinner = new Spinner();
//# sourceMappingURL=spinner.js.map