@thisisagile/easy 8.5.8 → 8.6.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,11 +1,12 @@
1
1
  import { Struct } from '../Struct';
2
+ import { Country } from '../enums';
2
3
  export declare class Address extends Struct {
3
4
  readonly street: string;
4
5
  readonly houseNumber: string;
5
6
  readonly extension: string;
6
7
  readonly postalCode: string;
7
8
  readonly city: string;
8
- readonly country: string;
9
+ readonly country: Country;
9
10
  toString(): string;
10
11
  }
11
12
  export declare const isAddress: (a?: unknown) => a is Address;
@@ -13,6 +13,7 @@ exports.isAddress = exports.Address = void 0;
13
13
  const types_1 = require("../../types");
14
14
  const Struct_1 = require("../Struct");
15
15
  const validation_1 = require("../../validation");
16
+ const enums_1 = require("../enums");
16
17
  class Address extends Struct_1.Struct {
17
18
  constructor() {
18
19
  super(...arguments);
@@ -21,7 +22,7 @@ class Address extends Struct_1.Struct {
21
22
  this.extension = this.state.extension;
22
23
  this.postalCode = this.state.postalCode;
23
24
  this.city = this.state.city;
24
- this.country = this.state.country;
25
+ this.country = enums_1.Country.byId(this.state.country);
25
26
  }
26
27
  toString() {
27
28
  return (0, types_1.text)(this.street, '')
@@ -29,7 +30,7 @@ class Address extends Struct_1.Struct {
29
30
  .add(this.extension, ' ')
30
31
  .add(this.postalCode, ', ')
31
32
  .add(this.city, ' ')
32
- .add(this.country, ' ')
33
+ .add(this.country?.name, ' ')
33
34
  .toString();
34
35
  }
35
36
  }
@@ -51,7 +52,7 @@ __decorate([
51
52
  ], Address.prototype, "city", void 0);
52
53
  __decorate([
53
54
  (0, validation_1.required)(),
54
- __metadata("design:type", String)
55
+ __metadata("design:type", enums_1.Country)
55
56
  ], Address.prototype, "country", void 0);
56
57
  exports.Address = Address;
57
58
  const isAddress = (a) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Address.js","sourceRoot":"","sources":["../../../src/domain/structs/Address.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA4C;AAC5C,sCAAmC;AACnC,iDAA4C;AAE5C,MAAa,OAAQ,SAAQ,eAAM;IAAnC;;QACuB,WAAM,GAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,gBAAW,GAAW,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACzD,cAAS,GAAW,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAC7B,eAAU,GAAW,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3C,SAAI,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/B,YAAO,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAW5D,CAAC;IATC,QAAQ;QACN,OAAO,IAAA,YAAI,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;aACzB,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;aAC1B,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;aACxB,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;aAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;aACnB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;aACtB,QAAQ,EAAE,CAAC;IAChB,CAAC;CACF;AAhBa;IAAX,IAAA,qBAAQ,GAAE;;uCAA6C;AAC5C;IAAX,IAAA,qBAAQ,GAAE;;4CAAuD;AAEtD;IAAX,IAAA,qBAAQ,GAAE;;2CAAqD;AACpD;IAAX,IAAA,qBAAQ,GAAE;;qCAAyC;AACxC;IAAX,IAAA,qBAAQ,GAAE;;wCAA+C;AAN5D,0BAiBC;AAEM,MAAM,SAAS,GAAG,CAAC,CAAW,EAAgB,EAAE;IACrD,OAAO,CAAC,IAAA,eAAO,EAAC,CAAC,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB"}
1
+ {"version":3,"file":"Address.js","sourceRoot":"","sources":["../../../src/domain/structs/Address.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA4C;AAC5C,sCAAmC;AACnC,iDAA4C;AAC5C,oCAAmC;AAEnC,MAAa,OAAQ,SAAQ,eAAM;IAAnC;;QACuB,WAAM,GAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,gBAAW,GAAW,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACzD,cAAS,GAAW,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAC7B,eAAU,GAAW,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3C,SAAI,GAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/B,YAAO,GAAY,eAAO,CAAC,IAAI,CAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAWpF,CAAC;IATC,QAAQ;QACN,OAAO,IAAA,YAAI,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;aACzB,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;aAC1B,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;aACxB,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;aAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;aACnB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;aAC5B,QAAQ,EAAE,CAAC;IAChB,CAAC;CACF;AAhBa;IAAX,IAAA,qBAAQ,GAAE;;uCAA6C;AAC5C;IAAX,IAAA,qBAAQ,GAAE;;4CAAuD;AAEtD;IAAX,IAAA,qBAAQ,GAAE;;2CAAqD;AACpD;IAAX,IAAA,qBAAQ,GAAE;;qCAAyC;AACxC;IAAX,IAAA,qBAAQ,GAAE;8BAAmB,eAAO;wCAA6C;AANpF,0BAiBC;AAEM,MAAM,SAAS,GAAG,CAAC,CAAW,EAAgB,EAAE;IACrD,OAAO,CAAC,IAAA,eAAO,EAAC,CAAC,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC;AAC7C,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB"}
@@ -1,7 +1,8 @@
1
1
  import { Scope, UseCase } from '../process';
2
- export declare const requires: {
3
- labCoat: () => PropertyDecorator;
4
- token: () => PropertyDecorator;
5
- scope: (scope: Scope) => PropertyDecorator;
6
- useCase: (uc: UseCase) => PropertyDecorator;
7
- };
2
+ export declare class Requires {
3
+ readonly labCoat: () => PropertyDecorator;
4
+ readonly token: () => PropertyDecorator;
5
+ readonly scope: (scope: Scope) => PropertyDecorator;
6
+ readonly useCase: (uc: UseCase) => PropertyDecorator;
7
+ }
8
+ export declare const requires: Requires;
@@ -1,21 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.requires = void 0;
3
+ exports.requires = exports.Requires = void 0;
4
4
  const types_1 = require("../types");
5
- exports.requires = {
6
- labCoat: () => (subject, property) => {
7
- (0, types_1.meta)(subject).property(property).set('labCoat', true);
8
- },
9
- token: () => (subject, property) => {
10
- (0, types_1.meta)(subject).property(property).set('token', true);
11
- },
12
- scope: (scope) => (subject, property) => {
13
- (0, types_1.meta)(subject).property(property).set('token', true);
14
- (0, types_1.meta)(subject).property(property).set('scope', scope);
15
- },
16
- useCase: (uc) => (subject, property) => {
17
- (0, types_1.meta)(subject).property(property).set('token', true);
18
- (0, types_1.meta)(subject).property(property).set('uc', uc);
19
- },
20
- };
5
+ class Requires {
6
+ constructor() {
7
+ this.labCoat = () => (subject, property) => {
8
+ (0, types_1.meta)(subject).property(property).set('labCoat', true);
9
+ };
10
+ this.token = () => (subject, property) => {
11
+ (0, types_1.meta)(subject).property(property).set('token', true);
12
+ };
13
+ this.scope = (scope) => (subject, property) => {
14
+ (0, types_1.meta)(subject).property(property).set('token', true);
15
+ (0, types_1.meta)(subject).property(property).set('scope', scope);
16
+ };
17
+ this.useCase = (uc) => (subject, property) => {
18
+ (0, types_1.meta)(subject).property(property).set('token', true);
19
+ (0, types_1.meta)(subject).property(property).set('uc', uc);
20
+ };
21
+ }
22
+ }
23
+ exports.Requires = Requires;
24
+ exports.requires = new Requires();
21
25
  //# sourceMappingURL=Requires.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Requires.js","sourceRoot":"","sources":["../../src/resources/Requires.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;AAGnB,QAAA,QAAQ,GAAG;IACtB,OAAO,EACL,GAAsB,EAAE,CACxB,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;QACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAEH,KAAK,EACH,GAAsB,EAAE,CACxB,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;QACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAEH,KAAK,EACH,CAAC,KAAY,EAAqB,EAAE,CACpC,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;QACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAEH,OAAO,EACL,CAAC,EAAW,EAAqB,EAAE,CACnC,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;QACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"Requires.js","sourceRoot":"","sources":["../../src/resources/Requires.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;AAGhC,MAAa,QAAQ;IAArB;QACW,YAAO,GACd,GAAsB,EAAE,CACxB,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC;QAEK,UAAK,GACZ,GAAsB,EAAE,CACxB,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC;QAEK,UAAK,GACZ,CAAC,KAAY,EAAqB,EAAE,CACpC,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC;QAEK,YAAO,GACd,CAAC,EAAW,EAAqB,EAAE,CACnC,CAAC,OAAgB,EAAE,QAAyB,EAAQ,EAAE;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,IAAA,YAAI,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC;IACN,CAAC;CAAA;AA1BD,4BA0BC;AAEY,QAAA,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC"}
@@ -5,6 +5,7 @@ export declare class RouteGateway extends Gateway {
5
5
  readonly routeId: Func<Uri>;
6
6
  readonly api: Api;
7
7
  constructor(route: Func<Uri>, routeId: Func<Uri>, api?: Api);
8
+ get(uri: Uri): Promise<List<Json>>;
8
9
  all(): Promise<List<Json>>;
9
10
  byId(id: Id): Promise<Json | undefined>;
10
11
  search(q: JsonValue): Promise<List<Json>>;
@@ -11,19 +11,21 @@ class RouteGateway extends types_1.Gateway {
11
11
  this.routeId = routeId;
12
12
  this.api = api;
13
13
  }
14
+ get(uri) {
15
+ return this.api.get(uri).then(r => r.body.data?.items ?? (0, types_1.toList)());
16
+ }
14
17
  all() {
15
- return this.api.get(this.route()).then(r => r.body.data?.items ?? (0, types_1.toList)());
18
+ return this.get(this.route());
16
19
  }
17
20
  byId(id) {
18
- return this.api.get(this.routeId().id(id)).then(r => r.body.data?.items.first());
21
+ return this.get(this.routeId().id(id)).then(r => r.first());
19
22
  }
20
23
  search(q) {
21
- return this.api.get(this.route().query(q)).then(r => r.body.data?.items ?? (0, types_1.toList)());
24
+ return this.get(this.route().query(q));
22
25
  }
23
26
  exists(id) {
24
- return this.api
25
- .get(this.routeId().id(id))
26
- .then(r => r.body.data?.items.length === 1)
27
+ return this.get(this.routeId().id(id))
28
+ .then(r => r.length === 1)
27
29
  .catch(r => (http_1.HttpStatus.NotFound.equals(r.status) ? false : Promise.reject(r)));
28
30
  }
29
31
  add(item) {
@@ -1 +1 @@
1
- {"version":3,"file":"RouteGateway.js","sourceRoot":"","sources":["../../src/services/RouteGateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouteGateway.js","sourceRoot":"","sources":["../../src/services/RouteGateway.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "8.5.8",
3
+ "version": "8.6.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": "8.5.8",
34
+ "@thisisagile/easy-test": "8.6.1",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.6",
37
37
  "@types/validator": "^13.7.0"
@@ -1,6 +1,7 @@
1
1
  import { isEmpty, text } from '../../types';
2
2
  import { Struct } from '../Struct';
3
3
  import { required } from '../../validation';
4
+ import { Country } from '../enums';
4
5
 
5
6
  export class Address extends Struct {
6
7
  @required() readonly street: string = this.state.street;
@@ -8,7 +9,7 @@ export class Address extends Struct {
8
9
  readonly extension: string = this.state.extension;
9
10
  @required() readonly postalCode: string = this.state.postalCode;
10
11
  @required() readonly city: string = this.state.city;
11
- @required() readonly country: string = this.state.country;
12
+ @required() readonly country: Country = Country.byId<Country>(this.state.country);
12
13
 
13
14
  toString(): string {
14
15
  return text(this.street, '')
@@ -16,7 +17,7 @@ export class Address extends Struct {
16
17
  .add(this.extension, ' ')
17
18
  .add(this.postalCode, ', ')
18
19
  .add(this.city, ' ')
19
- .add(this.country, ' ')
20
+ .add(this.country?.name, ' ')
20
21
  .toString();
21
22
  }
22
23
  }
@@ -1,30 +1,32 @@
1
1
  import { meta } from '../types';
2
2
  import { Scope, UseCase } from '../process';
3
3
 
4
- export const requires = {
5
- labCoat:
4
+ export class Requires {
5
+ readonly labCoat =
6
6
  (): PropertyDecorator =>
7
7
  (subject: unknown, property: string | symbol): void => {
8
8
  meta(subject).property(property).set('labCoat', true);
9
- },
9
+ };
10
10
 
11
- token:
11
+ readonly token =
12
12
  (): PropertyDecorator =>
13
13
  (subject: unknown, property: string | symbol): void => {
14
14
  meta(subject).property(property).set('token', true);
15
- },
15
+ };
16
16
 
17
- scope:
17
+ readonly scope =
18
18
  (scope: Scope): PropertyDecorator =>
19
19
  (subject: unknown, property: string | symbol): void => {
20
20
  meta(subject).property(property).set('token', true);
21
21
  meta(subject).property(property).set('scope', scope);
22
- },
22
+ };
23
23
 
24
- useCase:
24
+ readonly useCase =
25
25
  (uc: UseCase): PropertyDecorator =>
26
26
  (subject: unknown, property: string | symbol): void => {
27
27
  meta(subject).property(property).set('token', true);
28
28
  meta(subject).property(property).set('uc', uc);
29
- },
30
- };
29
+ };
30
+ }
31
+
32
+ export const requires = new Requires();
@@ -7,22 +7,25 @@ export class RouteGateway extends Gateway {
7
7
  super();
8
8
  }
9
9
 
10
+ get(uri: Uri): Promise<List<Json>> {
11
+ return this.api.get(uri).then(r => r.body.data?.items ?? toList());
12
+ }
13
+
10
14
  all(): Promise<List<Json>> {
11
- return this.api.get(this.route()).then(r => r.body.data?.items ?? toList());
15
+ return this.get(this.route());
12
16
  }
13
17
 
14
18
  byId(id: Id): Promise<Json | undefined> {
15
- return this.api.get(this.routeId().id(id)).then(r => r.body.data?.items.first());
19
+ return this.get(this.routeId().id(id)).then(r => r.first());
16
20
  }
17
21
 
18
22
  search(q: JsonValue): Promise<List<Json>> {
19
- return this.api.get(this.route().query(q)).then(r => r.body.data?.items ?? toList());
23
+ return this.get(this.route().query(q));
20
24
  }
21
25
 
22
26
  exists(id: Id): Promise<boolean> {
23
- return this.api
24
- .get(this.routeId().id(id))
25
- .then(r => r.body.data?.items.length === 1)
27
+ return this.get(this.routeId().id(id))
28
+ .then(r => r.length === 1)
26
29
  .catch(r => (HttpStatus.NotFound.equals(r.status) ? false : Promise.reject(r)));
27
30
  }
28
31