summaryrefslogtreecommitdiffstats
path: root/ext/wasm/fiddle
diff options
context:
space:
mode:
Diffstat (limited to 'ext/wasm/fiddle')
-rw-r--r--ext/wasm/fiddle/fiddle-worker.js9
-rw-r--r--ext/wasm/fiddle/fiddle.js17
2 files changed, 15 insertions, 11 deletions
diff --git a/ext/wasm/fiddle/fiddle-worker.js b/ext/wasm/fiddle/fiddle-worker.js
index 67f6100..27d915e 100644
--- a/ext/wasm/fiddle/fiddle-worker.js
+++ b/ext/wasm/fiddle/fiddle-worker.js
@@ -166,11 +166,10 @@
stdout("SQLite version", capi.sqlite3_libversion(),
capi.sqlite3_sourceid().substr(0,19));
stdout('Welcome to the "fiddle" shell.');
- if(sqlite3.opfs){
+ if(capi.sqlite3_vfs_find("opfs")){
stdout("\nOPFS is available. To open a persistent db, use:\n\n",
" .open file:name?vfs=opfs\n\nbut note that some",
"features (e.g. upload) do not yet work with OPFS.");
- sqlite3.opfs.registerVfs();
}
stdout('\nEnter ".help" for usage hints.');
this.exec([ // initialization commands...
@@ -317,7 +316,7 @@
};
console.warn("Unknown fiddle-worker message type:",ev);
};
-
+
/**
emscripten module for use with build mode -sMODULARIZE.
*/
@@ -374,9 +373,7 @@
"for use in the dev console.", sqlite3);
globalThis.sqlite3 = sqlite3;
const dbVfs = sqlite3.wasm.xWrap('fiddle_db_vfs', "*", ['string']);
- fiddleModule.fsUnlink = (fn)=>{
- return sqlite3.wasm.sqlite3_wasm_vfs_unlink(dbVfs(0), fn);
- };
+ fiddleModule.fsUnlink = (fn)=>fiddleModule.FS.unlink(fn);
wMsg('fiddle-ready');
}).catch(e=>{
console.error("Fiddle worker init failed:",e);
diff --git a/ext/wasm/fiddle/fiddle.js b/ext/wasm/fiddle/fiddle.js
index 2a3d174..d285898 100644
--- a/ext/wasm/fiddle/fiddle.js
+++ b/ext/wasm/fiddle/fiddle.js
@@ -403,8 +403,10 @@
E('#btn-reset').addEventListener('click',()=>SF.resetDb());
const taInput = E('#input');
const btnClearIn = E('#btn-clear');
+ const selectExamples = E('#select-examples');
btnClearIn.addEventListener('click',function(){
taInput.value = '';
+ selectExamples.selectedIndex = 0;
},false);
// Ctrl-enter and shift-enter both run the current SQL.
taInput.addEventListener('keydown',function(ev){
@@ -733,16 +735,15 @@
]},
//{name: "Timer on", sql: ".timer on"},
// ^^^ re-enable if emscripten re-enables getrusage()
+ {name: "Box Mode", sql: ".mode box"},
{name: "Setup table T", sql:[
".nullvalue NULL\n",
"CREATE TABLE t(a,b);\n",
"INSERT INTO t(a,b) VALUES('abc',123),('def',456),(NULL,789),('ghi',012);\n",
"SELECT * FROM t;\n"
]},
- {name: "Table list", sql: ".tables"},
- {name: "Box Mode", sql: ".mode box"},
- {name: "JSON Mode", sql: ".mode json"},
- {name: "Mandlebrot", sql:[
+ {name: "sqlite_schema", sql: "select * from sqlite_schema"},
+ {name: "Mandelbrot", sql:[
"WITH RECURSIVE",
" xaxis(x) AS (VALUES(-2.0) UNION ALL SELECT x+0.05 FROM xaxis WHERE x<1.2),\n",
" yaxis(y) AS (VALUES(-1.0) UNION ALL SELECT y+0.1 FROM yaxis WHERE y<1.0),\n",
@@ -760,7 +761,13 @@
" FROM m2 GROUP BY cy\n",
" )\n",
"SELECT group_concat(rtrim(t),x'0a') as Mandelbrot FROM a;\n",
- ]}
+ ]},
+ {name: "JSON pretty-print",
+ sql: "select json_pretty(json_object('ex',json('[52,3.14159]')))"
+ },
+ {name: "JSON pretty-print (with tabs)",
+ sql: "select json_pretty(json_object('ex',json('[52,3.14159]')),char(0x09))"
+ }
];
const newOpt = function(lbl,val){
const o = document.createElement('option');