SQLite support for qustar via better-sqlite3 package.
To start using better-sqlite3
with qustar
you need to install the following packages:
npm install qustar qustar-better-sqlite3 better-sqlite3
Here is a minimal example:
import {Q} from 'qustar';
import {BetterSqlite3Connector} from 'qustar-better-sqlite3';
// create a connector for in-memory SQLite database
const connector = new BetterSqlite3Connector(':memory:');
// construct a query
const query = Q.table({
name: 'users',
schema: {
id: Q.i32(),
},
});
// run the query using the connector
const users = await query.fetch(connector);
// use the result
console.log(users);
// close the connector
await connector.close();
You can also create BetterSqlite3Connector
by passing an instance of better-sqlite3
database:
import Database from 'better-sqlite3';
const db = new Database('/path/to/db.sqlite', {
readonly: true,
fileMustExist: false,
});
const connector = new BetterSqlite3Connector(db);
But usually it's more convenient to pass database options directly to the connector:
import {BetterSqlite3Connector} from 'qustar-better-sqlite3';
// connector will pass the options to better-sqlite3
const connector = new BetterSqlite3Connector('/path/to/db.sqlite', {
readonly: true,
fileMustExist: false,
});
You can run raw SQL using a connector:
// execute a statement
await connector.execute('INSERT INTO users VALUES (42);');
// run a query
await connector.query('SELECT 42 as meaning');
// run a parametrized query
await connector.query({
sql: 'SELECT id FROM users WHERE id = ?',
args: [42],
});
MIT License, see LICENSE
.