@xrayradar/nextjs
v0.2.0
Published
XrayRadar SDK for Next.js - server + client setup
Downloads
292
Maintainers
Readme
@xrayradar/nextjs
XrayRadar SDK for Next.js: use @xrayradar/node on the server and @xrayradar/react (or @xrayradar/browser) on the client.
Install
npm install @xrayradar/nextjsServer (Node)
- Create
instrumentation.tsat your project root (same level asapp/orpages/):
import { init } from "@xrayradar/node";
export async function register() {
if (process.env.NEXT_RUNTIME === "nodejs") {
init({
dsn: process.env.XRAYRADAR_DSN!,
authToken: process.env.XRAYRADAR_AUTH_TOKEN,
environment: process.env.XRAYRADAR_ENVIRONMENT,
release: process.env.XRAYRADAR_RELEASE,
});
}
}- Set env:
XRAYRADAR_DSN,XRAYRADAR_AUTH_TOKEN(and optionalXRAYRADAR_ENVIRONMENT,XRAYRADAR_RELEASE).
Server options you can set (same as @xrayradar/node):
dsn,authToken,debugenvironment,release,serverNamesampleRate,maxBreadcrumbsbeforeSend(event)(sync or async)transport(custom transport disables built-in global handlers)
Client (Browser)
In your root layout or _app.tsx:
import { init } from "@xrayradar/react";
import { ErrorBoundary } from "@xrayradar/react";
// Call once when the app loads (client-side)
if (typeof window !== "undefined") {
init({
dsn: process.env.NEXT_PUBLIC_XRAYRADAR_DSN!,
authToken: process.env.NEXT_PUBLIC_XRAYRADAR_AUTH_TOKEN,
});
}
export default function App({ Component, pageProps }) {
return (
<ErrorBoundary>
<Component {...pageProps} />
</ErrorBoundary>
);
}Use NEXT_PUBLIC_* for any client-visible DSN/token so Next.js inlines them.
Client options you can set (same as @xrayradar/react / @xrayradar/browser):
dsn,authToken,debugenvironment,release,serverNamesampleRate,maxBreadcrumbsbeforeSend(event)(sync or async)transportintegrations(fetch/XHR/history/console)
Optional config wrapper
// next.config.js
const { withXrayRadarConfig } = require("@xrayradar/nextjs");
module.exports = withXrayRadarConfig(yourExistingConfig);This is a no-op placeholder for future Next.js-specific config (e.g. source maps, rewrites).
