PouchDB allDbs() plugin
allDbs()
was deprecated in PouchDB 2.0.0, but that doesn't mean it can't live on as a plugin!
This plugin exposes the PouchDB.allDbs()
function, which you can use to list all local databases. It works by listening for PouchDB.on('created')
and PouchDB.on('destroyed')
events, and maintaining a separate database to store the names of those databases.
Usage
To use this plugin, include it after pouchdb.js
in your HTML page:
<script src="pouchdb.js"></script>
<script src="pouchdb.all-dbs.js"></script>
This plugin is also available from Bower:
bower install pouchdb-all-dbs
Or to use it in Node.js, just npm install it:
npm install pouchdb-all-dbs
And then do this:
var PouchDB = require('pouchdb');
require('pouchdb-all-dbs')(PouchDB);
API
PouchDB.allDbs([callback])
Returns a list of all non-deleted databases. Example usage as a promise:
PouchDB.allDbs().then(function (dbs) {
}).catch(function (err) {
});
Or if you like callbacks, you can use that style instead:
PouchDB.allDbs(function (err, dbs) {
if (err) {
}
});
PouchDB.resetAllDbs([callback])
Destroys the separate allDbs database. You should never need to call this function; I just use it for the unit tests.
Example usage:
PouchDB.resetAllDbs().then(function () {
}).catch(function (err) {
});
Building
npm install
npm run build
Testing
In Node
This will run the tests in Node using LevelDB:
npm test
You can also check for 100% code coverage using:
npm run coverage
If you have mocha installed globally you can run single test with:
TEST_DB=local mocha --reporter spec --grep search_phrase
The TEST_DB
environment variable specifies the database that PouchDB should use (see package.json
).
In the browser
Run npm run dev
and then point your favorite browser to http://127.0.0.1:8001/test/index.html.
The query param ?grep=mysearch
will search for tests matching mysearch
.
Automated browser tests
You can run e.g.
CLIENT=selenium:firefox npm test
CLIENT=selenium:phantomjs npm test
This will run the tests automatically and the process will exit with a 0 or a 1 when it's done. Firefox uses IndexedDB, and PhantomJS uses WebSQL.