1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ import { Package } from "./Package" ;
7
+ import { IPackage } from "./IPackage" ;
8
+ import { AbsolutePath } from "./AbsolutePath" ;
9
+
10
+ export class AbsolutePathPackage implements IPackage {
11
+ constructor ( public description : string ,
12
+ public url : string ,
13
+ public platforms : string [ ] ,
14
+ public architectures : string [ ] ,
15
+ public binaries : AbsolutePath [ ] ,
16
+ public installPath ?: AbsolutePath ,
17
+ public installTestPath ?: AbsolutePath ,
18
+ public fallbackUrl ?: string ,
19
+ public platformId ?: string ) {
20
+ }
21
+
22
+ public static getAbsolutePathPackage ( pkg : Package , extensionPath : string ) {
23
+ return new AbsolutePathPackage (
24
+ pkg . description ,
25
+ pkg . url ,
26
+ pkg . platforms ,
27
+ pkg . architectures ,
28
+ getAbsoluteBinaries ( pkg , extensionPath ) ,
29
+ getAbsoluteInstallPath ( pkg , extensionPath ) ,
30
+ getAbsoluteInstallTestPath ( pkg , extensionPath ) ,
31
+ pkg . fallbackUrl ,
32
+ pkg . platformId
33
+ ) ;
34
+ }
35
+ }
36
+
37
+ function getAbsoluteInstallTestPath ( pkg : Package , extensionPath : string ) : AbsolutePath {
38
+ if ( pkg . installTestPath ) {
39
+ return AbsolutePath . getAbsolutePath ( extensionPath , pkg . installTestPath ) ;
40
+ }
41
+
42
+ return null ;
43
+ }
44
+
45
+ function getAbsoluteBinaries ( pkg : Package , extensionPath : string ) : AbsolutePath [ ] {
46
+ let basePath = getAbsoluteInstallPath ( pkg , extensionPath ) . value ;
47
+ if ( pkg . binaries ) {
48
+ return pkg . binaries . map ( value => AbsolutePath . getAbsolutePath ( basePath , value ) ) ;
49
+ }
50
+
51
+ return null ;
52
+ }
53
+
54
+ function getAbsoluteInstallPath ( pkg : Package , extensionPath : string ) : AbsolutePath {
55
+ if ( pkg . installPath ) {
56
+ return AbsolutePath . getAbsolutePath ( extensionPath , pkg . installPath ) ;
57
+ }
58
+
59
+ return new AbsolutePath ( extensionPath ) ;
60
+ }
0 commit comments