Socket
Socket
Sign inDemoInstall

whatwg-fetch

Package Overview
Dependencies
Maintainers
2
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

whatwg-fetch - npm Package Compare versions

Comparing version 0.6.0 to 0.6.1

2

bower.json
{
"name": "fetch",
"version": "0.6.0",
"version": "0.6.1",
"main": "fetch.js",

@@ -5,0 +5,0 @@ "devDependencies": {

@@ -190,2 +190,15 @@ (function() {

function responseURL() {
if ('responseURL' in xhr) {
return xhr.responseURL
}
// Avoid security warnings on getResponseHeader when not allowed by CORS
if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {
return xhr.getResponseHeader('X-Request-URL')
}
return;
}
xhr.onload = function() {

@@ -201,5 +214,6 @@ var status = (xhr.status === 1223) ? 204 : xhr.status

headers: headers(xhr),
url: xhr.responseURL || xhr.getResponseHeader('X-Request-URL')
url: responseURL()
}
resolve(new Response(blobSupport ? xhr.response: xhr.responseText, options))
var body = 'response' in xhr ? xhr.response : xhr.responseText;
resolve(new Response(body, options))
}

@@ -212,3 +226,3 @@

xhr.open(self.method, self.url)
if (blobSupport) {
if ('responseType' in xhr && blobSupport) {
xhr.responseType = 'blob'

@@ -215,0 +229,0 @@ }

{
"name": "whatwg-fetch",
"version": "0.6.0",
"version": "0.6.1",
"main": "fetch.js",

@@ -5,0 +5,0 @@ "devDependencies": {

@@ -159,2 +159,2 @@ # window.fetch polyfill

--- | --- | --- | --- | --- |
Latest ✔ | Latest ✔ | 10+ ✔ | Latest ✔ | 6.1+ ✔ |
Latest ✔ | Latest ✔ | 9+ ✔ | Latest ✔ | 6.1+ ✔ |

@@ -31,2 +31,18 @@ #!/usr/bin/env node

},
'/hello/utf8': function(res) {
res.writeHead(200, {
'Content-Type': 'text/plain; charset=utf-8'
});
// "hello"
var buf = new Buffer([104, 101, 108, 108, 111]);
res.end(buf);
},
'/hello/utf16le': function(res) {
res.writeHead(200, {
'Content-Type': 'text/plain; charset=utf-16le'
});
// "hello"
var buf = new Buffer([104, 0, 101, 0, 108, 0, 108, 0, 111, 0]);
res.end(buf);
},
'/binary': function(res) {

@@ -33,0 +49,0 @@ res.writeHead(200, {'Content-Type': 'application/octet-stream'});

@@ -0,1 +1,28 @@

function readBlobAsText(blob) {
return new Promise(function(resolve, reject) {
var reader = new FileReader()
reader.onload = function() {
resolve(reader.result)
}
reader.onerror = function() {
reject(reader.error)
}
reader.readAsText(blob)
})
}
function readBlobAsBytes(blob) {
return new Promise(function(resolve, reject) {
var reader = new FileReader()
reader.onload = function() {
var view = new Uint8Array(reader.result)
resolve(Array.prototype.slice.call(view))
}
reader.onerror = function() {
reject(reader.error)
}
reader.readAsArrayBuffer(blob)
})
}
test('resolves promise on 500 error', function() {

@@ -47,13 +74,34 @@ return fetch('/boom').then(function(response) {

suite('Response', function() {
test('construct response with String body', function() {
var response = new Response('hello')
response.text().then(function(text) {
assert.equal(text, 'hello')
// https://fetch.spec.whatwg.org/#concept-bodyinit-extract
suite('BodyInit extract', function() {
;(Response.prototype.blob ? suite : suite.skip)('type Blob', function() {
test('consume as blob', function() {
var response = new Response(new Blob(['hello']))
response.blob().then(readBlobAsText).then(function(text) {
assert.equal(text, 'hello')
})
})
test('consume as text', function() {
var response = new Response(new Blob(['hello']))
response.text().then(function(text) {
assert.equal(text, 'hello')
})
})
})
})
;(Response.prototype.blob ? test : test.skip)('construct response with Blob body', function() {
var response = new Response(new Blob(['hello']))
response.text().then(function(text) {
assert.equal(text, 'hello')
suite('type USVString', function() {
test('consume as text', function() {
var response = new Response('hello')
response.text().then(function(text) {
assert.equal(text, 'hello')
})
})
;(Response.prototype.blob ? test : test.skip)('consume as blob', function() {
var response = new Response('hello')
response.blob().then(readBlobAsText).then(function(text) {
assert.equal(text, 'hello')
})
})
})

@@ -104,6 +152,30 @@ })

test('arrayBuffer handles utf-8 data', function() {
return fetch('/hello/utf8').then(function(response) {
return response.arrayBuffer()
}).then(function(buf) {
assert(buf instanceof ArrayBuffer, 'buf is an ArrayBuffer instance')
assert.equal(buf.byteLength, 5, 'buf.byteLength is correct')
var octets = Array.prototype.slice.call(new Uint8Array(buf))
assert.deepEqual(octets, [104, 101, 108, 108, 111])
})
})
test('arrayBuffer handles utf-16le data', function() {
return fetch('/hello/utf16le').then(function(response) {
return response.arrayBuffer()
}).then(function(buf) {
assert(buf instanceof ArrayBuffer, 'buf is an ArrayBuffer instance')
assert.equal(buf.byteLength, 10, 'buf.byteLength is correct')
var octets = Array.prototype.slice.call(new Uint8Array(buf))
assert.deepEqual(octets, [104, 0, 101, 0, 108, 0, 108, 0, 111, 0])
})
})
test('rejects arrayBuffer promise after body is consumed', function() {
return fetch('/hello').then(function(response) {
assert(response.arrayBuffer, 'Body does not implement arrayBuffer')
assert.equal(response.bodyUsed, false)
response.blob()
assert.equal(response.bodyUsed, true)
return response.arrayBuffer()

@@ -135,6 +207,26 @@ }).catch(function(error) {

test('blob handles utf-8 data', function() {
return fetch('/hello/utf8').then(function(response) {
return response.blob()
}).then(readBlobAsBytes).then(function(octets) {
assert.equal(octets.length, 5, 'blob.size is correct')
assert.deepEqual(octets, [104, 101, 108, 108, 111])
})
})
test('blob handles utf-16le data', function() {
return fetch('/hello/utf16le').then(function(response) {
return response.blob()
}).then(readBlobAsBytes).then(function(octets) {
assert.equal(octets.length, 10, 'blob.size is correct')
assert.deepEqual(octets, [104, 0, 101, 0, 108, 0, 108, 0, 111, 0])
})
})
test('rejects blob promise after body is consumed', function() {
return fetch('/hello').then(function(response) {
assert(response.blob, 'Body does not implement blob')
response.blob()
assert.equal(response.bodyUsed, false)
response.text()
assert.equal(response.bodyUsed, true)
return response.blob()

@@ -192,3 +284,5 @@ }).catch(function(error) {

assert(response.json, 'Body does not implement json')
response.json()
assert.equal(response.bodyUsed, false)
response.text()
assert.equal(response.bodyUsed, true)
return response.json()

@@ -231,3 +325,5 @@ }).catch(function(error) {

assert(response.text, 'Body does not implement text')
response.text()
assert.equal(response.bodyUsed, false)
response.json()
assert.equal(response.bodyUsed, true)
return response.text()

@@ -234,0 +330,0 @@ }).catch(function(error) {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc