library-ts/browser/messages/MessageReader.ts

66 lines
1.1 KiB
TypeScript

import { Message } from './Message';
import { MessageTypes } from './MessageType';
export class MessageReader
{
private _messages:Message[] = [];
private _scanned = false;
private _errors = new Set<number>();
private _warnings = new Set<number>();
constructor( messages:Message[] = null )
{
this._messages = messages || [];
}
set messages( messages:Message[] )
{
this._messages = messages;
this._scanned = false;
}
get messages()
{
return this._messages;
}
private _scan()
{
if ( this._scanned )
{
return;
}
this._scanned = true;
this._errors.clear();
this._warnings.clear();
for ( let i = 0; i < this._messages.length; i++ )
{
if ( MessageTypes.Error === this._messages[ i ].type )
{
this._errors.add( i );
}
if ( MessageTypes.Warning === this._messages[ i ].type )
{
this._warnings.add( i );
}
}
}
get hasErrors()
{
this._scan();
return this._errors.size > 0;
}
get hasWarnings()
{
this._scan();
return this._warnings.size > 0;
}
}