fetch()

in public/amazon-cognito-identity.js [7678:7732]


		fetch(this.endpoint, options).then(function (resp) {
			response = resp;
			return resp;
		}, function (err) {
			// If error happens here, the request failed
			// if it is TypeError throw network error
			if (err instanceof TypeError) {
				throw new Error('Network error');
			}
			throw err;
		}).then(function (resp) {
			return resp.json().catch(function () {
				return {};
			});
		}).then(function (data) {
			// return parsed body stream
			if (response.ok) return callback(null, data);
			responseJsonData = data;

			// Taken from aws-sdk-js/lib/protocol/json.js
			// eslint-disable-next-line no-underscore-dangle
			var code = (data.__type || data.code).split('#').pop();
			var error = {
				code: code,
				name: code,
				message: data.message || data.Message || null
			};
			return callback(error);
		}).catch(function (err) {
			// first check if we have a service error
			if (response && response.headers && response.headers.get('x-amzn-errortype')) {
				try {
					var code = response.headers.get('x-amzn-errortype').split(':')[0];
					var error = {
						code: code,
						name: code,
						statusCode: response.status,
						message: response.status ? response.status.toString() : null
					};
					return callback(error);
				} catch (ex) {
					return callback(err);
				}
				// otherwise check if error is Network error
			} else if (err instanceof Error && err.message === 'Network error') {
				var _error = {
					code: 'NetworkError',
					name: err.name,
					message: err.message
				};
				return callback(_error);
			} else {
				return callback(err);
			}
		});