import Severity from '@vscode-alt/monaco-editor/esm/vs/base/common/severity'; import { IExtensionDescription, IMessage } from '../../interfaces'; export class ExtensionMessageCollector { private readonly _messageHandler: (msg: IMessage) => void; private readonly _extension: IExtensionDescription; private readonly _extensionPointId: string; constructor( messageHandler: (msg: IMessage) => void, extension: IExtensionDescription, extensionPointId: string, ) { this._messageHandler = messageHandler; this._extension = extension; this._extensionPointId = extensionPointId; } private _msg(type: Severity, message: string): void { this._messageHandler({ type: type, message: message, extensionId: this._extension.identifier, extensionPointId: this._extensionPointId, }); } public error(message: string): void { this._msg(Severity.Error, message); } public warn(message: string): void { this._msg(Severity.Warning, message); } public info(message: string): void { this._msg(Severity.Info, message); } }