refactor: simplify suspense ssr + adjust behavior
This commit is contained in:
@@ -1,30 +1,14 @@
|
||||
import { PushFn, ResolvedSSRBuffer, createBuffer } from '../renderToString'
|
||||
import { PushFn } from '../renderToString'
|
||||
|
||||
type ContentRenderFn = (push: PushFn) => void
|
||||
|
||||
export async function ssrRenderSuspense({
|
||||
default: renderContent,
|
||||
fallback: renderFallback
|
||||
}: Record<string, ContentRenderFn | undefined>): Promise<ResolvedSSRBuffer> {
|
||||
try {
|
||||
if (renderContent) {
|
||||
const { push, getBuffer } = createBuffer()
|
||||
push(`<!--[-->`)
|
||||
renderContent(push)
|
||||
push(`<!--]-->`)
|
||||
return await getBuffer()
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
} catch {
|
||||
if (renderFallback) {
|
||||
const { push, getBuffer } = createBuffer()
|
||||
push(`<!--[-->`)
|
||||
renderFallback(push)
|
||||
push(`<!--]-->`)
|
||||
return getBuffer()
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
export async function ssrRenderSuspense(
|
||||
push: PushFn,
|
||||
{ default: renderContent }: Record<string, (() => void) | undefined>
|
||||
) {
|
||||
if (renderContent) {
|
||||
push(`<!--[-->`)
|
||||
renderContent()
|
||||
push(`<!--]-->`)
|
||||
} else {
|
||||
push(`<!---->`)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user