@rasgo/pouchdb-abstract-mapreduce
v0.9.2
Published
PouchDB's secondary index API as an abstract module
Downloads
1
Readme
pouchdb-abstract-mapreduce
PouchDB's secondary index API as an abstract module
Usage
npm install --save-exact pouchdb-abstract-mapreduce
var createAbstractMapreduce = require('@rasgo/pouchdb-abstract-mapreduce');
var abstract = createAbstractMapreduce(
localDoc,
mapper,
reducer,
ddocValidator);
The createAbstractMapreduce
function returns an "abstract" mapreduce object of the form:
{
query: queryFun,
viewCleanup: viewCleanupFun
}
Arguments are:
localDoc: string
This is for the local doc that gets saved in order to track the
"dependent" DBs and clean them up for viewCleanup. It should be
unique, so that indexer plugins don't collide with each other.
mapper: function (mapFunDef, emit)
Returns a map function based on the mapFunDef, which in the case of
normal map/reduce is just the de-stringified function, but may be
something else, such as an object in the case of pouchdb-find.
reducer: function (reduceFunDef)
Ditto, but for reducing. Modules don't have to support reducing
(e.g. pouchdb-find).
ddocValidator: function (ddoc, viewName)
Throws an error if the ddoc or viewName is not valid.
This could be a way to communicate to the user that the configuration for the
indexer is invalid.
For full API documentation and guides on PouchDB, see PouchDB.com. For details on PouchDB sub-packages, see the Custom Builds documentation.
Warning: semver-free zone!
This package is conceptually an internal API used by PouchDB or its plugins. It does not follow semantic versioning (semver), and rather its version is pegged to PouchDB's. Use exact versions when installing, e.g. with --save-exact
.
Source
PouchDB and its sub-packages are distributed as a monorepo.
For a full list of packages, see the GitHub source.