Use Web SQL and Cordova SQLite with ES6 promises.
npm install websql-promisifiedbash
npm install --save websql-promisified
`
Usage
$3
`javascript
import websql from 'websql-promisified';
const db = openDatabase('mydb', '1.0', 'Test DB', 2 1024 1024);
const websqlPromise = websql(db);
websqlPromise.transaction((tx) => {
tx.executeSql('INSERT INTO someTable (someColumn) VALUES (?)', ['a']);
tx.executeSql('SELECT * FROM someTable');
}).then((results) => {
// Do something with results array
}).catch((error) => {
// Something went wrong, see error.message
})
`
$3
`javascript
import websql from 'websql-promisified';
const db = openDatabase('mydb', '1.0', 'Test DB', 2 1024 1024);
const websqlPromise = websql(db);
try {
const results = await websqlPromise.transaction((tx) => {
tx.executeSql('INSERT INTO someTable (someColumn) VALUES (?)', ['a']);
tx.executeSql('SELECT * FROM someTable');
})
// Do something with results array
} catch (error) {
// Something went wrong, see error.message
}
`
$3
You can also chain your queries as you would normally do in Web SQL. Pass a
function as the third argument into your executeSql() call. It should accept a
transaction object as the first argument and the result as the second. In the
callback you can execute new queries that depend on the result from previous
query.
The results array returned from transaction() is filled in the same order
your queries execute.
`javascript
import websql from 'websql-promisified';
const db = openDatabase('mydb', '1.0', 'Test DB', 2 1024 1024);
const websqlPromise = websql(db);
try {
const results = await websqlPromise.transaction((tx) => {
tx.executeSql('INSERT INTO someTable (someColumn) VALUES (?)', ['a']);
tx.executeSql('SELECT * FROM someTable', [], (tx, result) => {
const value = result.rows.item(0).someColumn;
tx.executeSql('INSERT INTO someTable (someColumn) VALUES (?)', [value + value]);
});
tx.executeSql('SELECT * FROM someTable');
})
console.log(results[1].rows.item(0).someColumn) // a
console.log(results[3].rows.item(0).someColumn) // aa
} catch (error) {
// Something went wrong, see error.message
}
``