smartlog-destination-local/ts/beautylog.classes.ora.ts

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();
}
}