@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
@@ -3,17 +3,28 @@ import { cloneMap } from "@monstermann/remmi";
3
3
 
4
4
  //#region src/Map/reject.ts
5
5
  /**
6
+ * # reject
7
+ *
6
8
  * ```ts
7
- * function Map.reject(map, by)
9
+ * function Map.reject<K, V>(
10
+ * target: ReadonlyMap<K, V>,
11
+ * by: (
12
+ * value: NoInfer<V>,
13
+ * key: NoInfer<K>,
14
+ * target: ReadonlyMap<K, V>,
15
+ * ) => boolean,
16
+ * ): ReadonlyMap<K, V>
8
17
  * ```
9
18
  *
19
+ * Returns a new map excluding entries that satisfy the predicate function.
20
+ *
10
21
  * ## Example
11
22
  *
12
- * ```ts
23
+ * ```ts [data-first]
13
24
  * import { Map } from "@monstermann/map";
14
25
  *
15
26
  * Map.reject(
16
- * Map.create([
27
+ * new Map([
17
28
  * ["a", 1],
18
29
  * ["b", 2],
19
30
  * ["c", 3],
@@ -22,11 +33,11 @@ import { cloneMap } from "@monstermann/remmi";
22
33
  * ); // Map(1) { "a" => 1 }
23
34
  * ```
24
35
  *
25
- * ```ts
36
+ * ```ts [data-last]
26
37
  * import { Map } from "@monstermann/map";
27
38
  *
28
39
  * pipe(
29
- * Map.create([
40
+ * new Map([
30
41
  * ["a", 1],
31
42
  * ["b", 2],
32
43
  * ["c", 3],
@@ -34,6 +45,7 @@ import { cloneMap } from "@monstermann/remmi";
34
45
  * Map.reject((value) => value > 1),
35
46
  * ); // Map(1) { "a" => 1 }
36
47
  * ```
48
+ *
37
49
  */
38
50
  const reject = dfdlT((target, by) => {
39
51
  let result;
@@ -1,16 +1,23 @@
1
1
  //#region src/Map/remove.d.ts
2
2
  /**
3
+ * # remove
4
+ *
3
5
  * ```ts
4
- * function Map.remove(map, key)
6
+ * function Map.remove<K, V>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * key: NoInfer<K>,
9
+ * ): ReadonlyMap<K, V>
5
10
  * ```
6
11
  *
12
+ * Removes the specified key from the map. Returns the original map if the key doesn't exist.
13
+ *
7
14
  * ## Example
8
15
  *
9
- * ```ts
16
+ * ```ts [data-first]
10
17
  * import { Map } from "@monstermann/map";
11
18
  *
12
19
  * Map.remove(
13
- * Map.create([
20
+ * new Map([
14
21
  * ["a", 1],
15
22
  * ["b", 2],
16
23
  * ]),
@@ -18,7 +25,7 @@
18
25
  * ); // Map(1) { "b" => 2 }
19
26
  *
20
27
  * Map.remove(
21
- * Map.create([
28
+ * new Map([
22
29
  * ["a", 1],
23
30
  * ["b", 2],
24
31
  * ]),
@@ -26,11 +33,11 @@
26
33
  * ); // Map(2) { "a" => 1, "b" => 2 }
27
34
  * ```
28
35
  *
29
- * ```ts
36
+ * ```ts [data-last]
30
37
  * import { Map } from "@monstermann/map";
31
38
  *
32
39
  * pipe(
33
- * Map.create([
40
+ * new Map([
34
41
  * ["a", 1],
35
42
  * ["b", 2],
36
43
  * ]),
@@ -38,13 +45,14 @@
38
45
  * ); // Map(1) { "b" => 2 }
39
46
  *
40
47
  * pipe(
41
- * Map.create([
48
+ * new Map([
42
49
  * ["a", 1],
43
50
  * ["b", 2],
44
51
  * ]),
45
52
  * Map.remove("c"),
46
53
  * ); // Map(2) { "a" => 1, "b" => 2 }
47
54
  * ```
55
+ *
48
56
  */
49
57
  declare const remove: {
50
58
  <K, V>(key: NoInfer<K>): (target: Map<K, V>) => Map<K, V>;
@@ -3,17 +3,24 @@ import { cloneMap } from "@monstermann/remmi";
3
3
 
4
4
  //#region src/Map/remove.ts
5
5
  /**
6
+ * # remove
7
+ *
6
8
  * ```ts
7
- * function Map.remove(map, key)
9
+ * function Map.remove<K, V>(
10
+ * target: ReadonlyMap<K, V>,
11
+ * key: NoInfer<K>,
12
+ * ): ReadonlyMap<K, V>
8
13
  * ```
9
14
  *
15
+ * Removes the specified key from the map. Returns the original map if the key doesn't exist.
16
+ *
10
17
  * ## Example
11
18
  *
12
- * ```ts
19
+ * ```ts [data-first]
13
20
  * import { Map } from "@monstermann/map";
14
21
  *
15
22
  * Map.remove(
16
- * Map.create([
23
+ * new Map([
17
24
  * ["a", 1],
18
25
  * ["b", 2],
19
26
  * ]),
@@ -21,7 +28,7 @@ import { cloneMap } from "@monstermann/remmi";
21
28
  * ); // Map(1) { "b" => 2 }
22
29
  *
23
30
  * Map.remove(
24
- * Map.create([
31
+ * new Map([
25
32
  * ["a", 1],
26
33
  * ["b", 2],
27
34
  * ]),
@@ -29,11 +36,11 @@ import { cloneMap } from "@monstermann/remmi";
29
36
  * ); // Map(2) { "a" => 1, "b" => 2 }
30
37
  * ```
31
38
  *
32
- * ```ts
39
+ * ```ts [data-last]
33
40
  * import { Map } from "@monstermann/map";
34
41
  *
35
42
  * pipe(
36
- * Map.create([
43
+ * new Map([
37
44
  * ["a", 1],
38
45
  * ["b", 2],
39
46
  * ]),
@@ -41,13 +48,14 @@ import { cloneMap } from "@monstermann/remmi";
41
48
  * ); // Map(1) { "b" => 2 }
42
49
  *
43
50
  * pipe(
44
- * Map.create([
51
+ * new Map([
45
52
  * ["a", 1],
46
53
  * ["b", 2],
47
54
  * ]),
48
55
  * Map.remove("c"),
49
56
  * ); // Map(2) { "a" => 1, "b" => 2 }
50
57
  * ```
58
+ *
51
59
  */
52
60
  const remove = dfdlT((target, key) => {
53
61
  if (!target.has(key)) return target;
@@ -1,16 +1,23 @@
1
1
  //#region src/Map/removeAll.d.ts
2
2
  /**
3
+ * # removeAll
4
+ *
3
5
  * ```ts
4
- * function Map.removeAll(map, keys)
6
+ * function Map.removeAll<K, V>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * keys: Iterable<NoInfer<K>>,
9
+ * ): ReadonlyMap<K, V>
5
10
  * ```
6
11
  *
12
+ * Removes all specified keys from the map.
13
+ *
7
14
  * ## Example
8
15
  *
9
- * ```ts
16
+ * ```ts [data-first]
10
17
  * import { Map } from "@monstermann/map";
11
18
  *
12
19
  * Map.removeAll(
13
- * Map.create([
20
+ * new Map([
14
21
  * ["a", 1],
15
22
  * ["b", 2],
16
23
  * ["c", 3],
@@ -19,7 +26,7 @@
19
26
  * ); // Map(1) { "b" => 2 }
20
27
  *
21
28
  * Map.removeAll(
22
- * Map.create([
29
+ * new Map([
23
30
  * ["a", 1],
24
31
  * ["b", 2],
25
32
  * ["c", 3],
@@ -28,11 +35,11 @@
28
35
  * ); // Map(3) { "a" => 1, "b" => 2, "c" => 3 }
29
36
  * ```
30
37
  *
31
- * ```ts
38
+ * ```ts [data-last]
32
39
  * import { Map } from "@monstermann/map";
33
40
  *
34
41
  * pipe(
35
- * Map.create([
42
+ * new Map([
36
43
  * ["a", 1],
37
44
  * ["b", 2],
38
45
  * ["c", 3],
@@ -41,7 +48,7 @@
41
48
  * ); // Map(1) { "b" => 2 }
42
49
  *
43
50
  * pipe(
44
- * Map.create([
51
+ * new Map([
45
52
  * ["a", 1],
46
53
  * ["b", 2],
47
54
  * ["c", 3],
@@ -49,6 +56,7 @@
49
56
  * Map.removeAll(["d", "e"]),
50
57
  * ); // Map(3) { "a" => 1, "b" => 2, "c" => 3 }
51
58
  * ```
59
+ *
52
60
  */
53
61
  declare const removeAll: {
54
62
  <K, V>(keys: Iterable<NoInfer<K>>): (target: Map<K, V>) => Map<K, V>;
@@ -3,17 +3,24 @@ import { cloneMap } from "@monstermann/remmi";
3
3
 
4
4
  //#region src/Map/removeAll.ts
5
5
  /**
6
+ * # removeAll
7
+ *
6
8
  * ```ts
7
- * function Map.removeAll(map, keys)
9
+ * function Map.removeAll<K, V>(
10
+ * target: ReadonlyMap<K, V>,
11
+ * keys: Iterable<NoInfer<K>>,
12
+ * ): ReadonlyMap<K, V>
8
13
  * ```
9
14
  *
15
+ * Removes all specified keys from the map.
16
+ *
10
17
  * ## Example
11
18
  *
12
- * ```ts
19
+ * ```ts [data-first]
13
20
  * import { Map } from "@monstermann/map";
14
21
  *
15
22
  * Map.removeAll(
16
- * Map.create([
23
+ * new Map([
17
24
  * ["a", 1],
18
25
  * ["b", 2],
19
26
  * ["c", 3],
@@ -22,7 +29,7 @@ import { cloneMap } from "@monstermann/remmi";
22
29
  * ); // Map(1) { "b" => 2 }
23
30
  *
24
31
  * Map.removeAll(
25
- * Map.create([
32
+ * new Map([
26
33
  * ["a", 1],
27
34
  * ["b", 2],
28
35
  * ["c", 3],
@@ -31,11 +38,11 @@ import { cloneMap } from "@monstermann/remmi";
31
38
  * ); // Map(3) { "a" => 1, "b" => 2, "c" => 3 }
32
39
  * ```
33
40
  *
34
- * ```ts
41
+ * ```ts [data-last]
35
42
  * import { Map } from "@monstermann/map";
36
43
  *
37
44
  * pipe(
38
- * Map.create([
45
+ * new Map([
39
46
  * ["a", 1],
40
47
  * ["b", 2],
41
48
  * ["c", 3],
@@ -44,7 +51,7 @@ import { cloneMap } from "@monstermann/remmi";
44
51
  * ); // Map(1) { "b" => 2 }
45
52
  *
46
53
  * pipe(
47
- * Map.create([
54
+ * new Map([
48
55
  * ["a", 1],
49
56
  * ["b", 2],
50
57
  * ["c", 3],
@@ -52,6 +59,7 @@ import { cloneMap } from "@monstermann/remmi";
52
59
  * Map.removeAll(["d", "e"]),
53
60
  * ); // Map(3) { "a" => 1, "b" => 2, "c" => 3 }
54
61
  * ```
62
+ *
55
63
  */
56
64
  const removeAll = dfdlT((target, keys) => {
57
65
  let result;
@@ -1,16 +1,24 @@
1
1
  //#region src/Map/removeOr.d.ts
2
2
  /**
3
+ * # removeOr
4
+ *
3
5
  * ```ts
4
- * function Map.removeOr(map, key, or)
6
+ * function Map.removeOr<K, V, U>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * key: NoInfer<K>,
9
+ * or: U,
10
+ * ): Map<K, V> | U
5
11
  * ```
6
12
  *
13
+ * Removes the specified key from the map, or returns the fallback value if the key doesn't exist.
14
+ *
7
15
  * ## Example
8
16
  *
9
- * ```ts
17
+ * ```ts [data-first]
10
18
  * import { Map } from "@monstermann/map";
11
19
  *
12
20
  * Map.removeOr(
13
- * Map.create([
21
+ * new Map([
14
22
  * ["a", 1],
15
23
  * ["b", 2],
16
24
  * ]),
@@ -19,7 +27,7 @@
19
27
  * ); // Map(1) { "b" => 2 }
20
28
  *
21
29
  * Map.removeOr(
22
- * Map.create([
30
+ * new Map([
23
31
  * ["a", 1],
24
32
  * ["b", 2],
25
33
  * ]),
@@ -28,11 +36,11 @@
28
36
  * ); // null
29
37
  * ```
30
38
  *
31
- * ```ts
39
+ * ```ts [data-last]
32
40
  * import { Map } from "@monstermann/map";
33
41
  *
34
42
  * pipe(
35
- * Map.create([
43
+ * new Map([
36
44
  * ["a", 1],
37
45
  * ["b", 2],
38
46
  * ]),
@@ -40,13 +48,14 @@
40
48
  * ); // Map(1) { "b" => 2 }
41
49
  *
42
50
  * pipe(
43
- * Map.create([
51
+ * new Map([
44
52
  * ["a", 1],
45
53
  * ["b", 2],
46
54
  * ]),
47
55
  * Map.removeOr("c", null),
48
56
  * ); // null
49
57
  * ```
58
+ *
50
59
  */
51
60
  declare const removeOr: {
52
61
  <K, V, U>(key: NoInfer<K>, or: U): (target: ReadonlyMap<K, V>) => Map<K, V> | U;
@@ -3,17 +3,25 @@ import { cloneMap } from "@monstermann/remmi";
3
3
 
4
4
  //#region src/Map/removeOr.ts
5
5
  /**
6
+ * # removeOr
7
+ *
6
8
  * ```ts
7
- * function Map.removeOr(map, key, or)
9
+ * function Map.removeOr<K, V, U>(
10
+ * target: ReadonlyMap<K, V>,
11
+ * key: NoInfer<K>,
12
+ * or: U,
13
+ * ): Map<K, V> | U
8
14
  * ```
9
15
  *
16
+ * Removes the specified key from the map, or returns the fallback value if the key doesn't exist.
17
+ *
10
18
  * ## Example
11
19
  *
12
- * ```ts
20
+ * ```ts [data-first]
13
21
  * import { Map } from "@monstermann/map";
14
22
  *
15
23
  * Map.removeOr(
16
- * Map.create([
24
+ * new Map([
17
25
  * ["a", 1],
18
26
  * ["b", 2],
19
27
  * ]),
@@ -22,7 +30,7 @@ import { cloneMap } from "@monstermann/remmi";
22
30
  * ); // Map(1) { "b" => 2 }
23
31
  *
24
32
  * Map.removeOr(
25
- * Map.create([
33
+ * new Map([
26
34
  * ["a", 1],
27
35
  * ["b", 2],
28
36
  * ]),
@@ -31,11 +39,11 @@ import { cloneMap } from "@monstermann/remmi";
31
39
  * ); // null
32
40
  * ```
33
41
  *
34
- * ```ts
42
+ * ```ts [data-last]
35
43
  * import { Map } from "@monstermann/map";
36
44
  *
37
45
  * pipe(
38
- * Map.create([
46
+ * new Map([
39
47
  * ["a", 1],
40
48
  * ["b", 2],
41
49
  * ]),
@@ -43,13 +51,14 @@ import { cloneMap } from "@monstermann/remmi";
43
51
  * ); // Map(1) { "b" => 2 }
44
52
  *
45
53
  * pipe(
46
- * Map.create([
54
+ * new Map([
47
55
  * ["a", 1],
48
56
  * ["b", 2],
49
57
  * ]),
50
58
  * Map.removeOr("c", null),
51
59
  * ); // null
52
60
  * ```
61
+ *
53
62
  */
54
63
  const removeOr = dfdlT((target, key, or) => {
55
64
  if (!target.has(key)) return or;
@@ -1,19 +1,24 @@
1
- import { OrElse } from "./internals/types.mjs";
2
-
3
1
  //#region src/Map/removeOrElse.d.ts
4
-
5
2
  /**
3
+ * # removeOrElse
4
+ *
6
5
  * ```ts
7
- * function Map.removeOrElse(map, key, orElse)
6
+ * function Map.removeOrElse<K, V, U>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * key: NoInfer<K>,
9
+ * orElse: (target: ReadonlyMap<K, V>) => U,
10
+ * ): Map<K, V> | U
8
11
  * ```
9
12
  *
13
+ * Removes the specified key from the map, or calls the fallback function if the key doesn't exist.
14
+ *
10
15
  * ## Example
11
16
  *
12
- * ```ts
17
+ * ```ts [data-first]
13
18
  * import { Map } from "@monstermann/map";
14
19
  *
15
20
  * Map.removeOrElse(
16
- * Map.create([
21
+ * new Map([
17
22
  * ["a", 1],
18
23
  * ["b", 2],
19
24
  * ]),
@@ -22,7 +27,7 @@ import { OrElse } from "./internals/types.mjs";
22
27
  * ); // Map(1) { "b" => 2 }
23
28
  *
24
29
  * Map.removeOrElse(
25
- * Map.create([
30
+ * new Map([
26
31
  * ["a", 1],
27
32
  * ["b", 2],
28
33
  * ]),
@@ -31,11 +36,11 @@ import { OrElse } from "./internals/types.mjs";
31
36
  * ); // 2
32
37
  * ```
33
38
  *
34
- * ```ts
39
+ * ```ts [data-last]
35
40
  * import { Map } from "@monstermann/map";
36
41
  *
37
42
  * pipe(
38
- * Map.create([
43
+ * new Map([
39
44
  * ["a", 1],
40
45
  * ["b", 2],
41
46
  * ]),
@@ -43,17 +48,18 @@ import { OrElse } from "./internals/types.mjs";
43
48
  * ); // Map(1) { "b" => 2 }
44
49
  *
45
50
  * pipe(
46
- * Map.create([
51
+ * new Map([
47
52
  * ["a", 1],
48
53
  * ["b", 2],
49
54
  * ]),
50
55
  * Map.removeOrElse("c", (map) => map.size),
51
56
  * ); // 2
52
57
  * ```
58
+ *
53
59
  */
54
60
  declare const removeOrElse: {
55
- <K, V, U>(key: NoInfer<K>, orElse: OrElse<K, V, U>): (target: ReadonlyMap<K, V>) => Map<K, V> | U;
56
- <K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, orElse: OrElse<K, V, U>): Map<K, V> | U;
61
+ <K, V, U>(key: NoInfer<K>, orElse: (target: ReadonlyMap<K, V>) => U): (target: ReadonlyMap<K, V>) => Map<K, V> | U;
62
+ <K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, orElse: (target: ReadonlyMap<K, V>) => U): Map<K, V> | U;
57
63
  };
58
64
  //#endregion
59
65
  export { removeOrElse };
@@ -3,17 +3,25 @@ import { cloneMap } from "@monstermann/remmi";
3
3
 
4
4
  //#region src/Map/removeOrElse.ts
5
5
  /**
6
+ * # removeOrElse
7
+ *
6
8
  * ```ts
7
- * function Map.removeOrElse(map, key, orElse)
9
+ * function Map.removeOrElse<K, V, U>(
10
+ * target: ReadonlyMap<K, V>,
11
+ * key: NoInfer<K>,
12
+ * orElse: (target: ReadonlyMap<K, V>) => U,
13
+ * ): Map<K, V> | U
8
14
  * ```
9
15
  *
16
+ * Removes the specified key from the map, or calls the fallback function if the key doesn't exist.
17
+ *
10
18
  * ## Example
11
19
  *
12
- * ```ts
20
+ * ```ts [data-first]
13
21
  * import { Map } from "@monstermann/map";
14
22
  *
15
23
  * Map.removeOrElse(
16
- * Map.create([
24
+ * new Map([
17
25
  * ["a", 1],
18
26
  * ["b", 2],
19
27
  * ]),
@@ -22,7 +30,7 @@ import { cloneMap } from "@monstermann/remmi";
22
30
  * ); // Map(1) { "b" => 2 }
23
31
  *
24
32
  * Map.removeOrElse(
25
- * Map.create([
33
+ * new Map([
26
34
  * ["a", 1],
27
35
  * ["b", 2],
28
36
  * ]),
@@ -31,11 +39,11 @@ import { cloneMap } from "@monstermann/remmi";
31
39
  * ); // 2
32
40
  * ```
33
41
  *
34
- * ```ts
42
+ * ```ts [data-last]
35
43
  * import { Map } from "@monstermann/map";
36
44
  *
37
45
  * pipe(
38
- * Map.create([
46
+ * new Map([
39
47
  * ["a", 1],
40
48
  * ["b", 2],
41
49
  * ]),
@@ -43,13 +51,14 @@ import { cloneMap } from "@monstermann/remmi";
43
51
  * ); // Map(1) { "b" => 2 }
44
52
  *
45
53
  * pipe(
46
- * Map.create([
54
+ * new Map([
47
55
  * ["a", 1],
48
56
  * ["b", 2],
49
57
  * ]),
50
58
  * Map.removeOrElse("c", (map) => map.size),
51
59
  * ); // 2
52
60
  * ```
61
+ *
53
62
  */
54
63
  const removeOrElse = dfdlT((target, key, orElse) => {
55
64
  if (!target.has(key)) return orElse(target);
@@ -1,16 +1,23 @@
1
1
  //#region src/Map/removeOrThrow.d.ts
2
2
  /**
3
+ * # removeOrThrow
4
+ *
3
5
  * ```ts
4
- * function Map.removeOrThrow(map, key)
6
+ * function Map.removeOrThrow<K, V>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * key: NoInfer<K>,
9
+ * ): Map<K, V>
5
10
  * ```
6
11
  *
12
+ * Removes the specified key from the map, or throws an error if the key doesn't exist.
13
+ *
7
14
  * ## Example
8
15
  *
9
- * ```ts
16
+ * ```ts [data-first]
10
17
  * import { Map } from "@monstermann/map";
11
18
  *
12
19
  * Map.removeOrThrow(
13
- * Map.create([
20
+ * new Map([
14
21
  * ["a", 1],
15
22
  * ["b", 2],
16
23
  * ]),
@@ -18,7 +25,7 @@
18
25
  * ); // Map(1) { "b" => 2 }
19
26
  *
20
27
  * Map.removeOrThrow(
21
- * Map.create([
28
+ * new Map([
22
29
  * ["a", 1],
23
30
  * ["b", 2],
24
31
  * ]),
@@ -26,11 +33,11 @@
26
33
  * ); // throws FnError
27
34
  * ```
28
35
  *
29
- * ```ts
36
+ * ```ts [data-last]
30
37
  * import { Map } from "@monstermann/map";
31
38
  *
32
39
  * pipe(
33
- * Map.create([
40
+ * new Map([
34
41
  * ["a", 1],
35
42
  * ["b", 2],
36
43
  * ]),
@@ -38,13 +45,14 @@
38
45
  * ); // Map(1) { "b" => 2 }
39
46
  *
40
47
  * pipe(
41
- * Map.create([
48
+ * new Map([
42
49
  * ["a", 1],
43
50
  * ["b", 2],
44
51
  * ]),
45
52
  * Map.removeOrThrow("c"),
46
53
  * ); // throws FnError
47
54
  * ```
55
+ *
48
56
  */
49
57
  declare const removeOrThrow: {
50
58
  <K, V>(key: NoInfer<K>): (target: ReadonlyMap<K, V>) => Map<K, V>;