logify
Version:
Logging framework for node and the browser
59 lines (44 loc) • 1.39 kB
JavaScript
;
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = create;
var _udp = require('./udp');
var _udp2 = _interopRequireDefault(_udp);
var _tcp = require('./tcp');
var _tcp2 = _interopRequireDefault(_tcp);
var _formatterJson = require('../formatter/json');
var _formatterJson2 = _interopRequireDefault(_formatterJson);
function id(x) {
return x;
}
function compose(f, g) {
return function (x) {
return f(g(x));
};
}
function create() {
var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
opts.host = opts.host || 'localhost';
opts.port = opts.port || 8192;
opts.type = opts.type || 'tcp';
opts.transform = opts.transform || id;
opts.formatter = opts.formatter || _formatterJson2['default'];
if (opts.type === 'udp') {
return (0, _udp2['default'])({
host: opts.host,
port: opts.port,
type: 'udp4',
formatter: compose(opts.formatter, opts.transform)
});
} else if (opts.type === 'tcp') {
return (0, _tcp2['default'])({
host: opts.host,
port: opts.port,
formatter: compose(opts.formatter, opts.transform)
});
}
throw new Error('Transport type ' + opts.type + ' not implemented!');
}
module.exports = exports['default'];