Skip to content

Commit fee7924

Browse files
authored
fix: show overlay even runtime is loaded after connection event (#207)
1 parent b3c271e commit fee7924

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

packages/runtime/src/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,5 +87,5 @@ export function inject(params) {
8787
listenToCustomMessage(updateErrorOverlay)
8888
listenToReconnectMessage(resumeErrorOverlay)
8989

90-
ws.start()
90+
ws.startListening()
9191
}

packages/runtime/src/ws.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,17 @@ export function prepareListen() {
3333
}
3434

3535
return {
36-
start: () => {
36+
startListening: () => {
3737
if (import.meta.hot) {
38+
// listen server -> client messages
3839
import.meta.hot.on('vite-plugin-checker', (data) => {
3940
onMessage(data)
4041
})
42+
43+
// told server that vite-plugin-checker runtime has loaded
44+
// then server should send stored diagnostics to display overlay
45+
// NOTE: sync modification with packages /packages/vite-plugin-checker/src/main.ts
46+
import.meta.hot.send('vite-plugin-checker', { event: 'runtime-loaded' })
4147
}
4248
},
4349
}

packages/vite-plugin-checker/src/main.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -190,14 +190,14 @@ export function checker(userConfig: UserPluginConfig): Plugin {
190190

191191
return () => {
192192
if (server.ws.on) {
193-
// sometimes Vite will trigger a full-reload instead of HMR, but the checker
194-
// may update the overlay before full-reload fired. So we make sure the overlay
195-
// will be displayed again after full-reload.
196-
server.ws.on('connection', () => {
197-
server.ws.send('vite-plugin-checker', {
198-
event: WS_CHECKER_RECONNECT_EVENT,
199-
data: latestOverlayErrors.filter(Boolean),
200-
})
193+
server.ws.on('vite-plugin-checker', (data) => {
194+
// NOTE: sync modification with packages /packages/runtime/src/ws.js
195+
if (data.event === 'runtime-loaded') {
196+
server.ws.send('vite-plugin-checker', {
197+
event: WS_CHECKER_RECONNECT_EVENT,
198+
data: latestOverlayErrors.filter(Boolean),
199+
})
200+
}
201201
})
202202
} else {
203203
setTimeout(() => {

0 commit comments

Comments
 (0)