[Rush] Add rush-serve plugin dashboard UI and config updates - #5893
[Rush] Add rush-serve plugin dashboard UI and config updates#5893mojaza wants to merge 2 commits into
Conversation
| // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. | ||
| // See LICENSE in the project root for license information. | ||
|
|
||
| /* eslint-disable @typescript-eslint/no-explicit-any */ |
There was a problem hiding this comment.
Can you use unknown instead of any?
There was a problem hiding this comment.
Actually, a lot of these things should have real types.
There was a problem hiding this comment.
Yes, I'm aiming to remove these lint disabled rules before landing my changes.
| executionStates: Map<string, any>, | ||
| stateArray: any[] | ||
| ): void { | ||
| if (!stateArray) return; |
There was a problem hiding this comment.
The type doesn't allow a nullish value to be passed in
| // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. | ||
| // See LICENSE in the project root for license information. | ||
|
|
||
| /* eslint-disable @rushstack/no-new-null */ |
There was a problem hiding this comment.
Why are you disabling these rules?
There was a problem hiding this comment.
Just to bypass the errors for now and view the expected dashboard. I'll clean them up before checking in this PR.
| "extends": "./node_modules/local-node-rig/profiles/default/tsconfig-base.json", | ||
|
|
||
| "compilerOptions": { | ||
| "lib": ["ES2022", "DOM"], |
There was a problem hiding this comment.
Consider putting the dashboard code in its own project so you can use the web rig.
There was a problem hiding this comment.
It's part of this plugin so, we should keep the dashboard under the rush-serve-plugin path.
Summary
This PR adds a built-in dashboard for the Rush serve plugin so developers can monitor and control watch-mode execution from a browser without creating a separate client.
The change introduces dashboard frontend assets, serves them through the plugin, and documents how to configure and open the dashboard route.
Details
Added a dashboard UI with:
Other changes:
Design notes
Considered keeping the dashboard as an external sample app.
Chose an in-package dashboard to make onboarding easier and reduce setup friction.
Compatibility and performance
Backward compatibility is preserved; changes are additive.
Existing plugin configuration continues to work.
Runtime impact is expected to be minimal and mostly limited to static asset serving during watch-mode usage.
How it was tested
How to run the server
rush build -t rushin your terminalnode ./apps/rush/lib-esm/start-dev.js start --port <port_number>https://127.0.0.1:<port_number>/dashboard/dashboard.htmlImpacted documentation