require('babel-core/register'); require('./index');
const fs = require('fs'); const path = require('path'); const http = require('http'); const httpdispatcher = require('httpdispatcher'); const dispatcher = new httpdispatcher(); const { integrationsManager } = require('react-webpack-rails');
const PORT = parseInt(process.env.PORT || 8081); const ASSETS_MAPPING_PATH = 'tmp/cache/assets-mapping.json';
global.RWR_ENV = {}; global.RWR_VIEW_HELPERS = { imagePaths: {} };
fs.readFile(ASSETS_MAPPING_PATH, (err, data) => {
if (err) { return err; } const imagePaths = data.toString('utf-8'); global.__RWR_VIEW_HELPERS__.imagePaths = JSON.parse(imagePaths);
});
const handleRequest = (req, res) => {
const { method, url } = req; const reqStartTime = (new Date()).toLocaleTimeString(); console.log(`${method} "${url}" - ${reqStartTime}`); dispatcher.dispatch(req, res);
}
dispatcher.onPost('/run', (req, res) => {
try { const data = JSON.parse(req.body); const result = integrationsManager.runNodeIntegration(data); res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end(result); } catch(e) { console.error(e); res.writeHead(500); res.end(`nodeRun failed:\n ${e.name}: ${e.message}`); }
});
http
.createServer(handleRequest) .listen(PORT, () => { console.log(`Server listening on: http://localhost:${PORT}`) });