superagent: fix field() multipart generation

This commit is contained in:
Girish Ramakrishnan
2025-02-26 15:01:00 +01:00
parent b44d65d265
commit 7b62c9e8a4
+10 -10
View File
@@ -185,11 +185,7 @@ class Request {
const partHeader = Buffer.from(`--${this.#boundary}\r\nContent-Disposition: form-data; name="${name}"\r\n\r\n`, 'utf8');
const partData = Buffer.from(value, 'utf8');
const partTrailer = Buffer.from(`\r\n--${this.#boundary}--\r\n`, 'utf8');
this.#body = Buffer.concat([this.#body, partHeader, partData, partTrailer]);
this.#options.headers['content-type'] = `multipart/form-data; boundary=${this.#boundary}`;
this.#options.headers['content-length'] = this.#body.byteLength;
this.#body = Buffer.concat([this.#body, partHeader, partData, Buffer.from('\r\n', 'utf8')]);
return this;
}
@@ -199,16 +195,20 @@ class Request {
const partHeader = Buffer.from(`--${this.#boundary}\r\nContent-Disposition: form-data; name="${name}" filename="${path.basename(filepath)}"\r\n\r\n`, 'utf8');
const partData = fs.readFileSync(filepath);
const partTrailer = Buffer.from(`\r\n--${this.#boundary}--\r\n`, 'utf8');
this.#body = Buffer.concat([this.#body, partHeader, partData, partTrailer]);
this.#options.headers['content-type'] = `multipart/form-data; boundary=${this.#boundary}`;
this.#options.headers['content-length'] = this.#body.byteLength;
this.#body = Buffer.concat([this.#body, partHeader, partData, Buffer.from('\r\n', 'utf8')]);
return this;
}
then(onFulfilled, onRejected) {
if (this.#boundary) {
const partTrailer = Buffer.from(`--${this.#boundary}--\r\n`, 'utf8');
this.#body = Buffer.concat([this.#body, partTrailer]);
this.#options.headers['content-type'] = `multipart/form-data; boundary=${this.#boundary}`;
this.#options.headers['content-length'] = this.#body.byteLength;
}
this._start().then(onFulfilled, onRejected);
}
}