@thisisagile/easy 17.17.1 → 17.18.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.
- package/dist/{chunk-JVDKV5HE.mjs → chunk-3AB2A6WF.mjs} +9 -5
- package/dist/chunk-3AB2A6WF.mjs.map +1 -0
- package/dist/{chunk-SRXIPWW3.mjs → chunk-3Q26WV4F.mjs} +11 -5
- package/dist/chunk-3Q26WV4F.mjs.map +1 -0
- package/dist/{chunk-O75J6WWI.mjs → chunk-6LGUOSH3.mjs} +3 -3
- package/dist/{chunk-64S6C743.mjs → chunk-6TR4LD27.mjs} +3 -3
- package/dist/{chunk-YMTOGXYB.mjs → chunk-7JFDA4UI.mjs} +2 -2
- package/dist/{chunk-2KZ5UP6A.mjs → chunk-D5KAY6YW.mjs} +3 -3
- package/dist/{chunk-7KQ4QLP2.mjs → chunk-FDXSIWRM.mjs} +2 -2
- package/dist/{chunk-W5WWSCMG.mjs → chunk-IABTCMHB.mjs} +4 -4
- package/dist/{chunk-UGUAZFM4.mjs → chunk-KD36HS3N.mjs} +2 -2
- package/dist/{chunk-CRSP7OQT.mjs → chunk-KDK2E7CA.mjs} +2 -2
- package/dist/{chunk-LLTFR25V.mjs → chunk-LJPESIYZ.mjs} +2 -2
- package/dist/{chunk-K2QIYLIW.mjs → chunk-MBXA7ZCQ.mjs} +2 -2
- package/dist/{chunk-RBQOVMPC.mjs → chunk-MLAU6FXE.mjs} +2 -2
- package/dist/{chunk-CSKOVGAP.mjs → chunk-MMGVG4ZW.mjs} +2 -2
- package/dist/{chunk-Z56QALMP.mjs → chunk-OEL3QKBX.mjs} +4 -4
- package/dist/{chunk-HAXA65A3.mjs → chunk-OYQIOBV7.mjs} +2 -2
- package/dist/{chunk-RDLH6MXX.mjs → chunk-P2GDPTZ3.mjs} +2 -2
- package/dist/{chunk-WD4PRE6L.mjs → chunk-Q56PAJ4T.mjs} +2 -2
- package/dist/{chunk-L3BSQAT3.mjs → chunk-ROJDO7ZE.mjs} +2 -2
- package/dist/{chunk-GWZRZHFR.mjs → chunk-S33RXRXR.mjs} +7 -7
- package/dist/{chunk-B3AQ7EZQ.mjs → chunk-SEWX25XP.mjs} +2 -2
- package/dist/{chunk-UR544PJT.mjs → chunk-SGLNDTMQ.mjs} +2 -2
- package/dist/{chunk-3BJDTSKH.mjs → chunk-SVHSS4IV.mjs} +5 -5
- package/dist/{chunk-R2SXNUU3.mjs → chunk-T3CJ5MZK.mjs} +3 -3
- package/dist/{chunk-ECXNGUIP.mjs → chunk-TU7SVDUE.mjs} +4 -4
- package/dist/{chunk-XH6PFRYM.mjs → chunk-VAT2WY5Y.mjs} +3 -3
- package/dist/{chunk-IMREIDHQ.mjs → chunk-WIBQ7LKH.mjs} +3 -3
- package/dist/{chunk-ROTFIQND.mjs → chunk-ZZ65BSDI.mjs} +2 -2
- package/dist/data/Database.mjs +2 -2
- package/dist/data/InMemoryGateway.mjs +5 -5
- package/dist/domain/Audit.mjs +7 -7
- package/dist/domain/Child.mjs +5 -5
- package/dist/domain/DateTime.mjs +4 -4
- package/dist/domain/Entity.mjs +7 -7
- package/dist/domain/Repo.mjs +4 -4
- package/dist/domain/Struct.mjs +4 -4
- package/dist/domain/Typo.mjs +4 -4
- package/dist/http/CacheControl.mjs +5 -5
- package/dist/http/ContentType.mjs +2 -2
- package/dist/http/HttpStatus.mjs +2 -2
- package/dist/http/HttpVerb.mjs +2 -2
- package/dist/http/RequestOptions.mjs +3 -3
- package/dist/http/RestResult.mjs +5 -5
- package/dist/http/toResponse.mjs +6 -6
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/process/App.mjs +2 -2
- package/dist/process/Manage.mjs +5 -5
- package/dist/process/Scope.mjs +2 -2
- package/dist/process/Search.mjs +5 -5
- package/dist/process/UseCase.mjs +1 -1
- package/dist/resources/Req.mjs +4 -4
- package/dist/services/Api.mjs +13 -13
- package/dist/services/ApiGateway.mjs +16 -16
- package/dist/services/AxiosProvider.mjs +11 -11
- package/dist/services/MappedRouteGateway.mjs +17 -17
- package/dist/services/RouteGateway.mjs +17 -17
- package/dist/services/ViewRouteGateway.mjs +19 -19
- package/dist/sql/Column.mjs +4 -4
- package/dist/sql/Table.mjs +5 -5
- package/dist/sql/TableGateway.mjs +5 -5
- package/dist/types/CacheAge.mjs +5 -5
- package/dist/types/Case.mjs +3 -3
- package/dist/types/Enum.d.ts +8 -1
- package/dist/types/Enum.mjs +5 -3
- package/dist/types/Environment.mjs +1 -1
- package/dist/types/Exception.mjs +2 -2
- package/dist/types/Gateway.mjs +3 -3
- package/dist/types/IsEqual.mjs +4 -4
- package/dist/types/Number.mjs +4 -4
- package/dist/types/PageList.mjs +4 -4
- package/dist/types/Parser.mjs +3 -3
- package/dist/types/Repository.mjs +3 -3
- package/dist/types/Try.mjs +3 -3
- package/dist/types/Uri.mjs +3 -3
- package/dist/utils/View.d.ts +2 -1
- package/dist/utils/View.mjs +6 -6
- package/dist/validation/Contraints.mjs +4 -4
- package/dist/validation/Validate.mjs +3 -3
- package/dist/validation/When.mjs +3 -3
- package/package.json +1 -1
- package/src/types/Enum.ts +20 -6
- package/src/utils/View.ts +7 -1
- package/dist/chunk-JVDKV5HE.mjs.map +0 -1
- package/dist/chunk-SRXIPWW3.mjs.map +0 -1
- /package/dist/{chunk-O75J6WWI.mjs.map → chunk-6LGUOSH3.mjs.map} +0 -0
- /package/dist/{chunk-64S6C743.mjs.map → chunk-6TR4LD27.mjs.map} +0 -0
- /package/dist/{chunk-YMTOGXYB.mjs.map → chunk-7JFDA4UI.mjs.map} +0 -0
- /package/dist/{chunk-2KZ5UP6A.mjs.map → chunk-D5KAY6YW.mjs.map} +0 -0
- /package/dist/{chunk-7KQ4QLP2.mjs.map → chunk-FDXSIWRM.mjs.map} +0 -0
- /package/dist/{chunk-W5WWSCMG.mjs.map → chunk-IABTCMHB.mjs.map} +0 -0
- /package/dist/{chunk-UGUAZFM4.mjs.map → chunk-KD36HS3N.mjs.map} +0 -0
- /package/dist/{chunk-CRSP7OQT.mjs.map → chunk-KDK2E7CA.mjs.map} +0 -0
- /package/dist/{chunk-LLTFR25V.mjs.map → chunk-LJPESIYZ.mjs.map} +0 -0
- /package/dist/{chunk-K2QIYLIW.mjs.map → chunk-MBXA7ZCQ.mjs.map} +0 -0
- /package/dist/{chunk-RBQOVMPC.mjs.map → chunk-MLAU6FXE.mjs.map} +0 -0
- /package/dist/{chunk-CSKOVGAP.mjs.map → chunk-MMGVG4ZW.mjs.map} +0 -0
- /package/dist/{chunk-Z56QALMP.mjs.map → chunk-OEL3QKBX.mjs.map} +0 -0
- /package/dist/{chunk-HAXA65A3.mjs.map → chunk-OYQIOBV7.mjs.map} +0 -0
- /package/dist/{chunk-RDLH6MXX.mjs.map → chunk-P2GDPTZ3.mjs.map} +0 -0
- /package/dist/{chunk-WD4PRE6L.mjs.map → chunk-Q56PAJ4T.mjs.map} +0 -0
- /package/dist/{chunk-L3BSQAT3.mjs.map → chunk-ROJDO7ZE.mjs.map} +0 -0
- /package/dist/{chunk-GWZRZHFR.mjs.map → chunk-S33RXRXR.mjs.map} +0 -0
- /package/dist/{chunk-B3AQ7EZQ.mjs.map → chunk-SEWX25XP.mjs.map} +0 -0
- /package/dist/{chunk-UR544PJT.mjs.map → chunk-SGLNDTMQ.mjs.map} +0 -0
- /package/dist/{chunk-3BJDTSKH.mjs.map → chunk-SVHSS4IV.mjs.map} +0 -0
- /package/dist/{chunk-R2SXNUU3.mjs.map → chunk-T3CJ5MZK.mjs.map} +0 -0
- /package/dist/{chunk-ECXNGUIP.mjs.map → chunk-TU7SVDUE.mjs.map} +0 -0
- /package/dist/{chunk-XH6PFRYM.mjs.map → chunk-VAT2WY5Y.mjs.map} +0 -0
- /package/dist/{chunk-IMREIDHQ.mjs.map → chunk-WIBQ7LKH.mjs.map} +0 -0
- /package/dist/{chunk-ROTFIQND.mjs.map → chunk-ZZ65BSDI.mjs.map} +0 -0
package/dist/types/Number.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
asNumber
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-SEWX25XP.mjs";
|
|
4
|
+
import "../chunk-D5KAY6YW.mjs";
|
|
5
5
|
import "../chunk-OFGI5FLG.mjs";
|
|
6
6
|
import "../chunk-NCEWAKOZ.mjs";
|
|
7
7
|
import "../chunk-Q3WMGUO2.mjs";
|
|
8
8
|
import "../chunk-5HENJTR6.mjs";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
10
10
|
import "../chunk-WSBULPUZ.mjs";
|
|
11
11
|
import "../chunk-NDCIZJXB.mjs";
|
|
12
12
|
import "../chunk-MCCIBDEH.mjs";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
14
14
|
import "../chunk-WTFW6DLP.mjs";
|
|
15
15
|
import "../chunk-H2762RTS.mjs";
|
|
16
16
|
import "../chunk-A7C3XND3.mjs";
|
package/dist/types/PageList.mjs
CHANGED
|
@@ -5,17 +5,17 @@ import {
|
|
|
5
5
|
toFilter,
|
|
6
6
|
toPageList,
|
|
7
7
|
toShortFilter
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-KDK2E7CA.mjs";
|
|
9
|
+
import "../chunk-D5KAY6YW.mjs";
|
|
10
10
|
import "../chunk-OFGI5FLG.mjs";
|
|
11
11
|
import "../chunk-NCEWAKOZ.mjs";
|
|
12
12
|
import "../chunk-Q3WMGUO2.mjs";
|
|
13
13
|
import "../chunk-5HENJTR6.mjs";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
15
15
|
import "../chunk-WSBULPUZ.mjs";
|
|
16
16
|
import "../chunk-NDCIZJXB.mjs";
|
|
17
17
|
import "../chunk-MCCIBDEH.mjs";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
19
19
|
import "../chunk-WTFW6DLP.mjs";
|
|
20
20
|
import "../chunk-H2762RTS.mjs";
|
|
21
21
|
import "../chunk-A7C3XND3.mjs";
|
package/dist/types/Parser.mjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isValid
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-D5KAY6YW.mjs";
|
|
4
4
|
import "../chunk-OFGI5FLG.mjs";
|
|
5
5
|
import "../chunk-NCEWAKOZ.mjs";
|
|
6
6
|
import "../chunk-Q3WMGUO2.mjs";
|
|
7
7
|
import "../chunk-5HENJTR6.mjs";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
9
9
|
import "../chunk-WSBULPUZ.mjs";
|
|
10
10
|
import "../chunk-NDCIZJXB.mjs";
|
|
11
11
|
import "../chunk-MCCIBDEH.mjs";
|
|
12
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
13
13
|
import "../chunk-WTFW6DLP.mjs";
|
|
14
14
|
import "../chunk-H2762RTS.mjs";
|
|
15
15
|
import "../chunk-A7C3XND3.mjs";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Repository
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-ZZ65BSDI.mjs";
|
|
4
4
|
import "../chunk-5HENJTR6.mjs";
|
|
5
|
-
import "../chunk-
|
|
5
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
6
6
|
import "../chunk-MCCIBDEH.mjs";
|
|
7
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
8
8
|
import "../chunk-WTFW6DLP.mjs";
|
|
9
9
|
import "../chunk-H2762RTS.mjs";
|
|
10
10
|
import "../chunk-A7C3XND3.mjs";
|
package/dist/types/Try.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Try,
|
|
3
3
|
tryTo
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-D5KAY6YW.mjs";
|
|
5
5
|
import "../chunk-OFGI5FLG.mjs";
|
|
6
6
|
import "../chunk-NCEWAKOZ.mjs";
|
|
7
7
|
import "../chunk-Q3WMGUO2.mjs";
|
|
8
8
|
import "../chunk-5HENJTR6.mjs";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
10
10
|
import "../chunk-WSBULPUZ.mjs";
|
|
11
11
|
import "../chunk-NDCIZJXB.mjs";
|
|
12
12
|
import "../chunk-MCCIBDEH.mjs";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
14
14
|
import "../chunk-WTFW6DLP.mjs";
|
|
15
15
|
import "../chunk-H2762RTS.mjs";
|
|
16
16
|
import "../chunk-A7C3XND3.mjs";
|
package/dist/types/Uri.mjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
tryTo
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-D5KAY6YW.mjs";
|
|
4
4
|
import "../chunk-OFGI5FLG.mjs";
|
|
5
5
|
import "../chunk-NCEWAKOZ.mjs";
|
|
6
6
|
import "../chunk-Q3WMGUO2.mjs";
|
|
7
7
|
import "../chunk-5HENJTR6.mjs";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
9
9
|
import "../chunk-WSBULPUZ.mjs";
|
|
10
10
|
import {
|
|
11
11
|
ctx
|
|
12
12
|
} from "../chunk-NDCIZJXB.mjs";
|
|
13
13
|
import "../chunk-MCCIBDEH.mjs";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
15
15
|
import {
|
|
16
16
|
meta
|
|
17
17
|
} from "../chunk-WTFW6DLP.mjs";
|
package/dist/utils/View.d.ts
CHANGED
|
@@ -3,12 +3,13 @@ import { Constructor } from '../types/Constructor';
|
|
|
3
3
|
import { PageList } from '../types/PageList';
|
|
4
4
|
import { List } from '../types/List';
|
|
5
5
|
import { DontInfer } from '../types/Types';
|
|
6
|
+
import { EnumConstructor } from '../types/Enum';
|
|
6
7
|
type Func<T = unknown> = (a: any, key?: string) => T;
|
|
7
8
|
type Viewer = {
|
|
8
9
|
key: string;
|
|
9
10
|
f: Func;
|
|
10
11
|
};
|
|
11
|
-
type ViewType<V = any> = Primitive | Constructor | Func | View<V> | undefined;
|
|
12
|
+
type ViewType<V = any> = Primitive | EnumConstructor | Constructor | Func | View<V> | undefined;
|
|
12
13
|
type ViewRecord<V = any> = Partial<Record<keyof V, ViewType>>;
|
|
13
14
|
export declare const toViewer: (key: string, value: ViewType) => Viewer;
|
|
14
15
|
export declare class View<V = any> {
|
package/dist/utils/View.mjs
CHANGED
|
@@ -4,21 +4,21 @@ import {
|
|
|
4
4
|
toViewer,
|
|
5
5
|
view,
|
|
6
6
|
views
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-3Q26WV4F.mjs";
|
|
8
8
|
import "../chunk-SSROJBD5.mjs";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-Q56PAJ4T.mjs";
|
|
10
|
+
import "../chunk-KDK2E7CA.mjs";
|
|
11
11
|
import "../chunk-KTENM2OG.mjs";
|
|
12
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-D5KAY6YW.mjs";
|
|
13
13
|
import "../chunk-OFGI5FLG.mjs";
|
|
14
14
|
import "../chunk-NCEWAKOZ.mjs";
|
|
15
15
|
import "../chunk-Q3WMGUO2.mjs";
|
|
16
16
|
import "../chunk-5HENJTR6.mjs";
|
|
17
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
18
18
|
import "../chunk-WSBULPUZ.mjs";
|
|
19
19
|
import "../chunk-NDCIZJXB.mjs";
|
|
20
20
|
import "../chunk-MCCIBDEH.mjs";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
22
22
|
import "../chunk-WTFW6DLP.mjs";
|
|
23
23
|
import "../chunk-H2762RTS.mjs";
|
|
24
24
|
import "../chunk-A7C3XND3.mjs";
|
|
@@ -17,18 +17,18 @@ import {
|
|
|
17
17
|
required,
|
|
18
18
|
rule,
|
|
19
19
|
valid
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-MLAU6FXE.mjs";
|
|
21
21
|
import "../chunk-ADJAEGCT.mjs";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-D5KAY6YW.mjs";
|
|
23
23
|
import "../chunk-OFGI5FLG.mjs";
|
|
24
24
|
import "../chunk-NCEWAKOZ.mjs";
|
|
25
25
|
import "../chunk-Q3WMGUO2.mjs";
|
|
26
26
|
import "../chunk-5HENJTR6.mjs";
|
|
27
|
-
import "../chunk-
|
|
27
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
28
28
|
import "../chunk-WSBULPUZ.mjs";
|
|
29
29
|
import "../chunk-NDCIZJXB.mjs";
|
|
30
30
|
import "../chunk-MCCIBDEH.mjs";
|
|
31
|
-
import "../chunk-
|
|
31
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
32
32
|
import "../chunk-WTFW6DLP.mjs";
|
|
33
33
|
import "../chunk-H2762RTS.mjs";
|
|
34
34
|
import "../chunk-A7C3XND3.mjs";
|
|
@@ -3,16 +3,16 @@ import {
|
|
|
3
3
|
isValid,
|
|
4
4
|
validate,
|
|
5
5
|
validateReject
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-D5KAY6YW.mjs";
|
|
7
7
|
import "../chunk-OFGI5FLG.mjs";
|
|
8
8
|
import "../chunk-NCEWAKOZ.mjs";
|
|
9
9
|
import "../chunk-Q3WMGUO2.mjs";
|
|
10
10
|
import "../chunk-5HENJTR6.mjs";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
12
12
|
import "../chunk-WSBULPUZ.mjs";
|
|
13
13
|
import "../chunk-NDCIZJXB.mjs";
|
|
14
14
|
import "../chunk-MCCIBDEH.mjs";
|
|
15
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
16
16
|
import "../chunk-WTFW6DLP.mjs";
|
|
17
17
|
import "../chunk-H2762RTS.mjs";
|
|
18
18
|
import "../chunk-A7C3XND3.mjs";
|
package/dist/validation/When.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
When,
|
|
3
3
|
when
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-D5KAY6YW.mjs";
|
|
5
5
|
import "../chunk-OFGI5FLG.mjs";
|
|
6
6
|
import "../chunk-NCEWAKOZ.mjs";
|
|
7
7
|
import "../chunk-Q3WMGUO2.mjs";
|
|
8
8
|
import "../chunk-5HENJTR6.mjs";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-LJPESIYZ.mjs";
|
|
10
10
|
import "../chunk-WSBULPUZ.mjs";
|
|
11
11
|
import "../chunk-NDCIZJXB.mjs";
|
|
12
12
|
import "../chunk-MCCIBDEH.mjs";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-3AB2A6WF.mjs";
|
|
14
14
|
import "../chunk-WTFW6DLP.mjs";
|
|
15
15
|
import "../chunk-H2762RTS.mjs";
|
|
16
16
|
import "../chunk-A7C3XND3.mjs";
|
package/package.json
CHANGED
package/src/types/Enum.ts
CHANGED
|
@@ -2,14 +2,28 @@ import { Id } from './Id';
|
|
|
2
2
|
import { List, toList } from './List';
|
|
3
3
|
import { isAn } from './IsA';
|
|
4
4
|
import { meta } from './Meta';
|
|
5
|
-
import { isDefined } from './Is';
|
|
5
|
+
import { isDefined, isFunction } from './Is';
|
|
6
6
|
import { Validatable } from './Validatable';
|
|
7
7
|
import { JsonValue } from './Json';
|
|
8
8
|
import { Get, ofGet } from './Get';
|
|
9
9
|
import { TypeGuard } from './TypeGuard';
|
|
10
10
|
|
|
11
|
+
export type EnumConstructor<E = unknown> = {
|
|
12
|
+
byIds<E extends Enum>(ids: Id[]): List<E>;
|
|
13
|
+
byId<E extends Enum>(id: Id, alt?: Get<E, unknown>): E;
|
|
14
|
+
isEnum: boolean;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const isEnumConstructor = <E = unknown>(c: unknown): c is EnumConstructor<E> => isFunction(c) && (c as any).isEnum;
|
|
18
|
+
|
|
11
19
|
export abstract class Enum implements Validatable {
|
|
12
|
-
|
|
20
|
+
static isEnum = true;
|
|
21
|
+
|
|
22
|
+
protected constructor(
|
|
23
|
+
readonly name: string,
|
|
24
|
+
readonly id: Id = name.toLowerCase(),
|
|
25
|
+
readonly code: string = id.toString()
|
|
26
|
+
) {}
|
|
13
27
|
|
|
14
28
|
get isValid(): boolean {
|
|
15
29
|
return isDefined(this.id);
|
|
@@ -19,10 +33,6 @@ export abstract class Enum implements Validatable {
|
|
|
19
33
|
return meta(this.allTuple<E>()).values<E>();
|
|
20
34
|
}
|
|
21
35
|
|
|
22
|
-
protected static allTuple<E extends Enum>(): Record<Id, E> {
|
|
23
|
-
return meta(this).get(`all-${this.name}`) ?? meta(this).set(`all-${this.name}`, meta(this).values<E>().filter(isEnum).toObject('id'));
|
|
24
|
-
}
|
|
25
|
-
|
|
26
36
|
static filter<E extends Enum>(p: (value: E, index: number, array: E[]) => unknown, params?: unknown): List<E> {
|
|
27
37
|
return this.all<E>().filter(p, params);
|
|
28
38
|
}
|
|
@@ -41,6 +51,10 @@ export abstract class Enum implements Validatable {
|
|
|
41
51
|
return this.allTuple<E>()[id] ?? ofGet(alt);
|
|
42
52
|
}
|
|
43
53
|
|
|
54
|
+
protected static allTuple<E extends Enum>(): Record<Id, E> {
|
|
55
|
+
return meta(this).get(`all-${this.name}`) ?? meta(this).set(`all-${this.name}`, meta(this).values<E>().filter(isEnum).toObject('id'));
|
|
56
|
+
}
|
|
57
|
+
|
|
44
58
|
equals<E extends Enum>(other: E | Id): other is E {
|
|
45
59
|
return this.id === (isEnum(other) ? other.id : other);
|
|
46
60
|
}
|
package/src/utils/View.ts
CHANGED
|
@@ -10,11 +10,13 @@ import { isPageList, PageList, toPageList } from '../types/PageList';
|
|
|
10
10
|
import { List } from '../types/List';
|
|
11
11
|
import { isEqual } from '../types/IsEqual';
|
|
12
12
|
import { DontInfer } from '../types/Types';
|
|
13
|
+
import { EnumConstructor, isEnumConstructor } from '../types/Enum';
|
|
14
|
+
import { Id } from '../types/Id';
|
|
13
15
|
|
|
14
16
|
type Func<T = unknown> = (a: any, key?: string) => T;
|
|
15
17
|
type Viewer = { key: string; f: Func };
|
|
16
18
|
|
|
17
|
-
type ViewType<V = any> = Primitive | Constructor | Func | View<V> | undefined;
|
|
19
|
+
type ViewType<V = any> = Primitive | EnumConstructor | Constructor | Func | View<V> | undefined;
|
|
18
20
|
type ViewRecord<V = any> = Partial<Record<keyof V, ViewType>>;
|
|
19
21
|
|
|
20
22
|
const ignore = Symbol('view.ignore');
|
|
@@ -28,6 +30,10 @@ export const toViewer = (key: string, value: ViewType): Viewer =>
|
|
|
28
30
|
.equals(ignore, { key, f: () => undefined })
|
|
29
31
|
.equals(keep, { key, f: (a: any) => traverse(a, key) })
|
|
30
32
|
.type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))
|
|
33
|
+
.type(isEnumConstructor, c => ({
|
|
34
|
+
key,
|
|
35
|
+
f: (a, key) => use(traverse(a, key), v => (isArray(v) ? c.byIds(v) : c.byId(v as Id))),
|
|
36
|
+
}))
|
|
31
37
|
.type(isConstructor, c => ({
|
|
32
38
|
key,
|
|
33
39
|
f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => optional(c, i)) : optional(c, v))),
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/Enum.ts"],"sourcesContent":["import { Id } from './Id';\nimport { List, toList } from './List';\nimport { isAn } from './IsA';\nimport { meta } from './Meta';\nimport { isDefined } from './Is';\nimport { Validatable } from './Validatable';\nimport { JsonValue } from './Json';\nimport { Get, ofGet } from './Get';\nimport { TypeGuard } from './TypeGuard';\n\nexport abstract class Enum implements Validatable {\n protected constructor(readonly name: string, readonly id: Id = name.toLowerCase(), readonly code: string = id.toString()) {}\n\n get isValid(): boolean {\n return isDefined(this.id);\n }\n\n static all<E extends Enum>(): List<E> {\n return meta(this.allTuple<E>()).values<E>();\n }\n\n protected static allTuple<E extends Enum>(): Record<Id, E> {\n return meta(this).get(`all-${this.name}`) ?? meta(this).set(`all-${this.name}`, meta(this).values<E>().filter(isEnum).toObject('id'));\n }\n\n static filter<E extends Enum>(p: (value: E, index: number, array: E[]) => unknown, params?: unknown): List<E> {\n return this.all<E>().filter(p, params);\n }\n\n static first<E extends Enum>(p?: (value: E, index: number, array: E[]) => unknown, params?: unknown): E {\n return this.all<E>().first(p, params);\n }\n\n static byIds<E extends Enum>(ids: Id[] = []): List<E> {\n return toList(ids)\n .mapDefined(id => this.byId<E>(id))\n .distinct();\n }\n\n static byId<E extends Enum>(id: Id, alt?: Get<E, unknown>): E {\n return this.allTuple<E>()[id] ?? ofGet(alt);\n }\n\n equals<E extends Enum>(other: E | Id): other is E {\n return this.id === (isEnum(other) ? other.id : other);\n }\n\n isIn<E extends Enum>(...items: E[] | Id[]): boolean {\n return items.some(i => this.equals(i));\n }\n\n toJSON(): JsonValue {\n return this.id;\n }\n\n toString(): string {\n return this.id.toString();\n }\n}\n\nexport const isEnum: TypeGuard<Enum> = (e?: unknown): e is Enum => isDefined(e) && e instanceof Enum && isAn<Enum>(e, 'name', 'id', 'code');\n"],"mappings":";;;;;;;;;;;;;;;;;AAUO,IAAe,OAAf,MAA2C;AAAA,EACtC,YAAqB,MAAuB,KAAS,KAAK,YAAY,GAAY,OAAe,GAAG,SAAS,GAAG;AAA3F;AAAuB;AAAsC;AAAA,EAA+B;AAAA,EAE3H,IAAI,UAAmB;AACrB,WAAO,UAAU,KAAK,EAAE;AAAA,EAC1B;AAAA,EAEA,OAAO,MAA+B;AACpC,WAAO,KAAK,KAAK,SAAY,CAAC,EAAE,OAAU;AAAA,EAC5C;AAAA,EAEA,OAAiB,WAA0C;AACzD,WAAO,KAAK,IAAI,EAAE,IAAI,OAAO,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,EAAE,OAAU,EAAE,OAAO,MAAM,EAAE,SAAS,IAAI,CAAC;AAAA,EACtI;AAAA,EAEA,OAAO,OAAuB,GAAqD,QAA2B;AAC5G,WAAO,KAAK,IAAO,EAAE,OAAO,GAAG,MAAM;AAAA,EACvC;AAAA,EAEA,OAAO,MAAsB,GAAsD,QAAqB;AACtG,WAAO,KAAK,IAAO,EAAE,MAAM,GAAG,MAAM;AAAA,EACtC;AAAA,EAEA,OAAO,MAAsB,MAAY,CAAC,GAAY;AACpD,WAAO,OAAO,GAAG,EACd,WAAW,QAAM,KAAK,KAAQ,EAAE,CAAC,EACjC,SAAS;AAAA,EACd;AAAA,EAEA,OAAO,KAAqB,IAAQ,KAA0B;AAC5D,WAAO,KAAK,SAAY,EAAE,EAAE,KAAK,MAAM,GAAG;AAAA,EAC5C;AAAA,EAEA,OAAuB,OAA2B;AAChD,WAAO,KAAK,QAAQ,OAAO,KAAK,IAAI,MAAM,KAAK;AAAA,EACjD;AAAA,EAEA,QAAwB,OAA4B;AAClD,WAAO,MAAM,KAAK,OAAK,KAAK,OAAO,CAAC,CAAC;AAAA,EACvC;AAAA,EAEA,SAAoB;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,WAAmB;AACjB,WAAO,KAAK,GAAG,SAAS;AAAA,EAC1B;AACF;AAEO,IAAM,SAA0B,CAAC,MAA2B,UAAU,CAAC,KAAK,aAAa,QAAQ,KAAW,GAAG,QAAQ,MAAM,MAAM;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/View.ts"],"sourcesContent":["import { traverse } from './Traverse';\nimport { ifDefined } from './If';\nimport { Primitive } from '../types/Primitive';\nimport { Constructor, isConstructor, use } from '../types/Constructor';\nimport { asJson, json } from '../types/Json';\nimport { choose } from '../types/Case';\nimport { isArray, isBoolean, isFunction, isString } from '../types/Is';\nimport { meta } from '../types/Meta';\nimport { isPageList, PageList, toPageList } from '../types/PageList';\nimport { List } from '../types/List';\nimport { isEqual } from '../types/IsEqual';\nimport { DontInfer } from '../types/Types';\n\ntype Func<T = unknown> = (a: any, key?: string) => T;\ntype Viewer = { key: string; f: Func };\n\ntype ViewType<V = any> = Primitive | Constructor | Func | View<V> | undefined;\ntype ViewRecord<V = any> = Partial<Record<keyof V, ViewType>>;\n\nconst ignore = Symbol('view.ignore');\nconst keep = Symbol('view.keep');\nconst spread = 'view.spread';\n\nexport const toViewer = (key: string, value: ViewType): Viewer =>\n choose(value)\n .is.not.defined(v => v, { key, f: () => undefined } as Viewer)\n .type(isBoolean, b => ({ key, f: () => b }))\n .equals(ignore, { key, f: () => undefined })\n .equals(keep, { key, f: (a: any) => traverse(a, key) })\n .type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))\n .type(isConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => optional(c, i)) : optional(c, v))),\n }))\n .type(isSimpleView, f => ({ key, f: (a: any) => f.from(traverse(a, key)) }))\n .type(isFunction, f => ({ key, f }))\n .else(v => ({ key, f: () => v }));\n\nconst optional = (c: Constructor, v: any) =>\n ifDefined(\n v,\n i => new c(i),\n () => v\n );\n\nconst toViewers = (views: ViewRecord): Viewer[] =>\n meta(views)\n .entries<ViewType>()\n .map(([k, v]) => toViewer(k, v));\n\nexport class View<V = any> {\n constructor(\n private views = {} as ViewRecord<V>,\n readonly startsFrom: 'scratch' | 'source' = 'scratch',\n readonly viewers: Viewer[] = toViewers(views)\n ) {}\n\n get fromSource(): View<V> {\n return new View(this.views, 'source', this.viewers);\n }\n\n from<T = unknown>(source: PageList<T>): PageList<V>;\n from<T = unknown>(source: List<T>): List<V>;\n from<T = unknown>(source: T[]): V[];\n from<T = unknown>(source: T): V;\n from<T = unknown>(source: PageList<T> | List<T> | T[] | T): PageList<V> | List<V> | V[] | V {\n if (isPageList(source))\n return toPageList(\n source.map(s => this.reduce(s)),\n source.options\n );\n if (isArray(source)) return source.map(s => this.reduce(s));\n return this.reduce(source);\n }\n\n same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));\n\n private reduce = (source: any): any =>\n use(asJson(source), src =>\n this.viewers.reduce(\n (acc, v) => (v.key === spread ? { ...acc, ...asJson(v.f(src, v.key)) } : json.set(acc, v.key, v.f(src, v.key))),\n this.startsFrom === 'scratch' ? {} : src\n )\n );\n}\n\nexport const isSimpleView = (a: unknown): a is View => a instanceof View;\n\nexport const view = <V = any>(views: ViewRecord<DontInfer<V>>): View<V> => new View<V>(views);\n\nexport const views = {\n ignore,\n keep,\n spread,\n skip: ignore,\n value: (value: unknown) => () => value,\n or: {\n key: (altKey: string) => (a: unknown, key?: string) => traverse(a, key) ?? traverse(a, altKey),\n value: (altValue: unknown) => (a: unknown, key?: string) => traverse(a, key) ?? altValue,\n func: (altFunc: Func) => (a: unknown, key?: string) => traverse(a, key) ?? altFunc(a, key),\n },\n};\n\n// spread: (a: any, key: string) => ({...a, ...(use(traverse(a, key), v => isObject(v) ? v : ({[key]: v})))}),\n"],"mappings":"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","names":["key","views"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|