@@ -80,7 +80,7 @@ export function tryFixUrl(fragment) {
80
80
81
81
const validAttempts = [ ] ;
82
82
for ( const attempt of [ ...new Set ( attempts ) ] ) {
83
- const link = Link . parse ( attempt ) ;
83
+ const link = Link . parseFragment ( attempt ) ;
84
84
if ( link ) {
85
85
validAttempts . push ( { url : attempt , link } ) ;
86
86
}
@@ -98,11 +98,17 @@ export class Link {
98
98
) ;
99
99
}
100
100
101
- static parse ( fragment ) {
102
- if ( ! fragment ) {
101
+ static parseIdentifier ( identifier ) {
102
+ return Link . _parse ( identifier ) ;
103
+ }
104
+
105
+ static parseFragment ( fragment ) {
106
+ let [ linkStr , queryParamsStr ] = fragment . split ( "?" ) ;
107
+ if ( ! linkStr . startsWith ( "#/" ) ) {
103
108
return null ;
104
109
}
105
- let [ linkStr , queryParamsStr ] = fragment . split ( "?" ) ;
110
+ linkStr = linkStr . substr ( 2 ) ;
111
+ const [ identifier , eventId ] = linkStr . split ( "/" ) ;
106
112
107
113
let viaServers = [ ] ;
108
114
let clientId = null ;
@@ -121,14 +127,10 @@ export class Link {
121
127
}
122
128
webInstances = getWebInstanceMap ( queryParams ) ;
123
129
}
130
+ return Link . _parse ( identifier , eventId , clientId , viaServers , webInstances ) ;
131
+ }
124
132
125
- if ( ! linkStr . startsWith ( "#/" ) ) {
126
- return null ;
127
- }
128
- linkStr = linkStr . substr ( 2 ) ;
129
-
130
- const [ identifier , eventId ] = linkStr . split ( "/" ) ;
131
-
133
+ static _parse ( identifier , eventId = undefined , clientId = null , viaServers = [ ] , webInstances = { } ) {
132
134
let matches ;
133
135
matches = USERID_PATTERN . exec ( identifier ) ;
134
136
if ( matches ) {
0 commit comments