UNPKG

3.24 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports["default"] = void 0;
5
6var _UserAgent = _interopRequireDefault(require("./UserAgent"));
7
8function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
10/** @class */
11var Client = /*#__PURE__*/function () {
12 /**
13 * Constructs a new AWS Cognito Identity Provider client object
14 * @param {string} region AWS region
15 * @param {string} endpoint endpoint
16 */
17 function Client(region, endpoint) {
18 this.endpoint = endpoint || "https://cognito-idp." + region + ".amazonaws.com/";
19 }
20 /**
21 * Makes an unauthenticated request on AWS Cognito Identity Provider API
22 * using fetch
23 * @param {string} operation API operation
24 * @param {object} params Input parameters
25 * @param {function} callback Callback called when a response is returned
26 * @returns {void}
27 */
28
29
30 var _proto = Client.prototype;
31
32 _proto.request = function request(operation, params, callback) {
33 var headers = {
34 'Content-Type': 'application/x-amz-json-1.1',
35 'X-Amz-Target': "AWSCognitoIdentityProviderService." + operation,
36 'X-Amz-User-Agent': _UserAgent["default"].prototype.userAgent
37 };
38 var options = {
39 headers: headers,
40 method: 'POST',
41 mode: 'cors',
42 cache: 'no-cache',
43 body: JSON.stringify(params)
44 };
45 var response;
46 var responseJsonData;
47 fetch(this.endpoint, options).then(function (resp) {
48 response = resp;
49 return resp;
50 }, function (err) {
51 // If error happens here, the request failed
52 // if it is TypeError throw network error
53 if (err instanceof TypeError) {
54 throw new Error('Network error');
55 }
56
57 throw err;
58 }).then(function (resp) {
59 return resp.json()["catch"](function () {
60 return {};
61 });
62 }).then(function (data) {
63 // return parsed body stream
64 if (response.ok) return callback(null, data);
65 responseJsonData = data; // Taken from aws-sdk-js/lib/protocol/json.js
66 // eslint-disable-next-line no-underscore-dangle
67
68 var code = (data.__type || data.code).split('#').pop();
69 var error = {
70 code: code,
71 name: code,
72 message: data.message || data.Message || null
73 };
74 return callback(error);
75 })["catch"](function (err) {
76 // first check if we have a service error
77 if (response && response.headers && response.headers.get('x-amzn-errortype')) {
78 try {
79 var code = response.headers.get('x-amzn-errortype').split(':')[0];
80 var error = {
81 code: code,
82 name: code,
83 statusCode: response.status,
84 message: response.status ? response.status.toString() : null
85 };
86 return callback(error);
87 } catch (ex) {
88 return callback(err);
89 } // otherwise check if error is Network error
90
91 } else if (err instanceof Error && err.message === 'Network error') {
92 var _error = {
93 code: 'NetworkError',
94 name: err.name,
95 message: err.message
96 };
97 return callback(_error);
98 } else {
99 return callback(err);
100 }
101 });
102 };
103
104 return Client;
105}();
106
107exports["default"] = Client;
\No newline at end of file