-
Notifications
You must be signed in to change notification settings - Fork 3
/
demo.js
58 lines (51 loc) · 1.27 KB
/
demo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
const LighthouseCron = require('./');
// Additional website and description fields added to improve your dashboards
const lighthouseCron = new LighthouseCron(
[
{
website: 'Google',
description: 'Homepage',
url: 'https://www.google.com/'
},
{
website: 'YouTube',
description: 'Homepage',
url: 'https://www.youtube.com'
}
],
'00 00 * * * 0-6'
);
// listening for each audit to be complete
lighthouseCron.on('auditComplete', audit => {
const report = generateTrackableReport(audit);
console.log(report);
});
// Pulling out the metrics we are interested in
function generateTrackableReport(audit) {
const reports = [
'first-meaningful-paint',
'speed-index-metric',
'estimated-input-latency',
'time-to-interactive',
'total-byte-weight',
'dom-size'
];
const obj = {
metadata: audit.metadata,
score: Math.round(audit.score),
results: {}
};
reports.forEach(report => {
obj.results[report] = getRequiredAuditMetrics(audit.results.audits[report]);
});
return obj;
}
// getting the values we interested in
function getRequiredAuditMetrics(metrics) {
return {
score: metrics.score,
value: metrics.rawValue,
optimal: metrics.optimalValue
};
}
lighthouseCron.init(true);