@sentry/nextjs
Version:
Official Sentry SDK for Next.js
35 lines (31 loc) • 1.25 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const core = require('@sentry/core');
function createSentryTunnelRoute(options = {}) {
const allowedDsnsFromOptions = options.allowedDsns?.length ? normalizeDsns(options.allowedDsns) : void 0;
return {
POST: async (request) => {
const allowedDsns = allowedDsnsFromOptions ?? getServerDsns();
if (!allowedDsns.length) {
return new Response(
allowedDsnsFromOptions ? "Tunnel route has no valid DSN in allowedDsns." : "Tunnel route requires Sentry server SDK initialized with a DSN, or pass allowedDsns explicitly.",
{ status: 500 }
);
}
return core.suppressTracing(() => core.handleTunnelRequest(request, { allowedDsns }));
}
};
}
const POST = createSentryTunnelRoute().POST;
function getServerDsns() {
const dsn = core.getClient()?.getDsn();
return dsn ? [core.dsnToString(dsn)] : [];
}
function normalizeDsns(dsns) {
return dsns.flatMap((dsn) => {
const dsnComponents = core.makeDsn(dsn.trim());
return dsnComponents ? [core.dsnToString(dsnComponents)] : [];
});
}
exports.POST = POST;
exports.createSentryTunnelRoute = createSentryTunnelRoute;
//# sourceMappingURL=index.js.map