var AWS = require('./node_modules/aws-sdk/lib/core'); var EventEmitter = require('events').EventEmitter; require('./node_modules/aws-sdk/lib/http'); /** * @api private */ AWS.XHRClient = AWS.util.inherit({ handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) { var self = this; var endpoint = httpRequest.endpoint; var emitter = new EventEmitter(); var href = endpoint.protocol + '//' + endpoint.hostname; if (endpoint.port !== 80 && endpoint.port !== 443) { href += ':' + endpoint.port; } href += httpRequest.path; callback(emitter); var headers = new Headers(); AWS.util.each(httpRequest.headers, function (key, value) { if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') { headers.set(key, value); } }); var credentials = 'omit'; if (httpOptions.xhrWithCredentials) { credentials = 'include'; } var request = new Request(href, { method: httpRequest.method, headers: headers, body: httpRequest.method == "GET" ? null : httpRequest.body }); fetch(request).then(function(response) { if (!response.ok) { throw Error(response.statusText); } return response; }).then(function(response) { emitter.statusCode = response.status; new Error(response.headers) emitter.headers = self.parseHeaders(response.headers); emitter.emit('headers', emitter.statusCode, emitter.headers); response.text().then(function(res){ console.log(res); self.finishRequest(res, emitter); }).catch(function(err){ console.log(err); }); }).catch(function(err) { errCallback(AWS.util.error(new Error('Network Failure' + err), { code: 'NetworkingError' })); }); return emitter; }, parseHeaders: function parseHeaders(rawHeaders) { var headers = {}; if (!rawHeaders) return headers; for (var pair of rawHeaders.entries()) { headers[pair[0]] = pair[1]; } return headers; }, finishRequest: function finishRequest(res, emitter) { var buffer; try { buffer = new AWS.util.Buffer(res); } catch (e) {} if (buffer) emitter.emit('data', buffer); emitter.emit('end'); } }); /** * @api private */ AWS.HttpClient.prototype = AWS.XHRClient.prototype; /** * @api private */ AWS.HttpClient.streamsApiVersion = 1;