33 lines
657 B
JavaScript
33 lines
657 B
JavaScript
|
'use strict';
|
||
|
|
||
|
var http = module.exports;
|
||
|
|
||
|
http.request = function(opts) {
|
||
|
return window.fetch(opts.url, opts).then(function(resp) {
|
||
|
var headers = {};
|
||
|
var result = {
|
||
|
statusCode: resp.status,
|
||
|
headers: headers,
|
||
|
toJSON: function() {
|
||
|
return this;
|
||
|
}
|
||
|
};
|
||
|
Array.from(resp.headers.entries()).forEach(function(h) {
|
||
|
headers[h[0]] = h[1];
|
||
|
});
|
||
|
if (!headers['content-type']) {
|
||
|
return result;
|
||
|
}
|
||
|
if (/json/.test(headers['content-type'])) {
|
||
|
return resp.json().then(function(json) {
|
||
|
result.body = json;
|
||
|
return result;
|
||
|
});
|
||
|
}
|
||
|
return resp.text().then(function(txt) {
|
||
|
result.body = txt;
|
||
|
return result;
|
||
|
});
|
||
|
});
|
||
|
};
|