sitespeed.io/lib/plugins/browsertime/consoleLogAggregator.js

42 lines
1.1 KiB
JavaScript

import { Stats } from 'fast-stats';
import { summarizeStats as _summarizeStats } from '../../support/statsHelpers.js';
import { getGzippedFileAsJson } from './reader.js';
export class ConsoleLogAggregator {
constructor(options) {
this.options = options;
this.logs = { SEVERE: new Stats(), WARNING: new Stats() };
}
async addStats(iteration, pathToFile) {
let numberOfSevere = 0;
let numberOfWarnings = 0;
const consoleData = await getGzippedFileAsJson(
this.options.resultDir,
pathToFile
);
// For each log entry, add them to the total
for (let logMessage of consoleData) {
if (this.logs[logMessage.level] !== undefined) {
if (logMessage.level === 'SEVERE') {
numberOfSevere++;
} else if (logMessage.level === 'WARNING') {
numberOfWarnings++;
}
}
}
this.logs['SEVERE'].push(numberOfSevere);
this.logs['WARNING'].push(numberOfWarnings);
return consoleData;
}
summarizeStats() {
return {
error: _summarizeStats(this.logs.SEVERE),
warning: _summarizeStats(this.logs.WARNING)
};
}
}