@@ -21,33 +21,40 @@ export namespace ContextURL {
21
21
return undefined ;
22
22
}
23
23
24
- const segments = contextUrl . split ( "/" ) ;
25
- if ( segments . length === 1 ) {
26
- return new URL ( segments [ 0 ] ) ; // this might be something, we just try
27
- }
28
-
29
- const segmentsToURL = ( offset : number ) : URL => {
30
- let rest = segments . slice ( offset ) . join ( "/" ) ;
31
- if ( ! rest . startsWith ( "http" ) ) {
32
- rest = 'https://' + rest ;
24
+ try {
25
+ const segments = contextUrl . split ( "/" ) ;
26
+ if ( segments . length === 1 ) {
27
+ return new URL ( segments [ 0 ] ) ; // this might be something, we just try
33
28
}
34
- return new URL ( rest ) ;
35
- } ;
36
29
30
+ const segmentsToURL = ( offset : number ) : URL | undefined => {
31
+ let rest = segments . slice ( offset ) . join ( "/" ) ;
32
+ if ( / ^ g i t @ [ ^ : \/ ] + : / . test ( rest ) ) {
33
+ rest = rest . replace ( / ^ g i t @ ( [ ^ : \/ ] + ) : / , 'https://$1/' ) ;
34
+ }
35
+ if ( ! rest . startsWith ( "http" ) ) {
36
+ rest = 'https://' + rest ;
37
+ }
38
+ return new URL ( rest ) ;
39
+ } ;
40
+
41
+ const firstSegment = segments [ 0 ] ;
42
+ if ( firstSegment === PREBUILD_PREFIX ||
43
+ firstSegment === INCREMENTAL_PREBUILD_PREFIX ||
44
+ firstSegment === IMAGEBUILD_PREFIX ||
45
+ firstSegment . startsWith ( REFERRER_PREFIX ) ) {
46
+ return segmentsToURL ( 1 ) ;
47
+ }
37
48
38
- const firstSegment = segments [ 0 ] ;
39
- if ( firstSegment === PREBUILD_PREFIX ||
40
- firstSegment === INCREMENTAL_PREBUILD_PREFIX ||
41
- firstSegment === IMAGEBUILD_PREFIX ||
42
- firstSegment . startsWith ( REFERRER_PREFIX ) ) {
43
- return segmentsToURL ( 1 ) ;
44
- }
49
+ // check for env vars
50
+ if ( firstSegment . indexOf ( "=" ) !== - 1 ) {
51
+ return segmentsToURL ( 1 ) ;
52
+ }
45
53
46
- // check for env vars
47
- if ( firstSegment . indexOf ( "=" ) !== - 1 ) {
48
- return segmentsToURL ( 1 ) ;
54
+ return segmentsToURL ( 0 ) ;
55
+ } catch ( error ) {
56
+ console . error ( error ) ;
49
57
}
50
58
51
- return segmentsToURL ( 0 ) ;
52
59
}
53
60
}
0 commit comments