UNPKG

logify

Version:
59 lines (44 loc) 1.39 kB
'use strict'; 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'];