dillon1000/react
Commit
Browse files [Fizz] New Server Rendering Infra (#14144)
* [Fizz] Add Flow/Jest/Rollup build infra Add a new package for react-stream which allows for custom server renderer outputs. I picked the name because it's a reasonable name but also because the npm name is currently owned by a friend of the project. The react-dom build has its own inlined server renderer under the name `react-dom/fizz`. There is also a noop renderer to be used for testing. At some point we might add a public one to test-renderer but for now I don't want to have to think about public API design for the tests. * Add FormatConfig too We need to separate the format (DOM, React Native, etc) from the host running the server (Node, Browser, etc). * Basic wiring between Node, Noop and DOM configs The Node DOM API is pipeToNodeStream which accepts a writable stream. * Merge host and format config in dynamic react-stream entry point Simpler API this way but also avoids having to fork the wrapper config. Fixes noop builds. * Add setImmediate/Buffer globals to lint config Used by the server renderer * Properly include fizz.node.js Also use forwarding to it from fizz.js in builds so that tests covers this. * Make react-stream private since we're not ready to publish or even name it yet * Rename Renderer -> Streamer * Prefix react-dom/fizz with react-dom/unstable-fizz * Add Fizz Browser host config This lets Fizz render to WHATWG streams. E.g. for rendering in a Service Worker. I added react-dom/unstable-fizz.browser as the entry point for this. Since we now have two configurations of DOM. I had to add another inlinedHostConfigs configuration called `dom-browser`. The reconciler treats this configuration the same as `dom`. For stream it checks against the ReactFizzHostConfigBrowser instead of the Node one. * Add Fizz Browser Fixture This is for testing server rendering - on the client. * Lower version number to detach it from react-reconciler version
Changed paths48 files
First-parent comparisonfixtures/fizz-ssr-browser/index.html AddedM package.json ModifiedA packages/react-dom/npm/unstable-fizz.browser.js AddedA packages/react-dom/npm/unstable-fizz.js AddedA packages/react-dom/npm/unstable-fizz.node.js AddedM packages/react-dom/package.json ModifiedA packages/react-dom/src/__tests__/ReactDOMFizzServerBrowser-test.js AddedA packages/react-dom/src/__tests__/ReactDOMFizzServerNode-test.js AddedA packages/react-dom/src/server/ReactDOMFizzServerBrowser.js AddedA packages/react-dom/src/server/ReactDOMFizzServerFormatConfig.js AddedA packages/react-dom/src/server/ReactDOMFizzServerNode.js AddedA packages/react-dom/unstable-fizz.browser.js AddedA packages/react-dom/unstable-fizz.js AddedA packages/react-dom/unstable-fizz.node.js AddedA packages/react-noop-renderer/npm/server.js AddedM packages/react-noop-renderer/package.json ModifiedA packages/react-noop-renderer/server.js AddedA packages/react-noop-renderer/src/ReactNoopServer.js AddedA packages/react-reconciler/inline.dom-browser.js AddedA packages/react-reconciler/src/forks/ReactFiberHostConfig.dom-browser.js AddedA packages/react-stream/README.md AddedA packages/react-stream/index.js AddedA packages/react-stream/inline-typed.js AddedA packages/react-stream/inline.dom-browser.js AddedA packages/react-stream/inline.dom.js AddedA packages/react-stream/npm/index.js AddedA packages/react-stream/package.json AddedA packages/react-stream/src/ReactFizzFormatConfig.js AddedA packages/react-stream/src/ReactFizzHostConfig.js AddedA packages/react-stream/src/ReactFizzHostConfigBrowser.js AddedA packages/react-stream/src/ReactFizzHostConfigNode.js AddedA packages/react-stream/src/ReactFizzStreamer.js AddedA packages/react-stream/src/__tests__/ReactServer-test.js AddedA packages/react-stream/src/forks/ReactFizzFormatConfig.custom.js AddedA packages/react-stream/src/forks/ReactFizzFormatConfig.dom-browser.js AddedA packages/react-stream/src/forks/ReactFizzFormatConfig.dom.js AddedA packages/react-stream/src/forks/ReactFizzHostConfig.custom.js AddedA packages/react-stream/src/forks/ReactFizzHostConfig.dom-browser.js AddedA packages/react-stream/src/forks/ReactFizzHostConfig.dom.js AddedM scripts/flow/createFlowConfigs.js ModifiedM scripts/jest/setupHostConfigs.js ModifiedM scripts/rollup/bundles.js ModifiedM scripts/rollup/forks.js ModifiedM scripts/rollup/results.json ModifiedM scripts/rollup/validate/eslintrc.cjs.js ModifiedM scripts/rollup/validate/eslintrc.fb.js ModifiedM scripts/shared/inlinedHostConfigs.js ModifiedM yarn.lock ModifiedPatch
Files changed
Rendering syntax-highlighted changes…