diff --git a/packages/core/src/client/hmr.ts b/packages/core/src/client/hmr.ts index e6ede6f212..d47a354fb4 100644 --- a/packages/core/src/client/hmr.ts +++ b/packages/core/src/client/hmr.ts @@ -1,7 +1,7 @@ import type { ClientMessage, - ClientMessageRuntimeError, - SocketMessage, + ClientMessageError, + ServerMessage, } from '../server/socketServer'; import type { NormalizedClientConfig } from '../types'; @@ -183,7 +183,7 @@ function onOpen() { } function onMessage(e: MessageEvent) { - const message: SocketMessage = JSON.parse(e.data); + const message: ServerMessage = JSON.parse(e.data); switch (message.type) { case 'hash': @@ -241,11 +241,11 @@ function onSocketError() { } } -const errorMessages: ClientMessageRuntimeError[] = []; +const errorMessages: ClientMessageError[] = []; function sendRuntimeError(message: string, stack?: string) { - const messageInfo: ClientMessageRuntimeError = { - type: 'runtime-error', + const messageInfo: ClientMessageError = { + type: 'client-error', message, stack, }; diff --git a/packages/core/src/server/browserLogs.ts b/packages/core/src/server/browserLogs.ts index 6e2b02835b..e4aaddd23a 100644 --- a/packages/core/src/server/browserLogs.ts +++ b/packages/core/src/server/browserLogs.ts @@ -7,7 +7,7 @@ import { logger } from '../logger'; import type { EnvironmentContext, InternalContext, Rspack } from '../types'; import { getFileFromUrl } from './assets-middleware/getFileFromUrl'; import type { OutputFileSystem } from './assets-middleware/index'; -import type { ClientMessageRuntimeError } from './socketServer'; +import type { ClientMessageError } from './socketServer'; /** * Maps a position in compiled code to its original source position using @@ -116,7 +116,7 @@ let lastRuntimeErrorLog: string; * source location information. */ export const reportRuntimeError = async ( - message: ClientMessageRuntimeError, + message: ClientMessageError, context: InternalContext, fs: Rspack.OutputFileSystem, ): Promise => { diff --git a/packages/core/src/server/devServer.ts b/packages/core/src/server/devServer.ts index f898fda311..e6f7b91861 100644 --- a/packages/core/src/server/devServer.ts +++ b/packages/core/src/server/devServer.ts @@ -39,15 +39,15 @@ import { import { createHttpServer } from './httpServer'; import { notFoundMiddleware, optionsFallbackMiddleware } from './middlewares'; import { open } from './open'; -import type { SocketMessage } from './socketServer'; +import type { ServerMessage } from './socketServer'; import { setupWatchFiles, type WatchFilesResult } from './watchFiles'; type HTTPServer = Server | Http2SecureServer; -type ExtractSocketMessageData = - Extract extends { data: infer D } ? D : undefined; +type ExtractSocketMessageData = + Extract extends { data: infer D } ? D : undefined; -export type SockWrite = ( +export type SockWrite = ( type: T, data?: ExtractSocketMessageData, ) => void; @@ -362,7 +362,7 @@ export async function createDevServer< buildManager?.socketServer.sockWrite({ type, data, - } as SocketMessage); + } as ServerMessage); const devServerAPI: RsbuildDevServer = { port, diff --git a/packages/core/src/server/socketServer.ts b/packages/core/src/server/socketServer.ts index 2d25cf938e..8fa4fd23e6 100644 --- a/packages/core/src/server/socketServer.ts +++ b/packages/core/src/server/socketServer.ts @@ -22,31 +22,38 @@ function isEqualSet(a: Set, b: Set): boolean { const CHECK_SOCKETS_INTERVAL = 30000; -export type SocketMessageStaticChanged = { +export type ServerMessageStaticChanged = { type: 'static-changed' | 'content-changed'; }; -export type SocketMessageHash = { +export type ServerMessageHash = { type: 'hash'; data: string; }; -export type SocketMessageOk = { +export type ServerMessageOk = { type: 'ok'; }; -export type SocketMessageWarnings = { +export type ServerMessageWarnings = { type: 'warnings'; data: { text: string[] }; }; -export type SocketMessageErrors = { +export type ServerMessageErrors = { type: 'errors'; data: { text: string[]; html: string }; }; -export type ClientMessageRuntimeError = { - type: 'runtime-error'; +export type ServerMessage = + | ServerMessageOk + | ServerMessageStaticChanged + | ServerMessageHash + | ServerMessageWarnings + | ServerMessageErrors; + +export type ClientMessageError = { + type: 'client-error'; message: string; stack?: string; }; @@ -55,14 +62,7 @@ export type ClientMessagePing = { type: 'ping'; }; -export type SocketMessage = - | SocketMessageOk - | SocketMessageStaticChanged - | SocketMessageHash - | SocketMessageWarnings - | SocketMessageErrors; - -export type ClientMessage = ClientMessagePing | ClientMessageRuntimeError; +export type ClientMessage = ClientMessagePing | ClientMessageError; const parseQueryString = (req: IncomingMessage) => { const queryStr = req.url ? req.url.split('?')[1] : ''; @@ -202,7 +202,7 @@ export class SocketServer { * @param token - The token of the socket to send the message to, * if not provided, the message will be sent to all sockets */ - public sockWrite(message: SocketMessage, token?: string): void { + public sockWrite(message: ServerMessage, token?: string): void { const messageStr = JSON.stringify(message); const sendToSockets = (sockets: Set) => { @@ -272,7 +272,7 @@ export class SocketServer { ); if ( - message.type === 'runtime-error' && + message.type === 'client-error' && // Do not report browser error when using webpack this.context.bundlerType === 'rspack' ) {