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