@thisisagile/easy 12.9.1 → 12.10.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.
@@ -0,0 +1,14 @@
1
+ import { Api, RouteOptions } from './Api';
2
+ import { FetchOptions, Gateway, Json, PageList, Uri } from '../types';
3
+ import { RequestOptions } from '../http';
4
+ export declare class ApiGateway extends Gateway<RouteOptions> {
5
+ readonly api: Api;
6
+ constructor(api?: Api);
7
+ get(uri: Uri, options?: RouteOptions): Promise<PageList<Json>>;
8
+ getOne(uri: Uri, options?: RouteOptions): Promise<Json | undefined>;
9
+ post(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json>;
10
+ postSearch(uri: Uri, options?: RequestOptions | FetchOptions): Promise<PageList<Json>>;
11
+ patch(uri: Uri, item: Json, options?: RouteOptions): Promise<Json>;
12
+ put(uri: Uri, item: Json, options?: RouteOptions): Promise<Json>;
13
+ delete(uri: Uri, options?: RouteOptions): Promise<boolean>;
14
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiGateway = void 0;
4
+ const Api_1 = require("./Api");
5
+ const types_1 = require("../types");
6
+ const http_1 = require("../http");
7
+ class ApiGateway extends types_1.Gateway {
8
+ constructor(api = new Api_1.Api()) {
9
+ super();
10
+ this.api = api;
11
+ }
12
+ get(uri, options) {
13
+ return this.api.get(uri, options).then(r => (0, types_1.toPageList)(r.body.data?.items, (0, http_1.toPageOptions)(options) && {
14
+ total: r.body.data?.totalItems,
15
+ filters: r.body.data?.meta?.filters,
16
+ }));
17
+ }
18
+ getOne(uri, options) {
19
+ return this.get(uri, options).then(r => r.first());
20
+ }
21
+ post(uri, item, options) {
22
+ return this.api.post(uri, item, options).then(r => r.body.data?.items.first() ?? {});
23
+ }
24
+ postSearch(uri, options) {
25
+ return this.api.post(uri, options).then(r => (0, types_1.toPageList)(r.body.data?.items, (0, http_1.toPageOptions)(options) && {
26
+ total: r.body.data?.totalItems,
27
+ filters: r.body.data?.meta?.filters,
28
+ }));
29
+ }
30
+ patch(uri, item, options) {
31
+ return this.api.patch(uri, item, options).then(r => r.body.data?.items.first() ?? {});
32
+ }
33
+ put(uri, item, options) {
34
+ return this.api.put(uri, item, options).then(r => r.body.data?.items.first() ?? {});
35
+ }
36
+ delete(uri, options) {
37
+ return this.api.delete(uri, options).then(() => true);
38
+ }
39
+ }
40
+ exports.ApiGateway = ApiGateway;
41
+ //# sourceMappingURL=ApiGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiGateway.js","sourceRoot":"","sources":["../../src/services/ApiGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA0C;AAC1C,oCAA0F;AAC1F,kCAAwD;AAExD,MAAa,UAAW,SAAQ,eAAqB;IACnD,YAAqB,MAAW,IAAI,SAAG,EAAE;QACvC,KAAK,EAAE,CAAC;QADW,QAAG,GAAH,GAAG,CAAiB;IAEzC,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,OAAsB;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACzC,IAAA,kBAAU,EACR,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAClB,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI;YACxB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU;YAC9B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAmB;SAChD,CACF,CACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAsB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,IAAW,EAAE,OAAsB;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,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,UAAU,CAAC,GAAQ,EAAE,OAAuC;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC1C,IAAA,kBAAU,EACR,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAClB,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI;YACxB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU;YAC9B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAmB;SAChD,CACF,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAQ,EAAE,IAAU,EAAE,OAAsB;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,IAAU,EAAE,OAAsB;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAsB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;CACF;AAhDD,gCAgDC"}
@@ -1,13 +1,11 @@
1
1
  import { Api, RouteOptions } from './Api';
2
- import { FetchOptions, Func, Gateway, Id, Json, JsonValue, PageList, Uri } from '../types';
3
- import { RequestOptions } from '../http';
4
- export declare class RouteGateway extends Gateway<RouteOptions> {
2
+ import { Func, Id, Json, JsonValue, PageList, Uri } from '../types';
3
+ import { ApiGateway } from './ApiGateway';
4
+ export declare class RouteGateway extends ApiGateway {
5
5
  readonly route: Func<Uri>;
6
6
  readonly routeId: Func<Uri>;
7
7
  readonly api: Api;
8
8
  constructor(route: Func<Uri>, routeId: Func<Uri>, api?: Api);
9
- get(uri: Uri, options?: RouteOptions): Promise<PageList<Json>>;
10
- getOne(uri: Uri, options?: RouteOptions): Promise<Json | undefined>;
11
9
  all(options?: RouteOptions): Promise<PageList<Json>>;
12
10
  byId(id: Id, options?: RouteOptions): Promise<Json | undefined>;
13
11
  search(q: JsonValue, options?: RouteOptions): Promise<PageList<Json>>;
@@ -17,9 +15,4 @@ export declare class RouteGateway extends Gateway<RouteOptions> {
17
15
  update(item: Json, options?: RouteOptions): Promise<Json>;
18
16
  upsert(item: Json, options?: RouteOptions): Promise<Json>;
19
17
  remove(id: Id, options?: RouteOptions): Promise<boolean>;
20
- post(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json>;
21
- postSearch(uri: Uri, options?: RequestOptions | FetchOptions): Promise<PageList<Json>>;
22
- patch(uri: Uri, item: Json, options?: RouteOptions): Promise<Json>;
23
- put(uri: Uri, item: Json, options?: RouteOptions): Promise<Json>;
24
- delete(uri: Uri, options?: RouteOptions): Promise<boolean>;
25
18
  }
@@ -2,24 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RouteGateway = void 0;
4
4
  const Api_1 = require("./Api");
5
- const types_1 = require("../types");
6
5
  const http_1 = require("../http");
7
- class RouteGateway extends types_1.Gateway {
6
+ const ApiGateway_1 = require("./ApiGateway");
7
+ class RouteGateway extends ApiGateway_1.ApiGateway {
8
8
  constructor(route, routeId, api = new Api_1.Api()) {
9
- super();
9
+ super(api);
10
10
  this.route = route;
11
11
  this.routeId = routeId;
12
12
  this.api = api;
13
13
  }
14
- get(uri, options) {
15
- return this.api.get(uri, options).then(r => (0, types_1.toPageList)(r.body.data?.items, (0, http_1.toPageOptions)(options) && {
16
- total: r.body.data?.totalItems,
17
- filters: r.body.data?.meta?.filters,
18
- }));
19
- }
20
- getOne(uri, options) {
21
- return this.get(uri, options).then(r => r.first());
22
- }
23
14
  all(options) {
24
15
  return this.get(this.route(), options);
25
16
  }
@@ -49,24 +40,6 @@ class RouteGateway extends types_1.Gateway {
49
40
  remove(id, options) {
50
41
  return this.delete(this.routeId().id(id), options);
51
42
  }
52
- post(uri, item, options) {
53
- return this.api.post(uri, item, options).then(r => r.body.data?.items.first() ?? {});
54
- }
55
- postSearch(uri, options) {
56
- return this.api.post(uri, options).then(r => (0, types_1.toPageList)(r.body.data?.items, (0, http_1.toPageOptions)(options) && {
57
- total: r.body.data?.totalItems,
58
- filters: r.body.data?.meta?.filters,
59
- }));
60
- }
61
- patch(uri, item, options) {
62
- return this.api.patch(uri, item, options).then(r => r.body.data?.items.first() ?? {});
63
- }
64
- put(uri, item, options) {
65
- return this.api.put(uri, item, options).then(r => r.body.data?.items.first() ?? {});
66
- }
67
- delete(uri, options) {
68
- return this.api.delete(uri, options).then(() => true);
69
- }
70
43
  }
71
44
  exports.RouteGateway = RouteGateway;
72
45
  //# sourceMappingURL=RouteGateway.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RouteGateway.js","sourceRoot":"","sources":["../../src/services/RouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA0C;AAC1C,oCAA+G;AAC/G,kCAAoE;AAEpE,MAAa,YAAa,SAAQ,eAAqB;IACrD,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,CAAC,GAAQ,EAAE,OAAsB;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACzC,IAAA,kBAAU,EACR,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAClB,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI;YACxB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU;YAC9B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAmB;SAChD,CACF,CACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAsB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,GAAG,CAAC,OAAsB;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,EAAM,EAAE,OAAsB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,CAAY,EAAE,OAAsB;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;aACzB,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,EAAE,OAAsB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,OAAsB;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,IAAW,EAAE,OAAsB;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,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,UAAU,CAAC,GAAQ,EAAE,OAAuC;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC1C,IAAA,kBAAU,EACR,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAClB,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI;YACxB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU;YAC9B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAmB;SAChD,CACF,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAQ,EAAE,IAAU,EAAE,OAAsB;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,IAAU,EAAE,OAAsB;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAsB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;CACF;AAtFD,oCAsFC"}
1
+ {"version":3,"file":"RouteGateway.js","sourceRoot":"","sources":["../../src/services/RouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA0C;AAE1C,kCAAqC;AACrC,6CAA0C;AAE1C,MAAa,YAAa,SAAQ,uBAAU;IAC1C,YAAqB,KAAgB,EAAW,OAAkB,EAAW,MAAW,IAAI,SAAG,EAAE;QAC/F,KAAK,CAAC,GAAG,CAAC,CAAC;QADQ,UAAK,GAAL,KAAK,CAAW;QAAW,YAAO,GAAP,OAAO,CAAW;QAAW,QAAG,GAAH,GAAG,CAAiB;IAEjG,CAAC;IAED,GAAG,CAAC,OAAsB;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,EAAM,EAAE,OAAsB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,CAAY,EAAE,OAAsB;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;aACzB,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,EAAE,OAAsB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,OAAsB;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;CACF;AA1CD,oCA0CC"}
@@ -1,4 +1,5 @@
1
1
  export * from './Api';
2
+ export * from './ApiGateway';
2
3
  export * from './AxiosProvider';
3
4
  export * from './MappedRouteGateway';
4
5
  export * from './RouteGateway';
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Api"), exports);
18
+ __exportStar(require("./ApiGateway"), exports);
18
19
  __exportStar(require("./AxiosProvider"), exports);
19
20
  __exportStar(require("./MappedRouteGateway"), exports);
20
21
  __exportStar(require("./RouteGateway"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,kDAAgC;AAChC,uDAAqC;AACrC,iDAA+B;AAC/B,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,+CAA6B;AAC7B,kDAAgC;AAChC,uDAAqC;AACrC,iDAA+B;AAC/B,qDAAmC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "12.9.1",
3
+ "version": "12.10.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.9.1",
34
+ "@thisisagile/easy-test": "12.10.0",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.9",
37
37
  "@types/luxon": "3.0.2",
@@ -0,0 +1,53 @@
1
+ import { Api, RouteOptions } from './Api';
2
+ import { FetchOptions, Filter, Gateway, Json, PageList, toPageList, Uri } from '../types';
3
+ import { RequestOptions, toPageOptions } from '../http';
4
+
5
+ export class ApiGateway extends Gateway<RouteOptions> {
6
+ constructor(readonly api: Api = new Api()) {
7
+ super();
8
+ }
9
+
10
+ get(uri: Uri, options?: RouteOptions): Promise<PageList<Json>> {
11
+ return this.api.get(uri, options).then(r =>
12
+ toPageList<Json>(
13
+ r.body.data?.items,
14
+ toPageOptions(options) && {
15
+ total: r.body.data?.totalItems,
16
+ filters: r.body.data?.meta?.filters as Filter[],
17
+ }
18
+ )
19
+ );
20
+ }
21
+
22
+ getOne(uri: Uri, options?: RouteOptions): Promise<Json | undefined> {
23
+ return this.get(uri, options).then(r => r.first());
24
+ }
25
+
26
+ post(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json> {
27
+ return this.api.post(uri, item, options).then(r => r.body.data?.items.first() ?? {});
28
+ }
29
+
30
+ postSearch(uri: Uri, options?: RequestOptions | FetchOptions): Promise<PageList<Json>> {
31
+ return this.api.post(uri, options).then(r =>
32
+ toPageList<Json>(
33
+ r.body.data?.items,
34
+ toPageOptions(options) && {
35
+ total: r.body.data?.totalItems,
36
+ filters: r.body.data?.meta?.filters as Filter[],
37
+ }
38
+ )
39
+ );
40
+ }
41
+
42
+ patch(uri: Uri, item: Json, options?: RouteOptions): Promise<Json> {
43
+ return this.api.patch(uri, item, options).then(r => r.body.data?.items.first() ?? {});
44
+ }
45
+
46
+ put(uri: Uri, item: Json, options?: RouteOptions): Promise<Json> {
47
+ return this.api.put(uri, item, options).then(r => r.body.data?.items.first() ?? {});
48
+ }
49
+
50
+ delete(uri: Uri, options?: RouteOptions): Promise<boolean> {
51
+ return this.api.delete(uri, options).then(() => true);
52
+ }
53
+ }
@@ -1,26 +1,11 @@
1
1
  import { Api, RouteOptions } from './Api';
2
- import { FetchOptions, Filter, Func, Gateway, Id, Json, JsonValue, PageList, toPageList, Uri } from '../types';
3
- import { HttpStatus, RequestOptions, toPageOptions } from '../http';
2
+ import { Func, Id, Json, JsonValue, PageList, Uri } from '../types';
3
+ import { HttpStatus } from '../http';
4
+ import { ApiGateway } from './ApiGateway';
4
5
 
5
- export class RouteGateway extends Gateway<RouteOptions> {
6
+ export class RouteGateway extends ApiGateway {
6
7
  constructor(readonly route: Func<Uri>, readonly routeId: Func<Uri>, readonly api: Api = new Api()) {
7
- super();
8
- }
9
-
10
- get(uri: Uri, options?: RouteOptions): Promise<PageList<Json>> {
11
- return this.api.get(uri, options).then(r =>
12
- toPageList<Json>(
13
- r.body.data?.items,
14
- toPageOptions(options) && {
15
- total: r.body.data?.totalItems,
16
- filters: r.body.data?.meta?.filters as Filter[],
17
- }
18
- )
19
- );
20
- }
21
-
22
- getOne(uri: Uri, options?: RouteOptions): Promise<Json | undefined> {
23
- return this.get(uri, options).then(r => r.first());
8
+ super(api);
24
9
  }
25
10
 
26
11
  all(options?: RouteOptions): Promise<PageList<Json>> {
@@ -60,32 +45,4 @@ export class RouteGateway extends Gateway<RouteOptions> {
60
45
  remove(id: Id, options?: RouteOptions): Promise<boolean> {
61
46
  return this.delete(this.routeId().id(id), options);
62
47
  }
63
-
64
- post(uri: Uri, item?: Json, options?: RouteOptions): Promise<Json> {
65
- return this.api.post(uri, item, options).then(r => r.body.data?.items.first() ?? {});
66
- }
67
-
68
- postSearch(uri: Uri, options?: RequestOptions | FetchOptions): Promise<PageList<Json>> {
69
- return this.api.post(uri, options).then(r =>
70
- toPageList<Json>(
71
- r.body.data?.items,
72
- toPageOptions(options) && {
73
- total: r.body.data?.totalItems,
74
- filters: r.body.data?.meta?.filters as Filter[],
75
- }
76
- )
77
- );
78
- }
79
-
80
- patch(uri: Uri, item: Json, options?: RouteOptions): Promise<Json> {
81
- return this.api.patch(uri, item, options).then(r => r.body.data?.items.first() ?? {});
82
- }
83
-
84
- put(uri: Uri, item: Json, options?: RouteOptions): Promise<Json> {
85
- return this.api.put(uri, item, options).then(r => r.body.data?.items.first() ?? {});
86
- }
87
-
88
- delete(uri: Uri, options?: RouteOptions): Promise<boolean> {
89
- return this.api.delete(uri, options).then(() => true);
90
- }
91
48
  }
@@ -1,4 +1,5 @@
1
1
  export * from './Api';
2
+ export * from './ApiGateway';
2
3
  export * from './AxiosProvider';
3
4
  export * from './MappedRouteGateway';
4
5
  export * from './RouteGateway';