@thisisagile/easy 13.6.11 → 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.
- package/dist/data/InMemoryGateway.d.ts +4 -4
- package/dist/data/InMemoryGateway.js +2 -2
- package/dist/data/InMemoryGateway.js.map +1 -1
- package/dist/domain/Repo.js +5 -5
- package/dist/domain/Repo.js.map +1 -1
- package/dist/domain/Typo.js +6 -6
- package/dist/domain/Typo.js.map +1 -1
- package/dist/process/Search.d.ts +2 -2
- package/dist/process/Search.js +1 -1
- package/dist/process/Search.js.map +1 -1
- package/dist/services/MappedRouteGateway.d.ts +2 -2
- package/dist/services/MappedRouteGateway.js.map +1 -1
- package/dist/services/RouteGateway.js.map +1 -1
- package/dist/services/ViewRouteGateway.d.ts +2 -2
- package/dist/services/ViewRouteGateway.js.map +1 -1
- package/dist/sql/TableGateway.d.ts +2 -2
- package/dist/sql/TableGateway.js +1 -1
- package/dist/sql/TableGateway.js.map +1 -1
- package/dist/types/List.d.ts +24 -19
- package/dist/types/List.js +71 -30
- package/dist/types/List.js.map +1 -1
- package/dist/types/PageList.d.ts +43 -4
- package/dist/types/PageList.js +106 -9
- package/dist/types/PageList.js.map +1 -1
- package/dist/utils/If.js +1 -1
- package/dist/utils/If.js.map +1 -1
- package/dist/utils/View.js.map +1 -1
- package/package.json +2 -2
- package/src/data/InMemoryGateway.ts +5 -5
- package/src/domain/Repo.ts +6 -22
- package/src/domain/Typo.ts +7 -7
- package/src/process/Search.ts +3 -3
- package/src/services/MappedRouteGateway.ts +23 -23
- package/src/services/RouteGateway.ts +45 -45
- package/src/services/ViewRouteGateway.ts +31 -31
- package/src/sql/TableGateway.ts +8 -3
- package/src/types/List.ts +69 -22
- package/src/types/PageList.ts +148 -17
- package/src/utils/If.ts +5 -3
- package/src/utils/View.ts +5 -1
package/dist/types/PageList.js
CHANGED
|
@@ -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,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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)()) =>
|
|
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,
|
|
1
|
+
{"version":3,"file":"PageList.js","sourceRoot":"","sources":["../../src/types/PageList.ts"],"names":[],"mappings":";;;AAAA,iCAAsC;AACtC,+CAAuD;AACvD,+BAA4B;AAK5B,6BAAgC;AAChC,iCAAgC;AAKzB,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;AAIH,MAAa,QAAY,SAAQ,WAAO;IAAxC;;QACU,UAAK,GAAG,GAAG,CAAC;QACZ,UAAK,GAAG,CAAC,CAAC;IA8HpB,CAAC;IAzHC,cAAc,CAAC,OAA0C;QACvD,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,CAAsB;QACxB,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,CAAsB;QACzB,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,MAAoB;QACvB,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,MAAoB,EAAE,GAAY;QAC1C,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,MAAoB;QAC5B,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,cAAc,CAAC,MAAoB,EAAE,GAAY;QAC/C,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,GAAG,CAAI,CAA6C,EAAE,MAAgB;QACpE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,IAAA,kBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CAAoB,CAA4E,EAAE,MAAa;QACpH,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,UAAU,CAAI,CAA6C,EAAE,MAAgB;QAC3E,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,QAAQ,CAAC,CAAuB;QAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,kBAAU,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ;QACN,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa,CAAC,GAAY;QACxB,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,CAAmD,EAAE,MAAgB;QAC1E,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAID,MAAM,CAAC,GAAG,KAA6B;QACrC,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,OAAO;QACL,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAID,MAAM,CAAC,KAAa,EAAE,WAAmB,EAAE,GAAG,KAAU;QACtD,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,CAAC,GAAY,EAAE,IAAO;QAC3B,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,GAAG,GAAiB;QACzB,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,KAAc,EAAE,GAAY;QAChC,OAAO,IAAA,kBAAU,EAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;CACF;AAhID,4BAgIC;AAEM,MAAM,UAAU,GAAG,CAAI,CAAW,EAAoB,EAAE,CAAC,IAAA,aAAM,EAAI,CAAC,CAAC,IAAI,IAAA,SAAG,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAAnF,QAAA,UAAU,cAAyE;AAEzF,MAAM,UAAU,GAAG,CAAI,QAAa,EAAE,EAAE,OAAwD,EAAe,EAAE,CACtH,IAAA,aAAM,EAAC,KAAK,CAAC;KACV,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,aAAQ,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACjC;KACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAI,GAAG,CAAC,CAAC,CAAC;KAChC,cAAc,CAAC,OAAO,CAAC,CAAC;AAPhB,QAAA,UAAU,cAOM;AAGtB,MAAM,UAAU,GAAG,CAAO,CAAe,EAAE,QAAQ,IAAA,kBAAU,GAAK,EAAe,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,yBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAAhH,QAAA,UAAU,cAAsG"}
|
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) => (
|
|
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;
|
package/dist/utils/If.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"If.js","sourceRoot":"","sources":["../../src/utils/If.ts"],"names":[],"mappings":";;;AAAA,
|
|
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"}
|
package/dist/utils/View.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
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,
|
|
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<
|
|
5
|
+
constructor(private readonly data: Promise<PageList<Json>>) {
|
|
6
6
|
super();
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
all(): Promise<
|
|
10
|
-
return this.data.then(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<
|
|
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
|
|
package/src/domain/Repo.ts
CHANGED
|
@@ -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 =>
|
|
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 =>
|
|
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 =>
|
|
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 =>
|
|
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 =>
|
|
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> {
|
package/src/domain/Typo.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Exception, FetchOptions, Gateway, Id, Json, JsonValue, Key, List, PageList, Repository
|
|
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 =>
|
|
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 =>
|
|
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 =>
|
|
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 =>
|
|
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 =>
|
|
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 =>
|
|
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> {
|
package/src/process/Search.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { choose, FetchOptions, Id, JsonValue, Key, PageList, Repository,
|
|
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<
|
|
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(
|
|
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,
|
|
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
|
-
|
|
9
|
-
|
|
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
|
-
|
|
13
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
add(item: Json): Promise<Json> {
|
|
24
|
+
return super.add(this.map.out(item));
|
|
25
|
+
}
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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,
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
21
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
add(item: Json): Promise<Json> {
|
|
32
|
+
return super.add(this.views.out.from(item));
|
|
33
|
+
}
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
update(item: Json): Promise<Json> {
|
|
36
|
+
return super.update(this.views.out.from(item));
|
|
37
|
+
}
|
|
38
38
|
}
|
package/src/sql/TableGateway.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Gateway, Id, isDefined, Json,
|
|
1
|
+
import { Gateway, Id, isDefined, Json, Optional, PageList, PageOptions, toPageList } from '../types';
|
|
2
2
|
import { QueryProvider } from '../data';
|
|
3
3
|
import { when } from '../validation';
|
|
4
4
|
import { ifDefined } from '../utils';
|
|
@@ -13,10 +13,15 @@ export class TableGateway<T extends Table> extends Gateway<PageOptions> {
|
|
|
13
13
|
|
|
14
14
|
protected provide = ({ provider }: TableOptions = {}): QueryProvider => provider ?? this.provider;
|
|
15
15
|
|
|
16
|
-
all(options?: TableOptions): Promise<
|
|
16
|
+
all(options?: TableOptions): Promise<PageList<Json>> {
|
|
17
17
|
return this.provide(options)
|
|
18
18
|
.query(this.table.select())
|
|
19
|
-
.then(js =>
|
|
19
|
+
.then(js =>
|
|
20
|
+
toPageList(
|
|
21
|
+
js.map(j => this.table.in(j)),
|
|
22
|
+
options
|
|
23
|
+
)
|
|
24
|
+
);
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
byId(id: Id, options?: TableOptions): Promise<Optional<Json>> {
|