114 lines
2.1 KiB
TypeScript
114 lines
2.1 KiB
TypeScript
![]() |
import { Message } from './Message';
|
||
|
import { MessageType, MessageTypes, Verbose } from './MessageType';
|
||
|
import { MessageColors } from "./MessageColors";
|
||
|
|
||
|
|
||
|
export class MessageWriter
|
||
|
{
|
||
|
protected _messages:Message[] = [];
|
||
|
autologToConsole:boolean = false;
|
||
|
consoleLogLevel:number = 1;
|
||
|
|
||
|
constructor( messages:Message[] = null )
|
||
|
{
|
||
|
this._messages = messages || [];
|
||
|
}
|
||
|
|
||
|
set messages( messages:Message[] )
|
||
|
{
|
||
|
this._messages = messages;
|
||
|
}
|
||
|
|
||
|
get messages()
|
||
|
{
|
||
|
return this._messages;
|
||
|
}
|
||
|
|
||
|
logMessages()
|
||
|
{
|
||
|
let mw = new MessageWriter();
|
||
|
mw.autologToConsole = true;
|
||
|
this._messages.forEach( m => mw.addMessage( m ) );
|
||
|
}
|
||
|
|
||
|
addMessage( message:Message )
|
||
|
{
|
||
|
let colors = MessageColors;
|
||
|
|
||
|
/*let message = new Message();
|
||
|
message.type = type;
|
||
|
message.content = content;
|
||
|
*/
|
||
|
let type = message.type;
|
||
|
let content = message.content;
|
||
|
|
||
|
this._messages.push( message );
|
||
|
|
||
|
if ( this.autologToConsole )
|
||
|
{
|
||
|
if ( this.consoleLogLevel > MessageTypes.getLevel( type ) )
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
switch ( type )
|
||
|
{
|
||
|
case MessageTypes.Verbose:
|
||
|
{
|
||
|
console.log( colors.gray( content ) );
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case MessageTypes.Info:
|
||
|
{
|
||
|
console.log( content );
|
||
|
};
|
||
|
break;
|
||
|
|
||
|
case MessageTypes.Warning:
|
||
|
{
|
||
|
console.warn( colors.yellow( content ) );
|
||
|
};
|
||
|
break;
|
||
|
|
||
|
case MessageTypes.Error:
|
||
|
{
|
||
|
console.error( colors.bgRed( colors.black( content ) ) );
|
||
|
};
|
||
|
break;
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
add( type:MessageType, content:string )
|
||
|
{
|
||
|
let message = new Message();
|
||
|
message.type = type;
|
||
|
message.content = content;
|
||
|
|
||
|
this.addMessage( message );
|
||
|
}
|
||
|
|
||
|
verbose( content:string )
|
||
|
{
|
||
|
this.add( MessageTypes.Verbose, content );
|
||
|
}
|
||
|
|
||
|
info( content:string )
|
||
|
{
|
||
|
this.add( MessageTypes.Info, content );
|
||
|
}
|
||
|
|
||
|
warn( content:string )
|
||
|
{
|
||
|
this.add( MessageTypes.Warning, content );
|
||
|
}
|
||
|
|
||
|
error( content:string )
|
||
|
{
|
||
|
this.add( MessageTypes.Error, content );
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|