Skip to content

Commit 9c1d728

Browse files
committed
fix: adjust middleware setup to work with turbopack builds
1 parent 3e98a08 commit 9c1d728

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

edge-runtime/shim/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,8 @@ globalThis.require = function nextRuntimeMinimalRequireShim(name) {
3636
}
3737

3838
var _ENTRIES = {}
39+
try {
40+
// turbopack builds use self._ENTRIES not globalThis._ENTRIES
41+
// so making sure both points to same object
42+
self._ENTRIES = _ENTRIES
43+
} catch {}

src/build/functions/edge.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,10 +150,15 @@ const copyHandlerDependencies = async (
150150
const entrypoint = await readFile(join(srcDir, file), 'utf8')
151151
parts.push(`;// Concatenated file: ${file} \n`, entrypoint)
152152
}
153-
const exports = `const middlewareEntryKey = Object.keys(_ENTRIES).find(entryKey => entryKey.startsWith("middleware_${name}")); export default _ENTRIES[middlewareEntryKey].default;`
153+
parts.push(
154+
`const middlewareEntryKey = Object.keys(_ENTRIES).find(entryKey => entryKey.startsWith("middleware_${name}"));`,
155+
// turbopack entries are promises so we await here to get actual entry
156+
// non-turbopack entries are already resolved, so await does not change anything
157+
`export default await _ENTRIES[middlewareEntryKey].default;`,
158+
)
154159
await mkdir(dirname(outputFile), { recursive: true })
155160

156-
await writeFile(outputFile, [...parts, exports].join('\n'))
161+
await writeFile(outputFile, parts.join('\n'))
157162
}
158163

159164
const createEdgeHandler = async (ctx: PluginContext, definition: NextDefinition): Promise<void> => {

0 commit comments

Comments
 (0)