/* eslint-disable @typescript-eslint/no-var-requires */ export {}; import express, { Request, Response, NextFunction, ErrorRequestHandler } from "express"; import path = require("path"); // const passportSetup = require("../../src/server/config/passport-setup"); // import passport = require("passport"); require("dotenv/config"); const app = express(); const cookieParser = require("cookie-parser"); const cors = require("cors"); // disables 'powered by express' header app.disable('x-powered-by') // only allow CORS from react front end declare const MAIN_WINDOW_WEBPACK_ENTRY: string; const reactOrigin = MAIN_WINDOW_WEBPACK_ENTRY.substring(0, MAIN_WINDOW_WEBPACK_ENTRY.lastIndexOf("/")) const corsOptions = { origin: reactOrigin} app.use(cors(corsOptions)); // Bring in routes const authRoute = require('../../src/server/routes/auth-route'); const apiRoute = require('../../src/server/routes/api-route'); const dockerRoute = require('../../src/server/routes/docker-route'); const configRoute = require("../../src/server/routes/config-route"); // Body Parsing Middleware app.use(express.json()); app.use(express.urlencoded({ extended: false })); // app.use(passport.initialize()); app.use(cookieParser()); // Use routes app.use('/auth', authRoute); app.use('/api', apiRoute); app.use('/docker', dockerRoute); app.use("/config", configRoute); // Serve static files app.use(express.static("assets")); // Home endpoint app.get("/", (req: Request, res: Response) => res.sendFile(path.resolve(__dirname, "../../src/index.html")) ); // Handle redirections app.get("*", (req: Request, res: Response) => res.sendStatus(200)); // Failed auth redirect app.get("/fail", (req: Request, res: Response) => res.status(200).send("❌ FAILURE TO AUTHENTICATE ❌") ); // Global Error handler app.use( ( err: ErrorRequestHandler, req: Request, res: Response, next: NextFunction ) => { // Set up default error const defaultError = { log: "Error caught in global error handler", status: 500, msg: { err, }, }; // Update default error message with provided error if there is one const output = Object.assign(defaultError, err); console.log(output.log); res.send(output.msg); } ); const PORT = 3001; app.listen(PORT, () => console.log(`Server running on port ${PORT}`));