sqlite-tag-spawned
Social Media Photo by Tomas Kirvėla on Unsplash
The same sqlite-tag ease but without the native sqlite3 dependency, aiming to replace dblite.
import SQLiteTagSpawned from 'sqlite-tag-spawned';
const {query, get, all, raw, transaction} = SQLiteTagSpawned('./db.sql');
console.log(await query`.databases`);
await query`CREATE TABLE IF NOT EXISTS names (
id INTEGER PRIMARY KEY,
name TEXT
)`;
const populate = transaction();
for (let i = 0; i < 2; i++)
populate`INSERT INTO names (name) VALUES (${'Name' + i})`;
await populate.commit();
await get`SELECT name FROM names`;
await all`SELECT * FROM names`;
const list = ['Name 0', 'Name 1'];
await all`SELECT * FROM names WHERE name IN (${list})`;
Differently from dblite
- requires SQLite 3.33 or higher (it uses the
-json
output mode) - each query is a spawn call except for transactions, grouped as single spawned query
- performance still similar to sqlite3 native module
:memory:
database is based on an always same, yet runtime-once created temporary file, and it requires NodeJS 16+