import { MessageType, MessageTypes } from './MessageType'; export class Message { type:MessageType; content:string; static hasError( messages:Message[] ):boolean { if ( ! messages || messages.length == 0 ) { return false; } let errorMessage = messages.find( m => MessageTypes.Error == m.type ); return ! ( ! errorMessage ); } static with( type:MessageType, content:string ) { let message = new Message(); message.type =type; message.content = content; return message; } static Info( ...content:any[] ) { return Message.with( MessageTypes.Info, content.join( ", " ) ); } static addInfo( messages:Message[], ...content:any[] ) { messages.push( Message.with( MessageTypes.Info, content.join( " " ) ) ); } static Error( ...content:any[] ) { return Message.with( MessageTypes.Error, content.join( " " ) ); } static addError( messages:Message[], ...content:any[] ) { messages.push( Message.with( MessageTypes.Error, content.join( " " ) ) ); } static Warning( ...content:any[] ) { return Message.with( MessageTypes.Warning, content.join( " " ) ); } static addWarning( messages:Message[], ...content:any[] ) { messages.push( Message.with( MessageTypes.Warning, content.join( " " ) ) ); } static toConsole( message:Message ) { if ( MessageTypes.Error == message.type ) { console.error( message.content ); return } if ( MessageTypes.Warning == message.type ) { console.warn( message.content ); return } console.log( message.content ); } }