@@ -5,12 +5,13 @@ import { dirname, join } from 'node:path'
5
5
import { fileURLToPath } from 'node:url'
6
6
7
7
//@ts -expect-error internal requires
8
- import { mri , sirv } from 'adex/ssr'
8
+ import { mri , sirv , useMiddleware } from 'adex/ssr'
9
9
10
10
//@ts -expect-error vite virtual import
11
11
import { handler } from 'virtual:adex:handler'
12
12
13
13
import 'virtual:adex:global.css'
14
+ import 'virtual:adex:font.css'
14
15
15
16
const flags = mri ( process . argv . slice ( 2 ) )
16
17
@@ -27,6 +28,7 @@ const serverAssets = sirv(join(__dirname, './assets'), {
27
28
28
29
let islandsWereGenerated = existsSync ( join ( __dirname , './islands' ) )
29
30
31
+ // @ts -ignore
30
32
let islandAssets = ( req , res , next ) => {
31
33
next ( )
32
34
}
@@ -41,6 +43,7 @@ if (islandsWereGenerated) {
41
43
42
44
let clientWasGenerated = existsSync ( join ( __dirname , '../client' ) )
43
45
46
+ // @ts -ignore
44
47
let clientAssets = ( req , res , next ) => {
45
48
next ( )
46
49
}
@@ -163,17 +166,15 @@ function addDependencyAssets(template, pageRoute) {
163
166
const manifest = getClientManifest ( )
164
167
const filePath = pageRoute . startsWith ( '/' ) ? pageRoute . slice ( 1 ) : pageRoute
165
168
166
- const { links : serverLinks , scripts : serverScripts } = manifestToHTML (
167
- serverManifest ,
168
- filePath
169
- )
169
+ const { links : serverLinks } = manifestToHTML ( serverManifest , filePath )
170
+
170
171
const { links : clientLinks , scripts : clientScripts } = manifestToHTML (
171
172
manifest ,
172
173
filePath
173
174
)
174
175
175
176
const links = [ ...serverLinks , ...clientLinks ]
176
- const scripts = [ ...serverScripts , ... clientScripts ]
177
+ const scripts = [ ...clientScripts ]
177
178
178
179
return template . replace (
179
180
'</head>' ,
@@ -182,20 +183,32 @@ function addDependencyAssets(template, pageRoute) {
182
183
}
183
184
184
185
http
185
- . createServer ( ( req , res ) => {
186
- const originalUrl = req . url
187
- req . url = originalUrl . replace ( / ( \/ ? a s s e t s \/ ? ) / , '/' )
188
- serverAssets ( req , res , ( ) => {
189
- req . url = originalUrl . replace ( / ( \/ ? i s l a n d s \/ ? ) / , '/' )
190
- return islandAssets ( req , res , ( ) => {
191
- req . url = originalUrl . replace ( / ( \/ ? c l i e n t \/ ? ) / , '/' )
192
- return clientAssets ( req , res , ( ) => {
193
- req . url = originalUrl
194
- defaultHandler ( req , res )
195
- } )
196
- } )
197
- } )
198
- } )
186
+ . createServer (
187
+ useMiddleware (
188
+ async ( req , res , next ) => {
189
+ // @ts -expect-error shared-state between the middlewares
190
+ req . __originalUrl = req . url
191
+ // @ts -expect-error shared-state between the middlewares
192
+ req . url = req . __originalUrl . replace ( / ( \/ ? a s s e t s \/ ? ) / , '/' )
193
+ return serverAssets ( req , res , next )
194
+ } ,
195
+ async ( req , res , next ) => {
196
+ // @ts -expect-error shared-state between the middlewares
197
+ req . url = req . __originalUrl . replace ( / ( \/ ? i s l a n d s \/ ? ) / , '/' )
198
+ return islandAssets ( req , res , next )
199
+ } ,
200
+ async ( req , res , next ) => {
201
+ // @ts -expect-error shared-state between the middlewares
202
+ req . url = req . __originalUrl . replace ( / ( \/ ? c l i e n t \/ ? ) / , '/' )
203
+ return clientAssets ( req , res , next )
204
+ } ,
205
+ async ( req , res ) => {
206
+ // @ts -expect-error shared-state between the middlewares
207
+ req . url = req . __originalUrl
208
+ return defaultHandler ( req , res )
209
+ }
210
+ )
211
+ )
199
212
. listen ( PORT , HOST , ( ) => {
200
213
console . log ( `Listening on ${ HOST } :${ PORT } ` )
201
214
} )
0 commit comments