55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
/// <reference path="./typings/main.d.ts" />
|
|
import * as plugins from "./beautylog.plugins";
|
|
import {logNode} from "./beautylog.log.helpers";
|
|
|
|
export let isOraActive: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 {
|
|
private _oraObject;
|
|
state:string;
|
|
constructor(textArg:string,colorArg:string,startArg:boolean = false){
|
|
this._oraObject = plugins.ora({
|
|
spinner:"dots",
|
|
text:textArg,
|
|
color:colorArg
|
|
});
|
|
|
|
startArg ? this._oraObject.start() : void(0);
|
|
}
|
|
text(textArg){
|
|
this._oraObject.text = textArg;
|
|
};
|
|
|
|
start(textArg?:string,colorArg?:string){
|
|
if(textArg) this._oraObject.text = textArg;
|
|
if(colorArg) this._oraObject.color = colorArg;
|
|
activeOra = this;
|
|
isOraActive = true;
|
|
this._oraObject.start();
|
|
};
|
|
end(){
|
|
this._oraObject.stop();
|
|
this._oraObject.clear();
|
|
activeOra = undefined;
|
|
isOraActive = false;
|
|
}
|
|
endOk(textArg){
|
|
this.end();
|
|
logNode(textArg,"ok");
|
|
};
|
|
endError(textArg){
|
|
this.end();
|
|
logNode(textArg,"error");
|
|
};
|
|
stop(){ // alias for end
|
|
this.end();
|
|
}
|
|
|
|
// log methods that play nice with ora
|
|
log(logText:string,logType:string){
|
|
this.stop();
|
|
logNode(logText,logType);
|
|
this.start();
|
|
}
|
|
} |