clutchit 0.0.12 → 0.0.14

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.
@@ -1,7 +1,9 @@
1
1
  import { type Try, Err } from './try.js';
2
2
  import { TryAsync } from './try.async.js';
3
- export declare function Do<T, E>(generator: () => Generator<Err<never, E>, T>): Try<T, E>;
4
- export declare function Do<C, T, E>(ctx: C, generator: (ctx: C) => Generator<Err<never, E>, T>): Try<T, E>;
5
- export declare function DoAsync<T, E>(generator: () => AsyncGenerator<Err<never, E>, T>): TryAsync<T, E>;
6
- export declare function DoAsync<C, T, E>(ctx: C, generator: (ctx: C) => AsyncGenerator<Err<never, E>, T>): TryAsync<T, E>;
3
+ type InferFault<Y> = Y extends Err<never, infer E> ? E : never;
4
+ export declare function Do<T, Y extends Err<never, any>>(generator: () => Generator<Y, T>): Try<T, InferFault<Y>>;
5
+ export declare function Do<C, T, Y extends Err<never, any>>(ctx: C, generator: (ctx: C) => Generator<Y, T>): Try<T, InferFault<Y>>;
6
+ export declare function DoAsync<T, Y extends Err<never, any>>(generator: () => AsyncGenerator<Y, T>): TryAsync<T, InferFault<Y>>;
7
+ export declare function DoAsync<C, T, Y extends Err<never, any>>(ctx: C, generator: (ctx: C) => AsyncGenerator<Y, T>): TryAsync<T, InferFault<Y>>;
8
+ export {};
7
9
  //# sourceMappingURL=do.d.ts.map
@@ -21,6 +21,7 @@ export declare class TryAsync<T, E> implements PromiseLike<Try<T, E>> {
21
21
  ok: (value: T) => U;
22
22
  err: (error: E) => U;
23
23
  }): Promise<U>;
24
+ asVoid(): TryAsync<void, E>;
24
25
  pipe<R>(fn: (result: TryAsync<T, E>) => R): R;
25
26
  [Symbol.asyncIterator](): AsyncGenerator<Err<never, E>, T>;
26
27
  }
@@ -95,6 +95,9 @@ export class TryAsync {
95
95
  const result = await this;
96
96
  return result.match(cases);
97
97
  }
98
+ asVoid() {
99
+ return this.map(() => undefined);
100
+ }
98
101
  pipe(fn) {
99
102
  return fn(this);
100
103
  }
@@ -23,6 +23,7 @@ export declare class Ok<T, E = never> {
23
23
  ok: (value: T) => U;
24
24
  err: (error: E) => U;
25
25
  }): U;
26
+ asVoid(): Try<void, E>;
26
27
  pipe<R>(fn: (result: Try<T, E>) => R): R;
27
28
  [Symbol.iterator](): Generator<Err<never, E>, T>;
28
29
  }
@@ -50,6 +51,7 @@ export declare class Err<T = never, E = unknown> {
50
51
  ok: (value: T) => U;
51
52
  err: (error: E) => U;
52
53
  }): U;
54
+ asVoid(): Try<void, E>;
53
55
  pipe<R>(fn: (result: Try<T, E>) => R): R;
54
56
  [Symbol.iterator](): Generator<Err<never, E>, T>;
55
57
  }
@@ -49,6 +49,9 @@ export class Ok {
49
49
  match(cases) {
50
50
  return cases.ok(this.value);
51
51
  }
52
+ asVoid() {
53
+ return new Ok(undefined);
54
+ }
52
55
  pipe(fn) {
53
56
  return fn(this);
54
57
  }
@@ -113,6 +116,9 @@ export class Err {
113
116
  match(cases) {
114
117
  return cases.err(this.error);
115
118
  }
119
+ asVoid() {
120
+ return this;
121
+ }
116
122
  pipe(fn) {
117
123
  return fn(this);
118
124
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clutchit",
3
- "version": "0.0.12",
3
+ "version": "0.0.14",
4
4
  "description": "Resilience primitives for TypeScript — typed errors, retry, timeout, circuit breaking, scheduling, concurrency, and queues.",
5
5
  "keywords": [
6
6
  "typescript",