@codechecks/lighthouse-keeper
Version:
Keep an eye on Google Lighthouse score changes
43 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
function compareReports(base, head) {
const metricsComparison = compareMetrics(base ? base.metrics : {}, head.metrics);
const failedAudits = getNewFailedAudits(base ? base.audits : [], head.audits);
return {
metricsComparison,
failedAudits,
};
}
exports.compareReports = compareReports;
function compareMetrics(base, head) {
function diffFor(key, name) {
if (!head[key]) {
return undefined;
}
return {
name,
key,
value: head[key],
diff: head[key] - (base[key] || 0),
};
}
return [
diffFor("performance", "Performance"),
diffFor("accessibility", "Accessibility"),
diffFor("best-practices", "Best practices"),
diffFor("seo", "SEO"),
diffFor("pwa", "PWA"),
].filter(d => Boolean(d));
}
function getNewFailedAudits(base, head) {
function getFailedAudits(audits) {
const failedAudits = audits.filter(a => a.score === 0);
return failedAudits;
}
const failedBaseAudits = getFailedAudits(base);
const failedHeadAudits = getFailedAudits(head);
const newFailedAudits = lodash_1.differenceBy(failedHeadAudits, failedBaseAudits, "id");
return newFailedAudits;
}
//# sourceMappingURL=compareReports.js.map