Skip to content

Commit 3406299

Browse files
save file
1 parent d26558c commit 3406299

File tree

1 file changed

+79
-25
lines changed

1 file changed

+79
-25
lines changed

utils/misc/global-state-diff/v2.0/global-state-diff-v2.0.html

Lines changed: 79 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -125,25 +125,30 @@
125125
#output, #output2
126126
{font-family:monospace;font-size:16px}
127127

128-
#item, #item2
129-
{margin:20px 0;border:1px solid lightgray;padding:10px;display:flex;flex-direction:column;gap:10px}
128+
#item
129+
{margin:20px 0;border:1px solid lightgray;padding:10px;
130+
/*display:flex;flex-direction:column;gap:10px*/
131+
}
130132

131133

132-
#item #values, #item2 #values
134+
#item #values
133135
{display:grid;grid-template-columns:max-content max-content 1fr;gap:1rem 2rem}
134136

135-
#item #name, #item2 #name
137+
#item #name
136138
{font-weight:bold}
137139

138-
#item #type, #item2 #type
140+
#item #type
139141
{}
140142

141-
#item #desc, #item2 #desc
143+
#item #desc
142144
{line-height:1.4}
143145

144146

145147
#hdr
146-
{display:flex}
148+
{display:flex;margin-bottom:10px}
149+
150+
#info
151+
{margin-bottom:10px}
147152

148153
#url
149154
{font-weight:bold;margin-bottom:10px}
@@ -208,6 +213,8 @@ <h3>
208213
<div class=spc></div>
209214
<img class=close>
210215
</div>
216+
<div id=info>
217+
</div>
211218
<div id=values>
212219
<div id=name>
213220
</div>
@@ -295,6 +302,8 @@ <h3>
295302
$('#import .copy').onclick = e=>navigator.clipboard.writeText(src2.value);
296303
$('#import .paste').onclick = async e=>{var txt=await navigator.clipboard.readText();src2.value=txt};
297304

305+
src2.value = 'https://unpkg.com/es-module-lexer?module';
306+
298307
go2.onclick = function(){
299308

300309
process.import(src2.value);
@@ -312,7 +321,6 @@ <h3>
312321
process.script = async function(src){
313322
console.log('process.script',src);
314323
var nitem = display(output,src);
315-
316324
var values = $(nitem,'#values');
317325

318326
var {win,doc} = await niframe();
@@ -355,15 +363,26 @@ <h3>
355363

356364

357365
process.import = async function(src){
358-
359-
var nitem = display(output2,src);
366+
console.log('process.import');
367+
var nitem = display(output2,src);
368+
var values = $(nitem,'#values');
360369

361-
var {win,doc} = await niframe();
370+
var {win,doc} = await niframe();
362371
setup.win(win,values);
363372

364-
var js = fnstr(fn);
365-
win.eval(js);
366-
var mod = await win.fn(src);
373+
var script = document.createElement('script');
374+
script.textContent = fnstr(fn);
375+
doc.head.append(script);
376+
377+
//var js = fnstr(fn);
378+
//win.eval(js);
379+
380+
var {mod,err} = await win.fn(src);
381+
382+
if(err){
383+
display.error(values,err);
384+
return;
385+
}
367386

368387
if(mod===null || typeof mod!='object'){
369388
display.mod(values,mod);
@@ -379,9 +398,23 @@ <h3>
379398

380399
async function fn(src){
381400

382-
var mod = await import(src);
401+
var err;
402+
try{
403+
404+
var mod = await import(src);
405+
406+
}//try
407+
catch(err2){
408+
409+
err = err2;
410+
411+
}//catch
412+
if(err){
413+
console.error(err);
414+
return {err};
415+
}
383416
console.log(mod);
384-
return mod;
417+
return {mod};
385418

386419
}//fn
387420

@@ -438,11 +471,24 @@ <h3>
438471
$(nitem,'.close').onclick = e=>nitem.remove();
439472
root.append(nitem);
440473

474+
display.info(nitem,src);
475+
441476
return nitem;
442477

443478
}//display
444479

445480

481+
display.info = async function(nitem,src){
482+
483+
var {txt,error} = await get(src);
484+
if(error)return;
485+
486+
var str = detect(txt);
487+
console.log(str);
488+
489+
}//info
490+
491+
446492
display.mod = function(root,v){
447493

448494
var str = String(v);
@@ -476,7 +522,12 @@ <h3>
476522
}//display
477523

478524

479-
display.error = function(){
525+
display.error = function(values,err){
526+
527+
var error = err.toString();
528+
values.textContent = error;
529+
values.classList.add('error');
530+
480531
}//error
481532

482533

@@ -510,9 +561,8 @@ <h3>
510561

511562
var resolve,promise=new Promise(res=>resolve=res);
512563

513-
var iframe = document.createElement('iframe');
514-
iframe.style.cssText = 'display:none';
515-
iframe.onload = onload;
564+
var iframe = document.createElement('iframe');
565+
iframe.onload = onload;
516566
document.body.append(iframe);
517567

518568
return promise;
@@ -558,19 +608,21 @@ <h3>
558608
function fnstr(fn,full=true){
559609

560610
var str = fn.toString();
611+
561612
if(full){
562613
return str;
563614
}
564-
var i1 = str.indexOf('{');
565-
var i2 = str.lastIndexOf('}');
566-
var fnstr = str.slice(i1+1,i2);
615+
616+
var i1 = str.indexOf('{');
617+
var i2 = str.lastIndexOf('}');
618+
var fnstr = str.slice(i1+1,i2);
567619
return fnstr;
568620

569621
}//fnstr
570622

571623

572624
async function get(url){
573-
625+
console.log('get',url);
574626
var err;
575627
try{
576628

@@ -583,13 +635,15 @@ <h3>
583635

584636
}//catch
585637
if(err){
638+
console.error(err);
586639
var error = err.toString();
587640
return {error};
588641
}
589642

590643
var txt = await res.text();
591644
if(!res.ok){
592645
var error = `[ ( ${res.status} ) ${res.statusText} ] ${txt}`;
646+
console.log(error);
593647
return {error};
594648
}
595649

@@ -607,7 +661,7 @@ <h3>
607661

608662
detect = async function(code){
609663

610-
await init();
664+
await init;
611665

612666
var [imports,exports] = parse(code);
613667

0 commit comments

Comments
 (0)