Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/build/advanced-api-routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,24 @@ const extractConfigFromFile = async (apiFilePath: string, appDir: string): Promi
if (!fileContent.includes('config')) {
return {}
}

try {
// https://github.com/vercel/next.js/pull/85787 introduced need to manually install SWC bindings
// before usage. There are certain cases where Next.js will do that automatically, but to ensure
// it works for all cases, we do install it here as well. If bindings are already installed, this is a no-op.
const installBindingsModule = findModuleFromBase({
paths: [appDir],
candidates: ['next/dist/build/swc/install-bindings'],
})
if (installBindingsModule) {
// eslint-disable-next-line import/no-dynamic-require, n/global-require, @typescript-eslint/no-var-requires
const { installBindings } = require(installBindingsModule)
await installBindings()
}
} catch {
// nothing actionable can be done in case of exceptions
}

const ast = await parseModule(apiFilePath, fileContent)

try {
Expand Down
Loading