1 | function iter$__(a){ let v; return a ? ((v=a.toIterable) ? v.call(a) : a) : a; };
|
2 | var $1 = Symbol();
|
3 |
|
4 | class DevTools {
|
5 |
|
6 | constructor(){
|
7 |
|
8 | this.start();
|
9 | this.debug = false;
|
10 | this;
|
11 | }
|
12 |
|
13 | log(...params){
|
14 |
|
15 |
|
16 | return console.log(...params);
|
17 | }
|
18 |
|
19 | refresh(manifest){
|
20 |
|
21 | this.manifest = manifest;
|
22 |
|
23 | let dirty = {
|
24 | css: [],
|
25 | js: []
|
26 | };
|
27 |
|
28 | let urls = Object.values(manifest).map(function(_0) { return _0.url; }).filter(function(_0) { return _0; });
|
29 | let regex = /\.[A-Z\d]{8}\./;
|
30 |
|
31 | for (let sheet of iter$__(globalThis.document.styleSheets)){
|
32 |
|
33 | let url = sheet.ownerNode.getAttribute('href') || '';
|
34 | let match = urls.find(function(_0) { return _0 && _0.replace(regex,'') == url.replace(regex,''); });
|
35 | if (match && url != match) {
|
36 |
|
37 | sheet.ownerNode.href = match;
|
38 | };
|
39 | };
|
40 |
|
41 | let scripts = Object.keys(globalThis.IMBA_LOADED || {});
|
42 |
|
43 | for (let $2 = 0, $3 = iter$__(scripts), $4 = $3.length; $2 < $4; $2++) {
|
44 | let url = $3[$2];
|
45 | let match = urls.find(function(_0) { return _0 && _0.replace(regex,'') == url.replace(regex,''); });
|
46 | if (match && url != match && urls.indexOf(url) == -1) {
|
47 |
|
48 | dirty.js.push([url,match]);
|
49 | };
|
50 | };
|
51 | if (dirty.js.length) {
|
52 |
|
53 | globalThis.document.location.reload();
|
54 | };
|
55 | return this;
|
56 | }
|
57 |
|
58 | start(){
|
59 | var self = this;
|
60 |
|
61 | if (this.socket) { return };
|
62 |
|
63 | this.socket = new EventSource("/__hmr__");
|
64 | this.socket.onmessage = function(e) {
|
65 |
|
66 | return self.log('sse.onmessage',e);
|
67 | };
|
68 |
|
69 | this.socket.addEventListener("paused",function(e) {
|
70 |
|
71 | self.log("server paused");
|
72 | return true;
|
73 | });
|
74 |
|
75 | this.socket.addEventListener("resumed",function(e) {
|
76 |
|
77 | self.log("server resumed");
|
78 | return true;
|
79 | });
|
80 |
|
81 | this.socket.addEventListener("reloaded",function(e) {
|
82 |
|
83 | self.log("server reloaded");
|
84 | setTimeout(function() {
|
85 | self.socket.close();
|
86 | self.socket = null;
|
87 | return self.start();
|
88 | },200);
|
89 | return true;
|
90 | });
|
91 |
|
92 | this.socket.addEventListener("rebuild",function(e) {
|
93 |
|
94 | let manifest = JSON.parse(e.data);
|
95 | return self.refresh(manifest);
|
96 | });
|
97 |
|
98 | this.socket.addEventListener("init",function(e) {
|
99 |
|
100 | let manifest = JSON.parse(e.data);
|
101 | return self.refresh(manifest);
|
102 | });
|
103 |
|
104 | this.socket.addEventListener("state",function(e) {
|
105 |
|
106 | let json = JSON.parse(e.data);
|
107 | return self.log("server state",json);
|
108 | });
|
109 |
|
110 | this.socket.addEventListener("errors",function(e) {
|
111 |
|
112 | let json = JSON.parse(e.data);
|
113 | for (let $5 = 0, $6 = iter$__(json), $7 = $6.length; $5 < $7; $5++) {
|
114 | let item = $6[$5];
|
115 | console.error(("error in " + (item.location.file) + ": " + (item.location.lineText) + " (" + (item.text) + ")"));
|
116 | };
|
117 | return;
|
118 | });
|
119 |
|
120 | this.socket.addEventListener("reload",function(e) {
|
121 |
|
122 | self.log('asked to reload by server');
|
123 | return globalThis.document.location.reload();
|
124 | });
|
125 |
|
126 | this.socket.onerror = function(e) {
|
127 | return self.log('hmr disconnected',e);
|
128 | };
|
129 | }
|
130 | };
|
131 |
|
132 | globalThis.imba_devtools = new DevTools;
|