@monstermann/map 0.1.2 → 0.2.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/README.md +2496 -0
- package/dist/Map/clone.d.mts +10 -5
- package/dist/Map/clone.mjs +10 -5
- package/dist/Map/compact.d.mts +16 -12
- package/dist/Map/compact.mjs +12 -5
- package/dist/Map/create.d.mts +9 -2
- package/dist/Map/create.mjs +9 -2
- package/dist/Map/every.d.mts +58 -0
- package/dist/Map/every.mjs +55 -0
- package/dist/Map/filter.d.mts +25 -16
- package/dist/Map/filter.mjs +17 -5
- package/dist/Map/find.d.mts +54 -0
- package/dist/Map/find.mjs +54 -0
- package/dist/Map/findMap.d.mts +67 -0
- package/dist/Map/findMap.mjs +71 -0
- package/dist/Map/findMapAll.d.mts +67 -0
- package/dist/Map/findMapAll.mjs +72 -0
- package/dist/Map/findMapOr.d.mts +70 -0
- package/dist/Map/findMapOr.mjs +74 -0
- package/dist/Map/findMapOrElse.d.mts +70 -0
- package/dist/Map/findMapOrElse.mjs +74 -0
- package/dist/Map/findMapOrThrow.d.mts +67 -0
- package/dist/Map/findMapOrThrow.mjs +71 -0
- package/dist/Map/findOr.d.mts +56 -0
- package/dist/Map/findOr.mjs +57 -0
- package/dist/Map/findOrElse.d.mts +59 -0
- package/dist/Map/findOrElse.mjs +60 -0
- package/dist/Map/findOrThrow.d.mts +54 -0
- package/dist/Map/findOrThrow.mjs +55 -0
- package/dist/Map/findRemove.d.mts +54 -0
- package/dist/Map/findRemove.mjs +60 -0
- package/dist/Map/findRemoveOr.d.mts +56 -0
- package/dist/Map/findRemoveOr.mjs +62 -0
- package/dist/Map/findRemoveOrElse.d.mts +59 -0
- package/dist/Map/findRemoveOrElse.mjs +65 -0
- package/dist/Map/findRemoveOrThrow.d.mts +54 -0
- package/dist/Map/findRemoveOrThrow.mjs +60 -0
- package/dist/Map/findReplace.d.mts +56 -0
- package/dist/Map/findReplace.mjs +63 -0
- package/dist/Map/findReplaceOr.d.mts +58 -0
- package/dist/Map/findReplaceOr.mjs +65 -0
- package/dist/Map/findReplaceOrElse.d.mts +62 -0
- package/dist/Map/findReplaceOrElse.mjs +69 -0
- package/dist/Map/findReplaceOrThrow.d.mts +56 -0
- package/dist/Map/findReplaceOrThrow.mjs +63 -0
- package/dist/Map/forEach.d.mts +21 -12
- package/dist/Map/forEach.mjs +17 -5
- package/dist/Map/get.d.mts +15 -7
- package/dist/Map/get.mjs +15 -7
- package/dist/Map/getOr.d.mts +20 -14
- package/dist/Map/getOr.mjs +18 -9
- package/dist/Map/getOrElse.d.mts +20 -14
- package/dist/Map/getOrElse.mjs +18 -9
- package/dist/Map/getOrThrow.d.mts +19 -14
- package/dist/Map/getOrThrow.mjs +17 -9
- package/dist/Map/has.d.mts +15 -7
- package/dist/Map/has.mjs +15 -7
- package/dist/Map/hasAll.d.mts +15 -7
- package/dist/Map/hasAll.mjs +15 -7
- package/dist/Map/hasAny.d.mts +15 -7
- package/dist/Map/hasAny.mjs +15 -7
- package/dist/Map/hasNone.d.mts +15 -7
- package/dist/Map/hasNone.mjs +15 -7
- package/dist/Map/index.d.mts +21 -1
- package/dist/Map/index.mjs +41 -1
- package/dist/Map/is.d.mts +12 -5
- package/dist/Map/is.mjs +12 -5
- package/dist/Map/isEmpty.d.mts +12 -7
- package/dist/Map/isEmpty.mjs +12 -7
- package/dist/Map/isShallowEqual.d.mts +19 -11
- package/dist/Map/isShallowEqual.mjs +19 -11
- package/dist/Map/map.d.mts +25 -14
- package/dist/Map/map.mjs +21 -7
- package/dist/Map/mapEach.d.mts +21 -12
- package/dist/Map/mapEach.mjs +17 -5
- package/dist/Map/mapOr.d.mts +25 -14
- package/dist/Map/mapOr.mjs +21 -7
- package/dist/Map/mapOrElse.d.mts +25 -14
- package/dist/Map/mapOrElse.mjs +21 -7
- package/dist/Map/mapOrThrow.d.mts +24 -14
- package/dist/Map/mapOrThrow.mjs +20 -7
- package/dist/Map/none.d.mts +58 -0
- package/dist/Map/none.mjs +55 -0
- package/dist/Map/reject.d.mts +25 -16
- package/dist/Map/reject.mjs +17 -5
- package/dist/Map/remove.d.mts +15 -7
- package/dist/Map/remove.mjs +15 -7
- package/dist/Map/removeAll.d.mts +15 -7
- package/dist/Map/removeAll.mjs +15 -7
- package/dist/Map/removeOr.d.mts +16 -7
- package/dist/Map/removeOr.mjs +16 -7
- package/dist/Map/removeOrElse.d.mts +18 -12
- package/dist/Map/removeOrElse.mjs +16 -7
- package/dist/Map/removeOrThrow.d.mts +15 -7
- package/dist/Map/removeOrThrow.mjs +15 -7
- package/dist/Map/set.d.mts +16 -7
- package/dist/Map/set.mjs +16 -7
- package/dist/Map/some.d.mts +52 -0
- package/dist/Map/some.mjs +55 -0
- package/package.json +2 -2
- package/dist/Map/internals/types.d.mts +0 -14
package/dist/Map/mapOr.d.mts
CHANGED
|
@@ -1,19 +1,29 @@
|
|
|
1
|
-
import { MapMap } from "./internals/types.mjs";
|
|
2
|
-
|
|
3
1
|
//#region src/Map/mapOr.d.ts
|
|
4
|
-
|
|
5
2
|
/**
|
|
3
|
+
* # mapOr
|
|
4
|
+
*
|
|
6
5
|
* ```ts
|
|
7
|
-
* function Map.mapOr
|
|
6
|
+
* function Map.mapOr<K, V, U>(
|
|
7
|
+
* target: ReadonlyMap<K, V>,
|
|
8
|
+
* key: NoInfer<K>,
|
|
9
|
+
* transform: (
|
|
10
|
+
* value: NoInfer<V>,
|
|
11
|
+
* key: NoInfer<K>,
|
|
12
|
+
* target: ReadonlyMap<K, V>,
|
|
13
|
+
* ) => V,
|
|
14
|
+
* or: U,
|
|
15
|
+
* ): ReadonlyMap<K, V> | U
|
|
8
16
|
* ```
|
|
9
17
|
*
|
|
18
|
+
* Transforms the value at the specified key using the provided function, or returns the fallback value if the key doesn't exist.
|
|
19
|
+
*
|
|
10
20
|
* ## Example
|
|
11
21
|
*
|
|
12
|
-
* ```ts
|
|
22
|
+
* ```ts [data-first]
|
|
13
23
|
* import { Map } from "@monstermann/map";
|
|
14
24
|
*
|
|
15
25
|
* Map.mapOr(
|
|
16
|
-
* Map
|
|
26
|
+
* new Map([
|
|
17
27
|
* ["a", 1],
|
|
18
28
|
* ["b", 2],
|
|
19
29
|
* ]),
|
|
@@ -23,7 +33,7 @@ import { MapMap } from "./internals/types.mjs";
|
|
|
23
33
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
24
34
|
*
|
|
25
35
|
* Map.mapOr(
|
|
26
|
-
* Map
|
|
36
|
+
* new Map([
|
|
27
37
|
* ["a", 1],
|
|
28
38
|
* ["b", 2],
|
|
29
39
|
* ]),
|
|
@@ -33,11 +43,11 @@ import { MapMap } from "./internals/types.mjs";
|
|
|
33
43
|
* ); // null
|
|
34
44
|
* ```
|
|
35
45
|
*
|
|
36
|
-
* ```ts
|
|
46
|
+
* ```ts [data-last]
|
|
37
47
|
* import { Map } from "@monstermann/map";
|
|
38
48
|
*
|
|
39
49
|
* pipe(
|
|
40
|
-
* Map
|
|
50
|
+
* new Map([
|
|
41
51
|
* ["a", 1],
|
|
42
52
|
* ["b", 2],
|
|
43
53
|
* ]),
|
|
@@ -45,19 +55,20 @@ import { MapMap } from "./internals/types.mjs";
|
|
|
45
55
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
46
56
|
*
|
|
47
57
|
* pipe(
|
|
48
|
-
* Map
|
|
58
|
+
* new Map([
|
|
49
59
|
* ["a", 1],
|
|
50
60
|
* ["b", 2],
|
|
51
61
|
* ]),
|
|
52
62
|
* Map.mapOr("c", (value) => value * 2, null),
|
|
53
63
|
* ); // null
|
|
54
64
|
* ```
|
|
65
|
+
*
|
|
55
66
|
*/
|
|
56
67
|
declare const mapOr: {
|
|
57
|
-
<K, V, U>(key: NoInfer<K>, transform:
|
|
58
|
-
<K, V, U>(key: NoInfer<K>, transform:
|
|
59
|
-
<K, V, U>(target: Map<K, V>, key: NoInfer<K>, transform:
|
|
60
|
-
<K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform:
|
|
68
|
+
<K, V, U>(key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V, or: U): (target: Map<K, V>) => Map<K, V> | U;
|
|
69
|
+
<K, V, U>(key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V, or: U): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V> | U;
|
|
70
|
+
<K, V, U>(target: Map<K, V>, key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V, or: U): Map<K, V> | U;
|
|
71
|
+
<K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V, or: U): ReadonlyMap<K, V> | U;
|
|
61
72
|
};
|
|
62
73
|
//#endregion
|
|
63
74
|
export { mapOr };
|
package/dist/Map/mapOr.mjs
CHANGED
|
@@ -3,17 +3,30 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
3
3
|
|
|
4
4
|
//#region src/Map/mapOr.ts
|
|
5
5
|
/**
|
|
6
|
+
* # mapOr
|
|
7
|
+
*
|
|
6
8
|
* ```ts
|
|
7
|
-
* function Map.mapOr
|
|
9
|
+
* function Map.mapOr<K, V, U>(
|
|
10
|
+
* target: ReadonlyMap<K, V>,
|
|
11
|
+
* key: NoInfer<K>,
|
|
12
|
+
* transform: (
|
|
13
|
+
* value: NoInfer<V>,
|
|
14
|
+
* key: NoInfer<K>,
|
|
15
|
+
* target: ReadonlyMap<K, V>,
|
|
16
|
+
* ) => V,
|
|
17
|
+
* or: U,
|
|
18
|
+
* ): ReadonlyMap<K, V> | U
|
|
8
19
|
* ```
|
|
9
20
|
*
|
|
21
|
+
* Transforms the value at the specified key using the provided function, or returns the fallback value if the key doesn't exist.
|
|
22
|
+
*
|
|
10
23
|
* ## Example
|
|
11
24
|
*
|
|
12
|
-
* ```ts
|
|
25
|
+
* ```ts [data-first]
|
|
13
26
|
* import { Map } from "@monstermann/map";
|
|
14
27
|
*
|
|
15
28
|
* Map.mapOr(
|
|
16
|
-
* Map
|
|
29
|
+
* new Map([
|
|
17
30
|
* ["a", 1],
|
|
18
31
|
* ["b", 2],
|
|
19
32
|
* ]),
|
|
@@ -23,7 +36,7 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
23
36
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
24
37
|
*
|
|
25
38
|
* Map.mapOr(
|
|
26
|
-
* Map
|
|
39
|
+
* new Map([
|
|
27
40
|
* ["a", 1],
|
|
28
41
|
* ["b", 2],
|
|
29
42
|
* ]),
|
|
@@ -33,11 +46,11 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
33
46
|
* ); // null
|
|
34
47
|
* ```
|
|
35
48
|
*
|
|
36
|
-
* ```ts
|
|
49
|
+
* ```ts [data-last]
|
|
37
50
|
* import { Map } from "@monstermann/map";
|
|
38
51
|
*
|
|
39
52
|
* pipe(
|
|
40
|
-
* Map
|
|
53
|
+
* new Map([
|
|
41
54
|
* ["a", 1],
|
|
42
55
|
* ["b", 2],
|
|
43
56
|
* ]),
|
|
@@ -45,13 +58,14 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
45
58
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
46
59
|
*
|
|
47
60
|
* pipe(
|
|
48
|
-
* Map
|
|
61
|
+
* new Map([
|
|
49
62
|
* ["a", 1],
|
|
50
63
|
* ["b", 2],
|
|
51
64
|
* ]),
|
|
52
65
|
* Map.mapOr("c", (value) => value * 2, null),
|
|
53
66
|
* ); // null
|
|
54
67
|
* ```
|
|
68
|
+
*
|
|
55
69
|
*/
|
|
56
70
|
const mapOr = dfdlT((target, key, transform, or) => {
|
|
57
71
|
if (!target.has(key)) return or;
|
package/dist/Map/mapOrElse.d.mts
CHANGED
|
@@ -1,19 +1,29 @@
|
|
|
1
|
-
import { MapMap, OrElse } from "./internals/types.mjs";
|
|
2
|
-
|
|
3
1
|
//#region src/Map/mapOrElse.d.ts
|
|
4
|
-
|
|
5
2
|
/**
|
|
3
|
+
* # mapOrElse
|
|
4
|
+
*
|
|
6
5
|
* ```ts
|
|
7
|
-
* function Map.mapOrElse
|
|
6
|
+
* function Map.mapOrElse<K, V, U>(
|
|
7
|
+
* target: ReadonlyMap<K, V>,
|
|
8
|
+
* key: NoInfer<K>,
|
|
9
|
+
* transform: (
|
|
10
|
+
* value: NoInfer<V>,
|
|
11
|
+
* key: NoInfer<K>,
|
|
12
|
+
* target: ReadonlyMap<K, V>,
|
|
13
|
+
* ) => V,
|
|
14
|
+
* orElse: (target: ReadonlyMap<K, V>) => U,
|
|
15
|
+
* ): ReadonlyMap<K, V> | U
|
|
8
16
|
* ```
|
|
9
17
|
*
|
|
18
|
+
* Transforms the value at the specified key using the provided function, or calls the fallback function if the key doesn't exist.
|
|
19
|
+
*
|
|
10
20
|
* ## Example
|
|
11
21
|
*
|
|
12
|
-
* ```ts
|
|
22
|
+
* ```ts [data-first]
|
|
13
23
|
* import { Map } from "@monstermann/map";
|
|
14
24
|
*
|
|
15
25
|
* Map.mapOrElse(
|
|
16
|
-
* Map
|
|
26
|
+
* new Map([
|
|
17
27
|
* ["a", 1],
|
|
18
28
|
* ["b", 2],
|
|
19
29
|
* ]),
|
|
@@ -23,7 +33,7 @@ import { MapMap, OrElse } from "./internals/types.mjs";
|
|
|
23
33
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
24
34
|
*
|
|
25
35
|
* Map.mapOrElse(
|
|
26
|
-
* Map
|
|
36
|
+
* new Map([
|
|
27
37
|
* ["a", 1],
|
|
28
38
|
* ["b", 2],
|
|
29
39
|
* ]),
|
|
@@ -33,11 +43,11 @@ import { MapMap, OrElse } from "./internals/types.mjs";
|
|
|
33
43
|
* ); // 2
|
|
34
44
|
* ```
|
|
35
45
|
*
|
|
36
|
-
* ```ts
|
|
46
|
+
* ```ts [data-last]
|
|
37
47
|
* import { Map } from "@monstermann/map";
|
|
38
48
|
*
|
|
39
49
|
* pipe(
|
|
40
|
-
* Map
|
|
50
|
+
* new Map([
|
|
41
51
|
* ["a", 1],
|
|
42
52
|
* ["b", 2],
|
|
43
53
|
* ]),
|
|
@@ -49,7 +59,7 @@ import { MapMap, OrElse } from "./internals/types.mjs";
|
|
|
49
59
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
50
60
|
*
|
|
51
61
|
* pipe(
|
|
52
|
-
* Map
|
|
62
|
+
* new Map([
|
|
53
63
|
* ["a", 1],
|
|
54
64
|
* ["b", 2],
|
|
55
65
|
* ]),
|
|
@@ -60,12 +70,13 @@ import { MapMap, OrElse } from "./internals/types.mjs";
|
|
|
60
70
|
* ),
|
|
61
71
|
* ); // 2
|
|
62
72
|
* ```
|
|
73
|
+
*
|
|
63
74
|
*/
|
|
64
75
|
declare const mapOrElse: {
|
|
65
|
-
<K, V, U>(key: NoInfer<K>, transform:
|
|
66
|
-
<K, V, U>(key: NoInfer<K>, transform:
|
|
67
|
-
<K, V, U>(target: Map<K, V>, key: NoInfer<K>, transform:
|
|
68
|
-
<K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform:
|
|
76
|
+
<K, V, U>(key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V, orElse: (target: ReadonlyMap<K, V>) => U): (target: Map<K, V>) => Map<K, V> | U;
|
|
77
|
+
<K, V, U>(key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V, orElse: (target: ReadonlyMap<K, V>) => U): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V> | U;
|
|
78
|
+
<K, V, U>(target: Map<K, V>, key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V, orElse: (target: ReadonlyMap<K, V>) => U): Map<K, V> | U;
|
|
79
|
+
<K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V, orElse: (target: ReadonlyMap<K, V>) => U): ReadonlyMap<K, V> | U;
|
|
69
80
|
};
|
|
70
81
|
//#endregion
|
|
71
82
|
export { mapOrElse };
|
package/dist/Map/mapOrElse.mjs
CHANGED
|
@@ -3,17 +3,30 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
3
3
|
|
|
4
4
|
//#region src/Map/mapOrElse.ts
|
|
5
5
|
/**
|
|
6
|
+
* # mapOrElse
|
|
7
|
+
*
|
|
6
8
|
* ```ts
|
|
7
|
-
* function Map.mapOrElse
|
|
9
|
+
* function Map.mapOrElse<K, V, U>(
|
|
10
|
+
* target: ReadonlyMap<K, V>,
|
|
11
|
+
* key: NoInfer<K>,
|
|
12
|
+
* transform: (
|
|
13
|
+
* value: NoInfer<V>,
|
|
14
|
+
* key: NoInfer<K>,
|
|
15
|
+
* target: ReadonlyMap<K, V>,
|
|
16
|
+
* ) => V,
|
|
17
|
+
* orElse: (target: ReadonlyMap<K, V>) => U,
|
|
18
|
+
* ): ReadonlyMap<K, V> | U
|
|
8
19
|
* ```
|
|
9
20
|
*
|
|
21
|
+
* Transforms the value at the specified key using the provided function, or calls the fallback function if the key doesn't exist.
|
|
22
|
+
*
|
|
10
23
|
* ## Example
|
|
11
24
|
*
|
|
12
|
-
* ```ts
|
|
25
|
+
* ```ts [data-first]
|
|
13
26
|
* import { Map } from "@monstermann/map";
|
|
14
27
|
*
|
|
15
28
|
* Map.mapOrElse(
|
|
16
|
-
* Map
|
|
29
|
+
* new Map([
|
|
17
30
|
* ["a", 1],
|
|
18
31
|
* ["b", 2],
|
|
19
32
|
* ]),
|
|
@@ -23,7 +36,7 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
23
36
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
24
37
|
*
|
|
25
38
|
* Map.mapOrElse(
|
|
26
|
-
* Map
|
|
39
|
+
* new Map([
|
|
27
40
|
* ["a", 1],
|
|
28
41
|
* ["b", 2],
|
|
29
42
|
* ]),
|
|
@@ -33,11 +46,11 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
33
46
|
* ); // 2
|
|
34
47
|
* ```
|
|
35
48
|
*
|
|
36
|
-
* ```ts
|
|
49
|
+
* ```ts [data-last]
|
|
37
50
|
* import { Map } from "@monstermann/map";
|
|
38
51
|
*
|
|
39
52
|
* pipe(
|
|
40
|
-
* Map
|
|
53
|
+
* new Map([
|
|
41
54
|
* ["a", 1],
|
|
42
55
|
* ["b", 2],
|
|
43
56
|
* ]),
|
|
@@ -49,7 +62,7 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
49
62
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
50
63
|
*
|
|
51
64
|
* pipe(
|
|
52
|
-
* Map
|
|
65
|
+
* new Map([
|
|
53
66
|
* ["a", 1],
|
|
54
67
|
* ["b", 2],
|
|
55
68
|
* ]),
|
|
@@ -60,6 +73,7 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
60
73
|
* ),
|
|
61
74
|
* ); // 2
|
|
62
75
|
* ```
|
|
76
|
+
*
|
|
63
77
|
*/
|
|
64
78
|
const mapOrElse = dfdlT((target, key, transform, orElse) => {
|
|
65
79
|
if (!target.has(key)) return orElse(target);
|
|
@@ -1,19 +1,28 @@
|
|
|
1
|
-
import { MapMap } from "./internals/types.mjs";
|
|
2
|
-
|
|
3
1
|
//#region src/Map/mapOrThrow.d.ts
|
|
4
|
-
|
|
5
2
|
/**
|
|
3
|
+
* # mapOrThrow
|
|
4
|
+
*
|
|
6
5
|
* ```ts
|
|
7
|
-
* function Map.mapOrThrow
|
|
6
|
+
* function Map.mapOrThrow<K, V>(
|
|
7
|
+
* target: ReadonlyMap<K, V>,
|
|
8
|
+
* key: NoInfer<K>,
|
|
9
|
+
* transform: (
|
|
10
|
+
* value: NoInfer<V>,
|
|
11
|
+
* key: NoInfer<K>,
|
|
12
|
+
* target: ReadonlyMap<K, V>,
|
|
13
|
+
* ) => V,
|
|
14
|
+
* ): ReadonlyMap<K, V>
|
|
8
15
|
* ```
|
|
9
16
|
*
|
|
17
|
+
* Transforms the value at the specified key using the provided function, or throws an error if the key doesn't exist.
|
|
18
|
+
*
|
|
10
19
|
* ## Example
|
|
11
20
|
*
|
|
12
|
-
* ```ts
|
|
21
|
+
* ```ts [data-first]
|
|
13
22
|
* import { Map } from "@monstermann/map";
|
|
14
23
|
*
|
|
15
24
|
* Map.mapOrThrow(
|
|
16
|
-
* Map
|
|
25
|
+
* new Map([
|
|
17
26
|
* ["a", 1],
|
|
18
27
|
* ["b", 2],
|
|
19
28
|
* ]),
|
|
@@ -22,7 +31,7 @@ import { MapMap } from "./internals/types.mjs";
|
|
|
22
31
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
23
32
|
*
|
|
24
33
|
* Map.mapOrThrow(
|
|
25
|
-
* Map
|
|
34
|
+
* new Map([
|
|
26
35
|
* ["a", 1],
|
|
27
36
|
* ["b", 2],
|
|
28
37
|
* ]),
|
|
@@ -31,11 +40,11 @@ import { MapMap } from "./internals/types.mjs";
|
|
|
31
40
|
* ); // throws FnError
|
|
32
41
|
* ```
|
|
33
42
|
*
|
|
34
|
-
* ```ts
|
|
43
|
+
* ```ts [data-last]
|
|
35
44
|
* import { Map } from "@monstermann/map";
|
|
36
45
|
*
|
|
37
46
|
* pipe(
|
|
38
|
-
* Map
|
|
47
|
+
* new Map([
|
|
39
48
|
* ["a", 1],
|
|
40
49
|
* ["b", 2],
|
|
41
50
|
* ]),
|
|
@@ -43,19 +52,20 @@ import { MapMap } from "./internals/types.mjs";
|
|
|
43
52
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
44
53
|
*
|
|
45
54
|
* pipe(
|
|
46
|
-
* Map
|
|
55
|
+
* new Map([
|
|
47
56
|
* ["a", 1],
|
|
48
57
|
* ["b", 2],
|
|
49
58
|
* ]),
|
|
50
59
|
* Map.mapOrThrow("c", (value) => value * 2),
|
|
51
60
|
* ); // throws FnError
|
|
52
61
|
* ```
|
|
62
|
+
*
|
|
53
63
|
*/
|
|
54
64
|
declare const mapOrThrow: {
|
|
55
|
-
<K, V>(key: NoInfer<K>, transform:
|
|
56
|
-
<K, V>(key: NoInfer<K>, transform:
|
|
57
|
-
<K, V>(target: Map<K, V>, key: NoInfer<K>, transform:
|
|
58
|
-
<K, V>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform:
|
|
65
|
+
<K, V>(key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V): (target: Map<K, V>) => Map<K, V>;
|
|
66
|
+
<K, V>(key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V>;
|
|
67
|
+
<K, V>(target: Map<K, V>, key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V): Map<K, V>;
|
|
68
|
+
<K, V>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => V): ReadonlyMap<K, V>;
|
|
59
69
|
};
|
|
60
70
|
//#endregion
|
|
61
71
|
export { mapOrThrow };
|
package/dist/Map/mapOrThrow.mjs
CHANGED
|
@@ -3,17 +3,29 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
3
3
|
|
|
4
4
|
//#region src/Map/mapOrThrow.ts
|
|
5
5
|
/**
|
|
6
|
+
* # mapOrThrow
|
|
7
|
+
*
|
|
6
8
|
* ```ts
|
|
7
|
-
* function Map.mapOrThrow
|
|
9
|
+
* function Map.mapOrThrow<K, V>(
|
|
10
|
+
* target: ReadonlyMap<K, V>,
|
|
11
|
+
* key: NoInfer<K>,
|
|
12
|
+
* transform: (
|
|
13
|
+
* value: NoInfer<V>,
|
|
14
|
+
* key: NoInfer<K>,
|
|
15
|
+
* target: ReadonlyMap<K, V>,
|
|
16
|
+
* ) => V,
|
|
17
|
+
* ): ReadonlyMap<K, V>
|
|
8
18
|
* ```
|
|
9
19
|
*
|
|
20
|
+
* Transforms the value at the specified key using the provided function, or throws an error if the key doesn't exist.
|
|
21
|
+
*
|
|
10
22
|
* ## Example
|
|
11
23
|
*
|
|
12
|
-
* ```ts
|
|
24
|
+
* ```ts [data-first]
|
|
13
25
|
* import { Map } from "@monstermann/map";
|
|
14
26
|
*
|
|
15
27
|
* Map.mapOrThrow(
|
|
16
|
-
* Map
|
|
28
|
+
* new Map([
|
|
17
29
|
* ["a", 1],
|
|
18
30
|
* ["b", 2],
|
|
19
31
|
* ]),
|
|
@@ -22,7 +34,7 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
22
34
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
23
35
|
*
|
|
24
36
|
* Map.mapOrThrow(
|
|
25
|
-
* Map
|
|
37
|
+
* new Map([
|
|
26
38
|
* ["a", 1],
|
|
27
39
|
* ["b", 2],
|
|
28
40
|
* ]),
|
|
@@ -31,11 +43,11 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
31
43
|
* ); // throws FnError
|
|
32
44
|
* ```
|
|
33
45
|
*
|
|
34
|
-
* ```ts
|
|
46
|
+
* ```ts [data-last]
|
|
35
47
|
* import { Map } from "@monstermann/map";
|
|
36
48
|
*
|
|
37
49
|
* pipe(
|
|
38
|
-
* Map
|
|
50
|
+
* new Map([
|
|
39
51
|
* ["a", 1],
|
|
40
52
|
* ["b", 2],
|
|
41
53
|
* ]),
|
|
@@ -43,13 +55,14 @@ import { cloneMap } from "@monstermann/remmi";
|
|
|
43
55
|
* ); // Map(2) { "a" => 2, "b" => 2 }
|
|
44
56
|
*
|
|
45
57
|
* pipe(
|
|
46
|
-
* Map
|
|
58
|
+
* new Map([
|
|
47
59
|
* ["a", 1],
|
|
48
60
|
* ["b", 2],
|
|
49
61
|
* ]),
|
|
50
62
|
* Map.mapOrThrow("c", (value) => value * 2),
|
|
51
63
|
* ); // throws FnError
|
|
52
64
|
* ```
|
|
65
|
+
*
|
|
53
66
|
*/
|
|
54
67
|
const mapOrThrow = dfdlT((target, key, transform) => {
|
|
55
68
|
if (!target.has(key)) throw new Error("Map.mapOrThrow: Key does not exist.");
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
//#region src/Map/none.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* # none
|
|
4
|
+
*
|
|
5
|
+
* ```ts
|
|
6
|
+
* function Map.none<K, V>(
|
|
7
|
+
* target: ReadonlyMap<K, V>,
|
|
8
|
+
* predicate: (
|
|
9
|
+
* value: NoInfer<V>,
|
|
10
|
+
* key: NoInfer<K>,
|
|
11
|
+
* target: ReadonlyMap<K, V>,
|
|
12
|
+
* ) => boolean,
|
|
13
|
+
* ): boolean
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Returns `true` if no entries in the map satisfy the provided `predicate` function, otherwise returns `false`.
|
|
17
|
+
*
|
|
18
|
+
* ## Example
|
|
19
|
+
*
|
|
20
|
+
* ```ts [data-first]
|
|
21
|
+
* import { Map } from "@monstermann/map";
|
|
22
|
+
*
|
|
23
|
+
* Map.none(
|
|
24
|
+
* new Map([
|
|
25
|
+
* ["a", 1],
|
|
26
|
+
* ["b", 2],
|
|
27
|
+
* ["c", 3],
|
|
28
|
+
* ]),
|
|
29
|
+
* (value) => value > 10,
|
|
30
|
+
* ); // true
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* ```ts [data-last]
|
|
34
|
+
* import { Map } from "@monstermann/map";
|
|
35
|
+
*
|
|
36
|
+
* pipe(
|
|
37
|
+
* new Map([
|
|
38
|
+
* ["a", 1],
|
|
39
|
+
* ["b", 2],
|
|
40
|
+
* ["c", 3],
|
|
41
|
+
* ]),
|
|
42
|
+
* Map.none((value) => value > 10),
|
|
43
|
+
* ); // true
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
*/
|
|
47
|
+
declare const none: {
|
|
48
|
+
<K, V, U extends V>(predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => value is U): (target: Map<K, V>) => target is Map<K, Exclude<V, U>>;
|
|
49
|
+
<K, V, U extends V>(predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => value is U): (target: ReadonlyMap<K, V>) => target is ReadonlyMap<K, Exclude<V, U>>;
|
|
50
|
+
<K, V>(predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): (target: Map<K, V>) => boolean;
|
|
51
|
+
<K, V>(predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): (target: ReadonlyMap<K, V>) => boolean;
|
|
52
|
+
<K, V, U extends V>(target: Map<K, V>, predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => value is U): target is Map<K, Exclude<V, U>>;
|
|
53
|
+
<K, V, U extends V>(target: ReadonlyMap<K, V>, predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => value is U): target is ReadonlyMap<K, Exclude<V, U>>;
|
|
54
|
+
<K, V>(target: Map<K, V>, predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): boolean;
|
|
55
|
+
<K, V>(target: ReadonlyMap<K, V>, predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): boolean;
|
|
56
|
+
};
|
|
57
|
+
//#endregion
|
|
58
|
+
export { none };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { dfdlT } from "@monstermann/dfdl";
|
|
2
|
+
|
|
3
|
+
//#region src/Map/none.ts
|
|
4
|
+
/**
|
|
5
|
+
* # none
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* function Map.none<K, V>(
|
|
9
|
+
* target: ReadonlyMap<K, V>,
|
|
10
|
+
* predicate: (
|
|
11
|
+
* value: NoInfer<V>,
|
|
12
|
+
* key: NoInfer<K>,
|
|
13
|
+
* target: ReadonlyMap<K, V>,
|
|
14
|
+
* ) => boolean,
|
|
15
|
+
* ): boolean
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Returns `true` if no entries in the map satisfy the provided `predicate` function, otherwise returns `false`.
|
|
19
|
+
*
|
|
20
|
+
* ## Example
|
|
21
|
+
*
|
|
22
|
+
* ```ts [data-first]
|
|
23
|
+
* import { Map } from "@monstermann/map";
|
|
24
|
+
*
|
|
25
|
+
* Map.none(
|
|
26
|
+
* new Map([
|
|
27
|
+
* ["a", 1],
|
|
28
|
+
* ["b", 2],
|
|
29
|
+
* ["c", 3],
|
|
30
|
+
* ]),
|
|
31
|
+
* (value) => value > 10,
|
|
32
|
+
* ); // true
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* ```ts [data-last]
|
|
36
|
+
* import { Map } from "@monstermann/map";
|
|
37
|
+
*
|
|
38
|
+
* pipe(
|
|
39
|
+
* new Map([
|
|
40
|
+
* ["a", 1],
|
|
41
|
+
* ["b", 2],
|
|
42
|
+
* ["c", 3],
|
|
43
|
+
* ]),
|
|
44
|
+
* Map.none((value) => value > 10),
|
|
45
|
+
* ); // true
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
*/
|
|
49
|
+
const none = dfdlT(((target, predicate) => {
|
|
50
|
+
for (const [key, value] of target) if (predicate(value, key, target)) return false;
|
|
51
|
+
return true;
|
|
52
|
+
}), 2);
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
export { none };
|
package/dist/Map/reject.d.mts
CHANGED
|
@@ -1,19 +1,27 @@
|
|
|
1
|
-
import { MapGuard, MapPredicate } from "./internals/types.mjs";
|
|
2
|
-
|
|
3
1
|
//#region src/Map/reject.d.ts
|
|
4
|
-
|
|
5
2
|
/**
|
|
3
|
+
* # reject
|
|
4
|
+
*
|
|
6
5
|
* ```ts
|
|
7
|
-
* function Map.reject
|
|
6
|
+
* function Map.reject<K, V>(
|
|
7
|
+
* target: ReadonlyMap<K, V>,
|
|
8
|
+
* by: (
|
|
9
|
+
* value: NoInfer<V>,
|
|
10
|
+
* key: NoInfer<K>,
|
|
11
|
+
* target: ReadonlyMap<K, V>,
|
|
12
|
+
* ) => boolean,
|
|
13
|
+
* ): ReadonlyMap<K, V>
|
|
8
14
|
* ```
|
|
9
15
|
*
|
|
16
|
+
* Returns a new map excluding entries that satisfy the predicate function.
|
|
17
|
+
*
|
|
10
18
|
* ## Example
|
|
11
19
|
*
|
|
12
|
-
* ```ts
|
|
20
|
+
* ```ts [data-first]
|
|
13
21
|
* import { Map } from "@monstermann/map";
|
|
14
22
|
*
|
|
15
23
|
* Map.reject(
|
|
16
|
-
* Map
|
|
24
|
+
* new Map([
|
|
17
25
|
* ["a", 1],
|
|
18
26
|
* ["b", 2],
|
|
19
27
|
* ["c", 3],
|
|
@@ -22,11 +30,11 @@ import { MapGuard, MapPredicate } from "./internals/types.mjs";
|
|
|
22
30
|
* ); // Map(1) { "a" => 1 }
|
|
23
31
|
* ```
|
|
24
32
|
*
|
|
25
|
-
* ```ts
|
|
33
|
+
* ```ts [data-last]
|
|
26
34
|
* import { Map } from "@monstermann/map";
|
|
27
35
|
*
|
|
28
36
|
* pipe(
|
|
29
|
-
* Map
|
|
37
|
+
* new Map([
|
|
30
38
|
* ["a", 1],
|
|
31
39
|
* ["b", 2],
|
|
32
40
|
* ["c", 3],
|
|
@@ -34,16 +42,17 @@ import { MapGuard, MapPredicate } from "./internals/types.mjs";
|
|
|
34
42
|
* Map.reject((value) => value > 1),
|
|
35
43
|
* ); // Map(1) { "a" => 1 }
|
|
36
44
|
* ```
|
|
45
|
+
*
|
|
37
46
|
*/
|
|
38
47
|
declare const reject: {
|
|
39
|
-
<K, V, U extends V>(by:
|
|
40
|
-
<K, V, U extends V>(by:
|
|
41
|
-
<K, V>(by:
|
|
42
|
-
<K, V>(by:
|
|
43
|
-
<K, V, U extends V>(target: Map<K, V>, by:
|
|
44
|
-
<K, V, U extends V>(target: ReadonlyMap<K, V>, by:
|
|
45
|
-
<K, V>(target: Map<K, V>, by:
|
|
46
|
-
<K, V>(target: ReadonlyMap<K, V>, by:
|
|
48
|
+
<K, V, U extends V>(by: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => value is U): (target: Map<K, V>) => Map<K, Exclude<V, U>>;
|
|
49
|
+
<K, V, U extends V>(by: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => value is U): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, Exclude<V, U>>;
|
|
50
|
+
<K, V>(by: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): (target: Map<K, V>) => Map<K, V>;
|
|
51
|
+
<K, V>(by: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V>;
|
|
52
|
+
<K, V, U extends V>(target: Map<K, V>, by: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => value is U): Map<K, Exclude<V, U>>;
|
|
53
|
+
<K, V, U extends V>(target: ReadonlyMap<K, V>, by: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => value is U): ReadonlyMap<K, Exclude<V, U>>;
|
|
54
|
+
<K, V>(target: Map<K, V>, by: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): Map<K, V>;
|
|
55
|
+
<K, V>(target: ReadonlyMap<K, V>, by: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): ReadonlyMap<K, V>;
|
|
47
56
|
};
|
|
48
57
|
//#endregion
|
|
49
58
|
export { reject };
|