UNPKG

@equinor/fusion-framework-cli

Version:

--- title: Fusion Framework CLI ---

65 lines 1.57 kB
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