Skip to content

Commit 90c5a89

Browse files
committed
Update type definitions to avoid optional properties.
1 parent 9e5ed78 commit 90c5a89

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

src/index.d.ts

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,7 @@ export interface AsyncProps<T> extends AsyncOptions<T> {
2121
}
2222

2323
interface AbstractState<T> {
24-
data?: T
25-
error?: Error
2624
initialValue?: T
27-
startedAt?: Date
28-
finishedAt?: Date
2925
isWaiting: boolean
3026
isPending: boolean
3127
isLoading: boolean
@@ -41,10 +37,34 @@ interface AbstractState<T> {
4137
setError: (error: Error, callback?: () => void) => Error
4238
}
4339

44-
export type AsyncWaiting<T> = AbstractState<T> & { status: "waiting" }
45-
export type AsyncPending<T> = AbstractState<T> & { status: "pending" }
46-
export type AsyncFulfilled<T> = AbstractState<T> & { status: "fulfilled"; data: T }
47-
export type AsyncRejected<T> = AbstractState<T> & { status: "rejected"; error: Error }
40+
export type AsyncWaiting<T> = AbstractState<T> & {
41+
status: "waiting"
42+
data: undefined
43+
error: undefined
44+
startedAt: undefined
45+
finishedAt: undefined
46+
}
47+
export type AsyncPending<T> = AbstractState<T> & {
48+
status: "pending"
49+
data?: T
50+
error?: Error
51+
startedAt: Date
52+
finishedAt: undefined
53+
}
54+
export type AsyncFulfilled<T> = AbstractState<T> & {
55+
status: "fulfilled"
56+
data: T
57+
error: undefined
58+
startedAt: Date
59+
finishedAt: Date
60+
}
61+
export type AsyncRejected<T> = AbstractState<T> & {
62+
status: "rejected"
63+
data?: T
64+
error: Error
65+
startedAt: Date
66+
finishedAt: Date
67+
}
4868
export type AsyncState<T> = AsyncWaiting<T> | AsyncPending<T> | AsyncFulfilled<T> | AsyncRejected<T>
4969

5070
declare class Async<T> extends React.Component<AsyncProps<T>, AsyncState<T>> {}

src/reducer.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export const reducer = (state, { type, payload, meta }) => {
3131
return {
3232
...state,
3333
startedAt: undefined,
34+
finishedAt: undefined,
3435
...getStatusProps(getIdleStatus(state.error || state.data)),
3536
counter: meta.counter,
3637
}

0 commit comments

Comments
 (0)