@@ -44,12 +44,50 @@ export class ExtensionsManager extends EventEmitter {
4444 }
4545 }
4646
47- useMany ( extensions : KitesExtension [ ] ) {
47+ /**
48+ * Initialize extensions manager
49+ */
50+ async init ( ) {
51+ this . availableExtensions = [ ] ;
52+ // auto discover extensions
53+ if ( this . kites . options . discover || ( this . kites . options . discover !== false && this . usedExtensions . length === 0 ) ) {
54+ let extensions = await discover ( {
55+ cacheAvailableExtensions : this . kites . options . cacheAvailableExtensions ,
56+ extensionsLocationCache : this . kites . options . extensionsLocationCache ,
57+ logger : this . kites . logger ,
58+ mode : this . kites . options . mode ,
59+ rootDirectory : this . kites . options . rootDirectory ,
60+ tempDirectory : this . kites . options . tempDirectory ,
61+ } ) ;
62+ this . kites . logger . debug ( 'Discovered ' + extensions . length + ' extensions' ) ;
63+ this . availableExtensions = this . availableExtensions . concat ( extensions ) ;
64+ }
65+ // filter extensions will be loaded?
66+ this . availableExtensions = this . availableExtensions . concat ( this . usedExtensions ) ;
67+ if ( this . kites . options . extensions ) {
68+ let allowedExtensions = this . kites . options . extensions as string [ ] ;
69+ this . availableExtensions = this . availableExtensions . filter ( e => allowedExtensions . indexOf ( e . name ) > - 1 ) ;
70+ }
71+
72+ this . availableExtensions . sort ( sorter ) ;
73+ return this . useMany ( this . availableExtensions ) ;
74+
75+ }
76+
77+ /**
78+ * Execute init extensions
79+ * @param extensions
80+ */
81+ private useMany ( extensions : KitesExtension [ ] ) {
4882 var promises = extensions . map ( ( e ) => this . useOne ( e ) ) ;
4983 return Promise . all ( promises ) ;
5084 }
5185
52- useOne ( extension : KitesExtension ) {
86+ /**
87+ * Execute init one extension
88+ * @param extension
89+ */
90+ private useOne ( extension : KitesExtension ) {
5391 // extends options
5492 // Review _.assign(), _.defaults(), or _.merge?
5593 const options = _ . assign <
@@ -102,33 +140,4 @@ export class ExtensionsManager extends EventEmitter {
102140 } ) ;
103141 }
104142
105- /**
106- * Initialize extensions manager
107- */
108- async init ( ) {
109- this . availableExtensions = [ ] ;
110- // auto discover extensions
111- if ( this . kites . options . discover || ( this . kites . options . discover !== false && this . usedExtensions . length === 0 ) ) {
112- let extensions = await discover ( {
113- cacheAvailableExtensions : this . kites . options . cacheAvailableExtensions ,
114- extensionsLocationCache : this . kites . options . extensionsLocationCache ,
115- logger : this . kites . logger ,
116- mode : this . kites . options . mode ,
117- rootDirectory : this . kites . options . rootDirectory ,
118- tempDirectory : this . kites . options . tempDirectory ,
119- } ) ;
120- this . kites . logger . debug ( 'Discovered ' + extensions . length + ' extensions' ) ;
121- this . availableExtensions = this . availableExtensions . concat ( extensions ) ;
122- }
123- // filter extensions will be loaded?
124- this . availableExtensions = this . availableExtensions . concat ( this . usedExtensions ) ;
125- if ( this . kites . options . extensions ) {
126- let allowedExtensions = this . kites . options . extensions as string [ ] ;
127- this . availableExtensions = this . availableExtensions . filter ( e => allowedExtensions . indexOf ( e . name ) > - 1 ) ;
128- }
129-
130- this . availableExtensions . sort ( sorter ) ;
131- return this . useMany ( this . availableExtensions ) ;
132-
133- }
134143}
0 commit comments