@edgefirst-dev/server-timing
v0.0.1
Published
A helper to collect measurements for the Server-Timing header
Readme
@edgefirst-dev/server-timing
A helper to collect measurements for the Server-Timing header
Usage
Install the package:
bun add @edgefirst-dev/server-timingInstantiate the timing collector:
import { TimingCollector } from "@edgefirst-dev/server-timing";
// You can instantiate this in the getLoadContext of Remix or React Router
let collector = new TimingCollector();Take measurements:
collector.measure("my-metrict", "optional description", 100, async () => {
// do something
});Get the Server-Timing header:
let headers = new Headers();
collector.toHeaders(headers);[!TIP] Use this library in Remix or React Router applications to measure async code like HTTP requests or database queries, then collect the measurements and add them to the Server-Timing header.
Manually collect timings
You can also manually collect timings:
import { Timing } from "@edgefirst-dev/server-timing";
// measures are taken from the time this is created
let timing = new Timing("name", "description");
await doSomething(); // do something
timing.end(); // end the measurement
collector.add(timing); // add the timing to the collectorEach Timing can be used once. If you want to take different measurements, create a new Timing instance.
[!TIP] Use the
Collector#measuremethod to automatically create aTiminginstance and add it to the collector.
