初始化环境文件
This commit is contained in:
63
node_modules/@smithy/node-http-handler/dist-es/write-request-body.js
generated
vendored
Normal file
63
node_modules/@smithy/node-http-handler/dist-es/write-request-body.js
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
import { Readable } from "node:stream";
|
||||
import { timing } from "./timing";
|
||||
const MIN_WAIT_TIME = 6_000;
|
||||
export async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME, externalAgent = false) {
|
||||
const headers = request.headers ?? {};
|
||||
const expect = headers.Expect || headers.expect;
|
||||
let timeoutId = -1;
|
||||
let sendBody = true;
|
||||
if (!externalAgent && expect === "100-continue") {
|
||||
sendBody = await Promise.race([
|
||||
new Promise((resolve) => {
|
||||
timeoutId = Number(timing.setTimeout(() => resolve(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs)));
|
||||
}),
|
||||
new Promise((resolve) => {
|
||||
httpRequest.on("continue", () => {
|
||||
timing.clearTimeout(timeoutId);
|
||||
resolve(true);
|
||||
});
|
||||
httpRequest.on("response", () => {
|
||||
timing.clearTimeout(timeoutId);
|
||||
resolve(false);
|
||||
});
|
||||
httpRequest.on("error", () => {
|
||||
timing.clearTimeout(timeoutId);
|
||||
resolve(false);
|
||||
});
|
||||
}),
|
||||
]);
|
||||
}
|
||||
if (sendBody) {
|
||||
writeBody(httpRequest, request.body);
|
||||
}
|
||||
}
|
||||
function writeBody(httpRequest, body) {
|
||||
if (body instanceof Readable) {
|
||||
body.pipe(httpRequest);
|
||||
return;
|
||||
}
|
||||
if (body) {
|
||||
const isBuffer = Buffer.isBuffer(body);
|
||||
const isString = typeof body === "string";
|
||||
if (isBuffer || isString) {
|
||||
if (isBuffer && body.byteLength === 0) {
|
||||
httpRequest.end();
|
||||
}
|
||||
else {
|
||||
httpRequest.end(body);
|
||||
}
|
||||
return;
|
||||
}
|
||||
const uint8 = body;
|
||||
if (typeof uint8 === "object" &&
|
||||
uint8.buffer &&
|
||||
typeof uint8.byteOffset === "number" &&
|
||||
typeof uint8.byteLength === "number") {
|
||||
httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength));
|
||||
return;
|
||||
}
|
||||
httpRequest.end(Buffer.from(body));
|
||||
return;
|
||||
}
|
||||
httpRequest.end();
|
||||
}
|
||||
Reference in New Issue
Block a user