dillon1000/react
Commit
Browse files [react-devtools-facade] 1/ scaffold package + installFacade building block (#36593)
Introduces **`react-devtools-facade`**, a private, source-only package
of building blocks for React runtime state introspection. Integrates
with Reconciler through React DevTools global hook.
### Plan
The facade is the shared, low-level layer that public,
MCP-server–specific packages build on:
- **`react-devtools-facade` (private)** — installs the React DevTools
global hook and exposes a small, framework-agnostic API: install the
hook, then assemble a set of tools from the returned handle. It installs
*no* tool globals and makes no decision about how tools are surfaced.
- **Integration packages (public)**, e.g. `react-devtools-cdt-mcp` —
compose the facade's tools and target a specific MCP server
(chrome-devtools-mcp first).
This keeps all runtime-introspection logic in one reusable place while
each
integration owns its own protocol, packaging, serialisation and globals.
### This PR
- `installFacade(target = globalThis): Facade` — installs **only**
`__REACT_DEVTOOLS_GLOBAL_HOOK__` (the global React looks for at init)
and returns a `Facade` handle `{hook, fiberRoots, rendererInternals,
profilingState}`. The hook tracks fiber roots on commit and forwards
commits to the profiling state when a session is active; building blocks
read from the returned handle and never touch globals.
- Guards against double-install (mixing with the full DevTools backend).
*Temporary*, will later add compatibility for the RDT extension
scenario.
- Package scaffold: `package.json` (private, source-only), `index.js`,
`README.md`.
- Excluded from the general jest runners; runs under the build-devtools
project, matching `react-devtools-shared` / `react-devtools-extensions`.
> Tool building blocks and `createTools(facade)` land in the follow-ups.Changed paths11 files
First-parent comparison.eslintrc.js ModifiedA packages/react-devtools-facade/README.md AddedA packages/react-devtools-facade/index.js AddedA packages/react-devtools-facade/package.json AddedA packages/react-devtools-facade/src/DevToolsFacade.js AddedA packages/react-devtools-facade/src/__tests__/DevToolsFacade-test.js AddedM scripts/jest/config.build.js ModifiedM scripts/jest/config.source-persistent.js ModifiedM scripts/jest/config.source-www.js ModifiedM scripts/jest/config.source-xplat.js ModifiedM scripts/jest/config.source.js ModifiedPatch
Files changed
Rendering syntax-highlighted changes…