UNPKG

3.67 kBJavaScriptView Raw
1var e=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},t=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},n=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},i=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},a="function"==typeof WeakSet?new WeakSet:new Set,r=function(e,t,n){var i;return function(){t.value>=0&&(n||a.has(t)||"hidden"===document.visibilityState)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},o=-1,u=function(){n((function(e){var t=e.timeStamp;o=t}),!0)},s=function(){return o<0&&((o=self.webVitals.firstHiddenTime)===1/0&&u(),i((function(){setTimeout((function(){o="hidden"===document.visibilityState?0:1/0,u()}),0)}))),{get firstHiddenTime(){return o}}},c=function(n,o){var u,c=s(),f=e("FCP"),d=function(e){"first-contentful-paint"===e.name&&(v&&v.disconnect(),e.startTime<c.firstHiddenTime&&(f.value=e.startTime,f.entries.push(e),a.add(f),u()))},m=performance.getEntriesByName&&performance.getEntriesByName("first-contentful-paint")[0],v=m?null:t("paint",d);(m||v)&&(u=r(n,f,o),m&&d(m),i((function(t){f=e("FCP"),u=r(n,f,o),requestAnimationFrame((function(){requestAnimationFrame((function(){f.value=performance.now()-t.timeStamp,a.add(f),u()}))}))})))},f=!1,d=-1,m=function(a,o){f||(c((function(e){d=e.value})),f=!0);var u,s=function(e){d>-1&&a(e)},m=e("CLS",0),v=0,l=[],p=function(e){if(!e.hadRecentInput){var t=l[0],n=l[l.length-1];v&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(v+=e.value,l.push(e)):(v=e.value,l=[e]),v>m.value&&(m.value=v,m.entries=l,u())}},h=t("layout-shift",p);h&&(u=r(s,m,o),n((function(){h.takeRecords().map(p),u()})),i((function(){v=0,d=-1,m=e("CLS",0),u=r(s,m,o)})))},v=function(o,u){var c,f=s(),d=e("FID"),m=function(e){e.startTime<f.firstHiddenTime&&(d.value=e.processingStart-e.startTime,d.entries.push(e),a.add(d),c())},v=t("first-input",m);c=r(o,d,u),v&&n((function(){v.takeRecords().map(m),v.disconnect()}),!0),v||window.webVitals.firstInputPolyfill(m),i((function(){d=e("FID"),c=r(o,d,u),window.webVitals.resetFirstInputPolyfill(),window.webVitals.firstInputPolyfill(m)}))},l=function(o,u){var c,f=s(),d=e("LCP"),m=function(e){var t=e.startTime;t<f.firstHiddenTime&&(d.value=t,d.entries.push(e)),c()},v=t("largest-contentful-paint",m);if(v){c=r(o,d,u);var l=function(){a.has(d)||(v.takeRecords().map(m),v.disconnect(),a.add(d),c())};["keydown","click"].forEach((function(e){addEventListener(e,l,{once:!0,capture:!0})})),n(l,!0),i((function(t){d=e("LCP"),c=r(o,d,u),requestAnimationFrame((function(){requestAnimationFrame((function(){d.value=performance.now()-t.timeStamp,a.add(d),c()}))}))}))}},p=function(t){var n,i=e("TTFB");n=function(){try{var e=performance.getEntriesByType("navigation")[0]||function(){var e=performance.timing,t={entryType:"navigation",startTime:0};for(var n in e)"navigationStart"!==n&&"toJSON"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(i.value=i.delta=e.responseStart,i.value<0)return;i.entries=[e],t(i)}catch(e){}},"complete"===document.readyState?setTimeout(n,0):addEventListener("pageshow",n)};export{m as getCLS,c as getFCP,v as getFID,l as getLCP,p as getTTFB};