70 lines
2.2 KiB
JavaScript
Executable File
70 lines
2.2 KiB
JavaScript
Executable File
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
getClientComponentLoaderMetrics: null,
|
|
wrapClientComponentLoader: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
getClientComponentLoaderMetrics: function() {
|
|
return getClientComponentLoaderMetrics;
|
|
},
|
|
wrapClientComponentLoader: function() {
|
|
return wrapClientComponentLoader;
|
|
}
|
|
});
|
|
// Combined load times for loading client components
|
|
let clientComponentLoadStart = 0;
|
|
let clientComponentLoadTimes = 0;
|
|
let clientComponentLoadCount = 0;
|
|
function wrapClientComponentLoader(ComponentMod) {
|
|
if (!('performance' in globalThis)) {
|
|
return ComponentMod.__next_app__;
|
|
}
|
|
return {
|
|
require: (...args)=>{
|
|
const startTime = performance.now();
|
|
if (clientComponentLoadStart === 0) {
|
|
clientComponentLoadStart = startTime;
|
|
}
|
|
try {
|
|
clientComponentLoadCount += 1;
|
|
return ComponentMod.__next_app__.require(...args);
|
|
} finally{
|
|
clientComponentLoadTimes += performance.now() - startTime;
|
|
}
|
|
},
|
|
loadChunk: (...args)=>{
|
|
const startTime = performance.now();
|
|
const result = ComponentMod.__next_app__.loadChunk(...args);
|
|
// Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.
|
|
// We only need to know when it's settled.
|
|
result.finally(()=>{
|
|
clientComponentLoadTimes += performance.now() - startTime;
|
|
});
|
|
return result;
|
|
}
|
|
};
|
|
}
|
|
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
|