UNPKG

2.64 kBJavaScriptView Raw
1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Tobias Koppers @sokra
4*/
5/* globals hotAddUpdateChunk parentHotUpdateCallback document XMLHttpRequest $require$ $hotChunkFilename$ $hotMainFilename$ */
6module.exports = function() {
7 function webpackHotUpdateCallback(chunkId, moreModules) {
8 // eslint-disable-line no-unused-vars
9 hotAddUpdateChunk(chunkId, moreModules);
10 if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
11 } // $semicolon
12
13 function hotDownloadUpdateChunk(chunkId) {
14 // eslint-disable-line no-unused-vars
15 var isWeex = typeof callNative === 'function';
16 var updateFile = $require$.p + $hotChunkFilename$;
17 if (isWeex) {
18 fetch(updateFile, {
19 method: 'GET',
20 dataType: 'text',
21 headers: {
22 'Content-Type': 'text/javascript'
23 }
24 })
25 .then(function(response) {
26 return response.text();
27 })
28 .then(function(text) {
29 eval(text);
30 })
31 .catch(function(err) {
32 throw err;
33 });
34 } else {
35 var head = document.getElementsByTagName('head')[0];
36 var script = document.createElement('script');
37 script.type = 'text/javascript';
38 script.charset = 'utf-8';
39 script.src = updateFile;
40 head.appendChild(script);
41 }
42 }
43
44 function hotDownloadManifest() {
45 // eslint-disable-line no-unused-vars
46 return new Promise(function(resolve, reject) {
47 if (typeof XMLHttpRequest === 'undefined')
48 return reject(new Error('No browser support jsonp'));
49 try {
50 var request = new XMLHttpRequest();
51 var requestPath = $require$.p + $hotMainFilename$;
52 request.open('GET', requestPath, true);
53 request.timeout = 10000;
54 request.send(null);
55 } catch (err) {
56 return reject(err);
57 }
58 request.onreadystatechange = function() {
59 if (request.readyState !== 4) return;
60 if (request.status === 0) {
61 // timeout
62 reject(new Error('Manifest request to ' + requestPath + ' timed out.'));
63 } else if (request.status === 404) {
64 // no update available
65 resolve();
66 } else if (request.status !== 200 && request.status !== 304) {
67 // other failure
68 reject(new Error('Manifest request to ' + requestPath + ' failed.'));
69 } else {
70 // success
71 try {
72 var update = JSON.parse(request.responseText);
73 } catch (e) {
74 reject(e);
75 return;
76 }
77 resolve(update);
78 }
79 };
80 });
81 }
82};