Skip to content

Commit 6bab67d

Browse files
committed
Use to-arraybuffer instead of manual conversion
This fixes some more edge cases when converting from a Buffer to an ArrayBuffer. Additionally, compared v2.0.5, this avoids an unnecessary copy when sending data in a request body.
1 parent 6433ea8 commit 6bab67d

File tree

2 files changed

+3
-9
lines changed

2 files changed

+3
-9
lines changed

lib/request.js

+2-9
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ var capability = require('./capability')
33
var inherits = require('inherits')
44
var response = require('./response')
55
var stream = require('stream')
6+
var toArrayBuffer = require('to-arraybuffer')
67

78
var IncomingMessage = response.IncomingMessage
89
var rStates = response.readyStates
@@ -96,15 +97,7 @@ ClientRequest.prototype._onFinish = function () {
9697
if (opts.method === 'POST' || opts.method === 'PUT' || opts.method === 'PATCH') {
9798
if (capability.blobConstructor) {
9899
body = new global.Blob(self._body.map(function (buffer) {
99-
if (buffer instanceof Uint8Array) {
100-
return buffer
101-
} else {
102-
var buf = new Uint8Array(buffer.length)
103-
for (var i = 0, len = buf.length; i < len; i++) {
104-
buf[i] = buffer[i]
105-
}
106-
return buf
107-
}
100+
return toArrayBuffer(buffer)
108101
}), {
109102
type: (headersObj['content-type'] || {}).value || ''
110103
})

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"dependencies": {
2626
"builtin-status-codes": "^1.0.0",
2727
"inherits": "^2.0.1",
28+
"to-arraybuffer": "^1.0.0",
2829
"xtend": "^4.0.0"
2930
},
3031
"devDependencies": {

0 commit comments

Comments
 (0)