@thisisagile/easy 12.7.29 → 12.9.1

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.
@@ -1,4 +1,4 @@
1
- import { Enum, PageOptions, Text } from '../types';
1
+ import { Enum, Id, PageOptions, Text } from '../types';
2
2
  import { ContentType } from './ContentType';
3
3
  export declare const toPageOptions: (options?: RequestOptions | PageOptions) => PageOptions | undefined;
4
4
  export declare class RequestOptions extends Enum {
@@ -7,11 +7,6 @@ export declare class RequestOptions extends Enum {
7
7
  [key: string]: any;
8
8
  };
9
9
  pageOptions?: PageOptions | undefined;
10
- static get Form(): RequestOptions;
11
- static get Json(): RequestOptions;
12
- static get Stream(): RequestOptions;
13
- static get Text(): RequestOptions;
14
- static get Xml(): RequestOptions;
15
10
  requestOptions: {
16
11
  maxRedirects?: number;
17
12
  validateStatus?: (status: number) => boolean;
@@ -19,9 +14,16 @@ export declare class RequestOptions extends Enum {
19
14
  constructor(type?: ContentType, headers?: {
20
15
  [key: string]: any;
21
16
  }, pageOptions?: PageOptions | undefined);
17
+ static get Form(): RequestOptions;
18
+ static get Json(): RequestOptions;
19
+ static get Stream(): RequestOptions;
20
+ static get Text(): RequestOptions;
21
+ static get Xml(): RequestOptions;
22
22
  page: (options: PageOptions) => this;
23
23
  authorization: (auth: string) => this;
24
24
  apiKey: (apiKey: string) => this;
25
+ setHeader: (key: string, value: Id | boolean) => this;
26
+ setHeaderUnlessPresent: (key: string, value?: Id | boolean) => this;
25
27
  accept: (type: ContentType) => this;
26
28
  bearer: (jwt: Text) => this;
27
29
  basic: (username: Text, password: Text) => this;
@@ -17,18 +17,11 @@ class RequestOptions extends types_1.Enum {
17
17
  this.pageOptions = options;
18
18
  return this;
19
19
  };
20
- this.authorization = (auth) => {
21
- this.headers.Authorization = auth;
22
- return this;
23
- };
24
- this.apiKey = (apiKey) => {
25
- this.headers.apiKey = apiKey;
26
- return this;
27
- };
28
- this.accept = (type) => {
29
- this.headers.Accept = type.id;
30
- return this;
31
- };
20
+ this.authorization = (auth) => this.setHeader('Authorization', auth);
21
+ this.apiKey = (apiKey) => this.setHeader('apiKey', apiKey);
22
+ this.setHeader = (key, value) => (0, types_1.on)(this, t => t.headers[key] = value);
23
+ this.setHeaderUnlessPresent = (key, value) => value ? this.setHeader(key, this.headers[key] ?? value) : this;
24
+ this.accept = (type) => this.setHeader('Accept', type.id);
32
25
  this.bearer = (jwt) => {
33
26
  return (0, types_1.isNotEmpty)(jwt) ? this.authorization(`Bearer ${jwt}`) : this;
34
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RequestOptions.js","sourceRoot":"","sources":["../../src/http/RequestOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RequestOptions.js","sourceRoot":"","sources":["../../src/http/RequestOptions.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface EnvContext {
5
5
  readonly name: string;
6
6
  readonly host: string;
7
7
  readonly port: number;
8
+ readonly app: string;
8
9
  get(key: string, alt?: string): string | undefined;
9
10
  }
10
11
  export declare class DotEnvContext implements EnvContext {
@@ -12,6 +13,7 @@ export declare class DotEnvContext implements EnvContext {
12
13
  readonly name: string;
13
14
  readonly host: string;
14
15
  readonly port: number;
16
+ readonly app: string;
15
17
  readonly get: (key: string, alt?: string) => string | undefined;
16
18
  }
17
19
  export interface RequestContext {
@@ -9,6 +9,7 @@ class DotEnvContext {
9
9
  this.name = process.env.ENVIRONMENT_NAME ?? '';
10
10
  this.host = process.env.HOST ?? '';
11
11
  this.port = Number.parseInt(process.env.PORT ?? '8080');
12
+ this.app = process.env.APP ?? '';
12
13
  this.get = (key, alt) => (0, Try_1.tryTo)(() => (0, Text_1.text)(key)
13
14
  .map(k => k.replace(/([a-z])([A-Z])/g, '$1 $2'))
14
15
  .snake.toString()).map(k => process.env[k] ?? alt).value;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../src/types/Context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../src/types/Context.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "12.7.29",
3
+ "version": "12.9.1",
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.7.29",
34
+ "@thisisagile/easy-test": "12.9.1",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.9",
37
37
  "@types/luxon": "3.0.2",
@@ -1,4 +1,4 @@
1
- import { ctx, Enum, isDefined, isNotEmpty, PageOptions, Text, toUuid } from '../types';
1
+ import { ctx, Enum, Id, isDefined, isNotEmpty, on, PageOptions, Text, toUuid } from '../types';
2
2
  import { HttpHeader } from './HttpHeader';
3
3
  import { ContentType } from './ContentType';
4
4
 
@@ -6,6 +6,14 @@ export const toPageOptions = (options?: RequestOptions | PageOptions): PageOptio
6
6
  options instanceof RequestOptions ? options.pageOptions : options;
7
7
 
8
8
  export class RequestOptions extends Enum {
9
+ public requestOptions: { maxRedirects?: number; validateStatus?: (status: number) => boolean } = {};
10
+
11
+ constructor(readonly type: ContentType = ContentType.Json, readonly headers: { [key: string]: any } = {}, public pageOptions?: PageOptions) {
12
+ super(type.name);
13
+ this.headers['Content-Type'] = type.id;
14
+ this.headers[HttpHeader.Correlation] = ctx.request.correlationId ?? toUuid();
15
+ }
16
+
9
17
  static get Form(): RequestOptions {
10
18
  return new RequestOptions(ContentType.Form);
11
19
  }
@@ -26,33 +34,21 @@ export class RequestOptions extends Enum {
26
34
  return new RequestOptions(ContentType.Xml);
27
35
  }
28
36
 
29
- public requestOptions: { maxRedirects?: number; validateStatus?: (status: number) => boolean } = {};
30
-
31
- constructor(readonly type: ContentType = ContentType.Json, readonly headers: { [key: string]: any } = {}, public pageOptions?: PageOptions) {
32
- super(type.name);
33
- this.headers['Content-Type'] = type.id;
34
- this.headers[HttpHeader.Correlation] = ctx.request.correlationId ?? toUuid();
35
- }
36
-
37
37
  page = (options: PageOptions): this => {
38
38
  this.pageOptions = options;
39
39
  return this;
40
40
  };
41
41
 
42
- authorization = (auth: string): this => {
43
- this.headers.Authorization = auth;
44
- return this;
45
- };
42
+ authorization = (auth: string): this => this.setHeader('Authorization', auth);
46
43
 
47
- apiKey = (apiKey: string): this => {
48
- this.headers.apiKey = apiKey;
49
- return this;
50
- };
44
+ apiKey = (apiKey: string): this => this.setHeader('apiKey', apiKey);
51
45
 
52
- accept = (type: ContentType): this => {
53
- this.headers.Accept = type.id;
54
- return this;
55
- };
46
+ setHeader = (key: string, value: Id | boolean): this => on(this, t => t.headers[key]= value)
47
+
48
+ setHeaderUnlessPresent = (key: string, value?: Id | boolean): this =>
49
+ value ? this.setHeader(key, this.headers[key] ?? value) : this;
50
+
51
+ accept = (type: ContentType): this => this.setHeader('Accept', type.id)
56
52
 
57
53
  bearer = (jwt: Text): this => {
58
54
  return isNotEmpty(jwt) ? this.authorization(`Bearer ${jwt}`) : this;
@@ -8,6 +8,7 @@ export interface EnvContext {
8
8
  readonly name: string;
9
9
  readonly host: string;
10
10
  readonly port: number;
11
+ readonly app: string;
11
12
 
12
13
  get(key: string, alt?: string): string | undefined;
13
14
  }
@@ -17,6 +18,7 @@ export class DotEnvContext implements EnvContext {
17
18
  readonly name = process.env.ENVIRONMENT_NAME ?? '';
18
19
  readonly host = process.env.HOST ?? '';
19
20
  readonly port = Number.parseInt(process.env.PORT ?? '8080');
21
+ readonly app = process.env.APP ?? '';
20
22
 
21
23
  readonly get = (key: string, alt?: string): string | undefined =>
22
24
  tryTo(() =>