feat: init
This commit is contained in:
29
node_modules/nitropack/dist/runtime/internal/timing.mjs
generated
vendored
Normal file
29
node_modules/nitropack/dist/runtime/internal/timing.mjs
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
import { eventHandler } from "h3";
|
||||
import { defineNitroPlugin } from "./plugin.mjs";
|
||||
const globalTiming = globalThis.__timing__ || {
|
||||
start: () => 0,
|
||||
end: () => 0,
|
||||
metrics: []
|
||||
};
|
||||
const timingMiddleware = eventHandler((event) => {
|
||||
const start = globalTiming.start();
|
||||
const _end = event.node.res.end;
|
||||
event.node.res.end = function(chunk, encoding, cb) {
|
||||
const metrics = [
|
||||
["Generate", globalTiming.end(start)],
|
||||
...globalTiming.metrics
|
||||
];
|
||||
const serverTiming = metrics.map((m) => `-;dur=${m[1]};desc="${encodeURIComponent(m[0])}"`).join(", ");
|
||||
if (!event.node.res.headersSent) {
|
||||
event.node.res.setHeader("Server-Timing", serverTiming);
|
||||
}
|
||||
_end.call(event.node.res, chunk, encoding, cb);
|
||||
return this;
|
||||
}.bind(event.node.res);
|
||||
});
|
||||
export default defineNitroPlugin((nitro) => {
|
||||
nitro.h3App.stack.unshift({
|
||||
route: "/",
|
||||
handler: timingMiddleware
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user