@@ -52,7 +52,7 @@ const TreeModelHelper = {
5252
5353 return TreeModelHelper . copyItemsToTree (
5454 sourceTree ,
55- destProject . children ,
55+ destProject . children || [ ] ,
5656 keysToNode
5757 ) ;
5858 } ,
@@ -92,8 +92,8 @@ const TreeModelHelper = {
9292 if ( nextDestNode ) {
9393 // We already have a copy of node, go on
9494 keyIdx ++ ;
95- sourceChildren = nextSourceNode . children ;
96- destChildren = nextDestNode . children ;
95+ sourceChildren = nextSourceNode . children || [ ] ;
96+ destChildren = nextDestNode . children || [ ] ;
9797 } else {
9898 // Make a copy from this node
9999 const restKeysToNode = keysToNode . slice ( keyIdx ) ;
@@ -134,8 +134,8 @@ const TreeModelHelper = {
134134 return true ;
135135 }
136136
137- destChildren = copyNode . children ;
138- sourceNode = sourceNode . children . find (
137+ destChildren = copyNode . children || [ ] ;
138+ sourceNode = sourceNode . children ? .find (
139139 ( node ) => node . key === keysToNode [ keyIdx ]
140140 ) ;
141141 if ( ! sourceNode ) {
@@ -144,52 +144,52 @@ const TreeModelHelper = {
144144 }
145145 } ,
146146
147- walkRecursive < T extends ITreeItem < any > > (
147+ walkRecursive < T extends ITreeItem > (
148148 fn : ( item : T , parent ?: T ) => void ,
149149 treeItems : T [ ] ,
150150 parent ?: T
151151 ) {
152152 treeItems . forEach ( ( item ) => {
153153 fn ( item , parent ) ;
154154 if ( item . children ?. length ) {
155- TreeModelHelper . walkRecursive ( fn , item . children , item ) ;
155+ this . walkRecursive ( fn , item . children as T [ ] , item ) ;
156156 }
157157 } ) ;
158158 } ,
159159
160- walkToParent < T extends ITreeItemWithParent < any > > (
160+ walkToParent < T extends ITreeItemWithParent > (
161161 fn : ( nParent : T ) => void ,
162162 treeItem : T
163163 ) {
164164 if ( treeItem . parent ) {
165- fn ( treeItem . parent ) ;
166- TreeModelHelper . walkToParent ( fn , treeItem . parent ) ;
165+ fn ( treeItem . parent as T ) ;
166+ this . walkToParent ( fn , treeItem . parent as T ) ;
167167 }
168168 } ,
169169
170- modifyItemsWithIdsRecursive < T extends ITreeItem < any > > (
170+ modifyItemsWithIdsRecursive < T extends ITreeItem > (
171171 treeItems : T [ ] ,
172172 ids : string [ ] ,
173173 fn : ( treeItem : T , ids : string [ ] ) => void
174174 ) {
175175 treeItems . forEach ( ( item ) => {
176176 fn ( item , ids ) ;
177177 if ( Array . isArray ( item . children ) && item . children . length ) {
178- TreeModelHelper . modifyItemsWithIdsRecursive ( item . children , ids , fn ) ;
178+ this . modifyItemsWithIdsRecursive ( item . children as T [ ] , ids , fn ) ;
179179 }
180180 } ) ;
181181 } ,
182182
183- getItemRecursive < T extends ITreeItem < any > > (
184- tasks : T [ ] ,
183+ getItemRecursive < T extends ITreeItem > (
184+ items : T [ ] ,
185185 condition : ( task : T ) => boolean
186186 ) : T | undefined {
187- for ( const task of tasks ) {
188- if ( condition ( task ) ) {
189- return task ;
187+ for ( const item of items ) {
188+ if ( condition ( item ) ) {
189+ return item ;
190190 }
191- if ( Array . isArray ( task . children ) ) {
192- const found = this . getItemRecursive ( task . children , condition ) ;
191+ if ( item . children ?. length ) {
192+ const found = this . getItemRecursive ( item . children as T [ ] , condition ) ;
193193 if ( found ) {
194194 return found ;
195195 }
@@ -198,7 +198,7 @@ const TreeModelHelper = {
198198 return undefined ;
199199 } ,
200200
201- getFlatItemsRecursive < T extends ITreeItem < any > > (
201+ getFlatItemsRecursive < T extends ITreeItem > (
202202 tree : T [ ] ,
203203 condition : ( task : T ) => boolean
204204 ) : T [ ] {
@@ -209,33 +209,32 @@ const TreeModelHelper = {
209209 return result ;
210210 } ,
211211
212- getFlatItemsRecursiveBase < T extends ITreeItem < any > > (
212+ getFlatItemsRecursiveBase < T extends ITreeItem > (
213213 treeItems : T [ ] ,
214214 condition : ( item : T ) => boolean ,
215215 result : T [ ]
216216 ) : T [ ] {
217- for ( const item of treeItems ) {
217+ treeItems . forEach ( ( item ) => {
218218 if ( condition ( item ) ) {
219219 result . push ( item ) ;
220220 }
221- if ( Array . isArray ( item . children ) ) {
222- this . getFlatItemsRecursiveBase ( item . children , condition , result ) ;
221+ if ( item . children ?. length ) {
222+ this . getFlatItemsRecursiveBase ( item . children as T [ ] , condition , result ) ;
223223 }
224- }
224+ } ) ;
225225 return result ;
226226 } ,
227227
228- deleteItems < T extends ITreeItem < any > > (
228+ deleteItems < T extends ITreeItem > (
229229 treeItems : T [ ] ,
230- condition : ( task : T ) => boolean
230+ condition : ( item : T ) => boolean
231231 ) : T [ ] {
232232 const result = treeItems . filter ( ( t ) => ! condition ( t ) ) ;
233- for ( let i = 0 ; i < result . length ; i ++ ) {
234- const task = treeItems [ i ] ;
235- if ( Array . isArray ( task . children ) ) {
236- treeItems [ i ] . children = this . deleteItems ( task . children , condition ) ;
233+ result . forEach ( ( item ) => {
234+ if ( item . children ?. length ) {
235+ item . children = this . deleteItems ( item . children as T [ ] , condition ) ;
237236 }
238- }
237+ } ) ;
239238 return result ;
240239 } ,
241240} ;
0 commit comments