@nuxt/devtools
Version:
<a href="https://devtools.nuxt.com"><img width="1200" alt="Nuxt DevTools" src="https://github-production-user-asset-6210df.s3.amazonaws.com/904724/261577617-a10567bd-ad33-48cc-9bda-9e37dbe1929f.png"></a> <br>
34 lines (33 loc) • 997 B
JavaScript
export function setupHooksDebug(hooks) {
const serverHooks = {};
const now = typeof globalThis.performance === "undefined" ? () => Date.now() : () => performance.now();
hooks.beforeEach((event) => {
if (!serverHooks[event.name]) {
serverHooks[event.name] = {
name: event.name,
start: now(),
// @ts-expect-error private field
listeners: hooks._hooks[event.name]?.length || 0,
executions: []
};
} else {
const hook = serverHooks[event.name];
if (hook.duration != null)
hook.executions.push(hook.duration);
hook.start = now();
hook.end = void 0;
hook.duration = void 0;
}
});
hooks.afterEach((event) => {
const hook = serverHooks[event.name];
if (!hook)
return;
hook.end = now();
hook.duration = hook.end - hook.start;
const listeners = hooks._hooks[event.name]?.length;
if (listeners != null)
hook.listeners = listeners;
});
return serverHooks;
}