Skip to content

Commit

Permalink
[Flight] Better compat with http.createServer (#17289)
Browse files Browse the repository at this point in the history
  • Loading branch information
gaearon authored Nov 6, 2019
1 parent 3452706 commit f50f39b
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions packages/react-server/src/ReactServerHostConfigNode.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@

import type {Writable} from 'stream';

type MightBeFlushable = {flush?: () => void};
type MightBeFlushable = {
flush?: () => void,
flushHeaders?: () => void, // Legacy
};

export type Destination = Writable & MightBeFlushable;

Expand All @@ -21,13 +24,20 @@ export function flushBuffered(destination: Destination) {
// If we don't have any more data to send right now.
// Flush whatever is in the buffer to the wire.
if (typeof destination.flush === 'function') {
// By convention the Zlib streams provide a flush function for this purpose.
destination.flush();
// http.createServer response have flush(), but it has a different meaning and
// is deprecated in favor of flushHeaders(). Detect to avoid a warning.
if (typeof destination.flushHeaders !== 'function') {
// By convention the Zlib streams provide a flush function for this purpose.
destination.flush();
}
}
}

export function beginWriting(destination: Destination) {
destination.cork();
// Older Node streams like http.createServer don't have this.
if (typeof destination.cork === 'function') {
destination.cork();
}
}

export function writeChunk(destination: Destination, buffer: Uint8Array) {
Expand All @@ -36,7 +46,10 @@ export function writeChunk(destination: Destination, buffer: Uint8Array) {
}

export function completeWriting(destination: Destination) {
destination.uncork();
// Older Node streams like http.createServer don't have this.
if (typeof destination.uncork === 'function') {
destination.uncork();
}
}

export function close(destination: Destination) {
Expand Down

0 comments on commit f50f39b

Please sign in to comment.