@monstermann/map 0.1.1 → 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.
Files changed (118) hide show
  1. package/README.md +2496 -0
  2. package/dist/Map/{clone.d.ts → clone.d.mts} +10 -5
  3. package/dist/Map/{clone.js → clone.mjs} +10 -5
  4. package/dist/Map/compact.d.mts +48 -0
  5. package/dist/Map/{compact.js → compact.mjs} +13 -6
  6. package/dist/Map/{create.d.ts → create.d.mts} +9 -2
  7. package/dist/Map/{create.js → 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 +58 -0
  11. package/dist/Map/{filter.js → 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 +52 -0
  47. package/dist/Map/{forEach.js → forEach.mjs} +17 -5
  48. package/dist/Map/{get.d.ts → get.d.mts} +15 -7
  49. package/dist/Map/{get.js → get.mjs} +15 -7
  50. package/dist/Map/{getOr.d.ts → getOr.d.mts} +20 -14
  51. package/dist/Map/{getOr.js → getOr.mjs} +18 -9
  52. package/dist/Map/{getOrElse.d.ts → getOrElse.d.mts} +20 -14
  53. package/dist/Map/{getOrElse.js → getOrElse.mjs} +18 -9
  54. package/dist/Map/{getOrThrow.d.ts → getOrThrow.d.mts} +19 -14
  55. package/dist/Map/{getOrThrow.js → getOrThrow.mjs} +17 -9
  56. package/dist/Map/{has.d.ts → has.d.mts} +15 -7
  57. package/dist/Map/{has.js → has.mjs} +15 -7
  58. package/dist/Map/{hasAll.d.ts → hasAll.d.mts} +15 -7
  59. package/dist/Map/{hasAll.js → hasAll.mjs} +15 -7
  60. package/dist/Map/{hasAny.d.ts → hasAny.d.mts} +15 -7
  61. package/dist/Map/{hasAny.js → hasAny.mjs} +15 -7
  62. package/dist/Map/{hasNone.d.ts → hasNone.d.mts} +15 -7
  63. package/dist/Map/{hasNone.js → hasNone.mjs} +15 -7
  64. package/dist/Map/index.d.mts +56 -0
  65. package/dist/Map/index.mjs +103 -0
  66. package/dist/Map/{is.d.ts → is.d.mts} +12 -5
  67. package/dist/Map/{is.js → is.mjs} +12 -5
  68. package/dist/Map/isEmpty.d.mts +33 -0
  69. package/dist/Map/isEmpty.mjs +35 -0
  70. package/dist/Map/{isShallowEqual.d.ts → isShallowEqual.d.mts} +19 -11
  71. package/dist/Map/{isShallowEqual.js → isShallowEqual.mjs} +19 -11
  72. package/dist/Map/map.d.mts +71 -0
  73. package/dist/Map/{map.js → map.mjs} +21 -7
  74. package/dist/Map/mapEach.d.mts +52 -0
  75. package/dist/Map/{mapEach.js → mapEach.mjs} +17 -5
  76. package/dist/Map/mapOr.d.mts +74 -0
  77. package/dist/Map/{mapOr.js → mapOr.mjs} +21 -7
  78. package/dist/Map/mapOrElse.d.mts +82 -0
  79. package/dist/Map/{mapOrElse.js → mapOrElse.mjs} +21 -7
  80. package/dist/Map/mapOrThrow.d.mts +71 -0
  81. package/dist/Map/{mapOrThrow.js → 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 +58 -0
  85. package/dist/Map/{reject.js → reject.mjs} +17 -5
  86. package/dist/Map/{remove.d.ts → remove.d.mts} +15 -7
  87. package/dist/Map/{remove.js → remove.mjs} +15 -7
  88. package/dist/Map/{removeAll.d.ts → removeAll.d.mts} +15 -7
  89. package/dist/Map/{removeAll.js → removeAll.mjs} +15 -7
  90. package/dist/Map/{removeOr.d.ts → removeOr.d.mts} +16 -7
  91. package/dist/Map/{removeOr.js → removeOr.mjs} +16 -7
  92. package/dist/Map/{removeOrElse.d.ts → removeOrElse.d.mts} +18 -12
  93. package/dist/Map/{removeOrElse.js → removeOrElse.mjs} +16 -7
  94. package/dist/Map/{removeOrThrow.d.ts → removeOrThrow.d.mts} +15 -7
  95. package/dist/Map/{removeOrThrow.js → removeOrThrow.mjs} +15 -7
  96. package/dist/Map/{set.d.ts → set.d.mts} +16 -7
  97. package/dist/Map/{set.js → set.mjs} +16 -7
  98. package/dist/Map/some.d.mts +52 -0
  99. package/dist/Map/some.mjs +55 -0
  100. package/dist/index.d.mts +2 -0
  101. package/dist/index.mjs +3 -0
  102. package/package.json +2 -2
  103. package/dist/Map/compact.d.ts +0 -44
  104. package/dist/Map/filter.d.ts +0 -49
  105. package/dist/Map/forEach.d.ts +0 -43
  106. package/dist/Map/index.d.ts +0 -36
  107. package/dist/Map/index.js +0 -63
  108. package/dist/Map/internals/types.d.ts +0 -14
  109. package/dist/Map/isEmpty.d.ts +0 -28
  110. package/dist/Map/isEmpty.js +0 -30
  111. package/dist/Map/map.d.ts +0 -60
  112. package/dist/Map/mapEach.d.ts +0 -43
  113. package/dist/Map/mapOr.d.ts +0 -63
  114. package/dist/Map/mapOrElse.d.ts +0 -71
  115. package/dist/Map/mapOrThrow.d.ts +0 -61
  116. package/dist/Map/reject.d.ts +0 -49
  117. package/dist/index.d.ts +0 -2
  118. package/dist/index.js +0 -3
@@ -0,0 +1,52 @@
1
+ //#region src/Map/forEach.d.ts
2
+ /**
3
+ * # forEach
4
+ *
5
+ * ```ts
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>
14
+ * ```
15
+ *
16
+ * Executes a function for each entry in the map and returns the original map.
17
+ *
18
+ * ## Example
19
+ *
20
+ * ```ts [data-first]
21
+ * import { Map } from "@monstermann/map";
22
+ *
23
+ * Map.forEach(
24
+ * new Map([
25
+ * ["a", 1],
26
+ * ["b", 2],
27
+ * ]),
28
+ * (value, key) => console.log(key, value),
29
+ * ); // Map(2) { "a" => 1, "b" => 2 }
30
+ * ```
31
+ *
32
+ * ```ts [data-last]
33
+ * import { Map } from "@monstermann/map";
34
+ *
35
+ * pipe(
36
+ * new Map([
37
+ * ["a", 1],
38
+ * ["b", 2],
39
+ * ]),
40
+ * Map.forEach((value, key) => console.log(key, value)),
41
+ * ); // Map(2) { "a" => 1, "b" => 2 }
42
+ * ```
43
+ *
44
+ */
45
+ declare const forEach: {
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>;
50
+ };
51
+ //#endregion
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;
@@ -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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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.js";
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 };