[Flight] Fix File Upload in Node.js (#26700)

Use the Blob constructor + append with filename instead of File
constructor. Node.js doesn't expose a global File constructor but does
support it in this form.

Queue fields until we get the 'end' event from the previous file. We
rely on previous files being available by the time a field is resolved.
However, since the 'end' event in Readable is fired after two
micro-tasks, these are not resolved in order.

I use a queue of the fields while we're still waiting on files to
finish. This still doesn't resolve files and fields in order relative to
each other but that doesn't matter for our usage.

DiffTrain build for commit https://github.com/facebook/react/commit/a21d1475ffd7225a463f2d0c0c9b732c8dd795eb.
This commit is contained in:
sebmarkbage
2023-04-22 05:10:17 +00:00
parent a0c9c6b6d0
commit 812eeb477f
13 changed files with 19 additions and 19 deletions
@@ -23848,7 +23848,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-next-36e4cbe2e-20230421";
var ReactVersion = "18.3.0-next-a21d1475f-20230422";
// Might add PROFILE later.
@@ -8601,7 +8601,7 @@ var devToolsConfig$jscomp$inline_1021 = {
throw Error("TestRenderer does not support findFiberByHostInstance()");
},
bundleType: 0,
version: "18.3.0-next-36e4cbe2e-20230421",
version: "18.3.0-next-a21d1475f-20230422",
rendererPackageName: "react-test-renderer"
};
var internals$jscomp$inline_1206 = {
@@ -8632,7 +8632,7 @@ var internals$jscomp$inline_1206 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-36e4cbe2e-20230421"
reconcilerVersion: "18.3.0-next-a21d1475f-20230422"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1207 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -9027,7 +9027,7 @@ var devToolsConfig$jscomp$inline_1063 = {
throw Error("TestRenderer does not support findFiberByHostInstance()");
},
bundleType: 0,
version: "18.3.0-next-36e4cbe2e-20230421",
version: "18.3.0-next-a21d1475f-20230422",
rendererPackageName: "react-test-renderer"
};
var internals$jscomp$inline_1247 = {
@@ -9058,7 +9058,7 @@ var internals$jscomp$inline_1247 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-36e4cbe2e-20230421"
reconcilerVersion: "18.3.0-next-a21d1475f-20230422"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1248 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -27,7 +27,7 @@ if (
}
"use strict";
var ReactVersion = "18.3.0-next-36e4cbe2e-20230421";
var ReactVersion = "18.3.0-next-a21d1475f-20230422";
// ATTENTION
// When adding new symbols to this file,
@@ -639,4 +639,4 @@ exports.useSyncExternalStore = function (
);
};
exports.useTransition = useTransition;
exports.version = "18.3.0-next-36e4cbe2e-20230421";
exports.version = "18.3.0-next-a21d1475f-20230422";
@@ -642,7 +642,7 @@ exports.useSyncExternalStore = function (
);
};
exports.useTransition = useTransition;
exports.version = "18.3.0-next-36e4cbe2e-20230421";
exports.version = "18.3.0-next-a21d1475f-20230422";
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
if (
@@ -1 +1 @@
36e4cbe2e918ec9c8a7abbfda28898c835361fb2
a21d1475ffd7225a463f2d0c0c9b732c8dd795eb
@@ -27158,7 +27158,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-next-36e4cbe2e-20230421";
var ReactVersion = "18.3.0-next-a21d1475f-20230422";
function createPortal$1(
children,
@@ -9472,7 +9472,7 @@ var roots = new Map(),
devToolsConfig$jscomp$inline_1045 = {
findFiberByHostInstance: getInstanceFromNode,
bundleType: 0,
version: "18.3.0-next-36e4cbe2e-20230421",
version: "18.3.0-next-a21d1475f-20230422",
rendererPackageName: "react-native-renderer",
rendererConfig: {
getInspectorDataForViewTag: function () {
@@ -9514,7 +9514,7 @@ var internals$jscomp$inline_1276 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-36e4cbe2e-20230421"
reconcilerVersion: "18.3.0-next-a21d1475f-20230422"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1277 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -10181,7 +10181,7 @@ var roots = new Map(),
devToolsConfig$jscomp$inline_1123 = {
findFiberByHostInstance: getInstanceFromNode,
bundleType: 0,
version: "18.3.0-next-36e4cbe2e-20230421",
version: "18.3.0-next-a21d1475f-20230422",
rendererPackageName: "react-native-renderer",
rendererConfig: {
getInspectorDataForViewTag: function () {
@@ -10236,7 +10236,7 @@ var roots = new Map(),
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-36e4cbe2e-20230421"
reconcilerVersion: "18.3.0-next-a21d1475f-20230422"
});
exports.createPortal = function (children, containerTag) {
return createPortal$1(
@@ -27671,7 +27671,7 @@ function createFiberRoot(
return root;
}
var ReactVersion = "18.3.0-next-36e4cbe2e-20230421";
var ReactVersion = "18.3.0-next-a21d1475f-20230422";
function createPortal$1(
children,
@@ -9731,7 +9731,7 @@ var roots = new Map(),
devToolsConfig$jscomp$inline_1100 = {
findFiberByHostInstance: getInstanceFromTag,
bundleType: 0,
version: "18.3.0-next-36e4cbe2e-20230421",
version: "18.3.0-next-a21d1475f-20230422",
rendererPackageName: "react-native-renderer",
rendererConfig: {
getInspectorDataForViewTag: function () {
@@ -9773,7 +9773,7 @@ var internals$jscomp$inline_1345 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-36e4cbe2e-20230421"
reconcilerVersion: "18.3.0-next-a21d1475f-20230422"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1346 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -10440,7 +10440,7 @@ var roots = new Map(),
devToolsConfig$jscomp$inline_1178 = {
findFiberByHostInstance: getInstanceFromTag,
bundleType: 0,
version: "18.3.0-next-36e4cbe2e-20230421",
version: "18.3.0-next-a21d1475f-20230422",
rendererPackageName: "react-native-renderer",
rendererConfig: {
getInspectorDataForViewTag: function () {
@@ -10495,7 +10495,7 @@ var roots = new Map(),
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "18.3.0-next-36e4cbe2e-20230421"
reconcilerVersion: "18.3.0-next-a21d1475f-20230422"
});
exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {
computeComponentStackForErrorReporting: function (reactTag) {