@@ -63,8 +63,8 @@ export class DependenciesEngine {
6363 }
6464
6565 private updateModulesDeclarationsExportsTypes ( ) {
66- let mergeTypes = entry => {
67- let directive = this . findInCompodocDependencies (
66+ const mergeTypes = entry => {
67+ const directive = this . findInCompodocDependencies (
6868 entry . name ,
6969 this . directives ,
7070 entry . file
@@ -74,7 +74,7 @@ export class DependenciesEngine {
7474 entry . id = directive . data . id ;
7575 }
7676
77- let component = this . findInCompodocDependencies (
77+ const component = this . findInCompodocDependencies (
7878 entry . name ,
7979 this . components ,
8080 entry . file
@@ -84,7 +84,7 @@ export class DependenciesEngine {
8484 entry . id = component . data . id ;
8585 }
8686
87- let pipe = this . findInCompodocDependencies ( entry . name , this . pipes , entry . file ) ;
87+ const pipe = this . findInCompodocDependencies ( entry . name , this . pipes , entry . file ) ;
8888 if ( typeof pipe . data !== 'undefined' ) {
8989 entry . type = 'pipe' ;
9090 entry . id = pipe . data . id ;
@@ -147,24 +147,38 @@ export class DependenciesEngine {
147147 private findInCompodocDependencies ( name , data , file ?) : IApiSourceResult < any > {
148148 let _result = {
149149 source : 'internal' ,
150- data : undefined
150+ data : undefined ,
151+ score : 0
151152 } ;
152153 let nameFoundCounter = 0 ;
153154 if ( data && data . length > 0 ) {
154155 for ( let i = 0 ; i < data . length ; i ++ ) {
155156 if ( typeof name !== 'undefined' ) {
156157 if ( typeof file !== 'undefined' ) {
157158 if (
159+ name === data [ i ] . name &&
160+ file . replace ( / \\ / g, '/' ) . indexOf ( data [ i ] . file ) !== - 1
161+ ) {
162+ nameFoundCounter += 1 ;
163+ _result . data = data [ i ] ;
164+ _result . score = 2 ;
165+ } else if (
158166 name . indexOf ( data [ i ] . name ) !== - 1 &&
159167 file . replace ( / \\ / g, '/' ) . indexOf ( data [ i ] . file ) !== - 1
160168 ) {
161169 nameFoundCounter += 1 ;
162170 _result . data = data [ i ] ;
171+ _result . score = 1 ;
163172 }
164173 } else {
165- if ( name . indexOf ( data [ i ] . name ) !== - 1 ) {
174+ if ( name === data [ i ] . name ) {
166175 nameFoundCounter += 1 ;
167176 _result . data = data [ i ] ;
177+ _result . score = 2 ;
178+ } else if ( name . indexOf ( data [ i ] . name ) !== - 1 ) {
179+ nameFoundCounter += 1 ;
180+ _result . data = data [ i ] ;
181+ _result . score = 1 ;
168182 }
169183 }
170184 }
@@ -176,25 +190,25 @@ export class DependenciesEngine {
176190 for ( let i = 0 ; i < data . length ; i ++ ) {
177191 if ( typeof name !== 'undefined' ) {
178192 if ( typeof file !== 'undefined' ) {
179- if (
180- name === data [ i ] . name &&
181- file . replace ( / \\ / g, '/' ) . indexOf ( data [ i ] . file ) !== - 1
182- ) {
193+ if ( name === data [ i ] . name ) {
183194 found = true ;
184195 _result . data = data [ i ] ;
196+ _result . score = 2 ;
185197 }
186198 } else {
187199 if ( name === data [ i ] . name ) {
188200 found = true ;
189201 _result . data = data [ i ] ;
202+ _result . score = 2 ;
190203 }
191204 }
192205 }
193206 }
194207 if ( ! found ) {
195208 _result = {
196209 source : 'internal' ,
197- data : undefined
210+ data : undefined ,
211+ score : 0
198212 } ;
199213 }
200214 }
@@ -203,8 +217,8 @@ export class DependenciesEngine {
203217 }
204218
205219 private manageDuplicatesName ( ) {
206- let processDuplicates = ( element , index , array ) => {
207- let elementsWithSameName = _ . filter ( array , { name : element . name } ) ;
220+ const processDuplicates = ( element , index , array ) => {
221+ const elementsWithSameName = _ . filter ( array , { name : element . name } ) ;
208222 if ( elementsWithSameName . length > 1 ) {
209223 // First element is the reference for duplicates
210224 for ( let i = 1 ; i < elementsWithSameName . length ; i ++ ) {
@@ -251,15 +265,19 @@ export class DependenciesEngine {
251265 ( ) => AngularApiUtil . findApi ( name )
252266 ] ;
253267
268+ let bestScore = 0 ;
269+ let bestResult = undefined ;
270+
254271 for ( let searchFunction of searchFunctions ) {
255- let result = searchFunction ( ) ;
272+ const result = searchFunction ( ) ;
256273
257- if ( result . data ) {
258- return result ;
274+ if ( result . data && result . score > bestScore ) {
275+ bestScore = result . score ;
276+ bestResult = result ;
259277 }
260278 }
261279
262- return undefined ;
280+ return bestResult ;
263281 }
264282
265283 public update ( updatedData ) : void {
@@ -372,7 +390,7 @@ export class DependenciesEngine {
372390 }
373391
374392 public findInCompodoc ( name : string ) {
375- let mergedData = _ . concat (
393+ const mergedData = _ . concat (
376394 [ ] ,
377395 this . modules ,
378396 this . components ,
@@ -390,7 +408,7 @@ export class DependenciesEngine {
390408 this . miscellaneous . variables ,
391409 this . miscellaneous . functions
392410 ) ;
393- let result = _ . find ( mergedData , { name : name } as any ) ;
411+ const result = _ . find ( mergedData , { name : name } as any ) ;
394412 return result || false ;
395413 }
396414
0 commit comments