@sentry/nextjs
Version:
Official Sentry SDK for Next.js
29 lines (26 loc) • 1.05 kB
JavaScript
import { defaultTextMapSetter, propagation } from '@opentelemetry/api';
import { SentryPropagator } from '@sentry/opentelemetry';
import { CACHE_ORIGIN_META_TAG_NAME } from '../common/traceMetaTags.js';
import { isPrerenderContext, markPrerendersOnTracerProvider } from './prerenderContext.js';
class NextSentryPropagator extends SentryPropagator {
/** @inheritDoc */
inject(ctx, carrier, setter) {
if (!Array.isArray(carrier) || !isPrerenderContext(ctx)) {
super.inject(ctx, carrier, setter);
return;
}
const values = {};
super.inject(ctx, values, defaultTextMapSetter);
const sentryTrace = values["sentry-trace"];
if (sentryTrace) {
setter.set(carrier, CACHE_ORIGIN_META_TAG_NAME, sentryTrace);
}
}
}
function registerNextSentryPropagator(provider) {
markPrerendersOnTracerProvider(provider);
propagation.disable();
propagation.setGlobalPropagator(new NextSentryPropagator());
}
export { NextSentryPropagator, registerNextSentryPropagator };
//# sourceMappingURL=nextSentryPropagator.js.map