This package has been deprecated

    Author message:

    WARNING: This project has been renamed to couchdb-compile. Install couchdb-compile instead.

    couch-compile

    1.4.0 • Public • Published

    couch-compile

    Build CouchDB documents from directory, JSON or module.

    BuildStatus

    var compile = require('couch-compile');
    compile('/my/couch/app', function(err, doc) {
      // push
    });

    Usage

    compile(directory, [options], callback)

    Options

    When options.multipart is true, attachments are handled as multipart.

    callback

    callback is called with two arguments: error and doc. In case options.multipart is set, callback is called with a third argument: attachments. This is a multipart attachments array as required by nanos db.multipart.insert:

    {
      name: 'rabbit.png',
      content_type: 'image/png',
      data: <Buffer>
    }

    data can be a Buffer or a String.

    CLI

    A simple commandline client is included:

    npm install -g couch-compile

    Give it a directory, or use the current one:

    couch-compile /my/couch/app

    The Couch Directory Tree

    couch-compile uses a filesystem mapping similar to Couchapp python tool and Erika: The Couchapp Filesystem Mapping.

    It is quite self-explanatory. For example:

    myapp
    ├── _id
    ├── language
    └── views
        └── numbers
            ├── map.js
            └── reduce.js

    becomes:

    {
      "_id": "_design/myapp",
      "language": "javascript",
      "views": {
        "numbers": {
          "map": "function...",
          "reduce": "function..."
        }
      }
    }

    See test/fixtures and test/expected for usage examples.

    File Extensions

    For property names file extensions will be stripped:

    {
      "validate_doc_update": "content of validate_doc_update.js",
    }

    Attachments

    Files inside the \_attachments directory are handled special: They become attachment entries of the form

    {
      "a/file.txt": {
        "data": "SGVsbG8gV29ybGQhCg==",
        "content_type": "text/plain"
      }
    }

    The content\_type is computed using mime. data is the base64 encoded value of the file.

    Read more about Inline Attachments.

    Testing

    Run the testsuite with

    npm test

    (c) 2014 Johannes J. Schmidt, TF
    MIT License

    Install

    npm i couch-compile

    DownloadsWeekly Downloads

    85

    Version

    1.4.0

    License

    MIT

    Last publish

    Collaborators

    • jo