Skip to content

Commit fadac14

Browse files
committed
fix: support named & default export for middleware in ntl dev
1 parent 2c8511a commit fadac14

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

packages/runtime/src/templates/edge-shared/utils.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,3 +305,5 @@ export const redirectTrailingSlash = (url: URL, trailingSlash: boolean): Respons
305305
return Response.redirect(url, 308)
306306
}
307307
}
308+
309+
export const isFunction = f => Boolean(f) && typeof f === 'function'

packages/runtime/src/templates/edge/next-dev.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { NextRequest } from 'https://esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/request.js'
22
import { NextResponse } from 'https://esm.sh/v91/next@12.2.5/deno/dist/server/web/spec-extension/response.js'
33
import { fromFileUrl } from 'https://deno.land/std@0.151.0/path/mod.ts'
4-
import { buildResponse } from '../edge-shared/utils.ts'
4+
import { buildResponse, isFunction } from '../edge-shared/utils.ts'
55

66
globalThis.NFRequestContextMap ||= new Map()
77
globalThis.__dirname = fromFileUrl(new URL('./', import.meta.url)).slice(0, -1)
@@ -36,7 +36,9 @@ const handler = async (req, context) => {
3636
// We need to cache-bust the import because otherwise it will claim it
3737
// doesn't exist if the user creates it after the server starts
3838
const nextMiddleware = await import(`../../middleware.js#${++idx}`)
39-
middleware = nextMiddleware.middleware
39+
40+
// The middleware file can export a named `middleware` export or a `default` export
41+
middleware = isFunction(nextMiddleware.middleware) ? nextMiddleware.middleware : nextMiddleware.default
4042
} catch (importError) {
4143
if (importError.code === 'ERR_MODULE_NOT_FOUND' && importError.message.includes(`middleware.js`)) {
4244
// No middleware, so we silently return

0 commit comments

Comments
 (0)