@monstermann/map 0.1.2 → 0.3.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.
Files changed (101) hide show
  1. package/README.md +2496 -0
  2. package/dist/Map/clone.d.mts +10 -5
  3. package/dist/Map/clone.mjs +10 -5
  4. package/dist/Map/compact.d.mts +16 -12
  5. package/dist/Map/compact.mjs +12 -5
  6. package/dist/Map/create.d.mts +9 -2
  7. package/dist/Map/create.mjs +9 -2
  8. package/dist/Map/every.d.mts +58 -0
  9. package/dist/Map/every.mjs +55 -0
  10. package/dist/Map/filter.d.mts +25 -16
  11. package/dist/Map/filter.mjs +17 -5
  12. package/dist/Map/find.d.mts +54 -0
  13. package/dist/Map/find.mjs +54 -0
  14. package/dist/Map/findMap.d.mts +67 -0
  15. package/dist/Map/findMap.mjs +71 -0
  16. package/dist/Map/findMapAll.d.mts +67 -0
  17. package/dist/Map/findMapAll.mjs +72 -0
  18. package/dist/Map/findMapOr.d.mts +70 -0
  19. package/dist/Map/findMapOr.mjs +74 -0
  20. package/dist/Map/findMapOrElse.d.mts +70 -0
  21. package/dist/Map/findMapOrElse.mjs +74 -0
  22. package/dist/Map/findMapOrThrow.d.mts +67 -0
  23. package/dist/Map/findMapOrThrow.mjs +71 -0
  24. package/dist/Map/findOr.d.mts +56 -0
  25. package/dist/Map/findOr.mjs +57 -0
  26. package/dist/Map/findOrElse.d.mts +59 -0
  27. package/dist/Map/findOrElse.mjs +60 -0
  28. package/dist/Map/findOrThrow.d.mts +54 -0
  29. package/dist/Map/findOrThrow.mjs +55 -0
  30. package/dist/Map/findRemove.d.mts +54 -0
  31. package/dist/Map/findRemove.mjs +60 -0
  32. package/dist/Map/findRemoveOr.d.mts +56 -0
  33. package/dist/Map/findRemoveOr.mjs +62 -0
  34. package/dist/Map/findRemoveOrElse.d.mts +59 -0
  35. package/dist/Map/findRemoveOrElse.mjs +65 -0
  36. package/dist/Map/findRemoveOrThrow.d.mts +54 -0
  37. package/dist/Map/findRemoveOrThrow.mjs +60 -0
  38. package/dist/Map/findReplace.d.mts +56 -0
  39. package/dist/Map/findReplace.mjs +63 -0
  40. package/dist/Map/findReplaceOr.d.mts +58 -0
  41. package/dist/Map/findReplaceOr.mjs +65 -0
  42. package/dist/Map/findReplaceOrElse.d.mts +62 -0
  43. package/dist/Map/findReplaceOrElse.mjs +69 -0
  44. package/dist/Map/findReplaceOrThrow.d.mts +56 -0
  45. package/dist/Map/findReplaceOrThrow.mjs +63 -0
  46. package/dist/Map/forEach.d.mts +21 -12
  47. package/dist/Map/forEach.mjs +17 -5
  48. package/dist/Map/get.d.mts +15 -7
  49. package/dist/Map/get.mjs +15 -7
  50. package/dist/Map/getOr.d.mts +20 -14
  51. package/dist/Map/getOr.mjs +18 -9
  52. package/dist/Map/getOrElse.d.mts +20 -14
  53. package/dist/Map/getOrElse.mjs +18 -9
  54. package/dist/Map/getOrThrow.d.mts +19 -14
  55. package/dist/Map/getOrThrow.mjs +17 -9
  56. package/dist/Map/has.d.mts +15 -7
  57. package/dist/Map/has.mjs +15 -7
  58. package/dist/Map/hasAll.d.mts +15 -7
  59. package/dist/Map/hasAll.mjs +15 -7
  60. package/dist/Map/hasAny.d.mts +15 -7
  61. package/dist/Map/hasAny.mjs +15 -7
  62. package/dist/Map/hasNone.d.mts +15 -7
  63. package/dist/Map/hasNone.mjs +15 -7
  64. package/dist/Map/index.d.mts +21 -1
  65. package/dist/Map/index.mjs +41 -1
  66. package/dist/Map/is.d.mts +12 -5
  67. package/dist/Map/is.mjs +12 -5
  68. package/dist/Map/isEmpty.d.mts +12 -7
  69. package/dist/Map/isEmpty.mjs +12 -7
  70. package/dist/Map/isShallowEqual.d.mts +19 -11
  71. package/dist/Map/isShallowEqual.mjs +19 -11
  72. package/dist/Map/map.d.mts +25 -14
  73. package/dist/Map/map.mjs +21 -7
  74. package/dist/Map/mapEach.d.mts +21 -12
  75. package/dist/Map/mapEach.mjs +17 -5
  76. package/dist/Map/mapOr.d.mts +25 -14
  77. package/dist/Map/mapOr.mjs +21 -7
  78. package/dist/Map/mapOrElse.d.mts +25 -14
  79. package/dist/Map/mapOrElse.mjs +21 -7
  80. package/dist/Map/mapOrThrow.d.mts +24 -14
  81. package/dist/Map/mapOrThrow.mjs +20 -7
  82. package/dist/Map/none.d.mts +58 -0
  83. package/dist/Map/none.mjs +55 -0
  84. package/dist/Map/reject.d.mts +25 -16
  85. package/dist/Map/reject.mjs +17 -5
  86. package/dist/Map/remove.d.mts +15 -7
  87. package/dist/Map/remove.mjs +15 -7
  88. package/dist/Map/removeAll.d.mts +15 -7
  89. package/dist/Map/removeAll.mjs +15 -7
  90. package/dist/Map/removeOr.d.mts +16 -7
  91. package/dist/Map/removeOr.mjs +16 -7
  92. package/dist/Map/removeOrElse.d.mts +18 -12
  93. package/dist/Map/removeOrElse.mjs +16 -7
  94. package/dist/Map/removeOrThrow.d.mts +15 -7
  95. package/dist/Map/removeOrThrow.mjs +15 -7
  96. package/dist/Map/set.d.mts +16 -7
  97. package/dist/Map/set.mjs +16 -7
  98. package/dist/Map/some.d.mts +52 -0
  99. package/dist/Map/some.mjs +55 -0
  100. package/package.json +2 -2
  101. package/dist/Map/internals/types.d.mts +0 -14
@@ -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(map, key, transform, or)
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.create([
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.create([
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.create([
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.create([
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: MapMap<K, V>, or: U): (target: Map<K, V>) => Map<K, V> | U;
58
- <K, V, U>(key: NoInfer<K>, transform: MapMap<K, V>, or: U): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V> | U;
59
- <K, V, U>(target: Map<K, V>, key: NoInfer<K>, transform: MapMap<K, V>, or: U): Map<K, V> | U;
60
- <K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform: MapMap<K, V>, or: U): ReadonlyMap<K, V> | U;
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 };
@@ -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(map, key, transform, or)
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.create([
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.create([
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.create([
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.create([
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;
@@ -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(map, key, transform, orElse)
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.create([
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.create([
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.create([
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.create([
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: MapMap<K, V>, orElse: OrElse<K, V, U>): (target: Map<K, V>) => Map<K, V> | U;
66
- <K, V, U>(key: NoInfer<K>, transform: MapMap<K, V>, orElse: OrElse<K, V, U>): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V> | U;
67
- <K, V, U>(target: Map<K, V>, key: NoInfer<K>, transform: MapMap<K, V>, orElse: OrElse<K, V, U>): Map<K, V> | U;
68
- <K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform: MapMap<K, V>, orElse: OrElse<K, V, U>): ReadonlyMap<K, V> | U;
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 };
@@ -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(map, key, transform, orElse)
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.create([
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.create([
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.create([
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.create([
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(map, key, transform)
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.create([
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.create([
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.create([
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.create([
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: MapMap<K, V>): (target: Map<K, V>) => Map<K, V>;
56
- <K, V>(key: NoInfer<K>, transform: MapMap<K, V>): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V>;
57
- <K, V>(target: Map<K, V>, key: NoInfer<K>, transform: MapMap<K, V>): Map<K, V>;
58
- <K, V>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform: MapMap<K, V>): ReadonlyMap<K, V>;
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 };
@@ -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(map, key, transform)
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.create([
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.create([
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.create([
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.create([
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 };
@@ -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(map, by)
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.create([
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.create([
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: MapGuard<K, V, U>): (target: Map<K, V>) => Map<K, Exclude<V, U>>;
40
- <K, V, U extends V>(by: MapGuard<K, V, U>): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, Exclude<V, U>>;
41
- <K, V>(by: MapPredicate<K, V>): (target: Map<K, V>) => Map<K, V>;
42
- <K, V>(by: MapPredicate<K, V>): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V>;
43
- <K, V, U extends V>(target: Map<K, V>, by: MapGuard<K, V, U>): Map<K, Exclude<V, U>>;
44
- <K, V, U extends V>(target: ReadonlyMap<K, V>, by: MapGuard<K, V, U>): ReadonlyMap<K, Exclude<V, U>>;
45
- <K, V>(target: Map<K, V>, by: MapPredicate<K, V>): Map<K, V>;
46
- <K, V>(target: ReadonlyMap<K, V>, by: MapPredicate<K, V>): ReadonlyMap<K, V>;
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 };