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 +2 -1
- package/lib/index.js +39 -34
- package/lib/index.js.map +1 -1
- package/lib/types/ErrorCode.d.ts +6 -0
- package/lib/types/ErrorCode.js +12 -0
- package/lib/types/ErrorCode.js.map +1 -0
- package/lib/types/ResponseType.d.ts +9 -0
- package/lib/types/ResponseType.js +15 -0
- package/lib/types/ResponseType.js.map +1 -0
- package/package.json +2 -2
- package/src/index.ts +21 -11
- package/src/{ResponseType.ts → types/ResponseType.ts} +2 -0
- /package/src/{ErrorCode.ts → types/ErrorCode.ts} +0 -0
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,
|
|
78
|
-
var
|
|
79
|
-
return __generator(this, function (
|
|
80
|
-
switch (
|
|
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
|
-
|| ((
|
|
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
|
-
|
|
133
|
+
_b.label = 1;
|
|
133
134
|
case 1:
|
|
134
|
-
|
|
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 =
|
|
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
|
-
|
|
155
|
-
_c.label = 3;
|
|
155
|
+
_b.label = 3;
|
|
156
156
|
case 3:
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
|
180
|
-
case
|
|
181
|
-
err_2 =
|
|
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
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,0CAAoB;AAEpB,0BAA0B;AAC1B,4DAAqC;AAErC,sBAAsB;AACtB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,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.
|
|
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.
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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}`,
|
|
File without changes
|