/** @type {import('next').NextConfig} */
module.exports = {
  reactStrictMode: true,
  transpilePackages: ["@saleor/apps-shared"],
};

const isSentryEnvAvailable =
  process.env.SENTRY_AUTH_TOKEN &&
  process.env.SENTRY_PROJECT &&
  process.env.SENTRY_ORG &&
  process.env.SENTRY_AUTH_TOKEN &&
  process.env.NEXT_PUBLIC_SENTRY_DSN;

const { withSentryConfig } = require("@sentry/nextjs");

module.exports = withSentryConfig(
  module.exports,
  {
    /*
     * For all available options, see:
     * https://github.com/getsentry/sentry-webpack-plugin#options
     */

    // Suppresses source map uploading logs during build
    silent: true,

    org: process.env.SENTRY_ORG,
    project: process.env.SENTRY_PROJECT,
  },
  {
    disableServerWebpackPlugin: !isSentryEnvAvailable,
    disableClientWebpackPlugin: !isSentryEnvAvailable,
    /*
     * For all available options, see:
     * https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
     */

    // Upload a larger set of source maps for prettier stack traces (increases build time)
    widenClientFileUpload: 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,
  }
);
