diff --git a/packages/vite/src/client/client.ts b/packages/vite/src/client/client.ts index 401883176f454d..cc09f8b8f175db 100644 --- a/packages/vite/src/client/client.ts +++ b/packages/vite/src/client/client.ts @@ -81,7 +81,7 @@ function setupWebSocket( 'open', () => { isOpened = true - notifyListeners('vite:ws:connect', socket) + notifyListeners('vite:ws:connect', { webSocket: socket }) }, { once: true }, ) @@ -100,7 +100,7 @@ function setupWebSocket( return } - notifyListeners('vite:ws:disconnect', socket) + notifyListeners('vite:ws:disconnect', { webSocket: socket }) console.log(`[vite] server connection lost. polling for restart...`) await waitForSuccessfulPing(protocol, hostAndPath) diff --git a/packages/vite/types/customEvent.d.ts b/packages/vite/types/customEvent.d.ts index 6bbb18e8f9f343..a72c1b85fc1ad0 100644 --- a/packages/vite/types/customEvent.d.ts +++ b/packages/vite/types/customEvent.d.ts @@ -12,8 +12,18 @@ export interface CustomEventMap { 'vite:beforeFullReload': FullReloadPayload 'vite:error': ErrorPayload 'vite:invalidate': InvalidatePayload - 'vite:ws:connect': WebSocket - 'vite:ws:disconnect': WebSocket + 'vite:ws:connect': WebSocketConnectionPayload + 'vite:ws:disconnect': WebSocketConnectionPayload +} + +export interface WebSocketConnectionPayload { + /** + * @experimental + * We expose this instance experimentally to see potential usage. + * This might be removed in the future if we didn't find reasonable use cases. + * If you find this useful, please open an issue with details so we can discuss and make it stable API. + */ + webSocket: WebSocket } export interface InvalidatePayload {