@@ -2,17 +2,12 @@ import type { IncomingMessage, OutgoingMessage } from "node:http";
2
2
import type { Duplex } from "node:stream" ;
3
3
import type { GetPortInput } from "get-port-please" ;
4
4
import type { FSWatcher } from "chokidar" ;
5
- import type { App } from "h3" ;
5
+ import type { H3 } from "h3" ;
6
6
import type { Listener , ListenOptions } from "listhen" ;
7
7
import { NodeDevWorker , type DevWorker , type WorkerAddress } from "./worker" ;
8
8
import type { Nitro , NitroBuildInfo , NitroDevServer } from "nitro/types" ;
9
- import {
10
- createApp ,
11
- createError ,
12
- eventHandler ,
13
- fromNodeMiddleware ,
14
- toNodeListener ,
15
- } from "h3" ;
9
+ import { createH3 , createError , eventHandler , fromNodeHandler } from "h3" ;
10
+ import { toNodeHandler } from "srvx/node" ;
16
11
import {
17
12
default as devErrorHandler ,
18
13
defaultHandler as devErrorHandlerInternal ,
@@ -53,7 +48,7 @@ let workerIdCtr = 0;
53
48
class DevServer {
54
49
nitro : Nitro ;
55
50
workerDir : string ;
56
- app : App ;
51
+ app : H3 ;
57
52
listeners : Listener [ ] = [ ] ;
58
53
reloadPromise ?: Promise < void > ;
59
54
watcher ?: FSWatcher ;
@@ -106,7 +101,10 @@ class DevServer {
106
101
}
107
102
108
103
async listen ( port : GetPortInput , opts ?: Partial < ListenOptions > ) {
109
- const listener = await listhen ( toNodeListener ( this . app ) , { port, ...opts } ) ;
104
+ const listener = await listhen ( toNodeHandler ( this . app . fetch ) , {
105
+ port,
106
+ ...opts ,
107
+ } ) ;
110
108
this . listeners . push ( listener ) ;
111
109
listener . server . on ( "upgrade" , ( req , sock , head ) =>
112
110
this . handleUpgrade ( req , sock , head )
@@ -193,7 +191,8 @@ class DevServer {
193
191
194
192
createApp ( ) {
195
193
// Init h3 app
196
- const app = createApp ( {
194
+ const app = createH3 ( {
195
+ debug : true ,
197
196
onError : async ( error , event ) => {
198
197
const errorHandler =
199
198
this . nitro . options . devErrorHandler || devErrorHandler ;
@@ -210,17 +209,18 @@ class DevServer {
210
209
}
211
210
212
211
// Debugging endpoint to view vfs
213
- app . use ( "/_vfs" , createVFSHandler ( this . nitro ) ) ;
212
+ app . get ( "/_vfs" , createVFSHandler ( this . nitro ) ) ;
214
213
215
214
// Serve asset dirs
216
215
for ( const asset of this . nitro . options . publicAssets ) {
217
216
const url = joinURL (
218
217
this . nitro . options . runtimeConfig . app . baseURL ,
219
- asset . baseURL || "/"
218
+ asset . baseURL || "/" ,
219
+ "**"
220
220
) ;
221
- app . use ( url , fromNodeMiddleware ( serveStatic ( asset . dir ) ) ) ;
221
+ app . use ( url , fromNodeHandler ( serveStatic ( asset . dir ) ) ) ;
222
222
if ( ! asset . fallthrough ) {
223
- app . use ( url , fromNodeMiddleware ( servePlaceholder ( ) ) ) ;
223
+ app . use ( url , fromNodeHandler ( servePlaceholder ( ) ) ) ;
224
224
}
225
225
}
226
226
0 commit comments