63 lines
8.2 KiB
JavaScript
63 lines
8.2 KiB
JavaScript
|
"use strict";
|
||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
const render_template_1 = __importDefault(require("../utils/render-template"));
|
||
|
const message_bus_1 = __importDefault(require("../utils/message-bus"));
|
||
|
class WarningLog {
|
||
|
constructor(globalLog = null, callback) {
|
||
|
this.messageInfos = [];
|
||
|
this.globalLog = globalLog;
|
||
|
this.callback = callback;
|
||
|
this._isCopying = false;
|
||
|
}
|
||
|
get messages() {
|
||
|
return this.messageInfos.map(msg => msg.message);
|
||
|
}
|
||
|
addPlainMessage(msg) {
|
||
|
// NOTE: avoid duplicates
|
||
|
if (!this.messageInfos.find(m => m.message === msg.message))
|
||
|
this.messageInfos.push(msg);
|
||
|
}
|
||
|
addWarning(msg, ...args) {
|
||
|
let message = '';
|
||
|
let actionId = null;
|
||
|
if (typeof msg !== 'string')
|
||
|
({ message, actionId } = msg);
|
||
|
else
|
||
|
message = msg;
|
||
|
args = [message].concat(args);
|
||
|
// @ts-ignore
|
||
|
message = render_template_1.default.apply(null, args); // eslint-disable-line prefer-spread
|
||
|
this.addPlainMessage({ message, actionId });
|
||
|
if (this.globalLog)
|
||
|
this.globalLog.addPlainMessage({ message, actionId });
|
||
|
if (this.callback && !this._isCopying)
|
||
|
this.callback(message, actionId);
|
||
|
}
|
||
|
clear() {
|
||
|
this.messageInfos = [];
|
||
|
}
|
||
|
copyFrom(warningLog) {
|
||
|
this._isCopying = true;
|
||
|
warningLog.messages.forEach(msg => this.addWarning(msg));
|
||
|
this._isCopying = false;
|
||
|
}
|
||
|
static createAddWarningCallback(messageBus, testRun) {
|
||
|
return async (message, actionId) => {
|
||
|
if (messageBus && messageBus instanceof message_bus_1.default) {
|
||
|
const warning = {
|
||
|
message,
|
||
|
testRun,
|
||
|
actionId,
|
||
|
};
|
||
|
await messageBus.emit('before-warning-add', warning);
|
||
|
await messageBus.emit('warning-add', warning);
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
exports.default = WarningLog;
|
||
|
module.exports = exports.default;
|
||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FybmluZy1sb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpY2F0aW9ucy93YXJuaW5nLWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtFQUFzRDtBQUV0RCx1RUFBOEM7QUFTOUMsTUFBcUIsVUFBVTtJQU0zQixZQUFvQixZQUErQixJQUFJLEVBQUUsUUFBNkI7UUFDbEYsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBTSxTQUFTLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBTyxRQUFRLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBSyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLGVBQWUsQ0FBRSxHQUFzQjtRQUMxQyx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxVQUFVLENBQUUsR0FBK0IsRUFBRSxHQUFHLElBQVc7UUFDOUQsSUFBSSxPQUFPLEdBQUksRUFBRSxDQUFDO1FBQ2xCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFDdkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQzs7WUFFOUIsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUVsQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUIsYUFBYTtRQUNiLE9BQU8sR0FBRyx5QkFBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7UUFFaEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLElBQUksSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTFELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFFBQVEsQ0FBRSxVQUFzQjtRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRU0sTUFBTSxDQUFDLHdCQUF3QixDQUFFLFVBQWdDLEVBQUUsT0FBaUI7UUFDdkYsT0FBTyxLQUFLLEVBQUUsT0FBZSxFQUFFLFFBQXVCLEVBQUUsRUFBRTtZQUN0RCxJQUFJLFVBQVUsSUFBSSxVQUFVLFlBQVkscUJBQVUsRUFBRTtnQkFDaEQsTUFBTSxPQUFPLEdBQUc7b0JBQ1osT0FBTztvQkFDUCxPQUFPO29CQUNQLFFBQVE7aUJBQ1gsQ0FBQztnQkFFRixNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3JELE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDakQ7UUFDTCxDQUFDLENBQUM7SUFDTixDQUFDO0NBQ0o7QUF0RUQsNkJBc0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlbmRlclRlbXBsYXRlIGZyb20gJy4uL3V0aWxzL3JlbmRlci10ZW1wbGF0ZSc7XG5pbXBvcnQgVGVzdFJ1biBmcm9tICcuLi90ZXN0LXJ1bic7XG5pbXBvcnQgTWVzc2FnZUJ1cyBmcm9tICcuLi91dGlscy9tZXNzYWdlLWJ1cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FybmluZ0xvZ01lc3NhZ2Uge1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBhY3Rpb25JZDogc3RyaW5nIHwgbnVsbDtcbn1cblxudHlwZSBXYXJuaW5nTG9nQ2FsbGJhY2sgPSAobWVzc2FnZTogc3RyaW5nLCBhY3Rpb25JZDogc3RyaW5nIHwgbnVsbCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2FybmluZ0xvZyB7XG4gICAgcHVibGljIG1lc3NhZ2VJbmZvczogV2FybmluZ0xvZ01lc3NhZ2VbXTtcbiAgICBwdWJsaWMgZ2xvYmFsTG9nOiBXYXJuaW5nTG9nIHwgbnVsbDtcbiAgICBwdWJsaWMgY2FsbGJhY2s/OiBXYXJuaW5nTG9nQ2FsbGJhY2s7XG4gICAgcHJpdmF0ZSBfaXNDb3B5aW5nOiBib29sZWFuO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChnbG9iYWxMb2c6IFdhcm5pbmdMb2cgfCBudWxsID0gbnVsbCwgY2FsbGJhY2s/OiBXYXJuaW5nTG9nQ2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlSW5mb3MgPSBbXTtcbiAgICAgICAgdGhpcy5nbG9iYWxMb2cgICAgPSBnbG9iYWxMb2c7XG4gICAgICAgIHRoaXMuY2FsbGJhY2sgICAgID0gY2FsbGJhY2s7XG4gICAgICAgIHRoaXMuX2lzQ29weWluZyAgID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtZXNzYWdlcyAoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXNzYWdlSW5mb3MubWFwKG1zZyA9PiBtc2cubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFBsYWluTWVzc2FnZSAobXNnOiBXYXJuaW5nTG9nTWVzc2FnZSk6IHZvaWQge1xuICAgICAgICAvLyBOT1RFOiBhdm9pZCBkdXBsaWNhdGVzXG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlSW5mb3MuZmluZChtID0+IG0ubWVzc2FnZSA9PT0gbXNnLm1lc3NhZ2UpKVxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlSW5mb3MucHVza
|