@thisisagile/easy 13.4.11 → 13.4.13
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/services/MappedRouteGateway.js.map +1 -1
- package/dist/services/RouteGateway.js.map +1 -1
- package/dist/services/ViewRouteGateway.js.map +1 -1
- package/dist/utils/View.d.ts +2 -2
- package/dist/utils/View.js +1 -1
- package/dist/utils/View.js.map +1 -1
- package/package.json +2 -2
- package/src/services/MappedRouteGateway.ts +23 -23
- package/src/services/RouteGateway.ts +45 -45
- package/src/services/ViewRouteGateway.ts +31 -31
- package/src/utils/View.ts +25 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MappedRouteGateway.js","sourceRoot":"","sources":["../../src/services/MappedRouteGateway.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"MappedRouteGateway.js","sourceRoot":"","sources":["../../src/services/MappedRouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA0B;AAE1B,oCAAgC;AAChC,iDAA4C;AAG5C,MAAa,kBAAmB,SAAQ,2BAAY;IAChD,YAAqB,KAAgB,EAAW,OAAkB,EAAW,MAAM,IAAI,cAAM,EAAE,EAAW,MAAW,IAAI,SAAG,EAAE;QAC1H,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QADV,UAAK,GAAL,KAAK,CAAW;QAAW,YAAO,GAAP,OAAO,CAAW;QAAW,QAAG,GAAH,GAAG,CAAe;QAAW,QAAG,GAAH,GAAG,CAAiB;IAE9H,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,OAAwB;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAwB;QACrC,OAAO,KAAK;aACP,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;aACjB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;aACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,IAAU;QACV,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,IAAU;QACb,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC;CACJ;AAvBD,gDAuBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteGateway.js","sourceRoot":"","sources":["../../src/services/RouteGateway.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"RouteGateway.js","sourceRoot":"","sources":["../../src/services/RouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAAwC;AAExC,kCAAmC;AACnC,6CAAwC;AAExC,MAAa,YAAa,SAAQ,uBAAU;IACxC,YAAqB,KAAgB,EAAW,OAAkB,EAAW,MAAW,IAAI,SAAG,EAAE;QAC7F,KAAK,CAAC,GAAG,CAAC,CAAC;QADM,UAAK,GAAL,KAAK,CAAW;QAAW,YAAO,GAAP,OAAO,CAAW;QAAW,QAAG,GAAH,GAAG,CAAiB;IAEjG,CAAC;IAED,GAAG,CAAC,OAAsB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,EAAM,EAAE,OAAsB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,CAAY,EAAE,OAAsB;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACjC,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;IACxF,CAAC;IAED,GAAG,CAAC,IAAU,EAAE,OAAsB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,OAAsB;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACJ;AA1CD,oCA0CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewRouteGateway.js","sourceRoot":"","sources":["../../src/services/ViewRouteGateway.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"ViewRouteGateway.js","sourceRoot":"","sources":["../../src/services/ViewRouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA0B;AAE1B,oCAA8B;AAC9B,iDAA4C;AAG5C,MAAa,gBAAiB,SAAQ,2BAAY;IAC9C,YACa,KAAgB,EAChB,OAAkB,EAClB,QAAQ;QACb,EAAE,EAAE,IAAA,YAAI,EAAC,EAAE,CAAC,CAAC,UAAU;QACvB,GAAG,EAAE,IAAA,YAAI,EAAC,EAAE,CAAC,CAAC,UAAU;KAC3B,EACQ,MAAW,IAAI,SAAG,EAAE;QAE7B,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QARlB,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAAW;QAClB,UAAK,GAAL,KAAK,CAGb;QACQ,QAAG,GAAH,GAAG,CAAiB;IAGjC,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,OAAwB;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAwB;QACrC,OAAO,KAAK;aACP,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;aACjB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;aACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,IAAU;QACV,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,IAAU;QACb,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;CACJ;AA/BD,4CA+BC"}
|
package/dist/utils/View.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Constructor, DontInfer, Json } from '../types';
|
|
1
|
+
import { Constructor, DontInfer, Json, List } from '../types';
|
|
2
2
|
type Func<T = unknown> = (a: any, key?: string) => T;
|
|
3
3
|
export type InOut = {
|
|
4
4
|
in?: Func | View;
|
|
@@ -17,7 +17,7 @@ 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
|
|
20
|
+
from: <T = unknown>(source: T) => T extends List<infer V_1> ? List<V_1> : T extends (infer V_2)[] ? V_2[] : V;
|
|
21
21
|
same: (one?: unknown, another?: unknown) => boolean;
|
|
22
22
|
private reduce;
|
|
23
23
|
}
|
package/dist/utils/View.js
CHANGED
|
@@ -27,7 +27,7 @@ class View {
|
|
|
27
27
|
this.views = views;
|
|
28
28
|
this.startsFrom = startsFrom;
|
|
29
29
|
this.viewers = viewers;
|
|
30
|
-
this.from = (source) => (
|
|
30
|
+
this.from = (source) => (0, types_1.isArray)(source) ? source.map(s => this.reduce((0, types_1.asJson)(s))) : this.reduce((0, types_1.asJson)(source));
|
|
31
31
|
this.same = (one, another) => (0, types_1.isEqual)(this.from(one), this.from(another));
|
|
32
32
|
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);
|
|
33
33
|
}
|
package/dist/utils/View.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"View.js","sourceRoot":"","sources":["../../src/utils/View.ts"],"names":[],"mappings":";;;AAAA,
|
|
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.4.
|
|
3
|
+
"version": "13.4.13",
|
|
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.4.
|
|
34
|
+
"@thisisagile/easy-test": "13.4.13",
|
|
35
35
|
"@types/form-urlencoded": "^4.4.0",
|
|
36
36
|
"@types/jsonwebtoken": "^9.0.1",
|
|
37
37
|
"@types/luxon": "3.2.0",
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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';
|
|
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<List<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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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';
|
|
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<List<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/utils/View.ts
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
isString,
|
|
14
14
|
Json,
|
|
15
15
|
json,
|
|
16
|
+
List,
|
|
16
17
|
meta,
|
|
17
18
|
tryTo,
|
|
18
19
|
} from '../types';
|
|
@@ -24,8 +25,18 @@ export type InOut = { in?: Func | View; col?: string };
|
|
|
24
25
|
|
|
25
26
|
const isColOnly = (v: unknown): v is InOut => isObject(v) && isDefined(v.col) && !isDefined(v.in);
|
|
26
27
|
const isInOnly = (v: unknown): v is InOut => isObject(v) && !isDefined(v.col) && isFunction(v.in);
|
|
27
|
-
const isColAndFunction = (
|
|
28
|
-
|
|
28
|
+
const isColAndFunction = (
|
|
29
|
+
v: unknown,
|
|
30
|
+
): v is {
|
|
31
|
+
col: string;
|
|
32
|
+
in: Func;
|
|
33
|
+
} => isObject(v) && isDefined(v.col) && isFunction(v.in);
|
|
34
|
+
const isColAndView = (
|
|
35
|
+
v: unknown,
|
|
36
|
+
): v is {
|
|
37
|
+
col: string;
|
|
38
|
+
in: View;
|
|
39
|
+
} => isObject(v) && isDefined(v.col) && v.in instanceof View;
|
|
29
40
|
|
|
30
41
|
type Views<V = Json> = Partial<Record<keyof V, string | Func | InOut | number | boolean | undefined>>;
|
|
31
42
|
type Viewer = { in: { key: string; f: Func } };
|
|
@@ -36,9 +47,9 @@ const toFunc = (a: any, col: string, f: Func = a => a): Func =>
|
|
|
36
47
|
const toViewer = (key: string, value: unknown): Viewer =>
|
|
37
48
|
choose(value)
|
|
38
49
|
.is.not.defined(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
50
|
+
v => v,
|
|
51
|
+
() => toViewer(key, () => undefined),
|
|
52
|
+
)
|
|
42
53
|
.type(isBoolean, b => toViewer(key, () => b))
|
|
43
54
|
.type(isNumber, n => toViewer(key, () => n))
|
|
44
55
|
.type(isString, s => toViewer(key, (a: any) => toFunc(a, s)(a)))
|
|
@@ -55,13 +66,16 @@ const toViewers = (views: Views): Viewer[] =>
|
|
|
55
66
|
.map(([k, v]) => toViewer(k, v));
|
|
56
67
|
|
|
57
68
|
export class View<V = Json> {
|
|
58
|
-
constructor(private views: Views<V> = {} as Views<V>, readonly startsFrom: 'scratch' | 'source' = 'scratch', readonly viewers: Viewer[] = toViewers(views)) {
|
|
69
|
+
constructor(private views: Views<V> = {} as Views<V>, readonly startsFrom: 'scratch' | 'source' = 'scratch', readonly viewers: Viewer[] = toViewers(views)) {
|
|
70
|
+
}
|
|
59
71
|
|
|
60
72
|
get fromSource(): View<V> {
|
|
61
73
|
return new View(this.views, 'source', this.viewers);
|
|
62
74
|
}
|
|
63
75
|
|
|
64
|
-
from = <T = unknown>(source: T): T extends
|
|
76
|
+
from = <T = unknown>(source: T): T extends List<infer V> ? List<V> : T extends Array<infer V> ? V[] : V =>
|
|
77
|
+
isArray(source) ? source.map(s => this.reduce(asJson(s))) : this.reduce(asJson(source));
|
|
78
|
+
|
|
65
79
|
same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));
|
|
66
80
|
|
|
67
81
|
private reduce = (i: any): any => this.viewers.reduce((a: any, v) => json.set(a, v.in.key, v.in.f(i, v.in.key)), this.startsFrom === 'scratch' ? {} : i);
|
|
@@ -77,11 +91,11 @@ export const views = {
|
|
|
77
91
|
keepOr: (alt?: unknown) => (a: unknown, key?: string) => traverse(a, key) ?? alt,
|
|
78
92
|
or:
|
|
79
93
|
(key: string, alt = '') =>
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
(a: unknown) =>
|
|
95
|
+
traverse(a, key) ?? alt,
|
|
82
96
|
value: (value: unknown) => () => value,
|
|
83
97
|
to:
|
|
84
98
|
<T>(ctor: Constructor<T>) =>
|
|
85
|
-
|
|
86
|
-
|
|
99
|
+
(a: unknown, key?: string) =>
|
|
100
|
+
new ctor(traverse(a, key)),
|
|
87
101
|
};
|