Files
scrap/node_modules/next/dist/esm/server/client-component-renderer-logger.js
2024-09-24 03:52:46 +00:00

47 lines
1.6 KiB
JavaScript

// Combined load times for loading client components
let clientComponentLoadStart = 0;
let clientComponentLoadTimes = 0;
let clientComponentLoadCount = 0;
export function wrapClientComponentLoader(ComponentMod) {
if (!("performance" in globalThis)) {
return ComponentMod.__next_app__;
}
return {
require: (...args)=>{
if (clientComponentLoadStart === 0) {
clientComponentLoadStart = performance.now();
}
const startTime = performance.now();
try {
clientComponentLoadCount += 1;
return ComponentMod.__next_app__.require(...args);
} finally{
clientComponentLoadTimes += performance.now() - startTime;
}
},
loadChunk: (...args)=>{
const startTime = performance.now();
try {
clientComponentLoadCount += 1;
return ComponentMod.__next_app__.loadChunk(...args);
} finally{
clientComponentLoadTimes += performance.now() - startTime;
}
}
};
}
export function getClientComponentLoaderMetrics(options = {}) {
const metrics = clientComponentLoadStart === 0 ? undefined : {
clientComponentLoadStart,
clientComponentLoadTimes,
clientComponentLoadCount
};
if (options.reset) {
clientComponentLoadStart = 0;
clientComponentLoadTimes = 0;
clientComponentLoadCount = 0;
}
return metrics;
}
//# sourceMappingURL=client-component-renderer-logger.js.map