motion
Version:
motion - moving development forward
71 lines (49 loc) • 1.79 kB
JavaScript
exports.__esModule = true;
exports.run = run;
exports.url = url;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
// runs server in seperate process
// trying to prevent server death when in Focus mode
// which does heavy requesting
var _child_process = require('child_process');
var _child_process2 = _interopRequireDefault(_child_process);
var _shutdown = require('./shutdown');
var _opts = require('./opts');
var _opts2 = _interopRequireDefault(_opts);
var _disk = require('./disk');
var _disk2 = _interopRequireDefault(_disk);
var _libFns = require('./lib/fns');
var serverPath = _libFns.p(__dirname, 'serverProcess');
function run() {
return new Promise(function (res, rej) {
var child = _child_process2['default'].fork(serverPath, '', {
// for express to run quickly
env: { NODE_ENV: 'production' }
});
_shutdown.setChild(child);
child.send(JSON.stringify(_opts2['default']()));
child.once('message', function (message) {
var _JSON$parse = JSON.parse(message);
var port = _JSON$parse.port;
var host = _JSON$parse.host;
_opts2['default'].set('port', port);
_opts2['default'].set('host', host);
_disk2['default'].writeServerState();
res();
});
// send opts after first build complete
var sendOpts = setInterval(function () {
if (_opts2['default']('hasRunInitialBuild')) {
child.send(JSON.stringify(_opts2['default']()));
clearInterval(sendOpts);
}
}, 150);
});
}
function url() {
var host = _opts2['default']('host');
var port = _opts2['default']('port');
return host + (port && port !== 80 ? ':' + port : '');
}
exports['default'] = { run: run, url: url };
//# sourceMappingURL=server.js.map