File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22 MIT License http://www.opensource.org/licenses/mit-license.php
33 Author Tobias Koppers @sokra
44*/
5- /*global $hash$ installedModules $require$ hotDownloadManifest hotDownloadUpdateChunk hotDisposeChunk modules */
5+ /*global $hash$ $requestTimeout$ installedModules $require$ hotDownloadManifest hotDownloadUpdateChunk hotDisposeChunk modules */
66module . exports = function ( ) {
77
88 var hotApplyOnUpdate = true ;
99 var hotCurrentHash = $hash$ ; // eslint-disable-line no-unused-vars
10+ var hotRequestTimeout = $requestTimeout$ ;
1011 var hotCurrentModuleData = { } ;
1112 var hotCurrentChildModule ; // eslint-disable-line no-unused-vars
1213 var hotCurrentParents = [ ] ; // eslint-disable-line no-unused-vars
@@ -167,7 +168,7 @@ module.exports = function() {
167168 if ( hotStatus !== "idle" ) throw new Error ( "check() is only allowed in idle status" ) ;
168169 hotApplyOnUpdate = apply ;
169170 hotSetStatus ( "check" ) ;
170- return hotDownloadManifest ( ) . then ( function ( update ) {
171+ return hotDownloadManifest ( hotRequestTimeout ) . then ( function ( update ) {
171172 if ( ! update ) {
172173 hotSetStatus ( "idle" ) ;
173174 return null ;
Original file line number Diff line number Diff line change @@ -15,12 +15,14 @@ function HotModuleReplacementPlugin(options) {
1515 options = options || { } ;
1616 this . multiStep = options . multiStep ;
1717 this . fullBuildTimeout = options . fullBuildTimeout || 200 ;
18+ this . requestTimeout = options . requestTimeout || 10000 ;
1819}
1920module . exports = HotModuleReplacementPlugin ;
2021
2122HotModuleReplacementPlugin . prototype . apply = function ( compiler ) {
2223 var multiStep = this . multiStep ;
2324 var fullBuildTimeout = this . fullBuildTimeout ;
25+ var requestTimeout = this . requestTimeout ;
2426 var hotUpdateChunkFilename = compiler . options . output . hotUpdateChunkFilename ;
2527 var hotUpdateMainFilename = compiler . options . output . hotUpdateMainFilename ;
2628 compiler . plugin ( "compilation" , function ( compilation , params ) {
@@ -169,6 +171,7 @@ HotModuleReplacementPlugin.prototype.apply = function(compiler) {
169171 hotInitCode
170172 . replace ( / \$ r e q u i r e \$ / g, this . requireFn )
171173 . replace ( / \$ h a s h \$ / g, JSON . stringify ( hash ) )
174+ . replace ( / \$ r e q u e s t T i m e o u t \$ / g, requestTimeout )
172175 . replace ( / \/ \* f o r e a c h I n s t a l l e d C h u n k s \* \/ / g, chunk . chunks . length > 0 ? "for(var chunkId in installedChunks)" : "var chunkId = " + JSON . stringify ( chunk . id ) + ";" )
173176 ] ) ;
174177 } ) ;
Original file line number Diff line number Diff line change @@ -18,15 +18,16 @@ module.exports = function() {
1818 head . appendChild ( script ) ;
1919 }
2020
21- function hotDownloadManifest ( ) { // eslint-disable-line no-unused-vars
21+ function hotDownloadManifest ( requestTimeout ) { // eslint-disable-line no-unused-vars
22+ requestTimeout = requestTimeout || 10000 ;
2223 return new Promise ( function ( resolve , reject ) {
2324 if ( typeof XMLHttpRequest === "undefined" )
2425 return reject ( new Error ( "No browser support" ) ) ;
2526 try {
2627 var request = new XMLHttpRequest ( ) ;
2728 var requestPath = $require$ . p + $hotMainFilename$ ;
2829 request . open ( "GET" , requestPath , true ) ;
29- request . timeout = 10000 ;
30+ request . timeout = requestTimeout ;
3031 request . send ( null ) ;
3132 } catch ( err ) {
3233 return reject ( err ) ;
Original file line number Diff line number Diff line change @@ -13,15 +13,16 @@ module.exports = function() {
1313 importScripts ( $require$ . p + $hotChunkFilename$ ) ;
1414 }
1515
16- function hotDownloadManifest ( callback ) { // eslint-disable-line no-unused-vars
16+ function hotDownloadManifest ( requestTimeout ) { // eslint-disable-line no-unused-vars
17+ requestTimeout = requestTimeout || 10000 ;
1718 return new Promise ( function ( resolve , reject ) {
1819 if ( typeof XMLHttpRequest === "undefined" )
1920 return reject ( new Error ( "No browser support" ) ) ;
2021 try {
2122 var request = new XMLHttpRequest ( ) ;
2223 var requestPath = $require$ . p + $hotMainFilename$ ;
2324 request . open ( "GET" , requestPath , true ) ;
24- request . timeout = 10000 ;
25+ request . timeout = requestTimeout ;
2526 request . send ( null ) ;
2627 } catch ( err ) {
2728 return reject ( err ) ;
Original file line number Diff line number Diff line change @@ -198,15 +198,16 @@ function hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars
198198 importScripts(requireFn.p + "asset-path" + abc123 + "" + abc123 + "" + chunkId + "");
199199}
200200
201- function hotDownloadManifest(callback) { // eslint-disable-line no-unused-vars
201+ function hotDownloadManifest(requestTimeout) { // eslint-disable-line no-unused-vars
202+ requestTimeout = requestTimeout || 10000;
202203 return new Promise(function(resolve, reject) {
203204 if(typeof XMLHttpRequest === "undefined")
204205 return reject(new Error("No browser support"));
205206 try {
206207 var request = new XMLHttpRequest();
207208 var requestPath = requireFn.p + "asset-path" + abc123 + "" + abc123 + "";
208209 request.open("GET", requestPath, true);
209- request.timeout = 10000 ;
210+ request.timeout = requestTimeout ;
210211 request.send(null);
211212 } catch(err) {
212213 return reject(err);
You can’t perform that action at this time.
0 commit comments