Source: transports/taffy-db.js

var util = require('util')
    , taffydb = require('taffydb').taffy
    , Transport = require('../transport').Transport;

/**
 * TaffyDb - A logging transport implementation using a [TaffyDb]{@link http://www.taffydb.com} instance.
 * @memberof transports
 * @constructor
 * @param {object} opts (optional) - An object, holding configuration values for the
 * TaffyDb transport. The only valid key is the 'targetdb', an instance of TaffyDb.
 * @example
 * var clogger = require('node-clogger');
 * var taffydb = require('taffydb').taffy;
 * var targetdb = taffydb();
 * var logger = new clogger.CLogger().addTransport(new clogger.transports.TaffyDb({
 *      'targetdb': targetdb
 * });
 * logger.debug('%sl%s', 'd', 'c');
 */
function TaffyDb(opts) {
    opts = opts || {};
    opts.name = opts.name || 'taffy-db';

    Transport.apply(this, [opts]);

    this.config.addRequired('targetdb');

    var self = this;
    this.on('log', function(args) {
        var targetdb = self.config.getValue('targetdb');

        if (targetdb && targetdb.TAFFY) {
            targetdb.insert(args);
        } else {
            throw new TypeError('Configured logdb in Transport:TaffyDb is not an instance of "TaffyDb"');
        }
    });
}

util.inherits(TaffyDb, Transport);

module.exports = TaffyDb;