From f9b3eba9737b308f91566fc68aa666273dad46f4 Mon Sep 17 00:00:00 2001 From: Stan Girard Date: Sun, 2 Jul 2023 14:32:09 +0200 Subject: [PATCH] feat(sentry): added only if env variable set --- frontend/next.config.js | 64 ++++++++++++++++---------------- frontend/sentry.client.config.ts | 60 +++++++++++++++--------------- frontend/sentry.edge.config.ts | 30 +++++++-------- frontend/sentry.server.config.ts | 30 +++++++-------- 4 files changed, 93 insertions(+), 91 deletions(-) diff --git a/frontend/next.config.js b/frontend/next.config.js index cad0c7126..7d8c003d7 100644 --- a/frontend/next.config.js +++ b/frontend/next.config.js @@ -1,41 +1,43 @@ const nextConfig = {}; -module.exports = nextConfig; +// Check if the SENTRY_DSN environment variable is defined +if (process.env.SENTRY_DSN) { + // SENTRY_DSN exists, include Sentry configuration + const { withSentryConfig } = require("@sentry/nextjs"); + module.exports = withSentryConfig( + nextConfig, + { + // For all available options, see: + // https://github.com/getsentry/sentry-webpack-plugin#options -// // Injected content via Sentry wizard below + // Suppresses source map uploading logs during build + silent: true, -// const { withSentryConfig } = require("@sentry/nextjs"); + org: "quivr-0f", + project: "javascript-nextjs", + }, + { + // For all available options, see: + // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ -// module.exports = withSentryConfig( -// module.exports, -// { -// // For all available options, see: -// // https://github.com/getsentry/sentry-webpack-plugin#options + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, -// // Suppresses source map uploading logs during build -// silent: true, + // Transpiles SDK to be compatible with IE11 (increases bundle size) + transpileClientSDK: true, -// org: "quivr-0f", -// project: "javascript-nextjs", -// }, -// { -// // For all available options, see: -// // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) + tunnelRoute: "/monitoring", -// // Upload a larger set of source maps for prettier stack traces (increases build time) -// widenClientFileUpload: true, + // Hides source maps from generated client bundles + hideSourceMaps: true, -// // Transpiles SDK to be compatible with IE11 (increases bundle size) -// transpileClientSDK: true, - -// // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load) -// tunnelRoute: "/monitoring", - -// // Hides source maps from generated client bundles -// hideSourceMaps: true, - -// // Automatically tree-shake Sentry logger statements to reduce bundle size -// disableLogger: true, -// } -// ); \ No newline at end of file + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, + } + ); +} else { + // SENTRY_DSN does not exist, export nextConfig without Sentry + module.exports = nextConfig; +} \ No newline at end of file diff --git a/frontend/sentry.client.config.ts b/frontend/sentry.client.config.ts index 9bf78aead..bb2cef54f 100644 --- a/frontend/sentry.client.config.ts +++ b/frontend/sentry.client.config.ts @@ -1,38 +1,38 @@ -// // This file configures the initialization of Sentry on the client. -// // The config you add here will be used whenever a users loads a page in their browser. -// // https://docs.sentry.io/platforms/javascript/guides/nextjs/ +// This file configures the initialization of Sentry on the client. +// The config you add here will be used whenever a users loads a page in their browser. +// https://docs.sentry.io/platforms/javascript/guides/nextjs/ -// import * as Sentry from "@sentry/nextjs"; +import * as Sentry from "@sentry/nextjs"; -// // Get the DSN from the environment variable -// const SENTRY_DSN = process.env.SENTRY_DSN; +// Get the DSN from the environment variable +const SENTRY_DSN = process.env.SENTRY_DSN; -// // Only initialize Sentry if the DSN is set -// if (SENTRY_DSN) { -// Sentry.init({ -// dsn: SENTRY_DSN, +// Only initialize Sentry if the DSN is set +if (SENTRY_DSN) { + Sentry.init({ + dsn: SENTRY_DSN, -// // Adjust this value in production, or use tracesSampler for greater control -// tracesSampleRate: 1, + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, -// // Setting this option to true will print useful information to the console while you're setting up Sentry. -// debug: false, + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, -// replaysOnErrorSampleRate: 1.0, + replaysOnErrorSampleRate: 1.0, -// // This sets the sample rate to be 10%. You may want this to be 100% while -// // in development and sample at a lower rate in production -// replaysSessionSampleRate: 0.1, + // This sets the sample rate to be 10%. You may want this to be 100% while + // in development and sample at a lower rate in production + replaysSessionSampleRate: 0.1, -// // You can remove this option if you're not planning to use the Sentry Session Replay feature: -// integrations: [ -// new Sentry.Replay({ -// // Additional Replay configuration goes in here, for example: -// maskAllText: true, -// blockAllMedia: true, -// }), -// ], -// }); -// } else { -// console.log("Sentry is not initialized as SENTRY_DSN is not set"); -// } \ No newline at end of file + // You can remove this option if you're not planning to use the Sentry Session Replay feature: + integrations: [ + new Sentry.Replay({ + // Additional Replay configuration goes in here, for example: + maskAllText: true, + blockAllMedia: true, + }), + ], + }); +} else { + console.log("Sentry is not initialized as SENTRY_DSN is not set"); +} \ No newline at end of file diff --git a/frontend/sentry.edge.config.ts b/frontend/sentry.edge.config.ts index b33fb1b3a..0805f5be2 100644 --- a/frontend/sentry.edge.config.ts +++ b/frontend/sentry.edge.config.ts @@ -1,19 +1,19 @@ -// import * as Sentry from "@sentry/nextjs"; +import * as Sentry from "@sentry/nextjs"; -// // Get the DSN from the environment variable -// const SENTRY_DSN = process.env.SENTRY_DSN; +// Get the DSN from the environment variable +const SENTRY_DSN = process.env.SENTRY_DSN; -// // Only initialize Sentry if the DSN is set -// if (SENTRY_DSN) { -// Sentry.init({ -// dsn: SENTRY_DSN, +// Only initialize Sentry if the DSN is set +if (SENTRY_DSN) { + Sentry.init({ + dsn: SENTRY_DSN, -// // Adjust this value in production, or use tracesSampler for greater control -// tracesSampleRate: 1, + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, -// // Setting this option to true will print useful information to the console while you're setting up Sentry. -// debug: false, -// }); -// } else { -// console.log("Sentry is not initialized on the server as SENTRY_DSN is not set"); -// } \ No newline at end of file + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + }); +} else { + console.log("Sentry is not initialized on the server as SENTRY_DSN is not set"); +} \ No newline at end of file diff --git a/frontend/sentry.server.config.ts b/frontend/sentry.server.config.ts index b33fb1b3a..0805f5be2 100644 --- a/frontend/sentry.server.config.ts +++ b/frontend/sentry.server.config.ts @@ -1,19 +1,19 @@ -// import * as Sentry from "@sentry/nextjs"; +import * as Sentry from "@sentry/nextjs"; -// // Get the DSN from the environment variable -// const SENTRY_DSN = process.env.SENTRY_DSN; +// Get the DSN from the environment variable +const SENTRY_DSN = process.env.SENTRY_DSN; -// // Only initialize Sentry if the DSN is set -// if (SENTRY_DSN) { -// Sentry.init({ -// dsn: SENTRY_DSN, +// Only initialize Sentry if the DSN is set +if (SENTRY_DSN) { + Sentry.init({ + dsn: SENTRY_DSN, -// // Adjust this value in production, or use tracesSampler for greater control -// tracesSampleRate: 1, + // Adjust this value in production, or use tracesSampler for greater control + tracesSampleRate: 1, -// // Setting this option to true will print useful information to the console while you're setting up Sentry. -// debug: false, -// }); -// } else { -// console.log("Sentry is not initialized on the server as SENTRY_DSN is not set"); -// } \ No newline at end of file + // Setting this option to true will print useful information to the console while you're setting up Sentry. + debug: false, + }); +} else { + console.log("Sentry is not initialized on the server as SENTRY_DSN is not set"); +} \ No newline at end of file