Skip to content

Commit 3cc197c

Browse files
clydinalan-agius4
authored andcommittedJan 28, 2025
refactor(@angular/build): allow browser client to log console message with dev-server
The development server now supports a WebSocket event named `angular:log`. This event allows the browser client to send log messages back to the development server. Currently this is unused by the client and Angular runtime. But is intended to be used in the future for such cases as propagating error messages back to the development server console. This event is considered internal and should not be relied upon by external code. (cherry picked from commit e3aa483)
1 parent 66fa06c commit 3cc197c

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed
 

‎packages/angular/build/src/builders/dev-server/vite-server.ts

+18
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,24 @@ export async function* serveWithVite(
439439
server = await createServer(serverConfiguration);
440440
await server.listen();
441441

442+
// Setup builder context logging for browser clients
443+
server.hot.on('angular:log', (data: { text: string; kind?: string }) => {
444+
if (typeof data?.text !== 'string') {
445+
context.logger.warn('Development server client sent invalid internal log event.');
446+
}
447+
switch (data.kind) {
448+
case 'error':
449+
context.logger.error(`[CLIENT ERROR]: ${data.text}`);
450+
break;
451+
case 'warning':
452+
context.logger.warn(`[CLIENT WARNING]: ${data.text}`);
453+
break;
454+
default:
455+
context.logger.info(`[CLIENT INFO]: ${data.text}`);
456+
break;
457+
}
458+
});
459+
442460
const urls = server.resolvedUrls;
443461
if (urls && (urls.local.length || urls.network.length)) {
444462
serverUrl = new URL(urls.local[0] ?? urls.network[0]);

0 commit comments

Comments
 (0)