include node_modules so release .zip is deployable
This commit is contained in:
+40
@@ -0,0 +1,40 @@
|
||||
import { Readable } from "stream";
|
||||
const MIN_WAIT_TIME = 1000;
|
||||
export async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) {
|
||||
const headers = request.headers ?? {};
|
||||
const expect = headers["Expect"] || headers["expect"];
|
||||
let timeoutId = -1;
|
||||
let hasError = false;
|
||||
if (expect === "100-continue") {
|
||||
await Promise.race([
|
||||
new Promise((resolve) => {
|
||||
timeoutId = Number(setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));
|
||||
}),
|
||||
new Promise((resolve) => {
|
||||
httpRequest.on("continue", () => {
|
||||
clearTimeout(timeoutId);
|
||||
resolve();
|
||||
});
|
||||
httpRequest.on("error", () => {
|
||||
hasError = true;
|
||||
clearTimeout(timeoutId);
|
||||
resolve();
|
||||
});
|
||||
}),
|
||||
]);
|
||||
}
|
||||
if (!hasError) {
|
||||
writeBody(httpRequest, request.body);
|
||||
}
|
||||
}
|
||||
function writeBody(httpRequest, body) {
|
||||
if (body instanceof Readable) {
|
||||
body.pipe(httpRequest);
|
||||
}
|
||||
else if (body) {
|
||||
httpRequest.end(Buffer.from(body));
|
||||
}
|
||||
else {
|
||||
httpRequest.end();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user