@sentry/nextjs
Version:
Official Sentry SDK for Next.js
68 lines (65 loc) • 3.54 kB
JavaScript
import { getNextjsVersion } from '../util.js';
import { setUpBuildTimeVariables } from './buildTime.js';
import { migrateDeprecatedWebpackOptions } from './deprecatedWebpackOptions.js';
import { getBundlerInfo, maybeWarnAboutUnsupportedTurbopack, maybeWarnAboutUnsupportedRunAfterProductionCompileHook, maybeConstructTurbopackConfig, resolveUseRunAfterProductionCompileHookOption, maybeSetUpRunAfterProductionCompileHook, maybeEnableTurbopackSourcemaps, getTurbopackPatch, getWebpackPatch, getServerExternalPackagesPatch } from './getFinalConfigObjectBundlerUtils.js';
import { resolveReleaseName, maybeSetUpTunnelRouteRewriteRules, shouldReturnEarlyInExperimentalBuildMode, maybeCreateRouteManifest, maybeGetVercelCronsConfig, getNextMajor, maybeSetClientTraceMetadataOption, maybeSetInstrumentationHookOption, maybeAddOutputFileTracingIncludes, warnIfMissingOnRouterTransitionStartHook } from './getFinalConfigObjectUtils.js';
function getFinalConfigObject(incomingUserNextConfigObject, userSentryOptions) {
migrateDeprecatedWebpackOptions(userSentryOptions);
const releaseName = resolveReleaseName(userSentryOptions);
maybeSetUpTunnelRouteRewriteRules(incomingUserNextConfigObject, userSentryOptions);
if (shouldReturnEarlyInExperimentalBuildMode()) {
return incomingUserNextConfigObject;
}
const routeManifest = maybeCreateRouteManifest(incomingUserNextConfigObject, userSentryOptions);
const vercelCronsConfigResult = maybeGetVercelCronsConfig(userSentryOptions);
setUpBuildTimeVariables(incomingUserNextConfigObject, userSentryOptions, releaseName);
const nextJsVersion = getNextjsVersion();
const nextMajor = getNextMajor(nextJsVersion);
maybeSetClientTraceMetadataOption(incomingUserNextConfigObject, nextJsVersion);
maybeSetInstrumentationHookOption(incomingUserNextConfigObject, nextJsVersion);
maybeAddOutputFileTracingIncludes(incomingUserNextConfigObject, nextJsVersion);
warnIfMissingOnRouterTransitionStartHook(userSentryOptions);
const bundlerInfo = getBundlerInfo(nextJsVersion);
maybeWarnAboutUnsupportedTurbopack(nextJsVersion, bundlerInfo);
maybeWarnAboutUnsupportedRunAfterProductionCompileHook(nextJsVersion, userSentryOptions, bundlerInfo);
const turboPackConfig = maybeConstructTurbopackConfig(
incomingUserNextConfigObject,
userSentryOptions,
routeManifest,
nextJsVersion,
bundlerInfo,
vercelCronsConfigResult
);
const shouldUseRunAfterProductionCompileHook = resolveUseRunAfterProductionCompileHookOption(
userSentryOptions,
bundlerInfo
);
maybeSetUpRunAfterProductionCompileHook({
incomingUserNextConfigObject,
userSentryOptions,
releaseName,
nextJsVersion,
bundlerInfo,
turboPackConfig,
shouldUseRunAfterProductionCompileHook
});
maybeEnableTurbopackSourcemaps(incomingUserNextConfigObject, userSentryOptions, bundlerInfo);
const useDiagnosticsChannelInjection = userSentryOptions._experimental?.useDiagnosticsChannelInjection ?? false;
return {
...incomingUserNextConfigObject,
...getServerExternalPackagesPatch(incomingUserNextConfigObject, nextMajor, useDiagnosticsChannelInjection),
...getWebpackPatch({
incomingUserNextConfigObject,
userSentryOptions,
releaseName,
routeManifest,
nextJsVersion,
shouldUseRunAfterProductionCompileHook,
bundlerInfo,
vercelCronsConfigResult
}),
...getTurbopackPatch(bundlerInfo, turboPackConfig)
};
}
export { getFinalConfigObject };
//# sourceMappingURL=getFinalConfigObject.js.map