p632-sp-2016/eDocLite

View on GitHub
server/server.js

Summary

Maintainability
A
0 mins
Test Coverage
//import path from 'path';
//import Express from 'express';
var path = require('path');
var Express = require('express');
var httpProxy = require('http-proxy');

var proxy = httpProxy.createProxyServer();

var bundle = require('./dev-server.js');

var bodyParser = require('body-parser');

var jsonParser = bodyParser.json();

var app = Express();
var server;

var fs = require('fs');

var skeleton = require('./ComponentSkeleton.js');

var babel = require('babel-core');

const PATH_STYLES = path.resolve(__dirname, '../src/styles');
const PATH_DIST = path.resolve(__dirname, '../');

process.title = "eDocLite";

app.use('/styles', Express.static(PATH_STYLES));
app.use(Express.static(PATH_DIST));

bundle();

//app.all('/assets/*', function(req, res) {
//    proxy.web(req, res, {
//        target: 'http://localhost:8080/'
//    });
//});

app.get('/', function (req, res)  {
    res.sendFile(path.resolve(__dirname, '../src/index.html'));
});

var createComponent = function(component) {
    var componentTag = "\t\t\t\t";

    var props = component.props;

    componentTag += "<" + props.name;

    for(var id in props) {
        if (id === "elements" || id === "selectedElement")
            componentTag += " " + id + "=" + "{" + JSON.stringify(props[id]) + "}";
        else
            componentTag += " " + id + "=" + JSON.stringify(props[id]);
    }

    componentTag += " /> \n";

    return componentTag;
};

app.post('/saveForm', jsonParser, function (req, res) {
    var components = req.body;

    var componentTags = "";

    componentTags += skeleton.header;
    for (var id in components) {
        var component = components[id];

        componentTags += createComponent(component);
    };
    componentTags += skeleton.footer;

    fs.writeFile("../forms/form.js", componentTags, function(err) {
        if (err) {
            return console.log(err);
        }
    });
    res.send("Got Components");
});

server = app.listen(process.env.PORT || 3000, function () {
    var port = server.address().port;

    console.log('Server is Listening at %s', port);
});