|
112 | 112 | [$,datatype,menumod,keydown] = await promise; |
113 | 113 |
|
114 | 114 | mod.stack.complete; |
115 | | - |
| 115 | + |
116 | 116 | })(); |
117 | 117 |
|
| 118 | + |
| 119 | + |
118 | 120 |
|
119 | 121 | </script init> |
120 | 122 |
|
@@ -244,6 +246,10 @@ <h3> |
244 | 246 | <input value=read type=button> |
245 | 247 | <input value=process type=button> |
246 | 248 |
|
| 249 | + <div class=spc></div> |
| 250 | + |
| 251 | + <input value='download server' type=button> |
| 252 | + |
247 | 253 | </div> |
248 | 254 |
|
249 | 255 |
|
|
394 | 400 |
|
395 | 401 | $(root,'[value=read]').onclick = btn.read; |
396 | 402 | $(root,'[value=process]').onclick = btn.process; |
| 403 | + |
| 404 | + $(root,'[value="download server"]').onclick = btn.download; |
397 | 405 |
|
398 | 406 |
|
399 | 407 | filemod.initdom(root); |
@@ -515,6 +523,45 @@ <h3> |
515 | 523 | }//process |
516 | 524 |
|
517 | 525 |
|
| 526 | + btn.download = async function(){ |
| 527 | + |
| 528 | + var jszip = await import('https://cdn.jsdelivr.net/npm/jszip/+esm'); |
| 529 | + jszip = jszip.default; |
| 530 | + |
| 531 | + var root = `webrtc-file-transfer-http-server`; |
| 532 | + |
| 533 | + var zip = new jszip(); |
| 534 | + zip.folder(root); |
| 535 | + |
| 536 | + var res = await fetch('https://raw.githubusercontent.com/javascript-2020/code/main/nodejs/server/webrtc-file-transfer-http/webrtc-file-transfer-http-server.js'); |
| 537 | + var blob = await res.blob(); |
| 538 | + zip.file(`${root}/webrtc-file-transfer-http-server.js`,blob); |
| 539 | + |
| 540 | + zip.folder(`${root}/node_modules`); |
| 541 | + |
| 542 | + var libs = ['nodejs/keys/keys.js','nodejs/wsmod/wsmod.js','nodejs/server-cert/server-cert.js']; |
| 543 | + await Promise.all( |
| 544 | + libs.map(async path=>{ |
| 545 | + |
| 546 | + var fn = path.split('/').at(-1); |
| 547 | + var blob = await fetch(`https://raw.githubusercontent.com/javascript-2020/libs/main/${path}`).then(res=>res.blob()); |
| 548 | + zip.file(`${root}/node_modules/${fn}`,blob); |
| 549 | + |
| 550 | + }); |
| 551 | + ); |
| 552 | + |
| 553 | + |
| 554 | + var blob = await zip.generateAsync({type:'blob'}); |
| 555 | + |
| 556 | + var url = window.URL.createObjectURL(blob); |
| 557 | + var a = document.createElement('a'); |
| 558 | + a.download = `${root}.zip`; |
| 559 | + a.href = url; |
| 560 | + a.click(); |
| 561 | + |
| 562 | + }//download |
| 563 | + |
| 564 | + |
518 | 565 | //: |
519 | 566 |
|
520 | 567 |
|
|
0 commit comments