logify
Version:
Logging framework for node and the browser
47 lines (35 loc) • 1.28 kB
JavaScript
;
var _Promise = require('babel-runtime/core-js/promise')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = create;
var _reconnectNet = require('reconnect-net');
var _reconnectNet2 = _interopRequireDefault(_reconnectNet);
var _formatterJsonLine = require('../formatter/json-line');
var _formatterJsonLine2 = _interopRequireDefault(_formatterJsonLine);
function create() {
var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
opts.host = opts.host || 'localhost';
opts.port = opts.port || 8192;
opts.formatter = opts.formatter || _formatterJsonLine2['default'];
var socket = undefined;
(0, _reconnectNet2['default'])(function (sock) {
socket = sock;
}).connect(opts.port, opts.host);
return function write(entry) {
if (!socket) {
return _Promise.reject(new Error('Socket not available!'));
}
return new _Promise(function (resolve, reject) {
socket.write(opts.formatter(entry), function (err) {
if (err) {
return reject(err);
}
return resolve();
});
});
};
}
module.exports = exports['default'];