coach-core
Version:
Core package for the Coach.
26 lines (25 loc) • 859 B
JavaScript
(function () {
'use strict';
const supported = PerformanceObserver.supportedEntryTypes;
if (!supported || !supported.includes('element')) {
return;
}
const observer = new PerformanceObserver(() => {});
observer.observe({ type: 'element', buffered: true });
const entries = observer.takeRecords();
const elements = {};
for (let entry of entries) {
// Look out for colliding identifiers and missing identifiers
elements[entry.identifier] = {
duration: entry.duration,
url: entry.url,
loadTime: Number(entry.loadTime.toFixed(0)),
renderTime: Number(entry.renderTime.toFixed(0)),
startTime: Number(entry.startTime.toFixed(0)),
naturalHeight: entry.naturalHeight,
naturalWidth: entry.naturalWidth,
tagName: entry.element ? entry.element.tagName : ''
};
}
return elements;
})();