UNPKG

lighthouse

Version:

Automated auditing, performance metrics, and best practices for the web.

65 lines (54 loc) 1.64 kB
/** * @license * Copyright 2021 Google LLC * SPDX-License-Identifier: Apache-2.0 */ /** * @fileoverview The entry point for rendering the Lighthouse report for the HTML * file created by ReportGenerator. * The renderer code is bundled and injected into the report HTML along with the JSON report. */ import {renderReport} from '../renderer/api.js'; import {Logger} from '../renderer/logger.js'; function __initLighthouseReport__() { /** @type {LH.Result} */ // @ts-expect-error const lhr = window.__LIGHTHOUSE_JSON__; const reportRootEl = renderReport(lhr, { occupyEntireViewport: true, getStandaloneReportHTML() { return document.documentElement.outerHTML; }, }); document.body.append(reportRootEl); document.addEventListener('lh-analytics', /** @param {Event} e */ e => { const ce = /** @type {CustomEvent<{name: string, data?: {}}>} */(e); if ('gtag' in window) { // @ts-expect-error window.gtag('event', ce.detail.name, ce.detail.data ?? {}); } }); document.addEventListener('lh-log', /** @param {Event} e */ e => { const el = document.querySelector('div#lh-log'); if (!el) return; const logger = new Logger(el); // @ts-expect-error const detail = e.detail; switch (detail.cmd) { case 'log': logger.log(detail.msg); break; case 'warn': logger.warn(detail.msg); break; case 'error': logger.error(detail.msg); break; case 'hide': logger.hide(); break; } }); } // @ts-expect-error window.__initLighthouseReport__ = __initLighthouseReport__;