require() a traditional couchapp into your node code

npm install ddoc
10 downloads in the last week
20 downloads in the last month


This is a little node.js helper that lets you include local CouchDB design documents (from the filesystem, in traditional couchapp format) into your node.js projects.


var couchapp = require('ddoc')("./a_traditional_couchapp");

try {
    couchapp.validate_doc_update(/* … */);
} catch (e) {
    // …

Basically, it's like "require" but for a CouchApp folder structure instead of a CommonJS module.


I built this to help me transition an app from a very CouchDB-heavy architecture to one where node.js did more of the work. This way I could re-use filters and validators and stuff from the old CouchApp as it sat.

CommonJS support is pretty simplistic, and may not match either the spec and/or CouchDB's implementation well. There's also a somewhat fragile workaround for handling "valid module code" versus "anonymous function strings" (e.g. view/map/list/etc.) in place — this workaround simply mucks around with the first match of any string like "function (" which will not cover all possible cases i.e. occurences within comments/strings.

Attachments aren't loaded, ideally they'd get stubbed in like a default ?attachments=false doc fetch does.

npm loves you