Skip to content

Commit bd75364

Browse files
authored
feat: make useAsyncIterState iterable's type more accurate (#23)
1 parent 25e1ab5 commit bd75364

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

spec/tests/useAsyncIterState.spec.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ describe('`useAsyncIterState` hook', () => {
3939
const yieldPromise1 = iterator1.next();
4040
const yieldPromise2 = iterator2.next();
4141

42-
await iterator1.return!();
42+
await iterator1.return();
4343

4444
{
4545
const promiseStates = await Promise.all(
@@ -51,7 +51,7 @@ describe('`useAsyncIterState` hook', () => {
5151
]);
5252
}
5353

54-
await iterator2.return!();
54+
await iterator2.return();
5555

5656
{
5757
const promiseStates = await Promise.all(

src/useAsyncIterState/IterableChannel.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@ class IterableChannel<TVal> {
1818
this.#nextIteration.resolve({ done: true, value: undefined });
1919
}
2020

21-
iterable = {
21+
iterable: {
22+
[Symbol.asyncIterator](): {
23+
next(): Promise<IteratorResult<TVal, void>>;
24+
return(): Promise<IteratorReturnResult<void>>;
25+
};
26+
} = {
2227
[Symbol.asyncIterator]: () => {
2328
const whenIteratorClosed = promiseWithResolvers<IteratorReturnResult<undefined>>();
2429

@@ -33,5 +38,5 @@ class IterableChannel<TVal> {
3338
},
3439
};
3540
},
36-
} satisfies AsyncIterable<TVal, void, void>;
41+
};
3742
}

src/useAsyncIterState/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,4 @@ function useAsyncIterState<TVal>(): AsyncIterStateResult<TVal> {
7777
*
7878
* @see {@link useAsyncIterState `useAsyncIterState`}
7979
*/
80-
type AsyncIterStateResult<TVal> = [AsyncIterable<TVal, void, void>, (newValue: TVal) => void];
80+
type AsyncIterStateResult<TVal> = [IterableChannel<TVal>['iterable'], (newValue: TVal) => void];

0 commit comments

Comments
 (0)