motion
Version:
motion - moving development forward
74 lines (51 loc) • 1.82 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.run = run;
exports.url = url;
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 _fns = require('./lib/fns');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const serverPath = (0, _fns.p)(__dirname, 'serverProcess'); // runs server in seperate process
// trying to prevent server death when in Focus mode
// which does heavy requesting
function run() {
return new Promise((res, rej) => {
let child = _child_process2.default.fork(serverPath, '', {
// for express to run quickly
env: { NODE_ENV: 'production' }
});
(0, _shutdown.setChild)(child);
child.send(JSON.stringify((0, _opts2.default)()));
child.once('message', message => {
var _JSON$parse = JSON.parse(message);
let port = _JSON$parse.port;
let host = _JSON$parse.host;
_opts2.default.set('port', port);
_opts2.default.set('host', host);
_disk2.default.writeServerState();
res();
});
// send opts after first build complete
let sendOpts = setInterval(() => {
if ((0, _opts2.default)('hasRunInitialBuild')) {
child.send(JSON.stringify((0, _opts2.default)()));
clearInterval(sendOpts);
}
}, 150);
});
}
function url() {
const host = (0, _opts2.default)('host');
const port = (0, _opts2.default)('port');
return host + (port && port !== 80 ? ':' + port : '');
}
exports.default = { run, url };
//# sourceMappingURL=server.js.map
;