2016-01-22 19:16:53 -06:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var _stringify = require('babel-runtime/core-js/json/stringify');
|
|
|
|
|
|
|
|
var _stringify2 = _interopRequireDefault(_stringify);
|
|
|
|
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
|
|
value: true
|
|
|
|
});
|
|
|
|
exports.Transform = exports.Reader = exports.Writer = undefined;
|
|
|
|
|
|
|
|
exports.default = function () {
|
|
|
|
var id = arguments.length <= 0 || arguments[0] === undefined ? process.pid : arguments[0];
|
|
|
|
var opts = arguments.length <= 1 || arguments[1] === undefined ? (0, _rc2.default)('scribe', defaultOpts) : arguments[1];
|
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
opts = (0, _extend2.default)(true, {}, defaultOpts, opts);
|
2016-01-22 19:16:53 -06:00
|
|
|
|
|
|
|
var console = new _BasicConsole2.default(opts.name, id || opts.instanceId);
|
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
function appendTransforms(args) {
|
|
|
|
if (opts.mongo && opts.mongoUri && opts.socket && opts.socketPort) {
|
|
|
|
args.push(new _JSON2Converter2.default());
|
|
|
|
args.push(new _MongoDB2.default(opts.mongoUri, opts.debug));
|
|
|
|
args.push(new _SocketIO2.default(opts.socketPort, opts.debug));
|
|
|
|
} else if (opts.mongo && opts.mongoUri) {
|
|
|
|
args.push(new _JSON2Converter2.default());
|
|
|
|
args.push(new _MongoDB2.default(opts.mongoUri, opts.debug));
|
|
|
|
} else if (opts.socket && opts.socketPort) {
|
|
|
|
args.push(new _JSON2Converter2.default());
|
|
|
|
args.push(new _SocketIO2.default(opts.socketPort, opts.debug));
|
2016-01-22 19:16:53 -06:00
|
|
|
}
|
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
return args;
|
|
|
|
}
|
|
|
|
|
2016-01-25 22:44:36 -06:00
|
|
|
for (var _len = arguments.length, exposers = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
|
|
exposers[_key - 2] = arguments[_key];
|
|
|
|
}
|
|
|
|
|
|
|
|
console.exposed().concat(exposers).forEach(function (expose) {
|
|
|
|
console.expose(expose);
|
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
var args = appendTransforms([expose, 'mongo-socket', new _ErrorExtractor2.default()]);
|
|
|
|
|
|
|
|
console.pipe.apply(console, args);
|
|
|
|
|
2016-01-29 01:31:33 -06:00
|
|
|
console.pipe(expose, 'bash', new _Inspector2.default(opts.inspector), new _DefaultConsole2.default());
|
2016-01-22 19:16:53 -06:00
|
|
|
});
|
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
var args = appendTransforms(['express', 'mongo-socket', new _ErrorExtractor2.default(), new _ExpressExtractor2.default()]);
|
2016-01-22 19:16:53 -06:00
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
console.pipe.apply(console, args);
|
2016-01-22 19:16:53 -06:00
|
|
|
|
2016-01-29 01:31:33 -06:00
|
|
|
console.pipe('express', 'bash', new _ExpressExtractor2.default(), new _ExpressInspector2.default(), new _Inspector2.default(opts.inspector), new _DefaultConsole2.default());
|
2016-01-22 19:16:53 -06:00
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
console.viewer = _viewer.create.bind(null, opts.mongo && opts.mongoUri, opts.web.router, opts.web.client, opts.debug);
|
2016-01-22 19:16:53 -06:00
|
|
|
|
|
|
|
console.build = function () {
|
|
|
|
|
|
|
|
// update
|
|
|
|
_package2.default.main = opts.publicUri + ':' + _path2.default.join(String(opts.web.client.port), opts.basePath);
|
|
|
|
|
|
|
|
// save
|
2016-01-22 19:25:52 -06:00
|
|
|
_fs2.default.writeFileSync(__dirname + '/../native/package.json', (0, _stringify2.default)(_package2.default, null, 4), { encoding: 'utf8' });
|
2016-01-22 19:16:53 -06:00
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
var nw = new _nwBuilder2.default((0, _extend2.default)(true, {
|
2016-01-22 19:16:53 -06:00
|
|
|
platforms: ['win', 'osx', 'linux'],
|
2016-01-22 19:25:52 -06:00
|
|
|
buildDir: __dirname + '/../public/native',
|
2016-01-22 19:16:53 -06:00
|
|
|
version: '0.12.3',
|
|
|
|
zip: true
|
2016-01-22 19:25:52 -06:00
|
|
|
}, opts.nwjs, { files: __dirname + '/../native/**/**' }));
|
2016-01-22 19:16:53 -06:00
|
|
|
|
|
|
|
if (opts.debug) {
|
|
|
|
nw.on('log', function (d) {
|
|
|
|
return console.log(d);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return nw.build();
|
|
|
|
};
|
|
|
|
|
|
|
|
process.on('uncaughtException', function (e) {
|
|
|
|
return console.error(e).then(function () {
|
|
|
|
return process.exit(1);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
return console;
|
|
|
|
};
|
|
|
|
|
|
|
|
var _fs = require('fs');
|
|
|
|
|
|
|
|
var _fs2 = _interopRequireDefault(_fs);
|
|
|
|
|
|
|
|
var _path = require('path');
|
|
|
|
|
|
|
|
var _path2 = _interopRequireDefault(_path);
|
|
|
|
|
|
|
|
var _Console = require('./readers/Console');
|
|
|
|
|
|
|
|
var _Console2 = _interopRequireDefault(_Console);
|
|
|
|
|
|
|
|
var _BasicConsole = require('./readers/BasicConsole');
|
|
|
|
|
|
|
|
var _BasicConsole2 = _interopRequireDefault(_BasicConsole);
|
|
|
|
|
|
|
|
var _Inspector = require('./transforms/Inspector');
|
|
|
|
|
|
|
|
var _Inspector2 = _interopRequireDefault(_Inspector);
|
|
|
|
|
|
|
|
var _ExpressInspector = require('./transforms/ExpressInspector');
|
|
|
|
|
|
|
|
var _ExpressInspector2 = _interopRequireDefault(_ExpressInspector);
|
|
|
|
|
|
|
|
var _ExpressExtractor = require('./transforms/ExpressExtractor');
|
|
|
|
|
|
|
|
var _ExpressExtractor2 = _interopRequireDefault(_ExpressExtractor);
|
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
var _JSON2Converter = require('./transforms/JSON2Converter');
|
|
|
|
|
|
|
|
var _JSON2Converter2 = _interopRequireDefault(_JSON2Converter);
|
|
|
|
|
2016-01-22 19:16:53 -06:00
|
|
|
var _ErrorExtractor = require('./transforms/ErrorExtractor');
|
|
|
|
|
|
|
|
var _ErrorExtractor2 = _interopRequireDefault(_ErrorExtractor);
|
|
|
|
|
|
|
|
var _MongoDB = require('./writers/MongoDB');
|
|
|
|
|
|
|
|
var _MongoDB2 = _interopRequireDefault(_MongoDB);
|
|
|
|
|
|
|
|
var _SocketIO = require('./writers/SocketIO');
|
|
|
|
|
|
|
|
var _SocketIO2 = _interopRequireDefault(_SocketIO);
|
|
|
|
|
|
|
|
var _DefaultConsole = require('./writers/DefaultConsole');
|
|
|
|
|
|
|
|
var _DefaultConsole2 = _interopRequireDefault(_DefaultConsole);
|
|
|
|
|
|
|
|
var _viewer = require('./routers/viewer');
|
|
|
|
|
|
|
|
var _nwBuilder = require('nw-builder');
|
|
|
|
|
|
|
|
var _nwBuilder2 = _interopRequireDefault(_nwBuilder);
|
|
|
|
|
|
|
|
var _rc = require('rc');
|
|
|
|
|
|
|
|
var _rc2 = _interopRequireDefault(_rc);
|
|
|
|
|
|
|
|
var _package = require('./../native/package.json');
|
|
|
|
|
|
|
|
var _package2 = _interopRequireDefault(_package);
|
|
|
|
|
2016-01-24 18:03:01 -06:00
|
|
|
var _extend = require('extend');
|
|
|
|
|
|
|
|
var _extend2 = _interopRequireDefault(_extend);
|
|
|
|
|
2016-01-22 19:16:53 -06:00
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
|
|
|
|
var Writer = exports.Writer = { MongoDB: _MongoDB2.default, DefaultConsole: _DefaultConsole2.default };
|
|
|
|
var Reader = exports.Reader = { BasicConsole: _BasicConsole2.default, Console: _Console2.default };
|
2016-01-24 18:03:01 -06:00
|
|
|
var Transform = exports.Transform = { Inspector: _Inspector2.default, ExpressInspector: _ExpressInspector2.default, ExpressExtractor: _ExpressExtractor2.default, ErrorExtractor: _ErrorExtractor2.default, JSON2Converter: _JSON2Converter2.default };
|
2016-01-22 19:16:53 -06:00
|
|
|
|
|
|
|
var defaultOpts = {
|
|
|
|
name: 'Scribe',
|
|
|
|
mongoUri: 'mongodb://localhost/scribe',
|
2016-01-24 18:03:01 -06:00
|
|
|
mongo: true,
|
2016-01-22 19:16:53 -06:00
|
|
|
basePath: 'scribe/',
|
|
|
|
socketPort: 4000,
|
2016-01-24 18:03:01 -06:00
|
|
|
socket: true,
|
2016-01-29 01:31:33 -06:00
|
|
|
inspector: {
|
|
|
|
colors: true,
|
|
|
|
showHidden: false,
|
|
|
|
depth: 5,
|
|
|
|
pre: true,
|
|
|
|
callsite: true,
|
|
|
|
tags: true,
|
|
|
|
args: true,
|
|
|
|
metrics: true
|
|
|
|
},
|
2016-01-22 19:16:53 -06:00
|
|
|
web: {
|
|
|
|
router: {
|
|
|
|
username: 'build',
|
|
|
|
password: 'build',
|
|
|
|
authentication: true,
|
|
|
|
sessionSecret: 'scribe-session',
|
|
|
|
useBodyParser: true,
|
|
|
|
useSession: true
|
|
|
|
},
|
|
|
|
client: {
|
|
|
|
socketPorts: [4000],
|
|
|
|
exposed: {
|
|
|
|
all: { label: 'all', query: { expose: { $exists: true } } },
|
|
|
|
error: { label: 'error', query: { expose: 'error' } },
|
|
|
|
express: { label: 'express', query: { expose: 'express' } },
|
|
|
|
info: { label: 'info', query: { expose: 'info' } },
|
|
|
|
log: { label: 'log', query: { expose: 'log' } },
|
|
|
|
warn: { label: 'warn', query: { expose: 'warn' } },
|
|
|
|
trace: { label: 'trace', query: { expose: 'trace' } }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
nwjs: {},
|
|
|
|
debug: false
|
|
|
|
};
|
|
|
|
|
|
|
|
;
|