@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,27 @@
1
- import { MapMap } from "./internals/types.mjs";
2
-
3
1
  //#region src/Map/forEach.d.ts
4
-
5
2
  /**
3
+ * # forEach
4
+ *
6
5
  * ```ts
7
- * function Map.forEach(map, fn)
6
+ * function Map.forEach<K, V>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * fn: (
9
+ * value: NoInfer<V>,
10
+ * key: NoInfer<K>,
11
+ * target: ReadonlyMap<K, V>,
12
+ * ) => any,
13
+ * ): ReadonlyMap<K, V>
8
14
  * ```
9
15
  *
16
+ * Executes a function for each entry in the map and returns the original map.
17
+ *
10
18
  * ## Example
11
19
  *
12
- * ```ts
20
+ * ```ts [data-first]
13
21
  * import { Map } from "@monstermann/map";
14
22
  *
15
23
  * Map.forEach(
16
- * Map.create([
24
+ * new Map([
17
25
  * ["a", 1],
18
26
  * ["b", 2],
19
27
  * ]),
@@ -21,23 +29,24 @@ import { MapMap } from "./internals/types.mjs";
21
29
  * ); // Map(2) { "a" => 1, "b" => 2 }
22
30
  * ```
23
31
  *
24
- * ```ts
32
+ * ```ts [data-last]
25
33
  * import { Map } from "@monstermann/map";
26
34
  *
27
35
  * pipe(
28
- * Map.create([
36
+ * new Map([
29
37
  * ["a", 1],
30
38
  * ["b", 2],
31
39
  * ]),
32
40
  * Map.forEach((value, key) => console.log(key, value)),
33
41
  * ); // Map(2) { "a" => 1, "b" => 2 }
34
42
  * ```
43
+ *
35
44
  */
36
45
  declare const forEach: {
37
- <K, V>(fn: MapMap<K, V, any>): (target: Map<K, V>) => Map<K, V>;
38
- <K, V>(fn: MapMap<K, V, any>): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V>;
39
- <K, V>(target: Map<K, V>, fn: MapMap<K, V, any>): Map<K, V>;
40
- <K, V>(target: ReadonlyMap<K, V>, fn: MapMap<K, V, any>): ReadonlyMap<K, V>;
46
+ <K, V>(fn: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => any): (target: Map<K, V>) => Map<K, V>;
47
+ <K, V>(fn: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => any): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V>;
48
+ <K, V>(target: Map<K, V>, fn: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => any): Map<K, V>;
49
+ <K, V>(target: ReadonlyMap<K, V>, fn: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => any): ReadonlyMap<K, V>;
41
50
  };
42
51
  //#endregion
43
52
  export { forEach };
@@ -2,17 +2,28 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Map/forEach.ts
4
4
  /**
5
+ * # forEach
6
+ *
5
7
  * ```ts
6
- * function Map.forEach(map, fn)
8
+ * function Map.forEach<K, V>(
9
+ * target: ReadonlyMap<K, V>,
10
+ * fn: (
11
+ * value: NoInfer<V>,
12
+ * key: NoInfer<K>,
13
+ * target: ReadonlyMap<K, V>,
14
+ * ) => any,
15
+ * ): ReadonlyMap<K, V>
7
16
  * ```
8
17
  *
18
+ * Executes a function for each entry in the map and returns the original map.
19
+ *
9
20
  * ## Example
10
21
  *
11
- * ```ts
22
+ * ```ts [data-first]
12
23
  * import { Map } from "@monstermann/map";
13
24
  *
14
25
  * Map.forEach(
15
- * Map.create([
26
+ * new Map([
16
27
  * ["a", 1],
17
28
  * ["b", 2],
18
29
  * ]),
@@ -20,17 +31,18 @@ import { dfdlT } from "@monstermann/dfdl";
20
31
  * ); // Map(2) { "a" => 1, "b" => 2 }
21
32
  * ```
22
33
  *
23
- * ```ts
34
+ * ```ts [data-last]
24
35
  * import { Map } from "@monstermann/map";
25
36
  *
26
37
  * pipe(
27
- * Map.create([
38
+ * new Map([
28
39
  * ["a", 1],
29
40
  * ["b", 2],
30
41
  * ]),
31
42
  * Map.forEach((value, key) => console.log(key, value)),
32
43
  * ); // Map(2) { "a" => 1, "b" => 2 }
33
44
  * ```
45
+ *
34
46
  */
35
47
  const forEach = dfdlT((target, fn) => {
36
48
  target.forEach(fn);
@@ -1,16 +1,23 @@
1
1
  //#region src/Map/get.d.ts
2
2
  /**
3
+ * # get
4
+ *
3
5
  * ```ts
4
- * function Map.get(map, key)
6
+ * function Map.get<K, V>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * key: NoInfer<K>,
9
+ * ): V | undefined
5
10
  * ```
6
11
  *
12
+ * Gets the value associated with the specified key, or `undefined` 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.get(
13
- * Map.create([
20
+ * new Map([
14
21
  * ["a", 1],
15
22
  * ["b", 2],
16
23
  * ]),
@@ -18,7 +25,7 @@
18
25
  * ); // 1
19
26
  *
20
27
  * Map.get(
21
- * Map.create([
28
+ * new Map([
22
29
  * ["a", 1],
23
30
  * ["b", 2],
24
31
  * ]),
@@ -26,11 +33,11 @@
26
33
  * ); // undefined
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
  * ); // 1
39
46
  *
40
47
  * pipe(
41
- * Map.create([
48
+ * new Map([
42
49
  * ["a", 1],
43
50
  * ["b", 2],
44
51
  * ]),
45
52
  * Map.get("c"),
46
53
  * ); // undefined
47
54
  * ```
55
+ *
48
56
  */
49
57
  declare const get: {
50
58
  <K, V>(key: NoInfer<K>): (target: ReadonlyMap<K, V>) => V | undefined;
package/dist/Map/get.mjs CHANGED
@@ -2,17 +2,24 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Map/get.ts
4
4
  /**
5
+ * # get
6
+ *
5
7
  * ```ts
6
- * function Map.get(map, key)
8
+ * function Map.get<K, V>(
9
+ * target: ReadonlyMap<K, V>,
10
+ * key: NoInfer<K>,
11
+ * ): V | undefined
7
12
  * ```
8
13
  *
14
+ * Gets the value associated with the specified key, or `undefined` if the key doesn't exist.
15
+ *
9
16
  * ## Example
10
17
  *
11
- * ```ts
18
+ * ```ts [data-first]
12
19
  * import { Map } from "@monstermann/map";
13
20
  *
14
21
  * Map.get(
15
- * Map.create([
22
+ * new Map([
16
23
  * ["a", 1],
17
24
  * ["b", 2],
18
25
  * ]),
@@ -20,7 +27,7 @@ import { dfdlT } from "@monstermann/dfdl";
20
27
  * ); // 1
21
28
  *
22
29
  * Map.get(
23
- * Map.create([
30
+ * new Map([
24
31
  * ["a", 1],
25
32
  * ["b", 2],
26
33
  * ]),
@@ -28,11 +35,11 @@ import { dfdlT } from "@monstermann/dfdl";
28
35
  * ); // undefined
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
  * ]),
@@ -40,13 +47,14 @@ import { dfdlT } from "@monstermann/dfdl";
40
47
  * ); // 1
41
48
  *
42
49
  * pipe(
43
- * Map.create([
50
+ * new Map([
44
51
  * ["a", 1],
45
52
  * ["b", 2],
46
53
  * ]),
47
54
  * Map.get("c"),
48
55
  * ); // undefined
49
56
  * ```
57
+ *
50
58
  */
51
59
  const get = dfdlT((target, key) => {
52
60
  return target.get(key);
@@ -1,19 +1,24 @@
1
- import { NonNil } from "./internals/types.mjs";
2
-
3
1
  //#region src/Map/getOr.d.ts
4
-
5
2
  /**
3
+ * # getOr
4
+ *
6
5
  * ```ts
7
- * function Map.getOr(map, key, or)
6
+ * function Map.getOr<K, V, U>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * key: NoInfer<K>,
9
+ * or: U,
10
+ * ): Exclude<V, null | undefined> | U
8
11
  * ```
9
12
  *
13
+ * Gets the value associated with the specified key, or returns the fallback value if the value is `null` or `undefined`.
14
+ *
10
15
  * ## Example
11
16
  *
12
- * ```ts
17
+ * ```ts [data-first]
13
18
  * import { Map } from "@monstermann/map";
14
19
  *
15
20
  * Map.getOr(
16
- * Map.create([
21
+ * new Map([
17
22
  * ["a", 1],
18
23
  * ["b", null],
19
24
  * ]),
@@ -22,7 +27,7 @@ import { NonNil } from "./internals/types.mjs";
22
27
  * ); // 1
23
28
  *
24
29
  * Map.getOr(
25
- * Map.create([
30
+ * new Map([
26
31
  * ["a", 1],
27
32
  * ["b", null],
28
33
  * ]),
@@ -31,7 +36,7 @@ import { NonNil } from "./internals/types.mjs";
31
36
  * ); // 0
32
37
  *
33
38
  * Map.getOr(
34
- * Map.create([
39
+ * new Map([
35
40
  * ["a", 1],
36
41
  * ["b", null],
37
42
  * ]),
@@ -40,11 +45,11 @@ import { NonNil } from "./internals/types.mjs";
40
45
  * ); // 0
41
46
  * ```
42
47
  *
43
- * ```ts
48
+ * ```ts [data-last]
44
49
  * import { Map } from "@monstermann/map";
45
50
  *
46
51
  * pipe(
47
- * Map.create([
52
+ * new Map([
48
53
  * ["a", 1],
49
54
  * ["b", null],
50
55
  * ]),
@@ -52,7 +57,7 @@ import { NonNil } from "./internals/types.mjs";
52
57
  * ); // 1
53
58
  *
54
59
  * pipe(
55
- * Map.create([
60
+ * new Map([
56
61
  * ["a", 1],
57
62
  * ["b", null],
58
63
  * ]),
@@ -60,17 +65,18 @@ import { NonNil } from "./internals/types.mjs";
60
65
  * ); // 0
61
66
  *
62
67
  * pipe(
63
- * Map.create([
68
+ * new Map([
64
69
  * ["a", 1],
65
70
  * ["b", null],
66
71
  * ]),
67
72
  * Map.getOr("c", 0),
68
73
  * ); // 0
69
74
  * ```
75
+ *
70
76
  */
71
77
  declare const getOr: {
72
- <K, V, U>(key: NoInfer<K>, or: U): (target: ReadonlyMap<K, V>) => NonNil<V> | U;
73
- <K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, or: U): NonNil<V> | U;
78
+ <K, V, U>(key: NoInfer<K>, or: U): (target: ReadonlyMap<K, V>) => Exclude<V, null | undefined> | U;
79
+ <K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, or: U): Exclude<V, null | undefined> | U;
74
80
  };
75
81
  //#endregion
76
82
  export { getOr };
@@ -2,17 +2,25 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Map/getOr.ts
4
4
  /**
5
+ * # getOr
6
+ *
5
7
  * ```ts
6
- * function Map.getOr(map, key, or)
8
+ * function Map.getOr<K, V, U>(
9
+ * target: ReadonlyMap<K, V>,
10
+ * key: NoInfer<K>,
11
+ * or: U,
12
+ * ): Exclude<V, null | undefined> | U
7
13
  * ```
8
14
  *
15
+ * Gets the value associated with the specified key, or returns the fallback value if the value is `null` or `undefined`.
16
+ *
9
17
  * ## Example
10
18
  *
11
- * ```ts
19
+ * ```ts [data-first]
12
20
  * import { Map } from "@monstermann/map";
13
21
  *
14
22
  * Map.getOr(
15
- * Map.create([
23
+ * new Map([
16
24
  * ["a", 1],
17
25
  * ["b", null],
18
26
  * ]),
@@ -21,7 +29,7 @@ import { dfdlT } from "@monstermann/dfdl";
21
29
  * ); // 1
22
30
  *
23
31
  * Map.getOr(
24
- * Map.create([
32
+ * new Map([
25
33
  * ["a", 1],
26
34
  * ["b", null],
27
35
  * ]),
@@ -30,7 +38,7 @@ import { dfdlT } from "@monstermann/dfdl";
30
38
  * ); // 0
31
39
  *
32
40
  * Map.getOr(
33
- * Map.create([
41
+ * new Map([
34
42
  * ["a", 1],
35
43
  * ["b", null],
36
44
  * ]),
@@ -39,11 +47,11 @@ import { dfdlT } from "@monstermann/dfdl";
39
47
  * ); // 0
40
48
  * ```
41
49
  *
42
- * ```ts
50
+ * ```ts [data-last]
43
51
  * import { Map } from "@monstermann/map";
44
52
  *
45
53
  * pipe(
46
- * Map.create([
54
+ * new Map([
47
55
  * ["a", 1],
48
56
  * ["b", null],
49
57
  * ]),
@@ -51,7 +59,7 @@ import { dfdlT } from "@monstermann/dfdl";
51
59
  * ); // 1
52
60
  *
53
61
  * pipe(
54
- * Map.create([
62
+ * new Map([
55
63
  * ["a", 1],
56
64
  * ["b", null],
57
65
  * ]),
@@ -59,13 +67,14 @@ import { dfdlT } from "@monstermann/dfdl";
59
67
  * ); // 0
60
68
  *
61
69
  * pipe(
62
- * Map.create([
70
+ * new Map([
63
71
  * ["a", 1],
64
72
  * ["b", null],
65
73
  * ]),
66
74
  * Map.getOr("c", 0),
67
75
  * ); // 0
68
76
  * ```
77
+ *
69
78
  */
70
79
  const getOr = dfdlT((target, key, or) => {
71
80
  return target.get(key) ?? or;
@@ -1,19 +1,24 @@
1
- import { NonNil, OrElse } from "./internals/types.mjs";
2
-
3
1
  //#region src/Map/getOrElse.d.ts
4
-
5
2
  /**
3
+ * # getOrElse
4
+ *
6
5
  * ```ts
7
- * function Map.getOrElse(map, key, orElse)
6
+ * function Map.getOrElse<K, V, U>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * key: NoInfer<K>,
9
+ * orElse: (target: ReadonlyMap<K, V>) => U,
10
+ * ): Exclude<V, null | undefined> | U
8
11
  * ```
9
12
  *
13
+ * Gets the value associated with the specified key, or calls the provided function to compute a fallback value if the value is `null` or `undefined`.
14
+ *
10
15
  * ## Example
11
16
  *
12
- * ```ts
17
+ * ```ts [data-first]
13
18
  * import { Map } from "@monstermann/map";
14
19
  *
15
20
  * Map.getOrElse(
16
- * Map.create([
21
+ * new Map([
17
22
  * ["a", 1],
18
23
  * ["b", null],
19
24
  * ]),
@@ -22,7 +27,7 @@ import { NonNil, OrElse } from "./internals/types.mjs";
22
27
  * ); // 1
23
28
  *
24
29
  * Map.getOrElse(
25
- * Map.create([
30
+ * new Map([
26
31
  * ["a", 1],
27
32
  * ["b", null],
28
33
  * ]),
@@ -31,7 +36,7 @@ import { NonNil, OrElse } from "./internals/types.mjs";
31
36
  * ); // 0
32
37
  *
33
38
  * Map.getOrElse(
34
- * Map.create([
39
+ * new Map([
35
40
  * ["a", 1],
36
41
  * ["b", null],
37
42
  * ]),
@@ -40,11 +45,11 @@ import { NonNil, OrElse } from "./internals/types.mjs";
40
45
  * ); // 2
41
46
  * ```
42
47
  *
43
- * ```ts
48
+ * ```ts [data-last]
44
49
  * import { Map } from "@monstermann/map";
45
50
  *
46
51
  * pipe(
47
- * Map.create([
52
+ * new Map([
48
53
  * ["a", 1],
49
54
  * ["b", null],
50
55
  * ]),
@@ -52,7 +57,7 @@ import { NonNil, OrElse } from "./internals/types.mjs";
52
57
  * ); // 1
53
58
  *
54
59
  * pipe(
55
- * Map.create([
60
+ * new Map([
56
61
  * ["a", 1],
57
62
  * ["b", null],
58
63
  * ]),
@@ -60,17 +65,18 @@ import { NonNil, OrElse } from "./internals/types.mjs";
60
65
  * ); // 0
61
66
  *
62
67
  * pipe(
63
- * Map.create([
68
+ * new Map([
64
69
  * ["a", 1],
65
70
  * ["b", null],
66
71
  * ]),
67
72
  * Map.getOrElse("c", (map) => map.size),
68
73
  * ); // 2
69
74
  * ```
75
+ *
70
76
  */
71
77
  declare const getOrElse: {
72
- <K, V, U>(key: NoInfer<K>, orElse: OrElse<K, V, U>): (target: ReadonlyMap<K, V>) => NonNil<V> | U;
73
- <K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, orElse: OrElse<K, V, U>): NonNil<V> | U;
78
+ <K, V, U>(key: NoInfer<K>, orElse: (target: ReadonlyMap<K, V>) => U): (target: ReadonlyMap<K, V>) => Exclude<V, null | undefined> | U;
79
+ <K, V, U>(target: ReadonlyMap<K, V>, key: NoInfer<K>, orElse: (target: ReadonlyMap<K, V>) => U): Exclude<V, null | undefined> | U;
74
80
  };
75
81
  //#endregion
76
82
  export { getOrElse };
@@ -2,17 +2,25 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Map/getOrElse.ts
4
4
  /**
5
+ * # getOrElse
6
+ *
5
7
  * ```ts
6
- * function Map.getOrElse(map, key, orElse)
8
+ * function Map.getOrElse<K, V, U>(
9
+ * target: ReadonlyMap<K, V>,
10
+ * key: NoInfer<K>,
11
+ * orElse: (target: ReadonlyMap<K, V>) => U,
12
+ * ): Exclude<V, null | undefined> | U
7
13
  * ```
8
14
  *
15
+ * Gets the value associated with the specified key, or calls the provided function to compute a fallback value if the value is `null` or `undefined`.
16
+ *
9
17
  * ## Example
10
18
  *
11
- * ```ts
19
+ * ```ts [data-first]
12
20
  * import { Map } from "@monstermann/map";
13
21
  *
14
22
  * Map.getOrElse(
15
- * Map.create([
23
+ * new Map([
16
24
  * ["a", 1],
17
25
  * ["b", null],
18
26
  * ]),
@@ -21,7 +29,7 @@ import { dfdlT } from "@monstermann/dfdl";
21
29
  * ); // 1
22
30
  *
23
31
  * Map.getOrElse(
24
- * Map.create([
32
+ * new Map([
25
33
  * ["a", 1],
26
34
  * ["b", null],
27
35
  * ]),
@@ -30,7 +38,7 @@ import { dfdlT } from "@monstermann/dfdl";
30
38
  * ); // 0
31
39
  *
32
40
  * Map.getOrElse(
33
- * Map.create([
41
+ * new Map([
34
42
  * ["a", 1],
35
43
  * ["b", null],
36
44
  * ]),
@@ -39,11 +47,11 @@ import { dfdlT } from "@monstermann/dfdl";
39
47
  * ); // 2
40
48
  * ```
41
49
  *
42
- * ```ts
50
+ * ```ts [data-last]
43
51
  * import { Map } from "@monstermann/map";
44
52
  *
45
53
  * pipe(
46
- * Map.create([
54
+ * new Map([
47
55
  * ["a", 1],
48
56
  * ["b", null],
49
57
  * ]),
@@ -51,7 +59,7 @@ import { dfdlT } from "@monstermann/dfdl";
51
59
  * ); // 1
52
60
  *
53
61
  * pipe(
54
- * Map.create([
62
+ * new Map([
55
63
  * ["a", 1],
56
64
  * ["b", null],
57
65
  * ]),
@@ -59,13 +67,14 @@ import { dfdlT } from "@monstermann/dfdl";
59
67
  * ); // 0
60
68
  *
61
69
  * pipe(
62
- * Map.create([
70
+ * new Map([
63
71
  * ["a", 1],
64
72
  * ["b", null],
65
73
  * ]),
66
74
  * Map.getOrElse("c", (map) => map.size),
67
75
  * ); // 2
68
76
  * ```
77
+ *
69
78
  */
70
79
  const getOrElse = dfdlT((target, key, orElse) => {
71
80
  return target.get(key) ?? orElse(target);
@@ -1,19 +1,23 @@
1
- import { NonNil } from "./internals/types.mjs";
2
-
3
1
  //#region src/Map/getOrThrow.d.ts
4
-
5
2
  /**
3
+ * # getOrThrow
4
+ *
6
5
  * ```ts
7
- * function Map.getOrThrow(map, key)
6
+ * function Map.getOrThrow<K, V>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * key: NoInfer<K>,
9
+ * ): Exclude<V, null | undefined>
8
10
  * ```
9
11
  *
12
+ * Gets the value associated with the specified key, or throws an error if the value is `null` or `undefined`.
13
+ *
10
14
  * ## Example
11
15
  *
12
- * ```ts
16
+ * ```ts [data-first]
13
17
  * import { Map } from "@monstermann/map";
14
18
  *
15
19
  * Map.getOrThrow(
16
- * Map.create([
20
+ * new Map([
17
21
  * ["a", 1],
18
22
  * ["b", 2],
19
23
  * ]),
@@ -21,7 +25,7 @@ import { NonNil } from "./internals/types.mjs";
21
25
  * ); // 1
22
26
  *
23
27
  * Map.getOrThrow(
24
- * Map.create([
28
+ * new Map([
25
29
  * ["a", 1],
26
30
  * ["b", null],
27
31
  * ]),
@@ -29,7 +33,7 @@ import { NonNil } from "./internals/types.mjs";
29
33
  * ); // throws FnError
30
34
  *
31
35
  * Map.getOrThrow(
32
- * Map.create([
36
+ * new Map([
33
37
  * ["a", 1],
34
38
  * ["b", 2],
35
39
  * ]),
@@ -37,11 +41,11 @@ import { NonNil } from "./internals/types.mjs";
37
41
  * ); // throws FnError
38
42
  * ```
39
43
  *
40
- * ```ts
44
+ * ```ts [data-last]
41
45
  * import { Map } from "@monstermann/map";
42
46
  *
43
47
  * pipe(
44
- * Map.create([
48
+ * new Map([
45
49
  * ["a", 1],
46
50
  * ["b", 2],
47
51
  * ]),
@@ -49,7 +53,7 @@ import { NonNil } from "./internals/types.mjs";
49
53
  * ); // 1
50
54
  *
51
55
  * pipe(
52
- * Map.create([
56
+ * new Map([
53
57
  * ["a", 1],
54
58
  * ["b", null],
55
59
  * ]),
@@ -57,17 +61,18 @@ import { NonNil } from "./internals/types.mjs";
57
61
  * ); // throws FnError
58
62
  *
59
63
  * pipe(
60
- * Map.create([
64
+ * new Map([
61
65
  * ["a", 1],
62
66
  * ["b", 2],
63
67
  * ]),
64
68
  * Map.getOrThrow("c"),
65
69
  * ); // throws FnError
66
70
  * ```
71
+ *
67
72
  */
68
73
  declare const getOrThrow: {
69
- <K, V>(key: NoInfer<K>): (target: ReadonlyMap<K, V>) => NonNil<V>;
70
- <K, V>(target: ReadonlyMap<K, V>, key: NoInfer<K>): NonNil<V>;
74
+ <K, V>(key: NoInfer<K>): (target: ReadonlyMap<K, V>) => Exclude<V, null | undefined>;
75
+ <K, V>(target: ReadonlyMap<K, V>, key: NoInfer<K>): Exclude<V, null | undefined>;
71
76
  };
72
77
  //#endregion
73
78
  export { getOrThrow };