@pvorona/failable 0.8.0 → 0.9.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 +170 -42
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +204 -172
- package/dist/lib/failable.d.ts +107 -27
- package/dist/lib/failable.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,6 +12,7 @@ A `Failable<T, E>` is either `Success<T>` or `Failure<E>`.
|
|
|
12
12
|
- `failable(...)` captures thrown or rejected boundaries
|
|
13
13
|
- `run(...)` composes multiple `Failable` steps
|
|
14
14
|
- `all(...)`, `allSettled(...)`, and `race(...)` combine multiple sources
|
|
15
|
+
- `result.map(...)` / `result.flatMap(...)` transform and chain success values
|
|
15
16
|
|
|
16
17
|
## Install
|
|
17
18
|
|
|
@@ -68,10 +69,12 @@ if (result.isFailure) {
|
|
|
68
69
|
| Read the value or provide a fallback | `getOr(...)` / `getOrElse(...)` |
|
|
69
70
|
| Recover to `Success<T>` | `or(...)` / `orElse(...)` |
|
|
70
71
|
| Map both branches to one output | `match(onSuccess, onFailure)` |
|
|
71
|
-
| Throw
|
|
72
|
+
| Throw an `Error` from a failure | `getOrThrow(normalizeOption?)` / `throwIfFailure(result, normalizeOption?)` |
|
|
72
73
|
| Capture a throwing or rejecting boundary | `failable(...)` |
|
|
73
74
|
| Compose multiple `Failable` steps | `run(...)` |
|
|
74
75
|
| Combine multiple `Failable` sources | `all(...)`, `allSettled(...)`, `race(...)` |
|
|
76
|
+
| Transform a successful value only | `map(...)` |
|
|
77
|
+
| Chain another `Failable` step | `flatMap(...)` |
|
|
75
78
|
| Cross a structured-clone boundary | `toFailableLike(...)` + `failable(...)` |
|
|
76
79
|
| Validate `unknown` input | `isFailable(...)`, `isSuccess(...)`, `isFailure(...)`, `isFailableLike(...)` |
|
|
77
80
|
|
|
@@ -81,14 +84,36 @@ Start with ordinary branching on `result.isFailure` or `result.isSuccess`. When
|
|
|
81
84
|
you want something shorter, use the helper that matches the job:
|
|
82
85
|
|
|
83
86
|
- `result.getOr(fallback)`: return the success value or an eager fallback
|
|
84
|
-
- `result.getOrElse(() => fallback)`:
|
|
87
|
+
- `result.getOrElse(() => fallback)`: lazy fallback
|
|
88
|
+
- `result.getOrElse((error) => fallback)`: lazy fallback derived from the failure
|
|
85
89
|
- `result.or(fallback)`: recover to `Success<T>` with an eager fallback
|
|
86
|
-
- `result.orElse(() => fallback)`:
|
|
90
|
+
- `result.orElse(() => fallback)`: lazy recovery to `Success<T>`
|
|
91
|
+
- `result.orElse((error) => fallback)`: lazy recovery to `Success<T>` derived from the failure
|
|
87
92
|
- `result.match(onSuccess, onFailure)`: map both branches to one output
|
|
88
|
-
- `result.getOrThrow()`: return the success value or throw `
|
|
89
|
-
- `
|
|
93
|
+
- `result.getOrThrow(normalizeOption?)`: return the success value or throw an `Error` derived from the failure
|
|
94
|
+
- `throwIfFailure(result, normalizeOption?)`: throw an `Error` derived from the failure and narrow the same variable
|
|
90
95
|
|
|
91
|
-
|
|
96
|
+
Both throw helpers preserve existing `Error` instances unchanged by default.
|
|
97
|
+
Other failure values are normalized with the built-in rules: arrays become
|
|
98
|
+
`AggregateError`; plain objects become `Error` with `cause`; primitives and
|
|
99
|
+
`undefined` become `Error(String(value), { cause: value })`.
|
|
100
|
+
|
|
101
|
+
Pass `NormalizedErrors` or a custom `normalizeError(...)` when you need a
|
|
102
|
+
specific `Error` shape at the throw boundary. Normalize earlier with
|
|
103
|
+
`failable(...)` only when you need that normalized `Error` inside the
|
|
104
|
+
`Failure` channel before anything throws. If built-in message derivation
|
|
105
|
+
itself fails, normalization still returns an `Error` with message
|
|
106
|
+
`Unstringifiable error value` and `cause` set to the original raw value.
|
|
107
|
+
|
|
108
|
+
Use the lazy forms when the fallback is expensive or has side effects. Failure
|
|
109
|
+
callbacks receive the stored error, so `() => ...` can ignore it and
|
|
110
|
+
`(error) => ...` can use it:
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
const port = result.getOrElse((error) => {
|
|
114
|
+
return error.code === 'missing' ? 3000 : 8080;
|
|
115
|
+
});
|
|
116
|
+
```
|
|
92
117
|
|
|
93
118
|
Using `readPort` from above:
|
|
94
119
|
|
|
@@ -102,18 +127,83 @@ const label = result.match(
|
|
|
102
127
|
);
|
|
103
128
|
```
|
|
104
129
|
|
|
105
|
-
`
|
|
130
|
+
`throwIfFailure` narrows the result to `Success` in place, so
|
|
106
131
|
subsequent code can access `.data` without branching:
|
|
107
132
|
|
|
108
133
|
```ts
|
|
109
|
-
import {
|
|
134
|
+
import { throwIfFailure } from '@pvorona/failable';
|
|
110
135
|
|
|
111
136
|
const result = readPort(process.env.PORT);
|
|
112
137
|
|
|
113
|
-
|
|
138
|
+
throwIfFailure(result);
|
|
114
139
|
console.log(result.data * 2);
|
|
115
140
|
```
|
|
116
141
|
|
|
142
|
+
When you want a specific `Error` shape only at the throw site, pass the
|
|
143
|
+
normalize option there:
|
|
144
|
+
|
|
145
|
+
```ts
|
|
146
|
+
import { NormalizedErrors } from '@pvorona/failable';
|
|
147
|
+
|
|
148
|
+
const port = readPort(process.env.PORT).getOrThrow(NormalizedErrors);
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Transform And Chain With `map(...)` And `flatMap(...)`
|
|
152
|
+
|
|
153
|
+
Use `result.map(fn)` when you only need to change the success value. The callback
|
|
154
|
+
runs on `Success` only; on `Failure`, the same failure is returned unchanged.
|
|
155
|
+
|
|
156
|
+
Use `result.flatMap(fn)` when the next step can fail again. The callback must
|
|
157
|
+
return another `Failable`. On `Success`, that result becomes the outcome; on
|
|
158
|
+
`Failure`, `flatMap` short-circuits and keeps the original error.
|
|
159
|
+
|
|
160
|
+
Building on `readPort` from [Basic Usage](#basic-usage):
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
import { failure, success, type Failable } from '@pvorona/failable';
|
|
164
|
+
|
|
165
|
+
type ReadPortError =
|
|
166
|
+
| { code: 'missing' }
|
|
167
|
+
| { code: 'invalid'; raw: string };
|
|
168
|
+
|
|
169
|
+
type ApplicationPortError =
|
|
170
|
+
| ReadPortError
|
|
171
|
+
| { code: 'not_application_port'; port: number };
|
|
172
|
+
|
|
173
|
+
function readPort(raw: string | undefined): Failable<number, ReadPortError> {
|
|
174
|
+
if (raw === undefined) return failure({ code: 'missing' });
|
|
175
|
+
|
|
176
|
+
const port = Number(raw);
|
|
177
|
+
if (!Number.isInteger(port) || port <= 0) {
|
|
178
|
+
return failure({ code: 'invalid', raw });
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return success(port);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function ensureApplicationPort(
|
|
185
|
+
port: number,
|
|
186
|
+
): Failable<number, ApplicationPortError> {
|
|
187
|
+
if (port < 3000 || port > 3999) {
|
|
188
|
+
return failure({ code: 'not_application_port', port });
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return success(port);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
const appPortResult = readPort(process.env.PORT).flatMap((port) =>
|
|
195
|
+
ensureApplicationPort(port),
|
|
196
|
+
);
|
|
197
|
+
|
|
198
|
+
const labelResult = appPortResult.map(
|
|
199
|
+
(port) => `Application listening on ${port}`,
|
|
200
|
+
);
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
When you pass object literals directly into `success(...)` or `failure(...)`,
|
|
204
|
+
TypeScript often keeps their types as narrow as possible (literal fields where
|
|
205
|
+
that makes sense), which helps `switch` on `error.code` and similar patterns.
|
|
206
|
+
|
|
117
207
|
## Capture Thrown Or Rejected Failures With `failable(...)`
|
|
118
208
|
|
|
119
209
|
Use `failable(...)` at a boundary you do not control. It turns a thrown or
|
|
@@ -136,7 +226,8 @@ if (configResult.isFailure) {
|
|
|
136
226
|
```
|
|
137
227
|
|
|
138
228
|
`NormalizedErrors` is the built-in shortcut when you want `.error` to be an
|
|
139
|
-
`Error
|
|
229
|
+
`Error`, including when the thrown or rejected non-`Error` value cannot be
|
|
230
|
+
stringified safely.
|
|
140
231
|
|
|
141
232
|
Pass a promise directly when you want rejection capture:
|
|
142
233
|
|
|
@@ -157,20 +248,34 @@ const config = fileResult.getOr('{}');
|
|
|
157
248
|
- preserve an existing `Failable`
|
|
158
249
|
- rehydrate a `FailableLike`
|
|
159
250
|
- capture sync throws from a callback
|
|
160
|
-
- capture promise rejections from a promise
|
|
251
|
+
- capture promise rejections from a promise passed directly
|
|
161
252
|
- normalize failures with `NormalizedErrors` or a custom `normalizeError(...)`
|
|
162
253
|
|
|
163
254
|
By default, the thrown or rejected value becomes `.error` unchanged.
|
|
164
255
|
|
|
165
|
-
Pass the promise itself when you want rejection capture.
|
|
166
|
-
`
|
|
167
|
-
|
|
256
|
+
Pass the promise itself when you want rejection capture. In TypeScript,
|
|
257
|
+
obviously promise-returning callbacks like `async () => ...` and
|
|
258
|
+
`() => Promise.resolve(...)` are rejected. JS callers, plus `any`/`unknown`-typed
|
|
259
|
+
callbacks, receive a `Failure<Error>` telling them to pass the promise directly
|
|
260
|
+
instead.
|
|
168
261
|
|
|
169
262
|
## Compose Existing `Failable` Steps With `run(...)`
|
|
170
263
|
|
|
171
264
|
Use `run(...)` when each step already returns `Failable` and you want to write
|
|
172
|
-
the success path once. If any yielded step fails,
|
|
173
|
-
|
|
265
|
+
the success path once. If any yielded step fails, that failure becomes the
|
|
266
|
+
default unwind result. Cleanup still runs first, and an explicit `return`
|
|
267
|
+
reached in `finally` overrides it. Yielded cleanup `Failure` values keep the
|
|
268
|
+
current unwind result unless a later cleanup `return` overrides it.
|
|
269
|
+
|
|
270
|
+
Inside a `run(...)` builder, there are two valid delegation forms:
|
|
271
|
+
|
|
272
|
+
- `yield* result` when `result` is already a hydrated `Failable`
|
|
273
|
+
- `yield* await promisedResult` in async builders when you have a
|
|
274
|
+
`Promise<Failable<...>>`
|
|
275
|
+
|
|
276
|
+
Hydrated `Failable` values expose sync and async iterators so `run(...)` can
|
|
277
|
+
intercept `yield* result` in both sync and async builders. Outside `run(...)`,
|
|
278
|
+
treat them as result objects rather than as a general-purpose collection API.
|
|
174
279
|
|
|
175
280
|
Without `run(...)`, composing steps means checking each result before
|
|
176
281
|
continuing:
|
|
@@ -267,17 +372,17 @@ type Profile = { id: string; pictureUrl: string };
|
|
|
267
372
|
async function readJson<T>(url: string) {
|
|
268
373
|
const responseResult = await failable(fetch(url));
|
|
269
374
|
if (responseResult.isFailure) {
|
|
270
|
-
return failure({ code: 'network_error', cause: responseResult.error }
|
|
375
|
+
return failure({ code: 'network_error', cause: responseResult.error });
|
|
271
376
|
}
|
|
272
377
|
|
|
273
378
|
const response = responseResult.data;
|
|
274
379
|
if (!response.ok) {
|
|
275
|
-
return failure({ code: 'http_error', status: response.status }
|
|
380
|
+
return failure({ code: 'http_error', status: response.status });
|
|
276
381
|
}
|
|
277
382
|
|
|
278
383
|
const jsonResult = await failable(response.json());
|
|
279
384
|
if (jsonResult.isFailure) {
|
|
280
|
-
return failure({ code: 'json_parse_error', cause: jsonResult.error }
|
|
385
|
+
return failure({ code: 'json_parse_error', cause: jsonResult.error });
|
|
281
386
|
}
|
|
282
387
|
|
|
283
388
|
return success(jsonResult.data as T);
|
|
@@ -305,7 +410,10 @@ async function loadUserPage(
|
|
|
305
410
|
}
|
|
306
411
|
```
|
|
307
412
|
|
|
308
|
-
- if a yielded step fails,
|
|
413
|
+
- if a yielded step fails, that failure becomes the default unwind result
|
|
414
|
+
- cleanup still runs, and the last explicit `return` reached in `finally` wins
|
|
415
|
+
- yielded cleanup `Failure` values keep the current unwind result unless a
|
|
416
|
+
later cleanup `return` overrides it
|
|
309
417
|
- sync hydrated `Failable` helpers can use direct `yield* helper()` in both sync
|
|
310
418
|
and async builders
|
|
311
419
|
- promised sources in async builders use `yield* await promisedHelper()`
|
|
@@ -313,11 +421,13 @@ async function loadUserPage(
|
|
|
313
421
|
parallel and get a success tuple or the first failure
|
|
314
422
|
- use `yield* all(...)` in sync builders when every source is already a hydrated
|
|
315
423
|
`Failable`
|
|
316
|
-
- use `
|
|
317
|
-
|
|
318
|
-
- use `yield*
|
|
319
|
-
|
|
320
|
-
|
|
424
|
+
- use `await allSettled(...)` to inspect the settled tuple of sources that
|
|
425
|
+
resolve to `Failable`; source promise rejections still reject unchanged
|
|
426
|
+
- use `yield* race(...)` when every raced source is already a hydrated
|
|
427
|
+
`Failable`
|
|
428
|
+
- use `yield* await race(...)` when any raced source is promised
|
|
429
|
+
- direct promised sources still follow normal async `await` / `try` /
|
|
430
|
+
`finally` semantics rather than a helper-managed rejection path
|
|
321
431
|
- `run(...)` does not capture thrown values or rejected promises into `Failure`;
|
|
322
432
|
wrap throwing boundaries with `failable(...)` before they enter `run(...)`
|
|
323
433
|
|
|
@@ -331,35 +441,50 @@ builders.
|
|
|
331
441
|
import {
|
|
332
442
|
all,
|
|
333
443
|
allSettled,
|
|
444
|
+
failure,
|
|
334
445
|
race,
|
|
335
446
|
success,
|
|
336
|
-
type Failable,
|
|
337
447
|
} from '@pvorona/failable';
|
|
338
448
|
|
|
339
|
-
const syncTuple = all(success(1
|
|
449
|
+
const syncTuple = all(success(1), success('two'));
|
|
340
450
|
const mixedTuple = await all(
|
|
341
|
-
success(1
|
|
342
|
-
Promise.resolve(success('two'
|
|
451
|
+
success(1),
|
|
452
|
+
Promise.resolve(success('two'))
|
|
343
453
|
);
|
|
344
454
|
|
|
345
455
|
const settled = await allSettled(
|
|
346
|
-
Promise.resolve(success(1
|
|
347
|
-
Promise.resolve
|
|
456
|
+
Promise.resolve(success(1)),
|
|
457
|
+
Promise.resolve(failure('missing-profile'))
|
|
458
|
+
);
|
|
459
|
+
|
|
460
|
+
const syncWinner = race(
|
|
461
|
+
success('cached'),
|
|
462
|
+
success('stale')
|
|
348
463
|
);
|
|
349
464
|
|
|
350
|
-
const
|
|
351
|
-
|
|
352
|
-
Promise.resolve(success('
|
|
465
|
+
const mixedWinner = await race(
|
|
466
|
+
success('cached'),
|
|
467
|
+
Promise.resolve(success('network'))
|
|
353
468
|
);
|
|
354
469
|
```
|
|
355
470
|
|
|
356
471
|
Key semantics:
|
|
357
472
|
|
|
358
473
|
- `all(...)` returns the first failure in input order
|
|
359
|
-
- `allSettled(...)`
|
|
360
|
-
-
|
|
361
|
-
|
|
362
|
-
- `
|
|
474
|
+
- `allSettled(...)` returns a plain settled tuple rather than a `Success` wrapper
|
|
475
|
+
- `allSettled(...)` preserves `Failure` values in the returned settled tuple
|
|
476
|
+
- `allSettled(...)` only settles sources that resolve to `Failable` values
|
|
477
|
+
- promised source rejections in `allSettled(...)` still reject the combinator
|
|
478
|
+
- wrap rejecting boundaries with `failable(...)` first if you want a rejection
|
|
479
|
+
converted into `Failure`
|
|
480
|
+
- bare `Promise.reject(...)` inputs are rejected at type level as a best-effort
|
|
481
|
+
guardrail; TypeScript still cannot model arbitrary promise rejection channels
|
|
482
|
+
precisely
|
|
483
|
+
- `race(...)` accepts sync or promised `Failable` sources
|
|
484
|
+
- `race(...)` returns sync `Failable` when every source is sync, otherwise
|
|
485
|
+
`Promise<Failable>`
|
|
486
|
+
- when `race(...)` mixes already-settled sync and promised sources, winner
|
|
487
|
+
order follows normal `Promise.race(...)` input ordering
|
|
363
488
|
- `race()` with zero sources rejects with a clear error instead of hanging
|
|
364
489
|
|
|
365
490
|
## Transport And Runtime Validation
|
|
@@ -376,7 +501,7 @@ import {
|
|
|
376
501
|
toFailableLike,
|
|
377
502
|
} from '@pvorona/failable';
|
|
378
503
|
|
|
379
|
-
const result = failure({ code: 'missing'
|
|
504
|
+
const result = failure({ code: 'missing' });
|
|
380
505
|
|
|
381
506
|
const wire = toFailableLike(result);
|
|
382
507
|
const hydrated = failable(wire);
|
|
@@ -406,14 +531,17 @@ if (isFailable(candidate) && candidate.isFailure) {
|
|
|
406
531
|
- `type Success<T>` / `type Failure<E>`: hydrated result variants
|
|
407
532
|
- `type FailableLike<T, E>`: structured-clone-friendly wire shape
|
|
408
533
|
- `success()` / `success(data)` / `failure()` / `failure(error)`: create hydrated results
|
|
409
|
-
- `
|
|
410
|
-
unchanged
|
|
534
|
+
- `throwIfFailure(result, normalizeOption?)` / `result.getOrThrow(normalizeOption?)`:
|
|
535
|
+
throw an `Error`, preserving existing `Error` instances unchanged by default
|
|
411
536
|
- `failable(...)`: preserve, rehydrate, capture, or normalize failures at
|
|
412
537
|
a boundary
|
|
413
538
|
- `run(...)`: compose `Failable` steps without nested branching
|
|
539
|
+
- `result.map(...)`: transform success data; failures pass through unchanged
|
|
540
|
+
- `result.flatMap(...)`: chain another `Failable`; failures short-circuit
|
|
414
541
|
- `toFailableLike(...)`: convert a hydrated result into a wire shape
|
|
415
542
|
- `isFailableLike(...)`: validate a wire shape
|
|
416
543
|
- `isFailable(...)`, `isSuccess(...)`, `isFailure(...)`: validate hydrated
|
|
417
544
|
results
|
|
418
|
-
- `NormalizedErrors`: built-in `Error` normalization for `failable(...)`
|
|
545
|
+
- `NormalizedErrors`: built-in `Error` normalization for `failable(...)` and
|
|
546
|
+
throw-boundary helpers
|
|
419
547
|
- `FailableStatus`: runtime success/failure status values
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { all, allSettled, FailableStatus, NormalizedErrors, failable, failure, isFailable, isFailableLike, isFailure, isSuccess, race, run, success,
|
|
1
|
+
export { all, allSettled, FailableStatus, NormalizedErrors, failable, failure, isFailable, isFailableLike, isFailure, isSuccess, race, run, success, throwIfFailure, toFailableLike, } from './lib/failable.js';
|
|
2
2
|
export type { FailableNormalizeErrorOptions, Failable, FailableLike, FailableLikeFailure, FailableLikeSuccess, Failure, Success, } from './lib/failable.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,IAAI,EACJ,GAAG,EACH,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,IAAI,EACJ,GAAG,EACH,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,6BAA6B,EAC7B,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,OAAO,GACR,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,41 +1,56 @@
|
|
|
1
|
-
import { isFunction as b, isObject as
|
|
2
|
-
import { notImplemented as
|
|
3
|
-
const
|
|
1
|
+
import { isFunction as b, isObject as c, hasOwnPropertyValue as j, hasOwnKey as I } from "@pvorona/assert";
|
|
2
|
+
import { notImplemented as o } from "@pvorona/not-implemented";
|
|
3
|
+
const P = /* @__PURE__ */ Symbol("Failable"), L = /* @__PURE__ */ Symbol("Success"), _ = /* @__PURE__ */ Symbol("Failure"), n = Object.freeze({
|
|
4
4
|
Success: "success",
|
|
5
5
|
Failure: "failure"
|
|
6
|
-
}),
|
|
6
|
+
}), x = Object.freeze({
|
|
7
7
|
mode: "normalized-errors"
|
|
8
8
|
});
|
|
9
|
-
function
|
|
10
|
-
return
|
|
9
|
+
function D(r) {
|
|
10
|
+
return c(r) && Object.keys(r).length === 2 && j(r, "status", n.Success) && I(r, "data");
|
|
11
11
|
}
|
|
12
|
-
function
|
|
13
|
-
return
|
|
12
|
+
function V(r) {
|
|
13
|
+
return c(r) && Object.keys(r).length === 2 && j(r, "status", n.Failure) && I(r, "error");
|
|
14
14
|
}
|
|
15
|
-
function
|
|
16
|
-
return
|
|
15
|
+
function y(r) {
|
|
16
|
+
return V(r) || D(r);
|
|
17
17
|
}
|
|
18
|
-
const
|
|
19
|
-
[
|
|
18
|
+
const G = {
|
|
19
|
+
[P]: !0,
|
|
20
20
|
isSuccess: !1,
|
|
21
21
|
isFailure: !1,
|
|
22
22
|
data: null,
|
|
23
23
|
error: null,
|
|
24
|
-
or:
|
|
25
|
-
orElse:
|
|
26
|
-
getOr:
|
|
27
|
-
getOrElse:
|
|
28
|
-
getOrThrow:
|
|
29
|
-
match:
|
|
24
|
+
or: o,
|
|
25
|
+
orElse: o,
|
|
26
|
+
getOr: o,
|
|
27
|
+
getOrElse: o,
|
|
28
|
+
getOrThrow: o,
|
|
29
|
+
match: o,
|
|
30
|
+
map: o,
|
|
31
|
+
flatMap: o,
|
|
30
32
|
[Symbol.iterator]: function() {
|
|
31
|
-
return
|
|
33
|
+
return Q(this);
|
|
32
34
|
},
|
|
33
35
|
[Symbol.asyncIterator]: function() {
|
|
34
|
-
return
|
|
36
|
+
return W(this);
|
|
35
37
|
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return r
|
|
38
|
+
};
|
|
39
|
+
function O(r, e) {
|
|
40
|
+
return r(e);
|
|
41
|
+
}
|
|
42
|
+
function K(r, e) {
|
|
43
|
+
if (e === void 0)
|
|
44
|
+
return m(r);
|
|
45
|
+
const t = C(e);
|
|
46
|
+
return t === null ? m(r) : r instanceof Error && A(e) ? r : t(r);
|
|
47
|
+
}
|
|
48
|
+
function M(r, e) {
|
|
49
|
+
throw K(r, e);
|
|
50
|
+
}
|
|
51
|
+
const H = (() => {
|
|
52
|
+
const r = Object.create(G);
|
|
53
|
+
return r[L] = !0, r.status = n.Success, r.isSuccess = !0, r.or = function() {
|
|
39
54
|
return this;
|
|
40
55
|
}, r.orElse = function() {
|
|
41
56
|
return this;
|
|
@@ -43,60 +58,66 @@ const I = {
|
|
|
43
58
|
return this.data;
|
|
44
59
|
}, r.getOrElse = function() {
|
|
45
60
|
return this.data;
|
|
46
|
-
}, r.getOrThrow = function() {
|
|
61
|
+
}, r.getOrThrow = function(t) {
|
|
47
62
|
return this.data;
|
|
48
63
|
}, r.match = function(t) {
|
|
49
64
|
return t(this.data);
|
|
65
|
+
}, r.map = function(t) {
|
|
66
|
+
return s(t(this.data));
|
|
67
|
+
}, r.flatMap = function(t) {
|
|
68
|
+
return t(this.data);
|
|
50
69
|
}, Object.freeze(r);
|
|
51
|
-
})(),
|
|
52
|
-
const r = Object.create(
|
|
53
|
-
return r[
|
|
54
|
-
return
|
|
70
|
+
})(), q = (() => {
|
|
71
|
+
const r = Object.create(G);
|
|
72
|
+
return r[_] = !0, r.status = n.Failure, r.isFailure = !0, r.or = function(t) {
|
|
73
|
+
return s(t);
|
|
55
74
|
}, r.orElse = function(t) {
|
|
56
|
-
return
|
|
75
|
+
return s(O(t, this.error));
|
|
57
76
|
}, r.getOr = function(t) {
|
|
58
77
|
return t;
|
|
59
78
|
}, r.getOrElse = function(t) {
|
|
60
|
-
return t
|
|
61
|
-
}, r.getOrThrow = function() {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}, r.
|
|
66
|
-
return
|
|
79
|
+
return O(t, this.error);
|
|
80
|
+
}, r.getOrThrow = function(t) {
|
|
81
|
+
M(this.error, t);
|
|
82
|
+
}, r.match = function(t, u) {
|
|
83
|
+
return u(this.error);
|
|
84
|
+
}, r.map = function() {
|
|
85
|
+
return this;
|
|
86
|
+
}, r.flatMap = function() {
|
|
87
|
+
return this;
|
|
67
88
|
}, Object.freeze(r);
|
|
68
89
|
})();
|
|
69
|
-
function
|
|
70
|
-
return
|
|
90
|
+
function g(r, e) {
|
|
91
|
+
return c(r) ? r[e] === !0 : !1;
|
|
71
92
|
}
|
|
72
|
-
function
|
|
73
|
-
return
|
|
93
|
+
function a(r) {
|
|
94
|
+
return g(r, P);
|
|
74
95
|
}
|
|
75
|
-
function
|
|
76
|
-
return
|
|
96
|
+
function hr(r) {
|
|
97
|
+
return g(r, L);
|
|
77
98
|
}
|
|
78
|
-
function
|
|
79
|
-
return
|
|
99
|
+
function dr(r) {
|
|
100
|
+
return g(r, _);
|
|
80
101
|
}
|
|
81
|
-
function
|
|
82
|
-
const e = Object.create(
|
|
102
|
+
function s(r) {
|
|
103
|
+
const e = Object.create(H);
|
|
83
104
|
return e.data = r, Object.freeze(e);
|
|
84
105
|
}
|
|
85
106
|
function l(r) {
|
|
86
|
-
const e = Object.create(
|
|
107
|
+
const e = Object.create(q);
|
|
87
108
|
return e.error = r, Object.freeze(e);
|
|
88
109
|
}
|
|
89
|
-
function
|
|
90
|
-
|
|
110
|
+
function Sr(r, e) {
|
|
111
|
+
r.status === n.Failure && M(r.error, e);
|
|
91
112
|
}
|
|
92
|
-
function
|
|
113
|
+
function mr(r) {
|
|
93
114
|
return r.status === n.Failure ? { status: n.Failure, error: r.error } : { status: n.Success, data: r.data };
|
|
94
115
|
}
|
|
95
|
-
const
|
|
116
|
+
const J = "`failable(() => ...)` only accepts synchronous callbacks. This callback returned a Promise. Pass the promise directly instead: `await failable(promise)`.", T = /* @__PURE__ */ Symbol(
|
|
96
117
|
"FailablePromiseCallbackGuard"
|
|
97
|
-
),
|
|
118
|
+
), Y = /* @__PURE__ */ Symbol("RunGet");
|
|
98
119
|
class f {
|
|
99
|
-
[
|
|
120
|
+
[Y] = !0;
|
|
100
121
|
source;
|
|
101
122
|
constructor(e) {
|
|
102
123
|
this.source = e;
|
|
@@ -105,203 +126,196 @@ class f {
|
|
|
105
126
|
return new f(e);
|
|
106
127
|
}
|
|
107
128
|
}
|
|
108
|
-
const
|
|
109
|
-
function*
|
|
129
|
+
const h = "`run()` generators must use `yield*` only with hydrated `Failable` values. Use `yield* helper()` for sync helpers and `yield* await promisedHelper()` for promised sources.", v = "`run()` generators must return a `Failable` or finish without returning a value.";
|
|
130
|
+
function* Q(r) {
|
|
110
131
|
return yield f.create(r);
|
|
111
132
|
}
|
|
112
|
-
async function*
|
|
133
|
+
async function* W(r) {
|
|
113
134
|
return yield f.create(r);
|
|
114
135
|
}
|
|
115
|
-
function
|
|
116
|
-
return !
|
|
136
|
+
function k(r) {
|
|
137
|
+
return !c(r) && !b(r) ? !1 : b(r.then);
|
|
117
138
|
}
|
|
118
|
-
const
|
|
139
|
+
const X = Object.freeze({});
|
|
119
140
|
function E(r) {
|
|
120
|
-
return
|
|
141
|
+
return a(r) ? r : l(r);
|
|
121
142
|
}
|
|
122
|
-
function
|
|
143
|
+
function F(r) {
|
|
123
144
|
for (const e of r)
|
|
124
|
-
if (
|
|
145
|
+
if (k(e)) return !0;
|
|
125
146
|
return !1;
|
|
126
147
|
}
|
|
127
|
-
async function
|
|
148
|
+
async function N(r) {
|
|
128
149
|
return (await Promise.all(
|
|
129
150
|
r.map((t) => Promise.resolve(t))
|
|
130
151
|
)).map((t) => E(t));
|
|
131
152
|
}
|
|
132
|
-
function
|
|
153
|
+
function p(r) {
|
|
133
154
|
for (const t of r)
|
|
134
155
|
if (t.status === n.Failure)
|
|
135
156
|
return t;
|
|
136
157
|
const e = r.map(
|
|
137
158
|
(t) => t.data
|
|
138
159
|
);
|
|
139
|
-
return
|
|
140
|
-
}
|
|
141
|
-
function g(r) {
|
|
142
|
-
return u(r);
|
|
160
|
+
return s(e);
|
|
143
161
|
}
|
|
144
|
-
function
|
|
145
|
-
return
|
|
146
|
-
(e) =>
|
|
147
|
-
) :
|
|
162
|
+
function yr(...r) {
|
|
163
|
+
return F(r) ? N(r).then(
|
|
164
|
+
(e) => p(e)
|
|
165
|
+
) : p(
|
|
148
166
|
r.map((e) => E(e))
|
|
149
167
|
);
|
|
150
168
|
}
|
|
151
|
-
function
|
|
152
|
-
return
|
|
153
|
-
(e) =>
|
|
154
|
-
) :
|
|
155
|
-
r.map((e) => E(e))
|
|
156
|
-
);
|
|
169
|
+
function gr(...r) {
|
|
170
|
+
return F(r) ? N(r).then(
|
|
171
|
+
(e) => e
|
|
172
|
+
) : r.map((e) => E(e));
|
|
157
173
|
}
|
|
158
|
-
function
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
);
|
|
163
|
-
for (const e of r)
|
|
164
|
-
if (!S(e))
|
|
165
|
-
return Promise.reject(
|
|
166
|
-
new Error("`race()` only accepts promised `Failable` sources.")
|
|
167
|
-
);
|
|
168
|
-
return Promise.race(r.map((e) => Promise.resolve(e))).then(
|
|
174
|
+
function Fr(...r) {
|
|
175
|
+
return r.length === 0 ? Promise.reject(
|
|
176
|
+
new Error("`race()` requires at least one `Failable` source.")
|
|
177
|
+
) : F(r) ? Promise.race(r.map((e) => Promise.resolve(e))).then(
|
|
169
178
|
(e) => E(e)
|
|
170
|
-
);
|
|
179
|
+
) : E(r[0]);
|
|
171
180
|
}
|
|
172
|
-
function
|
|
181
|
+
function U(r) {
|
|
173
182
|
if (!(r instanceof f))
|
|
174
|
-
throw new Error(
|
|
183
|
+
throw new Error(h);
|
|
175
184
|
const e = r.source;
|
|
176
|
-
if (!
|
|
177
|
-
throw new Error(
|
|
185
|
+
if (!a(e))
|
|
186
|
+
throw new Error(h);
|
|
178
187
|
return e;
|
|
179
188
|
}
|
|
180
|
-
async function
|
|
189
|
+
async function z(r) {
|
|
181
190
|
if (!(r instanceof f))
|
|
182
|
-
throw new Error(
|
|
191
|
+
throw new Error(h);
|
|
183
192
|
const e = await r.source;
|
|
184
|
-
if (!
|
|
185
|
-
throw new Error(
|
|
193
|
+
if (!a(e))
|
|
194
|
+
throw new Error(h);
|
|
186
195
|
return e;
|
|
187
196
|
}
|
|
188
|
-
function
|
|
197
|
+
function Z(r, e) {
|
|
189
198
|
let t = r.return(e);
|
|
190
199
|
for (; !t.done; ) {
|
|
191
|
-
const
|
|
192
|
-
if (
|
|
200
|
+
const u = U(t.value);
|
|
201
|
+
if (u.status === n.Failure) {
|
|
193
202
|
t = r.return(e);
|
|
194
203
|
continue;
|
|
195
204
|
}
|
|
196
|
-
t = r.next(
|
|
205
|
+
t = r.next(u.data);
|
|
197
206
|
}
|
|
207
|
+
return d(t.value);
|
|
198
208
|
}
|
|
199
|
-
async function
|
|
209
|
+
async function $(r, e) {
|
|
200
210
|
let t = await r.return(e);
|
|
201
211
|
for (; !t.done; ) {
|
|
202
|
-
const
|
|
203
|
-
if (
|
|
212
|
+
const u = await z(t.value);
|
|
213
|
+
if (u.status === n.Failure) {
|
|
204
214
|
t = await r.return(e);
|
|
205
215
|
continue;
|
|
206
216
|
}
|
|
207
|
-
t = await r.next(
|
|
217
|
+
t = await r.next(u.data);
|
|
208
218
|
}
|
|
219
|
+
return d(t.value);
|
|
209
220
|
}
|
|
210
|
-
function
|
|
211
|
-
if (
|
|
221
|
+
function d(r) {
|
|
222
|
+
if (a(r))
|
|
212
223
|
return r;
|
|
213
224
|
if (r === void 0)
|
|
214
|
-
return
|
|
215
|
-
throw new Error(
|
|
225
|
+
return s();
|
|
226
|
+
throw new Error(v);
|
|
216
227
|
}
|
|
217
|
-
function
|
|
228
|
+
function rr(r) {
|
|
218
229
|
return Symbol.asyncIterator in r;
|
|
219
230
|
}
|
|
220
|
-
function
|
|
231
|
+
function er(r) {
|
|
221
232
|
let e = r.next();
|
|
222
233
|
for (; !e.done; ) {
|
|
223
|
-
const t =
|
|
234
|
+
const t = U(e.value);
|
|
224
235
|
if (t.status === n.Failure)
|
|
225
|
-
return
|
|
236
|
+
return Z(r, t);
|
|
226
237
|
e = r.next(t.data);
|
|
227
238
|
}
|
|
228
|
-
return
|
|
239
|
+
return d(e.value);
|
|
229
240
|
}
|
|
230
|
-
async function
|
|
241
|
+
async function tr(r) {
|
|
231
242
|
let e = await r.next();
|
|
232
243
|
for (; !e.done; ) {
|
|
233
|
-
const t = await
|
|
244
|
+
const t = await z(e.value);
|
|
234
245
|
if (t.status === n.Failure)
|
|
235
|
-
return
|
|
246
|
+
return $(r, t);
|
|
236
247
|
e = await r.next(t.data);
|
|
237
248
|
}
|
|
238
|
-
return
|
|
249
|
+
return d(e.value);
|
|
239
250
|
}
|
|
240
|
-
function
|
|
241
|
-
const e = r(
|
|
242
|
-
return
|
|
251
|
+
function wr(r) {
|
|
252
|
+
const e = r(X);
|
|
253
|
+
return rr(e) ? tr(e) : er(e);
|
|
243
254
|
}
|
|
244
|
-
function
|
|
245
|
-
return
|
|
255
|
+
function Ar(r, e) {
|
|
256
|
+
return a(r) ? i(r, e) : y(r) ? i(w(r), e) : b(r) ? or(r, e) : sr(r, e);
|
|
246
257
|
}
|
|
247
258
|
function w(r) {
|
|
248
|
-
return r.status === n.Success ?
|
|
259
|
+
return r.status === n.Success ? s(r.data) : l(r.error);
|
|
249
260
|
}
|
|
250
|
-
function
|
|
261
|
+
function nr() {
|
|
251
262
|
const r = new Error(
|
|
252
|
-
|
|
263
|
+
J
|
|
253
264
|
);
|
|
254
|
-
return Object.defineProperty(r,
|
|
265
|
+
return Object.defineProperty(r, T, {
|
|
255
266
|
value: !0,
|
|
256
267
|
enumerable: !1,
|
|
257
268
|
configurable: !1,
|
|
258
269
|
writable: !1
|
|
259
270
|
}), r;
|
|
260
271
|
}
|
|
261
|
-
function
|
|
262
|
-
return r instanceof Error ? Object.getOwnPropertyDescriptor(
|
|
272
|
+
function ur(r) {
|
|
273
|
+
return r instanceof Error ? Object.getOwnPropertyDescriptor(
|
|
274
|
+
r,
|
|
275
|
+
T
|
|
276
|
+
)?.value === !0 : !1;
|
|
263
277
|
}
|
|
264
|
-
function
|
|
278
|
+
function ir(r) {
|
|
265
279
|
Promise.resolve(r).catch(() => {
|
|
266
280
|
});
|
|
267
281
|
}
|
|
268
|
-
function
|
|
282
|
+
function or(r, e) {
|
|
269
283
|
try {
|
|
270
284
|
const t = r();
|
|
271
|
-
return
|
|
272
|
-
l(
|
|
285
|
+
return k(t) ? (ir(t), i(
|
|
286
|
+
l(nr()),
|
|
273
287
|
e
|
|
274
|
-
)) :
|
|
288
|
+
)) : a(t) ? i(t, e) : y(t) ? i(w(t), e) : s(t);
|
|
275
289
|
} catch (t) {
|
|
276
290
|
return i(l(t), e);
|
|
277
291
|
}
|
|
278
292
|
}
|
|
279
|
-
function
|
|
293
|
+
function sr(r, e) {
|
|
280
294
|
return Promise.resolve(r).then(
|
|
281
|
-
(t) =>
|
|
295
|
+
(t) => a(t) ? i(t, e) : y(t) ? i(w(t), e) : s(t),
|
|
282
296
|
(t) => i(l(t), e)
|
|
283
297
|
);
|
|
284
298
|
}
|
|
285
299
|
function i(r, e) {
|
|
286
|
-
if (r.status === n.Success ||
|
|
287
|
-
const t =
|
|
288
|
-
return t === null || r.error instanceof Error && e !== void 0 &&
|
|
300
|
+
if (r.status === n.Success || ur(r.error)) return r;
|
|
301
|
+
const t = C(e);
|
|
302
|
+
return t === null || r.error instanceof Error && e !== void 0 && A(e) ? r : l(t(r.error));
|
|
289
303
|
}
|
|
290
|
-
function
|
|
291
|
-
return r === void 0 ? null :
|
|
304
|
+
function C(r) {
|
|
305
|
+
return r === void 0 ? null : A(r) ? m : cr(r) ? r.normalizeError : null;
|
|
292
306
|
}
|
|
293
|
-
function
|
|
294
|
-
return !
|
|
307
|
+
function A(r) {
|
|
308
|
+
return !c(r) || Object.keys(r).length !== 1 ? !1 : Object.getOwnPropertyDescriptor(r, "mode")?.value === x.mode;
|
|
295
309
|
}
|
|
296
|
-
function
|
|
297
|
-
return
|
|
310
|
+
function cr(r) {
|
|
311
|
+
return c(r) ? b(r.normalizeError) : !1;
|
|
298
312
|
}
|
|
299
|
-
function
|
|
300
|
-
if (!
|
|
313
|
+
function ar(r) {
|
|
314
|
+
if (!c(r) || Array.isArray(r)) return !1;
|
|
301
315
|
const e = Object.getPrototypeOf(r);
|
|
302
316
|
return e === Object.prototype || e === null;
|
|
303
317
|
}
|
|
304
|
-
function
|
|
318
|
+
function R(r) {
|
|
305
319
|
try {
|
|
306
320
|
const e = JSON.stringify(r);
|
|
307
321
|
if (typeof e == "string") return e;
|
|
@@ -310,33 +324,51 @@ function F(r) {
|
|
|
310
324
|
}
|
|
311
325
|
return null;
|
|
312
326
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
return
|
|
327
|
+
const S = "Unstringifiable error value";
|
|
328
|
+
function B(r) {
|
|
329
|
+
try {
|
|
330
|
+
return String(r);
|
|
331
|
+
} catch {
|
|
332
|
+
return null;
|
|
317
333
|
}
|
|
318
|
-
const e = String(r);
|
|
319
|
-
if (e !== "[object Object]") return e;
|
|
320
|
-
const t = F(r);
|
|
321
|
-
return t === null ? e : t;
|
|
322
334
|
}
|
|
323
|
-
function
|
|
324
|
-
|
|
335
|
+
function lr(r) {
|
|
336
|
+
try {
|
|
337
|
+
return Object.prototype.toString.call(r);
|
|
338
|
+
} catch {
|
|
339
|
+
return null;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
function fr(r) {
|
|
343
|
+
if (Object.getPrototypeOf(r) === null) {
|
|
344
|
+
const u = R(r);
|
|
345
|
+
return u !== null ? u : lr(r) ?? S;
|
|
346
|
+
}
|
|
347
|
+
const e = B(r);
|
|
348
|
+
if (e !== null && e !== "[object Object]") return e;
|
|
349
|
+
const t = R(r);
|
|
350
|
+
return t !== null ? t : e ?? S;
|
|
351
|
+
}
|
|
352
|
+
function m(r) {
|
|
353
|
+
return r instanceof Error ? r : Array.isArray(r) ? new AggregateError(r, "Multiple errors", { cause: r }) : ar(r) ? new Error(fr(r), { cause: r }) : new Error(
|
|
354
|
+
B(r) ?? S,
|
|
355
|
+
{ cause: r }
|
|
356
|
+
);
|
|
325
357
|
}
|
|
326
358
|
export {
|
|
327
359
|
n as FailableStatus,
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
360
|
+
x as NormalizedErrors,
|
|
361
|
+
yr as all,
|
|
362
|
+
gr as allSettled,
|
|
363
|
+
Ar as failable,
|
|
332
364
|
l as failure,
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
365
|
+
a as isFailable,
|
|
366
|
+
y as isFailableLike,
|
|
367
|
+
dr as isFailure,
|
|
368
|
+
hr as isSuccess,
|
|
369
|
+
Fr as race,
|
|
370
|
+
wr as run,
|
|
371
|
+
s as success,
|
|
372
|
+
Sr as throwIfFailure,
|
|
373
|
+
mr as toFailableLike
|
|
342
374
|
};
|
package/dist/lib/failable.d.ts
CHANGED
|
@@ -10,11 +10,27 @@ export type FailableNormalizeErrorOptions = {
|
|
|
10
10
|
readonly normalizeError: (error: unknown) => Error;
|
|
11
11
|
};
|
|
12
12
|
type FailableNormalizeErrorInput = typeof NormalizedErrors | FailableNormalizeErrorOptions;
|
|
13
|
+
type LazyFallback<U, E> = (error: E) => U;
|
|
13
14
|
type Match<T, E> = <U>(onSuccess: (data: T) => U, onFailure: (error: E) => U) => U;
|
|
14
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Hydrated `Failable` values are sync-iterable only so `run(...)` can intercept
|
|
17
|
+
* `yield* result` through its existing step protocol.
|
|
18
|
+
*
|
|
19
|
+
* Outside `run(...)`, treat them as result objects rather than as a
|
|
20
|
+
* general-purpose collection API.
|
|
21
|
+
*/
|
|
22
|
+
export type Failable<T, E> = (Omit<Success<T>, 'orElse' | 'getOrElse' | 'map' | 'flatMap'> & {
|
|
23
|
+
readonly orElse: <U>(getValue: LazyFallback<U, E>) => Success<T>;
|
|
24
|
+
readonly getOrElse: <U>(getValue: LazyFallback<U, E>) => T;
|
|
15
25
|
readonly match: Match<T, E>;
|
|
16
|
-
|
|
26
|
+
readonly map: FailableMap<T, E>;
|
|
27
|
+
readonly flatMap: FailableFlatMap<T, E>;
|
|
28
|
+
}) | (Omit<Failure<E>, 'orElse' | 'getOrElse' | 'map' | 'flatMap'> & {
|
|
29
|
+
readonly orElse: <U>(getValue: LazyFallback<U, E>) => Success<U>;
|
|
30
|
+
readonly getOrElse: <U>(getValue: LazyFallback<U, E>) => U;
|
|
17
31
|
readonly match: Match<T, E>;
|
|
32
|
+
readonly map: FailableMap<T, E>;
|
|
33
|
+
readonly flatMap: FailableFlatMap<T, E>;
|
|
18
34
|
});
|
|
19
35
|
/**
|
|
20
36
|
* Structured-clone-friendly representation of {@link Failable}.
|
|
@@ -46,6 +62,29 @@ type SuccessMatch<T> = {
|
|
|
46
62
|
type FailureMatch<E> = {
|
|
47
63
|
<U>(onSuccess: (data: never) => U, onFailure: (error: E) => U): U;
|
|
48
64
|
};
|
|
65
|
+
type SuccessMap<T> = {
|
|
66
|
+
<U>(fn: (data: T) => U): Success<U>;
|
|
67
|
+
};
|
|
68
|
+
type FailureMap<E> = {
|
|
69
|
+
<U>(fn: (data: never) => U): Failure<E>;
|
|
70
|
+
};
|
|
71
|
+
type SuccessFlatMap<T> = {
|
|
72
|
+
<Next>(fn: (data: T) => Success<Next>): Success<Next>;
|
|
73
|
+
<E2>(fn: (data: T) => Failure<E2>): Failure<E2>;
|
|
74
|
+
<Next, E2>(fn: (data: T) => Failable<Next, E2>): Failable<Next, E2>;
|
|
75
|
+
};
|
|
76
|
+
type FailureFlatMap<E> = {
|
|
77
|
+
<Next, E2>(fn: (data: never) => Failable<Next, E2>): Failure<E>;
|
|
78
|
+
};
|
|
79
|
+
type FailableMap<T, E> = {
|
|
80
|
+
<U>(fn: (data: T) => U): Failable<U, E>;
|
|
81
|
+
};
|
|
82
|
+
type FailableFlatMap<T, E> = {
|
|
83
|
+
<Next>(fn: (data: T) => Success<Next>): Failable<Next, E>;
|
|
84
|
+
<E2>(fn: (data: T) => Failure<E2>): Failure<E | E2>;
|
|
85
|
+
<Next, E2>(fn: (data: T) => Success<Next> | Failure<E2>): Failable<Next, E | E2>;
|
|
86
|
+
<Next, E2>(fn: (data: T) => Failable<Next, E2>): Failable<Next, E | E2>;
|
|
87
|
+
};
|
|
49
88
|
export declare function isFailableLike(value: unknown): value is FailableLike<unknown, unknown>;
|
|
50
89
|
export type Success<T> = {
|
|
51
90
|
readonly status: typeof FailableStatus.Success;
|
|
@@ -54,11 +93,13 @@ export type Success<T> = {
|
|
|
54
93
|
readonly data: T;
|
|
55
94
|
readonly error: null;
|
|
56
95
|
readonly or: <U>(value: U) => Success<T>;
|
|
57
|
-
readonly orElse: <U>(getValue:
|
|
96
|
+
readonly orElse: <U>(getValue: LazyFallback<U, never>) => Success<T>;
|
|
58
97
|
readonly getOr: <U>(value: U) => T;
|
|
59
|
-
readonly getOrElse: <U>(getValue:
|
|
60
|
-
readonly getOrThrow: () => T;
|
|
98
|
+
readonly getOrElse: <U>(getValue: LazyFallback<U, never>) => T;
|
|
99
|
+
readonly getOrThrow: (normalizeOption?: FailableNormalizeErrorInput) => T;
|
|
61
100
|
readonly match: SuccessMatch<T>;
|
|
101
|
+
readonly map: SuccessMap<T>;
|
|
102
|
+
readonly flatMap: SuccessFlatMap<T>;
|
|
62
103
|
readonly [Symbol.iterator]: () => RunGetIterator<T, never, Success<T>>;
|
|
63
104
|
readonly [Symbol.asyncIterator]: () => AsyncRunGetIterator<T, never, Success<T>>;
|
|
64
105
|
};
|
|
@@ -69,11 +110,13 @@ export type Failure<E> = {
|
|
|
69
110
|
readonly error: E;
|
|
70
111
|
readonly data: null;
|
|
71
112
|
readonly or: <U>(value: U) => Success<U>;
|
|
72
|
-
readonly orElse: <U>(getValue:
|
|
113
|
+
readonly orElse: <U>(getValue: LazyFallback<U, E>) => Success<U>;
|
|
73
114
|
readonly getOr: <U>(value: U) => U;
|
|
74
|
-
readonly getOrElse: <U>(getValue:
|
|
75
|
-
readonly getOrThrow: () => never;
|
|
115
|
+
readonly getOrElse: <U>(getValue: LazyFallback<U, E>) => U;
|
|
116
|
+
readonly getOrThrow: (normalizeOption?: FailableNormalizeErrorInput) => never;
|
|
76
117
|
readonly match: FailureMatch<E>;
|
|
118
|
+
readonly map: FailureMap<E>;
|
|
119
|
+
readonly flatMap: FailureFlatMap<E>;
|
|
77
120
|
readonly [Symbol.iterator]: () => RunGetIterator<never, E, Failure<E>>;
|
|
78
121
|
readonly [Symbol.asyncIterator]: () => AsyncRunGetIterator<never, E, Failure<E>>;
|
|
79
122
|
};
|
|
@@ -81,17 +124,18 @@ export declare function isFailable(value: unknown): value is Failable<unknown, u
|
|
|
81
124
|
export declare function isSuccess(value: unknown): value is Success<unknown>;
|
|
82
125
|
export declare function isFailure(value: unknown): value is Failure<unknown>;
|
|
83
126
|
export declare function success(): Success<void>;
|
|
84
|
-
export declare function success<T>(data: T): Success<T>;
|
|
127
|
+
export declare function success<const T>(data: T): Success<T>;
|
|
85
128
|
export declare function failure(): Failure<void>;
|
|
86
|
-
export declare function failure<E>(error: E): Failure<E>;
|
|
129
|
+
export declare function failure<const E>(error: E): Failure<E>;
|
|
87
130
|
/**
|
|
88
|
-
* Throw `
|
|
131
|
+
* Throw an `Error` on failure, or narrow the same result to {@link Success} on return.
|
|
89
132
|
*
|
|
90
133
|
* Use this when you want control-flow narrowing without replacing the original variable.
|
|
91
134
|
* Use `result.getOrThrow()` when you need the success value itself in expression or return position.
|
|
92
|
-
*
|
|
135
|
+
* Existing `Error` instances are thrown unchanged by default. Pass `NormalizedErrors`
|
|
136
|
+
* or `{ normalizeError }` when you need a specific `Error` shape at the throw boundary.
|
|
93
137
|
*/
|
|
94
|
-
export declare function
|
|
138
|
+
export declare function throwIfFailure<T, E>(result: Failable<T, E>, normalizeOption?: FailableNormalizeErrorInput): asserts result is Success<T>;
|
|
95
139
|
export declare function toFailableLike<T>(value: Success<T>): FailableLikeSuccess<T>;
|
|
96
140
|
export declare function toFailableLike<E>(value: Failure<E>): FailableLikeFailure<E>;
|
|
97
141
|
export declare function toFailableLike<T, E>(value: Failable<T, E>): FailableLike<T, E>;
|
|
@@ -101,7 +145,7 @@ type HasKnownPromiseLikeReturn<T> = IsAny<T> extends true ? false : unknown exte
|
|
|
101
145
|
type FailableSyncOnlyCallback<F extends () => unknown> = F & (HasKnownPromiseLikeReturn<ReturnType<F>> extends true ? {
|
|
102
146
|
readonly __failablePassPromiseDirectly: never;
|
|
103
147
|
} : unknown);
|
|
104
|
-
type InferReturnTypeFromPromise<
|
|
148
|
+
type InferReturnTypeFromPromise<P extends PromiseLike<unknown>, E = unknown> = [Awaited<P>] extends [never] ? Promise<Failure<E>> : Awaited<P> extends Success<infer A> ? Promise<Success<A>> : Awaited<P> extends Failure<infer A> ? Promise<Failure<A>> : Awaited<P> extends Failable<unknown, unknown> ? Promise<Awaited<P>> : Awaited<P> extends FailableLikeSuccess<infer A> ? Promise<Success<A>> : Awaited<P> extends FailableLikeFailure<infer A> ? Promise<Failure<A>> : Awaited<P> extends FailableLike<infer A, infer B> ? Promise<Failable<A, B>> : Promise<Failable<Awaited<P>, E>>;
|
|
105
149
|
type NormalizeFailableResult<T> = [T] extends [never] ? Failure<Error> : T extends Success<infer A> ? Success<A> : T extends Failure<unknown> ? Failure<Error> : T extends FailableLikeSuccess<infer A> ? Success<A> : T extends FailableLikeFailure<unknown> ? Failure<Error> : T extends Failable<infer A, unknown> ? Failable<A, Error> : T extends FailableLike<infer A, unknown> ? Failable<A, Error> : Failable<T, Error>;
|
|
106
150
|
declare const RUN_GET_TAG: unique symbol;
|
|
107
151
|
declare class RunGet<T, E, TSource = Failable<T, E>> {
|
|
@@ -113,9 +157,7 @@ declare class RunGet<T, E, TSource = Failable<T, E>> {
|
|
|
113
157
|
type RunGetIterator<T, E, TSource extends Failable<T, E> = Failable<T, E>> = Generator<RunGet<T, E, TSource>, T, unknown>;
|
|
114
158
|
type AsyncRunGetIterator<T, E, TSource extends Failable<T, E> = Failable<T, E>> = AsyncGenerator<RunGet<T, E, TSource>, T, unknown>;
|
|
115
159
|
type RunYield = RunGet<unknown, unknown, unknown>;
|
|
116
|
-
type
|
|
117
|
-
type RunReturnFailureLike<TError = unknown> = Pick<Failure<TError>, 'status' | 'data' | 'error' | 'match'>;
|
|
118
|
-
type RunReturn = void | RunReturnSuccessLike<unknown> | RunReturnFailureLike<unknown> | Failable<unknown, unknown>;
|
|
160
|
+
type RunReturn = void | Failable<unknown, unknown>;
|
|
119
161
|
type InferRunYieldError<TYield> = TYield extends RunGet<unknown, infer TError, unknown> ? TError : never;
|
|
120
162
|
type InferRunGuaranteedFailureError<TYield> = TYield extends RunGet<unknown, infer TError, infer TSource> ? [TSource] extends [Failure<TError>] ? TError : never : never;
|
|
121
163
|
type MergeRunErrors<TYield, TError> = InferRunYieldError<TYield> | TError;
|
|
@@ -125,17 +167,37 @@ type InferRunSuccessResult<TYield, TData> = [
|
|
|
125
167
|
type InferRunNeverSuccessResult<TYield> = [InferRunYieldError<TYield>] extends [
|
|
126
168
|
never
|
|
127
169
|
] ? Success<never> : [InferRunGuaranteedFailureError<TYield>] extends [never] ? Failable<never, InferRunYieldError<TYield>> : Failure<InferRunYieldError<TYield>>;
|
|
128
|
-
type InferRunUnionReturnData<TResult> = ([Extract<TResult, void>] extends [never] ? never : void) | (Extract<TResult,
|
|
170
|
+
type InferRunUnionReturnData<TResult> = ([Extract<TResult, void>] extends [never] ? never : void) | (Extract<TResult, {
|
|
171
|
+
readonly isSuccess: true;
|
|
172
|
+
readonly data: unknown;
|
|
173
|
+
}> extends {
|
|
129
174
|
readonly data: infer TData;
|
|
130
175
|
} ? TData : never);
|
|
131
|
-
type InferRunUnionReturnError<TResult> = Extract<TResult,
|
|
176
|
+
type InferRunUnionReturnError<TResult> = Extract<TResult, {
|
|
177
|
+
readonly isFailure: true;
|
|
178
|
+
readonly error: unknown;
|
|
179
|
+
}> extends {
|
|
132
180
|
readonly error: infer TError;
|
|
133
181
|
} ? TError : never;
|
|
134
|
-
type InferRunResult<TYield, TResult> = [TResult] extends [never] ? [InferRunYieldError<TYield>] extends [never] ? never : Failure<InferRunYieldError<TYield>> : [TResult] extends [void] ? InferRunSuccessResult<TYield, void> : [TResult] extends [
|
|
182
|
+
type InferRunResult<TYield, TResult> = [TResult] extends [never] ? [InferRunYieldError<TYield>] extends [never] ? never : Failure<InferRunYieldError<TYield>> : [TResult] extends [void] ? InferRunSuccessResult<TYield, void> : [TResult] extends [Success<infer TData>] ? [TData] extends [never] ? InferRunNeverSuccessResult<TYield> : InferRunSuccessResult<TYield, TData> : [TResult] extends [Failure<infer TError>] ? Failure<MergeRunErrors<TYield, TError>> : [MergeRunErrors<TYield, InferRunUnionReturnError<TResult>>] extends [never] ? Success<InferRunUnionReturnData<TResult>> : Failable<InferRunUnionReturnData<TResult>, MergeRunErrors<TYield, InferRunUnionReturnError<TResult>>>;
|
|
135
183
|
type RunNoHelpers = {
|
|
136
184
|
readonly __runNoHelpers?: never;
|
|
137
185
|
};
|
|
186
|
+
type ValidateRunReturn<TResult> = [TResult] extends [RunReturn] ? unknown : {
|
|
187
|
+
readonly __runInvalidReturn: never;
|
|
188
|
+
};
|
|
138
189
|
type FailableSource<T, E> = Failable<T, E> | PromiseLike<Failable<T, E>>;
|
|
190
|
+
/**
|
|
191
|
+
* Reject obvious bare `Promise.reject(...)` inputs (`PromiseLike<never>`) while
|
|
192
|
+
* preserving the caller's original tuple types for valid sources.
|
|
193
|
+
*/
|
|
194
|
+
type GuardedFailableSourceInput<T> = T extends PromiseLike<infer U> ? [U] extends [never] ? never : T extends PromiseLike<Failable<unknown, unknown>> ? T : never : T extends Failable<unknown, unknown> ? T : never;
|
|
195
|
+
type AllSettledSources<T extends readonly unknown[]> = {
|
|
196
|
+
readonly [K in keyof T]: GuardedFailableSourceInput<T[K]>;
|
|
197
|
+
};
|
|
198
|
+
type RaceSources<T extends readonly unknown[]> = {
|
|
199
|
+
readonly [K in keyof T]: GuardedFailableSourceInput<T[K]>;
|
|
200
|
+
};
|
|
139
201
|
type FailableSourceError<T> = T extends Success<unknown> ? never : T extends Failure<infer E> ? E : T extends Failable<unknown, infer E> ? E : T extends PromiseLike<Success<unknown>> ? never : T extends PromiseLike<Failure<infer E>> ? E : T extends PromiseLike<Failable<unknown, infer E>> ? E : never;
|
|
140
202
|
type FailableSourceData<T> = T extends Success<infer D> ? D : T extends Failure<unknown> ? never : T extends Failable<infer D, unknown> ? D : T extends PromiseLike<Success<infer D>> ? D : T extends PromiseLike<Failure<unknown>> ? never : T extends PromiseLike<Failable<infer D, unknown>> ? D : never;
|
|
141
203
|
type AllTupleError<T> = T extends readonly (infer P)[] ? FailableSourceError<P> : never;
|
|
@@ -143,7 +205,9 @@ type AllTupleData<T> = {
|
|
|
143
205
|
readonly [K in keyof T]: FailableSourceData<T[K]>;
|
|
144
206
|
};
|
|
145
207
|
type FailableSourceSettled<T> = T extends Success<infer D> ? Success<D> : T extends Failure<infer E> ? Failure<E> : T extends Failable<infer D, infer E> ? Failable<D, E> : T extends PromiseLike<Success<infer D>> ? Success<D> : T extends PromiseLike<Failure<infer E>> ? Failure<E> : T extends PromiseLike<Failable<infer D, infer E>> ? Failable<D, E> : never;
|
|
146
|
-
type FailableSourceIsAsync<T> =
|
|
208
|
+
type FailableSourceIsAsync<T> = [
|
|
209
|
+
Extract<T, PromiseLike<Failable<unknown, unknown>>>
|
|
210
|
+
] extends [never] ? false : true;
|
|
147
211
|
type FailableSourceHasGuaranteedFailure<T> = T extends Failure<unknown> | PromiseLike<Failure<unknown>> ? true : false;
|
|
148
212
|
type TupleHasAsync<T> = T extends readonly [infer First, ...infer Rest] ? FailableSourceIsAsync<First> extends true ? true : Rest extends readonly unknown[] ? TupleHasAsync<Rest> : false : false;
|
|
149
213
|
/** True when at least one element of T is Failure<...> or PromiseLike<Failure<...>>. */
|
|
@@ -157,11 +221,27 @@ type AllSettledTuple<T> = {
|
|
|
157
221
|
};
|
|
158
222
|
type RaceData<T> = T extends readonly (infer P)[] ? FailableSourceData<P> : never;
|
|
159
223
|
type RaceError<T> = T extends readonly (infer P)[] ? FailableSourceError<P> : never;
|
|
224
|
+
type RaceReturn<T extends readonly unknown[]> = T extends readonly [] ? Promise<Failable<RaceData<T>, RaceError<T>>> : TupleHasAsync<T> extends true ? Promise<Failable<RaceData<T>, RaceError<T>>> : Failable<RaceData<T>, RaceError<T>>;
|
|
160
225
|
export declare function all<const T extends readonly FailableSource<unknown, unknown>[]>(...sources: T): TupleHasAsync<T> extends true ? Promise<Failable<AllReturnData<T>, AllTupleError<T>>> : Failable<AllReturnData<T>, AllTupleError<T>>;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
226
|
+
/**
|
|
227
|
+
* Wait for every source that resolves successfully and return a tuple of their
|
|
228
|
+
* `Failable` results.
|
|
229
|
+
*
|
|
230
|
+
* If a source promise rejects before producing a `Failable`, the combinator
|
|
231
|
+
* rejects unchanged. Wrap that boundary with `failable(...)` first if you want
|
|
232
|
+
* the rejection converted into `Failure`.
|
|
233
|
+
*/
|
|
234
|
+
export declare function allSettled<const T extends readonly unknown[]>(...sources: T & AllSettledSources<T>): TupleHasAsync<T> extends true ? Promise<AllSettledTuple<T>> : AllSettledTuple<T>;
|
|
235
|
+
/**
|
|
236
|
+
* Take the first `Failable` source to settle.
|
|
237
|
+
*
|
|
238
|
+
* When every source is already hydrated, the first source in input order wins
|
|
239
|
+
* synchronously. When any source is promised, winner ordering follows normal
|
|
240
|
+
* `Promise.race(...)` semantics for already-settled entries.
|
|
241
|
+
*/
|
|
242
|
+
export declare function race<const T extends readonly unknown[]>(...sources: T & RaceSources<T>): RaceReturn<T>;
|
|
243
|
+
export declare function run<TYield extends RunGet<unknown, unknown, unknown> = never, TResult = RunReturn>(builder: ((_helpers: RunNoHelpers) => AsyncGenerator<TYield, TResult, unknown>) & ValidateRunReturn<TResult>): Promise<InferRunResult<TYield, Extract<TResult, RunReturn>>>;
|
|
244
|
+
export declare function run<TYield extends RunYield = never, TResult = RunReturn>(builder: ((_helpers: RunNoHelpers) => Generator<TYield, TResult, unknown>) & ValidateRunReturn<TResult>): InferRunResult<TYield, Extract<TResult, RunReturn>>;
|
|
165
245
|
export declare function failable<T>(value: Success<T>): Success<T>;
|
|
166
246
|
export declare function failable<E>(value: Failure<E>): Failure<E>;
|
|
167
247
|
export declare function failable<T, E>(value: Failable<T, E>): Failable<T, E>;
|
|
@@ -186,8 +266,8 @@ export declare function failable<T, E>(value: FailableLike<T, E>, normalizeOptio
|
|
|
186
266
|
* them to pass the promise directly instead. That guard error is preserved even when
|
|
187
267
|
* a custom `normalizeError` callback is provided.
|
|
188
268
|
*/
|
|
189
|
-
export declare function failable<
|
|
190
|
-
export declare function failable<
|
|
269
|
+
export declare function failable<P extends PromiseLike<unknown>>(promise: P, normalizeOption: FailableNormalizeErrorInput): Promise<NormalizeFailableResult<Awaited<P>>>;
|
|
270
|
+
export declare function failable<P extends PromiseLike<unknown>, E = unknown>(promise: P): InferReturnTypeFromPromise<P, E>;
|
|
191
271
|
export declare function failable<F extends () => unknown>(fun: FailableSyncOnlyCallback<F>, normalizeOption: FailableNormalizeErrorInput): NormalizeFailableResult<ReturnType<F>>;
|
|
192
272
|
export declare function failable<F extends () => unknown, E = unknown>(fun: FailableSyncOnlyCallback<F>): InferFailableFromValue<ReturnType<F>, E>;
|
|
193
273
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failable.d.ts","sourceRoot":"","sources":["../../src/lib/failable.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"failable.d.ts","sourceRoot":"","sources":["../../src/lib/failable.ts"],"names":[],"mappings":"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"}
|