import 'typings-global' import * as plugins from './beautylog.plugins' import { logNode } from './beautylog.log.helpers' export let oraActive: boolean = false // when an Ora is active (e.g. start()) this is true export let activeOra: Ora // points to the currently active Ora object export class Ora { state: string private _oraObject constructor(textArg: string, colorArg: string, startArg: boolean = false) { this._oraObject = plugins.ora({ spinner: 'dots', text: textArg, color: colorArg }) if (startArg) { this.start() } } text(textArg) { this._oraObject.text = textArg } start(textArg?: string, colorArg?: string) { if (textArg) { this.text(textArg) } if (colorArg) { this._oraObject.color = colorArg } activeOra = this oraActive = true this._oraObject.start() } end() { this._oraObject.stop() this._oraObject.clear() activeOra = undefined oraActive = false } endOk(textArg) { this.end() logNode('ok', textArg) } endError(textArg) { this.end() logNode('error', textArg) } pause() { this._oraObject.stop() } stop() { // alias for end this.end() } } export let ora = new Ora('init...', 'blue', false)