mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
Fixes https://github.com/vercel/next.js/issues/75220 This marks Bun's builtin modules as external, following the same pattern as for Node. - `"bun:ffi"` - `"bun:jsc"` - `"bun:sqlite"` - `"bun:test"` - `"bun:wrap"` - `"bun"` I have not manually tested this change yet, nor attempted to write tests for this. I did check for other places in the code that should be updated and _maybe_ `externals/crates/next-custom-transforms/src/transforms/warn_for_edge_runtime.rs` should as well, but I'll leave that up to you whether or not that makes sense. Opening as a draft until this can be at least manually tested. By the way, node's `sqlite` module is missing from `NODE_EXTERNALS`. That seemed out of scope but worth mentioning. Current error message:  --------- Co-authored-by: Alistair Smith <[email protected]>
27 lines
703 B
TypeScript
27 lines
703 B
TypeScript
import { NextResponse } from 'next/server'
|
|
|
|
export const runtime = 'edge'
|
|
|
|
// Edge runtime should not allow Bun imports
|
|
// This test verifies that Bun modules are handled correctly in edge runtime
|
|
export async function GET() {
|
|
const modules = [
|
|
{ name: 'bunFfi', module: 'bun:ffi' },
|
|
{ name: 'bunJsc', module: 'bun:jsc' },
|
|
{ name: 'bunSqlite', module: 'bun:sqlite' },
|
|
{ name: 'bunTest', module: 'bun:test' },
|
|
{ name: 'bunWrap', module: 'bun:wrap' },
|
|
{ name: 'bun', module: 'bun' },
|
|
]
|
|
|
|
try {
|
|
for (const { module } of modules) {
|
|
await import(module)
|
|
}
|
|
|
|
return NextResponse.json('Did not throw')
|
|
} catch (e) {
|
|
return NextResponse.json(String(e))
|
|
}
|
|
}
|