File tree Expand file tree Collapse file tree 1 file changed +66
-0
lines changed Expand file tree Collapse file tree 1 file changed +66
-0
lines changed Original file line number Diff line number Diff line change
1
+ export interface DependencyBase<T> {
2
+ isInProgress: boolean;
3
+ isError: boolean;
4
+ error?: unknown;
5
+ result?: T | null;
6
+ optional?: boolean;
7
+ }
8
+ export interface PendingOptionalDependency<T> extends DependencyBase<T> {
9
+ isInProgress: true;
10
+ isError: false;
11
+ error: undefined;
12
+ result: undefined;
13
+ optional: true;
14
+ }
15
+
16
+ export interface SuccessfulOptionalDependency<T> extends DependencyBase<T> {
17
+ isInProgress: false;
18
+ isError: false;
19
+ error: undefined;
20
+ result: T | null;
21
+ optional: true;
22
+ }
23
+
24
+ export interface FailedOptionalDependency<T> extends DependencyBase<T> {
25
+ isInProgress: false;
26
+ isError: true;
27
+ error: unknown;
28
+ result: undefined;
29
+ optional: true;
30
+ }
31
+
32
+ export type OptionalDependency<T = unknown> =
33
+ | PendingOptionalDependency<T>
34
+ | SuccessfulOptionalDependency<T>
35
+ | FailedOptionalDependency<T>;
36
+
37
+ export interface PendingRequiredDependency<T> extends DependencyBase<T> {
38
+ isInProgress: true;
39
+ isError: false;
40
+ error: undefined;
41
+ result: undefined;
42
+ optional?: false;
43
+ }
44
+
45
+ export interface SuccessfulRequiredDependency<T> extends DependencyBase<T> {
46
+ isInProgress: false;
47
+ isError: false;
48
+ error: undefined;
49
+ result: T;
50
+ optional?: false;
51
+ }
52
+
53
+ export interface FailedRequiredDependency<T> extends DependencyBase<T> {
54
+ isInProgress: false;
55
+ isError: true;
56
+ error: unknown;
57
+ result: undefined;
58
+ optional?: false;
59
+ }
60
+
61
+ export type RequiredDependency<T = unknown> =
62
+ | PendingRequiredDependency<T>
63
+ | SuccessfulRequiredDependency<T>
64
+ | FailedRequiredDependency<T>;
65
+
66
+ export type Dependency<T = unknown> = OptionalDependency<T> | RequiredDependency<T>;
You can’t perform that action at this time.
0 commit comments