@map-colonies/mc-utils 1.1.2 → 1.2.0
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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.2.0](https://github.com/MapColonies/mc-utils/compare/v1.1.2...v1.2.0) (2021-12-01)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* support basic auth and external headers ([#7](https://github.com/MapColonies/mc-utils/issues/7)) ([26b0c5d](https://github.com/MapColonies/mc-utils/commit/26b0c5d79ab38c6346de611dd415cf9e64bf1123))
|
|
11
|
+
|
|
5
12
|
### [1.1.2](https://github.com/MapColonies/mc-utils/compare/v1.1.0...v1.1.2) (2021-08-31)
|
|
6
13
|
|
|
7
14
|
### [1.1.1](https://github.com/MapColonies/mc-utils/compare/v1.1.0...v1.1.1) (2021-08-31)
|
package/README.md
CHANGED
|
@@ -18,19 +18,21 @@ this is general utilities for usage in Map Colonies project.
|
|
|
18
18
|
-```axiosOptions``` the options used by axios when sending requests
|
|
19
19
|
|
|
20
20
|
the class have the protected methods for sending http requests:
|
|
21
|
-
- ```protected async get<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
22
|
-
- ```protected async post<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
23
|
-
- ```protected async put<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
24
|
-
- ```protected async delete<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
25
|
-
- ```protected async head<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
26
|
-
- ```protected async options<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
27
|
-
- ```protected async patch<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
21
|
+
- ```protected async get<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
22
|
+
- ```protected async post<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
23
|
+
- ```protected async put<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
24
|
+
- ```protected async delete<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
25
|
+
- ```protected async head<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
26
|
+
- ```protected async options<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
27
|
+
- ```protected async patch<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
28
28
|
|
|
29
29
|
function parameters list:
|
|
30
30
|
- `url`: url path to send the request to (not including the base url).
|
|
31
31
|
- `body`: optional object to be used as request body (in relevant request types).
|
|
32
32
|
- `queryParams`: optional dictionary with query parameters and value.
|
|
33
33
|
- `retryConfig`: optional override to the class retry configuration.
|
|
34
|
+
- `auth`: optional basic authentication object (username, password).
|
|
35
|
+
- `headers`: optional headers to proceed to the request.
|
|
34
36
|
|
|
35
37
|
usage example:
|
|
36
38
|
```typescript
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AxiosRequestConfig } from 'axios';
|
|
1
|
+
import { AxiosBasicCredentials, AxiosRequestConfig } from 'axios';
|
|
2
2
|
import { IAxiosRetryConfig } from 'axios-retry';
|
|
3
3
|
import { ILogger } from '../../models/interfaces/iLogger';
|
|
4
4
|
export interface IHttpRetryConfig {
|
|
@@ -12,13 +12,13 @@ export declare abstract class HttpClient {
|
|
|
12
12
|
protected axiosOptions: AxiosRequestConfig;
|
|
13
13
|
private readonly axiosClient;
|
|
14
14
|
constructor(logger: ILogger, baseUrl: string, targetService?: string, retryConfig?: IHttpRetryConfig);
|
|
15
|
-
protected get<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
16
|
-
protected post<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
17
|
-
protected put<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
18
|
-
protected delete<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
19
|
-
protected head<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
20
|
-
protected options<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
21
|
-
protected patch<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
15
|
+
protected get<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
16
|
+
protected post<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
17
|
+
protected put<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
18
|
+
protected delete<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
19
|
+
protected head<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
20
|
+
protected options<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
21
|
+
protected patch<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
22
22
|
private wrapError;
|
|
23
23
|
private parseConfig;
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/communication/http/httpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAA6B,kBAAkB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/communication/http/httpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,7 +97,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
97
97
|
};
|
|
98
98
|
axios_retry_1.default(this.axiosClient, axiosRetryConfig);
|
|
99
99
|
}
|
|
100
|
-
HttpClient.prototype.get = function (url, queryParams, retryConfig) {
|
|
100
|
+
HttpClient.prototype.get = function (url, queryParams, retryConfig, auth, headers) {
|
|
101
101
|
return __awaiter(this, void 0, void 0, function () {
|
|
102
102
|
var reqConfig, res, err_1, error;
|
|
103
103
|
return __generator(this, function (_a) {
|
|
@@ -106,6 +106,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
106
106
|
_a.trys.push([0, 2, , 3]);
|
|
107
107
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : __assign({}, this.axiosOptions);
|
|
108
108
|
reqConfig.params = queryParams;
|
|
109
|
+
reqConfig.auth = auth;
|
|
110
|
+
reqConfig.headers = headers;
|
|
109
111
|
return [4 /*yield*/, this.axiosClient.get(url, reqConfig)];
|
|
110
112
|
case 1:
|
|
111
113
|
res = _a.sent();
|
|
@@ -119,7 +121,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
119
121
|
});
|
|
120
122
|
});
|
|
121
123
|
};
|
|
122
|
-
HttpClient.prototype.post = function (url, body, queryParams, retryConfig) {
|
|
124
|
+
HttpClient.prototype.post = function (url, body, queryParams, retryConfig, auth, headers) {
|
|
123
125
|
return __awaiter(this, void 0, void 0, function () {
|
|
124
126
|
var reqConfig, res, err_2, error;
|
|
125
127
|
return __generator(this, function (_a) {
|
|
@@ -128,6 +130,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
128
130
|
_a.trys.push([0, 2, , 3]);
|
|
129
131
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
130
132
|
reqConfig.params = queryParams;
|
|
133
|
+
reqConfig.auth = auth;
|
|
134
|
+
reqConfig.headers = headers;
|
|
131
135
|
return [4 /*yield*/, this.axiosClient.post(url, body, reqConfig)];
|
|
132
136
|
case 1:
|
|
133
137
|
res = _a.sent();
|
|
@@ -141,7 +145,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
141
145
|
});
|
|
142
146
|
});
|
|
143
147
|
};
|
|
144
|
-
HttpClient.prototype.put = function (url, body, queryParams, retryConfig) {
|
|
148
|
+
HttpClient.prototype.put = function (url, body, queryParams, retryConfig, auth, headers) {
|
|
145
149
|
return __awaiter(this, void 0, void 0, function () {
|
|
146
150
|
var reqConfig, res, err_3, error;
|
|
147
151
|
return __generator(this, function (_a) {
|
|
@@ -150,6 +154,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
150
154
|
_a.trys.push([0, 2, , 3]);
|
|
151
155
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
152
156
|
reqConfig.params = queryParams;
|
|
157
|
+
reqConfig.auth = auth;
|
|
158
|
+
reqConfig.headers = headers;
|
|
153
159
|
return [4 /*yield*/, this.axiosClient.put(url, body, reqConfig)];
|
|
154
160
|
case 1:
|
|
155
161
|
res = _a.sent();
|
|
@@ -163,7 +169,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
163
169
|
});
|
|
164
170
|
});
|
|
165
171
|
};
|
|
166
|
-
HttpClient.prototype.delete = function (url, queryParams, retryConfig) {
|
|
172
|
+
HttpClient.prototype.delete = function (url, queryParams, retryConfig, auth, headers) {
|
|
167
173
|
return __awaiter(this, void 0, void 0, function () {
|
|
168
174
|
var reqConfig, res, err_4, error;
|
|
169
175
|
return __generator(this, function (_a) {
|
|
@@ -172,6 +178,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
172
178
|
_a.trys.push([0, 2, , 3]);
|
|
173
179
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
174
180
|
reqConfig.params = queryParams;
|
|
181
|
+
reqConfig.auth = auth;
|
|
182
|
+
reqConfig.headers = headers;
|
|
175
183
|
return [4 /*yield*/, this.axiosClient.delete(url, reqConfig)];
|
|
176
184
|
case 1:
|
|
177
185
|
res = _a.sent();
|
|
@@ -185,7 +193,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
185
193
|
});
|
|
186
194
|
});
|
|
187
195
|
};
|
|
188
|
-
HttpClient.prototype.head = function (url, queryParams, retryConfig) {
|
|
196
|
+
HttpClient.prototype.head = function (url, queryParams, retryConfig, auth, headers) {
|
|
189
197
|
return __awaiter(this, void 0, void 0, function () {
|
|
190
198
|
var reqConfig, res, err_5, error;
|
|
191
199
|
return __generator(this, function (_a) {
|
|
@@ -194,6 +202,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
194
202
|
_a.trys.push([0, 2, , 3]);
|
|
195
203
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
196
204
|
reqConfig.params = queryParams;
|
|
205
|
+
reqConfig.auth = auth;
|
|
206
|
+
reqConfig.headers = headers;
|
|
197
207
|
return [4 /*yield*/, this.axiosClient.head(url, reqConfig)];
|
|
198
208
|
case 1:
|
|
199
209
|
res = _a.sent();
|
|
@@ -207,7 +217,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
207
217
|
});
|
|
208
218
|
});
|
|
209
219
|
};
|
|
210
|
-
HttpClient.prototype.options = function (url, queryParams, retryConfig) {
|
|
220
|
+
HttpClient.prototype.options = function (url, queryParams, retryConfig, auth, headers) {
|
|
211
221
|
return __awaiter(this, void 0, void 0, function () {
|
|
212
222
|
var reqConfig, res, err_6, error;
|
|
213
223
|
return __generator(this, function (_a) {
|
|
@@ -216,6 +226,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
216
226
|
_a.trys.push([0, 2, , 3]);
|
|
217
227
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
218
228
|
reqConfig.params = queryParams;
|
|
229
|
+
reqConfig.auth = auth;
|
|
230
|
+
reqConfig.headers = headers;
|
|
219
231
|
return [4 /*yield*/, this.axiosClient.options(url, reqConfig)];
|
|
220
232
|
case 1:
|
|
221
233
|
res = _a.sent();
|
|
@@ -229,7 +241,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
229
241
|
});
|
|
230
242
|
});
|
|
231
243
|
};
|
|
232
|
-
HttpClient.prototype.patch = function (url, body, queryParams, retryConfig) {
|
|
244
|
+
HttpClient.prototype.patch = function (url, body, queryParams, retryConfig, auth, headers) {
|
|
233
245
|
return __awaiter(this, void 0, void 0, function () {
|
|
234
246
|
var reqConfig, res, err_7, error;
|
|
235
247
|
return __generator(this, function (_a) {
|
|
@@ -238,6 +250,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
238
250
|
_a.trys.push([0, 2, , 3]);
|
|
239
251
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
240
252
|
reqConfig.params = queryParams;
|
|
253
|
+
reqConfig.auth = auth;
|
|
254
|
+
reqConfig.headers = headers;
|
|
241
255
|
return [4 /*yield*/, this.axiosClient.patch(url, body, reqConfig)];
|
|
242
256
|
case 1:
|
|
243
257
|
res = _a.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../../src/communication/http/httpClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../../src/communication/http/httpClient.ts"],"names":[],"mappings":"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"}
|