Skip to content
This repository was archived by the owner on Aug 16, 2024. It is now read-only.

Commit f9a67f5

Browse files
committed
fsdfdsfsffs
1 parent 2d1f70d commit f9a67f5

File tree

1 file changed

+67
-63
lines changed

1 file changed

+67
-63
lines changed

src/node/start.ts

+67-63
Original file line numberDiff line numberDiff line change
@@ -25,74 +25,78 @@ export async function start(port: number, hostname: string) {
2525

2626
const generateApp = (await import(join(cwd(), 'dist/server/index.js'))).generateApp
2727

28-
const [appHtml, preloadLinks, state, head, teleports, redirect] = await generateApp(url, manifest, req, res)
28+
try {
29+
const [appHtml, preloadLinks, state, head, teleports, redirect] = await generateApp(url, manifest, req, res)
2930

30-
if (redirect !== null) {
31-
res.redirect(redirect)
32-
return
33-
}
34-
35-
const $ = load(template)
36-
37-
const resolvedTags = await head.resolveTags() as HeadTag[]
38-
39-
let tags = ['title', 'meta', 'link', 'base', 'style', 'script', 'noscript']
40-
41-
if ($('title').length === 1) {
42-
tags = tags.filter(t => t !== 'title')
43-
const title = resolvedTags.find(t => t.tag === 'title')
44-
45-
if (title !== undefined) {
46-
// @ts-ignore
47-
$('title').text(title.textContent)
31+
if (redirect !== null) {
32+
res.redirect(redirect)
33+
return
4834
}
49-
}
50-
51-
tags.map(tag => {
52-
resolvedTags.filter(t => t.tag === tag)
53-
.map(t => {
54-
let props = ''
55-
56-
for (const [key, value] of Object.entries(t.props)) {
57-
props = `${props} ${key}="${value}"`
58-
}
59-
60-
if (t.innerHTML !== undefined) {
61-
$('head').append(`<${tag} ${props}>${t.innerHTML}</${tag}>`)
62-
} else {
63-
$('head').append(`<${tag} ${props}>`)
64-
}
65-
})
66-
})
67-
68-
const bodyAttrs = resolvedTags.find(t => t.tag === 'bodyAttrs')
69-
70-
if (bodyAttrs !== undefined) {
71-
for (const [key, value] of Object.entries(bodyAttrs.props)) {
72-
$('body').attr(key, value)
35+
36+
const $ = load(template)
37+
38+
const resolvedTags = await head.resolveTags() as HeadTag[]
39+
40+
let tags = ['title', 'meta', 'link', 'base', 'style', 'script', 'noscript']
41+
42+
if ($('title').length === 1) {
43+
tags = tags.filter(t => t !== 'title')
44+
const title = resolvedTags.find(t => t.tag === 'title')
45+
46+
if (title !== undefined) {
47+
// @ts-ignore
48+
$('title').text(title.textContent)
49+
}
7350
}
74-
}
75-
76-
const htmlAttrs = resolvedTags.find(t => t.tag === 'htmlAttrs')
77-
78-
if (htmlAttrs !== undefined) {
79-
for (const [key, value] of Object.entries(htmlAttrs.props)) {
80-
$('html').attr(key, value)
51+
52+
tags.map(tag => {
53+
resolvedTags.filter(t => t.tag === tag)
54+
.map(t => {
55+
let props = ''
56+
57+
for (const [key, value] of Object.entries(t.props)) {
58+
props = `${props} ${key}="${value}"`
59+
}
60+
61+
if (t.innerHTML !== undefined) {
62+
$('head').append(`<${tag} ${props}>${t.innerHTML}</${tag}>`)
63+
} else {
64+
$('head').append(`<${tag} ${props}>`)
65+
}
66+
})
67+
})
68+
69+
const bodyAttrs = resolvedTags.find(t => t.tag === 'bodyAttrs')
70+
71+
if (bodyAttrs !== undefined) {
72+
for (const [key, value] of Object.entries(bodyAttrs.props)) {
73+
$('body').attr(key, value)
74+
}
8175
}
76+
77+
const htmlAttrs = resolvedTags.find(t => t.tag === 'htmlAttrs')
78+
79+
if (htmlAttrs !== undefined) {
80+
for (const [key, value] of Object.entries(htmlAttrs.props)) {
81+
$('html').attr(key, value)
82+
}
83+
}
84+
85+
$('head').append(preloadLinks)
86+
$('#app').html(appHtml)
87+
88+
if (state !== undefined) {
89+
$('body').append(`<script>window.__INITIAL_STATE__ = ${devalue(state)}</script>`)
90+
}
91+
92+
if (teleports['#teleports'] !== undefined) {
93+
$('body').append(`<div id="teleports">${teleports['#teleports']}</div>`)
94+
}
95+
96+
res.status(200).set({ 'Content-Type': 'text/html' }).end($.html())
97+
} catch (e) {
98+
res.status(500).end(e.message)
8299
}
83-
84-
$('head').append(preloadLinks)
85-
$('#app').html(appHtml)
86-
87-
if (state !== undefined) {
88-
$('body').append(`<script>window.__INITIAL_STATE__ = ${devalue(state)}</script>`)
89-
}
90-
91-
if (teleports['#teleports'] !== undefined) {
92-
$('body').append(`<div id="teleports">${teleports['#teleports']}</div>`)
93-
}
94-
95-
res.status(200).set({ 'Content-Type': 'text/html' }).end($.html())
96100
})
97101

98102
app.listen(port, hostname, () => {

0 commit comments

Comments
 (0)