Updated react and server build scripts to operate with new UI

This commit is contained in:
Davide Passoni
2024-07-25 11:38:36 +02:00
parent 03de0f9175
commit 473f16dda0
26 changed files with 68 additions and 440 deletions

View File

@@ -9,7 +9,7 @@ import cors = require("cors");
/* Load the proxy middleware plugin */
import httpProxyMiddleware = require("http-proxy-middleware");
module.exports = function (configLocation) {
module.exports = function (configLocation, viteProxy) {
/* Config specific routers */
const elevationRouter = require("./routes/api/elevation")(configLocation);
const resourcesRouter = require("./routes/resources")(configLocation);
@@ -26,8 +26,6 @@ module.exports = function (configLocation) {
"databases"
)
);
const indexRouter = require("./routes/index");
const pluginsRouter = require("./routes/plugins");
/* Load the config and create the express app */
let config = {};
@@ -57,22 +55,33 @@ module.exports = function (configLocation) {
changeOrigin: true,
})
);
app.use(
"/vite",
httpProxyMiddleware.createProxyMiddleware({ target: `http://localhost:8080/`, ws: true })
);
if (viteProxy) {
app.use(
"/vite",
httpProxyMiddleware.createProxyMiddleware({
target: `http://localhost:8080/`,
ws: true,
})
);
}
app.use(bodyParser.json({ limit: "50mb" }));
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true }));
app.use(express.static(path.join(__dirname, "..", "public")));
app.use(cors());
/* Apply routers */
app.use("/", indexRouter);
app.use("/api/airbases", airbasesRouter);
app.use("/api/elevation", elevationRouter);
app.use("/api/databases", databasesRouter);
app.use("/plugins", pluginsRouter);
app.use("/resources", resourcesRouter);
/* Set default index */
if (!viteProxy) {
app.get("/", function (req, res) {
res.sendfile(path.join(__dirname, "..", "public", "vite", "index.html"));
});
}
return app;
};

View File

@@ -1,9 +0,0 @@
import express = require('express');
const router = express.Router();
/* GET home page. */
router.get('/', function (req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;

View File

@@ -1,21 +0,0 @@
import express = require('express');
import fs = require('fs');
import path = require('path');
const pluginsDirectory = "./public/plugins"
const router = express.Router();
function listDirectories(source) {
const directories = fs.readdirSync(source, { withFileTypes: true })
.filter(dirent => dirent.isDirectory())
.map(dirent => dirent.name);
return directories;
}
router.get('/list', function (req, res) {
var directories = listDirectories(pluginsDirectory);
res.send(directories.filter(directory => fs.existsSync(path.join(pluginsDirectory, directory))));
});
module.exports = router;

View File

@@ -2,11 +2,15 @@ import yargs = require("yargs");
import fs = require("fs");
import http = require("http");
/* Define configuration parameter */
/* Define configuration parameters */
yargs
.alias("c", "config")
.describe("c", "olympus.json config location")
.string("rp");
.string("c");
yargs
.alias("v", "vite")
.describe("v", "proxy requests to vite server for development")
.boolean("v");
const args = yargs.argv;
/* Startup print */
@@ -20,7 +24,7 @@ if (fs.existsSync(args["config"])) {
httpPort = json["frontend"]["port"];
/* Load the dependencies. The app is loaded providing the configuration file location */
const app = require("./app")(args["config"]);
const app = require("./app")(args["config"], args["vite"]);
/* Normalize port */
const port = normalizePort(httpPort);