Skip to content

Commit 267fd1c

Browse files
committed
fix: resolve _app deps in API routes
1 parent 1360d0c commit 267fd1c

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/runtime/src/helpers/functions.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,13 @@ export const generateFunctions = async (
4949
join(__dirname, '..', '..', 'lib', 'templates', 'handlerUtils.js'),
5050
join(functionsDir, functionName, 'handlerUtils.js'),
5151
)
52+
53+
const resolveSourceFile = (file: string) => join(publish, 'server', file)
54+
5255
const resolverSource = await getSinglePageResolver({
5356
functionsDir,
54-
sourceFile: join(publish, 'server', compiled),
57+
// These extra pages are always included by Next.js
58+
sourceFiles: [compiled, 'pages/_app.js', 'pages/_document.js', 'pages/_error.js'].map(resolveSourceFile),
5559
})
5660
await writeFile(join(functionsDir, functionName, 'pages.js'), resolverSource)
5761
}

packages/runtime/src/templates/getPageResolver.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,18 @@ export const getPageResolver = async ({ publish, target }: { publish: string; ta
3939
*/
4040
export const getSinglePageResolver = async ({
4141
functionsDir,
42-
sourceFile,
42+
sourceFiles,
4343
}: {
4444
functionsDir: string
45-
sourceFile: string
45+
sourceFiles: Array<string>
4646
}) => {
47-
const dependencies = await getDependenciesOfFile(sourceFile)
47+
const dependencies = await Promise.all(sourceFiles.map((sourceFile) => getDependenciesOfFile(sourceFile)))
4848
// We don't need the actual name, just the relative path.
4949
const functionDir = resolve(functionsDir, 'functionName')
5050

51-
const pageFiles = [sourceFile, ...dependencies]
51+
const deduped = [...new Set(dependencies.flat())]
52+
53+
const pageFiles = [...sourceFiles, ...deduped]
5254
.map((file) => `require.resolve('${relative(functionDir, file)}')`)
5355
.sort()
5456

0 commit comments

Comments
 (0)