@@ -43,7 +43,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
43
43
Difficulty : Map < string , list . IProblem [ ] > ,
44
44
Tag : Map < string , list . IProblem [ ] > ,
45
45
Company : Map < string , list . IProblem [ ] > ,
46
- Favorite : list . IProblem [ ]
46
+ Favorite : list . IProblem [ ] ,
47
47
} ;
48
48
49
49
private onDidChangeTreeDataEvent : vscode . EventEmitter < any > = new vscode . EventEmitter < any > ( ) ;
@@ -92,7 +92,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
92
92
if ( ! element ) { // Root view
93
93
return new Promise ( async ( resolve : ( res : LeetCodeNode [ ] ) => void ) : Promise < void > => {
94
94
await this . getProblemData ( ) ;
95
- const nodes = [
95
+ resolve ( [
96
96
new LeetCodeNode ( Object . assign ( { } , list . IProblemDefault , {
97
97
id : "Root" ,
98
98
name : "Difficulty" ,
@@ -109,8 +109,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
109
109
id : "Root" ,
110
110
name : "Favorite" ,
111
111
} ) , false ) ,
112
- ]
113
- resolve ( nodes ) ;
112
+ ] ) ;
114
113
} ) ;
115
114
} else {
116
115
switch ( element . name ) { // First-level
@@ -119,7 +118,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
119
118
case "Company" :
120
119
return this . composeCategoryNodes ( element ) ;
121
120
case "Favorite" :
122
- return this . treeData . Favorite . map ( p => new LeetCodeNode ( p ) ) ;
121
+ return this . treeData . Favorite . map ( ( p : list . IProblem ) => new LeetCodeNode ( p ) ) ;
123
122
default : // Second and lower levels
124
123
return element . isProblem ? [ ] : this . composeProblemNodes ( element ) ;
125
124
}
@@ -131,20 +130,20 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
131
130
Difficulty : new Map ( ) ,
132
131
Tag : new Map ( ) ,
133
132
Company : new Map ( ) ,
134
- Favorite : [ ]
135
- }
133
+ Favorite : [ ] ,
134
+ } ;
136
135
for ( const problem of await list . listProblems ( ) ) {
137
136
// Add problems according to category
138
- const categories = [
137
+ const categories : Array < [ Category , string [ ] ] > = [
139
138
[ "Difficulty" , [ problem . difficulty ] ] ,
140
139
[ "Tag" , problem . tags ] ,
141
- [ "Company" , problem . companies ]
142
- ] as [ Category , string [ ] ] [ ] ;
140
+ [ "Company" , problem . companies ] ,
141
+ ] ;
143
142
for ( const [ parent , children ] of categories ) {
144
143
for ( let subCategory of children ) {
145
144
// map 'first-second' to 'First Second'
146
- subCategory = subCategory . split ( '-' ) . map ( c => c [ 0 ] . toUpperCase ( ) + c . slice ( 1 ) ) . join ( ' ' ) ;
147
- const problems = this . treeData [ parent ] . get ( subCategory ) ;
145
+ subCategory = subCategory . split ( "-" ) . map ( ( c : string ) => c [ 0 ] . toUpperCase ( ) + c . slice ( 1 ) ) . join ( " " ) ;
146
+ const problems : list . IProblem [ ] | undefined = this . treeData [ parent ] . get ( subCategory ) ;
148
147
if ( problems ) {
149
148
problems . push ( problem ) ;
150
149
} else {
@@ -154,7 +153,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
154
153
}
155
154
// Add favorite problems
156
155
if ( problem . favorite ) {
157
- this . treeData . Favorite . push ( problem )
156
+ this . treeData . Favorite . push ( problem ) ;
158
157
}
159
158
}
160
159
}
@@ -173,13 +172,13 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
173
172
}
174
173
175
174
private composeCategoryNodes ( node : LeetCodeNode ) : LeetCodeNode [ ] {
176
- const parent = node . name as Category ;
177
- const categoryNodes = Array . from ( this . treeData [ parent ] . keys ( ) ) . map ( subCategory =>
178
- new LeetCodeNode ( Object . assign ( { } , list . IProblemDefault , {
179
- id : parent ,
180
- name : subCategory ,
181
- } ) , false )
182
- ) ;
175
+ const parent : Category = node . name as Category ;
176
+ const categoryNodes : LeetCodeNode [ ] =
177
+ Array . from ( this . treeData [ parent ] . keys ( ) ) . map ( ( subCategory : string ) =>
178
+ new LeetCodeNode ( Object . assign ( { } , list . IProblemDefault , {
179
+ id : parent ,
180
+ name : subCategory ,
181
+ } ) , false ) ) ;
183
182
// Sort lists
184
183
switch ( parent ) {
185
184
case "Difficulty" : {
@@ -202,9 +201,9 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
202
201
case "Tag" :
203
202
case "Company" : {
204
203
categoryNodes . sort ( ( a : LeetCodeNode , b : LeetCodeNode ) : number => {
205
- if ( a . name == "Unknown" ) {
204
+ if ( a . name === "Unknown" ) {
206
205
return 1 ;
207
- } else if ( b . name == "Unknown" ) {
206
+ } else if ( b . name === "Unknown" ) {
208
207
return - 1 ;
209
208
} else {
210
209
return Number ( a . name > b . name ) - Number ( a . name < b . name ) ;
0 commit comments