mirror of
https://github.com/facebook/react.git
synced 2026-02-26 07:55:55 +00:00
* [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
26 lines
546 B
Markdown
26 lines
546 B
Markdown
# react-stream
|
|
|
|
This is an experimental package for creating custom React streaming server renderers.
|
|
|
|
**Its API is not as stable as that of React, React Native, or React DOM, and does not follow the common versioning scheme.**
|
|
|
|
**Use it at your own risk.**
|
|
|
|
## API
|
|
|
|
```js
|
|
var Renderer = require('react-stream');
|
|
|
|
var HostConfig = {
|
|
// You'll need to implement some methods here.
|
|
// See below for more information and examples.
|
|
};
|
|
|
|
var MyRenderer = Renderer(HostConfig);
|
|
|
|
var RendererPublicAPI = {
|
|
};
|
|
|
|
module.exports = RendererPublicAPI;
|
|
```
|