---
# System prepended metadata

title: sql-jsまとめ
tags: [open, Program]

---

---
lang:ja-jp
###### tags: `Program` `open`
---

# sql-jsまとめ

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

[TOC]

## 導入方法(initSqlJs)

ここだけが難関だった。
外部依存のwasm(Web-Assembly...)を利用するための手続きらしい。
このfileの先の戻り値が適切な値でないと動かない。
```javascript=
SQL = await initSqlJs({locateFile: file =>
     `https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.4.0/dist/${file}`});
```

## sql読み込み・操作
dataはbinary dataの形で引き渡す。
```javascript=
//dl with github rest api
data = await fetch("https://api.github.com/repos/sql-js/sql.js/git/blobs/c77585a70aaceb9e73e804a5445d38d95c327ebe")
    .then(d=>d.json()).then(d=>atob(d.content));
//読み込み
db = new SQL.Database(data)

//SQLの操作
texts = db.exec("select * from texts")
```