node utility to create & update CouchDB views
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.npmignore
README.md
builder.js
cli.js
generate.js
package.json
view-builder.sln
views.js

README.md

view-builder

A node utility to create and update couchdb views

Installation

npm install -g view-builder

Usage

Command Line (Update)

Updates the views found in the specified database from the specified definitions

view-builder --url http://localhost:5984/databasename --defs ./path/to/views.js

If omitted, the defs parameter will default to a file named views.js in the current folder.

This relies on views.js containing something like the following:

exports.designDocumentName = {
    views: {
        viewName: {
            map: function () { }
        }
    },
    filters: {
        filter1: function() {}
    }
};

The config file can contain multiple design documents, each of which can contain multiple views and filters.

Updating Existing documents

To avoid accidental rebuilds of entire views, view-builder will not automatically overwrite an existing design document (see #1). If this behaviour is required then you can use the force flag:

view-builder --url http://... --force

Command Line (Generate)

Generates a view definition file based on the views already in the database

view-builder --url http://localhost:5984/databasename --defs ./path/to/views.js --generate

If omitted, the defs parameter will default to a file named views.js in the current folder.

require

var builder = require("view-builder");
builder("http://localhost:5984/databasename", "./path/to/views.js");
// or...
builder("http://localhost:5984/databasename", {
    designDocumentName = {
        views: {
            viewName: {
                map: function () { }
            }
        },
        filters: {
            filter1: function() {}
        }
    }
});

As in the command line example, the second parameter will default to a file named views.js in the current folder.