.
This commit is contained in:
+70
@@ -0,0 +1,70 @@
|
||||
"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
|
||||
Reference in New Issue
Block a user