@igorjs/pure-ts 0.7.4 → 0.7.7

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 (143) hide show
  1. package/README.md +39 -745
  2. package/dist/async/cache.d.ts +1 -6
  3. package/dist/async/cache.d.ts.map +1 -1
  4. package/dist/async/cache.js.map +1 -1
  5. package/dist/async/circuit-breaker.d.ts +1 -6
  6. package/dist/async/circuit-breaker.d.ts.map +1 -1
  7. package/dist/async/circuit-breaker.js.map +1 -1
  8. package/dist/async/index.d.ts +56 -12
  9. package/dist/async/index.d.ts.map +1 -1
  10. package/dist/async/index.js +41 -12
  11. package/dist/async/index.js.map +1 -1
  12. package/dist/async/lazy.d.ts +6 -42
  13. package/dist/async/lazy.d.ts.map +1 -1
  14. package/dist/async/lazy.js.map +1 -1
  15. package/dist/async/pool.d.ts +1 -5
  16. package/dist/async/pool.d.ts.map +1 -1
  17. package/dist/async/pool.js +3 -3
  18. package/dist/async/pool.js.map +1 -1
  19. package/dist/async/rate-limiter.d.ts +1 -6
  20. package/dist/async/rate-limiter.d.ts.map +1 -1
  21. package/dist/async/rate-limiter.js.map +1 -1
  22. package/dist/async/retry.d.ts +7 -9
  23. package/dist/async/retry.d.ts.map +1 -1
  24. package/dist/async/retry.js.map +1 -1
  25. package/dist/async/semaphore.d.ts +2 -7
  26. package/dist/async/semaphore.d.ts.map +1 -1
  27. package/dist/async/semaphore.js.map +1 -1
  28. package/dist/async/stream.d.ts +1 -5
  29. package/dist/async/stream.d.ts.map +1 -1
  30. package/dist/async/stream.js +6 -6
  31. package/dist/async/stream.js.map +1 -1
  32. package/dist/async/task-like.d.ts +30 -0
  33. package/dist/async/task-like.d.ts.map +1 -0
  34. package/dist/async/task-like.js +13 -0
  35. package/dist/async/task-like.js.map +1 -0
  36. package/dist/async/task.d.ts +8 -62
  37. package/dist/async/task.d.ts.map +1 -1
  38. package/dist/async/task.js +1 -1
  39. package/dist/async/task.js.map +1 -1
  40. package/dist/async/timer.d.ts +1 -6
  41. package/dist/async/timer.d.ts.map +1 -1
  42. package/dist/async/timer.js +4 -4
  43. package/dist/async/timer.js.map +1 -1
  44. package/dist/client.d.ts +6 -7
  45. package/dist/client.d.ts.map +1 -1
  46. package/dist/client.js +2 -2
  47. package/dist/client.js.map +1 -1
  48. package/dist/core/index.d.ts +21 -9
  49. package/dist/core/index.d.ts.map +1 -1
  50. package/dist/core/index.js +21 -9
  51. package/dist/core/index.js.map +1 -1
  52. package/dist/core/option.d.ts +26 -68
  53. package/dist/core/option.d.ts.map +1 -1
  54. package/dist/core/option.js +7 -20
  55. package/dist/core/option.js.map +1 -1
  56. package/dist/core/pipe.d.ts +13 -0
  57. package/dist/core/pipe.d.ts.map +1 -1
  58. package/dist/core/pipe.js.map +1 -1
  59. package/dist/core/result.d.ts +45 -90
  60. package/dist/core/result.d.ts.map +1 -1
  61. package/dist/core/result.js +9 -65
  62. package/dist/core/result.js.map +1 -1
  63. package/dist/data/adt.d.ts +1 -2
  64. package/dist/data/adt.d.ts.map +1 -1
  65. package/dist/data/codec.d.ts +4 -3
  66. package/dist/data/codec.d.ts.map +1 -1
  67. package/dist/data/codec.js.map +1 -1
  68. package/dist/data/index.d.ts +24 -5
  69. package/dist/data/index.d.ts.map +1 -1
  70. package/dist/data/index.js +11 -3
  71. package/dist/data/index.js.map +1 -1
  72. package/dist/data/internals.d.ts +2 -2
  73. package/dist/data/internals.d.ts.map +1 -1
  74. package/dist/data/list.d.ts +1 -1
  75. package/dist/data/non-empty-list.d.ts +1 -1
  76. package/dist/data/record.d.ts +1 -2
  77. package/dist/data/record.d.ts.map +1 -1
  78. package/dist/data/record.js.map +1 -1
  79. package/dist/data/stable-vec.d.ts +116 -0
  80. package/dist/data/stable-vec.d.ts.map +1 -0
  81. package/dist/data/stable-vec.js +184 -0
  82. package/dist/data/stable-vec.js.map +1 -0
  83. package/dist/index.d.ts +162 -49
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +6 -4
  86. package/dist/index.js.map +1 -1
  87. package/dist/io/compression.d.ts +1 -6
  88. package/dist/io/compression.d.ts.map +1 -1
  89. package/dist/io/compression.js +3 -3
  90. package/dist/io/compression.js.map +1 -1
  91. package/dist/io/crypto.d.ts +1 -5
  92. package/dist/io/crypto.d.ts.map +1 -1
  93. package/dist/io/crypto.js +2 -2
  94. package/dist/io/crypto.js.map +1 -1
  95. package/dist/io/dns.d.ts +3 -7
  96. package/dist/io/dns.d.ts.map +1 -1
  97. package/dist/io/dns.js +3 -3
  98. package/dist/io/dns.js.map +1 -1
  99. package/dist/io/file.d.ts +1 -5
  100. package/dist/io/file.d.ts.map +1 -1
  101. package/dist/io/file.js +13 -13
  102. package/dist/io/file.js.map +1 -1
  103. package/dist/io/index.d.ts +36 -11
  104. package/dist/io/index.d.ts.map +1 -1
  105. package/dist/io/index.js +26 -10
  106. package/dist/io/index.js.map +1 -1
  107. package/dist/io/net.d.ts +1 -6
  108. package/dist/io/net.d.ts.map +1 -1
  109. package/dist/io/net.js +6 -6
  110. package/dist/io/net.js.map +1 -1
  111. package/dist/io/subprocess.d.ts +1 -6
  112. package/dist/io/subprocess.d.ts.map +1 -1
  113. package/dist/io/subprocess.js +4 -4
  114. package/dist/io/subprocess.js.map +1 -1
  115. package/dist/program.d.ts +137 -25
  116. package/dist/program.d.ts.map +1 -1
  117. package/dist/program.js +23 -5
  118. package/dist/program.js.map +1 -1
  119. package/dist/runtime/config.d.ts +4 -5
  120. package/dist/runtime/config.d.ts.map +1 -1
  121. package/dist/runtime/index.d.ts +23 -2
  122. package/dist/runtime/index.d.ts.map +1 -1
  123. package/dist/runtime/index.js +7 -2
  124. package/dist/runtime/index.js.map +1 -1
  125. package/dist/runtime/logger.d.ts +22 -6
  126. package/dist/runtime/logger.d.ts.map +1 -1
  127. package/dist/runtime/logger.js.map +1 -1
  128. package/dist/runtime/platform.d.ts +2 -2
  129. package/dist/runtime/platform.d.ts.map +1 -1
  130. package/dist/runtime/platform.js.map +1 -1
  131. package/dist/runtime/process.d.ts +4 -2
  132. package/dist/runtime/process.d.ts.map +1 -1
  133. package/dist/runtime/process.js.map +1 -1
  134. package/dist/types/error.d.ts +34 -61
  135. package/dist/types/error.d.ts.map +1 -1
  136. package/dist/types/error.js.map +1 -1
  137. package/dist/types/index.d.ts +15 -2
  138. package/dist/types/index.d.ts.map +1 -1
  139. package/dist/types/index.js +4 -2
  140. package/dist/types/index.js.map +1 -1
  141. package/dist/types/nominal.d.ts +1 -3
  142. package/dist/types/nominal.d.ts.map +1 -1
  143. package/package.json +1 -1
@@ -12,20 +12,32 @@
12
12
  * const result = pipe(Ok(42), r => r.map(n => n * 2));
13
13
  * ```
14
14
  */
15
- /** Typed equality comparison. */
15
+ /** Typed equality comparison typeclass. */
16
16
  export { Eq } from "./eq.js";
17
- /** Optics for immutable nested data access and updates. */
17
+ /** Lossless bidirectional transformation between two types. */
18
+ /** Total optic for reading and updating a value that always exists in the source. */
19
+ /** Partial optic for reading and updating a value that may not exist in the source. */
20
+ /** Optic focusing on a variant of a sum type via getOption and reverseGet. */
21
+ /** Optic focusing on multiple targets within a data structure. */
18
22
  export { Iso, Lens, LensOptional, Prism, Traversal } from "./lens.js";
19
- /** Exhaustive pattern matching with compile-time coverage. */
23
+ /** Exhaustive pattern matching builder with compile-time coverage checking. */
20
24
  export { Match } from "./match.js";
21
- /** Option type and constructors for nullable value handling. */
22
- export { None, Option, type OptionMatcher, Some } from "./option.js";
23
- /** Typed ordering and comparison. */
25
+ /** Absent variant of Option, representing no value. */
26
+ /** Discriminated union representing a value that may or may not exist. */
27
+ /** Pattern-match arms for Option.match. */
28
+ /** Present variant constructor: wrap a value in Option. */
29
+ export { None, type NoneVariant, Option, type OptionMatcher, Some, type SomeVariant, } from "./option.js";
30
+ /** Typed ordering and comparison typeclass. */
24
31
  export { Ord } from "./ord.js";
25
- /** Left-to-right function composition and piping. */
32
+ /** Compose functions left-to-right into a new function (point-free). */
33
+ /** Pass a value through a sequence of unary functions left-to-right. */
26
34
  export { flow, pipe } from "./pipe.js";
27
- /** Result type and constructors for error-as-value handling. */
35
+ /** Create a failed Result wrapping an error value. */
36
+ /** Create a successful Result wrapping a value. */
37
+ /** Discriminated union representing success (Ok) or failure (Err). */
38
+ /** Pattern-match arms for Result.match. */
39
+ /** Execute a function in try/catch, returning Result instead of throwing. */
28
40
  export { Err, Ok, Result, type ResultMatcher, tryCatch } from "./result.js";
29
- /** Pure state monad for threading state through computations. */
41
+ /** Pure state monad for threading state through a sequence of computations. */
30
42
  export { State } from "./state.js";
31
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,iCAAiC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,2DAA2D;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtE,8DAA8D;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,gEAAgE;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACrE,qCAAqC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,qDAAqD;AACrD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,gEAAgE;AAChE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5E,iEAAiE;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,2CAA2C;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,+DAA+D;AAC/D,qFAAqF;AACrF,uFAAuF;AACvF,8EAA8E;AAC9E,kEAAkE;AAClE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtE,+EAA+E;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,uDAAuD;AACvD,0EAA0E;AAC1E,2CAA2C;AAC3C,2DAA2D;AAC3D,OAAO,EACL,IAAI,EACJ,KAAK,WAAW,EAChB,MAAM,EACN,KAAK,aAAa,EAClB,IAAI,EACJ,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,+CAA+C;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,wEAAwE;AACxE,wEAAwE;AACxE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,sDAAsD;AACtD,mDAAmD;AACnD,sEAAsE;AACtE,2CAA2C;AAC3C,6EAA6E;AAC7E,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5E,+EAA+E;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -12,20 +12,32 @@
12
12
  * const result = pipe(Ok(42), r => r.map(n => n * 2));
13
13
  * ```
14
14
  */
15
- /** Typed equality comparison. */
15
+ /** Typed equality comparison typeclass. */
16
16
  export { Eq } from "./eq.js";
17
- /** Optics for immutable nested data access and updates. */
17
+ /** Lossless bidirectional transformation between two types. */
18
+ /** Total optic for reading and updating a value that always exists in the source. */
19
+ /** Partial optic for reading and updating a value that may not exist in the source. */
20
+ /** Optic focusing on a variant of a sum type via getOption and reverseGet. */
21
+ /** Optic focusing on multiple targets within a data structure. */
18
22
  export { Iso, Lens, LensOptional, Prism, Traversal } from "./lens.js";
19
- /** Exhaustive pattern matching with compile-time coverage. */
23
+ /** Exhaustive pattern matching builder with compile-time coverage checking. */
20
24
  export { Match } from "./match.js";
21
- /** Option type and constructors for nullable value handling. */
22
- export { None, Option, Some } from "./option.js";
23
- /** Typed ordering and comparison. */
25
+ /** Absent variant of Option, representing no value. */
26
+ /** Discriminated union representing a value that may or may not exist. */
27
+ /** Pattern-match arms for Option.match. */
28
+ /** Present variant constructor: wrap a value in Option. */
29
+ export { None, Option, Some, } from "./option.js";
30
+ /** Typed ordering and comparison typeclass. */
24
31
  export { Ord } from "./ord.js";
25
- /** Left-to-right function composition and piping. */
32
+ /** Compose functions left-to-right into a new function (point-free). */
33
+ /** Pass a value through a sequence of unary functions left-to-right. */
26
34
  export { flow, pipe } from "./pipe.js";
27
- /** Result type and constructors for error-as-value handling. */
35
+ /** Create a failed Result wrapping an error value. */
36
+ /** Create a successful Result wrapping a value. */
37
+ /** Discriminated union representing success (Ok) or failure (Err). */
38
+ /** Pattern-match arms for Result.match. */
39
+ /** Execute a function in try/catch, returning Result instead of throwing. */
28
40
  export { Err, Ok, Result, tryCatch } from "./result.js";
29
- /** Pure state monad for threading state through computations. */
41
+ /** Pure state monad for threading state through a sequence of computations. */
30
42
  export { State } from "./state.js";
31
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,iCAAiC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,2DAA2D;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtE,8DAA8D;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,gEAAgE;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAsB,IAAI,EAAE,MAAM,aAAa,CAAC;AACrE,qCAAqC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,qDAAqD;AACrD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,gEAAgE;AAChE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAsB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5E,iEAAiE;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,2CAA2C;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,+DAA+D;AAC/D,qFAAqF;AACrF,uFAAuF;AACvF,8EAA8E;AAC9E,kEAAkE;AAClE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtE,+EAA+E;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,uDAAuD;AACvD,0EAA0E;AAC1E,2CAA2C;AAC3C,2DAA2D;AAC3D,OAAO,EACL,IAAI,EAEJ,MAAM,EAEN,IAAI,GAEL,MAAM,aAAa,CAAC;AACrB,+CAA+C;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,wEAAwE;AACxE,wEAAwE;AACxE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,sDAAsD;AACtD,mDAAmD;AACnD,sEAAsE;AACtE,2CAA2C;AAC3C,6EAA6E;AAC7E,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAsB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5E,+EAA+E;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -5,26 +5,14 @@
5
5
  * with a chainable monad. This forces callers to handle absence rather than
6
6
  * silently propagating `undefined` through pipelines.
7
7
  *
8
- * Two concrete classes (`SomeImpl`, `NoneImpl`) implement `OptionMethods`.
9
- * `None` is a singleton to avoid unnecessary allocations.
8
+ * The public API exposes two variant interfaces (`SomeVariant`, `NoneVariant`)
9
+ * whose union forms `Option<T>`. Private implementation classes back them at
10
+ * runtime. `None` is a singleton to avoid unnecessary allocations.
10
11
  *
11
12
  * The `Option` const/type merge provides `Option.fromNullable()` in value
12
13
  * position and `Option<T>` in type position, paralleling `Result`.
13
14
  */
14
15
  import type { Result } from "./result.js";
15
- /**
16
- * A discriminated union representing a value that may or may not exist.
17
- *
18
- * `Some<T>` wraps a present value; `None` signals absence. Use this instead
19
- * of `null` / `undefined` to make optionality explicit and chainable.
20
- *
21
- * @example
22
- * ```ts
23
- * const name: Option<string> = fromNullable(input);
24
- * const upper = name.map(s => s.toUpperCase()).unwrapOr('ANON');
25
- * ```
26
- */
27
- export type Option<T> = SomeImpl<T> | NoneImpl<T>;
28
16
  /** Pattern-match arms for {@link Option.match}. */
29
17
  export interface OptionMatcher<T, U> {
30
18
  /** Handler for the Some variant. */
@@ -32,65 +20,23 @@ export interface OptionMatcher<T, U> {
32
20
  /** Handler for the None variant. */
33
21
  readonly None: () => U;
34
22
  }
35
- /**
36
- * Shared contract for both `Some` and `None` variants.
37
- *
38
- * Ensures both classes expose identical method signatures so callers can
39
- * chain operations without narrowing first. `None` methods are no-ops
40
- * that propagate absence.
41
- */
42
- interface OptionMethods<T> {
43
- /** Transform the value if present. */
44
- map<U>(fn: (value: T) => U): Option<U>;
45
- /** Chain into a dependent computation that may produce None. */
46
- flatMap<U>(fn: (value: T) => Option<U>): Option<U>;
47
- /** Keep the value only if the predicate holds. */
48
- filter(predicate: (value: T) => boolean): Option<T>;
49
- /** Run a side-effect on the value without altering the Option. */
50
- tap(fn: (value: T) => void): Option<T>;
51
- /** Extract the value or throw if None. */
52
- unwrap(): T;
53
- /** Extract the value or return the fallback. */
54
- unwrapOr(_fallback: T): T;
55
- /** Extract the value or compute a fallback. */
56
- unwrapOrElse(_fn: () => T): T;
57
- /** Pattern match on Some or None. */
58
- match<U>(m: OptionMatcher<T, U>): U;
59
- /** Convert to Result: Some becomes Ok, None becomes Err with the given error. */
60
- toResult<E>(_error: E): Result<T, E>;
61
- /** Pair this value with another Option's value. */
62
- zip<U>(other: Option<U>): Option<[T, U]>;
63
- /** Apply a wrapped function to this value. */
64
- ap<U>(fnOption: Option<(value: T) => U>): Option<U>;
65
- /** Return this Option if Some, otherwise the other. */
66
- or(_other: Option<T>): Option<T>;
67
- /** Serialize to a JSON-safe tagged object. */
68
- toJSON(): {
69
- tag: "Some";
70
- value: T;
71
- } | {
72
- tag: "None";
73
- };
74
- /** Human-readable string representation. */
75
- toString(): string;
76
- }
77
23
  /**
78
24
  * The present variant of {@link Option}.
79
25
  *
80
26
  * Wraps a value of type `T`. Provides monadic chaining (`map`, `flatMap`),
81
27
  * safe extraction (`unwrap`, `unwrapOr`), and pattern matching (`match`).
82
28
  *
83
- * Construct via the {@link Some} factory rather than `new SomeImpl(...)`.
29
+ * Construct via the {@link Some} factory rather than instantiating directly.
84
30
  */
85
- export declare class SomeImpl<T> implements OptionMethods<T> {
86
- readonly value: T;
31
+ export interface SomeVariant<T> {
87
32
  /** Discriminant tag for pattern matching. */
88
33
  readonly tag: "Some";
89
- constructor(/** The wrapped value. */ value: T);
34
+ /** The wrapped value. */
35
+ readonly value: T;
90
36
  /** Whether this is a Some variant. Always true. */
91
- get isSome(): true;
37
+ readonly isSome: true;
92
38
  /** Whether this is a None variant. Always false. */
93
- get isNone(): false;
39
+ readonly isNone: false;
94
40
  /** Apply `fn` to the value, returning a new `Some`. */
95
41
  map<U>(fn: (value: T) => U): Option<U>;
96
42
  /** Chain into a dependent computation that may produce `None`. */
@@ -134,15 +80,15 @@ export declare class SomeImpl<T> implements OptionMethods<T> {
134
80
  * All value-channel operations (`map`, `flatMap`, `unwrap`) short-circuit,
135
81
  * preserving the `None`.
136
82
  *
137
- * Use the singleton {@link None} constant rather than `new NoneImpl()`.
83
+ * Use the singleton {@link None} constant rather than instantiating directly.
138
84
  */
139
- export declare class NoneImpl<T> implements OptionMethods<T> {
85
+ export interface NoneVariant<T> {
140
86
  /** Discriminant tag for pattern matching. */
141
87
  readonly tag: "None";
142
88
  /** Whether this is a Some variant. Always false. */
143
- get isSome(): false;
89
+ readonly isSome: false;
144
90
  /** Whether this is a None variant. Always true. */
145
- get isNone(): true;
91
+ readonly isNone: true;
146
92
  /** No-op on `None`. */
147
93
  map<U>(_fn: (value: T) => U): Option<U>;
148
94
  /** No-op on `None`. */
@@ -174,6 +120,19 @@ export declare class NoneImpl<T> implements OptionMethods<T> {
174
120
  /** Human-readable string representation. */
175
121
  toString(): string;
176
122
  }
123
+ /**
124
+ * A discriminated union representing a value that may or may not exist.
125
+ *
126
+ * `Some<T>` wraps a present value; `None` signals absence. Use this instead
127
+ * of `null` / `undefined` to make optionality explicit and chainable.
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * const name: Option<string> = fromNullable(input);
132
+ * const upper = name.map(s => s.toUpperCase()).unwrapOr('ANON');
133
+ * ```
134
+ */
135
+ export type Option<T> = SomeVariant<T> | NoneVariant<T>;
177
136
  /**
178
137
  * Wrap a value in `Some`.
179
138
  *
@@ -237,5 +196,4 @@ export declare const Option: {
237
196
  /** Type guard for Option values. */
238
197
  readonly is: (value: unknown) => value is Option<unknown>;
239
198
  };
240
- export {};
241
199
  //# sourceMappingURL=option.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../../src/core/option.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../../src/core/option.ts"],"names":[],"mappings":"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"}
@@ -5,22 +5,16 @@
5
5
  * with a chainable monad. This forces callers to handle absence rather than
6
6
  * silently propagating `undefined` through pipelines.
7
7
  *
8
- * Two concrete classes (`SomeImpl`, `NoneImpl`) implement `OptionMethods`.
9
- * `None` is a singleton to avoid unnecessary allocations.
8
+ * The public API exposes two variant interfaces (`SomeVariant`, `NoneVariant`)
9
+ * whose union forms `Option<T>`. Private implementation classes back them at
10
+ * runtime. `None` is a singleton to avoid unnecessary allocations.
10
11
  *
11
12
  * The `Option` const/type merge provides `Option.fromNullable()` in value
12
13
  * position and `Option<T>` in type position, paralleling `Result`.
13
14
  */
14
15
  import { Err, Ok } from "./result.js";
15
- /**
16
- * The present variant of {@link Option}.
17
- *
18
- * Wraps a value of type `T`. Provides monadic chaining (`map`, `flatMap`),
19
- * safe extraction (`unwrap`, `unwrapOr`), and pattern matching (`match`).
20
- *
21
- * Construct via the {@link Some} factory rather than `new SomeImpl(...)`.
22
- */
23
- export class SomeImpl {
16
+ /** @internal Runtime backing class for {@link SomeVariant}. */
17
+ class SomeImpl {
24
18
  value;
25
19
  /** Discriminant tag for pattern matching. */
26
20
  tag = "Some";
@@ -98,15 +92,8 @@ export class SomeImpl {
98
92
  return `Some(${String(this.value)})`;
99
93
  }
100
94
  }
101
- /**
102
- * The absent variant of {@link Option}.
103
- *
104
- * All value-channel operations (`map`, `flatMap`, `unwrap`) short-circuit,
105
- * preserving the `None`.
106
- *
107
- * Use the singleton {@link None} constant rather than `new NoneImpl()`.
108
- */
109
- export class NoneImpl {
95
+ /** @internal Runtime backing class for {@link NoneVariant}. */
96
+ class NoneImpl {
110
97
  /** Discriminant tag for pattern matching. */
111
98
  tag = "None";
112
99
  /** Whether this is a Some variant. Always false. */
@@ -1 +1 @@
1
- {"version":3,"file":"option.js","sourceRoot":"","sources":["../../src/core/option.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"option.js","sourceRoot":"","sources":["../../src/core/option.ts"],"names":[],"mappings":"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"}
@@ -32,13 +32,21 @@
32
32
  */
33
33
  /** Pass a value through a sequence of unary functions left-to-right. */
34
34
  export declare function pipe<A>(a: A): A;
35
+ /** Pipe a value through 1 function. */
35
36
  export declare function pipe<A, B>(a: A, ab: (a: A) => B): B;
37
+ /** Pipe a value through 2 functions. */
36
38
  export declare function pipe<A, B, C>(a: A, ab: (a: A) => B, bc: (b: B) => C): C;
39
+ /** Pipe a value through 3 functions. */
37
40
  export declare function pipe<A, B, C, D>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): D;
41
+ /** Pipe a value through 4 functions. */
38
42
  export declare function pipe<A, B, C, D, E>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E): E;
43
+ /** Pipe a value through 5 functions. */
39
44
  export declare function pipe<A, B, C, D, E, F>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F): F;
45
+ /** Pipe a value through 6 functions. */
40
46
  export declare function pipe<A, B, C, D, E, F, G>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G): G;
47
+ /** Pipe a value through 7 functions. */
41
48
  export declare function pipe<A, B, C, D, E, F, G, H>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H): H;
49
+ /** Pipe a value through 8 functions. */
42
50
  export declare function pipe<A, B, C, D, E, F, G, H, I>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I): I;
43
51
  /**
44
52
  * Point-free function composition. Left-to-right.
@@ -54,9 +62,14 @@ export declare function pipe<A, B, C, D, E, F, G, H, I>(a: A, ab: (a: A) => B, b
54
62
  */
55
63
  /** Compose functions left-to-right, returning a new function. */
56
64
  export declare function flow<A, B>(ab: (a: A) => B): (a: A) => B;
65
+ /** Compose 2 functions left-to-right. */
57
66
  export declare function flow<A, B, C>(ab: (a: A) => B, bc: (b: B) => C): (a: A) => C;
67
+ /** Compose 3 functions left-to-right. */
58
68
  export declare function flow<A, B, C, D>(ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): (a: A) => D;
69
+ /** Compose 4 functions left-to-right. */
59
70
  export declare function flow<A, B, C, D, E>(ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E): (a: A) => E;
71
+ /** Compose 5 functions left-to-right. */
60
72
  export declare function flow<A, B, C, D, E, F>(ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F): (a: A) => F;
73
+ /** Compose 6 functions left-to-right. */
61
74
  export declare function flow<A, B, C, D, E, F, G>(ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G): (a: A) => G;
62
75
  //# sourceMappingURL=pipe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../src/core/pipe.ts"],"names":[],"mappings":"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E,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACtC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../src/core/pipe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wEAAwE;AACxE,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACjC,uCAAuC;AACvC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrD,wCAAwC;AACxC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzE,wCAAwC;AACxC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7F,wCAAwC;AACxC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChC,CAAC,EAAE,CAAC,EACJ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC;AACL,wCAAwC;AACxC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACnC,CAAC,EAAE,CAAC,EACJ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC;AACL,wCAAwC;AACxC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACtC,CAAC,EAAE,CAAC,EACJ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC;AACL,wCAAwC;AACxC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACzC,CAAC,EAAE,CAAC,EACJ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC;AACL,wCAAwC;AACxC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5C,CAAC,EAAE,CAAC,EACJ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC;AAQL;;;;;;;;;;;GAWG;AACH,iEAAiE;AACjE,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACzD,yCAAyC;AACzC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC7E,yCAAyC;AACzC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACjG,yCAAyC;AACzC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,yCAAyC;AACzC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACnC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,yCAAyC;AACzC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACtC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACd,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/core/pipe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAqEH,MAAM,UAAU,IAAI,CAAC,OAAgB,EAAE,GAAG,GAAkC;IAC1E,IAAI,MAAM,GAAG,OAAO,CAAC;IACrB,sFAAsF;IACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAuCD,MAAM,UAAU,IAAI,CAAC,GAAG,GAAkC;IACxD,OAAO,OAAO,CAAC,EAAE;QACf,IAAI,MAAM,GAAG,OAAO,CAAC;QACrB,sFAAsF;QACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/core/pipe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA6EH,MAAM,UAAU,IAAI,CAAC,OAAgB,EAAE,GAAG,GAAkC;IAC1E,IAAI,MAAM,GAAG,OAAO,CAAC;IACrB,sFAAsF;IACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AA4CD,MAAM,UAAU,IAAI,CAAC,GAAG,GAAkC;IACxD,OAAO,OAAO,CAAC,EAAE;QACf,IAAI,MAAM,GAAG,OAAO,CAAC;QACrB,sFAAsF;QACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -5,28 +5,15 @@
5
5
  * `Result<T, E>` instead of throwing. This eliminates invisible control
6
6
  * flow (try/catch) and makes error paths explicit in the type system.
7
7
  *
8
- * Two concrete classes (`OkImpl`, `ErrImpl`) share a common interface
9
- * (`ResultMethods`). Methods live on prototypes so instances carry only
10
- * their payload, keeping GC pressure low.
8
+ * Two public interfaces (`Ok`, `Err`) define the contract. Module-private
9
+ * classes (`OkImpl`, `ErrImpl`) provide the implementation. Methods live
10
+ * on prototypes so instances carry only their payload, keeping GC pressure
11
+ * low.
11
12
  *
12
13
  * The `Result` const/type merge lets callers use `Result.tryCatch()` in
13
14
  * value position and `Result<T, E>` in type position, mirroring Rust.
14
15
  */
15
16
  import type { Option } from "./option.js";
16
- /**
17
- * A discriminated union representing either success (`Ok<T>`) or failure (`Err<E>`).
18
- *
19
- * Result is the primary error-handling primitive in pure-ts: errors are values,
20
- * never thrown. Use `.isOk` / `.isErr` to narrow, or `.match()` for exhaustive
21
- * pattern matching.
22
- *
23
- * @example
24
- * ```ts
25
- * const parsed: Result<number, string> = parseAge(input);
26
- * const age = parsed.unwrapOr(0);
27
- * ```
28
- */
29
- export type Result<T, E> = OkImpl<T, E> | ErrImpl<T, E>;
30
17
  /** Pattern-match arms for {@link Result.match}. */
31
18
  export interface ResultMatcher<T, E, U> {
32
19
  /** Handler for the Ok variant. */
@@ -34,84 +21,39 @@ export interface ResultMatcher<T, E, U> {
34
21
  /** Handler for the Err variant. */
35
22
  readonly Err: (error: E) => U;
36
23
  }
37
- /**
38
- * Shared contract for both `Ok` and `Err` variants.
39
- *
40
- * This interface exists so `OkImpl` and `ErrImpl` are guaranteed to expose
41
- * the same set of methods, enabling exhaustive pattern matching and safe
42
- * narrowing via `.isOk` / `.isErr` without casting.
43
- */
44
- interface ResultMethods<T, E> {
45
- /** Transform the success value. */
46
- map<U>(fn: (value: T) => U): Result<U, E>;
47
- /** Transform the error value. */
48
- mapErr<F>(_fn: (error: E) => F): Result<T, F>;
49
- /** Chain into a dependent computation that may fail. */
50
- flatMap<U>(fn: (value: T) => Result<U, E>): Result<U, E>;
51
- /** Run a side-effect on the success value without altering the Result. */
52
- tap(fn: (value: T) => void): Result<T, E>;
53
- /** Run a side-effect on the error without altering the Result. */
54
- tapErr(_fn: (error: E) => void): Result<T, E>;
55
- /** Extract the value or throw if Err. */
56
- unwrap(): T;
57
- /** Extract the value or return the fallback. */
58
- unwrapOr(_fallback: T): T;
59
- /** Extract the value or compute a fallback from the error. */
60
- unwrapOrElse(_fn: (error: E) => T): T;
61
- /** Extract the error or throw if Ok. */
62
- unwrapErr(): never | E;
63
- /** Pattern match on Ok or Err. */
64
- match<U>(m: ResultMatcher<T, E, U>): U;
65
- /** Convert to Option: Ok becomes Some, Err becomes None. */
66
- toOption(): Option<T>;
67
- /** Pair this value with another Result's value. */
68
- zip<U>(other: Result<U, E>): Result<[T, U], E>;
69
- /** Apply a wrapped function to this value. */
70
- ap<U>(fnResult: Result<(value: T) => U, E>): Result<U, E>;
71
- /** Serialize to a JSON-safe tagged object. */
72
- toJSON(): {
73
- tag: "Ok";
74
- value: T;
75
- } | {
76
- tag: "Err";
77
- error: E;
78
- };
79
- /** Human-readable string representation. */
80
- toString(): string;
81
- }
82
24
  /**
83
25
  * The success variant of {@link Result}.
84
26
  *
85
27
  * Wraps a value of type `T` and provides monadic chaining (`map`, `flatMap`),
86
28
  * safe extraction (`unwrap`, `unwrapOr`), and pattern matching (`match`).
87
29
  *
88
- * Construct via the {@link Ok} factory rather than `new OkImpl(...)`.
30
+ * Construct via the {@link Ok} factory: `Ok(42)`.
89
31
  */
90
- export declare class OkImpl<T, E> implements ResultMethods<T, E> {
91
- readonly value: T;
32
+ export interface Ok<T, E> {
92
33
  /** Discriminant tag for pattern matching. */
93
34
  readonly tag: "Ok";
94
- constructor(/** The wrapped success value. */ value: T);
95
- /** Whether this is an Ok variant. Always true. */
96
- get isOk(): true;
97
- /** Whether this is an Err variant. Always false. */
98
- get isErr(): false;
35
+ /** Whether this is an Ok variant. Always `true`. */
36
+ readonly isOk: true;
37
+ /** Whether this is an Err variant. Always `false`. */
38
+ readonly isErr: false;
39
+ /** The wrapped success value. */
40
+ readonly value: T;
99
41
  /** Apply `fn` to the success value, returning a new `Ok`. */
100
42
  map<U>(fn: (value: T) => U): Result<U, E>;
101
43
  /** No-op on `Ok`: the error channel is empty. */
102
- mapErr<F>(_fn: (error: E) => F): Result<T, F>;
44
+ mapErr<F>(fn: (error: E) => F): Result<T, F>;
103
45
  /** Chain into a dependent computation that may fail. */
104
46
  flatMap<U>(fn: (value: T) => Result<U, E>): Result<U, E>;
105
47
  /** Run a side-effect on the success value without altering the Result. */
106
48
  tap(fn: (value: T) => void): Result<T, E>;
107
49
  /** No-op on `Ok`: no error to tap. */
108
- tapErr(_fn: (error: E) => void): Result<T, E>;
50
+ tapErr(fn: (error: E) => void): Result<T, E>;
109
51
  /** Extract the success value. */
110
52
  unwrap(): T;
111
53
  /** Return the success value, ignoring the fallback. */
112
- unwrapOr(_fallback: T): T;
54
+ unwrapOr(fallback: T): T;
113
55
  /** Return the success value, ignoring the recovery function. */
114
- unwrapOrElse(_fn: (error: E) => T): T;
56
+ unwrapOrElse(fn: (error: E) => T): T;
115
57
  /** Throws: there is no error to extract from `Ok`. */
116
58
  unwrapErr(): never;
117
59
  /** Exhaustively handle both variants. */
@@ -141,25 +83,25 @@ export declare class OkImpl<T, E> implements ResultMethods<T, E> {
141
83
  * Wraps an error of type `E`. All value-channel operations (`map`, `flatMap`,
142
84
  * `unwrap`) short-circuit, preserving the error.
143
85
  *
144
- * Construct via the {@link Err} factory rather than `new ErrImpl(...)`.
86
+ * Construct via the {@link Err} factory: `Err('not found')`.
145
87
  */
146
- export declare class ErrImpl<T, E> implements ResultMethods<T, E> {
147
- readonly error: E;
88
+ export interface Err<T, E> {
148
89
  /** Discriminant tag for pattern matching. */
149
90
  readonly tag: "Err";
150
- constructor(/** The wrapped error value. */ error: E);
151
- /** Whether this is an Ok variant. Always false. */
152
- get isOk(): false;
153
- /** Whether this is an Err variant. Always true. */
154
- get isErr(): true;
91
+ /** Whether this is an Ok variant. Always `false`. */
92
+ readonly isOk: false;
93
+ /** Whether this is an Err variant. Always `true`. */
94
+ readonly isErr: true;
95
+ /** The wrapped error value. */
96
+ readonly error: E;
155
97
  /** No-op on `Err`: the value channel is empty. */
156
- map<U>(_fn: (value: T) => U): Result<U, E>;
98
+ map<U>(fn: (value: T) => U): Result<U, E>;
157
99
  /** Apply `fn` to the error, returning a new `Err`. */
158
100
  mapErr<F>(fn: (error: E) => F): Result<T, F>;
159
101
  /** Short-circuit: propagate this `Err` without calling `fn`. */
160
- flatMap<U>(_fn: (value: T) => Result<U, E>): Result<U, E>;
102
+ flatMap<U>(fn: (value: T) => Result<U, E>): Result<U, E>;
161
103
  /** No-op on `Err`: no value to tap. */
162
- tap(_fn: (value: T) => void): Result<T, E>;
104
+ tap(fn: (value: T) => void): Result<T, E>;
163
105
  /** Run a side-effect on the error without altering the Result. */
164
106
  tapErr(fn: (error: E) => void): Result<T, E>;
165
107
  /** Throws: there is no success value to extract from `Err`. */
@@ -175,9 +117,9 @@ export declare class ErrImpl<T, E> implements ResultMethods<T, E> {
175
117
  /** Convert to `None` (the success value is absent). */
176
118
  toOption(): Option<T>;
177
119
  /** Short-circuit: propagate this `Err`. */
178
- zip<U>(_other: Result<U, E>): Result<[T, U], E>;
120
+ zip<U>(other: Result<U, E>): Result<[T, U], E>;
179
121
  /** Short-circuit: propagate this `Err`. */
180
- ap<U>(_fnResult: Result<(value: T) => U, E>): Result<U, E>;
122
+ ap<U>(fnResult: Result<(value: T) => U, E>): Result<U, E>;
181
123
  /** Serialize as `{ tag: 'Err', error: E }`. */
182
124
  toJSON(): {
183
125
  tag: "Err";
@@ -186,10 +128,24 @@ export declare class ErrImpl<T, E> implements ResultMethods<T, E> {
186
128
  /** Human-readable string representation. */
187
129
  toString(): string;
188
130
  }
131
+ /**
132
+ * A discriminated union representing either success (`Ok<T>`) or failure (`Err<E>`).
133
+ *
134
+ * Result is the primary error-handling primitive in pure-ts: errors are values,
135
+ * never thrown. Use `.isOk` / `.isErr` to narrow, or `.match()` for exhaustive
136
+ * pattern matching.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * const parsed: Result<number, string> = parseAge(input);
141
+ * const age = parsed.unwrapOr(0);
142
+ * ```
143
+ */
144
+ export type Result<T, E> = Ok<T, E> | Err<T, E>;
189
145
  /** Widen the value-type of an Err result. Returns Result<never, E>. */
190
- export declare const castErr: <T, E>(r: ErrImpl<T, E>) => Result<never, E>;
146
+ export declare const castErr: <T, E>(r: Err<T, E>) => Result<never, E>;
191
147
  /** Widen the error-type of an Ok result. Returns Result<T, never>. */
192
- export declare const castOk: <T, E>(r: OkImpl<T, E>) => Result<T, never>;
148
+ export declare const castOk: <T, E>(r: Ok<T, E>) => Result<T, never>;
193
149
  /**
194
150
  * Create a successful {@link Result} wrapping `value`.
195
151
  *
@@ -261,5 +217,4 @@ export declare const Result: {
261
217
  /** Type guard for Result values. */
262
218
  readonly is: (value: unknown) => value is Result<unknown, unknown>;
263
219
  };
264
- export {};
265
220
  //# sourceMappingURL=result.d.ts.map