unthrown 1.0.0 → 2.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/dist/index.cjs CHANGED
@@ -127,6 +127,15 @@ var Res = class {
127
127
  return defectRes(cause);
128
128
  }
129
129
  }
130
+ flatTapErr(f) {
131
+ if (this.tag !== "Err") return this;
132
+ try {
133
+ const r = f(this.error);
134
+ return r.tag === "Ok" ? this : passThrough(r);
135
+ } catch (cause) {
136
+ return defectRes(cause);
137
+ }
138
+ }
130
139
  recoverDefect(f) {
131
140
  if (this.tag !== "Defect") return this;
132
141
  try {
@@ -232,6 +241,21 @@ function defectRes(cause) {
232
241
  });
233
242
  }
234
243
  /**
244
+ * Type guard: is `x` a {@link Result} (any of `Ok` / `Err` / `Defect`)?
245
+ *
246
+ * @remarks
247
+ * Unlike {@link isOk} / {@link isErr} / {@link isDefect}, which narrow a value
248
+ * already known to be a `Result`, this narrows from `unknown` — useful at an
249
+ * untyped boundary. It checks the value carries the `Result` prototype, so a
250
+ * look-alike plain object (`{ tag: "Ok" }`) is **not** matched. An `AsyncResult`
251
+ * is not a `Result` and returns `false`.
252
+ *
253
+ * @returns `true` when `x` is a `Result` produced by this library.
254
+ */
255
+ function isResult(x) {
256
+ return x instanceof Res;
257
+ }
258
+ /**
235
259
  * Reuse a non-matching variant (an `Err` or `Defect`) as a differently-typed
236
260
  * `Result`, with no runtime work. Sound because the passed-through variant
237
261
  * carries no value of the changed success type, so retyping it is a no-op — only
@@ -395,6 +419,17 @@ var AsyncRes = class AsyncRes {
395
419
  }
396
420
  }));
397
421
  }
422
+ flatTapErr(f) {
423
+ return new AsyncRes(this.promise.then(async (r) => {
424
+ if (r.tag !== "Err") return passThrough(r);
425
+ try {
426
+ const inner = await f(r.error);
427
+ return inner.tag === "Ok" ? passThrough(r) : passThrough(inner);
428
+ } catch (cause) {
429
+ return defectRes(cause);
430
+ }
431
+ }));
432
+ }
398
433
  recoverDefect(f) {
399
434
  return new AsyncRes(this.promise.then(async (r) => {
400
435
  if (r.tag !== "Defect") return r;
@@ -810,13 +845,12 @@ function allFromDictAsync(results) {
810
845
  //#endregion
811
846
  //#region src/facade.ts
812
847
  /**
813
- * Companion object grouping the standalone entry points under a single,
814
- * discoverable namespace: {@link Result.Ok}, {@link Result.Err},
815
- * {@link Result.Defect}, {@link Result.fromNullable}, {@link Result.fromThrowable},
816
- * {@link Result.fromPromise}, {@link Result.fromSafePromise}, {@link Result.all},
817
- * {@link Result.allAsync}, {@link Result.allFromDict},
818
- * {@link Result.allFromDictAsync}, {@link Result.isOk}, {@link Result.isErr},
819
- * {@link Result.isDefect}.
848
+ * Companion object grouping the **`Result`-producing** entry points under a
849
+ * single, discoverable namespace: {@link Result.Ok}, {@link Result.Err},
850
+ * {@link Result.Defect}, {@link Result.Do}, {@link Result.fromNullable},
851
+ * {@link Result.fromThrowable}, {@link Result.all}, {@link Result.allFromDict},
852
+ * {@link Result.isOk}, {@link Result.isErr}, {@link Result.isDefect},
853
+ * {@link Result.isResult}.
820
854
  *
821
855
  * @remarks
822
856
  * Purely additive sugar — each member **is** the corresponding free function.
@@ -824,6 +858,10 @@ function allFromDictAsync(results) {
824
858
  * `{ Ok }` never pulls this object in. The value `Result` and the type
825
859
  * {@link Result} share one name (the companion-object pattern).
826
860
  *
861
+ * The **async** entry points live on the sibling {@link AsyncResult} companion
862
+ * (`AsyncResult.fromPromise`, `AsyncResult.all`, …), grouped by what they
863
+ * return — a static lives in exactly one namespace.
864
+ *
827
865
  * @example
828
866
  * ```ts
829
867
  * import { Result } from "unthrown";
@@ -837,15 +875,39 @@ const Result = {
837
875
  Do,
838
876
  fromNullable,
839
877
  fromThrowable,
840
- fromPromise,
841
- fromSafePromise,
842
878
  all,
843
- allAsync,
844
879
  allFromDict,
845
- allFromDictAsync,
846
880
  isOk,
847
881
  isErr,
848
- isDefect
882
+ isDefect,
883
+ isResult
884
+ };
885
+ /**
886
+ * Companion object grouping the **`AsyncResult`-producing** entry points under
887
+ * the matching namespace: {@link AsyncResult.fromPromise},
888
+ * {@link AsyncResult.fromSafePromise}, {@link AsyncResult.all},
889
+ * {@link AsyncResult.allFromDict}.
890
+ *
891
+ * @remarks
892
+ * The async sibling of {@link Result}. Statics are grouped by what they
893
+ * **return**, so `fromPromise`/`fromSafePromise` and the async aggregates sit
894
+ * here rather than on {@link Result}; the namespace already conveys "async", so
895
+ * the aggregates drop the `Async` suffix (`AsyncResult.all` is the free function
896
+ * `allAsync`; `AsyncResult.allFromDict` is `allFromDictAsync`). Like
897
+ * {@link Result}, the free functions remain the primary, tree-shakeable API; the
898
+ * value `AsyncResult` and the type {@link AsyncResult} share one name.
899
+ *
900
+ * @example
901
+ * ```ts
902
+ * import { AsyncResult, Defect } from "unthrown";
903
+ * const user = await AsyncResult.fromPromise(fetchUser(id), (c) => Defect(c));
904
+ * ```
905
+ */
906
+ const AsyncResult = {
907
+ fromPromise,
908
+ fromSafePromise,
909
+ all: allAsync,
910
+ allFromDict: allFromDictAsync
849
911
  };
850
912
  //#endregion
851
913
  //#region src/tagged.ts
@@ -915,6 +977,7 @@ function matchTags(result, handlers) {
915
977
  });
916
978
  }
917
979
  //#endregion
980
+ exports.AsyncResult = AsyncResult;
918
981
  exports.Defect = Defect;
919
982
  exports.Do = Do;
920
983
  exports.Err = Err;
@@ -933,4 +996,5 @@ exports.fromThrowable = fromThrowable;
933
996
  exports.isDefect = isDefect;
934
997
  exports.isErr = isErr;
935
998
  exports.isOk = isOk;
999
+ exports.isResult = isResult;
936
1000
  exports.matchTags = matchTags;
package/dist/index.d.cts CHANGED
@@ -158,6 +158,23 @@ type ResultMethods<T, E> = {
158
158
  * @param f - the side effect (its return value is ignored).
159
159
  */
160
160
  tapErr(f: (error: E) => void): Result$1<T, E>;
161
+ /**
162
+ * Run a **failable** side effect on the error, keeping the original error but
163
+ * threading the effect's own error.
164
+ *
165
+ * @remarks
166
+ * The error-channel mirror of {@link ResultMethods.flatTap | flatTap}: `f`
167
+ * returns a `Result`, but its **success value is discarded** — on the effect's
168
+ * `Ok` the original `Err` flows through unchanged, while an `Err` (or `Defect`)
169
+ * from `f` short-circuits and threads its error (`Result<T, E | E2>`). Runs only
170
+ * on `Err`; `Ok` and `Defect` pass through. If `f` throws, the throw becomes a
171
+ * `Defect`. Use it for a failable effect _during_ error handling (e.g. writing
172
+ * the error to an audit log that may itself fail).
173
+ *
174
+ * @typeParam E2 - the error type the effect may introduce.
175
+ * @param f - the failable side effect; its `Ok` value is ignored.
176
+ */
177
+ flatTapErr<E2>(f: (error: E) => Result$1<unknown, E2>): Result$1<T, E | E2>;
161
178
  /**
162
179
  * Recover from a `Defect` — the **only** combinator that can touch one.
163
180
  *
@@ -244,7 +261,7 @@ type ResultMethods<T, E> = {
244
261
  isOk(): this is OkView<T, E>; /** Whether this result is `Err` — narrows `this` to its {@link ErrView} on `true`. */
245
262
  isErr(): this is ErrView<E, T>; /** Whether this result is a `Defect` — narrows `this` to its {@link DefectView} on `true`. */
246
263
  isDefect(): this is DefectView<T, E>; /** Lift this synchronous `Result` into an {@link AsyncResult}. */
247
- toAsync(): AsyncResult<T, E>;
264
+ toAsync(): AsyncResult$1<T, E>;
248
265
  };
249
266
  /** The `Ok` variant of a {@link Result}: a success carrying a `value`. */
250
267
  type OkView<T, E = never> = ResultMethods<T, E> & {
@@ -334,33 +351,40 @@ type Awaitable<T> = {
334
351
  * @typeParam T - the success value type.
335
352
  * @typeParam E - the modeled error type.
336
353
  */
337
- type AsyncResult<T, E> = Awaitable<Result$1<T, E>> & {
338
- /** 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>;
339
356
  /**
340
357
  * Asynchronous `flatMap`. `f` may return a `Result` **or** an `AsyncResult`
341
358
  * (never a raw `Promise`); a throw becomes a `Defect`.
342
359
  */
343
- 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`. */
344
- 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>;
345
362
  /**
346
363
  * Asynchronous `flatTap` — a failable tap that keeps the original value. `f`
347
364
  * may return a `Result` **or** an `AsyncResult`; its `Ok` value is discarded,
348
365
  * an `Err`/`Defect` short-circuits, and a throw becomes a `Defect`.
349
366
  */
350
- 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>;
351
368
  /**
352
369
  * Asynchronous `bind` (do-notation). `f` may return a `Result` **or** an
353
370
  * `AsyncResult`; its value is bound under `name` in the accumulating scope.
354
371
  */
355
- 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`. */
356
- let<K extends string, U>(name: K, f: (scope: T) => U): AsyncResult<Bound<T, K, U>, E>; /** Asynchronous `as`. */
357
- as<U>(value: U): AsyncResult<U, E>; /** Asynchronous `mapErr`. `f` is synchronous; a throw becomes a `Defect`. */
358
- mapErr<E2>(f: (error: E) => E2): AsyncResult<T, E2>; /** Asynchronous `orElse`. `f` may return a `Result` or an `AsyncResult`. */
359
- 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`. */
360
- recover<U>(f: (error: E) => U): AsyncResult<T | U, never>; /** Asynchronous `tapErr`. `f` is synchronous; a throw becomes a `Defect`. */
361
- tapErr(f: (error: E) => void): AsyncResult<T, E>; /** Asynchronous `recoverDefect`. `f` may return a `Result` or an `AsyncResult`. */
362
- recoverDefect<U, E2>(f: (cause: unknown) => Result$1<U, E2> | AsyncResult<U, E2>): AsyncResult<T | U, E | E2>; /** Asynchronous `tapDefect`. */
363
- tapDefect(f: (cause: unknown) => void): AsyncResult<T, E>; /** Asynchronous `match`. Handlers are synchronous; resolves to `R`. */
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
+ /**
380
+ * Asynchronous `flatTapErr` a failable tap on the error that keeps the
381
+ * original error. `f` may return a `Result` **or** an `AsyncResult`; its `Ok`
382
+ * value is discarded, an `Err`/`Defect` from `f` threads through, and a throw
383
+ * becomes a `Defect`.
384
+ */
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`. */
364
388
  match<R>(cases: {
365
389
  ok: (value: T) => R;
366
390
  err: (error: E) => R;
@@ -396,13 +420,13 @@ type ErrOf<R> = R extends {
396
420
  *
397
421
  * @typeParam R - the `AsyncResult` type to inspect.
398
422
  */
399
- type AsyncOkOf<R> = R extends AsyncResult<infer T, unknown> ? T : never;
423
+ type AsyncOkOf<R> = R extends AsyncResult$1<infer T, unknown> ? T : never;
400
424
  /**
401
425
  * Extract the error type `E` from an {@link AsyncResult}.
402
426
  *
403
427
  * @typeParam R - the `AsyncResult` type to inspect.
404
428
  */
405
- type AsyncErrOf<R> = R extends AsyncResult<unknown, infer E> ? E : never;
429
+ type AsyncErrOf<R> = R extends AsyncResult$1<unknown, infer E> ? E : never;
406
430
  //#endregion
407
431
  //#region src/constructors.d.ts
408
432
  /**
@@ -477,6 +501,19 @@ declare class UnwrapError<E = unknown> extends Error {
477
501
  readonly error: E;
478
502
  constructor(error: E);
479
503
  }
504
+ /**
505
+ * Type guard: is `x` a {@link Result} (any of `Ok` / `Err` / `Defect`)?
506
+ *
507
+ * @remarks
508
+ * Unlike {@link isOk} / {@link isErr} / {@link isDefect}, which narrow a value
509
+ * already known to be a `Result`, this narrows from `unknown` — useful at an
510
+ * untyped boundary. It checks the value carries the `Result` prototype, so a
511
+ * look-alike plain object (`{ tag: "Ok" }`) is **not** matched. An `AsyncResult`
512
+ * is not a `Result` and returns `false`.
513
+ *
514
+ * @returns `true` when `x` is a `Result` produced by this library.
515
+ */
516
+ declare function isResult(x: unknown): x is Result$1<unknown, unknown>;
480
517
  //#endregion
481
518
  //#region src/defect.d.ts
482
519
  declare const DEFECT: unique symbol;
@@ -618,7 +655,7 @@ declare function fromThrowable<A extends unknown[], T, R>(fn: (...args: A) => T,
618
655
  * );
619
656
  * ```
620
657
  */
621
- declare function fromPromise<T, R>(promise: Promise<T> | (() => Promise<T>), qualify: (cause: unknown) => R): AsyncResult<T, Exclude<R, Defect>>;
658
+ declare function fromPromise<T, R>(promise: Promise<T> | (() => Promise<T>), qualify: (cause: unknown) => R): AsyncResult$1<T, Exclude<R, Defect>>;
622
659
  /**
623
660
  * Wrap a `Promise` asserted **not** to fail in any modeled way: any rejection
624
661
  * becomes a `Defect`.
@@ -631,7 +668,7 @@ declare function fromPromise<T, R>(promise: Promise<T> | (() => Promise<T>), qua
631
668
  * @typeParam T - the resolved value type.
632
669
  * @param promise - the promise, or a thunk returning one.
633
670
  */
634
- declare function fromSafePromise<T>(promise: Promise<T> | (() => Promise<T>)): AsyncResult<T, never>;
671
+ declare function fromSafePromise<T>(promise: Promise<T> | (() => Promise<T>)): AsyncResult$1<T, never>;
635
672
  /**
636
673
  * The success channel of {@link all} / {@link allAsync}: a **positional tuple**
637
674
  * for a fixed-length input (including the empty tuple), or a homogeneous
@@ -653,7 +690,7 @@ type AllOk<Rs extends readonly unknown[], Ts extends readonly unknown[]> = numbe
653
690
  /** A record of `Result`s — the input to {@link allFromDict}. */
654
691
  type ResultRecord = Record<string, Result$1<unknown, unknown>>;
655
692
  /** A record of `AsyncResult`s — the input to {@link allFromDictAsync}. */
656
- type AsyncResultRecord = Record<string, AsyncResult<unknown, unknown>>;
693
+ type AsyncResultRecord = Record<string, AsyncResult$1<unknown, unknown>>;
657
694
  /**
658
695
  * Collect a tuple/array of {@link Result}s into a single `Result` of all their
659
696
  * success values.
@@ -707,7 +744,7 @@ declare function allFromDict<R extends ResultRecord>(results: R): Result$1<{ [K
707
744
  * await allAsync([fromSafePromise(a()), fromSafePromise(b())]);
708
745
  * ```
709
746
  */
710
- 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]>>;
747
+ 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]>>;
711
748
  /**
712
749
  * The asynchronous counterpart of {@link allFromDict}: combine a record of
713
750
  * {@link AsyncResult}s into one `AsyncResult` of a record of their values.
@@ -722,17 +759,16 @@ declare function allAsync<Rs extends readonly AsyncResult<unknown, unknown>[]>(r
722
759
  * await allFromDictAsync({ a: fromSafePromise(a()), b: fromSafePromise(b()) });
723
760
  * ```
724
761
  */
725
- declare function allFromDictAsync<R extends AsyncResultRecord>(results: R): AsyncResult<{ [K in keyof R]: AsyncOkOf<R[K]> }, AsyncErrOf<R[keyof R]>>;
762
+ declare function allFromDictAsync<R extends AsyncResultRecord>(results: R): AsyncResult$1<{ [K in keyof R]: AsyncOkOf<R[K]> }, AsyncErrOf<R[keyof R]>>;
726
763
  //#endregion
727
764
  //#region src/facade.d.ts
728
765
  /**
729
- * Companion object grouping the standalone entry points under a single,
730
- * discoverable namespace: {@link Result.Ok}, {@link Result.Err},
731
- * {@link Result.Defect}, {@link Result.fromNullable}, {@link Result.fromThrowable},
732
- * {@link Result.fromPromise}, {@link Result.fromSafePromise}, {@link Result.all},
733
- * {@link Result.allAsync}, {@link Result.allFromDict},
734
- * {@link Result.allFromDictAsync}, {@link Result.isOk}, {@link Result.isErr},
735
- * {@link Result.isDefect}.
766
+ * Companion object grouping the **`Result`-producing** entry points under a
767
+ * single, discoverable namespace: {@link Result.Ok}, {@link Result.Err},
768
+ * {@link Result.Defect}, {@link Result.Do}, {@link Result.fromNullable},
769
+ * {@link Result.fromThrowable}, {@link Result.all}, {@link Result.allFromDict},
770
+ * {@link Result.isOk}, {@link Result.isErr}, {@link Result.isDefect},
771
+ * {@link Result.isResult}.
736
772
  *
737
773
  * @remarks
738
774
  * Purely additive sugar — each member **is** the corresponding free function.
@@ -740,6 +776,10 @@ declare function allFromDictAsync<R extends AsyncResultRecord>(results: R): Asyn
740
776
  * `{ Ok }` never pulls this object in. The value `Result` and the type
741
777
  * {@link Result} share one name (the companion-object pattern).
742
778
  *
779
+ * The **async** entry points live on the sibling {@link AsyncResult} companion
780
+ * (`AsyncResult.fromPromise`, `AsyncResult.all`, …), grouped by what they
781
+ * return — a static lives in exactly one namespace.
782
+ *
743
783
  * @example
744
784
  * ```ts
745
785
  * import { Result } from "unthrown";
@@ -753,17 +793,42 @@ declare const Result: {
753
793
  readonly Do: typeof Do;
754
794
  readonly fromNullable: typeof fromNullable;
755
795
  readonly fromThrowable: typeof fromThrowable;
756
- readonly fromPromise: typeof fromPromise;
757
- readonly fromSafePromise: typeof fromSafePromise;
758
796
  readonly all: typeof all;
759
- readonly allAsync: typeof allAsync;
760
797
  readonly allFromDict: typeof allFromDict;
761
- readonly allFromDictAsync: typeof allFromDictAsync;
762
798
  readonly isOk: typeof isOk;
763
799
  readonly isErr: typeof isErr;
764
800
  readonly isDefect: typeof isDefect;
801
+ readonly isResult: typeof isResult;
765
802
  };
766
803
  type Result<T, E> = Result$1<T, E>;
804
+ /**
805
+ * Companion object grouping the **`AsyncResult`-producing** entry points under
806
+ * the matching namespace: {@link AsyncResult.fromPromise},
807
+ * {@link AsyncResult.fromSafePromise}, {@link AsyncResult.all},
808
+ * {@link AsyncResult.allFromDict}.
809
+ *
810
+ * @remarks
811
+ * The async sibling of {@link Result}. Statics are grouped by what they
812
+ * **return**, so `fromPromise`/`fromSafePromise` and the async aggregates sit
813
+ * here rather than on {@link Result}; the namespace already conveys "async", so
814
+ * the aggregates drop the `Async` suffix (`AsyncResult.all` is the free function
815
+ * `allAsync`; `AsyncResult.allFromDict` is `allFromDictAsync`). Like
816
+ * {@link Result}, the free functions remain the primary, tree-shakeable API; the
817
+ * value `AsyncResult` and the type {@link AsyncResult} share one name.
818
+ *
819
+ * @example
820
+ * ```ts
821
+ * import { AsyncResult, Defect } from "unthrown";
822
+ * const user = await AsyncResult.fromPromise(fetchUser(id), (c) => Defect(c));
823
+ * ```
824
+ */
825
+ declare const AsyncResult: {
826
+ readonly fromPromise: typeof fromPromise;
827
+ readonly fromSafePromise: typeof fromSafePromise;
828
+ readonly all: typeof allAsync;
829
+ readonly allFromDict: typeof allFromDictAsync;
830
+ };
831
+ type AsyncResult<T, E> = AsyncResult$1<T, E>;
767
832
  //#endregion
768
833
  //#region src/tagged.d.ts
769
834
  type Props = Record<string, unknown>;
@@ -885,7 +950,7 @@ declare function matchTags<T, E extends {
885
950
  }, R>(result: Result$1<T, E>, handlers: TagHandlers<T, E, R>): R;
886
951
  declare function matchTags<T, E extends {
887
952
  _tag: string;
888
- }, R>(result: AsyncResult<T, E>, handlers: TagHandlers<T, E, R>): Promise<R>;
953
+ }, R>(result: AsyncResult$1<T, E>, handlers: TagHandlers<T, E, R>): Promise<R>;
889
954
  //#endregion
890
- export { type AsyncErrOf, type AsyncOkOf, type AsyncResult, type Awaitable, Defect, 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, matchTags };
955
+ export { type AsyncErrOf, type AsyncOkOf, AsyncResult, type Awaitable, Defect, 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 };
891
956
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/constructors.ts","../src/core.ts","../src/defect.ts","../src/do.ts","../src/interop.ts","../src/facade.ts","../src/tagged.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/constructors.ts","../src/core.ts","../src/defect.ts","../src/do.ts","../src/interop.ts","../src/facade.ts","../src/tagged.ts"],"mappings":"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"}