ts-data-forge 14.6.2 → 14.6.3

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 (182) hide show
  1. package/dist/array/impl/array-utils-creation.mjs +103 -103
  2. package/dist/array/impl/array-utils-element-access.mjs +46 -46
  3. package/dist/array/impl/array-utils-iterators.mjs +54 -54
  4. package/dist/array/impl/array-utils-length-bounded-array-cast.mjs +49 -49
  5. package/dist/array/impl/array-utils-length-bounded-array-guard.mjs +40 -40
  6. package/dist/array/impl/array-utils-length-bounded-tuple-cast.mjs +42 -42
  7. package/dist/array/impl/array-utils-length-bounded-tuple-guard.mjs +46 -46
  8. package/dist/array/impl/array-utils-modification.mjs +4 -4
  9. package/dist/array/impl/array-utils-reducing-value.mjs +11 -11
  10. package/dist/array/impl/array-utils-search.mjs +6 -6
  11. package/dist/array/impl/array-utils-set-op.mjs +116 -116
  12. package/dist/array/impl/array-utils-size.mjs +6 -6
  13. package/dist/array/impl/array-utils-slice-clamped.mjs +1 -1
  14. package/dist/array/impl/array-utils-slicing.mjs +56 -56
  15. package/dist/array/impl/array-utils-transformation.mjs +156 -156
  16. package/dist/array/impl/array-utils-validation.mjs +36 -36
  17. package/dist/collections/imap-mapped.mjs +195 -195
  18. package/dist/collections/imap.mjs +143 -143
  19. package/dist/collections/iset-mapped.mjs +320 -320
  20. package/dist/collections/iset.mjs +207 -207
  21. package/dist/collections/queue.mjs +130 -130
  22. package/dist/collections/stack.mjs +125 -125
  23. package/dist/expect-type.mjs +68 -68
  24. package/dist/functional/async-result/impl/async-result-flat-map.mjs +3 -3
  25. package/dist/functional/async-result/impl/async-result-map-err.mjs +2 -2
  26. package/dist/functional/async-result/impl/async-result-map.mjs +2 -2
  27. package/dist/functional/async-result/impl/async-result-unwrap-or.mjs +31 -31
  28. package/dist/functional/optional/impl/optional-expect-to-be.mjs +1 -1
  29. package/dist/functional/optional/impl/optional-filter.mjs +1 -1
  30. package/dist/functional/optional/impl/optional-flat-map.mjs +1 -1
  31. package/dist/functional/optional/impl/optional-from-nullable.mjs +24 -24
  32. package/dist/functional/optional/impl/optional-is-none.mjs +19 -19
  33. package/dist/functional/optional/impl/optional-is-optional.mjs +18 -18
  34. package/dist/functional/optional/impl/optional-is-some.mjs +20 -20
  35. package/dist/functional/optional/impl/optional-map.mjs +2 -2
  36. package/dist/functional/optional/impl/optional-match.mjs +2 -2
  37. package/dist/functional/optional/impl/optional-none.mjs +16 -16
  38. package/dist/functional/optional/impl/optional-or-else.mjs +1 -1
  39. package/dist/functional/optional/impl/optional-some.mjs +19 -19
  40. package/dist/functional/optional/impl/optional-to-nullable.mjs +26 -26
  41. package/dist/functional/optional/impl/optional-unwrap-or.mjs +1 -1
  42. package/dist/functional/optional/impl/optional-unwrap-throw.mjs +28 -28
  43. package/dist/functional/optional/impl/optional-unwrap.mjs +1 -1
  44. package/dist/functional/optional/impl/optional-zip.mjs +32 -32
  45. package/dist/functional/optional/impl/tag.mjs +1 -1
  46. package/dist/functional/pipe.mjs +19 -19
  47. package/dist/functional/result/impl/result-err.mjs +25 -25
  48. package/dist/functional/result/impl/result-expect-to-be.mjs +2 -2
  49. package/dist/functional/result/impl/result-flat-map.mjs +4 -4
  50. package/dist/functional/result/impl/result-fold.mjs +4 -4
  51. package/dist/functional/result/impl/result-from-optional.mjs +2 -2
  52. package/dist/functional/result/impl/result-from-promise.mjs +34 -34
  53. package/dist/functional/result/impl/result-from-throwable.mjs +29 -29
  54. package/dist/functional/result/impl/result-is-err.mjs +19 -19
  55. package/dist/functional/result/impl/result-is-ok.mjs +19 -19
  56. package/dist/functional/result/impl/result-is-result.mjs +19 -19
  57. package/dist/functional/result/impl/result-map-err.mjs +4 -4
  58. package/dist/functional/result/impl/result-map.mjs +4 -4
  59. package/dist/functional/result/impl/result-match.mjs +3 -3
  60. package/dist/functional/result/impl/result-ok.mjs +25 -25
  61. package/dist/functional/result/impl/result-or-else.mjs +2 -2
  62. package/dist/functional/result/impl/result-safe-try.mjs +15 -15
  63. package/dist/functional/result/impl/result-safe-unwrap.mjs +33 -33
  64. package/dist/functional/result/impl/result-swap.mjs +20 -20
  65. package/dist/functional/result/impl/result-to-optional.mjs +27 -27
  66. package/dist/functional/result/impl/result-unwrap-err-or.mjs +2 -2
  67. package/dist/functional/result/impl/result-unwrap-err-throw.mjs +31 -31
  68. package/dist/functional/result/impl/result-unwrap-err.mjs +30 -30
  69. package/dist/functional/result/impl/result-unwrap-ok-or.mjs +2 -2
  70. package/dist/functional/result/impl/result-unwrap-ok.mjs +1 -1
  71. package/dist/functional/result/impl/result-unwrap-throw.mjs +31 -31
  72. package/dist/functional/result/impl/result-zip.mjs +29 -29
  73. package/dist/functional/result/impl/tag.mjs +1 -1
  74. package/dist/functional/ternary-result/impl/tag.mjs +2 -2
  75. package/dist/functional/ternary-result/impl/ternary-result-err.mjs +13 -13
  76. package/dist/functional/ternary-result/impl/ternary-result-flat-map.mjs +4 -4
  77. package/dist/functional/ternary-result/impl/ternary-result-fold.mjs +4 -4
  78. package/dist/functional/ternary-result/impl/ternary-result-from-promise.mjs +18 -18
  79. package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +17 -17
  80. package/dist/functional/ternary-result/impl/ternary-result-is-err.mjs +17 -17
  81. package/dist/functional/ternary-result/impl/ternary-result-is-ok.mjs +19 -19
  82. package/dist/functional/ternary-result/impl/ternary-result-is-ternary-result.mjs +19 -19
  83. package/dist/functional/ternary-result/impl/ternary-result-is-warn.mjs +18 -18
  84. package/dist/functional/ternary-result/impl/ternary-result-map-err.mjs +2 -2
  85. package/dist/functional/ternary-result/impl/ternary-result-map-warn.mjs +3 -3
  86. package/dist/functional/ternary-result/impl/ternary-result-map.mjs +4 -4
  87. package/dist/functional/ternary-result/impl/ternary-result-ok.mjs +14 -14
  88. package/dist/functional/ternary-result/impl/ternary-result-to-optional.mjs +19 -19
  89. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err-throw.mjs +19 -19
  90. package/dist/functional/ternary-result/impl/ternary-result-unwrap-err.mjs +17 -17
  91. package/dist/functional/ternary-result/impl/ternary-result-unwrap-ok.mjs +1 -1
  92. package/dist/functional/ternary-result/impl/ternary-result-unwrap-throw.mjs +20 -20
  93. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn-throw.mjs +18 -18
  94. package/dist/functional/ternary-result/impl/ternary-result-unwrap-warn.mjs +17 -17
  95. package/dist/functional/ternary-result/impl/ternary-result-warn.mjs +16 -16
  96. package/dist/functional/ternary-result/impl/ternary-result-zip.mjs +31 -31
  97. package/dist/functional/ternary-result/impl/variant-name.mjs +1 -1
  98. package/dist/guard/has-key.mjs +41 -41
  99. package/dist/guard/is-non-empty-string.mjs +37 -37
  100. package/dist/guard/is-non-null-object.mjs +34 -34
  101. package/dist/guard/is-primitive.mjs +31 -31
  102. package/dist/guard/is-record.mjs +86 -86
  103. package/dist/guard/is-type.mjs +387 -387
  104. package/dist/guard/key-is-in.mjs +40 -40
  105. package/dist/iterator/range.mjs +1 -1
  106. package/dist/json/json.mjs +289 -289
  107. package/dist/number/branded-types/finite-number.mjs +116 -116
  108. package/dist/number/branded-types/int.mjs +223 -223
  109. package/dist/number/branded-types/int16.mjs +116 -116
  110. package/dist/number/branded-types/int32.mjs +116 -116
  111. package/dist/number/branded-types/negative-finite-number.mjs +126 -126
  112. package/dist/number/branded-types/negative-int.mjs +104 -104
  113. package/dist/number/branded-types/negative-safe-int.mjs +104 -104
  114. package/dist/number/branded-types/non-negative-finite-number.mjs +132 -132
  115. package/dist/number/branded-types/non-negative-int16.mjs +113 -113
  116. package/dist/number/branded-types/non-negative-int32.mjs +113 -113
  117. package/dist/number/branded-types/non-positive-finite-number.mjs +116 -116
  118. package/dist/number/branded-types/non-positive-int.mjs +97 -97
  119. package/dist/number/branded-types/non-positive-safe-int.mjs +98 -98
  120. package/dist/number/branded-types/non-zero-finite-number.mjs +112 -112
  121. package/dist/number/branded-types/non-zero-int.mjs +82 -82
  122. package/dist/number/branded-types/non-zero-int16.mjs +95 -95
  123. package/dist/number/branded-types/non-zero-int32.mjs +95 -95
  124. package/dist/number/branded-types/non-zero-safe-int.mjs +99 -99
  125. package/dist/number/branded-types/non-zero-uint16.mjs +95 -95
  126. package/dist/number/branded-types/non-zero-uint32.mjs +95 -95
  127. package/dist/number/branded-types/positive-finite-number.mjs +134 -134
  128. package/dist/number/branded-types/positive-int.mjs +237 -237
  129. package/dist/number/branded-types/positive-int16.mjs +110 -110
  130. package/dist/number/branded-types/positive-int32.mjs +110 -110
  131. package/dist/number/branded-types/positive-safe-int.mjs +268 -268
  132. package/dist/number/branded-types/positive-uint16.mjs +110 -110
  133. package/dist/number/branded-types/positive-uint32.mjs +110 -110
  134. package/dist/number/branded-types/safe-int.mjs +259 -259
  135. package/dist/number/branded-types/safe-uint.mjs +111 -111
  136. package/dist/number/branded-types/uint.mjs +225 -225
  137. package/dist/number/branded-types/uint16.mjs +108 -108
  138. package/dist/number/branded-types/uint32.mjs +108 -108
  139. package/dist/number/enum/int8.mjs +118 -118
  140. package/dist/number/enum/uint8.mjs +109 -109
  141. package/dist/number/num-arithmetic-types.mjs +1 -1
  142. package/dist/number/num.mjs +478 -478
  143. package/dist/number/refined-number-utils.mjs +170 -170
  144. package/dist/object/object.mjs +234 -234
  145. package/dist/others/cast-mutable.mjs +33 -33
  146. package/dist/others/cast-readonly.mjs +32 -32
  147. package/dist/others/debounce-function.mjs +13 -13
  148. package/dist/others/fast-deep-equal.mjs +14 -14
  149. package/dist/others/if-then.mjs +29 -29
  150. package/dist/others/tuple.mjs +50 -50
  151. package/dist/others/unknown-to-string.mjs +38 -38
  152. package/dist/promise/promise.mjs +47 -47
  153. package/dist/string/str.mjs +177 -177
  154. package/dist/types.mjs +1 -1
  155. package/package.json +6 -6
  156. package/src/guard/is-type.test.mts +2 -2
  157. package/src/number/branded-types/finite-number.test.mts +1 -1
  158. package/src/number/branded-types/int.test.mts +1 -1
  159. package/src/number/branded-types/int16.test.mts +1 -1
  160. package/src/number/branded-types/int32.test.mts +1 -1
  161. package/src/number/branded-types/non-negative-finite-number.test.mts +1 -1
  162. package/src/number/branded-types/non-negative-int16.test.mts +1 -1
  163. package/src/number/branded-types/non-negative-int32.test.mts +1 -1
  164. package/src/number/branded-types/non-zero-finite-number.test.mts +1 -1
  165. package/src/number/branded-types/non-zero-int.test.mts +1 -1
  166. package/src/number/branded-types/non-zero-int16.test.mts +1 -1
  167. package/src/number/branded-types/non-zero-int32.test.mts +1 -1
  168. package/src/number/branded-types/non-zero-safe-int.test.mts +1 -1
  169. package/src/number/branded-types/non-zero-uint16.test.mts +1 -1
  170. package/src/number/branded-types/non-zero-uint32.test.mts +1 -1
  171. package/src/number/branded-types/positive-finite-number.test.mts +1 -1
  172. package/src/number/branded-types/positive-int.test.mts +1 -1
  173. package/src/number/branded-types/positive-int16.test.mts +1 -1
  174. package/src/number/branded-types/positive-int32.test.mts +1 -1
  175. package/src/number/branded-types/positive-safe-int.test.mts +1 -1
  176. package/src/number/branded-types/positive-uint16.test.mts +1 -1
  177. package/src/number/branded-types/positive-uint32.test.mts +1 -1
  178. package/src/number/branded-types/safe-int.test.mts +1 -1
  179. package/src/number/branded-types/safe-uint.test.mts +1 -1
  180. package/src/number/branded-types/uint.test.mts +1 -1
  181. package/src/number/branded-types/uint16.test.mts +1 -1
  182. package/src/number/branded-types/uint32.test.mts +1 -1
@@ -1,17 +1,17 @@
1
1
  import { ErrTypeTagName } from './tag.mjs';
2
- /**
3
- * Creates a `TernaryResult.Err` containing the provided error value.
4
- *
5
- * @example
6
- *
7
- * ```ts
8
- * const failure = TernaryResult.err(new Error('missing data'));
9
- *
10
- * assert.strictEqual(failure.$$tag, 'ts-data-forge::Result.err');
11
- *
12
- * assert.isTrue(TernaryResult.isErr(failure));
13
- * ```
14
- */
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
15
  export const err = (value) => ({
16
16
  $$tag: ErrTypeTagName,
17
17
  value,
@@ -15,16 +15,16 @@ export function flatMap(...args) {
15
15
  }
16
16
  const flatMapImpl = (result, flatMapFn) => {
17
17
  if (isOk(result)) {
18
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
18
+
19
19
  return flatMapFn(result.value);
20
20
  }
21
21
  if (isWarn(result)) {
22
22
  const next = flatMapFn(
23
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
23
+
24
24
  result.value);
25
25
  if (isOk(next)) {
26
26
  return warn(next.value,
27
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
27
+
28
28
  result.warning);
29
29
  }
30
30
  if (isWarn(next)) {
@@ -32,7 +32,7 @@ const flatMapImpl = (result, flatMapFn) => {
32
32
  }
33
33
  return next;
34
34
  }
35
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
35
+
36
36
  return result;
37
37
  };
38
38
  //# sourceMappingURL=ternary-result-flat-map.mjs.map
@@ -17,17 +17,17 @@ export function fold(...args) {
17
17
  }
18
18
  const foldImpl = (result, mapOk, mapWarnFn, mapErrFn) => {
19
19
  if (isOk(result)) {
20
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
20
+
21
21
  return ok(mapOk(result.value));
22
22
  }
23
23
  if (isWarn(result)) {
24
24
  return warn(
25
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
25
+
26
26
  mapOk(result.value),
27
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
27
+
28
28
  mapWarnFn(result.warning));
29
29
  }
30
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
30
+
31
31
  return err(mapErrFn(result.value));
32
32
  };
33
33
  //# sourceMappingURL=ternary-result-fold.mjs.map
@@ -1,23 +1,23 @@
1
1
  import { err } from './ternary-result-err.mjs';
2
2
  import { ok } from './ternary-result-ok.mjs';
3
- /**
4
- * Converts a Promise into a Promise that resolves to a `TernaryResult`.
5
- *
6
- * @example
7
- *
8
- * ```ts
9
- * const resolved = await TernaryResult.fromPromise(Promise.resolve('ok'));
10
- *
11
- * const rejected = await TernaryResult.fromPromise(
12
- * Promise.reject(new Error('fail')),
13
- * );
14
- *
15
- * assert.deepStrictEqual(resolved, TernaryResult.ok('ok'));
16
- *
17
- * assert.isTrue(TernaryResult.isErr(rejected));
18
- * ```
19
- */
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
20
  export const fromPromise = (promise) =>
21
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
21
+
22
22
  promise.then((value) => ok(value)).catch(err);
23
23
  //# sourceMappingURL=ternary-result-from-promise.mjs.map
@@ -2,23 +2,23 @@ import { isError } from '@sindresorhus/is';
2
2
  import { unknownToString } from '../../../others/index.mjs';
3
3
  import { err } from './ternary-result-err.mjs';
4
4
  import { ok } from './ternary-result-ok.mjs';
5
- /**
6
- * Wraps a potentially-throwing function in a `TernaryResult`.
7
- *
8
- * @example
9
- *
10
- * ```ts
11
- * const success = TernaryResult.fromThrowable(() => 1 + 1);
12
- *
13
- * const failure = TernaryResult.fromThrowable(() => {
14
- * throw new Error('boom');
15
- * });
16
- *
17
- * assert.deepStrictEqual(success, TernaryResult.ok(2));
18
- *
19
- * assert.isTrue(TernaryResult.isErr(failure));
20
- * ```
21
- */
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
22
  export const fromThrowable = (fn) => {
23
23
  try {
24
24
  return ok(fn());
@@ -1,20 +1,20 @@
1
1
  import { ErrTypeTagName } from './tag.mjs';
2
- /**
3
- * Type guard for the Err variant.
4
- *
5
- * @example
6
- *
7
- * ```ts
8
- * const maybeErr = TernaryResult.err('boom') as TernaryResult<
9
- * number,
10
- * string,
11
- * string
12
- * >;
13
- *
14
- * if (TernaryResult.isErr(maybeErr)) {
15
- * assert.strictEqual(maybeErr.value, 'boom');
16
- * }
17
- * ```
18
- */
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
19
  export const isErr = (result) => result.$$tag === ErrTypeTagName;
20
20
  //# sourceMappingURL=ternary-result-is-err.mjs.map
@@ -1,22 +1,22 @@
1
1
  import { OkTypeTagName } from './tag.mjs';
2
- /**
3
- * Type guard for the Ok variant.
4
- *
5
- * @example
6
- *
7
- * ```ts
8
- * const maybeNumber = TernaryResult.ok(42) as TernaryResult<
9
- * number,
10
- * string,
11
- * string
12
- * >;
13
- *
14
- * if (TernaryResult.isOk(maybeNumber)) {
15
- * const value: number = maybeNumber.value;
16
- *
17
- * assert.strictEqual(value, 42);
18
- * }
19
- * ```
20
- */
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
21
  export const isOk = (result) => result.$$tag === OkTypeTagName;
22
22
  //# sourceMappingURL=ternary-result-is-ok.mjs.map
@@ -1,24 +1,24 @@
1
1
  import { hasKey, isRecord } from '../../../guard/index.mjs';
2
2
  import { ErrTypeTagName, OkTypeTagName, WarnTypeTagName } from './tag.mjs';
3
- /**
4
- * Checks whether the provided value is a {@link TernaryResult}.
5
- *
6
- * @example
7
- *
8
- * ```ts
9
- * const okValue = TernaryResult.ok('done');
10
- *
11
- * const warnValue = TernaryResult.warn('done', 'retry later');
12
- *
13
- * const notResult = { $$tag: 'ts-data-forge::Result.ok' } as const;
14
- *
15
- * assert.isTrue(TernaryResult.isTernaryResult(okValue));
16
- *
17
- * assert.isTrue(TernaryResult.isTernaryResult(warnValue));
18
- *
19
- * assert.isFalse(TernaryResult.isTernaryResult(notResult));
20
- * ```
21
- */
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
22
  export const isTernaryResult = (maybeResult) => isRecord(maybeResult) &&
23
23
  hasKey(maybeResult, '$$tag') &&
24
24
  hasKey(maybeResult, 'value') &&
@@ -1,21 +1,21 @@
1
1
  import { WarnTypeTagName } from './tag.mjs';
2
- /**
3
- * Type guard for the Warn variant.
4
- *
5
- * @example
6
- *
7
- * ```ts
8
- * const maybeWarn = TernaryResult.warn(
9
- * 'value',
10
- * 'check logs',
11
- * ) as TernaryResult<string, string, string>;
12
- *
13
- * if (TernaryResult.isWarn(maybeWarn)) {
14
- * assert.strictEqual(maybeWarn.value, 'value');
15
- *
16
- * assert.strictEqual(maybeWarn.warning, 'check logs');
17
- * }
18
- * ```
19
- */
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
20
  export const isWarn = (result) => result.$$tag === WarnTypeTagName;
21
21
  //# sourceMappingURL=ternary-result-is-warn.mjs.map
@@ -14,10 +14,10 @@ export function mapErr(...args) {
14
14
  }
15
15
  const mapErrImpl = (result, mapFn) => {
16
16
  if (isErr(result)) {
17
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
17
+
18
18
  return err(mapFn(result.value));
19
19
  }
20
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
20
+
21
21
  return result;
22
22
  };
23
23
  //# sourceMappingURL=ternary-result-map-err.mjs.map
@@ -15,12 +15,12 @@ export function mapWarn(...args) {
15
15
  const mapWarnImpl = (result, mapFn) => {
16
16
  if (isWarn(result)) {
17
17
  return warn(
18
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
18
+
19
19
  result.value,
20
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
20
+
21
21
  mapFn(result.warning));
22
22
  }
23
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
23
+
24
24
  return result;
25
25
  };
26
26
  //# sourceMappingURL=ternary-result-map-warn.mjs.map
@@ -16,17 +16,17 @@ export function map(...args) {
16
16
  }
17
17
  const mapImpl = (result, mapFn) => {
18
18
  if (isOk(result)) {
19
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
19
+
20
20
  return ok(mapFn(result.value));
21
21
  }
22
22
  if (isWarn(result)) {
23
23
  return warn(
24
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
24
+
25
25
  mapFn(result.value),
26
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
26
+
27
27
  result.warning);
28
28
  }
29
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
29
+
30
30
  return result;
31
31
  };
32
32
  //# sourceMappingURL=ternary-result-map.mjs.map
@@ -1,18 +1,18 @@
1
1
  import { OkTypeTagName } from './tag.mjs';
2
- /**
3
- * Creates a `TernaryResult.Ok` containing the provided value.
4
- *
5
- * @example
6
- *
7
- * ```ts
8
- * const success = TernaryResult.ok({ id: 1 });
9
- *
10
- * assert.deepStrictEqual(success, {
11
- * $$tag: 'ts-data-forge::Result.ok',
12
- * value: { id: 1 },
13
- * });
14
- * ```
15
- */
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
16
  export const ok = (value) => ({
17
17
  $$tag: OkTypeTagName,
18
18
  value,
@@ -1,26 +1,26 @@
1
1
  import { Optional } from '../../optional/index.mjs';
2
2
  import { isOk } from './ternary-result-is-ok.mjs';
3
3
  import { isWarn } from './ternary-result-is-warn.mjs';
4
- /**
5
- * Converts a `TernaryResult` into an `Optional` by keeping only Ok values.
6
- *
7
- * @example
8
- *
9
- * ```ts
10
- * const okValue = TernaryResult.ok(7);
11
- *
12
- * const warnValue = TernaryResult.warn(7, 'warn');
13
- *
14
- * assert.deepStrictEqual(TernaryResult.toOptional(okValue), Optional.some(7));
15
- *
16
- * assert.deepStrictEqual(
17
- * TernaryResult.toOptional(warnValue),
18
- * Optional.some(7),
19
- * );
20
- * ```
21
- */
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
22
  export const toOptional = (result) => isOk(result) || isWarn(result)
23
- ? // eslint-disable-next-line total-functions/no-unsafe-type-assertion
23
+ ?
24
24
  Optional.some(result.value)
25
25
  : Optional.none;
26
26
  //# sourceMappingURL=ternary-result-to-optional.mjs.map
@@ -2,32 +2,32 @@ import { unknownToString } from '../../../others/index.mjs';
2
2
  import { isErr } from './ternary-result-is-err.mjs';
3
3
  import { isWarn } from './ternary-result-is-warn.mjs';
4
4
  import { variantName } from './variant-name.mjs';
5
- /**
6
- * Returns the Err value or throws if the result is not Err.
7
- *
8
- * @example
9
- *
10
- * ```ts
11
- * const errValue = TernaryResult.err('boom');
12
- *
13
- * assert.strictEqual(TernaryResult.unwrapErrThrow(errValue), 'boom');
14
- *
15
- * assert.throws(
16
- * () => TernaryResult.unwrapErrThrow(TernaryResult.ok('value')),
17
- * /Expected Err/u,
18
- * );
19
- * ```
20
- */
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
21
  export const unwrapErrThrow = (result, toStr = unknownToString) => {
22
22
  if (isErr(result)) {
23
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
23
+
24
24
  return result.value;
25
25
  }
26
26
  const variant = variantName(result.$$tag);
27
27
  const payload = isWarn(result)
28
- ? // eslint-disable-next-line total-functions/no-unsafe-type-assertion
28
+ ?
29
29
  result.warning
30
- : // eslint-disable-next-line total-functions/no-unsafe-type-assertion
30
+ :
31
31
  result.value;
32
32
  throw new Error(`Expected Err but got ${variant}: ${toStr(payload)}`);
33
33
  };
@@ -1,21 +1,21 @@
1
1
  import { isErr } from './ternary-result-is-err.mjs';
2
- /**
3
- * Safely unwraps the Err value.
4
- *
5
- * @example
6
- *
7
- * ```ts
8
- * const errValue = TernaryResult.err('fail');
9
- *
10
- * const okValue = TernaryResult.ok('value');
11
- *
12
- * assert.strictEqual(TernaryResult.unwrapErr(errValue), 'fail');
13
- *
14
- * // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression
15
- * assert.strictEqual(TernaryResult.unwrapErr(okValue), undefined);
16
- * ```
17
- */
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
18
  export const unwrapErr = (result) =>
19
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
19
+
20
20
  isErr(result) ? result.value : undefined;
21
21
  //# sourceMappingURL=ternary-result-unwrap-err.mjs.map
@@ -2,7 +2,7 @@ import { isOk } from './ternary-result-is-ok.mjs';
2
2
  import { isWarn } from './ternary-result-is-warn.mjs';
3
3
  export function unwrapOk(result) {
4
4
  if (isOk(result) || isWarn(result)) {
5
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
5
+
6
6
  return result.value;
7
7
  }
8
8
  return undefined;
@@ -1,35 +1,35 @@
1
1
  import { unknownToString } from '../../../others/index.mjs';
2
2
  import { isErr } from './ternary-result-is-err.mjs';
3
3
  import { isWarn } from './ternary-result-is-warn.mjs';
4
- /**
5
- * Returns the Ok value or throws if the result is Warn or Err.
6
- *
7
- * @example
8
- *
9
- * ```ts
10
- * const okValue = TernaryResult.ok('ready');
11
- *
12
- * assert.strictEqual(TernaryResult.unwrapThrow(okValue), 'ready');
13
- *
14
- * const throwTest = (): void => {
15
- * TernaryResult.unwrapThrow(TernaryResult.warn('warn', 'warned'));
16
- * };
17
- *
18
- * assert.throws(throwTest, /Expected Ok/u);
19
- * ```
20
- */
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
21
  export const unwrapThrow = (result, toStr = unknownToString) => {
22
22
  if (isErr(result)) {
23
23
  throw new Error(`Expected Ok but got Err: ${toStr(
24
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
24
+
25
25
  result.value)}`);
26
26
  }
27
27
  if (isWarn(result)) {
28
28
  throw new Error(`Expected Ok but got Warn: ${toStr(
29
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
29
+
30
30
  result.warning)}`);
31
31
  }
32
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
32
+
33
33
  return result.value;
34
34
  };
35
35
  //# sourceMappingURL=ternary-result-unwrap-throw.mjs.map