Node.jsではなく、Chrome Extensionなどのブラウザ上でのjavascriptでの利用を想定。
GitHub: https://github.com/sql-js/sql.js
CDN: https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.4.0/dist/sql-wasm.js
導入方法(initSqlJs)
ここだけが難関でした。
外部依存のwasm(Web-Assembly...)を利用するための手続きらしいです。
このfileの先の戻り値が適切な値でないと動きません。
SQL = await initSqlJs({locateFile: file =>
`https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.4.0/dist/${file}`});
sql読み込み・操作
dataはbinary dataの形で引き渡します。
//dl with github rest api
data = await fetch("https://api.github.com/repos/XXXXXX/XXXXXXXX/git/blobs/XXXXXXXXXXXX")
.then(d=>d.json()).then(d=>atob(d.content));
//読み込み
db = new SQL.Database(data)
//SQLの操作
texts = db.exec("select * from texts")