@thisisagile/easy 8.5.7 → 8.6.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.
@@ -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":";;;AAAA,+BAA4B;AAC5B,oCAAiF;AACjF,kCAAqC;AAErC,MAAa,YAAa,SAAQ,eAAO;IACvC,YAAqB,KAAgB,EAAW,OAAkB,EAAW,MAAW,IAAI,SAAG,EAAE;QAC/F,KAAK,EAAE,CAAC;QADW,UAAK,GAAL,KAAK,CAAW;QAAW,YAAO,GAAP,OAAO,CAAW;QAAW,QAAG,GAAH,GAAG,CAAiB;IAEjG,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAA,cAAM,GAAE,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,CAAC,EAAM;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,CAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAA,cAAM,GAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,CAAC,EAAM;QACX,OAAO,IAAI,CAAC,GAAG;aACZ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;aAC1C,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,GAAG,CAAC,IAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,CAAC,IAAU;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,CAAC,IAAU;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,CAAC,EAAM;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;CACF;AAvCD,oCAuCC"}
1
+ {"version":3,"file":"RouteGateway.js","sourceRoot":"","sources":["../../src/services/RouteGateway.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export declare type Contexts<E extends EnvContext, R extends RequestContext> = {
45
45
  request?: R;
46
46
  other?: any;
47
47
  };
48
- export declare class Context<E extends EnvContext = DotEnvContext, R extends RequestContext = BaseContext> {
48
+ export declare class Context<E extends EnvContext, R extends RequestContext> {
49
49
  protected state: Contexts<E, R>;
50
50
  constructor(state?: Contexts<E, R>);
51
51
  get env(): E;
@@ -59,4 +59,4 @@ export declare class Context<E extends EnvContext = DotEnvContext, R extends Req
59
59
  other?: any;
60
60
  }) => Context<E_1, R_1>;
61
61
  }
62
- export declare const ctx: Context<DotEnvContext, BaseContext>;
62
+ export declare const ctx: Context<EnvContext, RequestContext>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "8.5.7",
3
+ "version": "8.6.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": "8.5.7",
34
+ "@thisisagile/easy-test": "8.6.0",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.6",
37
37
  "@types/validator": "^13.7.0"
@@ -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
 
@@ -94,7 +94,7 @@ export type Contexts<E extends EnvContext, R extends RequestContext> = {
94
94
  other?: any;
95
95
  }
96
96
 
97
- export class Context<E extends EnvContext = DotEnvContext, R extends RequestContext = BaseContext> {
97
+ export class Context<E extends EnvContext, R extends RequestContext> {
98
98
  constructor(protected state: Contexts<E, R> = {}) {
99
99
  this.state = {
100
100
  ...({