You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
824 B
28 lines
824 B
import initSqlJs from '@jlongster/sql.js';
|
|
import { SQLiteFS } from 'absurd-sql';
|
|
import IndexedDBBackend from 'absurd-sql/dist/indexeddb-backend';
|
|
|
|
async function run() {
|
|
console.log("----- initSqlJs");
|
|
let SQL = await initSqlJs({ locateFile: file => file });
|
|
let sqlFS = new SQLiteFS(SQL.FS, new IndexedDBBackend());
|
|
SQL.register_for_idb(sqlFS);
|
|
|
|
SQL.FS.mkdir('/sql');
|
|
SQL.FS.mount(sqlFS, {}, '/sql');
|
|
|
|
const path = '/sql/db.sqlite';
|
|
if (typeof SharedArrayBuffer === 'undefined') {
|
|
let stream = SQL.FS.open(path, 'a+');
|
|
await stream.node.contents.readIfFallback();
|
|
SQL.FS.close(stream);
|
|
}
|
|
|
|
let db = new SQL.Database(path, { filename: true });
|
|
// You might want to try `PRAGMA page_size=8192;` too!
|
|
db.exec(`
|
|
PRAGMA journal_mode=MEMORY;
|
|
`);
|
|
console.log("----- db", db);
|
|
}
|
|
run();
|
|
|