@monstermann/set 0.2.0 → 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 (66) hide show
  1. package/README.md +776 -0
  2. package/dist/Set/add.d.mts +12 -4
  3. package/dist/Set/add.mjs +12 -4
  4. package/dist/Set/addAll.d.mts +12 -4
  5. package/dist/Set/addAll.mjs +12 -4
  6. package/dist/Set/clone.d.mts +9 -4
  7. package/dist/Set/clone.mjs +9 -4
  8. package/dist/Set/compact.d.mts +11 -4
  9. package/dist/Set/compact.mjs +11 -4
  10. package/dist/Set/create.d.mts +9 -2
  11. package/dist/Set/create.mjs +9 -2
  12. package/dist/Set/difference.d.mts +12 -4
  13. package/dist/Set/difference.mjs +12 -4
  14. package/dist/Set/forEach.d.mts +15 -4
  15. package/dist/Set/forEach.mjs +15 -4
  16. package/dist/Set/has.d.mts +12 -4
  17. package/dist/Set/has.mjs +12 -4
  18. package/dist/Set/hasAll.d.mts +12 -4
  19. package/dist/Set/hasAll.mjs +12 -4
  20. package/dist/Set/hasAny.d.mts +12 -4
  21. package/dist/Set/hasAny.mjs +12 -4
  22. package/dist/Set/hasNone.d.mts +12 -4
  23. package/dist/Set/hasNone.mjs +12 -4
  24. package/dist/Set/index.d.mts +1 -7
  25. package/dist/Set/index.mjs +0 -12
  26. package/dist/Set/intersection.d.mts +12 -4
  27. package/dist/Set/intersection.mjs +12 -4
  28. package/dist/Set/is.d.mts +9 -4
  29. package/dist/Set/is.mjs +9 -4
  30. package/dist/Set/isDisjointFrom.d.mts +12 -4
  31. package/dist/Set/isDisjointFrom.mjs +12 -4
  32. package/dist/Set/isEmpty.d.mts +11 -4
  33. package/dist/Set/isEmpty.mjs +11 -4
  34. package/dist/Set/isShallowEqual.d.mts +12 -4
  35. package/dist/Set/isShallowEqual.mjs +12 -4
  36. package/dist/Set/isSubsetOf.d.mts +12 -4
  37. package/dist/Set/isSubsetOf.mjs +12 -4
  38. package/dist/Set/isSupersetOf.d.mts +12 -4
  39. package/dist/Set/isSupersetOf.mjs +12 -4
  40. package/dist/Set/mapEach.d.mts +15 -4
  41. package/dist/Set/mapEach.mjs +15 -4
  42. package/dist/Set/remove.d.mts +12 -4
  43. package/dist/Set/remove.mjs +12 -4
  44. package/dist/Set/removeAll.d.mts +12 -4
  45. package/dist/Set/removeAll.mjs +12 -4
  46. package/dist/Set/size.d.mts +11 -4
  47. package/dist/Set/size.mjs +11 -4
  48. package/dist/Set/symmetricDifference.d.mts +12 -4
  49. package/dist/Set/symmetricDifference.mjs +12 -4
  50. package/dist/Set/toArray.d.mts +9 -4
  51. package/dist/Set/toArray.mjs +9 -4
  52. package/dist/Set/union.d.mts +12 -4
  53. package/dist/Set/union.mjs +12 -4
  54. package/package.json +2 -2
  55. package/dist/Set/addOr.d.mts +0 -28
  56. package/dist/Set/addOr.mjs +0 -34
  57. package/dist/Set/addOrElse.d.mts +0 -35
  58. package/dist/Set/addOrElse.mjs +0 -41
  59. package/dist/Set/addOrThrow.d.mts +0 -28
  60. package/dist/Set/addOrThrow.mjs +0 -34
  61. package/dist/Set/removeOr.d.mts +0 -28
  62. package/dist/Set/removeOr.mjs +0 -34
  63. package/dist/Set/removeOrElse.d.mts +0 -35
  64. package/dist/Set/removeOrElse.mjs +0 -41
  65. package/dist/Set/removeOrThrow.d.mts +0 -28
  66. package/dist/Set/removeOrThrow.mjs +0 -34
@@ -1,24 +1,32 @@
1
1
  //#region src/Set/isSupersetOf.d.ts
2
2
  /**
3
+ * # isSupersetOf
4
+ *
3
5
  * ```ts
4
- * function Set.isSupersetOf(target, source)
6
+ * function Set.isSupersetOf<T>(
7
+ * target: ReadonlySet<T>,
8
+ * source: ReadonlySet<NoInfer<T>>,
9
+ * ): boolean
5
10
  * ```
6
11
  *
7
- * Example
12
+ * Returns `true` if the target set contains all values from the source set, `false` otherwise.
8
13
  *
9
- * ```ts
14
+ * ## Example
15
+ *
16
+ * ```ts [data-first]
10
17
  * import { Set } from "@monstermann/set";
11
18
  *
12
19
  * Set.isSupersetOf(Set.create([1, 2, 3]), Set.create([1, 2])); // true
13
20
  * Set.isSupersetOf(Set.create([1, 2, 3]), Set.create([1, 4])); // false
14
21
  * ```
15
22
  *
16
- * ```ts
23
+ * ```ts [data-last]
17
24
  * import { Set } from "@monstermann/set";
18
25
  *
19
26
  * pipe(Set.create([1, 2, 3]), Set.isSupersetOf(Set.create([1, 2]))); // true
20
27
  * pipe(Set.create([1, 2, 3]), Set.isSupersetOf(Set.create([1, 4]))); // false
21
28
  * ```
29
+ *
22
30
  */
23
31
  declare const isSupersetOf: {
24
32
  <T>(source: ReadonlySet<NoInfer<T>>): (target: ReadonlySet<T>) => boolean;
@@ -2,25 +2,33 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Set/isSupersetOf.ts
4
4
  /**
5
+ * # isSupersetOf
6
+ *
5
7
  * ```ts
6
- * function Set.isSupersetOf(target, source)
8
+ * function Set.isSupersetOf<T>(
9
+ * target: ReadonlySet<T>,
10
+ * source: ReadonlySet<NoInfer<T>>,
11
+ * ): boolean
7
12
  * ```
8
13
  *
9
- * Example
14
+ * Returns `true` if the target set contains all values from the source set, `false` otherwise.
10
15
  *
11
- * ```ts
16
+ * ## Example
17
+ *
18
+ * ```ts [data-first]
12
19
  * import { Set } from "@monstermann/set";
13
20
  *
14
21
  * Set.isSupersetOf(Set.create([1, 2, 3]), Set.create([1, 2])); // true
15
22
  * Set.isSupersetOf(Set.create([1, 2, 3]), Set.create([1, 4])); // false
16
23
  * ```
17
24
  *
18
- * ```ts
25
+ * ```ts [data-last]
19
26
  * import { Set } from "@monstermann/set";
20
27
  *
21
28
  * pipe(Set.create([1, 2, 3]), Set.isSupersetOf(Set.create([1, 2]))); // true
22
29
  * pipe(Set.create([1, 2, 3]), Set.isSupersetOf(Set.create([1, 4]))); // false
23
30
  * ```
31
+ *
24
32
  */
25
33
  const isSupersetOf = dfdlT((target, source) => {
26
34
  if (target.size < source.size) return false;
@@ -1,19 +1,29 @@
1
1
  //#region src/Set/mapEach.d.ts
2
2
  /**
3
+ * # mapEach
4
+ *
3
5
  * ```ts
4
- * function Set.mapEach(target, fn)
6
+ * function Set.mapEach<T, U>(
7
+ * target: ReadonlySet<T>,
8
+ * fn: (
9
+ * value: NoInfer<T>,
10
+ * target: ReadonlySet<NoInfer<T>>,
11
+ * ) => U,
12
+ * ): ReadonlySet<U>
5
13
  * ```
6
14
  *
7
- * Example
15
+ * Returns a new set with each value transformed by the mapping function.
8
16
  *
9
- * ```ts
17
+ * ## Example
18
+ *
19
+ * ```ts [data-first]
10
20
  * import { Set } from "@monstermann/set";
11
21
  *
12
22
  * Set.mapEach(Set.create([1, 2, 3]), (x) => x * 2); // Set([2, 4, 6])
13
23
  * Set.mapEach(Set.create(["a", "b"]), (x) => x.toUpperCase()); // Set(['A', 'B'])
14
24
  * ```
15
25
  *
16
- * ```ts
26
+ * ```ts [data-last]
17
27
  * import { Set } from "@monstermann/set";
18
28
  *
19
29
  * pipe(
@@ -26,6 +36,7 @@
26
36
  * Set.mapEach((x) => x.toUpperCase()),
27
37
  * ); // Set(['A', 'B'])
28
38
  * ```
39
+ *
29
40
  */
30
41
  declare const mapEach: {
31
42
  <T, U>(fn: (value: NoInfer<T>, target: ReadonlySet<NoInfer<T>>) => U): (target: Set<T>) => Set<U>;
@@ -2,20 +2,30 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Set/mapEach.ts
4
4
  /**
5
+ * # mapEach
6
+ *
5
7
  * ```ts
6
- * function Set.mapEach(target, fn)
8
+ * function Set.mapEach<T, U>(
9
+ * target: ReadonlySet<T>,
10
+ * fn: (
11
+ * value: NoInfer<T>,
12
+ * target: ReadonlySet<NoInfer<T>>,
13
+ * ) => U,
14
+ * ): ReadonlySet<U>
7
15
  * ```
8
16
  *
9
- * Example
17
+ * Returns a new set with each value transformed by the mapping function.
10
18
  *
11
- * ```ts
19
+ * ## Example
20
+ *
21
+ * ```ts [data-first]
12
22
  * import { Set } from "@monstermann/set";
13
23
  *
14
24
  * Set.mapEach(Set.create([1, 2, 3]), (x) => x * 2); // Set([2, 4, 6])
15
25
  * Set.mapEach(Set.create(["a", "b"]), (x) => x.toUpperCase()); // Set(['A', 'B'])
16
26
  * ```
17
27
  *
18
- * ```ts
28
+ * ```ts [data-last]
19
29
  * import { Set } from "@monstermann/set";
20
30
  *
21
31
  * pipe(
@@ -28,6 +38,7 @@ import { dfdlT } from "@monstermann/dfdl";
28
38
  * Set.mapEach((x) => x.toUpperCase()),
29
39
  * ); // Set(['A', 'B'])
30
40
  * ```
41
+ *
31
42
  */
32
43
  const mapEach = dfdlT((target, fn) => {
33
44
  let hasChanges = false;
@@ -1,24 +1,32 @@
1
1
  //#region src/Set/remove.d.ts
2
2
  /**
3
+ * # remove
4
+ *
3
5
  * ```ts
4
- * function Set.remove(target, value)
6
+ * function Set.remove<T>(
7
+ * target: ReadonlySet<T>,
8
+ * value: NoInfer<T>,
9
+ * ): ReadonlySet<T>
5
10
  * ```
6
11
  *
7
- * Example
12
+ * Returns a set with the value removed. If the value doesn't exist in the set, returns the original set unchanged.
8
13
  *
9
- * ```ts
14
+ * ## Example
15
+ *
16
+ * ```ts [data-first]
10
17
  * import { Set } from "@monstermann/set";
11
18
  *
12
19
  * Set.remove(Set.create([1, 2, 3]), 2); // Set([1, 3])
13
20
  * Set.remove(Set.create([1, 2, 3]), 4); // Set([1, 2, 3])
14
21
  * ```
15
22
  *
16
- * ```ts
23
+ * ```ts [data-last]
17
24
  * import { Set } from "@monstermann/set";
18
25
  *
19
26
  * pipe(Set.create([1, 2, 3]), Set.remove(2)); // Set([1, 3])
20
27
  * pipe(Set.create([1, 2, 3]), Set.remove(4)); // Set([1, 2, 3])
21
28
  * ```
29
+ *
22
30
  */
23
31
  declare const remove: {
24
32
  <T>(value: NoInfer<T>): (target: Set<T>) => Set<T>;
@@ -3,25 +3,33 @@ import { cloneSet } from "@monstermann/remmi";
3
3
 
4
4
  //#region src/Set/remove.ts
5
5
  /**
6
+ * # remove
7
+ *
6
8
  * ```ts
7
- * function Set.remove(target, value)
9
+ * function Set.remove<T>(
10
+ * target: ReadonlySet<T>,
11
+ * value: NoInfer<T>,
12
+ * ): ReadonlySet<T>
8
13
  * ```
9
14
  *
10
- * Example
15
+ * Returns a set with the value removed. If the value doesn't exist in the set, returns the original set unchanged.
11
16
  *
12
- * ```ts
17
+ * ## Example
18
+ *
19
+ * ```ts [data-first]
13
20
  * import { Set } from "@monstermann/set";
14
21
  *
15
22
  * Set.remove(Set.create([1, 2, 3]), 2); // Set([1, 3])
16
23
  * Set.remove(Set.create([1, 2, 3]), 4); // Set([1, 2, 3])
17
24
  * ```
18
25
  *
19
- * ```ts
26
+ * ```ts [data-last]
20
27
  * import { Set } from "@monstermann/set";
21
28
  *
22
29
  * pipe(Set.create([1, 2, 3]), Set.remove(2)); // Set([1, 3])
23
30
  * pipe(Set.create([1, 2, 3]), Set.remove(4)); // Set([1, 2, 3])
24
31
  * ```
32
+ *
25
33
  */
26
34
  const remove = dfdlT((target, value) => {
27
35
  if (!target.has(value)) return target;
@@ -1,24 +1,32 @@
1
1
  //#region src/Set/removeAll.d.ts
2
2
  /**
3
+ * # removeAll
4
+ *
3
5
  * ```ts
4
- * function Set.removeAll(target, values)
6
+ * function Set.removeAll<T>(
7
+ * target: ReadonlySet<T>,
8
+ * values: Iterable<NoInfer<T>>,
9
+ * ): ReadonlySet<T>
5
10
  * ```
6
11
  *
7
- * Example
12
+ * Returns a set with all values from the iterable removed. Values that don't exist in the set are skipped.
8
13
  *
9
- * ```ts
14
+ * ## Example
15
+ *
16
+ * ```ts [data-first]
10
17
  * import { Set } from "@monstermann/set";
11
18
  *
12
19
  * Set.removeAll(Set.create([1, 2, 3, 4]), [2, 3]); // Set([1, 4])
13
20
  * Set.removeAll(Set.create([1, 2, 3]), [4, 5]); // Set([1, 2, 3])
14
21
  * ```
15
22
  *
16
- * ```ts
23
+ * ```ts [data-last]
17
24
  * import { Set } from "@monstermann/set";
18
25
  *
19
26
  * pipe(Set.create([1, 2, 3, 4]), Set.removeAll([2, 3])); // Set([1, 4])
20
27
  * pipe(Set.create([1, 2, 3]), Set.removeAll([4, 5])); // Set([1, 2, 3])
21
28
  * ```
29
+ *
22
30
  */
23
31
  declare const removeAll: {
24
32
  <T>(values: Iterable<NoInfer<T>>): (target: Set<T>) => Set<T>;
@@ -3,25 +3,33 @@ import { cloneSet } from "@monstermann/remmi";
3
3
 
4
4
  //#region src/Set/removeAll.ts
5
5
  /**
6
+ * # removeAll
7
+ *
6
8
  * ```ts
7
- * function Set.removeAll(target, values)
9
+ * function Set.removeAll<T>(
10
+ * target: ReadonlySet<T>,
11
+ * values: Iterable<NoInfer<T>>,
12
+ * ): ReadonlySet<T>
8
13
  * ```
9
14
  *
10
- * Example
15
+ * Returns a set with all values from the iterable removed. Values that don't exist in the set are skipped.
11
16
  *
12
- * ```ts
17
+ * ## Example
18
+ *
19
+ * ```ts [data-first]
13
20
  * import { Set } from "@monstermann/set";
14
21
  *
15
22
  * Set.removeAll(Set.create([1, 2, 3, 4]), [2, 3]); // Set([1, 4])
16
23
  * Set.removeAll(Set.create([1, 2, 3]), [4, 5]); // Set([1, 2, 3])
17
24
  * ```
18
25
  *
19
- * ```ts
26
+ * ```ts [data-last]
20
27
  * import { Set } from "@monstermann/set";
21
28
  *
22
29
  * pipe(Set.create([1, 2, 3, 4]), Set.removeAll([2, 3])); // Set([1, 4])
23
30
  * pipe(Set.create([1, 2, 3]), Set.removeAll([4, 5])); // Set([1, 2, 3])
24
31
  * ```
32
+ *
25
33
  */
26
34
  const removeAll = dfdlT((target, values) => {
27
35
  let result;
@@ -1,24 +1,31 @@
1
1
  //#region src/Set/size.d.ts
2
2
  /**
3
+ * # size
4
+ *
3
5
  * ```ts
4
- * function Set.size(target)
6
+ * function Set.size<T extends ReadonlySet<unknown>>(
7
+ * target: T,
8
+ * ): number
5
9
  * ```
6
10
  *
7
- * Example
11
+ * Returns the number of values in the set.
8
12
  *
9
- * ```ts
13
+ * ## Example
14
+ *
15
+ * ```ts [data-first]
10
16
  * import { Set } from "@monstermann/set";
11
17
  *
12
18
  * Set.size(Set.create([1, 2, 3])); // 3
13
19
  * Set.size(Set.create()); // 0
14
20
  * ```
15
21
  *
16
- * ```ts
22
+ * ```ts [data-last]
17
23
  * import { Set } from "@monstermann/set";
18
24
  *
19
25
  * pipe(Set.create([1, 2, 3]), Set.size()); // 3
20
26
  * pipe(Set.create(), Set.size()); // 0
21
27
  * ```
28
+ *
22
29
  */
23
30
  declare const size: {
24
31
  (): <T extends ReadonlySet<unknown>>(target: T) => number;
package/dist/Set/size.mjs CHANGED
@@ -2,25 +2,32 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Set/size.ts
4
4
  /**
5
+ * # size
6
+ *
5
7
  * ```ts
6
- * function Set.size(target)
8
+ * function Set.size<T extends ReadonlySet<unknown>>(
9
+ * target: T,
10
+ * ): number
7
11
  * ```
8
12
  *
9
- * Example
13
+ * Returns the number of values in the set.
10
14
  *
11
- * ```ts
15
+ * ## Example
16
+ *
17
+ * ```ts [data-first]
12
18
  * import { Set } from "@monstermann/set";
13
19
  *
14
20
  * Set.size(Set.create([1, 2, 3])); // 3
15
21
  * Set.size(Set.create()); // 0
16
22
  * ```
17
23
  *
18
- * ```ts
24
+ * ```ts [data-last]
19
25
  * import { Set } from "@monstermann/set";
20
26
  *
21
27
  * pipe(Set.create([1, 2, 3]), Set.size()); // 3
22
28
  * pipe(Set.create(), Set.size()); // 0
23
29
  * ```
30
+ *
24
31
  */
25
32
  const size = dfdlT((target) => {
26
33
  return target.size;
@@ -1,24 +1,32 @@
1
1
  //#region src/Set/symmetricDifference.d.ts
2
2
  /**
3
+ * # symmetricDifference
4
+ *
3
5
  * ```ts
4
- * function Set.symmetricDifference(target, source)
6
+ * function Set.symmetricDifference<T, U>(
7
+ * target: Set<T>,
8
+ * source: Set<U>,
9
+ * ): Set<T | U>
5
10
  * ```
6
11
  *
7
- * Example
12
+ * Returns a set containing values that exist in either set but not in both.
8
13
  *
9
- * ```ts
14
+ * ## Example
15
+ *
16
+ * ```ts [data-first]
10
17
  * import { Set } from "@monstermann/set";
11
18
  *
12
19
  * Set.symmetricDifference(Set.create([1, 2, 3]), Set.create([3, 4, 5])); // Set([1, 2, 4, 5])
13
20
  * Set.symmetricDifference(Set.create([1, 2]), Set.create([3, 4])); // Set([1, 2, 3, 4])
14
21
  * ```
15
22
  *
16
- * ```ts
23
+ * ```ts [data-last]
17
24
  * import { Set } from "@monstermann/set";
18
25
  *
19
26
  * pipe(Set.create([1, 2, 3]), Set.symmetricDifference(Set.create([3, 4, 5]))); // Set([1, 2, 4, 5])
20
27
  * pipe(Set.create([1, 2]), Set.symmetricDifference(Set.create([3, 4]))); // Set([1, 2, 3, 4])
21
28
  * ```
29
+ *
22
30
  */
23
31
  declare const symmetricDifference: {
24
32
  <T, U>(source: Set<U>): (target: Set<T>) => Set<T | U>;
@@ -2,25 +2,33 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Set/symmetricDifference.ts
4
4
  /**
5
+ * # symmetricDifference
6
+ *
5
7
  * ```ts
6
- * function Set.symmetricDifference(target, source)
8
+ * function Set.symmetricDifference<T, U>(
9
+ * target: Set<T>,
10
+ * source: Set<U>,
11
+ * ): Set<T | U>
7
12
  * ```
8
13
  *
9
- * Example
14
+ * Returns a set containing values that exist in either set but not in both.
10
15
  *
11
- * ```ts
16
+ * ## Example
17
+ *
18
+ * ```ts [data-first]
12
19
  * import { Set } from "@monstermann/set";
13
20
  *
14
21
  * Set.symmetricDifference(Set.create([1, 2, 3]), Set.create([3, 4, 5])); // Set([1, 2, 4, 5])
15
22
  * Set.symmetricDifference(Set.create([1, 2]), Set.create([3, 4])); // Set([1, 2, 3, 4])
16
23
  * ```
17
24
  *
18
- * ```ts
25
+ * ```ts [data-last]
19
26
  * import { Set } from "@monstermann/set";
20
27
  *
21
28
  * pipe(Set.create([1, 2, 3]), Set.symmetricDifference(Set.create([3, 4, 5]))); // Set([1, 2, 4, 5])
22
29
  * pipe(Set.create([1, 2]), Set.symmetricDifference(Set.create([3, 4]))); // Set([1, 2, 3, 4])
23
30
  * ```
31
+ *
24
32
  */
25
33
  const symmetricDifference = dfdlT((target, source) => {
26
34
  if (source.size === 0) return target;
@@ -1,24 +1,29 @@
1
1
  //#region src/Set/toArray.d.ts
2
2
  /**
3
+ * # toArray
4
+ *
3
5
  * ```ts
4
- * function Set.toArray(target)
6
+ * function Set.toArray<T>(target: ReadonlySet<T>): T[]
5
7
  * ```
6
8
  *
7
- * Example
9
+ * Converts the set to an array.
8
10
  *
9
- * ```ts
11
+ * ## Example
12
+ *
13
+ * ```ts [data-first]
10
14
  * import { Set } from "@monstermann/set";
11
15
  *
12
16
  * Set.toArray(Set.create([1, 2, 3])); // [1, 2, 3]
13
17
  * Set.toArray(Set.create(["a", "b"])); // ['a', 'b']
14
18
  * ```
15
19
  *
16
- * ```ts
20
+ * ```ts [data-last]
17
21
  * import { Set } from "@monstermann/set";
18
22
  *
19
23
  * pipe(Set.create([1, 2, 3]), Set.toArray()); // [1, 2, 3]
20
24
  * pipe(Set.create(["a", "b"]), Set.toArray()); // ['a', 'b']
21
25
  * ```
26
+ *
22
27
  */
23
28
  declare const toArray: {
24
29
  (): <T>(target: ReadonlySet<T>) => T[];
@@ -2,25 +2,30 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Set/toArray.ts
4
4
  /**
5
+ * # toArray
6
+ *
5
7
  * ```ts
6
- * function Set.toArray(target)
8
+ * function Set.toArray<T>(target: ReadonlySet<T>): T[]
7
9
  * ```
8
10
  *
9
- * Example
11
+ * Converts the set to an array.
10
12
  *
11
- * ```ts
13
+ * ## Example
14
+ *
15
+ * ```ts [data-first]
12
16
  * import { Set } from "@monstermann/set";
13
17
  *
14
18
  * Set.toArray(Set.create([1, 2, 3])); // [1, 2, 3]
15
19
  * Set.toArray(Set.create(["a", "b"])); // ['a', 'b']
16
20
  * ```
17
21
  *
18
- * ```ts
22
+ * ```ts [data-last]
19
23
  * import { Set } from "@monstermann/set";
20
24
  *
21
25
  * pipe(Set.create([1, 2, 3]), Set.toArray()); // [1, 2, 3]
22
26
  * pipe(Set.create(["a", "b"]), Set.toArray()); // ['a', 'b']
23
27
  * ```
28
+ *
24
29
  */
25
30
  const toArray = dfdlT((target) => {
26
31
  return Array.from(target);
@@ -1,24 +1,32 @@
1
1
  //#region src/Set/union.d.ts
2
2
  /**
3
+ * # union
4
+ *
3
5
  * ```ts
4
- * function Set.union(target, source)
6
+ * function Set.union<T, U>(
7
+ * target: Set<T>,
8
+ * source: Set<U>,
9
+ * ): Set<T | U>
5
10
  * ```
6
11
  *
7
- * Example
12
+ * Returns a set containing all values from both sets.
8
13
  *
9
- * ```ts
14
+ * ## Example
15
+ *
16
+ * ```ts [data-first]
10
17
  * import { Set } from "@monstermann/set";
11
18
  *
12
19
  * Set.union(Set.create([1, 2]), Set.create([2, 3, 4])); // Set([1, 2, 3, 4])
13
20
  * Set.union(Set.create([1, 2]), Set.create([3, 4])); // Set([1, 2, 3, 4])
14
21
  * ```
15
22
  *
16
- * ```ts
23
+ * ```ts [data-last]
17
24
  * import { Set } from "@monstermann/set";
18
25
  *
19
26
  * pipe(Set.create([1, 2]), Set.union(Set.create([2, 3, 4]))); // Set([1, 2, 3, 4])
20
27
  * pipe(Set.create([1, 2]), Set.union(Set.create([3, 4]))); // Set([1, 2, 3, 4])
21
28
  * ```
29
+ *
22
30
  */
23
31
  declare const union: {
24
32
  <T, U>(source: Set<U>): (target: Set<T>) => Set<T | U>;
@@ -2,25 +2,33 @@ import { dfdlT } from "@monstermann/dfdl";
2
2
 
3
3
  //#region src/Set/union.ts
4
4
  /**
5
+ * # union
6
+ *
5
7
  * ```ts
6
- * function Set.union(target, source)
8
+ * function Set.union<T, U>(
9
+ * target: Set<T>,
10
+ * source: Set<U>,
11
+ * ): Set<T | U>
7
12
  * ```
8
13
  *
9
- * Example
14
+ * Returns a set containing all values from both sets.
10
15
  *
11
- * ```ts
16
+ * ## Example
17
+ *
18
+ * ```ts [data-first]
12
19
  * import { Set } from "@monstermann/set";
13
20
  *
14
21
  * Set.union(Set.create([1, 2]), Set.create([2, 3, 4])); // Set([1, 2, 3, 4])
15
22
  * Set.union(Set.create([1, 2]), Set.create([3, 4])); // Set([1, 2, 3, 4])
16
23
  * ```
17
24
  *
18
- * ```ts
25
+ * ```ts [data-last]
19
26
  * import { Set } from "@monstermann/set";
20
27
  *
21
28
  * pipe(Set.create([1, 2]), Set.union(Set.create([2, 3, 4]))); // Set([1, 2, 3, 4])
22
29
  * pipe(Set.create([1, 2]), Set.union(Set.create([3, 4]))); // Set([1, 2, 3, 4])
23
30
  * ```
31
+ *
24
32
  */
25
33
  const union = dfdlT((target, source) => {
26
34
  if (source.size === 0) return target;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@monstermann/set",
3
3
  "type": "module",
4
- "version": "0.2.0",
4
+ "version": "0.3.0",
5
5
  "description": "Functional utilities for sets.",
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,28 +0,0 @@
1
- //#region src/Set/addOr.d.ts
2
- /**
3
- * ```ts
4
- * function Set.addOr(target, value, or)
5
- * ```
6
- *
7
- * Example
8
- *
9
- * ```ts
10
- * import { Set } from "@monstermann/set";
11
- *
12
- * Set.addOr(Set.create([1, 2]), 3, null); // Set([1, 2, 3])
13
- * Set.addOr(Set.create([1, 2]), 2, null); // null
14
- * ```
15
- *
16
- * ```ts
17
- * import { Set } from "@monstermann/set";
18
- *
19
- * pipe(Set.create([1, 2]), Set.addOr(3, null)); // Set([1, 2, 3])
20
- * pipe(Set.create([1, 2]), Set.addOr(2, null)); // null
21
- * ```
22
- */
23
- declare const addOr: {
24
- <T, U>(value: NoInfer<T>, or: U): (target: ReadonlySet<T>) => Set<T> | U;
25
- <T, U>(target: ReadonlySet<T>, value: NoInfer<T>, or: U): Set<T> | U;
26
- };
27
- //#endregion
28
- export { addOr };