@nlozgachev/pipekit 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 (52) hide show
  1. package/README.md +18 -13
  2. package/esm/src/Composition/flip.js +2 -2
  3. package/esm/src/Composition/fn.js +1 -1
  4. package/esm/src/Composition/tap.js +1 -1
  5. package/esm/src/Core/Arr.js +4 -4
  6. package/esm/src/Core/Option.js +13 -22
  7. package/esm/src/Core/RemoteData.js +9 -13
  8. package/esm/src/Core/Result.js +12 -21
  9. package/esm/src/Core/Task.js +26 -23
  10. package/esm/src/Core/TaskOption.js +8 -6
  11. package/esm/src/Core/TaskResult.js +10 -6
  12. package/esm/src/Core/TaskValidation.js +12 -8
  13. package/esm/src/Core/These.js +6 -6
  14. package/esm/src/Core/Validation.js +42 -43
  15. package/package.json +1 -1
  16. package/script/src/Composition/flip.js +2 -2
  17. package/script/src/Composition/fn.js +1 -1
  18. package/script/src/Composition/tap.js +1 -1
  19. package/script/src/Core/Arr.js +4 -4
  20. package/script/src/Core/Option.js +13 -22
  21. package/script/src/Core/RemoteData.js +9 -13
  22. package/script/src/Core/Result.js +12 -21
  23. package/script/src/Core/Task.js +26 -23
  24. package/script/src/Core/TaskOption.js +8 -6
  25. package/script/src/Core/TaskResult.js +10 -6
  26. package/script/src/Core/TaskValidation.js +12 -8
  27. package/script/src/Core/These.js +6 -6
  28. package/script/src/Core/Validation.js +42 -43
  29. package/types/src/Composition/flip.d.ts +2 -2
  30. package/types/src/Composition/fn.d.ts +1 -1
  31. package/types/src/Composition/pipe.d.ts +1 -1
  32. package/types/src/Composition/tap.d.ts +1 -1
  33. package/types/src/Composition/uncurry.d.ts +3 -3
  34. package/types/src/Core/Arr.d.ts +4 -4
  35. package/types/src/Core/Option.d.ts +14 -23
  36. package/types/src/Core/Option.d.ts.map +1 -1
  37. package/types/src/Core/RemoteData.d.ts +9 -13
  38. package/types/src/Core/RemoteData.d.ts.map +1 -1
  39. package/types/src/Core/Result.d.ts +12 -21
  40. package/types/src/Core/Result.d.ts.map +1 -1
  41. package/types/src/Core/Task.d.ts +35 -32
  42. package/types/src/Core/Task.d.ts.map +1 -1
  43. package/types/src/Core/TaskOption.d.ts +1 -1
  44. package/types/src/Core/TaskOption.d.ts.map +1 -1
  45. package/types/src/Core/TaskResult.d.ts +1 -1
  46. package/types/src/Core/TaskResult.d.ts.map +1 -1
  47. package/types/src/Core/TaskValidation.d.ts +10 -6
  48. package/types/src/Core/TaskValidation.d.ts.map +1 -1
  49. package/types/src/Core/These.d.ts +6 -6
  50. package/types/src/Core/These.d.ts.map +1 -1
  51. package/types/src/Core/Validation.d.ts +38 -42
  52. package/types/src/Core/Validation.d.ts.map +1 -1
@@ -2,23 +2,23 @@ import { Result } from "./Result.js";
2
2
  export var These;
3
3
  (function (These) {
4
4
  /**
5
- * Creates a These holding only an error/warning (no success value).
5
+ * Creates a These holding only a success value (no error).
6
6
  *
7
7
  * @example
8
8
  * ```ts
9
- * These.err("Something went wrong");
9
+ * These.ok(42);
10
10
  * ```
11
11
  */
12
- These.err = (error) => Result.err(error);
12
+ These.ok = (value) => Result.ok(value);
13
13
  /**
14
- * Creates a These holding only a success value (no error).
14
+ * Creates a These holding only an error/warning (no success value).
15
15
  *
16
16
  * @example
17
17
  * ```ts
18
- * These.ok(42);
18
+ * These.err("Something went wrong");
19
19
  * ```
20
20
  */
21
- These.ok = (value) => Result.ok(value);
21
+ These.err = (error) => Result.err(error);
22
22
  /**
23
23
  * Creates a These holding both an error/warning and a success value.
24
24
  *
@@ -6,56 +6,55 @@ export var Validation;
6
6
  *
7
7
  * @example
8
8
  * ```ts
9
- * Validation.of(42); // Valid(42)
9
+ * Validation.valid(42); // Valid(42)
10
10
  * ```
11
11
  */
12
- Validation.of = (value) => ({
12
+ Validation.valid = (value) => ({
13
13
  kind: "Valid",
14
14
  value,
15
15
  });
16
16
  /**
17
- * Creates a valid Validation with the given value.
18
- */
19
- Validation.toValid = (value) => ({ kind: "Valid", value });
20
- /**
21
- * Type guard that checks if a Validation is valid.
17
+ * Creates an invalid Validation from a single error.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * Validation.invalid("Invalid input");
22
+ * ```
22
23
  */
23
- Validation.isValid = (data) => data.kind === "Valid";
24
+ Validation.invalid = (error) => ({
25
+ kind: "Invalid",
26
+ errors: [error],
27
+ });
24
28
  /**
25
- * Creates an invalid Validation with the given errors.
29
+ * Creates an invalid Validation from multiple errors.
26
30
  *
27
31
  * @example
28
32
  * ```ts
29
- * Validation.toInvalid(["Email is invalid", "Password too short"]);
33
+ * Validation.invalidAll(["Invalid input"]);
30
34
  * ```
31
35
  */
32
- Validation.toInvalid = (errors) => ({
36
+ Validation.invalidAll = (errors) => ({
33
37
  kind: "Invalid",
34
38
  errors,
35
39
  });
36
40
  /**
37
- * Type guard that checks if a Validation is invalid.
41
+ * Type guard that checks if a Validation is valid.
38
42
  */
39
- Validation.isInvalid = (data) => data.kind === "Invalid";
43
+ Validation.isValid = (data) => data.kind === "Valid";
40
44
  /**
41
- * Creates an invalid Validation from a single error.
42
- *
43
- * @example
44
- * ```ts
45
- * Validation.fail("Invalid input");
46
- * ```
45
+ * Type guard that checks if a Validation is invalid.
47
46
  */
48
- Validation.fail = (error) => Validation.toInvalid([error]);
47
+ Validation.isInvalid = (data) => data.kind === "Invalid";
49
48
  /**
50
49
  * Transforms the success value inside a Validation.
51
50
  *
52
51
  * @example
53
52
  * ```ts
54
- * pipe(Validation.of(5), Validation.map(n => n * 2)); // Valid(10)
55
- * pipe(Validation.fail("oops"), Validation.map(n => n * 2)); // Invalid(["oops"])
53
+ * pipe(Validation.valid(5), Validation.map(n => n * 2)); // Valid(10)
54
+ * pipe(Validation.invalid("oops"), Validation.map(n => n * 2)); // Invalid(["oops"])
56
55
  * ```
57
56
  */
58
- Validation.map = (f) => (data) => Validation.isValid(data) ? Validation.of(f(data.value)) : data;
57
+ Validation.map = (f) => (data) => Validation.isValid(data) ? Validation.valid(f(data.value)) : data;
59
58
  /**
60
59
  * Chains Validation computations. If the first is Valid, passes the value to f.
61
60
  * If the first is Invalid, propagates the errors.
@@ -65,10 +64,10 @@ export var Validation;
65
64
  * @example
66
65
  * ```ts
67
66
  * const validatePositive = (n: number): Validation<string, number> =>
68
- * n > 0 ? Validation.of(n) : Validation.fail("Must be positive");
67
+ * n > 0 ? Validation.valid(n) : Validation.invalid("Must be positive");
69
68
  *
70
- * pipe(Validation.of(5), Validation.chain(validatePositive)); // Valid(5)
71
- * pipe(Validation.of(-1), Validation.chain(validatePositive)); // Invalid(["Must be positive"])
69
+ * pipe(Validation.valid(5), Validation.chain(validatePositive)); // Valid(5)
70
+ * pipe(Validation.valid(-1), Validation.chain(validatePositive)); // Invalid(["Must be positive"])
72
71
  * ```
73
72
  */
74
73
  Validation.chain = (f) => (data) => Validation.isValid(data) ? f(data.value) : data;
@@ -80,26 +79,26 @@ export var Validation;
80
79
  * ```ts
81
80
  * const add = (a: number) => (b: number) => a + b;
82
81
  * pipe(
83
- * Validation.of(add),
84
- * Validation.ap(Validation.of(5)),
85
- * Validation.ap(Validation.of(3))
82
+ * Validation.valid(add),
83
+ * Validation.ap(Validation.valid(5)),
84
+ * Validation.ap(Validation.valid(3))
86
85
  * ); // Valid(8)
87
86
  *
88
87
  * pipe(
89
- * Validation.of(add),
90
- * Validation.ap(Validation.fail<string, number>("bad a")),
91
- * Validation.ap(Validation.fail<string, number>("bad b"))
88
+ * Validation.valid(add),
89
+ * Validation.ap(Validation.invalid<string, number>("bad a")),
90
+ * Validation.ap(Validation.invalid<string, number>("bad b"))
92
91
  * ); // Invalid(["bad a", "bad b"])
93
92
  * ```
94
93
  */
95
94
  Validation.ap = (arg) => (data) => {
96
95
  if (Validation.isValid(data) && Validation.isValid(arg))
97
- return Validation.of(data.value(arg.value));
96
+ return Validation.valid(data.value(arg.value));
98
97
  const errors = [
99
98
  ...(Validation.isInvalid(data) ? data.errors : []),
100
99
  ...(Validation.isInvalid(arg) ? arg.errors : []),
101
100
  ];
102
- return isNonEmptyList(errors) ? Validation.toInvalid(errors) : Validation.of(data);
101
+ return isNonEmptyList(errors) ? Validation.invalidAll(errors) : Validation.valid(data);
103
102
  };
104
103
  /**
105
104
  * Extracts the value from a Validation by providing handlers for both cases.
@@ -107,7 +106,7 @@ export var Validation;
107
106
  * @example
108
107
  * ```ts
109
108
  * pipe(
110
- * Validation.of(42),
109
+ * Validation.valid(42),
111
110
  * Validation.fold(
112
111
  * errors => `Errors: ${errors.join(", ")}`,
113
112
  * value => `Value: ${value}`
@@ -136,8 +135,8 @@ export var Validation;
136
135
  *
137
136
  * @example
138
137
  * ```ts
139
- * pipe(Validation.of(5), Validation.getOrElse(0)); // 5
140
- * pipe(Validation.fail("oops"), Validation.getOrElse(0)); // 0
138
+ * pipe(Validation.valid(5), Validation.getOrElse(0)); // 5
139
+ * pipe(Validation.invalid("oops"), Validation.getOrElse(0)); // 0
141
140
  * ```
142
141
  */
143
142
  Validation.getOrElse = (defaultValue) => (data) => Validation.isValid(data) ? data.value : defaultValue;
@@ -147,7 +146,7 @@ export var Validation;
147
146
  * @example
148
147
  * ```ts
149
148
  * pipe(
150
- * Validation.of(5),
149
+ * Validation.valid(5),
151
150
  * Validation.tap(n => console.log("Value:", n)),
152
151
  * Validation.map(n => n * 2)
153
152
  * );
@@ -177,13 +176,13 @@ export var Validation;
177
176
  * @example
178
177
  * ```ts
179
178
  * Validation.combine(
180
- * Validation.fail("Error 1"),
181
- * Validation.fail("Error 2")
179
+ * Validation.invalid("Error 1"),
180
+ * Validation.invalid("Error 2")
182
181
  * ); // Invalid(["Error 1", "Error 2"])
183
182
  *
184
183
  * Validation.combine(
185
- * Validation.of("a"),
186
- * Validation.of("b")
184
+ * Validation.valid("a"),
185
+ * Validation.valid("b")
187
186
  * ); // Valid("b")
188
187
  * ```
189
188
  */
@@ -195,7 +194,7 @@ export var Validation;
195
194
  ...(Validation.isInvalid(first) ? first.errors : []),
196
195
  ...(Validation.isInvalid(second) ? second.errors : []),
197
196
  ];
198
- return isNonEmptyList(errors) ? Validation.toInvalid(errors) : second;
197
+ return isNonEmptyList(errors) ? Validation.invalidAll(errors) : second;
199
198
  };
200
199
  /**
201
200
  * Combines multiple Validation instances, accumulating all errors.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nlozgachev/pipekit",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Simple functional programming toolkit for TypeScript",
5
5
  "keywords": [
6
6
  "functional",
@@ -9,13 +9,13 @@ exports.flip = void 0;
9
9
  * ```ts
10
10
  * // Original data-last (for pipe)
11
11
  * pipe(
12
- * Option.of(5),
12
+ * Option.some(5),
13
13
  * Option.map(n => n * 2)
14
14
  * ); // Some(10)
15
15
  *
16
16
  * // Flipped to data-first
17
17
  * const mapFirst = flip(Option.map);
18
- * mapFirst(Option.of(5))(n => n * 2); // Some(10)
18
+ * mapFirst(Option.some(5))(n => n * 2); // Some(10)
19
19
  * ```
20
20
  *
21
21
  * @see {@link uncurry} for converting curried functions to multi-argument functions
@@ -7,7 +7,7 @@ exports.once = exports.or = exports.and = exports.constVoid = exports.constUndef
7
7
  * @example
8
8
  * ```ts
9
9
  * identity(42); // 42
10
- * pipe(Option.of(5), Option.fold(() => 0, identity)); // 5
10
+ * pipe(Option.some(5), Option.fold(() => 0, identity)); // 5
11
11
  * ```
12
12
  */
13
13
  const identity = (a) => a;
@@ -9,7 +9,7 @@ exports.tap = void 0;
9
9
  * ```ts
10
10
  * // Debugging a pipeline
11
11
  * pipe(
12
- * Option.of(5),
12
+ * Option.some(5),
13
13
  * tap(x => console.log("Before map:", x)),
14
14
  * Option.map(n => n * 2),
15
15
  * tap(x => console.log("After map:", x)),
@@ -306,7 +306,7 @@ var Arr;
306
306
  * ```ts
307
307
  * const parseNum = (s: string): Option<number> => {
308
308
  * const n = Number(s);
309
- * return isNaN(n) ? Option.none() : Option.of(n);
309
+ * return isNaN(n) ? Option.none() : Option.some(n);
310
310
  * };
311
311
  *
312
312
  * pipe(["1", "2", "3"], Arr.traverse(parseNum)); // Some([1, 2, 3])
@@ -352,7 +352,7 @@ var Arr;
352
352
  * ```ts
353
353
  * pipe(
354
354
  * [1, 2, 3],
355
- * Arr.traverseTask(n => Task.of(n * 2))
355
+ * Arr.traverseTask(n => Task.resolve(n * 2))
356
356
  * )(); // Promise<[2, 4, 6]>
357
357
  * ```
358
358
  */
@@ -363,8 +363,8 @@ var Arr;
363
363
  *
364
364
  * @example
365
365
  * ```ts
366
- * Arr.sequence([Option.of(1), Option.of(2)]); // Some([1, 2])
367
- * Arr.sequence([Option.of(1), Option.none()]); // None
366
+ * Arr.sequence([Option.some(1), Option.some(2)]); // Some([1, 2])
367
+ * Arr.sequence([Option.some(1), Option.none()]); // None
368
368
  * ```
369
369
  */
370
370
  Arr.sequence = (data) => Arr.traverse((a) => a)(data);
@@ -4,15 +4,6 @@ exports.Option = void 0;
4
4
  const Result_js_1 = require("./Result.js");
5
5
  var Option;
6
6
  (function (Option) {
7
- /**
8
- * Wraps a value in a Some.
9
- *
10
- * @example
11
- * ```ts
12
- * Option.of(42); // Some(42)
13
- * ```
14
- */
15
- Option.of = (value) => Option.some(value);
16
7
  /**
17
8
  * Creates a Some containing the given value.
18
9
  */
@@ -60,7 +51,7 @@ var Option;
60
51
  * @example
61
52
  * ```ts
62
53
  * pipe(
63
- * Option.of(42),
54
+ * Option.some(42),
64
55
  * Option.toResult(() => "Value was missing")
65
56
  * ); // Ok(42)
66
57
  *
@@ -87,7 +78,7 @@ var Option;
87
78
  *
88
79
  * @example
89
80
  * ```ts
90
- * pipe(Option.of(5), Option.map(n => n * 2)); // Some(10)
81
+ * pipe(Option.some(5), Option.map(n => n * 2)); // Some(10)
91
82
  * pipe(Option.none(), Option.map(n => n * 2)); // None
92
83
  * ```
93
84
  */
@@ -100,11 +91,11 @@ var Option;
100
91
  * ```ts
101
92
  * const parseNumber = (s: string): Option<number> => {
102
93
  * const n = parseInt(s, 10);
103
- * return isNaN(n) ? Option.none() : Option.of(n);
94
+ * return isNaN(n) ? Option.none() : Option.some(n);
104
95
  * };
105
96
  *
106
- * pipe(Option.of("42"), Option.chain(parseNumber)); // Some(42)
107
- * pipe(Option.of("abc"), Option.chain(parseNumber)); // None
97
+ * pipe(Option.some("42"), Option.chain(parseNumber)); // Some(42)
98
+ * pipe(Option.some("abc"), Option.chain(parseNumber)); // None
108
99
  * ```
109
100
  */
110
101
  Option.chain = (f) => (data) => Option.isSome(data) ? f(data.value) : data;
@@ -114,7 +105,7 @@ var Option;
114
105
  * @example
115
106
  * ```ts
116
107
  * pipe(
117
- * Option.of(5),
108
+ * Option.some(5),
118
109
  * Option.fold(
119
110
  * () => "No value",
120
111
  * n => `Value: ${n}`
@@ -143,7 +134,7 @@ var Option;
143
134
  *
144
135
  * @example
145
136
  * ```ts
146
- * pipe(Option.of(5), Option.getOrElse(0)); // 5
137
+ * pipe(Option.some(5), Option.getOrElse(0)); // 5
147
138
  * pipe(Option.none(), Option.getOrElse(0)); // 0
148
139
  * ```
149
140
  */
@@ -155,7 +146,7 @@ var Option;
155
146
  * @example
156
147
  * ```ts
157
148
  * pipe(
158
- * Option.of(5),
149
+ * Option.some(5),
159
150
  * Option.tap(n => console.log("Value:", n)),
160
151
  * Option.map(n => n * 2)
161
152
  * );
@@ -172,8 +163,8 @@ var Option;
172
163
  *
173
164
  * @example
174
165
  * ```ts
175
- * pipe(Option.of(5), Option.filter(n => n > 3)); // Some(5)
176
- * pipe(Option.of(2), Option.filter(n => n > 3)); // None
166
+ * pipe(Option.some(5), Option.filter(n => n > 3)); // Some(5)
167
+ * pipe(Option.some(2), Option.filter(n => n > 3)); // None
177
168
  * ```
178
169
  */
179
170
  Option.filter = (predicate) => (data) => Option.isSome(data) && predicate(data.value) ? data : Option.none();
@@ -188,9 +179,9 @@ var Option;
188
179
  * ```ts
189
180
  * const add = (a: number) => (b: number) => a + b;
190
181
  * pipe(
191
- * Option.of(add),
192
- * Option.ap(Option.of(5)),
193
- * Option.ap(Option.of(3))
182
+ * Option.some(add),
183
+ * Option.ap(Option.some(5)),
184
+ * Option.ap(Option.some(3))
194
185
  * ); // Some(8)
195
186
  * ```
196
187
  */
@@ -25,10 +25,6 @@ var RemoteData;
25
25
  kind: "Success",
26
26
  value,
27
27
  });
28
- /**
29
- * Wraps a value in a Success RemoteData. Alias for `success`.
30
- */
31
- RemoteData.of = RemoteData.success;
32
28
  /**
33
29
  * Type guard that checks if a RemoteData is NotAsked.
34
30
  */
@@ -50,7 +46,7 @@ var RemoteData;
50
46
  *
51
47
  * @example
52
48
  * ```ts
53
- * pipe(RemoteData.of(5), RemoteData.map(n => n * 2)); // Success(10)
49
+ * pipe(RemoteData.success(5), RemoteData.map(n => n * 2)); // Success(10)
54
50
  * pipe(RemoteData.loading(), RemoteData.map(n => n * 2)); // Loading
55
51
  * ```
56
52
  */
@@ -71,8 +67,8 @@ var RemoteData;
71
67
  * @example
72
68
  * ```ts
73
69
  * pipe(
74
- * RemoteData.of(5),
75
- * RemoteData.chain(n => n > 0 ? RemoteData.of(n) : RemoteData.failure("negative"))
70
+ * RemoteData.success(5),
71
+ * RemoteData.chain(n => n > 0 ? RemoteData.success(n) : RemoteData.failure("negative"))
76
72
  * );
77
73
  * ```
78
74
  */
@@ -84,9 +80,9 @@ var RemoteData;
84
80
  * ```ts
85
81
  * const add = (a: number) => (b: number) => a + b;
86
82
  * pipe(
87
- * RemoteData.of(add),
88
- * RemoteData.ap(RemoteData.of(5)),
89
- * RemoteData.ap(RemoteData.of(3))
83
+ * RemoteData.success(add),
84
+ * RemoteData.ap(RemoteData.success(5)),
85
+ * RemoteData.ap(RemoteData.success(3))
90
86
  * ); // Success(8)
91
87
  * ```
92
88
  */
@@ -163,7 +159,7 @@ var RemoteData;
163
159
  *
164
160
  * @example
165
161
  * ```ts
166
- * pipe(RemoteData.of(5), RemoteData.getOrElse(0)); // 5
162
+ * pipe(RemoteData.success(5), RemoteData.getOrElse(0)); // 5
167
163
  * pipe(RemoteData.loading(), RemoteData.getOrElse(0)); // 0
168
164
  * ```
169
165
  */
@@ -174,7 +170,7 @@ var RemoteData;
174
170
  * @example
175
171
  * ```ts
176
172
  * pipe(
177
- * RemoteData.of(5),
173
+ * RemoteData.success(5),
178
174
  * RemoteData.tap(n => console.log("Value:", n)),
179
175
  * RemoteData.map(n => n * 2)
180
176
  * );
@@ -202,7 +198,7 @@ var RemoteData;
202
198
  * @example
203
199
  * ```ts
204
200
  * pipe(
205
- * RemoteData.of(42),
201
+ * RemoteData.success(42),
206
202
  * RemoteData.toResult(() => "not loaded")
207
203
  * ); // Ok(42)
208
204
  * ```
@@ -4,22 +4,13 @@ exports.Result = void 0;
4
4
  var Result;
5
5
  (function (Result) {
6
6
  /**
7
- * Wraps a value in a successful Result (Ok).
8
- *
9
- * @example
10
- * ```ts
11
- * Result.of(42); // Ok(42)
12
- * ```
7
+ * Creates a successful Result with the given value.
13
8
  */
14
- Result.of = (value) => Result.ok(value);
9
+ Result.ok = (value) => ({ kind: "Ok", value });
15
10
  /**
16
11
  * Creates a failed Result with the given error.
17
12
  */
18
13
  Result.err = (error) => ({ kind: "Error", error });
19
- /**
20
- * Creates a successful Result with the given value.
21
- */
22
- Result.ok = (value) => ({ kind: "Ok", value });
23
14
  /**
24
15
  * Type guard that checks if an Result is Ok.
25
16
  */
@@ -54,7 +45,7 @@ var Result;
54
45
  *
55
46
  * @example
56
47
  * ```ts
57
- * pipe(Result.of(5), Result.map(n => n * 2)); // Ok(10)
48
+ * pipe(Result.ok(5), Result.map(n => n * 2)); // Ok(10)
58
49
  * pipe(Result.err("error"), Result.map(n => n * 2)); // Err("error")
59
50
  * ```
60
51
  */
@@ -75,10 +66,10 @@ var Result;
75
66
  * @example
76
67
  * ```ts
77
68
  * const validatePositive = (n: number): Result<string, number> =>
78
- * n > 0 ? Result.of(n) : Result.err("Must be positive");
69
+ * n > 0 ? Result.ok(n) : Result.err("Must be positive");
79
70
  *
80
- * pipe(Result.of(5), Result.chain(validatePositive)); // Ok(5)
81
- * pipe(Result.of(-1), Result.chain(validatePositive)); // Err("Must be positive")
71
+ * pipe(Result.ok(5), Result.chain(validatePositive)); // Ok(5)
72
+ * pipe(Result.ok(-1), Result.chain(validatePositive)); // Err("Must be positive")
82
73
  * ```
83
74
  */
84
75
  Result.chain = (f) => (data) => Result.isOk(data) ? f(data.value) : data;
@@ -88,7 +79,7 @@ var Result;
88
79
  * @example
89
80
  * ```ts
90
81
  * pipe(
91
- * Result.of(5),
82
+ * Result.ok(5),
92
83
  * Result.fold(
93
84
  * e => `Error: ${e}`,
94
85
  * n => `Value: ${n}`
@@ -117,7 +108,7 @@ var Result;
117
108
  *
118
109
  * @example
119
110
  * ```ts
120
- * pipe(Result.of(5), Result.getOrElse(0)); // 5
111
+ * pipe(Result.ok(5), Result.getOrElse(0)); // 5
121
112
  * pipe(Result.err("error"), Result.getOrElse(0)); // 0
122
113
  * ```
123
114
  */
@@ -129,7 +120,7 @@ var Result;
129
120
  * @example
130
121
  * ```ts
131
122
  * pipe(
132
- * Result.of(5),
123
+ * Result.ok(5),
133
124
  * Result.tap(n => console.log("Value:", n)),
134
125
  * Result.map(n => n * 2)
135
126
  * );
@@ -166,9 +157,9 @@ var Result;
166
157
  * ```ts
167
158
  * const add = (a: number) => (b: number) => a + b;
168
159
  * pipe(
169
- * Result.of(add),
170
- * Result.ap(Result.of(5)),
171
- * Result.ap(Result.of(3))
160
+ * Result.ok(add),
161
+ * Result.ap(Result.ok(5)),
162
+ * Result.ap(Result.ok(3))
172
163
  * ); // Ok(8)
173
164
  * ```
174
165
  */
@@ -5,22 +5,22 @@ const Result_js_1 = require("./Result.js");
5
5
  var Task;
6
6
  (function (Task) {
7
7
  /**
8
- * Wraps a value in a Task that immediately resolves to that value.
8
+ * Creates a Task that immediately resolves to the given value.
9
9
  *
10
10
  * @example
11
11
  * ```ts
12
- * const task = Task.of(42);
12
+ * const task = Task.resolve(42);
13
13
  * task().then(console.log); // 42
14
14
  * ```
15
15
  */
16
- Task.of = (value) => () => Promise.resolve(value);
16
+ Task.resolve = (value) => () => Promise.resolve(value);
17
17
  /**
18
18
  * Creates a Task from a function that returns a Promise.
19
19
  * Alias for directly creating a Task.
20
20
  *
21
21
  * @example
22
22
  * ```ts
23
- * const fetchUser = Task.from(() => fetch('/user').then(r => r.json()));
23
+ * const getTimestamp = Task.from(() => Promise.resolve(Date.now()));
24
24
  * ```
25
25
  */
26
26
  Task.from = (f) => f;
@@ -30,7 +30,7 @@ var Task;
30
30
  * @example
31
31
  * ```ts
32
32
  * pipe(
33
- * Task.of(5),
33
+ * Task.resolve(5),
34
34
  * Task.map(n => n * 2)
35
35
  * )(); // Promise<10>
36
36
  * ```
@@ -41,13 +41,13 @@ var Task;
41
41
  *
42
42
  * @example
43
43
  * ```ts
44
- * const fetchUser = (id: string): Task<User> => () => fetch(`/users/${id}`).then(r => r.json());
45
- * const fetchPosts = (user: User): Task<Post[]> => () => fetch(`/posts?userId=${user.id}`).then(r => r.json());
44
+ * const readUserId: Task<string> = () => Promise.resolve(session.userId);
45
+ * const loadPrefs = (id: string): Task<Preferences> => () => Promise.resolve(prefsCache.get(id));
46
46
  *
47
47
  * pipe(
48
- * fetchUser("123"),
49
- * Task.chain(fetchPosts)
50
- * )(); // Promise<Post[]>
48
+ * readUserId,
49
+ * Task.chain(loadPrefs)
50
+ * )(); // Promise<Preferences>
51
51
  * ```
52
52
  */
53
53
  Task.chain = (f) => (data) => () => data().then((a) => f(a)());
@@ -59,9 +59,9 @@ var Task;
59
59
  * ```ts
60
60
  * const add = (a: number) => (b: number) => a + b;
61
61
  * pipe(
62
- * Task.of(add),
63
- * Task.ap(Task.of(5)),
64
- * Task.ap(Task.of(3))
62
+ * Task.resolve(add),
63
+ * Task.ap(Task.resolve(5)),
64
+ * Task.ap(Task.resolve(3))
65
65
  * )(); // Promise<8>
66
66
  * ```
67
67
  */
@@ -73,9 +73,9 @@ var Task;
73
73
  * @example
74
74
  * ```ts
75
75
  * pipe(
76
- * fetchData,
77
- * Task.tap(data => console.log("Fetched:", data)),
78
- * Task.map(transform)
76
+ * loadConfig,
77
+ * Task.tap(cfg => console.log("Config:", cfg)),
78
+ * Task.map(buildReport)
79
79
  * );
80
80
  * ```
81
81
  */
@@ -88,8 +88,8 @@ var Task;
88
88
  *
89
89
  * @example
90
90
  * ```ts
91
- * Task.all([fetchUser, fetchPosts, fetchComments])();
92
- * // Promise<[User, Post[], Comment[]]>
91
+ * Task.all([loadConfig, detectLocale, loadTheme])();
92
+ * // Promise<[Config, string, Theme]>
93
93
  * ```
94
94
  */
95
95
  Task.all = (tasks) => () => Promise.all(tasks.map((t) => t()));
@@ -100,7 +100,7 @@ var Task;
100
100
  * @example
101
101
  * ```ts
102
102
  * pipe(
103
- * Task.of(42),
103
+ * Task.resolve(42),
104
104
  * Task.delay(1000)
105
105
  * )(); // Resolves after 1 second
106
106
  * ```
@@ -161,16 +161,19 @@ var Task;
161
161
  * @example
162
162
  * ```ts
163
163
  * pipe(
164
- * fetchUser,
165
- * Task.timeout(5000, () => new TimeoutError("fetch user timed out")),
166
- * TaskResult.chain(processUser)
164
+ * heavyComputation,
165
+ * Task.timeout(5000, () => "timed out"),
166
+ * TaskResult.chain(processResult)
167
167
  * );
168
168
  * ```
169
169
  */
170
170
  Task.timeout = (ms, onTimeout) => (task) => () => {
171
171
  let timerId;
172
172
  return Promise.race([
173
- task().then((a) => { clearTimeout(timerId); return Result_js_1.Result.ok(a); }),
173
+ task().then((a) => {
174
+ clearTimeout(timerId);
175
+ return Result_js_1.Result.ok(a);
176
+ }),
174
177
  new Promise((resolve) => {
175
178
  timerId = setTimeout(() => resolve(Result_js_1.Result.err(onTimeout())), ms);
176
179
  }),