04ceba4309
* measures fid * updates typings, fixes logic, updates per review comments * update to es5 * separate clearMeasures * use relayer * creates fid polyfll render helper + simplifies measure * switch to dynamic import * creates fid experimental flag * removes unecessary time-to-first-input metric * removes hydration measure removes * default flag to false Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
29 lines
752 B
JavaScript
29 lines
752 B
JavaScript
/* global hydrationMetrics */
|
|
|
|
export default onPerfEntry => {
|
|
hydrationMetrics.onInputDelay((delay, event) => {
|
|
const hydrationMeasures = performance.getEntriesByName(
|
|
'Next.js-hydration',
|
|
'measure'
|
|
)
|
|
|
|
if (hydrationMeasures.length > 0) {
|
|
const { startTime, duration } = hydrationMeasures[0]
|
|
const hydrateEnd = startTime + duration
|
|
|
|
if (event.timeStamp > hydrateEnd) {
|
|
onPerfEntry({
|
|
name: 'first-input-delay-after-hydration',
|
|
startTime: event.timeStamp,
|
|
duration: delay,
|
|
})
|
|
} else {
|
|
onPerfEntry({
|
|
name: 'first-input-delay-before-hydration',
|
|
startTime: event.timeStamp,
|
|
duration: delay,
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|