14463ddd10
This PR updates the Edge Runtime to use a new version that loads dependencies differently. This addresses https://github.com/vercel/next.js/pull/38766 so `instanceof` works as expected. It involved a few code changes, mostly regarding to types. The most important change is that the `Runner` function in the sandbox doesn't take a `ReadableStream` as `body` anymore since this implies creating the instance on "node land" and makes the runtime `fetch` function not to be able to compare with `ReadableStream` using `instanceof`. Instead we introduce a "clonable body" abstraction that allows to create the `ReadableStream` from `Readable` by using the edge runtime primitive which would hold the correct prototype. Also, this PR changes the way we pre-compile the Edge Runtime to adapt it to the new version.
12 lines
306 B
JavaScript
12 lines
306 B
JavaScript
import {
|
|
ReadableStream,
|
|
TransformStream,
|
|
} from 'next/dist/compiled/@edge-runtime/primitives/streams'
|
|
|
|
// Polyfill Web Streams for the Node.js runtime.
|
|
if (!global.ReadableStream) {
|
|
global.ReadableStream = ReadableStream
|
|
}
|
|
if (!global.TransformStream) {
|
|
global.TransformStream = TransformStream
|
|
}
|