
Research
Security News
The Growing Risk of Malicious Browser Extensions
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
pouchdb-adapter-cordova-sqlite
Advanced tools
PouchDB adapter using Cordova SQLite Plugin as its data store.
PouchDB adapter using native Cordova SQLite as its backing store. It works with any one of the following Cordova plugins:
This adapter looks for a global cordova.sqlitePlugin
, falling back to openDatabase
if available. Its adapter name is 'cordova-sqlite'
.
Install from npm:
npm install pouchdb-adapter-cordova-sqlite
Then require()
it, notify PouchDB of the plugin, and initialize a database using the cordova-sqlite
adapter name:
PouchDB.plugin(require('pouchdb-adapter-cordova-sqlite'));
var db = new PouchDB('mydb.db', {adapter: 'cordova-sqlite'});
Note this requires a module bundler such as Browserify, Webpack, etc.
If you're not using npm/Browserify/Webpack/etc., just download the JavaScript file from unpkg, then include it after PouchDB:
<script src="path/to/pouchdb.js"></script>
<script src="path/to/pouchdb.cordova-sqlite.js"></script>
Then initialize it using the cordova-sqlite
adapter name:
var db = new PouchDB('mydb.db', {adapter: 'cordova-sqlite'});
This will create a SQLite database via native Cordova called mydb.db
.
Note that you will need to do this within the deviceready
Cordova event. If you are stuck trying to get this to work, then please refer to the pouchdb-adapter-cordova-sqlite-demo project which contains a fully working demo that you can try out yourself to see how it should work. The code it adds is simply:
<script src="js/pouchdb-6.1.2.js"></script>
<script src="js/pouchdb.cordova-sqlite-2.0.2.js"></script>
<script>
document.addEventListener('deviceready', function () {
var db = new PouchDB('database.db', {adapter: 'cordova-sqlite'});
db.post({}).then(function (res) {
return db.get(res.id);
}).then(function (doc) {
/* etc. */
}).catch(console.log.bind(console));
});
</script>
Note also that if you don't install a "SQLite plugin," it will fall back to WebSQL. If you are unsure whether or not a SQLite Plugin is successfully installed, try:
alert('SQLite plugin is installed?: ' + (!!window.sqlitePlugin));
The reason it falls back to WebSQL is that cordova-plugin-websql
adds a global openDatabase
instead of a global cordova.sqlitePlugin
. This adapter prefers cordova.sqlitePlugin
but falls back to openDatabase
.
You can also pass in any options that are valid for Cordova-sqlite-storage, such as location
,
androidDatabaseImplementation
, etc.:
var db = new PouchDB('mydb.db', {
adapter: 'cordova-sqlite',
iosDatabaseLocation: 'Library',
androidDatabaseImplementation: 2
});
If you want to use the legacy _pouch_mydb.db
format (with the _pouch_
prefix), then do this:
var PouchAdapterCordovaSqlite = require('pouchdb-adapter-cordova-sqlite');
cordovaSqlitePlugin.use_prefix = true; // use the legacy '_pouch' prefix
PouchDB.plugin(PouchAdapterCordovaSqlite);
var db = new PouchDB('mydb.db', {adapter: 'cordova-sqlite'});
Until PouchDB 6.0.0, PouchDB's regular websql
adapter supported the Cordova SQLite Plugin automatically. However, the PouchDB team found this
to be confusing, error-prone, and difficult to configure, which is why it was extracted into a separate plugin. You can read details in PouchDB's list of breaking changes.
window.PouchDB
. This means for people using <script>
tags, you no longer need to explicitly call PouchDB.plugin()
.FAQs
PouchDB adapter using Cordova SQLite Plugin as its data store.
The npm package pouchdb-adapter-cordova-sqlite receives a total of 1,525 weekly downloads. As such, pouchdb-adapter-cordova-sqlite popularity was classified as popular.
We found that pouchdb-adapter-cordova-sqlite demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.