Skip to content

Commit 1525053

Browse files
committed
fix: chain should expand error types
1 parent 13d9c5a commit 1525053

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

docs/task-instance.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ const task: Task<unknown, number> = Task.of(5).chain(number =>
140140
{% tab title="Type Definition" %}
141141

142142
```typescript
143-
type chain = <S2>(fn: (result: S) => Task<E, S2> | Promise<S2>) => Task<E, S2>
143+
type chain = <S2>(
144+
fn: (result: S) => Task<E2, S2> | Promise<S2>
145+
) => Task<E | E2, S2>
144146
```
145147
146148
{% endtab %}

src/Task/Task.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@ export const fork = <E, S>(
103103
* @param fn Takes a successful result and returns a new task.
104104
* @param task The task which will chain to the next one on success.
105105
*/
106-
export const chain = <E, S, S2>(
107-
fn: (result: S) => Task<E, S2> | Promise<S2>,
106+
export const chain = <E, S, E2, S2>(
107+
fn: (result: S) => Task<E2, S2> | Promise<S2>,
108108
task: Task<E, S>
109-
): Task<E, S2> =>
109+
): Task<E | E2, S2> =>
110110
new Task((reject, resolve) =>
111111
task.fork(reject, b => autoPromiseToTask(fn(b)).fork(reject, resolve))
112112
)

0 commit comments

Comments
 (0)