@thisisagile/easy 12.1.11 → 12.3.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/dist/http/CacheControl.d.ts +18 -6
- package/dist/http/CacheControl.js +39 -9
- package/dist/http/CacheControl.js.map +1 -1
- package/dist/http/RequestOptions.d.ts +4 -0
- package/dist/http/RequestOptions.js +5 -0
- package/dist/http/RequestOptions.js.map +1 -1
- package/dist/services/AxiosProvider.js +1 -0
- package/dist/services/AxiosProvider.js.map +1 -1
- package/package.json +2 -2
- package/src/http/CacheControl.ts +56 -9
- package/src/http/RequestOptions.ts +7 -0
- package/src/services/AxiosProvider.ts +1 -0
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
export declare class CacheControl {
|
|
2
|
-
private age;
|
|
3
|
-
private stale?;
|
|
4
2
|
readonly enabled: boolean;
|
|
5
|
-
|
|
3
|
+
protected constructor(enabled?: boolean);
|
|
4
|
+
protected _maxAge?: number;
|
|
5
|
+
protected _sharedMaxAge?: number;
|
|
6
|
+
protected _noCache?: boolean;
|
|
7
|
+
protected _mustRevalidate?: boolean;
|
|
8
|
+
protected _private?: boolean;
|
|
9
|
+
protected _public?: boolean;
|
|
10
|
+
protected _immutable?: boolean;
|
|
11
|
+
protected _staleWhileRevalidate?: number;
|
|
6
12
|
static disabled: () => CacheControl;
|
|
7
13
|
static OneSecond: () => CacheControl;
|
|
8
14
|
static fiveSeconds: () => CacheControl;
|
|
9
15
|
static tenSeconds: () => CacheControl;
|
|
10
16
|
static thirtySeconds: () => CacheControl;
|
|
11
17
|
static sixtySeconds: () => CacheControl;
|
|
12
|
-
static custom: (maxAge
|
|
13
|
-
maxAge: (a
|
|
14
|
-
|
|
18
|
+
static custom: (maxAge?: number, staleWhileRevalidate?: number) => CacheControl;
|
|
19
|
+
readonly maxAge: (a?: number) => this;
|
|
20
|
+
readonly sharedMaxAge: (a?: number) => this;
|
|
21
|
+
readonly noCache: (a?: boolean) => this;
|
|
22
|
+
readonly mustRevalidate: (a?: boolean) => this;
|
|
23
|
+
readonly private: (a?: boolean) => this;
|
|
24
|
+
readonly public: (a?: boolean) => this;
|
|
25
|
+
readonly immutable: (a?: boolean) => this;
|
|
26
|
+
readonly staleWhileRevalidate: (a?: number) => this;
|
|
15
27
|
value: () => string;
|
|
16
28
|
name: string;
|
|
17
29
|
}
|
|
@@ -3,27 +3,57 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CacheControl = void 0;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
class CacheControl {
|
|
6
|
-
constructor(
|
|
7
|
-
this.age = age;
|
|
8
|
-
this.stale = stale;
|
|
6
|
+
constructor(enabled = true) {
|
|
9
7
|
this.enabled = enabled;
|
|
10
8
|
this.maxAge = (a) => {
|
|
11
|
-
this.
|
|
9
|
+
this._maxAge = a;
|
|
12
10
|
return this;
|
|
13
11
|
};
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
12
|
+
this.sharedMaxAge = (a) => {
|
|
13
|
+
this._sharedMaxAge = a;
|
|
14
|
+
return this;
|
|
15
|
+
};
|
|
16
|
+
this.noCache = (a) => {
|
|
17
|
+
this._noCache = a;
|
|
18
|
+
return this;
|
|
19
|
+
};
|
|
20
|
+
this.mustRevalidate = (a) => {
|
|
21
|
+
this._mustRevalidate = a;
|
|
22
|
+
return this;
|
|
23
|
+
};
|
|
24
|
+
this.private = (a) => {
|
|
25
|
+
this._private = a;
|
|
26
|
+
return this;
|
|
27
|
+
};
|
|
28
|
+
this.public = (a) => {
|
|
29
|
+
this._public = a;
|
|
30
|
+
return this;
|
|
31
|
+
};
|
|
32
|
+
this.immutable = (a) => {
|
|
33
|
+
this._immutable = a;
|
|
34
|
+
return this;
|
|
35
|
+
};
|
|
36
|
+
this.staleWhileRevalidate = (a) => {
|
|
37
|
+
this._staleWhileRevalidate = a;
|
|
16
38
|
return this;
|
|
17
39
|
};
|
|
18
40
|
this.value = () => {
|
|
19
|
-
const
|
|
20
|
-
|
|
41
|
+
const directives = [];
|
|
42
|
+
(0, types_1.isDefined)(this._maxAge) && directives.push(`max-age=${this._maxAge}`);
|
|
43
|
+
(0, types_1.isDefined)(this._sharedMaxAge) && directives.push(`s-maxage=${this._sharedMaxAge}`);
|
|
44
|
+
this._noCache === true && directives.push(`no-cache`);
|
|
45
|
+
this._mustRevalidate === true && directives.push(`must-revalidate`);
|
|
46
|
+
this._private === true && directives.push(`private`);
|
|
47
|
+
this._public === true && directives.push(`public`);
|
|
48
|
+
this._immutable === true && directives.push(`immutable`);
|
|
49
|
+
(0, types_1.isDefined)(this._staleWhileRevalidate) && directives.push(`stale-while-revalidate=${this._staleWhileRevalidate}`);
|
|
50
|
+
return directives.join(',');
|
|
21
51
|
};
|
|
22
52
|
this.name = 'Cache-Control';
|
|
23
53
|
}
|
|
24
54
|
}
|
|
25
55
|
exports.CacheControl = CacheControl;
|
|
26
|
-
CacheControl.disabled = () => new CacheControl(
|
|
56
|
+
CacheControl.disabled = () => new CacheControl(false);
|
|
27
57
|
CacheControl.OneSecond = () => new CacheControl().maxAge(1).staleWhileRevalidate(1);
|
|
28
58
|
CacheControl.fiveSeconds = () => new CacheControl().maxAge(5).staleWhileRevalidate(5);
|
|
29
59
|
CacheControl.tenSeconds = () => new CacheControl().maxAge(10).staleWhileRevalidate(10);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheControl.js","sourceRoot":"","sources":["../../src/http/CacheControl.ts"],"names":[],"mappings":";;;AAAA,oCAAqC;AAErC,MAAa,YAAY;IACvB,
|
|
1
|
+
{"version":3,"file":"CacheControl.js","sourceRoot":"","sources":["../../src/http/CacheControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,9 @@ export declare class RequestOptions extends Enum {
|
|
|
12
12
|
static get Stream(): RequestOptions;
|
|
13
13
|
static get Text(): RequestOptions;
|
|
14
14
|
static get Xml(): RequestOptions;
|
|
15
|
+
requestOptions: {
|
|
16
|
+
maxRedirects?: number;
|
|
17
|
+
};
|
|
15
18
|
constructor(type?: ContentType, headers?: {
|
|
16
19
|
[key: string]: any;
|
|
17
20
|
}, pageOptions?: PageOptions | undefined);
|
|
@@ -21,5 +24,6 @@ export declare class RequestOptions extends Enum {
|
|
|
21
24
|
accept: (type: ContentType) => this;
|
|
22
25
|
bearer: (jwt: Text) => this;
|
|
23
26
|
basic: (username: Text, password: Text) => this;
|
|
27
|
+
maxRedirects: (max?: number) => this;
|
|
24
28
|
}
|
|
25
29
|
export declare const isRequestOptions: (o?: unknown) => o is RequestOptions;
|
|
@@ -12,6 +12,7 @@ class RequestOptions extends types_1.Enum {
|
|
|
12
12
|
this.type = type;
|
|
13
13
|
this.headers = headers;
|
|
14
14
|
this.pageOptions = pageOptions;
|
|
15
|
+
this.requestOptions = {};
|
|
15
16
|
this.page = (options) => {
|
|
16
17
|
this.pageOptions = options;
|
|
17
18
|
return this;
|
|
@@ -35,6 +36,10 @@ class RequestOptions extends types_1.Enum {
|
|
|
35
36
|
const basicAuth = Buffer.from(`${username}:${password}`, 'utf8').toString('base64');
|
|
36
37
|
return this.authorization(`Basic ${basicAuth}`);
|
|
37
38
|
};
|
|
39
|
+
this.maxRedirects = (max) => {
|
|
40
|
+
this.requestOptions.maxRedirects = max;
|
|
41
|
+
return this;
|
|
42
|
+
};
|
|
38
43
|
this.headers['Content-Type'] = type.id;
|
|
39
44
|
this.headers[HttpHeader_1.HttpHeader.Correlation] = types_1.ctx.request.correlationId ?? (0, types_1.toUuid)();
|
|
40
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestOptions.js","sourceRoot":"","sources":["../../src/http/RequestOptions.ts"],"names":[],"mappings":";;;AAAA,oCAAuF;AACvF,6CAA0C;AAC1C,+CAA4C;AAErC,MAAM,aAAa,GAAG,CAAC,OAAsC,EAA2B,EAAE,CAC/F,OAAO,YAAY,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;AADvD,QAAA,aAAa,iBAC0C;AAEpE,MAAa,cAAe,SAAQ,YAAI;
|
|
1
|
+
{"version":3,"file":"RequestOptions.js","sourceRoot":"","sources":["../../src/http/RequestOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ class AxiosProvider {
|
|
|
22
22
|
method: verb.toString(),
|
|
23
23
|
headers: uri.isInternal && (0, types_1.isEmpty)(options.headers.Authorization) ? options.bearer(types_1.ctx.request.jwt).headers : options.headers,
|
|
24
24
|
data: options.type.encode(body),
|
|
25
|
+
maxRedirects: options.requestOptions.maxRedirects,
|
|
25
26
|
})
|
|
26
27
|
.then(r => (0, http_1.toResponse)(r.status, transform(r.data), r.headers))
|
|
27
28
|
.catch(e => Promise.reject(asResponse(uri, verb, transformError(e))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxiosProvider.js","sourceRoot":"","sources":["../../src/services/AxiosProvider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAgF;AAChF,kCAA6H;AAC7H,oCAA0E;AAE1E,MAAM,UAAU,GAAG,CAAC,CAAU,EAAoC,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,QAAQ,CAAC,CAAC;AACrG,MAAM,SAAS,GAAG,CAAC,CAAU,EAAyB,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,OAAO,CAAC,CAAC;AAExF,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,KAAiB,EAAY,EAAE,CAC3E,IAAA,cAAM,EAAC,KAAK,CAAC;KACV,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CACpB,IAAA,iBAAU,EAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAA,mBAAY,EAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACpJ;KACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KAC9F,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,iBAAU,CAAC,mBAAmB,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE/F,MAAa,aAAa;IACxB,YAAqB,KAAoB,eAAK;QAAzB,OAAE,GAAF,EAAE,CAAuB;QAE9C,YAAO,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,qBAAc,CAAC,IAAI,EAAW,EAAqB,EAAE,CACtJ,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC;YACP,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAY;YACjC,OAAO,EAAE,GAAG,CAAC,UAAU,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YAC7H,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"AxiosProvider.js","sourceRoot":"","sources":["../../src/services/AxiosProvider.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAgF;AAChF,kCAA6H;AAC7H,oCAA0E;AAE1E,MAAM,UAAU,GAAG,CAAC,CAAU,EAAoC,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,QAAQ,CAAC,CAAC;AACrG,MAAM,SAAS,GAAG,CAAC,CAAU,EAAyB,EAAE,CAAC,IAAA,iBAAS,EAAE,CAAS,EAAE,OAAO,CAAC,CAAC;AAExF,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,IAAc,EAAE,KAAiB,EAAY,EAAE,CAC3E,IAAA,cAAM,EAAC,KAAK,CAAC;KACV,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CACpB,IAAA,iBAAU,EAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAA,mBAAY,EAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACpJ;KACA,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;KAC9F,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,iBAAU,CAAC,mBAAmB,EAAE,IAAA,gBAAQ,EAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE/F,MAAa,aAAa;IACxB,YAAqB,KAAoB,eAAK;QAAzB,OAAE,GAAF,EAAE,CAAuB;QAE9C,YAAO,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,qBAAc,CAAC,IAAI,EAAW,EAAqB,EAAE,CACtJ,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC;YACP,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAY;YACjC,OAAO,EAAE,GAAG,CAAC,UAAU,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YAC7H,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/B,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,YAAY;SAClD,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iBAAU,EAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;aAC7D,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAZzB,CAAC;CAanD;AAdD,sCAcC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thisisagile/easy",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.3.0",
|
|
4
4
|
"description": "Straightforward library for building domain-driven microservice architectures",
|
|
5
5
|
"author": "Sander Hoogendoorn",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@thisisagile/easy-test": "12.
|
|
34
|
+
"@thisisagile/easy-test": "12.3.0",
|
|
35
35
|
"@types/form-urlencoded": "^4.4.0",
|
|
36
36
|
"@types/jsonwebtoken": "^8.5.9",
|
|
37
37
|
"@types/luxon": "3.0.0",
|
package/src/http/CacheControl.ts
CHANGED
|
@@ -1,29 +1,76 @@
|
|
|
1
1
|
import { isDefined } from '../types';
|
|
2
2
|
|
|
3
3
|
export class CacheControl {
|
|
4
|
-
|
|
4
|
+
protected constructor(readonly enabled = true) {}
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
protected _maxAge?: number;
|
|
7
|
+
protected _sharedMaxAge?: number;
|
|
8
|
+
protected _noCache?: boolean;
|
|
9
|
+
protected _mustRevalidate?: boolean;
|
|
10
|
+
protected _private?: boolean;
|
|
11
|
+
protected _public?: boolean;
|
|
12
|
+
protected _immutable?: boolean;
|
|
13
|
+
protected _staleWhileRevalidate?: number;
|
|
14
|
+
|
|
15
|
+
static disabled = () => new CacheControl(false);
|
|
7
16
|
static OneSecond = () => new CacheControl().maxAge(1).staleWhileRevalidate(1);
|
|
8
17
|
static fiveSeconds = () => new CacheControl().maxAge(5).staleWhileRevalidate(5);
|
|
9
18
|
static tenSeconds = () => new CacheControl().maxAge(10).staleWhileRevalidate(10);
|
|
10
19
|
static thirtySeconds = () => new CacheControl().maxAge(30).staleWhileRevalidate(30);
|
|
11
20
|
static sixtySeconds = () => new CacheControl().maxAge(60).staleWhileRevalidate(60);
|
|
12
|
-
static custom = (maxAge
|
|
21
|
+
static custom = (maxAge?: number, staleWhileRevalidate?: number) => new CacheControl().maxAge(maxAge).staleWhileRevalidate(staleWhileRevalidate);
|
|
22
|
+
|
|
23
|
+
readonly maxAge = (a?: number): this => {
|
|
24
|
+
this._maxAge = a;
|
|
25
|
+
return this;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
readonly sharedMaxAge = (a?: number): this => {
|
|
29
|
+
this._sharedMaxAge = a;
|
|
30
|
+
return this;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
readonly noCache = (a?: boolean): this => {
|
|
34
|
+
this._noCache = a;
|
|
35
|
+
return this;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
readonly mustRevalidate = (a?: boolean): this => {
|
|
39
|
+
this._mustRevalidate = a;
|
|
40
|
+
return this;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
readonly private = (a?: boolean): this => {
|
|
44
|
+
this._private = a;
|
|
45
|
+
return this;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
readonly public = (a?: boolean): this => {
|
|
49
|
+
this._public = a;
|
|
50
|
+
return this;
|
|
51
|
+
};
|
|
13
52
|
|
|
14
|
-
|
|
15
|
-
this.
|
|
53
|
+
readonly immutable = (a?: boolean): this => {
|
|
54
|
+
this._immutable = a;
|
|
16
55
|
return this;
|
|
17
56
|
};
|
|
18
57
|
|
|
19
|
-
staleWhileRevalidate = (
|
|
20
|
-
this.
|
|
58
|
+
readonly staleWhileRevalidate = (a?: number): this => {
|
|
59
|
+
this._staleWhileRevalidate = a;
|
|
21
60
|
return this;
|
|
22
61
|
};
|
|
23
62
|
|
|
24
63
|
value = (): string => {
|
|
25
|
-
const
|
|
26
|
-
|
|
64
|
+
const directives: string[] = [];
|
|
65
|
+
isDefined(this._maxAge) && directives.push(`max-age=${this._maxAge}`);
|
|
66
|
+
isDefined(this._sharedMaxAge) && directives.push(`s-maxage=${this._sharedMaxAge}`);
|
|
67
|
+
this._noCache === true && directives.push(`no-cache`);
|
|
68
|
+
this._mustRevalidate === true && directives.push(`must-revalidate`);
|
|
69
|
+
this._private === true && directives.push(`private`);
|
|
70
|
+
this._public === true && directives.push(`public`);
|
|
71
|
+
this._immutable === true && directives.push(`immutable`);
|
|
72
|
+
isDefined(this._staleWhileRevalidate) && directives.push(`stale-while-revalidate=${this._staleWhileRevalidate}`);
|
|
73
|
+
return directives.join(',');
|
|
27
74
|
};
|
|
28
75
|
|
|
29
76
|
name = 'Cache-Control';
|
|
@@ -26,6 +26,8 @@ export class RequestOptions extends Enum {
|
|
|
26
26
|
return new RequestOptions(ContentType.Xml);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
public requestOptions: { maxRedirects?: number } = {};
|
|
30
|
+
|
|
29
31
|
constructor(readonly type: ContentType = ContentType.Json, readonly headers: { [key: string]: any } = {}, public pageOptions?: PageOptions) {
|
|
30
32
|
super(type.name);
|
|
31
33
|
this.headers['Content-Type'] = type.id;
|
|
@@ -60,6 +62,11 @@ export class RequestOptions extends Enum {
|
|
|
60
62
|
const basicAuth = Buffer.from(`${username}:${password}`, 'utf8').toString('base64');
|
|
61
63
|
return this.authorization(`Basic ${basicAuth}`);
|
|
62
64
|
};
|
|
65
|
+
|
|
66
|
+
maxRedirects = (max?: number): this => {
|
|
67
|
+
this.requestOptions.maxRedirects = max;
|
|
68
|
+
return this;
|
|
69
|
+
};
|
|
63
70
|
}
|
|
64
71
|
|
|
65
72
|
export const isRequestOptions = (o?: unknown): o is RequestOptions => isDefined(o) && o instanceof RequestOptions;
|
|
@@ -23,6 +23,7 @@ export class AxiosProvider implements RequestProvider {
|
|
|
23
23
|
method: verb.toString() as Method,
|
|
24
24
|
headers: uri.isInternal && isEmpty(options.headers.Authorization) ? options.bearer(ctx.request.jwt).headers : options.headers,
|
|
25
25
|
data: options.type.encode(body),
|
|
26
|
+
maxRedirects: options.requestOptions.maxRedirects,
|
|
26
27
|
})
|
|
27
28
|
.then(r => toResponse(r.status, transform(r.data), r.headers))
|
|
28
29
|
.catch(e => Promise.reject(asResponse(uri, verb, transformError(e))));
|