unthrown 1.1.0 → 3.0.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 +3 -3
- package/dist/index.cjs +92 -65
- package/dist/index.d.cts +106 -86
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +106 -86
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +92 -65
- package/dist/index.mjs.map +1 -1
- package/docs/index.md +164 -200
- package/package.json +1 -1
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/constructors.ts","../src/core.ts","../src/
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/constructors.ts","../src/core.ts","../src/do.ts","../src/defect.ts","../src/interop.ts","../src/facade.ts","../src/tagged.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -261,7 +261,7 @@ type ResultMethods<T, E> = {
|
|
|
261
261
|
isOk(): this is OkView<T, E>; /** Whether this result is `Err` — narrows `this` to its {@link ErrView} on `true`. */
|
|
262
262
|
isErr(): this is ErrView<E, T>; /** Whether this result is a `Defect` — narrows `this` to its {@link DefectView} on `true`. */
|
|
263
263
|
isDefect(): this is DefectView<T, E>; /** Lift this synchronous `Result` into an {@link AsyncResult}. */
|
|
264
|
-
toAsync(): AsyncResult<T, E>;
|
|
264
|
+
toAsync(): AsyncResult$1<T, E>;
|
|
265
265
|
};
|
|
266
266
|
/** The `Ok` variant of a {@link Result}: a success carrying a `value`. */
|
|
267
267
|
type OkView<T, E = never> = ResultMethods<T, E> & {
|
|
@@ -351,40 +351,40 @@ type Awaitable<T> = {
|
|
|
351
351
|
* @typeParam T - the success value type.
|
|
352
352
|
* @typeParam E - the modeled error type.
|
|
353
353
|
*/
|
|
354
|
-
type AsyncResult<T, E> = Awaitable<Result$1<T, E>> & {
|
|
355
|
-
/** Asynchronous `map`. `f` is synchronous; a throw becomes a `Defect`. */map<U>(f: (value: T) => U): AsyncResult<U, E>;
|
|
354
|
+
type AsyncResult$1<T, E> = Awaitable<Result$1<T, E>> & {
|
|
355
|
+
/** Asynchronous `map`. `f` is synchronous; a throw becomes a `Defect`. */map<U>(f: (value: T) => U): AsyncResult$1<U, E>;
|
|
356
356
|
/**
|
|
357
357
|
* Asynchronous `flatMap`. `f` may return a `Result` **or** an `AsyncResult`
|
|
358
358
|
* (never a raw `Promise`); a throw becomes a `Defect`.
|
|
359
359
|
*/
|
|
360
|
-
flatMap<U, E2>(f: (value: T) => Result$1<U, E2> | AsyncResult<U, E2>): AsyncResult<U, E | E2>; /** Asynchronous `tap`. `f` is synchronous; a throw becomes a `Defect`. */
|
|
361
|
-
tap(f: (value: T) => void): AsyncResult<T, E>;
|
|
360
|
+
flatMap<U, E2>(f: (value: T) => Result$1<U, E2> | AsyncResult$1<U, E2>): AsyncResult$1<U, E | E2>; /** Asynchronous `tap`. `f` is synchronous; a throw becomes a `Defect`. */
|
|
361
|
+
tap(f: (value: T) => void): AsyncResult$1<T, E>;
|
|
362
362
|
/**
|
|
363
363
|
* Asynchronous `flatTap` — a failable tap that keeps the original value. `f`
|
|
364
364
|
* may return a `Result` **or** an `AsyncResult`; its `Ok` value is discarded,
|
|
365
365
|
* an `Err`/`Defect` short-circuits, and a throw becomes a `Defect`.
|
|
366
366
|
*/
|
|
367
|
-
flatTap<E2>(f: (value: T) => Result$1<unknown, E2> | AsyncResult<unknown, E2>): AsyncResult<T, E | E2>;
|
|
367
|
+
flatTap<E2>(f: (value: T) => Result$1<unknown, E2> | AsyncResult$1<unknown, E2>): AsyncResult$1<T, E | E2>;
|
|
368
368
|
/**
|
|
369
369
|
* Asynchronous `bind` (do-notation). `f` may return a `Result` **or** an
|
|
370
370
|
* `AsyncResult`; its value is bound under `name` in the accumulating scope.
|
|
371
371
|
*/
|
|
372
|
-
bind<K extends string, U, E2>(name: K, f: (scope: T) => Result$1<U, E2> | AsyncResult<U, E2>): AsyncResult<Bound<T, K, U>, E | E2>; /** Asynchronous `let` (do-notation). `f` returns a plain value, bound under `name`. */
|
|
373
|
-
let<K extends string, U>(name: K, f: (scope: T) => U): AsyncResult<Bound<T, K, U>, E>; /** Asynchronous `as`. */
|
|
374
|
-
as<U>(value: U): AsyncResult<U, E>; /** Asynchronous `mapErr`. `f` is synchronous; a throw becomes a `Defect`. */
|
|
375
|
-
mapErr<E2>(f: (error: E) => E2): AsyncResult<T, E2>; /** Asynchronous `orElse`. `f` may return a `Result` or an `AsyncResult`. */
|
|
376
|
-
orElse<U, E2>(f: (error: E) => Result$1<U, E2> | AsyncResult<U, E2>): AsyncResult<T | U, E2>; /** Asynchronous `recover`. `f` is synchronous; a throw becomes a `Defect`. */
|
|
377
|
-
recover<U>(f: (error: E) => U): AsyncResult<T | U, never>; /** Asynchronous `tapErr`. `f` is synchronous; a throw becomes a `Defect`. */
|
|
378
|
-
tapErr(f: (error: E) => void): AsyncResult<T, E>;
|
|
372
|
+
bind<K extends string, U, E2>(name: K, f: (scope: T) => Result$1<U, E2> | AsyncResult$1<U, E2>): AsyncResult$1<Bound<T, K, U>, E | E2>; /** Asynchronous `let` (do-notation). `f` returns a plain value, bound under `name`. */
|
|
373
|
+
let<K extends string, U>(name: K, f: (scope: T) => U): AsyncResult$1<Bound<T, K, U>, E>; /** Asynchronous `as`. */
|
|
374
|
+
as<U>(value: U): AsyncResult$1<U, E>; /** Asynchronous `mapErr`. `f` is synchronous; a throw becomes a `Defect`. */
|
|
375
|
+
mapErr<E2>(f: (error: E) => E2): AsyncResult$1<T, E2>; /** Asynchronous `orElse`. `f` may return a `Result` or an `AsyncResult`. */
|
|
376
|
+
orElse<U, E2>(f: (error: E) => Result$1<U, E2> | AsyncResult$1<U, E2>): AsyncResult$1<T | U, E2>; /** Asynchronous `recover`. `f` is synchronous; a throw becomes a `Defect`. */
|
|
377
|
+
recover<U>(f: (error: E) => U): AsyncResult$1<T | U, never>; /** Asynchronous `tapErr`. `f` is synchronous; a throw becomes a `Defect`. */
|
|
378
|
+
tapErr(f: (error: E) => void): AsyncResult$1<T, E>;
|
|
379
379
|
/**
|
|
380
380
|
* Asynchronous `flatTapErr` — a failable tap on the error that keeps the
|
|
381
381
|
* original error. `f` may return a `Result` **or** an `AsyncResult`; its `Ok`
|
|
382
382
|
* value is discarded, an `Err`/`Defect` from `f` threads through, and a throw
|
|
383
383
|
* becomes a `Defect`.
|
|
384
384
|
*/
|
|
385
|
-
flatTapErr<E2>(f: (error: E) => Result$1<unknown, E2> | AsyncResult<unknown, E2>): AsyncResult<T, E | E2>; /** Asynchronous `recoverDefect`. `f` may return a `Result` or an `AsyncResult`. */
|
|
386
|
-
recoverDefect<U, E2>(f: (cause: unknown) => Result$1<U, E2> | AsyncResult<U, E2>): AsyncResult<T | U, E | E2>; /** Asynchronous `tapDefect`. */
|
|
387
|
-
tapDefect(f: (cause: unknown) => void): AsyncResult<T, E>; /** Asynchronous `match`. Handlers are synchronous; resolves to `R`. */
|
|
385
|
+
flatTapErr<E2>(f: (error: E) => Result$1<unknown, E2> | AsyncResult$1<unknown, E2>): AsyncResult$1<T, E | E2>; /** Asynchronous `recoverDefect`. `f` may return a `Result` or an `AsyncResult`. */
|
|
386
|
+
recoverDefect<U, E2>(f: (cause: unknown) => Result$1<U, E2> | AsyncResult$1<U, E2>): AsyncResult$1<T | U, E | E2>; /** Asynchronous `tapDefect`. */
|
|
387
|
+
tapDefect(f: (cause: unknown) => void): AsyncResult$1<T, E>; /** Asynchronous `match`. Handlers are synchronous; resolves to `R`. */
|
|
388
388
|
match<R>(cases: {
|
|
389
389
|
ok: (value: T) => R;
|
|
390
390
|
err: (error: E) => R;
|
|
@@ -420,13 +420,13 @@ type ErrOf<R> = R extends {
|
|
|
420
420
|
*
|
|
421
421
|
* @typeParam R - the `AsyncResult` type to inspect.
|
|
422
422
|
*/
|
|
423
|
-
type AsyncOkOf<R> = R extends AsyncResult<infer T, unknown> ? T : never;
|
|
423
|
+
type AsyncOkOf<R> = R extends AsyncResult$1<infer T, unknown> ? T : never;
|
|
424
424
|
/**
|
|
425
425
|
* Extract the error type `E` from an {@link AsyncResult}.
|
|
426
426
|
*
|
|
427
427
|
* @typeParam R - the `AsyncResult` type to inspect.
|
|
428
428
|
*/
|
|
429
|
-
type AsyncErrOf<R> = R extends AsyncResult<unknown, infer E> ? E : never;
|
|
429
|
+
type AsyncErrOf<R> = R extends AsyncResult$1<unknown, infer E> ? E : never;
|
|
430
430
|
//#endregion
|
|
431
431
|
//#region src/constructors.d.ts
|
|
432
432
|
/**
|
|
@@ -488,6 +488,11 @@ declare function isDefect<T, E>(r: Result$1<T, E>): r is DefectView<T, E>;
|
|
|
488
488
|
* `Ok`.
|
|
489
489
|
*
|
|
490
490
|
* @remarks
|
|
491
|
+
* The offending value is exposed two ways: the typed {@link UnwrapError.error}
|
|
492
|
+
* property for programmatic access, and the standard `Error.cause` for the
|
|
493
|
+
* runtime and devtools to chain — when `E` is an `Error` (e.g. a `TaggedError`)
|
|
494
|
+
* its original stack is printed under "caused by".
|
|
495
|
+
*
|
|
491
496
|
* A `Defect` is never wrapped in an `UnwrapError`: its original cause is
|
|
492
497
|
* re-thrown (with its original stack) instead.
|
|
493
498
|
*
|
|
@@ -515,40 +520,6 @@ declare class UnwrapError<E = unknown> extends Error {
|
|
|
515
520
|
*/
|
|
516
521
|
declare function isResult(x: unknown): x is Result$1<unknown, unknown>;
|
|
517
522
|
//#endregion
|
|
518
|
-
//#region src/defect.d.ts
|
|
519
|
-
declare const DEFECT: unique symbol;
|
|
520
|
-
/**
|
|
521
|
-
* The marker a `qualify` function returns to triage a cause as **unexpected**.
|
|
522
|
-
*
|
|
523
|
-
* @remarks
|
|
524
|
-
* `qualify` (passed to {@link fromPromise} / {@link fromThrowable}) returns
|
|
525
|
-
* `E | Defect`: either a modeled domain error, or a `Defect` produced by
|
|
526
|
-
* {@link Defect} to say "this failure is not modeled". A `Defect` is opaque —
|
|
527
|
-
* it carries the original cause for the boundary to convert into the third
|
|
528
|
-
* runtime state of a `Result`.
|
|
529
|
-
*/
|
|
530
|
-
type Defect = {
|
|
531
|
-
readonly [DEFECT]: true;
|
|
532
|
-
readonly cause: unknown;
|
|
533
|
-
};
|
|
534
|
-
/**
|
|
535
|
-
* Wrap a cause as a {@link Defect} — the value you return from a `qualify`
|
|
536
|
-
* function when a failure is **not** a modeled domain error.
|
|
537
|
-
*
|
|
538
|
-
* @param cause - the original thrown/rejected value.
|
|
539
|
-
* @returns an opaque Defect marker carrying `cause`.
|
|
540
|
-
*
|
|
541
|
-
* @example
|
|
542
|
-
* ```ts
|
|
543
|
-
* import { fromPromise, Defect } from "unthrown";
|
|
544
|
-
*
|
|
545
|
-
* const user = fromPromise(fetchUser(id), (cause) =>
|
|
546
|
-
* cause instanceof NotFoundError ? cause : Defect(cause),
|
|
547
|
-
* );
|
|
548
|
-
* ```
|
|
549
|
-
*/
|
|
550
|
-
declare function Defect(cause: unknown): Defect;
|
|
551
|
-
//#endregion
|
|
552
523
|
//#region src/do.d.ts
|
|
553
524
|
/**
|
|
554
525
|
* Start a do-notation chain with an empty object scope, grown step by step with
|
|
@@ -574,6 +545,27 @@ declare function Defect(cause: unknown): Defect;
|
|
|
574
545
|
*/
|
|
575
546
|
declare function Do(): Result$1<{}, never>;
|
|
576
547
|
//#endregion
|
|
548
|
+
//#region src/defect.d.ts
|
|
549
|
+
declare const DEFECT: unique symbol;
|
|
550
|
+
/**
|
|
551
|
+
* The opaque marker a `qualify` function returns to triage a cause as
|
|
552
|
+
* **unexpected**.
|
|
553
|
+
*
|
|
554
|
+
* @remarks
|
|
555
|
+
* `qualify` (passed to {@link fromPromise} / {@link fromThrowable}) returns
|
|
556
|
+
* `E | Defect`: either a modeled domain error, or a `Defect` produced by the
|
|
557
|
+
* injected `defect` helper to say "this failure is not modeled". A `Defect` is
|
|
558
|
+
* opaque — it carries the original cause for the boundary to convert into the
|
|
559
|
+
* third runtime state of a `Result`. It is **not** a public value; the only way
|
|
560
|
+
* to mint one is the `defect` helper the boundary passes to `qualify`.
|
|
561
|
+
*
|
|
562
|
+
* @internal
|
|
563
|
+
*/
|
|
564
|
+
type Defect = {
|
|
565
|
+
readonly [DEFECT]: true;
|
|
566
|
+
readonly cause: unknown;
|
|
567
|
+
};
|
|
568
|
+
//#endregion
|
|
577
569
|
//#region src/interop.d.ts
|
|
578
570
|
/**
|
|
579
571
|
* Bridge a nullable value into a {@link Result}: absence becomes a **modeled**
|
|
@@ -601,12 +593,13 @@ declare function fromNullable<T, E>(value: T | null | undefined, onAbsent: () =>
|
|
|
601
593
|
*
|
|
602
594
|
* @remarks
|
|
603
595
|
* `qualify` **must** triage every thrown cause into a modeled error `E` or a
|
|
604
|
-
*
|
|
605
|
-
* in `E`. A throw inside `qualify` itself is treated
|
|
596
|
+
* `Defect` (via the injected `defect` helper, its second argument) — there is no
|
|
597
|
+
* path that leaves `unknown` in `E`. A throw inside `qualify` itself is treated
|
|
598
|
+
* as a `Defect`.
|
|
606
599
|
*
|
|
607
600
|
* The modeled error type is `Exclude<R, Defect>` — the `Defect` arm of
|
|
608
601
|
* `qualify`'s return is **subtracted** from `E`, never inferred into it. So a
|
|
609
|
-
* `qualify` that returns *only* `
|
|
602
|
+
* `qualify` that returns *only* `defect(cause)` yields `E = never` (a Defect is
|
|
610
603
|
* out-of-band and must not pollute the error channel); reach for
|
|
611
604
|
* {@link fromSafePromise} when every failure is a Defect.
|
|
612
605
|
*
|
|
@@ -615,47 +608,49 @@ declare function fromNullable<T, E>(value: T | null | undefined, onAbsent: () =>
|
|
|
615
608
|
* @typeParam R - `qualify`'s return type; the modeled error `E` is
|
|
616
609
|
* `Exclude<R, Defect>` (its `Defect` arm, if any, is subtracted).
|
|
617
610
|
* @param fn - the throwing function to wrap.
|
|
618
|
-
* @param qualify - triages a thrown cause into `E
|
|
611
|
+
* @param qualify - triages a thrown `cause` into a modeled `E`, or marks it
|
|
612
|
+
* unmodeled by returning `defect(cause)` (the helper passed as its second arg).
|
|
619
613
|
* @returns a function with the same arguments returning `Result<T, E>`.
|
|
620
614
|
*
|
|
621
615
|
* @example
|
|
622
616
|
* ```ts
|
|
623
|
-
* import { fromThrowable
|
|
624
|
-
* const parse = fromThrowable(JSON.parse, (cause) =>
|
|
617
|
+
* import { fromThrowable } from "unthrown";
|
|
618
|
+
* const parse = fromThrowable(JSON.parse, (cause, defect) => defect(cause));
|
|
625
619
|
* parse("{}").unwrap();
|
|
626
620
|
* ```
|
|
627
621
|
*/
|
|
628
|
-
declare function fromThrowable<A extends unknown[], T, R>(fn: (...args: A) => T, qualify: (cause: unknown) => R): (...args: A) => Result$1<T, Exclude<R, Defect>>;
|
|
622
|
+
declare function fromThrowable<A extends unknown[], T, R>(fn: (...args: A) => T, qualify: (cause: unknown, defect: (cause: unknown) => Defect) => R): (...args: A) => Result$1<T, Exclude<R, Defect>>;
|
|
629
623
|
/**
|
|
630
624
|
* Wrap a `Promise` (or a thunk producing one) as an {@link AsyncResult}, forcing
|
|
631
625
|
* every rejection to be triaged.
|
|
632
626
|
*
|
|
633
627
|
* @remarks
|
|
634
628
|
* `qualify` **must** map each rejection cause into a modeled error `E` or a
|
|
635
|
-
*
|
|
636
|
-
* `await`-ing it always yields a
|
|
637
|
-
* `Defect`.
|
|
629
|
+
* `Defect` (via the injected `defect` helper, its second argument). The returned
|
|
630
|
+
* `AsyncResult`'s internal promise never rejects; `await`-ing it always yields a
|
|
631
|
+
* `Result`. A throw inside `qualify` is itself a `Defect`.
|
|
638
632
|
*
|
|
639
633
|
* The modeled error type is `Exclude<R, Defect>` — the `Defect` arm of
|
|
640
634
|
* `qualify`'s return is **subtracted** from `E`, never inferred into it. So a
|
|
641
|
-
* `qualify` that returns *only* `
|
|
635
|
+
* `qualify` that returns *only* `defect(cause)` yields `E = never`; when every
|
|
642
636
|
* rejection is a Defect, prefer {@link fromSafePromise}.
|
|
643
637
|
*
|
|
644
638
|
* @typeParam T - the resolved value type.
|
|
645
639
|
* @typeParam R - `qualify`'s return type; the modeled error `E` is
|
|
646
640
|
* `Exclude<R, Defect>` (its `Defect` arm, if any, is subtracted).
|
|
647
641
|
* @param promise - the promise, or a thunk returning one.
|
|
648
|
-
* @param qualify - triages a rejection cause into `E
|
|
642
|
+
* @param qualify - triages a rejection `cause` into a modeled `E`, or marks it
|
|
643
|
+
* unmodeled by returning `defect(cause)` (the helper passed as its second arg).
|
|
649
644
|
*
|
|
650
645
|
* @example
|
|
651
646
|
* ```ts
|
|
652
|
-
* import { fromPromise
|
|
653
|
-
* const user = await fromPromise(fetchUser(id), (cause) =>
|
|
654
|
-
* cause instanceof NotFoundError ? ("not_found" as const) :
|
|
647
|
+
* import { fromPromise } from "unthrown";
|
|
648
|
+
* const user = await fromPromise(fetchUser(id), (cause, defect) =>
|
|
649
|
+
* cause instanceof NotFoundError ? ("not_found" as const) : defect(cause),
|
|
655
650
|
* );
|
|
656
651
|
* ```
|
|
657
652
|
*/
|
|
658
|
-
declare function fromPromise<T, R>(promise: Promise<T> | (() => Promise<T>), qualify: (cause: unknown) => R): AsyncResult<T, Exclude<R, Defect>>;
|
|
653
|
+
declare function fromPromise<T, R>(promise: Promise<T> | (() => Promise<T>), qualify: (cause: unknown, defect: (cause: unknown) => Defect) => R): AsyncResult$1<T, Exclude<R, Defect>>;
|
|
659
654
|
/**
|
|
660
655
|
* Wrap a `Promise` asserted **not** to fail in any modeled way: any rejection
|
|
661
656
|
* becomes a `Defect`.
|
|
@@ -668,7 +663,7 @@ declare function fromPromise<T, R>(promise: Promise<T> | (() => Promise<T>), qua
|
|
|
668
663
|
* @typeParam T - the resolved value type.
|
|
669
664
|
* @param promise - the promise, or a thunk returning one.
|
|
670
665
|
*/
|
|
671
|
-
declare function fromSafePromise<T>(promise: Promise<T> | (() => Promise<T>)): AsyncResult<T, never>;
|
|
666
|
+
declare function fromSafePromise<T>(promise: Promise<T> | (() => Promise<T>)): AsyncResult$1<T, never>;
|
|
672
667
|
/**
|
|
673
668
|
* The success channel of {@link all} / {@link allAsync}: a **positional tuple**
|
|
674
669
|
* for a fixed-length input (including the empty tuple), or a homogeneous
|
|
@@ -690,7 +685,7 @@ type AllOk<Rs extends readonly unknown[], Ts extends readonly unknown[]> = numbe
|
|
|
690
685
|
/** A record of `Result`s — the input to {@link allFromDict}. */
|
|
691
686
|
type ResultRecord = Record<string, Result$1<unknown, unknown>>;
|
|
692
687
|
/** A record of `AsyncResult`s — the input to {@link allFromDictAsync}. */
|
|
693
|
-
type AsyncResultRecord = Record<string, AsyncResult<unknown, unknown>>;
|
|
688
|
+
type AsyncResultRecord = Record<string, AsyncResult$1<unknown, unknown>>;
|
|
694
689
|
/**
|
|
695
690
|
* Collect a tuple/array of {@link Result}s into a single `Result` of all their
|
|
696
691
|
* success values.
|
|
@@ -744,7 +739,7 @@ declare function allFromDict<R extends ResultRecord>(results: R): Result$1<{ [K
|
|
|
744
739
|
* await allAsync([fromSafePromise(a()), fromSafePromise(b())]);
|
|
745
740
|
* ```
|
|
746
741
|
*/
|
|
747
|
-
declare function allAsync<Rs extends readonly AsyncResult<unknown, unknown>[]>(results: readonly [...Rs]): AsyncResult<AllOk<Rs, { [K in keyof Rs]: AsyncOkOf<Rs[K]> }>, AsyncErrOf<Rs[number]>>;
|
|
742
|
+
declare function allAsync<Rs extends readonly AsyncResult$1<unknown, unknown>[]>(results: readonly [...Rs]): AsyncResult$1<AllOk<Rs, { [K in keyof Rs]: AsyncOkOf<Rs[K]> }>, AsyncErrOf<Rs[number]>>;
|
|
748
743
|
/**
|
|
749
744
|
* The asynchronous counterpart of {@link allFromDict}: combine a record of
|
|
750
745
|
* {@link AsyncResult}s into one `AsyncResult` of a record of their values.
|
|
@@ -759,17 +754,15 @@ declare function allAsync<Rs extends readonly AsyncResult<unknown, unknown>[]>(r
|
|
|
759
754
|
* await allFromDictAsync({ a: fromSafePromise(a()), b: fromSafePromise(b()) });
|
|
760
755
|
* ```
|
|
761
756
|
*/
|
|
762
|
-
declare function allFromDictAsync<R extends AsyncResultRecord>(results: R): AsyncResult<{ [K in keyof R]: AsyncOkOf<R[K]> }, AsyncErrOf<R[keyof R]>>;
|
|
757
|
+
declare function allFromDictAsync<R extends AsyncResultRecord>(results: R): AsyncResult$1<{ [K in keyof R]: AsyncOkOf<R[K]> }, AsyncErrOf<R[keyof R]>>;
|
|
763
758
|
//#endregion
|
|
764
759
|
//#region src/facade.d.ts
|
|
765
760
|
/**
|
|
766
|
-
* Companion object grouping the
|
|
767
|
-
* discoverable namespace: {@link Result.Ok}, {@link Result.Err},
|
|
768
|
-
* {@link Result.
|
|
769
|
-
* {@link Result.
|
|
770
|
-
* {@link Result.
|
|
771
|
-
* {@link Result.allFromDictAsync}, {@link Result.isOk}, {@link Result.isErr},
|
|
772
|
-
* {@link Result.isDefect}, {@link Result.isResult}.
|
|
761
|
+
* Companion object grouping the **`Result`-producing** entry points under a
|
|
762
|
+
* single, discoverable namespace: {@link Result.Ok}, {@link Result.Err},
|
|
763
|
+
* {@link Result.Do}, {@link Result.fromNullable}, {@link Result.fromThrowable},
|
|
764
|
+
* {@link Result.all}, {@link Result.allFromDict}, {@link Result.isOk},
|
|
765
|
+
* {@link Result.isErr}, {@link Result.isDefect}, {@link Result.isResult}.
|
|
773
766
|
*
|
|
774
767
|
* @remarks
|
|
775
768
|
* Purely additive sugar — each member **is** the corresponding free function.
|
|
@@ -777,6 +770,10 @@ declare function allFromDictAsync<R extends AsyncResultRecord>(results: R): Asyn
|
|
|
777
770
|
* `{ Ok }` never pulls this object in. The value `Result` and the type
|
|
778
771
|
* {@link Result} share one name (the companion-object pattern).
|
|
779
772
|
*
|
|
773
|
+
* The **async** entry points live on the sibling {@link AsyncResult} companion
|
|
774
|
+
* (`AsyncResult.fromPromise`, `AsyncResult.all`, …), grouped by what they
|
|
775
|
+
* return — a static lives in exactly one namespace.
|
|
776
|
+
*
|
|
780
777
|
* @example
|
|
781
778
|
* ```ts
|
|
782
779
|
* import { Result } from "unthrown";
|
|
@@ -786,22 +783,45 @@ declare function allFromDictAsync<R extends AsyncResultRecord>(results: R): Asyn
|
|
|
786
783
|
declare const Result: {
|
|
787
784
|
readonly Ok: typeof Ok;
|
|
788
785
|
readonly Err: typeof Err;
|
|
789
|
-
readonly Defect: typeof Defect;
|
|
790
786
|
readonly Do: typeof Do;
|
|
791
787
|
readonly fromNullable: typeof fromNullable;
|
|
792
788
|
readonly fromThrowable: typeof fromThrowable;
|
|
793
|
-
readonly fromPromise: typeof fromPromise;
|
|
794
|
-
readonly fromSafePromise: typeof fromSafePromise;
|
|
795
789
|
readonly all: typeof all;
|
|
796
|
-
readonly allAsync: typeof allAsync;
|
|
797
790
|
readonly allFromDict: typeof allFromDict;
|
|
798
|
-
readonly allFromDictAsync: typeof allFromDictAsync;
|
|
799
791
|
readonly isOk: typeof isOk;
|
|
800
792
|
readonly isErr: typeof isErr;
|
|
801
793
|
readonly isDefect: typeof isDefect;
|
|
802
794
|
readonly isResult: typeof isResult;
|
|
803
795
|
};
|
|
804
796
|
type Result<T, E> = Result$1<T, E>;
|
|
797
|
+
/**
|
|
798
|
+
* Companion object grouping the **`AsyncResult`-producing** entry points under
|
|
799
|
+
* the matching namespace: {@link AsyncResult.fromPromise},
|
|
800
|
+
* {@link AsyncResult.fromSafePromise}, {@link AsyncResult.all},
|
|
801
|
+
* {@link AsyncResult.allFromDict}.
|
|
802
|
+
*
|
|
803
|
+
* @remarks
|
|
804
|
+
* The async sibling of {@link Result}. Statics are grouped by what they
|
|
805
|
+
* **return**, so `fromPromise`/`fromSafePromise` and the async aggregates sit
|
|
806
|
+
* here rather than on {@link Result}; the namespace already conveys "async", so
|
|
807
|
+
* the aggregates drop the `Async` suffix (`AsyncResult.all` is the free function
|
|
808
|
+
* `allAsync`; `AsyncResult.allFromDict` is `allFromDictAsync`). Like
|
|
809
|
+
* {@link Result}, the free functions remain the primary, tree-shakeable API; the
|
|
810
|
+
* value `AsyncResult` and the type {@link AsyncResult} share one name.
|
|
811
|
+
*
|
|
812
|
+
* @example
|
|
813
|
+
* ```ts
|
|
814
|
+
* import { AsyncResult } from "unthrown";
|
|
815
|
+
* const user = await AsyncResult.fromPromise(fetchUser(id), (c, defect) => defect(c));
|
|
816
|
+
* ```
|
|
817
|
+
*/
|
|
818
|
+
declare const AsyncResult: {
|
|
819
|
+
readonly fromPromise: typeof fromPromise;
|
|
820
|
+
readonly fromSafePromise: typeof fromSafePromise;
|
|
821
|
+
readonly all: typeof allAsync;
|
|
822
|
+
readonly allFromDict: typeof allFromDictAsync;
|
|
823
|
+
};
|
|
824
|
+
type AsyncResult<T, E> = AsyncResult$1<T, E>;
|
|
805
825
|
//#endregion
|
|
806
826
|
//#region src/tagged.d.ts
|
|
807
827
|
type Props = Record<string, unknown>;
|
|
@@ -923,7 +943,7 @@ declare function matchTags<T, E extends {
|
|
|
923
943
|
}, R>(result: Result$1<T, E>, handlers: TagHandlers<T, E, R>): R;
|
|
924
944
|
declare function matchTags<T, E extends {
|
|
925
945
|
_tag: string;
|
|
926
|
-
}, R>(result: AsyncResult<T, E>, handlers: TagHandlers<T, E, R>): Promise<R>;
|
|
946
|
+
}, R>(result: AsyncResult$1<T, E>, handlers: TagHandlers<T, E, R>): Promise<R>;
|
|
927
947
|
//#endregion
|
|
928
|
-
export { type AsyncErrOf, type AsyncOkOf,
|
|
948
|
+
export { type AsyncErrOf, type AsyncOkOf, AsyncResult, type Awaitable, type DefectView, Do, Err, type ErrOf, type ErrView, Ok, type OkOf, type OkView, Result, type TagHandlers, TaggedError, type TaggedErrorConstructor, type TaggedErrorInstance, UnwrapError, all, allAsync, allFromDict, allFromDictAsync, fromNullable, fromPromise, fromSafePromise, fromThrowable, isDefect, isErr, isOk, isResult, matchTags };
|
|
929
949
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/constructors.ts","../src/core.ts","../src/
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/constructors.ts","../src/core.ts","../src/do.ts","../src/defect.ts","../src/interop.ts","../src/facade.ts","../src/tagged.ts"],"mappings":"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"}
|