Skip to content

Commit 8e9dbb5

Browse files
ascorbickodiakhq[bot]
andauthoredJan 24, 2024
fix: handle multiple matchers for middleware (#203)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
1 parent a499168 commit 8e9dbb5

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed
 

‎src/build/functions/edge.ts

+15-8
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,20 @@ const getHandlerName = ({ name }: Pick<NextDefinition, 'name'>): string =>
115115
const buildHandlerDefinition = (
116116
ctx: PluginContext,
117117
{ name, matchers, page }: NextDefinition,
118-
): NetlifyDefinition => ({
119-
function: getHandlerName({ name }),
120-
name: name === 'middleware' ? 'Next.js Middleware Handler' : `Next.js Edge Handler: ${page}`,
121-
pattern: matchers[0].regexp,
122-
cache: name === 'middleware' ? undefined : 'manual',
123-
generator: `${ctx.pluginName}@${ctx.pluginVersion}`,
124-
})
118+
): Array<NetlifyDefinition> => {
119+
const fun = getHandlerName({ name })
120+
const funName =
121+
name === 'middleware' ? 'Next.js Middleware Handler' : `Next.js Edge Handler: ${page}`
122+
const cache = name === 'middleware' ? undefined : 'manual'
123+
const generator = `${ctx.pluginName}@${ctx.pluginVersion}`
124+
return matchers.map((matcher) => ({
125+
function: fun,
126+
name: funName,
127+
pattern: matcher.regexp,
128+
cache,
129+
generator,
130+
}))
131+
}
125132

126133
export const createEdgeHandlers = async (ctx: PluginContext) => {
127134
await rm(ctx.edgeFunctionsDir, { recursive: true, force: true })
@@ -133,7 +140,7 @@ export const createEdgeHandlers = async (ctx: PluginContext) => {
133140
]
134141
await Promise.all(nextDefinitions.map((def) => createEdgeHandler(ctx, def)))
135142

136-
const netlifyDefinitions = nextDefinitions.map((def) => buildHandlerDefinition(ctx, def))
143+
const netlifyDefinitions = nextDefinitions.flatMap((def) => buildHandlerDefinition(ctx, def))
137144
const netlifyManifest = {
138145
version: 1,
139146
functions: netlifyDefinitions,

0 commit comments

Comments
 (0)
Please sign in to comment.