caccl-send-request 2.2.8 → 2.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import ResponseType from './ResponseType';
1
+ import ResponseType from './types/ResponseType';
2
2
  /**
3
3
  * Sends and retries an http request
4
4
  * @author Gabriel Abrams
5
+ * @author Yuen Ler Chow
5
6
  * @param opts object containing all arguments
6
7
  * @param opts.path path to send request to
7
8
  * @param [opts.host] host to send request to
package/lib/index.js CHANGED
@@ -55,11 +55,12 @@ var qs_1 = __importDefault(require("qs"));
55
55
  // Import other CACCL libs
56
56
  var caccl_error_1 = __importDefault(require("caccl-error"));
57
57
  // Import shared types
58
- var ErrorCode_1 = __importDefault(require("./ErrorCode"));
59
- var ResponseType_1 = __importDefault(require("./ResponseType"));
58
+ var ErrorCode_1 = __importDefault(require("./types/ErrorCode"));
59
+ var ResponseType_1 = __importDefault(require("./types/ResponseType"));
60
60
  /**
61
61
  * Sends and retries an http request
62
62
  * @author Gabriel Abrams
63
+ * @author Yuen Ler Chow
63
64
  * @param opts object containing all arguments
64
65
  * @param opts.path path to send request to
65
66
  * @param [opts.host] host to send request to
@@ -74,15 +75,15 @@ var ResponseType_1 = __importDefault(require("./ResponseType"));
74
75
  * @returns { body, status, headers } on success
75
76
  */
76
77
  var sendRequest = function (opts) { return __awaiter(void 0, void 0, void 0, function () {
77
- var thisIsDev, sendCrossDomainCredentials, numRetries, method, params, stringifiedParams, query, url, headers, data, encodedData, response, responseHeaders_1, responseBody, _a, err_1, err_2;
78
- var _b;
79
- return __generator(this, function (_c) {
80
- switch (_c.label) {
78
+ var thisIsDev, sendCrossDomainCredentials, numRetries, method, params, stringifiedParams, query, url, headers, data, encodedData, response, responseHeaders_1, responseBody, err_1, err_2;
79
+ var _a;
80
+ return __generator(this, function (_b) {
81
+ switch (_b.label) {
81
82
  case 0:
82
83
  thisIsDev = (opts.host === 'localhost:8080');
83
84
  sendCrossDomainCredentials = !!(opts.sendCrossDomainCredentials
84
85
  || thisIsDev
85
- || ((_b = opts.headers) === null || _b === void 0 ? void 0 : _b.credentials) === 'include');
86
+ || ((_a = opts.headers) === null || _a === void 0 ? void 0 : _a.credentials) === 'include');
86
87
  numRetries = (opts.numRetries ? opts.numRetries : 0);
87
88
  method = (opts.method || 'GET');
88
89
  if (opts.params) {
@@ -129,9 +130,9 @@ var sendRequest = function (opts) { return __awaiter(void 0, void 0, void 0, fun
129
130
  encodedData = JSON.stringify(data);
130
131
  }
131
132
  }
132
- _c.label = 1;
133
+ _b.label = 1;
133
134
  case 1:
134
- _c.trys.push([1, 11, , 12]);
135
+ _b.trys.push([1, 10, , 11]);
135
136
  return [4 /*yield*/, fetch(url, {
136
137
  method: method,
137
138
  mode: 'cors',
@@ -146,39 +147,43 @@ var sendRequest = function (opts) { return __awaiter(void 0, void 0, void 0, fun
146
147
  referrerPolicy: (sendCrossDomainCredentials ? 'origin' : undefined),
147
148
  })];
148
149
  case 2:
149
- response = _c.sent();
150
+ response = _b.sent();
150
151
  responseHeaders_1 = {};
151
152
  response.headers.forEach(function (value, key) {
152
153
  responseHeaders_1[key] = value;
153
154
  });
154
- responseBody = void 0;
155
- _c.label = 3;
155
+ _b.label = 3;
156
156
  case 3:
157
- _c.trys.push([3, 9, , 10]);
158
- _a = opts.responseType;
159
- switch (_a) {
160
- case ResponseType_1.default.Text: return [3 /*break*/, 4];
161
- case ResponseType_1.default.JSON: return [3 /*break*/, 6];
162
- }
163
- return [3 /*break*/, 6];
164
- case 4: return [4 /*yield*/, response.text()];
165
- case 5:
166
- responseBody = _c.sent();
167
- return [3 /*break*/, 8];
168
- case 6: return [4 /*yield*/, response.json()];
169
- case 7:
170
- responseBody = _c.sent();
171
- return [3 /*break*/, 8];
172
- case 8: return [3 /*break*/, 10];
173
- case 9:
174
- err_1 = _c.sent();
157
+ _b.trys.push([3, 8, , 9]);
158
+ responseBody = void 0;
159
+ if (!(opts.responseType
160
+ && opts.responseType === ResponseType_1.default.Text)) return [3 /*break*/, 5];
161
+ return [4 /*yield*/, response.text()];
162
+ case 4:
163
+ // Response type is text
164
+ responseBody = _b.sent();
165
+ return [3 /*break*/, 7];
166
+ case 5: return [4 /*yield*/, response.json()];
167
+ case 6:
168
+ // Response type is JSON
169
+ responseBody = _b.sent();
170
+ _b.label = 7;
171
+ case 7:
172
+ // Return response
173
+ return [2 /*return*/, {
174
+ body: responseBody,
175
+ status: response.status,
176
+ headers: responseHeaders_1,
177
+ }];
178
+ case 8:
179
+ err_1 = _b.sent();
175
180
  throw new caccl_error_1.default({
176
181
  message: "Failed to parse response as ".concat(opts.responseType, ": ").concat(err_1 === null || err_1 === void 0 ? void 0 : err_1.message),
177
182
  code: ErrorCode_1.default.ResponseParseError,
178
183
  });
179
- case 10: return [3 /*break*/, 12];
180
- case 11:
181
- err_2 = _c.sent();
184
+ case 9: return [3 /*break*/, 11];
185
+ case 10:
186
+ err_2 = _b.sent();
182
187
  // Request failed! Check if we have more attempts
183
188
  if (numRetries > 0) {
184
189
  // Update opts with one less retry
@@ -196,7 +201,7 @@ var sendRequest = function (opts) { return __awaiter(void 0, void 0, void 0, fun
196
201
  message: "We encountered an error when trying to send a network request. If this issue persists, contact an admin. Error: ".concat(err_2 === null || err_2 === void 0 ? void 0 : err_2.message),
197
202
  code: ErrorCode_1.default.NotConnected,
198
203
  });
199
- case 12: return [2 /*return*/];
204
+ case 11: return [2 /*return*/];
200
205
  }
201
206
  });
202
207
  }); };
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ declare enum ErrorCode {
2
+ NotConnected = "CSR1",
3
+ SelfSigned = "CSR2",
4
+ ResponseParseError = "CSR3"
5
+ }
6
+ export default ErrorCode;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // Highest error code: CSR3
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ var ErrorCode;
5
+ (function (ErrorCode) {
6
+ ErrorCode["NotConnected"] = "CSR1";
7
+ ErrorCode["SelfSigned"] = "CSR2";
8
+ ErrorCode["ResponseParseError"] = "CSR3";
9
+ })(ErrorCode || (ErrorCode = {}));
10
+ ;
11
+ exports.default = ErrorCode;
12
+ //# sourceMappingURL=ErrorCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorCode.js","sourceRoot":"","sources":["../../src/types/ErrorCode.ts"],"names":[],"mappings":";AAAA,2BAA2B;;AAE3B,IAAK,SAIJ;AAJD,WAAK,SAAS;IACZ,kCAAqB,CAAA;IACrB,gCAAmB,CAAA;IACnB,wCAA2B,CAAA;AAC7B,CAAC,EAJI,SAAS,KAAT,SAAS,QAIb;AAAA,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Response types
3
+ * @author Yuen Ler Chow
4
+ */
5
+ declare enum ResponseType {
6
+ Text = "Text",
7
+ JSON = "JSON"
8
+ }
9
+ export default ResponseType;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Response types
5
+ * @author Yuen Ler Chow
6
+ */
7
+ var ResponseType;
8
+ (function (ResponseType) {
9
+ // Response is plain text
10
+ ResponseType["Text"] = "Text";
11
+ // Response is encoded JSON (object or array)
12
+ ResponseType["JSON"] = "JSON";
13
+ })(ResponseType || (ResponseType = {}));
14
+ exports.default = ResponseType;
15
+ //# sourceMappingURL=ResponseType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseType.js","sourceRoot":"","sources":["../../src/types/ResponseType.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,IAAK,YAKJ;AALD,WAAK,YAAY;IACf,yBAAyB;IACzB,6BAAa,CAAA;IACb,6CAA6C;IAC7C,6BAAa,CAAA;AACf,CAAC,EALI,YAAY,KAAZ,YAAY,QAKhB;AAED,kBAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "caccl-send-request",
3
- "version": "2.2.8",
3
+ "version": "2.2.10",
4
4
  "description": "The default request sender used throughout the CACCL project.",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -36,7 +36,7 @@
36
36
  "typescript": "^4.5.5"
37
37
  },
38
38
  "dependencies": {
39
- "caccl-error": "^2.2.8",
39
+ "caccl-error": "^2.2.10",
40
40
  "qs": "^6.9.6"
41
41
  }
42
42
  }
package/src/index.ts CHANGED
@@ -5,12 +5,13 @@ import qs from 'qs';
5
5
  import CACCLError from 'caccl-error';
6
6
 
7
7
  // Import shared types
8
- import ErrorCode from './ErrorCode';
9
- import ResponseType from './ResponseType';
8
+ import ErrorCode from './types/ErrorCode';
9
+ import ResponseType from './types/ResponseType';
10
10
 
11
11
  /**
12
12
  * Sends and retries an http request
13
13
  * @author Gabriel Abrams
14
+ * @author Yuen Ler Chow
14
15
  * @param opts object containing all arguments
15
16
  * @param opts.path path to send request to
16
17
  * @param [opts.host] host to send request to
@@ -142,17 +143,26 @@ const sendRequest = async (
142
143
  });
143
144
 
144
145
  // Process response based on responseType
145
- let responseBody: any;
146
146
  try {
147
- switch (opts.responseType) {
148
- case ResponseType.Text:
149
- responseBody = await response.text();
150
- break;
151
- case ResponseType.JSON:
152
- default:
153
- responseBody = await response.json();
154
- break;
147
+ // Parse response
148
+ let responseBody: any;
149
+ if (
150
+ opts.responseType
151
+ && opts.responseType === ResponseType.Text
152
+ ) {
153
+ // Response type is text
154
+ responseBody = await response.text();
155
+ } else {
156
+ // Response type is JSON
157
+ responseBody = await response.json();
155
158
  }
159
+
160
+ // Return response
161
+ return {
162
+ body: responseBody,
163
+ status: response.status,
164
+ headers: responseHeaders,
165
+ };
156
166
  } catch (err) {
157
167
  throw new CACCLError({
158
168
  message: `Failed to parse response as ${opts.responseType}: ${(err as any)?.message}`,
@@ -3,7 +3,9 @@
3
3
  * @author Yuen Ler Chow
4
4
  */
5
5
  enum ResponseType {
6
+ // Response is plain text
6
7
  Text = 'Text',
8
+ // Response is encoded JSON (object or array)
7
9
  JSON = 'JSON',
8
10
  }
9
11
 
File without changes