redux-persist-cordova-sqlite
Version:
use sqlite with redux persist in cordova based apps
63 lines (58 loc) • 2.14 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
/**
* Returns a function to avoid eager execution of window.sqlitePlugin.openDatabase
*
*/
var sqlLiteStorage = function sqlLiteStorage() {
var db = window.sqlitePlugin.openDatabase({
name: 'redux-store-db',
location: 'default'
});
return {
getItem: function getItem(key) {
return new Promise(function (resolve, reject) {
try {
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS redux_store (key, value)', []);
tx.executeSql('SELECT value FROM redux_store WHERE key = ?', [key], function (tx, rs) {
resolve(rs.rows.item(0).value);
});
}, function (err) {
reject(err);
}, function (res) {
resolve(res);
});
} catch (err) {
console.error(err);
reject(err);
}
});
},
setItem: function setItem(key, value) {
return new Promise(function (resolve, reject) {
db.transaction(function (tx) {
tx.executeSql('UPDATE redux_store SET value = ? WHERE key = ?', [value, key]);
}, function (err) {
reject(err);
}, function (res) {
resolve(res);
});
});
},
removeItem: function removeItem(key) {
return new Promise(function (resolve, reject) {
db.transaction(function (tx) {
tx.executeSql('DELETE FROM redux_store WHERE key = ?', [key]);
}, function (err) {
reject(err);
}, function (res) {
console.log(res);
resolve(res);
});
});
}
};
};
exports.sqlLiteStorage = sqlLiteStorage;
//# sourceMappingURL=index.js.map