UNPKG

carcass-couch

Version:

(Node.js) A simple wrap of cradle plus some stream APIs, in Carcass style.

70 lines (62 loc) 1.44 kB
debug = require('debug')('carcass:couch') cradle = require('cradle') carcass = require('carcass') config = require('carcass-config') ###* * Represents a CouchDB connection. ### module.exports = class Couch ###* * Constructor. ### constructor: (options) -> @id(options) debug('initializing the %s couch.', @id()) ###* * Cache of the connection. * * @type {Function} ### connection: carcass.helpers.accessor('_connection') ###* * Connect. * * @public ### connect: (done = ->) -> conn = @connection() if conn? done(null, conn) return @ config = @config() ? {} debug('%s connecting to CouchDB', @id(), config) # Connect. # TODO: really connect and detect connection errors? conn = new cradle.Connection(config) # Cache connection. @connection(conn) done(null, conn) return @ ###* * Disconnect. * * @public ### disconnect: -> # TODO: it's buggy, I guess. # @connection()?.close() @connection(null) return @ ###* * Get a DB instance. * * @public ### getDB: (options) -> return @configManager().getConsumer('CouchDB', options).couch(@) ###* * Mixins. ### carcass.mixable(Couch) Couch::mixin(carcass.proto.uid) Couch::mixin(config.proto.consumer)