fix(ssr): resolve teleports for stream render APIs
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
||||
import { isString, isPromise } from '@vue/shared'
|
||||
import { renderComponentVNode, SSRBuffer, SSRContext } from './render'
|
||||
import { Readable, Writable } from 'stream'
|
||||
import { resolveTeleports } from './renderToString'
|
||||
|
||||
const { isVNode } = ssrUtils
|
||||
|
||||
@@ -74,6 +75,7 @@ export function renderToSimpleStream<T extends SimpleReadable>(
|
||||
|
||||
Promise.resolve(renderComponentVNode(vnode))
|
||||
.then(buffer => unrollBuffer(buffer, stream))
|
||||
.then(() => resolveTeleports(context))
|
||||
.then(() => stream.push(null))
|
||||
.catch(error => {
|
||||
stream.destroy(error)
|
||||
|
||||
@@ -70,7 +70,7 @@ export async function renderToString(
|
||||
return result
|
||||
}
|
||||
|
||||
async function resolveTeleports(context: SSRContext) {
|
||||
export async function resolveTeleports(context: SSRContext) {
|
||||
if (context.__teleportBuffers) {
|
||||
context.teleports = context.teleports || {}
|
||||
for (const key in context.__teleportBuffers) {
|
||||
|
||||
Reference in New Issue
Block a user