import { isThenable } from '@sentry/core'; import { getFinalConfigObject } from './getFinalConfigObject.js'; /** * Wraps a user's Next.js config and applies Sentry build-time behavior (instrumentation + sourcemap upload). * * Supports both object and function Next.js configs. * * @param nextConfig - The user's exported Next.js config * @param sentryBuildOptions - Options to configure Sentry's build-time behavior * @returns The wrapped Next.js config (same shape as the input) */ function withSentryConfig(nextConfig, sentryBuildOptions = {}) { const castNextConfig = (nextConfig ) || {}; if (typeof castNextConfig === 'function') { return function ( ...webpackConfigFunctionArgs) { const maybePromiseNextConfig = castNextConfig.apply( this, webpackConfigFunctionArgs, ); if (isThenable(maybePromiseNextConfig)) { return maybePromiseNextConfig.then(promiseResultNextConfig => { return getFinalConfigObject(promiseResultNextConfig, sentryBuildOptions); }); } return getFinalConfigObject(maybePromiseNextConfig, sentryBuildOptions); } ; } else { return getFinalConfigObject(castNextConfig, sentryBuildOptions) ; } } export { withSentryConfig }; //# sourceMappingURL=index.js.map