Skip to content

Commit f2e098a

Browse files
committed
refactor(dev): directly emit address (+ type server)
1 parent 7f580c3 commit f2e098a

3 files changed

Lines changed: 26 additions & 17 deletions

File tree

‎packages/nuxi/src/commands/dev.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ const command = defineCommand({
143143
},
144144
})
145145

146-
onReady(port=>devProxy.setAddress(`http://127.0.0.1:${port}`))
146+
onReady(address=>devProxy.setAddress(address))
147147

148148
// ... then fall back to pre-warmed fork if a hard restart is required
149149
constfork=startSubprocess(cwd,ctx.args,ctx.rawArgs,listenOptions)
@@ -310,7 +310,7 @@ async function startSubprocess(cwd: string, args: { logLevel: string, clear: boo
310310
resolve()
311311
}
312312
elseif(message.type==='nuxt:internal:dev:ready'){
313-
devProxy.setAddress(`http://127.0.0.1:${message.port}`)
313+
devProxy.setAddress(message.address)
314314
if(startTime){
315315
logger.debug(`Dev server ready for connections in ${Date.now()-startTime}ms`)
316316
}
@@ -357,7 +357,7 @@ async function startSubprocess(cwd: string, args: { logLevel: string, clear: boo
357357
}
358358

359359
functionresolveListenOptions(
360-
nuxtOptions: NuxtOptions,
360+
nuxtOptions: {devServer: NuxtOptions['devServer'],app: NuxtOptions['app']},
361361
args: ParsedArgs<ArgsT>,
362362
): Partial<ListenOptions>{
363363
const_port=args.port

‎packages/nuxi/src/dev/index.ts‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export async function initialize(devContext: NuxtDevContext, ctx: InitializeOpti
6565
devContext,
6666
},listenOptions)
6767

68-
letport: number
68+
letaddress: string
6969

7070
if(ipc.enabled){
7171
devServer.on('loading:error',(_error)=>{
@@ -75,7 +75,7 @@ export async function initialize(devContext: NuxtDevContext, ctx: InitializeOpti
7575
message: _error.message,
7676
stack: _error.stack,
7777
name: _error.name,
78-
code: _error.code,
78+
code: 'code'in_error ? _error.code : undefined,
7979
},
8080
})
8181
})
@@ -86,12 +86,12 @@ export async function initialize(devContext: NuxtDevContext, ctx: InitializeOpti
8686
ipc.send({type: 'nuxt:internal:dev:restart'})
8787
})
8888
devServer.on('ready',(payload)=>{
89-
ipc.send({type: 'nuxt:internal:dev:ready',port: payload.port})
89+
ipc.send({type: 'nuxt:internal:dev:ready',address: payload})
9090
})
9191
}
9292
else{
9393
devServer.on('ready',(payload)=>{
94-
port=payload.port
94+
address=payload
9595
})
9696
}
9797

@@ -106,12 +106,12 @@ export async function initialize(devContext: NuxtDevContext, ctx: InitializeOpti
106106
return{
107107
listener: devServer.listener,
108108
close: ()=>devServer.close(),
109-
onReady: (callback: (port: number)=>void)=>{
110-
if(port){
111-
callback(port)
109+
onReady: (callback: (address: string)=>void)=>{
110+
if(address){
111+
callback(address)
112112
}
113113
else{
114-
devServer.once('ready',payload=>callback(payload.port))
114+
devServer.once('ready',payload=>callback(payload))
115115
}
116116
},
117117
onRestart: (callback: (devServer: NuxtDevServer)=>void)=>{

‎packages/nuxi/src/dev/utils.ts‎

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export type NuxtParentIPCMessage
2929

3030
exporttypeNuxtDevIPCMessage
3131
=|{type: 'nuxt:internal:dev:fork-ready'}
32-
|{type: 'nuxt:internal:dev:ready',port: number}
32+
|{type: 'nuxt:internal:dev:ready',address: string}
3333
|{type: 'nuxt:internal:dev:loading',message: string}
3434
|{type: 'nuxt:internal:dev:restart'}
3535
|{type: 'nuxt:internal:dev:rejection',message: string}
@@ -81,7 +81,6 @@ export async function createNuxtDevServer(options: NuxtDevServerOptions, listenO
8181
)
8282

8383
// Merge interface with public context
84-
// @ts-expect-error private property
8584
devServer.listener._url=devServer.listener.url
8685
if(options.devContext.proxy?.url){
8786
devServer.listener.url=options.devContext.proxy.url
@@ -99,7 +98,14 @@ const RESTART_RE = /^(?:nuxt\.config\.[a-z0-9]+|\.nuxtignore|\.nuxtrc|\.config\/
9998

10099
typeNuxtWithServer=Omit<Nuxt,'server'>&{server?: NitroDevServer}
101100

102-
exportclassNuxtDevServerextendsEventEmitter{
101+
interfaceDevServerEventMap{
102+
'loading:error': [error: Error]
103+
'loading': [loadingMessage: string]
104+
'ready': [address: string]
105+
'restart': []
106+
}
107+
108+
exportclassNuxtDevServerextendsEventEmitter<DevServerEventMap>{
103109
private_handler?: RequestListener
104110
private_distWatcher?: FSWatcher
105111
private_currentNuxt?: NuxtWithServer
@@ -109,7 +115,10 @@ export class NuxtDevServer extends EventEmitter {
109115

110116
loadDebounced: (reload?: boolean,reason?: string)=>void
111117
handler: RequestListener
112-
listener: Listener
118+
listener: Pick<Listener,'server'|'getURLs'|'https'|'url'|'close'>&{
119+
_url?: string
120+
address: AddressInfo&{socketPath?: string}
121+
}
113122

114123
constructor(privateoptions: NuxtDevServerOptions){
115124
super()
@@ -184,7 +193,7 @@ export class NuxtDevServer extends EventEmitter {
184193
this._handler=undefined
185194
this._loadingError=errorasError
186195
this._loadingMessage='Error while loading Nuxt. Please check console and fix errors.'
187-
this.emit('loading:error',error)
196+
this.emit('loading:error',errorasError)
188197
}
189198
}
190199

@@ -334,7 +343,7 @@ export class NuxtDevServer extends EventEmitter {
334343
})
335344

336345
this._handler=toNodeListener(this._currentNuxt.server.app)
337-
this.emit('ready',addr)
346+
this.emit('ready',`http://127.0.0.1:${addr.port}`)
338347
}
339348

340349
async_watchConfig(){

0 commit comments

Comments
 (0)