@thisisagile/easy 13.6.10 → 13.6.12

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.
Files changed (42) hide show
  1. package/dist/data/InMemoryGateway.d.ts +4 -4
  2. package/dist/data/InMemoryGateway.js +2 -2
  3. package/dist/data/InMemoryGateway.js.map +1 -1
  4. package/dist/domain/Repo.js +5 -5
  5. package/dist/domain/Repo.js.map +1 -1
  6. package/dist/domain/Typo.js +6 -6
  7. package/dist/domain/Typo.js.map +1 -1
  8. package/dist/process/Search.d.ts +2 -2
  9. package/dist/process/Search.js +1 -1
  10. package/dist/process/Search.js.map +1 -1
  11. package/dist/services/MappedRouteGateway.d.ts +2 -2
  12. package/dist/services/MappedRouteGateway.js.map +1 -1
  13. package/dist/services/RouteGateway.js.map +1 -1
  14. package/dist/services/ViewRouteGateway.d.ts +2 -2
  15. package/dist/services/ViewRouteGateway.js.map +1 -1
  16. package/dist/sql/TableGateway.d.ts +2 -2
  17. package/dist/sql/TableGateway.js +1 -1
  18. package/dist/sql/TableGateway.js.map +1 -1
  19. package/dist/types/List.d.ts +24 -19
  20. package/dist/types/List.js +71 -30
  21. package/dist/types/List.js.map +1 -1
  22. package/dist/types/PageList.d.ts +44 -5
  23. package/dist/types/PageList.js +106 -9
  24. package/dist/types/PageList.js.map +1 -1
  25. package/dist/utils/If.js +1 -1
  26. package/dist/utils/If.js.map +1 -1
  27. package/dist/utils/View.d.ts +4 -1
  28. package/dist/utils/View.js +8 -6
  29. package/dist/utils/View.js.map +1 -1
  30. package/package.json +2 -2
  31. package/src/data/InMemoryGateway.ts +5 -5
  32. package/src/domain/Repo.ts +6 -22
  33. package/src/domain/Typo.ts +7 -7
  34. package/src/process/Search.ts +3 -3
  35. package/src/services/MappedRouteGateway.ts +23 -23
  36. package/src/services/RouteGateway.ts +45 -45
  37. package/src/services/ViewRouteGateway.ts +31 -31
  38. package/src/sql/TableGateway.ts +8 -3
  39. package/src/types/List.ts +69 -22
  40. package/src/types/PageList.ts +151 -20
  41. package/src/utils/If.ts +5 -3
  42. package/src/utils/View.ts +24 -21
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.asPageList = exports.toPageList = exports.isPageList = exports.toShortFilter = exports.toFilter = void 0;
3
+ exports.asPageList = exports.toPageList = exports.isPageList = exports.PageList = exports.toShortFilter = exports.toFilter = void 0;
4
4
  const List_1 = require("./List");
5
5
  const Constructor_1 = require("./Constructor");
6
6
  const IsA_1 = require("./IsA");
7
+ const Is_1 = require("./Is");
8
+ const Case_1 = require("./Case");
7
9
  const toFilter = (field, value) => (0, exports.toShortFilter)(field, field, value);
8
10
  exports.toFilter = toFilter;
9
11
  const toShortFilter = (field, shortField, value) => ({
@@ -12,16 +14,111 @@ const toShortFilter = (field, shortField, value) => ({
12
14
  values: [{ value }],
13
15
  });
14
16
  exports.toShortFilter = toShortFilter;
17
+ class PageList extends List_1.List {
18
+ constructor() {
19
+ super(...arguments);
20
+ this._take = 250;
21
+ this._skip = 0;
22
+ }
23
+ setPageOptions(options) {
24
+ this._take = options?.take ?? 250;
25
+ this._skip = options?.skip ?? 0;
26
+ this._total = options?.total;
27
+ this._sorts = options?.sorts;
28
+ this._filters = options?.filters;
29
+ return this;
30
+ }
31
+ get take() {
32
+ return this._take;
33
+ }
34
+ get skip() {
35
+ return this._skip;
36
+ }
37
+ get total() {
38
+ return this._total;
39
+ }
40
+ get sorts() {
41
+ return this._sorts;
42
+ }
43
+ get filters() {
44
+ return this._filters;
45
+ }
46
+ asc(p) {
47
+ return (0, exports.toPageList)(super.asc(p), this);
48
+ }
49
+ desc(p) {
50
+ return (0, exports.toPageList)(super.desc(p), this);
51
+ }
52
+ diff(others) {
53
+ return (0, exports.toPageList)(super.diff(others), this);
54
+ }
55
+ diffByKey(others, key) {
56
+ return (0, exports.toPageList)(super.diffByKey(others, key), this);
57
+ }
58
+ intersect(others) {
59
+ return (0, exports.toPageList)(super.intersect(others), this);
60
+ }
61
+ intersectByKey(others, key) {
62
+ return (0, exports.toPageList)(super.intersectByKey(others, key), this);
63
+ }
64
+ map(f, params) {
65
+ const items = super.map(f, params);
66
+ return (0, exports.toPageList)(items, this);
67
+ }
68
+ flatMap(f, params) {
69
+ return (0, exports.toPageList)(super.flatMap(f, params), this);
70
+ }
71
+ mapDefined(f, params) {
72
+ return (0, exports.toPageList)(super.mapDefined(f, params), this);
73
+ }
74
+ mapAsync(f) {
75
+ return super.mapAsync(f).then(r => (0, exports.toPageList)(r, this));
76
+ }
77
+ distinct() {
78
+ return (0, exports.toPageList)(super.distinct(), this);
79
+ }
80
+ distinctByKey(key) {
81
+ return (0, exports.toPageList)(super.distinctByKey(key), this);
82
+ }
83
+ filter(p, params) {
84
+ return (0, exports.toPageList)(super.filter(p, params), this);
85
+ }
86
+ concat(...items) {
87
+ return (0, exports.toPageList)(super.concat(...items), this);
88
+ }
89
+ reverse() {
90
+ return (0, exports.toPageList)(super.reverse(), this);
91
+ }
92
+ splice(start, deleteCount, ...items) {
93
+ return (0, exports.toPageList)(super.splice(start, deleteCount, ...items), this);
94
+ }
95
+ remove(item) {
96
+ return (0, exports.toPageList)(super.remove(item), this);
97
+ }
98
+ replace(key, item) {
99
+ return (0, exports.toPageList)(super.replace(key, item), this);
100
+ }
101
+ switch(item) {
102
+ return (0, exports.toPageList)(super.switch(item), this);
103
+ }
104
+ defined() {
105
+ return (0, exports.toPageList)(super.defined(), this);
106
+ }
107
+ orElse(...alt) {
108
+ return (0, exports.toPageList)(super.orElse(...alt), this);
109
+ }
110
+ slice(start, end) {
111
+ return (0, exports.toPageList)(super.slice(start, end), this);
112
+ }
113
+ }
114
+ exports.PageList = PageList;
15
115
  const isPageList = (l) => (0, List_1.isList)(l) && (0, IsA_1.isA)(l, 'total');
16
116
  exports.isPageList = isPageList;
17
- const toPageList = (items, options) => (0, Constructor_1.on)((0, List_1.toList)(...(items ?? [])), l => {
18
- l.take = options?.take ?? 250;
19
- l.skip = options?.skip ?? 0;
20
- l.total = options?.total;
21
- l.sorts = options?.sorts;
22
- l.filters = options?.filters;
23
- });
117
+ const toPageList = (items = [], options) => (0, Case_1.choose)(items)
118
+ .case(i => i.length === 1 && (0, Is_1.isNumber)(i[0]), i => new PageList().add(...i))
119
+ .else(i => new PageList(...i))
120
+ .setPageOptions(options);
24
121
  exports.toPageList = toPageList;
25
- const asPageList = (c, items = (0, exports.toPageList)()) => (0, exports.toPageList)(items.map(i => (0, Constructor_1.ofConstruct)(c, i)), items);
122
+ const asPageList = (c, items = (0, exports.toPageList)()) => items.map(i => (0, Constructor_1.ofConstruct)(c, i));
26
123
  exports.asPageList = asPageList;
27
124
  //# sourceMappingURL=PageList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageList.js","sourceRoot":"","sources":["../../src/types/PageList.ts"],"names":[],"mappings":";;;AAAA,iCAA8C;AAC9C,+CAA2D;AAC3D,+BAA4B;AAMrB,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,KAAU,EAAU,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAArF,QAAA,QAAQ,YAA6E;AAC3F,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,UAAkB,EAAE,KAAU,EAAU,EAAE,CAAC,CAAC;IACvF,KAAK;IACL,UAAU;IACV,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;CACpB,CAAC,CAAC;AAJU,QAAA,aAAa,iBAIvB;AAKI,MAAM,UAAU,GAAG,CAAI,CAAO,EAAoB,EAAE,CAAC,IAAA,aAAM,EAAI,CAAC,CAAC,IAAI,IAAA,SAAG,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAA/E,QAAA,UAAU,cAAqE;AAErF,MAAM,UAAU,GAAG,CAAI,KAAW,EAAE,OAAwD,EAAe,EAAE,CAClH,IAAA,gBAAE,EAAC,IAAA,aAAM,EAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAgB,EAAE,CAAC,CAAC,EAAE;IACjD,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC;IAC9B,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IACzB,CAAC,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IACzB,CAAC,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;AAC/B,CAAC,CAAC,CAAC;AAPQ,QAAA,UAAU,cAOlB;AAEE,MAAM,UAAU,GAAG,CAAO,CAAe,EAAE,QAAQ,IAAA,kBAAU,GAAK,EAAe,EAAE,CACxF,IAAA,kBAAU,EACR,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,yBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACjC,KAAK,CACN,CAAC;AAJS,QAAA,UAAU,cAInB"}
1
+ {"version":3,"file":"PageList.js","sourceRoot":"","sources":["../../src/types/PageList.ts"],"names":[],"mappings":"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"}
package/dist/utils/If.js CHANGED
@@ -6,7 +6,7 @@ const ifTrue = (o, f, alt) => ((0, types_1.isTrue)(o) ? (0, types_1.ofConstruct)
6
6
  exports.ifTrue = ifTrue;
7
7
  const ifFalse = (o, f, alt) => (!(0, types_1.isTrue)(o) ? (0, types_1.ofConstruct)(f, o) : (0, types_1.ofConstruct)(alt, o));
8
8
  exports.ifFalse = ifFalse;
9
- const ifDefined = (o, f, alt) => ((0, types_1.isDefined)(o) ? (0, types_1.ofConstruct)(f, o) : (0, types_1.ofConstruct)(alt));
9
+ const ifDefined = (o, f, alt) => (0, types_1.isDefined)(o) ? (0, types_1.ofConstruct)(f, o) : (0, types_1.ofConstruct)(alt);
10
10
  exports.ifDefined = ifDefined;
11
11
  const ifNotEmpty = (o, f = o => o, alt) => (0, types_1.isNotEmpty)(o) ? (0, types_1.ofConstruct)(f, o) : (0, types_1.ofConstruct)(alt, o);
12
12
  exports.ifNotEmpty = ifNotEmpty;
@@ -1 +1 @@
1
- {"version":3,"file":"If.js","sourceRoot":"","sources":["../../src/utils/If.ts"],"names":[],"mappings":";;;AAAA,oCAAyF;AAElF,MAAM,MAAM,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAe,EAAE,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAApI,QAAA,MAAM,UAA8H;AAC1I,MAAM,OAAO,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAe,EAAE,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAAtI,QAAA,OAAO,WAA+H;AAC5I,MAAM,SAAS,GAAG,CAAoB,CAAe,EAAE,CAAkC,EAAE,GAAoB,EAAiB,EAAE,CAAC,CAAC,IAAA,iBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC,CAAC;AAAnL,QAAA,SAAS,aAA0K;AACzL,MAAM,UAAU,GAAG,CAAI,CAAU,EAAE,IAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAkB,EAAe,EAAE,CAAC,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAAnJ,QAAA,UAAU,cAAyI"}
1
+ {"version":3,"file":"If.js","sourceRoot":"","sources":["../../src/utils/If.ts"],"names":[],"mappings":";;;AAAA,oCAA2F;AAEpF,MAAM,MAAM,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAe,EAAE,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAApI,QAAA,MAAM,UAA8H;AAC1I,MAAM,OAAO,GAAG,CAAI,CAAU,EAAE,CAAe,EAAE,GAAkB,EAAe,EAAE,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAAtI,QAAA,OAAO,WAA+H;AAC5I,MAAM,SAAS,GAAG,CAAoB,CAAe,EAAE,CAAkC,EAAE,GAAoB,EAAiB,EAAE,CACvI,IAAA,iBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;AADzC,QAAA,SAAS,aACgC;AAC/C,MAAM,UAAU,GAAG,CAAI,CAAU,EAAE,IAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAkB,EAAe,EAAE,CACrG,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAD7C,QAAA,UAAU,cACmC"}
@@ -17,7 +17,10 @@ export declare class View<V = Json> {
17
17
  readonly viewers: Viewer[];
18
18
  constructor(views?: Views<V>, startsFrom?: 'scratch' | 'source', viewers?: Viewer[]);
19
19
  get fromSource(): View<V>;
20
- from: <T = unknown>(source: T) => T extends PageList<infer V_1> ? PageList<V_1> : T extends List<infer V_2> ? List<V_2> : T extends (infer V_3)[] ? V_3[] : V;
20
+ from<T = unknown>(source: PageList<T>): PageList<V>;
21
+ from<T = unknown>(source: List<T>): List<V>;
22
+ from<T = unknown>(source: T[]): V[];
23
+ from<T = unknown>(source: T): V;
21
24
  same: (one?: unknown, another?: unknown) => boolean;
22
25
  private reduce;
23
26
  }
@@ -17,7 +17,7 @@ const toViewer = (key, value) => (0, types_1.choose)(value)
17
17
  .type(types_1.isFunction, f => toViewer(key, { in: { key, f } }))
18
18
  .type(isInOnly, io => toViewer(key, { in: { key, f: io.in } }))
19
19
  .type(isColAndFunction, io => toViewer(key, { in: { key, f: (a) => toFunc(a, io.col, io.in)(a) } }))
20
- .type(isColAndView, io => toViewer(key, { in: { key, f: (a) => toFunc(a, io.col, io.in.from)(a) } }))
20
+ .type(isColAndView, io => toViewer(key, { in: { key, f: (a) => io.in.from((0, Traverse_1.traverse)(a, io.col)) } }))
21
21
  .else(v => v);
22
22
  const toViewers = (views) => (0, types_1.meta)(views)
23
23
  .entries()
@@ -27,17 +27,19 @@ class View {
27
27
  this.views = views;
28
28
  this.startsFrom = startsFrom;
29
29
  this.viewers = viewers;
30
- this.from = (source) => (0, types_1.isArray)(source)
31
- ? (0, types_1.isPageList)(source)
32
- ? (0, types_1.toPageList)(source.map(s => this.reduce((0, types_1.asJson)(s))), source)
33
- : source.map(s => this.reduce((0, types_1.asJson)(s)))
34
- : this.reduce((0, types_1.asJson)(source));
35
30
  this.same = (one, another) => (0, types_1.isEqual)(this.from(one), this.from(another));
36
31
  this.reduce = (i) => this.viewers.reduce((a, v) => types_1.json.set(a, v.in.key, v.in.f(i, v.in.key)), this.startsFrom === 'scratch' ? {} : i);
37
32
  }
38
33
  get fromSource() {
39
34
  return new View(this.views, 'source', this.viewers);
40
35
  }
36
+ from(source) {
37
+ if ((0, types_1.isPageList)(source))
38
+ return (0, types_1.toPageList)(source.map(s => this.reduce((0, types_1.asJson)(s))), source);
39
+ if ((0, types_1.isArray)(source))
40
+ return source.map(s => this.reduce((0, types_1.asJson)(s)));
41
+ return this.reduce((0, types_1.asJson)(source));
42
+ }
41
43
  }
42
44
  exports.View = View;
43
45
  const skip = () => undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"View.js","sourceRoot":"","sources":["../../src/utils/View.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"View.js","sourceRoot":"","sources":["../../src/utils/View.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "13.6.10",
3
+ "version": "13.6.12",
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": "13.6.10",
34
+ "@thisisagile/easy-test": "13.6.12",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^9.0.2",
37
37
  "@types/luxon": "3.2.0",
@@ -1,20 +1,20 @@
1
- import { Exception, Gateway, Id, isDefined, Json, JsonValue, List, Optional, toList } from '../types';
1
+ import { Exception, FetchOptions, Gateway, Id, isDefined, Json, JsonValue, Optional, PageList, toPageList } from '../types';
2
2
  import { when } from '../validation';
3
3
 
4
4
  export class InMemoryGateway extends Gateway {
5
- constructor(private readonly data: Promise<List<Json>>) {
5
+ constructor(private readonly data: Promise<PageList<Json>>) {
6
6
  super();
7
7
  }
8
8
 
9
- all(): Promise<List<Json>> {
10
- return this.data.then(d => toList(d));
9
+ all(options?: FetchOptions): Promise<PageList<Json>> {
10
+ return this.data.then(d => toPageList(d, d));
11
11
  }
12
12
 
13
13
  byId(id: Id): Promise<Optional<Json>> {
14
14
  return this.data.then(d => d.byId(id)).then(d => (d ? { ...d } : undefined));
15
15
  }
16
16
 
17
- by = (key: string, value: JsonValue): Promise<List<Json>> => {
17
+ by = (key: string, value: JsonValue): Promise<PageList<Json>> => {
18
18
  return this.data.then(d => d.filter(i => i[key] === value));
19
19
  };
20
20
 
@@ -1,20 +1,4 @@
1
- import {
2
- asList,
3
- asPageList,
4
- Constructor,
5
- Exception,
6
- FetchOptions,
7
- Gateway,
8
- Id,
9
- isValidatable,
10
- Json,
11
- JsonValue,
12
- Key,
13
- List,
14
- PageList,
15
- Repository,
16
- toJson,
17
- } from '../types';
1
+ import { asList, Constructor, Exception, FetchOptions, Gateway, Id, isValidatable, Json, JsonValue, Key, List, PageList, Repository, toJson } from '../types';
18
2
  import { when } from '../validation';
19
3
  import { reject, resolve } from '../utils';
20
4
  import { Struct } from './Struct';
@@ -29,7 +13,7 @@ export class Repo<T extends Struct, Options = FetchOptions> extends Repository<T
29
13
  create = (item: T | Json): T => (isValidatable(item) ? item : new this.ctor(item));
30
14
 
31
15
  all(options?: Options): Promise<PageList<T>> {
32
- return this.gateway.all(options).then(js => asPageList(this.ctor, js));
16
+ return this.gateway.all(options).then(js => js.map(i => new this.ctor(i)));
33
17
  }
34
18
 
35
19
  byId(id: Id): Promise<T> {
@@ -44,19 +28,19 @@ export class Repo<T extends Struct, Options = FetchOptions> extends Repository<T
44
28
  }
45
29
 
46
30
  byKey(key: Key, options?: Options): Promise<PageList<T>> {
47
- return this.gateway.by('key', key, options).then(js => asPageList(this.ctor, js));
31
+ return this.gateway.by('key', key, options).then(js => js.map(i => new this.ctor(i)));
48
32
  }
49
33
 
50
34
  by(key: keyof T, value: JsonValue, options?: Options): Promise<PageList<T>> {
51
- return this.gateway.by(key.toString(), value, options).then(js => asPageList(this.ctor, js));
35
+ return this.gateway.by(key.toString(), value, options).then(js => js.map(i => new this.ctor(i)));
52
36
  }
53
37
 
54
38
  search(q: JsonValue, options?: Options): Promise<PageList<T>> {
55
- return this.gateway.search(q, options).then(js => asPageList(this.ctor, js));
39
+ return this.gateway.search(q, options).then(js => js.map(i => new this.ctor(i)));
56
40
  }
57
41
 
58
42
  filter(options?: Options): Promise<PageList<T>> {
59
- return this.gateway.filter(options).then(js => asPageList(this.ctor, js));
43
+ return this.gateway.filter(options).then(js => js.map(i => new this.ctor(i)));
60
44
  }
61
45
 
62
46
  exists(id: Id): Promise<boolean> {
@@ -1,4 +1,4 @@
1
- import { Exception, FetchOptions, Gateway, Id, Json, JsonValue, Key, List, PageList, Repository, toList, toPageList } from '../types';
1
+ import { Exception, FetchOptions, Gateway, Id, Json, JsonValue, Key, List, PageList, Repository } from '../types';
2
2
  import { when } from '../validation';
3
3
  import { View } from '../utils';
4
4
 
@@ -10,7 +10,7 @@ export class Typo<T, Options = FetchOptions> extends Repository<T, Options> {
10
10
  create = (j: Json): T => this.view.from(j);
11
11
 
12
12
  all(options?: Options): Promise<PageList<T>> {
13
- return this.gateway.all(options).then(js => toPageList(js.map(j => this.create(j))));
13
+ return this.gateway.all(options).then(js => js.map(this.create));
14
14
  }
15
15
 
16
16
  byId(id: Id): Promise<T> {
@@ -21,23 +21,23 @@ export class Typo<T, Options = FetchOptions> extends Repository<T, Options> {
21
21
  }
22
22
 
23
23
  byIds(...ids: Id[]): Promise<List<T>> {
24
- return this.gateway.byIds(...ids).then(js => toList(js.map(j => this.create(j))));
24
+ return this.gateway.byIds(...ids).then(js => js.map(this.create));
25
25
  }
26
26
 
27
27
  byKey(key: Key, options?: Options): Promise<PageList<T>> {
28
- return this.gateway.by('key', key, options).then(js => toPageList(js.map(j => this.create(j))));
28
+ return this.gateway.by('key', key, options).then(js => js.map(this.create));
29
29
  }
30
30
 
31
31
  by(key: keyof T, value: JsonValue, options?: Options): Promise<PageList<T>> {
32
- return this.gateway.by(key.toString(), value, options).then(js => toPageList(js.map(j => this.create(j))));
32
+ return this.gateway.by(key.toString(), value, options).then(js => js.map(this.create));
33
33
  }
34
34
 
35
35
  search(q: JsonValue, options?: Options): Promise<PageList<T>> {
36
- return this.gateway.search(q, options).then(js => toPageList(js.map(j => this.create(j))));
36
+ return this.gateway.search(q, options).then(js => js.map(this.create));
37
37
  }
38
38
 
39
39
  filter(options?: Options): Promise<PageList<T>> {
40
- return this.gateway.filter(options).then(js => toPageList(js.map(j => this.create(j))));
40
+ return this.gateway.filter(options).then(js => js.map(j => this.create(j)));
41
41
  }
42
42
 
43
43
  exists(id: Id): Promise<boolean> {
@@ -1,4 +1,4 @@
1
- import { choose, FetchOptions, Id, JsonValue, Key, PageList, Repository, toList } from '../types';
1
+ import { choose, FetchOptions, Id, JsonValue, Key, List, PageList, Repository, toPageList } from '../types';
2
2
  import { resolve } from '../utils';
3
3
  import { Req } from '../resources';
4
4
 
@@ -9,7 +9,7 @@ export class Search<T, Options = FetchOptions> {
9
9
 
10
10
  byId = (id: Id): Promise<T> => this.repo.byId(id);
11
11
 
12
- byIds = (...ids: Id[]): Promise<PageList<T>> => this.repo.byIds(...ids);
12
+ byIds = (...ids: Id[]): Promise<List<T>> => this.repo.byIds(...ids);
13
13
 
14
14
  byKey = (key: Key, options?: Options): Promise<PageList<T>> => this.repo.byKey(key, options);
15
15
 
@@ -21,7 +21,7 @@ export class Search<T, Options = FetchOptions> {
21
21
  q => q,
22
22
  q => this.repo.search(q, options)
23
23
  )
24
- .else(() => resolve(toList<T>()));
24
+ .else(() => resolve(toPageList<T>()));
25
25
 
26
26
  filter = (options?: Options): Promise<PageList<T>> => this.repo.filter(options);
27
27
 
@@ -1,30 +1,30 @@
1
- import {Api} from './Api';
2
- import {Func, Json, List, Optional, Uri} from '../types';
3
- import {Mapper} from '../utils';
4
- import {RouteGateway} from './RouteGateway';
5
- import {RequestOptions} from '../http';
1
+ import { Api } from './Api';
2
+ import { Func, Json, Optional, PageList, Uri } from '../types';
3
+ import { Mapper } from '../utils';
4
+ import { RouteGateway } from './RouteGateway';
5
+ import { RequestOptions } from '../http';
6
6
 
7
7
  export class MappedRouteGateway extends RouteGateway {
8
- constructor(readonly route: Func<Uri>, readonly routeId: Func<Uri>, readonly map = new Mapper(), readonly api: Api = new Api()) {
9
- super(route, routeId, api);
10
- }
8
+ constructor(readonly route: Func<Uri>, readonly routeId: Func<Uri>, readonly map = new Mapper(), readonly api: Api = new Api()) {
9
+ super(route, routeId, api);
10
+ }
11
11
 
12
- get(uri: Uri, options?: RequestOptions): Promise<List<Json>> {
13
- return super.get(uri, options).then(is => is.map(i => this.map.in(i)));
14
- }
12
+ get(uri: Uri, options?: RequestOptions): Promise<PageList<Json>> {
13
+ return super.get(uri, options).then(is => is.map(i => this.map.in(i)));
14
+ }
15
15
 
16
- getOne(uri: Uri, options?: RequestOptions): Promise<Optional<Json>> {
17
- return super
18
- .get(uri, options)
19
- .then(is => is.first())
20
- .then(i => this.map.in(i));
21
- }
16
+ getOne(uri: Uri, options?: RequestOptions): Promise<Optional<Json>> {
17
+ return super
18
+ .get(uri, options)
19
+ .then(is => is.first())
20
+ .then(i => this.map.in(i));
21
+ }
22
22
 
23
- add(item: Json): Promise<Json> {
24
- return super.add(this.map.out(item));
25
- }
23
+ add(item: Json): Promise<Json> {
24
+ return super.add(this.map.out(item));
25
+ }
26
26
 
27
- update(item: Json): Promise<Json> {
28
- return super.update(this.map.out(item));
29
- }
27
+ update(item: Json): Promise<Json> {
28
+ return super.update(this.map.out(item));
29
+ }
30
30
  }
@@ -1,48 +1,48 @@
1
- import {Api, RouteOptions} from './Api';
2
- import {Func, Id, Json, JsonValue, Optional, PageList, Uri} from '../types';
3
- import {HttpStatus} from '../http';
4
- import {ApiGateway} from './ApiGateway';
1
+ import { Api, RouteOptions } from './Api';
2
+ import { Func, Id, Json, JsonValue, Optional, PageList, Uri } from '../types';
3
+ import { HttpStatus } from '../http';
4
+ import { ApiGateway } from './ApiGateway';
5
5
 
6
6
  export class RouteGateway extends ApiGateway {
7
- constructor(readonly route: Func<Uri>, readonly routeId: Func<Uri>, readonly api: Api = new Api()) {
8
- super(api);
9
- }
10
-
11
- all(options?: RouteOptions): Promise<PageList<Json>> {
12
- return this.get(this.route(), options);
13
- }
14
-
15
- byId(id: Id, options?: RouteOptions): Promise<Optional<Json>> {
16
- return this.getOne(this.routeId().id(id));
17
- }
18
-
19
- search(q: JsonValue, options?: RouteOptions): Promise<PageList<Json>> {
20
- return this.get(this.route().query(q), options);
21
- }
22
-
23
- exists(id: Id, options?: RouteOptions): Promise<boolean> {
24
- return this.get(this.routeId().id(id))
25
- .then(r => r.length === 1)
26
- .catch(r => (HttpStatus.NotFound.equals(r.status) ? false : Promise.reject(r)));
27
- }
28
-
29
- add(item: Json, options?: RouteOptions): Promise<Json> {
30
- return this.post(this.route(), item, options);
31
- }
32
-
33
- filter(options?: RouteOptions): Promise<PageList<Json>> {
34
- return this.postSearch(this.route(), options);
35
- }
36
-
37
- update(item: Json, options?: RouteOptions): Promise<Json> {
38
- return this.patch(this.routeId().id(item.id), item, options);
39
- }
40
-
41
- upsert(item: Json, options?: RouteOptions): Promise<Json> {
42
- return this.put(this.routeId().id(item.id), item, options);
43
- }
44
-
45
- remove(id: Id, options?: RouteOptions): Promise<boolean> {
46
- return this.delete(this.routeId().id(id), options);
47
- }
7
+ constructor(readonly route: Func<Uri>, readonly routeId: Func<Uri>, readonly api: Api = new Api()) {
8
+ super(api);
9
+ }
10
+
11
+ all(options?: RouteOptions): Promise<PageList<Json>> {
12
+ return this.get(this.route(), options);
13
+ }
14
+
15
+ byId(id: Id, options?: RouteOptions): Promise<Optional<Json>> {
16
+ return this.getOne(this.routeId().id(id));
17
+ }
18
+
19
+ search(q: JsonValue, options?: RouteOptions): Promise<PageList<Json>> {
20
+ return this.get(this.route().query(q), options);
21
+ }
22
+
23
+ exists(id: Id, options?: RouteOptions): Promise<boolean> {
24
+ return this.get(this.routeId().id(id))
25
+ .then(r => r.length === 1)
26
+ .catch(r => (HttpStatus.NotFound.equals(r.status) ? false : Promise.reject(r)));
27
+ }
28
+
29
+ add(item: Json, options?: RouteOptions): Promise<Json> {
30
+ return this.post(this.route(), item, options);
31
+ }
32
+
33
+ filter(options?: RouteOptions): Promise<PageList<Json>> {
34
+ return this.postSearch(this.route(), options);
35
+ }
36
+
37
+ update(item: Json, options?: RouteOptions): Promise<Json> {
38
+ return this.patch(this.routeId().id(item.id), item, options);
39
+ }
40
+
41
+ upsert(item: Json, options?: RouteOptions): Promise<Json> {
42
+ return this.put(this.routeId().id(item.id), item, options);
43
+ }
44
+
45
+ remove(id: Id, options?: RouteOptions): Promise<boolean> {
46
+ return this.delete(this.routeId().id(id), options);
47
+ }
48
48
  }
@@ -1,38 +1,38 @@
1
- import {Api} from './Api';
2
- import {Func, Json, List, Optional, Uri} from '../types';
3
- import {view} from '../utils';
4
- import {RouteGateway} from './RouteGateway';
5
- import {RequestOptions} from '../http';
1
+ import { Api } from './Api';
2
+ import { Func, Json, Optional, PageList, Uri } from '../types';
3
+ import { view } from '../utils';
4
+ import { RouteGateway } from './RouteGateway';
5
+ import { RequestOptions } from '../http';
6
6
 
7
7
  export class ViewRouteGateway extends RouteGateway {
8
- constructor(
9
- readonly route: Func<Uri>,
10
- readonly routeId: Func<Uri>,
11
- readonly views = {
12
- in: view({}).fromSource,
13
- out: view({}).fromSource,
14
- },
15
- readonly api: Api = new Api()
16
- ) {
17
- super(route, routeId, api);
18
- }
8
+ constructor(
9
+ readonly route: Func<Uri>,
10
+ readonly routeId: Func<Uri>,
11
+ readonly views = {
12
+ in: view({}).fromSource,
13
+ out: view({}).fromSource,
14
+ },
15
+ readonly api: Api = new Api()
16
+ ) {
17
+ super(route, routeId, api);
18
+ }
19
19
 
20
- get(uri: Uri, options?: RequestOptions): Promise<List<Json>> {
21
- return super.get(uri, options).then(is => is.map(i => this.views.in.from(i)));
22
- }
20
+ get(uri: Uri, options?: RequestOptions): Promise<PageList<Json>> {
21
+ return super.get(uri, options).then(is => is.map(i => this.views.in.from(i)));
22
+ }
23
23
 
24
- getOne(uri: Uri, options?: RequestOptions): Promise<Optional<Json>> {
25
- return super
26
- .get(uri, options)
27
- .then(is => is.first())
28
- .then(i => this.views.in.from(i));
29
- }
24
+ getOne(uri: Uri, options?: RequestOptions): Promise<Optional<Json>> {
25
+ return super
26
+ .get(uri, options)
27
+ .then(is => is.first())
28
+ .then(i => this.views.in.from(i));
29
+ }
30
30
 
31
- add(item: Json): Promise<Json> {
32
- return super.add(this.views.out.from(item));
33
- }
31
+ add(item: Json): Promise<Json> {
32
+ return super.add(this.views.out.from(item));
33
+ }
34
34
 
35
- update(item: Json): Promise<Json> {
36
- return super.update(this.views.out.from(item));
37
- }
35
+ update(item: Json): Promise<Json> {
36
+ return super.update(this.views.out.from(item));
37
+ }
38
38
  }