@@ -11,6 +11,9 @@ import * as createDebug from 'debug';
11
11
12
12
const debug = createDebug ( 'denali-cli:find-addons' ) ;
13
13
14
+ export interface AddonSummary extends PluginSummary {
15
+ distDir ?: string ;
16
+ }
14
17
15
18
/**
16
19
* Discover any addons for the current directory. If the current directory is a Denali project, load
@@ -20,7 +23,7 @@ const debug = createDebug('denali-cli:find-addons');
20
23
* folder (both yarn and npm are supported), and scan all the global packages for addon (rather than
21
24
* relying on a package.json guide).
22
25
*/
23
- export default function findAddons ( isLocal : boolean ) : PluginSummary [ ] {
26
+ export default function findAddons ( isLocal : boolean ) : AddonSummary [ ] {
24
27
25
28
let findOptions = {
26
29
sort : true ,
@@ -32,6 +35,7 @@ export default function findAddons(isLocal: boolean): PluginSummary[] {
32
35
if ( isLocal ) {
33
36
debug ( `searching for addons locally in ${ process . cwd ( ) } ` ) ;
34
37
let addons = findPlugins ( findOptions ) ;
38
+ addMainDir ( addons ) ;
35
39
debug ( `found ${ addons . length } addons: ${ addons . map ( ( addon ) => addon . pkg . name ) . join ( ', ' ) } ` ) ;
36
40
return addons ;
37
41
}
@@ -72,7 +76,16 @@ export default function findAddons(isLocal: boolean): PluginSummary[] {
72
76
}
73
77
}
74
78
79
+ addMainDir ( addons ) ;
75
80
debug ( `found ${ addons . length } addons: ${ addons . map ( ( addon ) => addon . pkg . name ) . join ( ', ' ) } ` ) ;
76
81
return addons ;
77
82
78
83
}
84
+
85
+ function addMainDir ( addons : AddonSummary [ ] ) {
86
+ addons . forEach ( ( addon ) => {
87
+ if ( addon . pkg . mainDir ) {
88
+ addon . distDir = path . join ( addon . dir , addon . pkg . mainDir ) ;
89
+ }
90
+ } )
91
+ }
0 commit comments