@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
@@ -1,16 +1,24 @@
1
1
  //#region src/Map/set.d.ts
2
2
  /**
3
+ * # set
4
+ *
3
5
  * ```ts
4
- * function Map.set(map, key, value)
6
+ * function Map.set<K, V>(
7
+ * target: ReadonlyMap<K, V>,
8
+ * key: NoInfer<K>,
9
+ * value: NoInfer<V>,
10
+ * ): ReadonlyMap<K, V>
5
11
  * ```
6
12
  *
13
+ * Sets or updates the value for the specified key in the map.
14
+ *
7
15
  * ## Example
8
16
  *
9
- * ```ts
17
+ * ```ts [data-first]
10
18
  * import { Map } from "@monstermann/map";
11
19
  *
12
20
  * Map.set(
13
- * Map.create([
21
+ * new Map([
14
22
  * ["a", 1],
15
23
  * ["b", 2],
16
24
  * ]),
@@ -19,7 +27,7 @@
19
27
  * ); // Map(2) { "a" => 10, "b" => 2 }
20
28
  *
21
29
  * Map.set(
22
- * Map.create([
30
+ * new Map([
23
31
  * ["a", 1],
24
32
  * ["b", 2],
25
33
  * ]),
@@ -28,11 +36,11 @@
28
36
  * ); // Map(3) { "a" => 1, "b" => 2, "c" => 3 }
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(2) { "a" => 10, "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.set("c", 3),
48
56
  * ); // Map(3) { "a" => 1, "b" => 2, "c" => 3 }
49
57
  * ```
58
+ *
50
59
  */
51
60
  declare const set: {
52
61
  <K, V>(key: NoInfer<K>, value: NoInfer<V>): (target: Map<K, V>) => Map<K, V>;
@@ -3,17 +3,25 @@ import { cloneMap } from "@monstermann/remmi";
3
3
 
4
4
  //#region src/Map/set.ts
5
5
  /**
6
+ * # set
7
+ *
6
8
  * ```ts
7
- * function Map.set(map, key, value)
9
+ * function Map.set<K, V>(
10
+ * target: ReadonlyMap<K, V>,
11
+ * key: NoInfer<K>,
12
+ * value: NoInfer<V>,
13
+ * ): ReadonlyMap<K, V>
8
14
  * ```
9
15
  *
16
+ * Sets or updates the value for the specified key in the 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.set(
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(2) { "a" => 10, "b" => 2 }
23
31
  *
24
32
  * Map.set(
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
  * ); // Map(3) { "a" => 1, "b" => 2, "c" => 3 }
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(2) { "a" => 10, "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.set("c", 3),
51
59
  * ); // Map(3) { "a" => 1, "b" => 2, "c" => 3 }
52
60
  * ```
61
+ *
53
62
  */
54
63
  const set = dfdlT((target, key, value) => {
55
64
  if (target.get(key) === value) return target;
@@ -0,0 +1,52 @@
1
+ //#region src/Map/some.d.ts
2
+ /**
3
+ * # some
4
+ *
5
+ * ```ts
6
+ * function Map.some<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 at least one entry in the map satisfies the provided `predicate` function, otherwise returns `false`.
17
+ *
18
+ * ## Example
19
+ *
20
+ * ```ts [data-first]
21
+ * import { Map } from "@monstermann/map";
22
+ *
23
+ * Map.some(
24
+ * new Map([
25
+ * ["a", 1],
26
+ * ["b", 2],
27
+ * ["c", 3],
28
+ * ]),
29
+ * (value) => value > 2,
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.some((value) => value > 2),
43
+ * ); // true
44
+ * ```
45
+ *
46
+ */
47
+ declare const some: {
48
+ <K, V>(predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): (target: ReadonlyMap<K, V>) => boolean;
49
+ <K, V>(target: ReadonlyMap<K, V>, predicate: (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>) => boolean): boolean;
50
+ };
51
+ //#endregion
52
+ export { some };
@@ -0,0 +1,55 @@
1
+ import { dfdlT } from "@monstermann/dfdl";
2
+
3
+ //#region src/Map/some.ts
4
+ /**
5
+ * # some
6
+ *
7
+ * ```ts
8
+ * function Map.some<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 at least one entry in the map satisfies the provided `predicate` function, otherwise returns `false`.
19
+ *
20
+ * ## Example
21
+ *
22
+ * ```ts [data-first]
23
+ * import { Map } from "@monstermann/map";
24
+ *
25
+ * Map.some(
26
+ * new Map([
27
+ * ["a", 1],
28
+ * ["b", 2],
29
+ * ["c", 3],
30
+ * ]),
31
+ * (value) => value > 2,
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.some((value) => value > 2),
45
+ * ); // true
46
+ * ```
47
+ *
48
+ */
49
+ const some = dfdlT((target, predicate) => {
50
+ for (const [key, value] of target) if (predicate(value, key, target)) return true;
51
+ return false;
52
+ }, 2);
53
+
54
+ //#endregion
55
+ export { some };
@@ -0,0 +1,2 @@
1
+ import { Map } from "./Map/index.mjs";
2
+ export { Map };
package/dist/index.mjs ADDED
@@ -0,0 +1,3 @@
1
+ import { Map } from "./Map/index.mjs";
2
+
3
+ export { Map };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@monstermann/map",
3
3
  "type": "module",
4
- "version": "0.1.1",
4
+ "version": "0.2.0",
5
5
  "description": "Functional utilities for maps.",
6
6
  "author": "Michael Ostermann <michaelostermann@me.com>",
7
7
  "license": "MIT",
@@ -34,6 +34,6 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@monstermann/dfdl": "^0.1.0",
37
- "@monstermann/remmi": "^0.0.0"
37
+ "@monstermann/remmi": "^0.1.0"
38
38
  }
39
39
  }
@@ -1,44 +0,0 @@
1
- import { NonNil } from "./internals/types.js";
2
-
3
- //#region src/Map/compact.d.ts
4
-
5
- /**
6
- * ```ts
7
- * function Map.compact(map)
8
- * ```
9
- *
10
- * ## Example
11
- *
12
- * ```ts
13
- * import { Map } from "@monstermann/map";
14
- *
15
- * Map.compact(
16
- * Map.create([
17
- * ["a", 1],
18
- * ["b", null],
19
- * ["c", undefined],
20
- * ]),
21
- * ); // Map(1) { "a" => 1 }
22
- * ```
23
- *
24
- * ```ts
25
- * import { Map } from "@monstermann/map";
26
- *
27
- * pipe(
28
- * Map.create([
29
- * ["a", 1],
30
- * ["b", null],
31
- * ["c", undefined],
32
- * ]),
33
- * Map.compact(),
34
- * ); // Map(1) { "a" => 1 }
35
- * ```
36
- */
37
- declare const compact: {
38
- (): <K, V>(target: Map<K, V>) => Map<K, NonNil<V>>;
39
- (): <K, V>(target: ReadonlyMap<K, V>) => ReadonlyMap<K, NonNil<V>>;
40
- <K, V>(target: Map<K, V>): Map<K, NonNil<V>>;
41
- <K, V>(target: ReadonlyMap<K, V>): ReadonlyMap<K, NonNil<V>>;
42
- };
43
- //#endregion
44
- export { compact };
@@ -1,49 +0,0 @@
1
- import { MapGuard, MapPredicate } from "./internals/types.js";
2
-
3
- //#region src/Map/filter.d.ts
4
-
5
- /**
6
- * ```ts
7
- * function Map.filter(map, predicate)
8
- * ```
9
- *
10
- * ## Example
11
- *
12
- * ```ts
13
- * import { Map } from "@monstermann/map";
14
- *
15
- * Map.filter(
16
- * Map.create([
17
- * ["a", 1],
18
- * ["b", 2],
19
- * ["c", 3],
20
- * ]),
21
- * (value) => value > 1,
22
- * ); // Map(2) { "b" => 2, "c" => 3 }
23
- * ```
24
- *
25
- * ```ts
26
- * import { Map } from "@monstermann/map";
27
- *
28
- * pipe(
29
- * Map.create([
30
- * ["a", 1],
31
- * ["b", 2],
32
- * ["c", 3],
33
- * ]),
34
- * Map.filter((value) => value > 1),
35
- * ); // Map(2) { "b" => 2, "c" => 3 }
36
- * ```
37
- */
38
- declare const filter: {
39
- <K, V, U extends V>(predicate: MapGuard<K, V, U>): (target: Map<K, V>) => Map<K, U>;
40
- <K, V, U extends V>(predicate: MapGuard<K, V, U>): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, U>;
41
- <K, V>(predicate: MapPredicate<K, V>): (target: Map<K, V>) => Map<K, V>;
42
- <K, V>(predicate: MapPredicate<K, V>): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V>;
43
- <K, V, U extends V>(target: Map<K, V>, predicate: MapGuard<K, V, U>): Map<K, U>;
44
- <K, V, U extends V>(target: ReadonlyMap<K, V>, predicate: MapGuard<K, V, U>): ReadonlyMap<K, U>;
45
- <K, V>(target: Map<K, V>, predicate: MapPredicate<K, V>): Map<K, V>;
46
- <K, V>(target: ReadonlyMap<K, V>, predicate: MapPredicate<K, V>): ReadonlyMap<K, V>;
47
- };
48
- //#endregion
49
- export { filter };
@@ -1,43 +0,0 @@
1
- import { MapMap } from "./internals/types.js";
2
-
3
- //#region src/Map/forEach.d.ts
4
-
5
- /**
6
- * ```ts
7
- * function Map.forEach(map, fn)
8
- * ```
9
- *
10
- * ## Example
11
- *
12
- * ```ts
13
- * import { Map } from "@monstermann/map";
14
- *
15
- * Map.forEach(
16
- * Map.create([
17
- * ["a", 1],
18
- * ["b", 2],
19
- * ]),
20
- * (value, key) => console.log(key, value),
21
- * ); // Map(2) { "a" => 1, "b" => 2 }
22
- * ```
23
- *
24
- * ```ts
25
- * import { Map } from "@monstermann/map";
26
- *
27
- * pipe(
28
- * Map.create([
29
- * ["a", 1],
30
- * ["b", 2],
31
- * ]),
32
- * Map.forEach((value, key) => console.log(key, value)),
33
- * ); // Map(2) { "a" => 1, "b" => 2 }
34
- * ```
35
- */
36
- 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>;
41
- };
42
- //#endregion
43
- export { forEach };
@@ -1,36 +0,0 @@
1
- import { clone } from "./clone.js";
2
- import { compact } from "./compact.js";
3
- import { create } from "./create.js";
4
- import { filter } from "./filter.js";
5
- import { forEach } from "./forEach.js";
6
- import { get } from "./get.js";
7
- import { getOr } from "./getOr.js";
8
- import { getOrElse } from "./getOrElse.js";
9
- import { getOrThrow } from "./getOrThrow.js";
10
- import { has } from "./has.js";
11
- import { hasAll } from "./hasAll.js";
12
- import { hasAny } from "./hasAny.js";
13
- import { hasNone } from "./hasNone.js";
14
- import { is } from "./is.js";
15
- import { isEmpty } from "./isEmpty.js";
16
- import { isShallowEqual } from "./isShallowEqual.js";
17
- import { map } from "./map.js";
18
- import { mapEach } from "./mapEach.js";
19
- import { mapOr } from "./mapOr.js";
20
- import { mapOrElse } from "./mapOrElse.js";
21
- import { mapOrThrow } from "./mapOrThrow.js";
22
- import { reject } from "./reject.js";
23
- import { remove } from "./remove.js";
24
- import { removeAll } from "./removeAll.js";
25
- import { removeOr } from "./removeOr.js";
26
- import { removeOrElse } from "./removeOrElse.js";
27
- import { removeOrThrow } from "./removeOrThrow.js";
28
- import { set } from "./set.js";
29
-
30
- //#region src/Map/index.d.ts
31
-
32
- declare namespace Map {
33
- export { clone, compact, create, filter, forEach, get, getOr, getOrElse, getOrThrow, has, hasAll, hasAny, hasNone, is, isEmpty, isShallowEqual, map, mapEach, mapOr, mapOrElse, mapOrThrow, reject, remove, removeAll, removeOr, removeOrElse, removeOrThrow, set };
34
- }
35
- //#endregion
36
- export { Map };
package/dist/Map/index.js DELETED
@@ -1,63 +0,0 @@
1
- import { clone } from "./clone.js";
2
- import { filter } from "./filter.js";
3
- import { compact } from "./compact.js";
4
- import { create } from "./create.js";
5
- import { forEach } from "./forEach.js";
6
- import { get } from "./get.js";
7
- import { getOr } from "./getOr.js";
8
- import { getOrElse } from "./getOrElse.js";
9
- import { getOrThrow } from "./getOrThrow.js";
10
- import { has } from "./has.js";
11
- import { hasAll } from "./hasAll.js";
12
- import { hasAny } from "./hasAny.js";
13
- import { hasNone } from "./hasNone.js";
14
- import { is } from "./is.js";
15
- import { isEmpty } from "./isEmpty.js";
16
- import { isShallowEqual } from "./isShallowEqual.js";
17
- import { map } from "./map.js";
18
- import { mapEach } from "./mapEach.js";
19
- import { mapOr } from "./mapOr.js";
20
- import { mapOrElse } from "./mapOrElse.js";
21
- import { mapOrThrow } from "./mapOrThrow.js";
22
- import { reject } from "./reject.js";
23
- import { remove } from "./remove.js";
24
- import { removeAll } from "./removeAll.js";
25
- import { removeOr } from "./removeOr.js";
26
- import { removeOrElse } from "./removeOrElse.js";
27
- import { removeOrThrow } from "./removeOrThrow.js";
28
- import { set } from "./set.js";
29
-
30
- //#region src/Map/index.js
31
- const Map = {
32
- clone,
33
- compact,
34
- create,
35
- filter,
36
- forEach,
37
- get,
38
- getOr,
39
- getOrElse,
40
- getOrThrow,
41
- has,
42
- hasAll,
43
- hasAny,
44
- hasNone,
45
- is,
46
- isEmpty,
47
- isShallowEqual,
48
- map,
49
- mapEach,
50
- mapOr,
51
- mapOrElse,
52
- mapOrThrow,
53
- reject,
54
- remove,
55
- removeAll,
56
- removeOr,
57
- removeOrElse,
58
- removeOrThrow,
59
- set
60
- };
61
-
62
- //#endregion
63
- export { Map };
@@ -1,14 +0,0 @@
1
- //#region src/Map/internals/types.d.ts
2
- type NonNil<T> = Exclude<T, null | undefined>;
3
- interface MapGuard<K, V, U extends V> {
4
- (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>): value is U;
5
- }
6
- interface MapMap<K, V, U = V> {
7
- (value: NoInfer<V>, key: NoInfer<K>, target: ReadonlyMap<K, V>): U;
8
- }
9
- type MapPredicate<K, V> = MapMap<K, V, boolean>;
10
- interface OrElse<K, V, U> {
11
- (target: ReadonlyMap<K, V>): U;
12
- }
13
- //#endregion
14
- export { MapGuard, MapMap, MapPredicate, NonNil, OrElse };
@@ -1,28 +0,0 @@
1
- //#region src/Map/isEmpty.d.ts
2
- /**
3
- * ```ts
4
- * function Map.isEmpty(map)
5
- * ```
6
- *
7
- * ## Example
8
- *
9
- * ```ts
10
- * import { Map } from "@monstermann/map";
11
- *
12
- * Map.isEmpty(Map.create()); // true
13
- * Map.isEmpty(Map.create([["a", 1]])); // false
14
- * ```
15
- *
16
- * ```ts
17
- * import { Map } from "@monstermann/map";
18
- *
19
- * pipe(Map.create(), Map.isEmpty()); // true
20
- * pipe(Map.create([["a", 1]]), Map.isEmpty()); // false
21
- * ```
22
- */
23
- declare const isEmpty: {
24
- (): <T, U>(target: ReadonlyMap<T, U>) => boolean;
25
- <T, U>(target: ReadonlyMap<T, U>): boolean;
26
- };
27
- //#endregion
28
- export { isEmpty };
@@ -1,30 +0,0 @@
1
- import { dfdlT } from "@monstermann/dfdl";
2
-
3
- //#region src/Map/isEmpty.ts
4
- /**
5
- * ```ts
6
- * function Map.isEmpty(map)
7
- * ```
8
- *
9
- * ## Example
10
- *
11
- * ```ts
12
- * import { Map } from "@monstermann/map";
13
- *
14
- * Map.isEmpty(Map.create()); // true
15
- * Map.isEmpty(Map.create([["a", 1]])); // false
16
- * ```
17
- *
18
- * ```ts
19
- * import { Map } from "@monstermann/map";
20
- *
21
- * pipe(Map.create(), Map.isEmpty()); // true
22
- * pipe(Map.create([["a", 1]]), Map.isEmpty()); // false
23
- * ```
24
- */
25
- const isEmpty = dfdlT((target) => {
26
- return target.size === 0;
27
- }, 1);
28
-
29
- //#endregion
30
- export { isEmpty };
package/dist/Map/map.d.ts DELETED
@@ -1,60 +0,0 @@
1
- import { MapMap } from "./internals/types.js";
2
-
3
- //#region src/Map/map.d.ts
4
-
5
- /**
6
- * ```ts
7
- * function Map.map(map, key, transform)
8
- * ```
9
- *
10
- * ## Example
11
- *
12
- * ```ts
13
- * import { Map } from "@monstermann/map";
14
- *
15
- * Map.map(
16
- * Map.create([
17
- * ["a", 1],
18
- * ["b", 2],
19
- * ]),
20
- * "a",
21
- * (value) => value * 2,
22
- * ); // Map(2) { "a" => 2, "b" => 2 }
23
- *
24
- * Map.map(
25
- * Map.create([
26
- * ["a", 1],
27
- * ["b", 2],
28
- * ]),
29
- * "c",
30
- * (value) => value * 2,
31
- * ); // Map(2) { "a" => 1, "b" => 2 }
32
- * ```
33
- *
34
- * ```ts
35
- * import { Map } from "@monstermann/map";
36
- *
37
- * pipe(
38
- * Map.create([
39
- * ["a", 1],
40
- * ["b", 2],
41
- * ]),
42
- * Map.map("a", (value) => value * 2),
43
- * ); // Map(2) { "a" => 2, "b" => 2 }
44
- *
45
- * pipe(
46
- * Map.create([
47
- * ["a", 1],
48
- * ["b", 2],
49
- * ]),
50
- * Map.map("c", (value) => value * 2),
51
- * ```
52
- */
53
- declare const map: {
54
- <K, V>(key: NoInfer<K>, transform: MapMap<K, V>): (target: Map<K, V>) => Map<K, V>;
55
- <K, V>(key: NoInfer<K>, transform: MapMap<K, V>): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, V>;
56
- <K, V>(target: Map<K, V>, key: NoInfer<K>, transform: MapMap<K, V>): Map<K, V>;
57
- <K, V>(target: ReadonlyMap<K, V>, key: NoInfer<K>, transform: MapMap<K, V>): ReadonlyMap<K, V>;
58
- };
59
- //#endregion
60
- export { map };
@@ -1,43 +0,0 @@
1
- import { MapMap } from "./internals/types.js";
2
-
3
- //#region src/Map/mapEach.d.ts
4
-
5
- /**
6
- * ```ts
7
- * function Map.mapEach(map, fn)
8
- * ```
9
- *
10
- * ## Example
11
- *
12
- * ```ts
13
- * import { Map } from "@monstermann/map";
14
- *
15
- * Map.mapEach(
16
- * Map.create([
17
- * ["a", 1],
18
- * ["b", 2],
19
- * ]),
20
- * (value, key) => value * 2,
21
- * ); // Map(2) { "a" => 2, "b" => 4 }
22
- * ```
23
- *
24
- * ```ts
25
- * import { Map } from "@monstermann/map";
26
- *
27
- * pipe(
28
- * Map.create([
29
- * ["a", 1],
30
- * ["b", 2],
31
- * ]),
32
- * Map.mapEach((value, key) => value * 2),
33
- * ); // Map(2) { "a" => 2, "b" => 4 }
34
- * ```
35
- */
36
- declare const mapEach: {
37
- <K, V, U>(fn: MapMap<K, V, U>): (target: Map<K, V>) => Map<K, U>;
38
- <K, V, U>(fn: MapMap<K, V, U>): (target: ReadonlyMap<K, V>) => ReadonlyMap<K, U>;
39
- <K, V, U>(target: Map<K, V>, fn: MapMap<K, V, U>): Map<K, U>;
40
- <K, V, U>(target: ReadonlyMap<K, V>, fn: MapMap<K, V, U>): ReadonlyMap<K, U>;
41
- };
42
- //#endregion
43
- export { mapEach };