caccl-send-request 2.2.5 → 2.2.7
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/ErrorCode.d.ts +1 -1
- package/lib/ErrorCode.js +1 -1
- package/lib/ErrorCode.js.map +1 -1
- package/lib/ResponseType.d.ts +9 -0
- package/lib/ResponseType.js +13 -0
- package/lib/ResponseType.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +38 -30
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
- package/src/ErrorCode.ts +1 -1
- package/src/ResponseType.ts +10 -0
- package/src/index.ts +20 -14
package/lib/ErrorCode.d.ts
CHANGED
package/lib/ErrorCode.js
CHANGED
package/lib/ErrorCode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorCode.js","sourceRoot":"","sources":["../src/ErrorCode.ts"],"names":[],"mappings":";AAAA,2BAA2B;;AAE3B,IAAK,SAIJ;AAJD,WAAK,SAAS;IACZ,kCAAqB,CAAA;IACrB,gCAAmB,CAAA;IACnB,
|
|
1
|
+
{"version":3,"file":"ErrorCode.js","sourceRoot":"","sources":["../src/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,13 @@
|
|
|
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
|
+
ResponseType["Text"] = "Text";
|
|
10
|
+
ResponseType["JSON"] = "JSON";
|
|
11
|
+
})(ResponseType || (ResponseType = {}));
|
|
12
|
+
exports.default = ResponseType;
|
|
13
|
+
//# sourceMappingURL=ResponseType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponseType.js","sourceRoot":"","sources":["../src/ResponseType.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH,IAAK,YAGJ;AAHD,WAAK,YAAY;IACf,6BAAa,CAAA;IACb,6BAAa,CAAA;AACf,CAAC,EAHI,YAAY,KAAZ,YAAY,QAGhB;AAED,kBAAe,YAAY,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import ResponseType from './ResponseType';
|
|
1
2
|
/**
|
|
2
3
|
* Sends and retries an http request
|
|
3
4
|
* @author Gabriel Abrams
|
|
@@ -11,6 +12,7 @@
|
|
|
11
12
|
* fails
|
|
12
13
|
* @param [opts.sendCrossDomainCredentials=true if in development mode] if true,
|
|
13
14
|
* send cross-domain credentials even if not in dev mode
|
|
15
|
+
* @param [opts.responseType=ResponseType.JSON] expected response type
|
|
14
16
|
* @returns { body, status, headers } on success
|
|
15
17
|
*/
|
|
16
18
|
declare const sendRequest: (opts: {
|
|
@@ -25,6 +27,7 @@ declare const sendRequest: (opts: {
|
|
|
25
27
|
};
|
|
26
28
|
numRetries?: number;
|
|
27
29
|
sendCrossDomainCredentials?: boolean;
|
|
30
|
+
responseType?: ResponseType;
|
|
28
31
|
}) => Promise<{
|
|
29
32
|
body: any;
|
|
30
33
|
status: number;
|
package/lib/index.js
CHANGED
|
@@ -56,8 +56,7 @@ var qs_1 = __importDefault(require("qs"));
|
|
|
56
56
|
var caccl_error_1 = __importDefault(require("caccl-error"));
|
|
57
57
|
// Import shared types
|
|
58
58
|
var ErrorCode_1 = __importDefault(require("./ErrorCode"));
|
|
59
|
-
|
|
60
|
-
var thisIsDev = (process.env.NODE_ENV === 'development');
|
|
59
|
+
var ResponseType_1 = __importDefault(require("./ResponseType"));
|
|
61
60
|
/**
|
|
62
61
|
* Sends and retries an http request
|
|
63
62
|
* @author Gabriel Abrams
|
|
@@ -71,17 +70,19 @@ var thisIsDev = (process.env.NODE_ENV === 'development');
|
|
|
71
70
|
* fails
|
|
72
71
|
* @param [opts.sendCrossDomainCredentials=true if in development mode] if true,
|
|
73
72
|
* send cross-domain credentials even if not in dev mode
|
|
73
|
+
* @param [opts.responseType=ResponseType.JSON] expected response type
|
|
74
74
|
* @returns { body, status, headers } on success
|
|
75
75
|
*/
|
|
76
76
|
var sendRequest = function (opts) { return __awaiter(void 0, void 0, void 0, function () {
|
|
77
|
-
var sendCrossDomainCredentials, numRetries, method, params, stringifiedParams, query, url, headers, data, encodedData, response, responseHeaders_1, responseBody,
|
|
78
|
-
var
|
|
79
|
-
return __generator(this, function (
|
|
80
|
-
switch (
|
|
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) {
|
|
81
81
|
case 0:
|
|
82
|
+
thisIsDev = (opts.host === 'localhost:8080');
|
|
82
83
|
sendCrossDomainCredentials = !!(opts.sendCrossDomainCredentials
|
|
83
84
|
|| thisIsDev
|
|
84
|
-
|| ((
|
|
85
|
+
|| ((_b = opts.headers) === null || _b === void 0 ? void 0 : _b.credentials) === 'include');
|
|
85
86
|
numRetries = (opts.numRetries ? opts.numRetries : 0);
|
|
86
87
|
method = (opts.method || 'GET');
|
|
87
88
|
if (opts.params) {
|
|
@@ -128,9 +129,9 @@ var sendRequest = function (opts) { return __awaiter(void 0, void 0, void 0, fun
|
|
|
128
129
|
encodedData = JSON.stringify(data);
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
|
-
|
|
132
|
+
_c.label = 1;
|
|
132
133
|
case 1:
|
|
133
|
-
|
|
134
|
+
_c.trys.push([1, 11, , 12]);
|
|
134
135
|
return [4 /*yield*/, fetch(url, {
|
|
135
136
|
method: method,
|
|
136
137
|
mode: 'cors',
|
|
@@ -145,39 +146,46 @@ var sendRequest = function (opts) { return __awaiter(void 0, void 0, void 0, fun
|
|
|
145
146
|
referrerPolicy: (sendCrossDomainCredentials ? 'origin' : undefined),
|
|
146
147
|
})];
|
|
147
148
|
case 2:
|
|
148
|
-
response =
|
|
149
|
+
response = _c.sent();
|
|
149
150
|
responseHeaders_1 = {};
|
|
150
151
|
response.headers.forEach(function (value, key) {
|
|
151
152
|
responseHeaders_1[key] = value;
|
|
152
153
|
});
|
|
153
|
-
|
|
154
|
+
responseBody = void 0;
|
|
155
|
+
_c.label = 3;
|
|
154
156
|
case 3:
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}];
|
|
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()];
|
|
164
165
|
case 5:
|
|
165
|
-
|
|
166
|
-
|
|
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();
|
|
167
175
|
throw new caccl_error_1.default({
|
|
168
|
-
message: "
|
|
169
|
-
code: ErrorCode_1.default.
|
|
176
|
+
message: "Failed to parse response as ".concat(opts.responseType, ": ").concat(err_1 === null || err_1 === void 0 ? void 0 : err_1.message),
|
|
177
|
+
code: ErrorCode_1.default.ResponseParseError,
|
|
170
178
|
});
|
|
171
|
-
case
|
|
172
|
-
case
|
|
173
|
-
|
|
179
|
+
case 10: return [3 /*break*/, 12];
|
|
180
|
+
case 11:
|
|
181
|
+
err_2 = _c.sent();
|
|
174
182
|
// Request failed! Check if we have more attempts
|
|
175
183
|
if (numRetries > 0) {
|
|
176
184
|
// Update opts with one less retry
|
|
177
185
|
return [2 /*return*/, sendRequest(__assign(__assign({}, opts), { numRetries: opts.numRetries - 1 }))];
|
|
178
186
|
}
|
|
179
187
|
// Self-signed certificate error:
|
|
180
|
-
if (
|
|
188
|
+
if (err_2.message.includes('self signed certificate')) {
|
|
181
189
|
throw new caccl_error_1.default({
|
|
182
190
|
message: 'We refused to send a request because the receiver has self-signed certificates.',
|
|
183
191
|
code: ErrorCode_1.default.SelfSigned,
|
|
@@ -185,10 +193,10 @@ var sendRequest = function (opts) { return __awaiter(void 0, void 0, void 0, fun
|
|
|
185
193
|
}
|
|
186
194
|
// No tries left
|
|
187
195
|
throw new caccl_error_1.default({
|
|
188
|
-
message: "We encountered an error when trying to send a network request. If this issue persists, contact an admin. Error: ".concat(
|
|
196
|
+
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),
|
|
189
197
|
code: ErrorCode_1.default.NotConnected,
|
|
190
198
|
});
|
|
191
|
-
case
|
|
199
|
+
case 12: return [2 /*return*/];
|
|
192
200
|
}
|
|
193
201
|
});
|
|
194
202
|
}); };
|
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,0DAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "caccl-send-request",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.7",
|
|
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.6",
|
|
40
40
|
"qs": "^6.9.6"
|
|
41
41
|
}
|
|
42
42
|
}
|
package/src/ErrorCode.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -6,9 +6,7 @@ import CACCLError from 'caccl-error';
|
|
|
6
6
|
|
|
7
7
|
// Import shared types
|
|
8
8
|
import ErrorCode from './ErrorCode';
|
|
9
|
-
|
|
10
|
-
// Check if we're currently in developer mode
|
|
11
|
-
const thisIsDev = (process.env.NODE_ENV === 'development');
|
|
9
|
+
import ResponseType from './ResponseType';
|
|
12
10
|
|
|
13
11
|
/**
|
|
14
12
|
* Sends and retries an http request
|
|
@@ -23,6 +21,7 @@ const thisIsDev = (process.env.NODE_ENV === 'development');
|
|
|
23
21
|
* fails
|
|
24
22
|
* @param [opts.sendCrossDomainCredentials=true if in development mode] if true,
|
|
25
23
|
* send cross-domain credentials even if not in dev mode
|
|
24
|
+
* @param [opts.responseType=ResponseType.JSON] expected response type
|
|
26
25
|
* @returns { body, status, headers } on success
|
|
27
26
|
*/
|
|
28
27
|
const sendRequest = async (
|
|
@@ -34,12 +33,16 @@ const sendRequest = async (
|
|
|
34
33
|
headers?: { [k in string]: any },
|
|
35
34
|
numRetries?: number,
|
|
36
35
|
sendCrossDomainCredentials?: boolean,
|
|
36
|
+
responseType?: ResponseType,
|
|
37
37
|
},
|
|
38
38
|
): Promise<{
|
|
39
39
|
body: any,
|
|
40
40
|
status: number,
|
|
41
41
|
headers: { [k in string]: any },
|
|
42
42
|
}> => {
|
|
43
|
+
// Check if we're currently in developer mode
|
|
44
|
+
const thisIsDev = (opts.host === 'localhost:8080');
|
|
45
|
+
|
|
43
46
|
// Check if we should be including credentials
|
|
44
47
|
const sendCrossDomainCredentials = !!(
|
|
45
48
|
opts.sendCrossDomainCredentials
|
|
@@ -138,19 +141,22 @@ const sendRequest = async (
|
|
|
138
141
|
responseHeaders[key] = value;
|
|
139
142
|
});
|
|
140
143
|
|
|
141
|
-
// Process
|
|
144
|
+
// Process response based on responseType
|
|
145
|
+
let responseBody: any;
|
|
142
146
|
try {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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;
|
|
155
|
+
}
|
|
156
|
+
} catch (err) {
|
|
151
157
|
throw new CACCLError({
|
|
152
|
-
message: `
|
|
153
|
-
code: ErrorCode.
|
|
158
|
+
message: `Failed to parse response as ${opts.responseType}: ${(err as any)?.message}`,
|
|
159
|
+
code: ErrorCode.ResponseParseError,
|
|
154
160
|
});
|
|
155
161
|
}
|
|
156
162
|
} catch (err) {
|