clutchit 0.0.10 → 0.0.11

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,7 @@
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
+ export declare function Do<T, E>(generator: () => Generator<Err<never, E>, T>): Try<T, NoInfer<E>>;
4
+ export declare function Do<C, T, E>(ctx: C, generator: (ctx: C) => Generator<Err<never, E>, T>): Try<T, NoInfer<E>>;
5
+ export declare function DoAsync<T, E>(generator: () => AsyncGenerator<Err<never, E>, T>): TryAsync<T, NoInfer<E>>;
6
+ export declare function DoAsync<C, T, E>(ctx: C, generator: (ctx: C) => AsyncGenerator<Err<never, E>, T>): TryAsync<T, NoInfer<E>>;
7
7
  //# 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
+ pipe<R>(fn: (result: TryAsync<T, E>) => R): R;
24
25
  [Symbol.asyncIterator](): AsyncGenerator<Err<never, E>, T>;
25
26
  }
26
27
  export declare function okAsync<T, E = never>(value: T): TryAsync<T, E>;
@@ -95,6 +95,9 @@ export class TryAsync {
95
95
  const result = await this;
96
96
  return result.match(cases);
97
97
  }
98
+ pipe(fn) {
99
+ return fn(this);
100
+ }
98
101
  async *[Symbol.asyncIterator]() {
99
102
  const result = await this._promise;
100
103
  if (result.isErr()) {
@@ -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
+ pipe<R>(fn: (result: Try<T, E>) => R): R;
26
27
  [Symbol.iterator](): Generator<Err<never, E>, T>;
27
28
  }
28
29
  export declare class Err<T = never, E = unknown> {
@@ -49,6 +50,7 @@ export declare class Err<T = never, E = unknown> {
49
50
  ok: (value: T) => U;
50
51
  err: (error: E) => U;
51
52
  }): U;
53
+ pipe<R>(fn: (result: Try<T, E>) => R): R;
52
54
  [Symbol.iterator](): Generator<Err<never, E>, T>;
53
55
  }
54
56
  export declare function ok<T, E = never>(value: T): Ok<T, E>;
@@ -49,6 +49,9 @@ export class Ok {
49
49
  match(cases) {
50
50
  return cases.ok(this.value);
51
51
  }
52
+ pipe(fn) {
53
+ return fn(this);
54
+ }
52
55
  // eslint-disable-next-line require-yield
53
56
  *[Symbol.iterator]() {
54
57
  return this.value;
@@ -110,6 +113,9 @@ export class Err {
110
113
  match(cases) {
111
114
  return cases.err(this.error);
112
115
  }
116
+ pipe(fn) {
117
+ return fn(this);
118
+ }
113
119
  *[Symbol.iterator]() {
114
120
  // @ts-expect-error -- structurally equivalent, safe for Do notation
115
121
  yield this;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clutchit",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "Resilience primitives for TypeScript — typed errors, retry, timeout, circuit breaking, scheduling, concurrency, and queues.",
5
5
  "keywords": [
6
6
  "typescript",