Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
6.2 KiB
Plaintext
1 line
6.2 KiB
Plaintext
{"version":3,"file":"buildTime.js","sources":["../../../../src/config/withSentryConfig/buildTime.ts"],"sourcesContent":["import * as childProcess from 'child_process';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport type { NextConfigObject, SentryBuildOptions } from '../types';\n\n/**\n * Adds Sentry-related build-time variables to `nextConfig.env`.\n *\n * Note: this mutates `userNextConfig`.\n *\n * @param userNextConfig - The user's Next.js config object\n * @param userSentryOptions - The Sentry build options passed to `withSentryConfig`\n * @param releaseName - The resolved release name, if any\n */\nexport function setUpBuildTimeVariables(\n userNextConfig: NextConfigObject,\n userSentryOptions: SentryBuildOptions,\n releaseName: string | undefined,\n): void {\n const assetPrefix = userNextConfig.assetPrefix || userNextConfig.basePath || '';\n const basePath = userNextConfig.basePath ?? '';\n\n const rewritesTunnelPath =\n userSentryOptions.tunnelRoute !== undefined &&\n userNextConfig.output !== 'export' &&\n typeof userSentryOptions.tunnelRoute === 'string'\n ? `${basePath}${userSentryOptions.tunnelRoute}`\n : undefined;\n\n const buildTimeVariables: Record<string, string> = {\n // Make sure that if we have a windows path, the backslashes are interpreted as such (rather than as escape\n // characters)\n _sentryRewriteFramesDistDir: userNextConfig.distDir?.replace(/\\\\/g, '\\\\\\\\') || '.next',\n // Get the path part of `assetPrefix`, minus any trailing slash. (We use a placeholder for the origin if\n // `assetPrefix` doesn't include one. Since we only care about the path, it doesn't matter what it is.)\n _sentryRewriteFramesAssetPrefixPath: assetPrefix\n ? new URL(assetPrefix, 'http://dogs.are.great').pathname.replace(/\\/$/, '')\n : '',\n };\n\n if (userNextConfig.assetPrefix) {\n buildTimeVariables._assetsPrefix = userNextConfig.assetPrefix;\n }\n\n if (userSentryOptions._experimental?.thirdPartyOriginStackFrames) {\n buildTimeVariables._experimentalThirdPartyOriginStackFrames = 'true';\n }\n\n if (rewritesTunnelPath) {\n buildTimeVariables._sentryRewritesTunnelPath = rewritesTunnelPath;\n }\n\n if (basePath) {\n buildTimeVariables._sentryBasePath = basePath;\n }\n\n if (userNextConfig.assetPrefix) {\n buildTimeVariables._sentryAssetPrefix = userNextConfig.assetPrefix;\n }\n\n if (userSentryOptions._experimental?.thirdPartyOriginStackFrames) {\n buildTimeVariables._experimentalThirdPartyOriginStackFrames = 'true';\n }\n\n if (releaseName) {\n buildTimeVariables._sentryRelease = releaseName;\n }\n\n if (typeof userNextConfig.env === 'object') {\n userNextConfig.env = { ...buildTimeVariables, ...userNextConfig.env };\n } else if (userNextConfig.env === undefined) {\n userNextConfig.env = buildTimeVariables;\n }\n}\n\n/**\n * Returns the current git SHA (HEAD), if available.\n *\n * This is a best-effort helper and returns `undefined` if git isn't available or the cwd isn't a git repo.\n */\nexport function getGitRevision(): string | undefined {\n let gitRevision: string | undefined;\n try {\n gitRevision = childProcess\n .execSync('git rev-parse HEAD', { stdio: ['ignore', 'pipe', 'ignore'] })\n .toString()\n .trim();\n } catch {\n // noop\n }\n return gitRevision;\n}\n\n/**\n * Reads the project's `instrumentation-client.(js|ts)` file contents, if present.\n *\n * @returns The file contents, or `undefined` if the file can't be found/read\n */\nexport function getInstrumentationClientFileContents(): string | void {\n const potentialInstrumentationClientFileLocations = [\n ['src', 'instrumentation-client.ts'],\n ['src', 'instrumentation-client.js'],\n ['instrumentation-client.ts'],\n ['instrumentation-client.js'],\n ];\n\n for (const pathSegments of potentialInstrumentationClientFileLocations) {\n try {\n return fs.readFileSync(path.join(process.cwd(), ...pathSegments), 'utf-8');\n } catch {\n // noop\n }\n }\n}\n"],"names":[],"mappings":"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"} |