@pristine-ts/http 0.0.139 → 0.0.143
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/dist/lib/cjs/clients/http.client.js +10 -1
- package/dist/lib/cjs/clients/http.client.js.map +1 -1
- package/dist/lib/cjs/enums/response-type.enum.js +3 -0
- package/dist/lib/cjs/enums/response-type.enum.js.map +1 -1
- package/dist/lib/cjs/errors/errors.js +1 -0
- package/dist/lib/cjs/errors/errors.js.map +1 -1
- package/dist/lib/cjs/utils/math.utils.js +6 -1
- package/dist/lib/cjs/utils/math.utils.js.map +1 -1
- package/dist/lib/cjs/wrappers/http.wrapper.js +3 -0
- package/dist/lib/cjs/wrappers/http.wrapper.js.map +1 -1
- package/dist/lib/esm/clients/http.client.js +10 -1
- package/dist/lib/esm/clients/http.client.js.map +1 -1
- package/dist/lib/esm/enums/response-type.enum.js +3 -0
- package/dist/lib/esm/enums/response-type.enum.js.map +1 -1
- package/dist/lib/esm/errors/errors.js +1 -0
- package/dist/lib/esm/errors/errors.js.map +1 -1
- package/dist/lib/esm/utils/math.utils.js +6 -1
- package/dist/lib/esm/utils/math.utils.js.map +1 -1
- package/dist/lib/esm/wrappers/http.wrapper.js +3 -0
- package/dist/lib/esm/wrappers/http.wrapper.js.map +1 -1
- package/dist/types/clients/http.client.d.ts +10 -1
- package/dist/types/enums/response-type.enum.d.ts +3 -0
- package/dist/types/errors/errors.d.ts +1 -0
- package/dist/types/interfaces/http-client.interface.d.ts +9 -0
- package/dist/types/interfaces/http-request-interceptor.interface.d.ts +13 -0
- package/dist/types/interfaces/http-request.interface.d.ts +15 -0
- package/dist/types/interfaces/http-response-interceptor.interface.d.ts +14 -0
- package/dist/types/interfaces/http-response.interface.d.ts +15 -0
- package/dist/types/interfaces/http-wrapper.interface.d.ts +7 -0
- package/dist/types/options/http-request.options..d.ts +18 -0
- package/dist/types/utils/math.utils.d.ts +6 -1
- package/dist/types/wrappers/http.wrapper.d.ts +3 -0
- package/package.json +4 -4
|
@@ -32,7 +32,16 @@ const lodash_1 = require("lodash");
|
|
|
32
32
|
const common_1 = require("@pristine-ts/common");
|
|
33
33
|
const math_utils_1 = require("../utils/math.utils");
|
|
34
34
|
const http_client_response_redirect_error_1 = require("../errors/http-client-response-redirect.error");
|
|
35
|
+
/**
|
|
36
|
+
* This service is an http client for any http request you need to make outside of Pristine.
|
|
37
|
+
*/
|
|
35
38
|
let HttpClient = class HttpClient {
|
|
39
|
+
/**
|
|
40
|
+
* This service is an http client for any http request you need to make outside of Pristine.
|
|
41
|
+
* @param httpWrapper The wrapper around NodeJS http.
|
|
42
|
+
* @param httpRequestInterceptors The interceptors to run before sending the request. All services with the tag ServiceDefinitionTagEnum.HttpRequestInterceptor will be automatically injected here.
|
|
43
|
+
* @param httpResponseInterceptors The interceptors to run when receiving the reponse. All services with the tag ServiceDefinitionTagEnum.HttpResponseInterceptor will be automatically injected here.
|
|
44
|
+
*/
|
|
36
45
|
constructor(httpWrapper, httpRequestInterceptors = [], httpResponseInterceptors = []) {
|
|
37
46
|
this.httpWrapper = httpWrapper;
|
|
38
47
|
this.httpRequestInterceptors = httpRequestInterceptors;
|
|
@@ -48,7 +57,7 @@ let HttpClient = class HttpClient {
|
|
|
48
57
|
};
|
|
49
58
|
}
|
|
50
59
|
/**
|
|
51
|
-
* This method is the entry point where the request is passed as an argument and the response is
|
|
60
|
+
* This method is the entry point where the request is passed as an argument and the response is returned.
|
|
52
61
|
*
|
|
53
62
|
* @param request
|
|
54
63
|
* @param options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.client.js","sourceRoot":"","sources":["../../../../src/clients/http.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAuD;AAIvD,0DAA4B;AAC5B,oEAA6D;AAE7D,mCAA8B;AAC9B,gDAAkE;AAGlE,oDAA8C;AAC9C,uGAA8F;
|
|
1
|
+
{"version":3,"file":"http.client.js","sourceRoot":"","sources":["../../../../src/clients/http.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ResponseTypeEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Enum for the type of response we can ask for when sending an http request.
|
|
6
|
+
*/
|
|
4
7
|
var ResponseTypeEnum;
|
|
5
8
|
(function (ResponseTypeEnum) {
|
|
6
9
|
ResponseTypeEnum["Raw"] = "RAW";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-type.enum.js","sourceRoot":"","sources":["../../../../src/enums/response-type.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,+BAAW,CAAA;IACX,iCAAa,CAAA;AACjB,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B"}
|
|
1
|
+
{"version":3,"file":"response-type.enum.js","sourceRoot":"","sources":["../../../../src/enums/response-type.enum.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,+BAAW,CAAA;IACX,iCAAa,CAAA;AACjB,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B"}
|
|
@@ -10,5 +10,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./http-client-request.error"), exports);
|
|
13
14
|
__exportStar(require("./http-client-response-redirect.error"), exports);
|
|
14
15
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wEAAsD"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8DAA4C;AAC5C,wEAAsD"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MathUtils = void 0;
|
|
4
4
|
class MathUtils {
|
|
5
5
|
/**
|
|
6
|
-
* This method returns
|
|
6
|
+
* This method returns a value for the exponentialBackoffWithJitter.
|
|
7
7
|
* src:
|
|
8
8
|
* - https://docs.microsoft.com/en-us/javascript/api/azure-iot-common/exponentialbackoffwithjitterparameters?view=azure-node-latest
|
|
9
9
|
* - https://docs.microsoft.com/en-us/javascript/api/azure-iot-common/exponentialbackoffwithjitter?view=azure-node-latest#ExponentialBackOffWithJitter_boolean__ErrorFilter_
|
|
@@ -17,6 +17,11 @@ class MathUtils {
|
|
|
17
17
|
static exponentialBackoffWithJitter(retryCount, initialRetryInterval = 100, maximumRetryInterval = 10000, minimumRetryInterval = 100, maximumJitterFactor = 0.5, minimumJitterFactor = 0.25) {
|
|
18
18
|
return Math.min(minimumRetryInterval + Math.pow(2, (retryCount - 1) - 1) * MathUtils.random(initialRetryInterval * (1 - maximumJitterFactor), initialRetryInterval * (1 - minimumJitterFactor)), maximumRetryInterval);
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Returns a random number between min (inclusive) and max (exclusive).
|
|
22
|
+
* @param min The minimum number the random can be (included).
|
|
23
|
+
* @param max The maximum number the random can be (excluded).
|
|
24
|
+
*/
|
|
20
25
|
static random(min, max) {
|
|
21
26
|
return Math.random() * (max - min) + min;
|
|
22
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.utils.js","sourceRoot":"","sources":["../../../../src/utils/math.utils.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAClB;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,4BAA4B,CAAC,UAAkB,EAClB,oBAAoB,GAAG,GAAG,EAC1B,oBAAoB,GAAG,KAAK,EAC5B,oBAAoB,GAAG,GAAG,EAC1B,mBAAmB,GAAG,GAAG,EACzB,mBAAmB,GAAG,IAAI;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,oBAAoB,GAAE,CAAC,CAAC,GAAG,mBAAmB,CAAC,EAAE,oBAAoB,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,EACtL,oBAAoB,CAAC,CAAA;IAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"math.utils.js","sourceRoot":"","sources":["../../../../src/utils/math.utils.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAClB;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,4BAA4B,CAAC,UAAkB,EAClB,oBAAoB,GAAG,GAAG,EAC1B,oBAAoB,GAAG,KAAK,EAC5B,oBAAoB,GAAG,GAAG,EAC1B,mBAAmB,GAAG,GAAG,EACzB,mBAAmB,GAAG,IAAI;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,oBAAoB,GAAE,CAAC,CAAC,GAAG,mBAAmB,CAAC,EAAE,oBAAoB,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,EACtL,oBAAoB,CAAC,CAAA;IAC7B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,GAAW,EAAE,GAAW;QACzC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAC,GAAG,CAAC;IACzC,CAAC;CACJ;AA/BD,8BA+BC"}
|
|
@@ -26,6 +26,9 @@ const url_parse_1 = __importDefault(require("url-parse"));
|
|
|
26
26
|
const common_1 = require("@pristine-ts/common");
|
|
27
27
|
const http_client_request_error_1 = require("../errors/http-client-request.error");
|
|
28
28
|
const querystring_1 = __importDefault(require("querystring"));
|
|
29
|
+
/**
|
|
30
|
+
* This class is a wrapper around the NodeJS http library for ease of use and testability.
|
|
31
|
+
*/
|
|
29
32
|
let HttpWrapper = class HttpWrapper {
|
|
30
33
|
/**
|
|
31
34
|
* This method directly executes the Http or Https request and returns the response.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.wrapper.js","sourceRoot":"","sources":["../../../../src/wrappers/http.wrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,uCAAoC;AAIpC,+BAA6E;AAC7E,iCAA8C;AAC9C,0DAA4B;AAC5B,gDAAwC;AACxC,mFAA2E;AAE3E,8DAAsC;
|
|
1
|
+
{"version":3,"file":"http.wrapper.js","sourceRoot":"","sources":["../../../../src/wrappers/http.wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,16 @@ import { assign } from "lodash";
|
|
|
26
26
|
import { ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
27
27
|
import { MathUtils } from "../utils/math.utils";
|
|
28
28
|
import { HttpClientResponseRedirectError } from "../errors/http-client-response-redirect.error";
|
|
29
|
+
/**
|
|
30
|
+
* This service is an http client for any http request you need to make outside of Pristine.
|
|
31
|
+
*/
|
|
29
32
|
let HttpClient = class HttpClient {
|
|
33
|
+
/**
|
|
34
|
+
* This service is an http client for any http request you need to make outside of Pristine.
|
|
35
|
+
* @param httpWrapper The wrapper around NodeJS http.
|
|
36
|
+
* @param httpRequestInterceptors The interceptors to run before sending the request. All services with the tag ServiceDefinitionTagEnum.HttpRequestInterceptor will be automatically injected here.
|
|
37
|
+
* @param httpResponseInterceptors The interceptors to run when receiving the reponse. All services with the tag ServiceDefinitionTagEnum.HttpResponseInterceptor will be automatically injected here.
|
|
38
|
+
*/
|
|
30
39
|
constructor(httpWrapper, httpRequestInterceptors = [], httpResponseInterceptors = []) {
|
|
31
40
|
this.httpWrapper = httpWrapper;
|
|
32
41
|
this.httpRequestInterceptors = httpRequestInterceptors;
|
|
@@ -42,7 +51,7 @@ let HttpClient = class HttpClient {
|
|
|
42
51
|
};
|
|
43
52
|
}
|
|
44
53
|
/**
|
|
45
|
-
* This method is the entry point where the request is passed as an argument and the response is
|
|
54
|
+
* This method is the entry point where the request is passed as an argument and the response is returned.
|
|
46
55
|
*
|
|
47
56
|
* @param request
|
|
48
57
|
* @param options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.client.js","sourceRoot":"","sources":["../../../../src/clients/http.client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAIvD,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAC,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAC,+BAA+B,EAAC,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"http.client.js","sourceRoot":"","sources":["../../../../src/clients/http.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-type.enum.js","sourceRoot":"","sources":["../../../../src/enums/response-type.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,+BAAW,CAAA;IACX,iCAAa,CAAA;AACjB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
|
|
1
|
+
{"version":3,"file":"response-type.enum.js","sourceRoot":"","sources":["../../../../src/enums/response-type.enum.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,+BAAW,CAAA;IACX,iCAAa,CAAA;AACjB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export class MathUtils {
|
|
2
2
|
/**
|
|
3
|
-
* This method returns
|
|
3
|
+
* This method returns a value for the exponentialBackoffWithJitter.
|
|
4
4
|
* src:
|
|
5
5
|
* - https://docs.microsoft.com/en-us/javascript/api/azure-iot-common/exponentialbackoffwithjitterparameters?view=azure-node-latest
|
|
6
6
|
* - https://docs.microsoft.com/en-us/javascript/api/azure-iot-common/exponentialbackoffwithjitter?view=azure-node-latest#ExponentialBackOffWithJitter_boolean__ErrorFilter_
|
|
@@ -14,6 +14,11 @@ export class MathUtils {
|
|
|
14
14
|
static exponentialBackoffWithJitter(retryCount, initialRetryInterval = 100, maximumRetryInterval = 10000, minimumRetryInterval = 100, maximumJitterFactor = 0.5, minimumJitterFactor = 0.25) {
|
|
15
15
|
return Math.min(minimumRetryInterval + Math.pow(2, (retryCount - 1) - 1) * MathUtils.random(initialRetryInterval * (1 - maximumJitterFactor), initialRetryInterval * (1 - minimumJitterFactor)), maximumRetryInterval);
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns a random number between min (inclusive) and max (exclusive).
|
|
19
|
+
* @param min The minimum number the random can be (included).
|
|
20
|
+
* @param max The maximum number the random can be (excluded).
|
|
21
|
+
*/
|
|
17
22
|
static random(min, max) {
|
|
18
23
|
return Math.random() * (max - min) + min;
|
|
19
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.utils.js","sourceRoot":"","sources":["../../../../src/utils/math.utils.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IAClB;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,4BAA4B,CAAC,UAAkB,EAClB,oBAAoB,GAAG,GAAG,EAC1B,oBAAoB,GAAG,KAAK,EAC5B,oBAAoB,GAAG,GAAG,EAC1B,mBAAmB,GAAG,GAAG,EACzB,mBAAmB,GAAG,IAAI;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,oBAAoB,GAAE,CAAC,CAAC,GAAG,mBAAmB,CAAC,EAAE,oBAAoB,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,EACtL,oBAAoB,CAAC,CAAA;IAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"math.utils.js","sourceRoot":"","sources":["../../../../src/utils/math.utils.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IAClB;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,4BAA4B,CAAC,UAAkB,EAClB,oBAAoB,GAAG,GAAG,EAC1B,oBAAoB,GAAG,KAAK,EAC5B,oBAAoB,GAAG,GAAG,EAC1B,mBAAmB,GAAG,GAAG,EACzB,mBAAmB,GAAG,IAAI;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,oBAAoB,GAAE,CAAC,CAAC,GAAG,mBAAmB,CAAC,EAAE,oBAAoB,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,EACtL,oBAAoB,CAAC,CAAA;IAC7B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,GAAW,EAAE,GAAW;QACzC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAC,GAAG,CAAC;IACzC,CAAC;CACJ"}
|
|
@@ -20,6 +20,9 @@ import Url from 'url-parse';
|
|
|
20
20
|
import { tag } from "@pristine-ts/common";
|
|
21
21
|
import { HttpClientRequestError } from "../errors/http-client-request.error";
|
|
22
22
|
import querystring from "querystring";
|
|
23
|
+
/**
|
|
24
|
+
* This class is a wrapper around the NodeJS http library for ease of use and testability.
|
|
25
|
+
*/
|
|
23
26
|
let HttpWrapper = class HttpWrapper {
|
|
24
27
|
/**
|
|
25
28
|
* This method directly executes the Http or Https request and returns the response.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.wrapper.js","sourceRoot":"","sources":["../../../../src/wrappers/http.wrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAIpC,OAAO,EAAkB,OAAO,IAAI,WAAW,EAAiB,MAAM,MAAM,CAAC;AAC7E,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,OAAO,CAAC;AAC9C,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,EAAC,GAAG,EAAC,MAAM,qBAAqB,CAAC;AACxC,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAE3E,OAAO,WAAW,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"http.wrapper.js","sourceRoot":"","sources":["../../../../src/wrappers/http.wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,14 +5,23 @@ import { HttpRequestOptions } from "../options/http-request.options.";
|
|
|
5
5
|
import { HttpRequestInterceptorInterface } from "../interfaces/http-request-interceptor.interface";
|
|
6
6
|
import { HttpResponseInterceptorInterface } from "../interfaces/http-response-interceptor.interface";
|
|
7
7
|
import { HttpWrapperInterface } from "../interfaces/http-wrapper.interface";
|
|
8
|
+
/**
|
|
9
|
+
* This service is an http client for any http request you need to make outside of Pristine.
|
|
10
|
+
*/
|
|
8
11
|
export declare class HttpClient implements HttpClientInterface {
|
|
9
12
|
private readonly httpWrapper;
|
|
10
13
|
private readonly httpRequestInterceptors;
|
|
11
14
|
private readonly httpResponseInterceptors;
|
|
12
15
|
defaultOptions: HttpRequestOptions;
|
|
16
|
+
/**
|
|
17
|
+
* This service is an http client for any http request you need to make outside of Pristine.
|
|
18
|
+
* @param httpWrapper The wrapper around NodeJS http.
|
|
19
|
+
* @param httpRequestInterceptors The interceptors to run before sending the request. All services with the tag ServiceDefinitionTagEnum.HttpRequestInterceptor will be automatically injected here.
|
|
20
|
+
* @param httpResponseInterceptors The interceptors to run when receiving the reponse. All services with the tag ServiceDefinitionTagEnum.HttpResponseInterceptor will be automatically injected here.
|
|
21
|
+
*/
|
|
13
22
|
constructor(httpWrapper: HttpWrapperInterface, httpRequestInterceptors?: HttpRequestInterceptorInterface[], httpResponseInterceptors?: HttpResponseInterceptorInterface[]);
|
|
14
23
|
/**
|
|
15
|
-
* This method is the entry point where the request is passed as an argument and the response is
|
|
24
|
+
* This method is the entry point where the request is passed as an argument and the response is returned.
|
|
16
25
|
*
|
|
17
26
|
* @param request
|
|
18
27
|
* @param options
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { HttpRequestInterface } from "./http-request.interface";
|
|
2
2
|
import { HttpResponseInterface } from "./http-response.interface";
|
|
3
3
|
import { HttpRequestOptions } from "../options/http-request.options.";
|
|
4
|
+
/**
|
|
5
|
+
* The HttpClientInterface Interface defines the methods that an Http client must implement.
|
|
6
|
+
*/
|
|
4
7
|
export interface HttpClientInterface {
|
|
8
|
+
/**
|
|
9
|
+
* This method is the entry point where the request is passed as an argument and the response is returned.
|
|
10
|
+
*
|
|
11
|
+
* @param request
|
|
12
|
+
* @param options
|
|
13
|
+
*/
|
|
5
14
|
request(request: HttpRequestInterface, options?: HttpRequestOptions): Promise<HttpResponseInterface>;
|
|
6
15
|
}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { HttpRequestInterface } from "./http-request.interface";
|
|
2
2
|
import { HttpRequestOptions } from "../options/http-request.options.";
|
|
3
|
+
/**
|
|
4
|
+
* The Http Request Interceptor Interface defines the methods that an Http Request Interceptor must implement. This
|
|
5
|
+
* interceptor is called before the http request is sent.
|
|
6
|
+
*/
|
|
3
7
|
export interface HttpRequestInterceptorInterface {
|
|
8
|
+
/**
|
|
9
|
+
* This method receives an http request object and must return a transformed http request object. If you don't want to
|
|
10
|
+
* manipulate the request object (when logging for example), juste resolve a promise with the http request passed to this method.
|
|
11
|
+
*
|
|
12
|
+
* If you force to never resolve the promise, the execution will stall. Be careful.
|
|
13
|
+
*
|
|
14
|
+
* @param request
|
|
15
|
+
* @param options
|
|
16
|
+
*/
|
|
4
17
|
interceptRequest(request: HttpRequestInterface, options: HttpRequestOptions): Promise<HttpRequestInterface>;
|
|
5
18
|
}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { HttpMethod } from "@pristine-ts/common";
|
|
3
|
+
/**
|
|
4
|
+
* This interface defines what is an http request.
|
|
5
|
+
*/
|
|
3
6
|
export interface HttpRequestInterface {
|
|
7
|
+
/**
|
|
8
|
+
* The http method to use when making the request.
|
|
9
|
+
*/
|
|
4
10
|
httpMethod: string | HttpMethod;
|
|
11
|
+
/**
|
|
12
|
+
* The url where to make the request.
|
|
13
|
+
*/
|
|
5
14
|
url: string;
|
|
15
|
+
/**
|
|
16
|
+
* The headers of the request.
|
|
17
|
+
*/
|
|
6
18
|
headers?: {
|
|
7
19
|
[key: string]: string;
|
|
8
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* The body of the request.
|
|
23
|
+
*/
|
|
9
24
|
body?: string | Buffer | Uint8Array;
|
|
10
25
|
}
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import { HttpRequestInterface } from "./http-request.interface";
|
|
2
2
|
import { HttpResponseInterface } from "./http-response.interface";
|
|
3
3
|
import { HttpRequestOptions } from "../options/http-request.options.";
|
|
4
|
+
/**
|
|
5
|
+
* The Http Response Interceptor Interface defines the methods that an Http Response Interceptor must implement. This
|
|
6
|
+
* interceptor is called when receiving a response to an http request before returning the final response to the caller.
|
|
7
|
+
*/
|
|
4
8
|
export interface HttpResponseInterceptorInterface {
|
|
9
|
+
/**
|
|
10
|
+
* This method receives an http response object and the associated request and must return a transformed http response object.
|
|
11
|
+
* If you don't want to manipulate the response object (when logging for example), juste resolve a promise with the response passed to this method.
|
|
12
|
+
*
|
|
13
|
+
* If you force to never resolve the promise, the execution will stall. Be careful.
|
|
14
|
+
*
|
|
15
|
+
* @param response
|
|
16
|
+
* @param options
|
|
17
|
+
* @param request
|
|
18
|
+
*/
|
|
5
19
|
interceptResponse(request: HttpRequestInterface, options: HttpRequestOptions, response: HttpResponseInterface): Promise<HttpResponseInterface>;
|
|
6
20
|
}
|
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
import { HttpRequestInterface } from "./http-request.interface";
|
|
2
|
+
/**
|
|
3
|
+
* This interface defines what is an http response.
|
|
4
|
+
*/
|
|
2
5
|
export interface HttpResponseInterface {
|
|
6
|
+
/**
|
|
7
|
+
* The status code of the response
|
|
8
|
+
*/
|
|
3
9
|
status: number;
|
|
10
|
+
/**
|
|
11
|
+
* The headers of the response
|
|
12
|
+
*/
|
|
4
13
|
headers?: {
|
|
5
14
|
[key: string]: string;
|
|
6
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* The body of the response.
|
|
18
|
+
*/
|
|
7
19
|
body?: any;
|
|
20
|
+
/**
|
|
21
|
+
* The request that was sent for getting this response.
|
|
22
|
+
*/
|
|
8
23
|
request: HttpRequestInterface;
|
|
9
24
|
}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { HttpRequestInterface } from "./http-request.interface";
|
|
2
2
|
import { HttpResponseInterface } from "./http-response.interface";
|
|
3
|
+
/**
|
|
4
|
+
* The HttpWrapper Interface defines the methods that an Http wrapper must implement.
|
|
5
|
+
*/
|
|
3
6
|
export interface HttpWrapperInterface {
|
|
7
|
+
/**
|
|
8
|
+
* This method actually executes and http request.
|
|
9
|
+
* @param request
|
|
10
|
+
*/
|
|
4
11
|
executeRequest(request: HttpRequestInterface): Promise<HttpResponseInterface>;
|
|
5
12
|
}
|
|
@@ -1,10 +1,28 @@
|
|
|
1
1
|
import { ResponseTypeEnum } from "../enums/response-type.enum";
|
|
2
2
|
import { HttpRequestInterface } from "../interfaces/http-request.interface";
|
|
3
3
|
import { HttpResponseInterface } from "../interfaces/http-response.interface";
|
|
4
|
+
/**
|
|
5
|
+
* This interface defines what is an Http request options.
|
|
6
|
+
*/
|
|
4
7
|
export interface HttpRequestOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The response type that is expected. Either raw or parsed as a JSON.
|
|
10
|
+
*/
|
|
5
11
|
responseType?: ResponseTypeEnum;
|
|
12
|
+
/**
|
|
13
|
+
* Whether or not to follow redirects when receiving a response that has a redirect status code.
|
|
14
|
+
*/
|
|
6
15
|
followRedirects?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The maximum number of redirects to follow.
|
|
18
|
+
*/
|
|
7
19
|
maximumNumberOfRedirects?: number;
|
|
20
|
+
/**
|
|
21
|
+
* A function that evaluates whether or not the request should be retried when getting an error in the response.
|
|
22
|
+
*/
|
|
8
23
|
isRetryable?: ((httpRequestInterface: HttpRequestInterface, httpResponseInterface: HttpResponseInterface) => boolean);
|
|
24
|
+
/**
|
|
25
|
+
* The maximum number of time a request can be retried.
|
|
26
|
+
*/
|
|
9
27
|
maximumNumberOfRetries?: number;
|
|
10
28
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare class MathUtils {
|
|
2
2
|
/**
|
|
3
|
-
* This method returns
|
|
3
|
+
* This method returns a value for the exponentialBackoffWithJitter.
|
|
4
4
|
* src:
|
|
5
5
|
* - https://docs.microsoft.com/en-us/javascript/api/azure-iot-common/exponentialbackoffwithjitterparameters?view=azure-node-latest
|
|
6
6
|
* - https://docs.microsoft.com/en-us/javascript/api/azure-iot-common/exponentialbackoffwithjitter?view=azure-node-latest#ExponentialBackOffWithJitter_boolean__ErrorFilter_
|
|
@@ -12,5 +12,10 @@ export declare class MathUtils {
|
|
|
12
12
|
* @param minimumJitterFactor
|
|
13
13
|
*/
|
|
14
14
|
static exponentialBackoffWithJitter(retryCount: number, initialRetryInterval?: number, maximumRetryInterval?: number, minimumRetryInterval?: number, maximumJitterFactor?: number, minimumJitterFactor?: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* Returns a random number between min (inclusive) and max (exclusive).
|
|
17
|
+
* @param min The minimum number the random can be (included).
|
|
18
|
+
* @param max The maximum number the random can be (excluded).
|
|
19
|
+
*/
|
|
15
20
|
static random(min: number, max: number): number;
|
|
16
21
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { HttpRequestInterface } from "../interfaces/http-request.interface";
|
|
2
2
|
import { HttpResponseInterface } from "../interfaces/http-response.interface";
|
|
3
3
|
import { HttpWrapperInterface } from "../interfaces/http-wrapper.interface";
|
|
4
|
+
/**
|
|
5
|
+
* This class is a wrapper around the NodeJS http library for ease of use and testability.
|
|
6
|
+
*/
|
|
4
7
|
export declare class HttpWrapper implements HttpWrapperInterface {
|
|
5
8
|
/**
|
|
6
9
|
* This method directly executes the Http or Https request and returns the response.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pristine-ts/http",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.143",
|
|
4
4
|
"description": "",
|
|
5
5
|
"module": "dist/lib/esm/http.module.js",
|
|
6
6
|
"main": "dist/lib/cjs/http.module.js",
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"dist"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@pristine-ts/common": "^0.0.
|
|
18
|
-
"@pristine-ts/logging": "^0.0.
|
|
17
|
+
"@pristine-ts/common": "^0.0.143",
|
|
18
|
+
"@pristine-ts/logging": "^0.0.143",
|
|
19
19
|
"lodash": "^4.17.21",
|
|
20
20
|
"url-parse": "^1.4.7"
|
|
21
21
|
},
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"src/*.{js,ts}"
|
|
59
59
|
]
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "b755c7c2a01ad7fce56c6050b4c09cea05afd5ff"
|
|
62
62
|
}
|