midwinter
Version:
A next-gen middleware engine built for the WinterCG environments.
29 lines (26 loc) • 922 B
JavaScript
import { Midwinter } from './chunk-WXZQARCU.mjs';
import { trace } from '@opentelemetry/api';
import { SEMATTRS_HTTP_URL, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';
var init = (opts) => {
const { name = "midwinter" } = opts ?? {};
const otel = () => {
const tracer = trace.getTracer(name);
return new Midwinter().use((req, _, meta) => {
return tracer.startActiveSpan("request", (span) => {
return (res) => {
span.setAttributes({
[SEMATTRS_HTTP_URL]: res.url,
[ATTR_HTTP_REQUEST_METHOD]: req.method,
[ATTR_HTTP_RESPONSE_STATUS_CODE]: res.status
});
if (typeof meta.path === "string") {
span.setAttribute(ATTR_HTTP_ROUTE, meta.path);
}
span.end();
};
});
});
};
return { otel };
};
export { init };