summaryrefslogtreecommitdiffstats
path: root/ext/wasm/batch-runner-sahpool.html
blob: ad7e7b5408283fdd41e59a5fad8a2305de39d60d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<!doctype html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
    <link rel="stylesheet" href="common/testing.css"/>
    <title>sqlite3-api batch SQL runner for the SAHPool VFS</title>
  </head>
  <body>
    <header id='titlebar'><span>sqlite3-api batch SQL runner for the SAHPool VFS</span></header>
    <div>
      <span class='input-wrapper'>
        <input type='checkbox' class='disable-during-eval' id='cb-reverse-log-order' checked></input>
        <label for='cb-reverse-log-order' id='lbl-reverse-log-order'>Reverse log order</label>
      </span>
    </div>
    <div id='test-output' class='reverse'></div>
    <script>
      (function(){
        const E = (sel)=>document.querySelector(sel);

        const eOut = E('#test-output');
        const log2 = function(cssClass,...args){
          let ln;
          if(1 || cssClass){
            ln = document.createElement('div');
            if(cssClass) ln.classList.add(cssClass);
            ln.append(document.createTextNode(args.join(' ')));
          }else{
            // This doesn't work with the "reverse order" option!
            ln = document.createTextNode(args.join(' ')+'\n');
          }
          eOut.append(ln);
        };
        const log = (...args)=>{
          //console.log(...args);
          log2('', ...args);
        };
        const logErr = function(...args){
          console.error(...args);
          log2('error', ...args);
        };
        const logWarn = function(...args){
          console.warn(...args);
          log2('warning', ...args);
        };

        const cbReverseLog = E('#cb-reverse-log-order');
        const lblReverseLog = E('#lbl-reverse-log-order');
        if(cbReverseLog.checked){
            lblReverseLog.classList.add('warning');
            eOut.classList.add('reverse');
        }
        cbReverseLog.addEventListener('change', function(){
            if(this.checked){
                eOut.classList.add('reverse');
                lblReverseLog.classList.add('warning');
            }else{
                eOut.classList.remove('reverse');
                lblReverseLog.classList.remove('warning');
            }
        }, false);

        const w = new Worker('batch-runner-sahpool.js?sqlite3.dir=jswasm');
        w.onmessage = function(msg){
          msg = msg.data;
          switch(msg.type){
            case 'stdout': log(...msg.data); break;
            case 'warn': logWarn(...msg.data); break;
            case 'error': logErr(...msg.data); break;
            default:
              logErr("Unhandled worker message type:",msg);
              break;
          }
        };
      })();
    </script>
    <style>
      #test-output {
          white-space: break-spaces;
          overflow: auto;
      }
    </style>
  </body>
</html>