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