@nlozgachev/pipekit 0.1.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm/src/Core/Arr.js +14 -14
- package/esm/src/Core/Option.js +16 -16
- package/esm/src/Core/Rec.js +1 -1
- package/esm/src/Core/Result.js +14 -14
- package/esm/src/Core/Task.js +73 -5
- package/esm/src/Core/TaskOption.js +3 -3
- package/esm/src/Core/TaskResult.js +62 -5
- package/esm/src/Core/These.js +40 -40
- package/esm/src/Types/Brand.js +3 -3
- package/package.json +1 -1
- package/script/src/Core/Arr.js +14 -14
- package/script/src/Core/Option.js +16 -16
- package/script/src/Core/Rec.js +1 -1
- package/script/src/Core/Result.js +14 -14
- package/script/src/Core/Task.js +73 -5
- package/script/src/Core/TaskOption.js +3 -3
- package/script/src/Core/TaskResult.js +62 -5
- package/script/src/Core/These.js +40 -40
- package/script/src/Types/Brand.js +3 -3
- package/types/src/Core/Arr.d.ts +3 -3
- package/types/src/Core/Arr.d.ts.map +1 -1
- package/types/src/Core/Option.d.ts +9 -9
- package/types/src/Core/Option.d.ts.map +1 -1
- package/types/src/Core/Rec.d.ts.map +1 -1
- package/types/src/Core/Result.d.ts +9 -9
- package/types/src/Core/Result.d.ts.map +1 -1
- package/types/src/Core/Task.d.ts +49 -5
- package/types/src/Core/Task.d.ts.map +1 -1
- package/types/src/Core/TaskOption.d.ts.map +1 -1
- package/types/src/Core/TaskResult.d.ts +40 -1
- package/types/src/Core/TaskResult.d.ts.map +1 -1
- package/types/src/Core/These.d.ts +31 -31
- package/types/src/Core/These.d.ts.map +1 -1
- package/types/src/Types/Brand.d.ts +5 -5
|
@@ -12,7 +12,7 @@ var TaskOption;
|
|
|
12
12
|
/**
|
|
13
13
|
* Creates a TaskOption that resolves to None.
|
|
14
14
|
*/
|
|
15
|
-
TaskOption.none = () => Task_js_1.Task.of(Option_js_1.Option.
|
|
15
|
+
TaskOption.none = () => Task_js_1.Task.of(Option_js_1.Option.none());
|
|
16
16
|
/**
|
|
17
17
|
* Lifts an Option into a TaskOption.
|
|
18
18
|
*/
|
|
@@ -32,7 +32,7 @@ var TaskOption;
|
|
|
32
32
|
* );
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
|
-
TaskOption.tryCatch = (f) => () => f().then(Option_js_1.Option.of).catch(() => Option_js_1.Option.
|
|
35
|
+
TaskOption.tryCatch = (f) => () => f().then(Option_js_1.Option.of).catch(() => Option_js_1.Option.none());
|
|
36
36
|
/**
|
|
37
37
|
* Transforms the value inside a TaskOption.
|
|
38
38
|
*/
|
|
@@ -49,7 +49,7 @@ var TaskOption;
|
|
|
49
49
|
* )();
|
|
50
50
|
* ```
|
|
51
51
|
*/
|
|
52
|
-
TaskOption.chain = (f) => (data) => Task_js_1.Task.chain((option) => Option_js_1.Option.isSome(option) ? f(option.value) : Task_js_1.Task.of(Option_js_1.Option.
|
|
52
|
+
TaskOption.chain = (f) => (data) => Task_js_1.Task.chain((option) => Option_js_1.Option.isSome(option) ? f(option.value) : Task_js_1.Task.of(Option_js_1.Option.none()))(data);
|
|
53
53
|
/**
|
|
54
54
|
* Applies a function wrapped in a TaskOption to a value wrapped in a TaskOption.
|
|
55
55
|
* Both Tasks run in parallel.
|
|
@@ -8,11 +8,11 @@ var TaskResult;
|
|
|
8
8
|
/**
|
|
9
9
|
* Wraps a value in a successful TaskResult.
|
|
10
10
|
*/
|
|
11
|
-
TaskResult.of = (value) => Task_js_1.Task.of(Result_js_1.Result.
|
|
11
|
+
TaskResult.of = (value) => Task_js_1.Task.of(Result_js_1.Result.ok(value));
|
|
12
12
|
/**
|
|
13
13
|
* Creates a failed TaskResult with the given error.
|
|
14
14
|
*/
|
|
15
|
-
TaskResult.
|
|
15
|
+
TaskResult.err = (error) => Task_js_1.Task.of(Result_js_1.Result.err(error));
|
|
16
16
|
/**
|
|
17
17
|
* Creates a TaskResult from a function that may throw.
|
|
18
18
|
* Catches any errors and transforms them using the onError function.
|
|
@@ -27,8 +27,8 @@ var TaskResult;
|
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
29
|
TaskResult.tryCatch = (f, onError) => () => f()
|
|
30
|
-
.then(Result_js_1.Result.
|
|
31
|
-
.catch((e) => Result_js_1.Result.
|
|
30
|
+
.then(Result_js_1.Result.ok)
|
|
31
|
+
.catch((e) => Result_js_1.Result.err(onError(e)));
|
|
32
32
|
/**
|
|
33
33
|
* Transforms the success value inside a TaskResult.
|
|
34
34
|
*/
|
|
@@ -41,7 +41,7 @@ var TaskResult;
|
|
|
41
41
|
* Chains TaskResult computations. If the first succeeds, passes the value to f.
|
|
42
42
|
* If the first fails, propagates the error.
|
|
43
43
|
*/
|
|
44
|
-
TaskResult.chain = (f) => (data) => Task_js_1.Task.chain((result) => Result_js_1.Result.isOk(result) ? f(result.value) : Task_js_1.Task.of(Result_js_1.Result.
|
|
44
|
+
TaskResult.chain = (f) => (data) => Task_js_1.Task.chain((result) => Result_js_1.Result.isOk(result) ? f(result.value) : Task_js_1.Task.of(Result_js_1.Result.err(result.error)))(data);
|
|
45
45
|
/**
|
|
46
46
|
* Extracts the value from a TaskResult by providing handlers for both cases.
|
|
47
47
|
*/
|
|
@@ -63,4 +63,61 @@ var TaskResult;
|
|
|
63
63
|
* Useful for logging or debugging.
|
|
64
64
|
*/
|
|
65
65
|
TaskResult.tap = (f) => (data) => Task_js_1.Task.map(Result_js_1.Result.tap(f))(data);
|
|
66
|
+
/**
|
|
67
|
+
* Re-runs a TaskResult on `Err` with configurable attempts, backoff, and retry condition.
|
|
68
|
+
*
|
|
69
|
+
* @param options.attempts - Total number of attempts (1 = no retry, 3 = up to 3 tries)
|
|
70
|
+
* @param options.backoff - Fixed delay in ms, or a function `(attempt) => ms` for computed delay
|
|
71
|
+
* @param options.when - Only retry when this returns true; defaults to always retry on Err
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* // Retry up to 3 times with exponential backoff
|
|
76
|
+
* pipe(
|
|
77
|
+
* fetchUser,
|
|
78
|
+
* TaskResult.retry({ attempts: 3, backoff: n => n * 1000 })
|
|
79
|
+
* );
|
|
80
|
+
*
|
|
81
|
+
* // Only retry on network errors, not auth errors
|
|
82
|
+
* pipe(
|
|
83
|
+
* fetchUser,
|
|
84
|
+
* TaskResult.retry({ attempts: 3, when: e => e instanceof NetworkError })
|
|
85
|
+
* );
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
TaskResult.retry = (options) => (data) => () => {
|
|
89
|
+
const { attempts, backoff, when: shouldRetry } = options;
|
|
90
|
+
const getDelay = (n) => backoff === undefined ? 0 : typeof backoff === "function" ? backoff(n) : backoff;
|
|
91
|
+
const run = (left) => data().then((result) => {
|
|
92
|
+
if (Result_js_1.Result.isOk(result))
|
|
93
|
+
return result;
|
|
94
|
+
if (left <= 1)
|
|
95
|
+
return result;
|
|
96
|
+
if (shouldRetry !== undefined && !shouldRetry(result.error))
|
|
97
|
+
return result;
|
|
98
|
+
const ms = getDelay(attempts - left + 1);
|
|
99
|
+
return (ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve()).then(() => run(left - 1));
|
|
100
|
+
});
|
|
101
|
+
return run(attempts);
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Fails a TaskResult with a typed error if it does not resolve within the given time.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```ts
|
|
108
|
+
* pipe(
|
|
109
|
+
* fetchUser,
|
|
110
|
+
* TaskResult.timeout(5000, () => new TimeoutError("fetch user timed out"))
|
|
111
|
+
* );
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
TaskResult.timeout = (ms, onTimeout) => (data) => () => {
|
|
115
|
+
let timerId;
|
|
116
|
+
return Promise.race([
|
|
117
|
+
data().then((result) => { clearTimeout(timerId); return result; }),
|
|
118
|
+
new Promise((resolve) => {
|
|
119
|
+
timerId = setTimeout(() => resolve(Result_js_1.Result.err(onTimeout())), ms);
|
|
120
|
+
}),
|
|
121
|
+
]);
|
|
122
|
+
};
|
|
66
123
|
})(TaskResult || (exports.TaskResult = TaskResult = {}));
|
package/script/src/Core/These.js
CHANGED
|
@@ -9,28 +9,28 @@ var These;
|
|
|
9
9
|
*
|
|
10
10
|
* @example
|
|
11
11
|
* ```ts
|
|
12
|
-
* These.
|
|
12
|
+
* These.err("Something went wrong");
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
|
-
These.
|
|
15
|
+
These.err = (error) => Result_js_1.Result.err(error);
|
|
16
16
|
/**
|
|
17
17
|
* Creates a These holding only a success value (no error).
|
|
18
18
|
*
|
|
19
19
|
* @example
|
|
20
20
|
* ```ts
|
|
21
|
-
* These.
|
|
21
|
+
* These.ok(42);
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
These.
|
|
24
|
+
These.ok = (value) => Result_js_1.Result.ok(value);
|
|
25
25
|
/**
|
|
26
26
|
* Creates a These holding both an error/warning and a success value.
|
|
27
27
|
*
|
|
28
28
|
* @example
|
|
29
29
|
* ```ts
|
|
30
|
-
* These.
|
|
30
|
+
* These.both("Deprecated API used", result);
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
|
-
These.
|
|
33
|
+
These.both = (error, value) => ({
|
|
34
34
|
kind: "Both",
|
|
35
35
|
error,
|
|
36
36
|
value,
|
|
@@ -60,33 +60,33 @@ var These;
|
|
|
60
60
|
*
|
|
61
61
|
* @example
|
|
62
62
|
* ```ts
|
|
63
|
-
* pipe(These.
|
|
64
|
-
* pipe(These.
|
|
65
|
-
* pipe(These.
|
|
63
|
+
* pipe(These.ok(5), These.map(n => n * 2)); // Ok(10)
|
|
64
|
+
* pipe(These.both("warn", 5), These.map(n => n * 2)); // Both("warn", 10)
|
|
65
|
+
* pipe(These.err("err"), These.map(n => n * 2)); // Err("err")
|
|
66
66
|
* ```
|
|
67
67
|
*/
|
|
68
68
|
These.map = (f) => (data) => {
|
|
69
69
|
if (These.isErr(data))
|
|
70
70
|
return data;
|
|
71
71
|
if (These.isOk(data))
|
|
72
|
-
return These.
|
|
73
|
-
return These.
|
|
72
|
+
return These.ok(f(data.value));
|
|
73
|
+
return These.both(data.error, f(data.value));
|
|
74
74
|
};
|
|
75
75
|
/**
|
|
76
76
|
* Transforms the error/warning value, leaving the success value unchanged.
|
|
77
77
|
*
|
|
78
78
|
* @example
|
|
79
79
|
* ```ts
|
|
80
|
-
* pipe(These.
|
|
81
|
-
* pipe(These.
|
|
80
|
+
* pipe(These.err("err"), These.mapErr(e => e.toUpperCase())); // Err("ERR")
|
|
81
|
+
* pipe(These.both("warn", 5), These.mapErr(e => e.toUpperCase())); // Both("WARN", 5)
|
|
82
82
|
* ```
|
|
83
83
|
*/
|
|
84
84
|
These.mapErr = (f) => (data) => {
|
|
85
85
|
if (These.isOk(data))
|
|
86
86
|
return data;
|
|
87
87
|
if (These.isErr(data))
|
|
88
|
-
return These.
|
|
89
|
-
return These.
|
|
88
|
+
return These.err(f(data.error));
|
|
89
|
+
return These.both(f(data.error), data.value);
|
|
90
90
|
};
|
|
91
91
|
/**
|
|
92
92
|
* Transforms both the error and success values independently.
|
|
@@ -94,17 +94,17 @@ var These;
|
|
|
94
94
|
* @example
|
|
95
95
|
* ```ts
|
|
96
96
|
* pipe(
|
|
97
|
-
* These.
|
|
97
|
+
* These.both("warn", 5),
|
|
98
98
|
* These.bimap(e => e.toUpperCase(), n => n * 2)
|
|
99
99
|
* ); // Both("WARN", 10)
|
|
100
100
|
* ```
|
|
101
101
|
*/
|
|
102
102
|
These.bimap = (onErr, onOk) => (data) => {
|
|
103
103
|
if (These.isErr(data))
|
|
104
|
-
return These.
|
|
104
|
+
return These.err(onErr(data.error));
|
|
105
105
|
if (These.isOk(data))
|
|
106
|
-
return These.
|
|
107
|
-
return These.
|
|
106
|
+
return These.ok(onOk(data.value));
|
|
107
|
+
return These.both(onErr(data.error), onOk(data.value));
|
|
108
108
|
};
|
|
109
109
|
/**
|
|
110
110
|
* Chains These computations by passing the success value to f.
|
|
@@ -115,11 +115,11 @@ var These;
|
|
|
115
115
|
*
|
|
116
116
|
* @example
|
|
117
117
|
* ```ts
|
|
118
|
-
* const double = (n: number): These<string, number> => These.
|
|
118
|
+
* const double = (n: number): These<string, number> => These.ok(n * 2);
|
|
119
119
|
*
|
|
120
|
-
* pipe(These.
|
|
121
|
-
* pipe(These.
|
|
122
|
-
* pipe(These.
|
|
120
|
+
* pipe(These.ok(5), These.chain(double)); // Ok(10)
|
|
121
|
+
* pipe(These.both("warn", 5), These.chain(double)); // Both("warn", 10)
|
|
122
|
+
* pipe(These.err("err"), These.chain(double)); // Err("err")
|
|
123
123
|
* ```
|
|
124
124
|
*/
|
|
125
125
|
These.chain = (f) => (data) => {
|
|
@@ -128,7 +128,7 @@ var These;
|
|
|
128
128
|
if (These.isOk(data))
|
|
129
129
|
return f(data.value);
|
|
130
130
|
const result = f(data.value);
|
|
131
|
-
return These.isOk(result) ? These.
|
|
131
|
+
return These.isOk(result) ? These.both(data.error, result.value) : result;
|
|
132
132
|
};
|
|
133
133
|
/**
|
|
134
134
|
* Extracts a value from a These by providing handlers for all three cases.
|
|
@@ -179,9 +179,9 @@ var These;
|
|
|
179
179
|
*
|
|
180
180
|
* @example
|
|
181
181
|
* ```ts
|
|
182
|
-
* pipe(These.
|
|
183
|
-
* pipe(These.
|
|
184
|
-
* pipe(These.
|
|
182
|
+
* pipe(These.ok(5), These.getOrElse(0)); // 5
|
|
183
|
+
* pipe(These.both("warn", 5), These.getOrElse(0)); // 5
|
|
184
|
+
* pipe(These.err("err"), These.getOrElse(0)); // 0
|
|
185
185
|
* ```
|
|
186
186
|
*/
|
|
187
187
|
These.getOrElse = (defaultValue) => (data) => These.hasValue(data) ? data.value : defaultValue;
|
|
@@ -202,17 +202,17 @@ var These;
|
|
|
202
202
|
*
|
|
203
203
|
* @example
|
|
204
204
|
* ```ts
|
|
205
|
-
* These.swap(These.
|
|
206
|
-
* These.swap(These.
|
|
207
|
-
* These.swap(These.
|
|
205
|
+
* These.swap(These.err("err")); // Ok("err")
|
|
206
|
+
* These.swap(These.ok(5)); // Err(5)
|
|
207
|
+
* These.swap(These.both("warn", 5)); // Both(5, "warn")
|
|
208
208
|
* ```
|
|
209
209
|
*/
|
|
210
210
|
These.swap = (data) => {
|
|
211
211
|
if (These.isErr(data))
|
|
212
|
-
return These.
|
|
212
|
+
return These.ok(data.error);
|
|
213
213
|
if (These.isOk(data))
|
|
214
|
-
return These.
|
|
215
|
-
return These.
|
|
214
|
+
return These.err(data.value);
|
|
215
|
+
return These.both(data.value, data.error);
|
|
216
216
|
};
|
|
217
217
|
/**
|
|
218
218
|
* Converts a These to an Option.
|
|
@@ -220,9 +220,9 @@ var These;
|
|
|
220
220
|
*
|
|
221
221
|
* @example
|
|
222
222
|
* ```ts
|
|
223
|
-
* These.toOption(These.
|
|
224
|
-
* These.toOption(These.
|
|
225
|
-
* These.toOption(These.
|
|
223
|
+
* These.toOption(These.ok(42)); // Some(42)
|
|
224
|
+
* These.toOption(These.both("warn", 42)); // Some(42)
|
|
225
|
+
* These.toOption(These.err("err")); // None
|
|
226
226
|
* ```
|
|
227
227
|
*/
|
|
228
228
|
These.toOption = (data) => These.hasValue(data) ? { kind: "Some", value: data.value } : { kind: "None" };
|
|
@@ -232,14 +232,14 @@ var These;
|
|
|
232
232
|
*
|
|
233
233
|
* @example
|
|
234
234
|
* ```ts
|
|
235
|
-
* These.toResult(These.
|
|
236
|
-
* These.toResult(These.
|
|
237
|
-
* These.toResult(These.
|
|
235
|
+
* These.toResult(These.ok(42)); // Ok(42)
|
|
236
|
+
* These.toResult(These.both("warn", 42)); // Ok(42)
|
|
237
|
+
* These.toResult(These.err("err")); // Err("err")
|
|
238
238
|
* ```
|
|
239
239
|
*/
|
|
240
240
|
These.toResult = (data) => {
|
|
241
241
|
if (These.hasValue(data))
|
|
242
|
-
return Result_js_1.Result.
|
|
242
|
+
return Result_js_1.Result.ok(data.value);
|
|
243
243
|
return data;
|
|
244
244
|
};
|
|
245
245
|
})(These || (exports.These = These = {}));
|
|
@@ -4,19 +4,19 @@ exports.Brand = void 0;
|
|
|
4
4
|
var Brand;
|
|
5
5
|
(function (Brand) {
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Returns a constructor that wraps a value of type T in brand K.
|
|
8
8
|
* The resulting function performs an unchecked cast — only use when the raw
|
|
9
9
|
* value is known to satisfy the brand's invariants.
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
12
12
|
* ```ts
|
|
13
13
|
* type PositiveNumber = Brand<"PositiveNumber", number>;
|
|
14
|
-
* const toPositiveNumber = Brand.
|
|
14
|
+
* const toPositiveNumber = Brand.wrap<"PositiveNumber", number>();
|
|
15
15
|
*
|
|
16
16
|
* const n: PositiveNumber = toPositiveNumber(42);
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
Brand.
|
|
19
|
+
Brand.wrap = () => (value) => value;
|
|
20
20
|
/**
|
|
21
21
|
* Strips the brand and returns the underlying value.
|
|
22
22
|
* Since Brand<K, T> extends T this is rarely needed, but can improve readability.
|
package/types/src/Core/Arr.d.ts
CHANGED
|
@@ -227,7 +227,7 @@ export declare namespace Arr {
|
|
|
227
227
|
* ```ts
|
|
228
228
|
* const parseNum = (s: string): Option<number> => {
|
|
229
229
|
* const n = Number(s);
|
|
230
|
-
* return isNaN(n) ? Option.
|
|
230
|
+
* return isNaN(n) ? Option.none() : Option.of(n);
|
|
231
231
|
* };
|
|
232
232
|
*
|
|
233
233
|
* pipe(["1", "2", "3"], Arr.traverse(parseNum)); // Some([1, 2, 3])
|
|
@@ -243,7 +243,7 @@ export declare namespace Arr {
|
|
|
243
243
|
* ```ts
|
|
244
244
|
* pipe(
|
|
245
245
|
* [1, 2, 3],
|
|
246
|
-
* Arr.traverseResult(n => n > 0 ? Result.
|
|
246
|
+
* Arr.traverseResult(n => n > 0 ? Result.ok(n) : Result.err("negative"))
|
|
247
247
|
* ); // Ok([1, 2, 3])
|
|
248
248
|
* ```
|
|
249
249
|
*/
|
|
@@ -267,7 +267,7 @@ export declare namespace Arr {
|
|
|
267
267
|
* @example
|
|
268
268
|
* ```ts
|
|
269
269
|
* Arr.sequence([Option.of(1), Option.of(2)]); // Some([1, 2])
|
|
270
|
-
* Arr.sequence([Option.of(1), Option.
|
|
270
|
+
* Arr.sequence([Option.of(1), Option.none()]); // None
|
|
271
271
|
* ```
|
|
272
272
|
*/
|
|
273
273
|
const sequence: <A>(data: readonly Option<A>[]) => Option<readonly A[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Arr.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Arr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAkB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExE;;;;;;;;;;;;;;GAcG;AACH,yBAAiB,GAAG,CAAC;IAGnB;;;;;;;;OAQG;IACI,MAAM,IAAI,GAAI,CAAC,EAAE,MAAM,SAAS,CAAC,EAAE,KAAG,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Arr.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Arr.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { Result } from "./Result.js";
|
|
|
7
7
|
* @example
|
|
8
8
|
* ```ts
|
|
9
9
|
* const findUser = (id: string): Option<User> =>
|
|
10
|
-
* users.has(id) ? Option.of(users.get(id)!) : Option.
|
|
10
|
+
* users.has(id) ? Option.of(users.get(id)!) : Option.none();
|
|
11
11
|
*
|
|
12
12
|
* pipe(
|
|
13
13
|
* findUser("123"),
|
|
@@ -32,7 +32,7 @@ export declare namespace Option {
|
|
|
32
32
|
/**
|
|
33
33
|
* Creates a Some containing the given value.
|
|
34
34
|
*/
|
|
35
|
-
const
|
|
35
|
+
const some: <A>(value: A) => Some<A>;
|
|
36
36
|
/**
|
|
37
37
|
* Type guard that checks if a Option is Some.
|
|
38
38
|
*/
|
|
@@ -40,7 +40,7 @@ export declare namespace Option {
|
|
|
40
40
|
/**
|
|
41
41
|
* Creates a None (empty Option).
|
|
42
42
|
*/
|
|
43
|
-
const
|
|
43
|
+
const none: () => None;
|
|
44
44
|
/**
|
|
45
45
|
* Type guard that checks if a Option is None.
|
|
46
46
|
*/
|
|
@@ -81,7 +81,7 @@ export declare namespace Option {
|
|
|
81
81
|
* ); // Ok(42)
|
|
82
82
|
*
|
|
83
83
|
* pipe(
|
|
84
|
-
* Option.
|
|
84
|
+
* Option.none(),
|
|
85
85
|
* Option.toResult(() => "Value was missing")
|
|
86
86
|
* ); // Err("Value was missing")
|
|
87
87
|
* ```
|
|
@@ -93,8 +93,8 @@ export declare namespace Option {
|
|
|
93
93
|
*
|
|
94
94
|
* @example
|
|
95
95
|
* ```ts
|
|
96
|
-
* Option.fromResult(Result.
|
|
97
|
-
* Option.fromResult(Result.
|
|
96
|
+
* Option.fromResult(Result.ok(42)); // Some(42)
|
|
97
|
+
* Option.fromResult(Result.err("oops")); // None
|
|
98
98
|
* ```
|
|
99
99
|
*/
|
|
100
100
|
const fromResult: <E, A>(data: Result<E, A>) => Option<A>;
|
|
@@ -104,7 +104,7 @@ export declare namespace Option {
|
|
|
104
104
|
* @example
|
|
105
105
|
* ```ts
|
|
106
106
|
* pipe(Option.of(5), Option.map(n => n * 2)); // Some(10)
|
|
107
|
-
* pipe(Option.
|
|
107
|
+
* pipe(Option.none(), Option.map(n => n * 2)); // None
|
|
108
108
|
* ```
|
|
109
109
|
*/
|
|
110
110
|
const map: <A, B>(f: (a: A) => B) => (data: Option<A>) => Option<B>;
|
|
@@ -116,7 +116,7 @@ export declare namespace Option {
|
|
|
116
116
|
* ```ts
|
|
117
117
|
* const parseNumber = (s: string): Option<number> => {
|
|
118
118
|
* const n = parseInt(s, 10);
|
|
119
|
-
* return isNaN(n) ? Option.
|
|
119
|
+
* return isNaN(n) ? Option.none() : Option.of(n);
|
|
120
120
|
* };
|
|
121
121
|
*
|
|
122
122
|
* pipe(Option.of("42"), Option.chain(parseNumber)); // Some(42)
|
|
@@ -163,7 +163,7 @@ export declare namespace Option {
|
|
|
163
163
|
* @example
|
|
164
164
|
* ```ts
|
|
165
165
|
* pipe(Option.of(5), Option.getOrElse(0)); // 5
|
|
166
|
-
* pipe(Option.
|
|
166
|
+
* pipe(Option.none(), Option.getOrElse(0)); // 0
|
|
167
167
|
* ```
|
|
168
168
|
*/
|
|
169
169
|
const getOrElse: <A>(defaultValue: A) => (data: Option<A>) => A;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Option.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAEvC,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEpC,yBAAiB,MAAM,CAAC;IACtB;;;;;;;OAOG;IACI,MAAM,EAAE,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Option.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rec.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Rec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;;;;;;;GAYG;AACH,yBAAiB,GAAG,CAAC;IACnB;;;;;;;OAOG;IACI,MAAM,GAAG,GACb,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAMxF,CAAC;IAEJ;;;;;;;;OAQG;IACI,MAAM,UAAU,GACpB,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MACjC,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAM9D,CAAC;IAEJ;;;;;;;OAOG;IACI,MAAM,MAAM,GAChB,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,MAC/B,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAM9D,CAAC;IAEJ;;;;;;;;OAQG;IACI,MAAM,aAAa,GACvB,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,MAC5C,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAM9D,CAAC;IAEJ;;;;;;;;OAQG;IACI,MAAM,MAAM,GAAI,KAAK,MAAM,MAAM,CAAC,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Rec.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Rec.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { WithError, WithKind, WithValue } from "./InternalTypes.js";
|
|
|
6
6
|
* @example
|
|
7
7
|
* ```ts
|
|
8
8
|
* const divide = (a: number, b: number): Result<string, number> =>
|
|
9
|
-
* b === 0 ? Result.
|
|
9
|
+
* b === 0 ? Result.err("Division by zero") : Result.ok(a / b);
|
|
10
10
|
*
|
|
11
11
|
* pipe(
|
|
12
12
|
* divide(10, 2),
|
|
@@ -31,11 +31,11 @@ export declare namespace Result {
|
|
|
31
31
|
/**
|
|
32
32
|
* Creates a failed Result with the given error.
|
|
33
33
|
*/
|
|
34
|
-
const
|
|
34
|
+
const err: <E>(error: E) => Err<E>;
|
|
35
35
|
/**
|
|
36
36
|
* Creates a successful Result with the given value.
|
|
37
37
|
*/
|
|
38
|
-
const
|
|
38
|
+
const ok: <A>(value: A) => Ok<A>;
|
|
39
39
|
/**
|
|
40
40
|
* Type guard that checks if an Result is Ok.
|
|
41
41
|
*/
|
|
@@ -64,7 +64,7 @@ export declare namespace Result {
|
|
|
64
64
|
* @example
|
|
65
65
|
* ```ts
|
|
66
66
|
* pipe(Result.of(5), Result.map(n => n * 2)); // Ok(10)
|
|
67
|
-
* pipe(Result.
|
|
67
|
+
* pipe(Result.err("error"), Result.map(n => n * 2)); // Err("error")
|
|
68
68
|
* ```
|
|
69
69
|
*/
|
|
70
70
|
const map: <E, A, B>(f: (a: A) => B) => (data: Result<E, A>) => Result<E, B>;
|
|
@@ -73,7 +73,7 @@ export declare namespace Result {
|
|
|
73
73
|
*
|
|
74
74
|
* @example
|
|
75
75
|
* ```ts
|
|
76
|
-
* pipe(Result.
|
|
76
|
+
* pipe(Result.err("oops"), Result.mapError(e => e.toUpperCase())); // Err("OOPS")
|
|
77
77
|
* ```
|
|
78
78
|
*/
|
|
79
79
|
const mapError: <E, F, A>(f: (e: E) => F) => (data: Result<E, A>) => Result<F, A>;
|
|
@@ -84,7 +84,7 @@ export declare namespace Result {
|
|
|
84
84
|
* @example
|
|
85
85
|
* ```ts
|
|
86
86
|
* const validatePositive = (n: number): Result<string, number> =>
|
|
87
|
-
* n > 0 ? Result.of(n) : Result.
|
|
87
|
+
* n > 0 ? Result.of(n) : Result.err("Must be positive");
|
|
88
88
|
*
|
|
89
89
|
* pipe(Result.of(5), Result.chain(validatePositive)); // Ok(5)
|
|
90
90
|
* pipe(Result.of(-1), Result.chain(validatePositive)); // Err("Must be positive")
|
|
@@ -130,7 +130,7 @@ export declare namespace Result {
|
|
|
130
130
|
* @example
|
|
131
131
|
* ```ts
|
|
132
132
|
* pipe(Result.of(5), Result.getOrElse(0)); // 5
|
|
133
|
-
* pipe(Result.
|
|
133
|
+
* pipe(Result.err("error"), Result.getOrElse(0)); // 0
|
|
134
134
|
* ```
|
|
135
135
|
*/
|
|
136
136
|
const getOrElse: <E, A>(defaultValue: A) => (data: Result<E, A>) => A;
|
|
@@ -162,8 +162,8 @@ export declare namespace Result {
|
|
|
162
162
|
*
|
|
163
163
|
* @example
|
|
164
164
|
* ```ts
|
|
165
|
-
* Result.toOption(Result.
|
|
166
|
-
* Result.toOption(Result.
|
|
165
|
+
* Result.toOption(Result.ok(42)); // Some(42)
|
|
166
|
+
* Result.toOption(Result.err("oops")); // None
|
|
167
167
|
* ```
|
|
168
168
|
*/
|
|
169
169
|
const toOption: <E, A>(data: Result<E, A>) => import("./Option.ts").Option<A>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1C,MAAM,MAAM,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAClD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAEtD,yBAAiB,MAAM,CAAC;IACtB;;;;;;;OAOG;IACI,MAAM,EAAE,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Result.ts"],"names":[],"mappings":"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"}
|