77  \************************************************/ 
88/***/  ( ( module ,  __unused_webpack_exports ,  __webpack_require__ )  =>  { 
99
10- /* eslint-env browser  */ 
10+ /* global document  */ 
1111/* 
1212  eslint-disable 
1313  no-console, 
1414  func-names 
1515*/ 
1616
17+ // eslint-disable-next-line jsdoc/no-restricted-syntax 
1718/** @typedef  {any } TODO */ 
1819
1920const  normalizeUrl  =  __webpack_require__ ( /*! ./normalize-url */  "../../../src/hmr/normalize-url.js" ) ; 
@@ -24,36 +25,40 @@ const noDocument = typeof document === "undefined";
2425
2526const  {  forEach }  =  Array . prototype ; 
2627
28+ // eslint-disable-next-line jsdoc/no-restricted-syntax 
2729/** 
28-  * @param  {function } fn 
29-  * @param  {number } time 
30-  * @returns  {(function():  void)|*  }  
30+  * @param  {Function } fn any function  
31+  * @param  {number } time time  
32+  * @returns  {() =>  void } wrapped function  
3133 */ 
3234function  debounce ( fn ,  time )  { 
3335  let  timeout  =  0 ; 
3436
3537  return  function  ( )  { 
36-     // @ts -ignore  
38+     // @ts -expect-error  
3739    const  self  =  this ; 
3840    // eslint-disable-next-line prefer-rest-params 
3941    const  args  =  arguments ; 
40- 
42+      // eslint-disable-next-line func-style 
4143    const  functionCall  =  function  functionCall ( )  { 
4244      return  fn . apply ( self ,  args ) ; 
4345    } ; 
4446
4547    clearTimeout ( timeout ) ; 
4648
47-     // @ts -ignore  
49+     // @ts -expect-error  
4850    timeout  =  setTimeout ( functionCall ,  time ) ; 
4951  } ; 
5052} 
5153
54+ /** 
55+  * @returns  {void } 
56+  */ 
5257function  noop ( )  { } 
5358
5459/** 
55-  * @param  {TODO } moduleId 
56-  * @returns  {TODO } 
60+  * @param  {string | number } moduleId a module id  
61+  * @returns  {TODO } current script url  
5762 */ 
5863function  getCurrentScriptUrl ( moduleId )  { 
5964  let  src  =  srcByModuleId [ moduleId ] ; 
@@ -74,8 +79,8 @@ function getCurrentScriptUrl(moduleId) {
7479  } 
7580
7681  /** 
77-    * @param  {string } fileMap 
78-    * @returns  {null | string[] } 
82+    * @param  {string } fileMap file map  
83+    * @returns  {null | string[] } normalized files  
7984   */ 
8085  return  function  ( fileMap )  { 
8186    if  ( ! src )  { 
@@ -97,15 +102,30 @@ function getCurrentScriptUrl(moduleId) {
97102      const  reg  =  new  RegExp ( `${ filename }  \\.js$` ,  "g" ) ; 
98103
99104      return  normalizeUrl ( 
100-         src . replace ( reg ,  `${ mapRule . replace ( / { f i l e N a m e } / g,  filename ) }  .css` ) 
105+         src . replace ( reg ,  `${ mapRule . replace ( / { f i l e N a m e } / g,  filename ) }  .css` ) , 
101106      ) ; 
102107    } ) ; 
103108  } ; 
104109} 
105110
106111/** 
107-  * @param  {TODO } el 
108-  * @param  {string } [url] 
112+  * @param  {string } url URL 
113+  * @returns  {boolean } true when URL can be request, otherwise false 
114+  */ 
115+ function  isUrlRequest ( url )  { 
116+   // An URL is not an request if 
117+ 
118+   // It is not http or https 
119+   if  ( ! / ^ [ a - z A - Z ] [ a - z A - Z \d + \- . ] * : / . test ( url ) )  { 
120+     return  false ; 
121+   } 
122+ 
123+   return  true ; 
124+ } 
125+ 
126+ /** 
127+  * @param  {TODO } el html link element 
128+  * @param  {string= } url a URL 
109129 */ 
110130function  updateCss ( el ,  url )  { 
111131  if  ( ! url )  { 
@@ -127,11 +147,11 @@ function updateCss(el, url) {
127147    return ; 
128148  } 
129149
150+   // eslint-disable-next-line unicorn/prefer-includes 
130151  if  ( ! url  ||  ! ( url . indexOf ( ".css" )  >  - 1 ) )  { 
131152    return ; 
132153  } 
133154
134-   // eslint-disable-next-line no-param-reassign 
135155  el . visited  =  true ; 
136156
137157  const  newEl  =  el . cloneNode ( ) ; 
@@ -166,34 +186,34 @@ function updateCss(el, url) {
166186} 
167187
168188/** 
169-  * @param  {string } href 
170-  * @param  {TODO } src 
171-  * @returns  {TODO }  
189+  * @param  {string } href href  
190+  * @param  {TODO } src src  
191+  * @returns  {undefined | string } a reload url  
172192 */ 
173193function  getReloadUrl ( href ,  src )  { 
174194  let  ret ; 
175195
176-   // eslint-disable-next-line no-param-reassign 
177196  href  =  normalizeUrl ( href ) ; 
178197
179198  src . some ( 
180199    /** 
181-      * @param  {string } url 
200+      * @param  {string } url url  
182201     */ 
183202    // eslint-disable-next-line array-callback-return 
184203    ( url )  =>  { 
204+       // eslint-disable-next-line unicorn/prefer-includes 
185205      if  ( href . indexOf ( src )  >  - 1 )  { 
186206        ret  =  url ; 
187207      } 
188-     } 
208+     } , 
189209  ) ; 
190210
191211  return  ret ; 
192212} 
193213
194214/** 
195-  * @param  {string } [ src]  
196-  * @returns  {boolean } 
215+  * @param  {string=  }  src source  
216+  * @returns  {boolean } true when loaded, otherwise false  
197217 */ 
198218function  reloadStyle ( src )  { 
199219  if  ( ! src )  { 
@@ -210,7 +230,7 @@ function reloadStyle(src) {
210230
211231    const  url  =  getReloadUrl ( el . href ,  src ) ; 
212232
213-     if  ( ! isUrlRequest ( url ) )  { 
233+     if  ( url   &&   ! isUrlRequest ( url ) )  { 
214234      return ; 
215235    } 
216236
@@ -228,6 +248,9 @@ function reloadStyle(src) {
228248  return  loaded ; 
229249} 
230250
251+ /** 
252+  * @returns  {void } 
253+  */ 
231254function  reloadAll ( )  { 
232255  const  elements  =  document . querySelectorAll ( "link" ) ; 
233256
@@ -241,24 +264,9 @@ function reloadAll() {
241264} 
242265
243266/** 
244-  * @param  {string } url 
245-  * @returns  {boolean } 
246-  */ 
247- function  isUrlRequest ( url )  { 
248-   // An URL is not an request if 
249- 
250-   // It is not http or https 
251-   if  ( ! / ^ [ a - z A - Z ] [ a - z A - Z \d + \- . ] * : / . test ( url ) )  { 
252-     return  false ; 
253-   } 
254- 
255-   return  true ; 
256- } 
257- 
258- /** 
259-  * @param  {TODO } moduleId 
260-  * @param  {TODO } options 
261-  * @returns  {TODO } 
267+  * @param  {number | string } moduleId a module id 
268+  * @param  {TODO } options options 
269+  * @returns  {TODO } wrapper function 
262270 */ 
263271module . exports  =  function  ( moduleId ,  options )  { 
264272  if  ( noDocument )  { 
@@ -269,6 +277,9 @@ module.exports = function (moduleId, options) {
269277
270278  const  getScriptSrc  =  getCurrentScriptUrl ( moduleId ) ; 
271279
280+   /** 
281+    * @returns  {void } 
282+    */ 
272283  function  update ( )  { 
273284    const  src  =  getScriptSrc ( options . filename ) ; 
274285    const  reloaded  =  reloadStyle ( src ) ; 
@@ -302,15 +313,13 @@ module.exports = function (moduleId, options) {
302313  \*****************************************/ 
303314/***/  ( ( module )  =>  { 
304315
305- /* eslint-disable */ 
306- 
307316/** 
308-  * @param  {string[] } pathComponents 
309-  * @returns  {string } 
317+  * @param  {string[] } pathComponents path components  
318+  * @returns  {string } normalized url  
310319 */ 
311- function  normalizeUrl ( pathComponents )  { 
320+ function  normalizeUrlInner ( pathComponents )  { 
312321  return  pathComponents 
313-     . reduce ( function   ( accumulator ,  item )  { 
322+     . reduce ( ( accumulator ,  item )   =>  { 
314323      switch  ( item )  { 
315324        case  ".." :
316325          accumulator . pop ( ) ; 
@@ -327,24 +336,27 @@ function normalizeUrl(pathComponents) {
327336} 
328337
329338/** 
330-  * @param  {string } urlString 
331-  * @returns  {string } 
339+  * @param  {string } urlString url string  
340+  * @returns  {string } normalized url string  
332341 */ 
333- module . exports  =  function  ( urlString )  { 
342+ module . exports  =  function  normalizeUrl ( urlString )  { 
334343  urlString  =  urlString . trim ( ) ; 
335344
336345  if  ( / ^ d a t a : / i. test ( urlString ) )  { 
337346    return  urlString ; 
338347  } 
339348
340-   var  protocol  = 
341-     urlString . indexOf ( "//" )  !==  - 1  ? urlString . split ( "//" ) [ 0 ]  +  "//"  : "" ; 
342-   var  components  =  urlString . replace ( new  RegExp ( protocol ,  "i" ) ,  "" ) . split ( "/" ) ; 
343-   var  host  =  components [ 0 ] . toLowerCase ( ) . replace ( / \. $ / ,  "" ) ; 
349+   const  protocol  = 
350+     // eslint-disable-next-line unicorn/prefer-includes 
351+     urlString . indexOf ( "//" )  !==  - 1  ? `${ urlString . split ( "//" ) [ 0 ] }  //`  : "" ; 
352+   const  components  =  urlString 
353+     . replace ( new  RegExp ( protocol ,  "i" ) ,  "" ) 
354+     . split ( "/" ) ; 
355+   const  host  =  components [ 0 ] . toLowerCase ( ) . replace ( / \. $ / ,  "" ) ; 
344356
345357  components [ 0 ]  =  "" ; 
346358
347-   var  path  =  normalizeUrl ( components ) ; 
359+   const  path  =  normalizeUrlInner ( components ) ; 
348360
349361  return  protocol  +  host  +  path ; 
350362} ; 
0 commit comments