1
1
import { ErrorMsg } from 'mo/common/error' ;
2
2
import { IContribute , IContributeType , IExtension , IExtensionEntry } from 'mo/core/extension' ;
3
3
import { IMolecule } from 'mo/core/molecule' ;
4
- import { defaultExtensions } from 'mo/extensions' ;
5
4
6
5
export class ExtensionService {
7
6
public extensions : IExtension [ ] = [ ] ;
8
7
public moleculeCtx : IMolecule ;
9
8
10
9
constructor ( extensionEntry : IExtensionEntry = { } , moleculeCtx : IMolecule ) {
11
10
this . moleculeCtx = moleculeCtx ;
12
- this . load ( defaultExtensions , moleculeCtx ) ;
13
- this . load ( extensionEntry , moleculeCtx ) ;
11
+ this . load ( extensionEntry ) ;
14
12
}
15
13
16
14
/**
17
15
* TODO: Current extension service can't parses VSCode theme, so needs to refactor
18
16
* @param param0 extensionEntry object
19
17
* @param moleculeCtx the context object of molecule
20
18
*/
21
- public load ( { location, extensions = [ ] } : IExtensionEntry , moleculeCtx : IMolecule ) {
19
+ public load ( { location, extensions = [ ] } : IExtensionEntry ) {
22
20
try {
23
21
if ( extensions ?. length === 0 ) return ;
24
22
this . extensions = this . extensions . concat ( extensions || [ ] ) ;
25
23
26
24
extensions ?. forEach ( ( extension : IExtension , index : number ) => {
27
25
if ( extension . main ) {
28
26
if ( extension . activate ) {
29
- extension . activate ( moleculeCtx ) ;
27
+ extension . activate ( this . moleculeCtx ) ;
30
28
} else {
31
29
throw new Error ( ErrorMsg . NotFoundActivate ) ;
32
30
}
@@ -51,7 +49,7 @@ export class ExtensionService {
51
49
} ) ;
52
50
}
53
51
54
- unload ( id : string ) {
55
- console . log ( 'unload extension:' , id ) ;
52
+ unload ( extension : IExtension ) {
53
+ console . log ( 'unload extension:' , extension . name ) ;
56
54
}
57
55
}
0 commit comments