Skip to content

Commit bce994d

Browse files
authored
fix: import server in module scope (#363)
* fix: import server in module scope * chore: rmeove comment
1 parent 7775941 commit bce994d

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

src/run/handlers/server.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import { logger } from '../systemlog.js'
1818
import { createRequestContext, getRequestContext } from './request-context.cjs'
1919
import { getTracer } from './tracer.cjs'
2020

21+
const nextImportPromise = import('../next.cjs')
22+
2123
let nextHandler: WorkerRequestHandler, nextConfig: NextConfigComplete, tagsManifest: TagsManifest
2224

2325
/**
@@ -63,7 +65,7 @@ export default async (request: Request) => {
6365
),
6466
)
6567

66-
const { getMockedRequestHandlers } = await import('../next.cjs')
68+
const { getMockedRequestHandlers } = await nextImportPromise
6769
const url = new URL(request.url)
6870

6971
;[nextHandler] = await getMockedRequestHandlers({

src/run/next.cts

+8-9
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,22 @@ import { relative, resolve } from 'path'
44
import { getDeployStore } from '@netlify/blobs'
55
// @ts-expect-error no types installed
66
import { patchFs } from 'fs-monkey'
7-
import type { getRequestHandlers as GetRequestHandlersSignature } from 'next/dist/server/lib/start-server.js'
87

98
import { getRequestContext } from './handlers/request-context.cjs'
109
import { getTracer } from './handlers/tracer.cjs'
1110

11+
console.time('import next server')
12+
13+
// eslint-disable-next-line @typescript-eslint/no-var-requires
14+
const { getRequestHandlers } = require('next/dist/server/lib/start-server.js')
15+
16+
console.timeEnd('import next server')
17+
1218
type FS = typeof import('fs')
1319

1420
const fetchBeforeNextPatchedIt = globalThis.fetch
1521

16-
export async function getMockedRequestHandlers(
17-
...args: Parameters<typeof GetRequestHandlersSignature>
18-
) {
22+
export async function getMockedRequestHandlers(...args: Parameters<typeof getRequestHandlers>) {
1923
const tracer = getTracer()
2024
return tracer.withActiveSpan('mocked request handler', async () => {
2125
const ofs = { ...fs }
@@ -57,11 +61,6 @@ export async function getMockedRequestHandlers(
5761
require('fs').promises,
5862
)
5963

60-
const { getRequestHandlers } = await tracer.withActiveSpan(
61-
'import next server',
62-
async () => import('next/dist/server/lib/start-server.js'),
63-
)
64-
6564
return getRequestHandlers(...args)
6665
})
6766
}

0 commit comments

Comments
 (0)