mirror of
https://github.com/facebook/react.git
synced 2026-02-23 20:23:02 +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
25 lines
953 B
JavaScript
25 lines
953 B
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
*/
|
|
|
|
// This file must have the Flow annotation.
|
|
//
|
|
// This is the Flow-typed entry point for the renderer. It should not be
|
|
// imported directly in code. Instead, our Flow configuration uses this entry
|
|
// point for the currently checked renderer (the one you passed to `yarn flow`).
|
|
//
|
|
// For example, if you run `yarn flow dom`, `react-stream/inline.dom` points
|
|
// to this module (and thus will be considered Flow-typed). But other renderers
|
|
// (e.g. `react-test-renderer`) will see stream as untyped during the check.
|
|
//
|
|
// We can't make all entry points typed at the same time because different
|
|
// renderers have different host config types. So we check them one by one.
|
|
// We run Flow on all renderers on CI.
|
|
|
|
export * from './src/ReactFizzStreamer';
|