mirror of
https://github.com/status-im/status-tutorials.git
synced 2026-08-31 12:11:10 +00:00
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
// #region Global Imports
|
|||
|
|
import next from "next";
|
||
|
|
import express from "express";
|
||
|
|
import path from "path";
|
||
|
|
import nextI18NextMiddleware from "next-i18next/middleware";
|
||
|
|
// #endregion Global Imports
|
||
|
|
|
||
|
|
// #region Local Imports
|
||
|
|
import nextI18next from "./i18n";
|
||
|
|
import routes from "./routes";
|
||
|
|
import devProxy from "./proxy";
|
||
|
|
// #endregion Local Imports
|
||
|
|
|
||
|
|
const port = parseInt(process.env.PORT || "3000", 10);
|
||
|
|
const dev = process.env.NODE_ENV !== "production";
|
||
|
|
const app = next({ dev });
|
||
|
|
const handler = routes.getRequestHandler(app);
|
||
|
|
|
||
|
|
app.prepare().then(() => {
|
||
|
|
const server = express();
|
||
|
|
|
||
|
|
app.setAssetPrefix(process.env.STATIC_PATH);
|
||
|
|
server.use(express.static(path.join(__dirname, "../public/static")));
|
||
|
|
server.use(nextI18NextMiddleware(nextI18next));
|
||
|
|
|
||
|
|
if (process.env.PROXY_MODE === "local") {
|
||
|
|
// eslint-disable-next-line global-require
|
||
|
|
const proxyMiddleware = require("http-proxy-middleware");
|
||
|
|
Object.keys(devProxy).forEach(context => {
|
||
|
|
server.use(proxyMiddleware(context, devProxy[context]));
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
server.get("*", (req, res) => handler(req, res));
|
||
|
|
|
||
|
|
server.listen(port);
|
||
|
|
|
||
|
|
// eslint-disable-next-line no-console
|
||
|
|
console.log(
|
||
|
|
`> Server listening at http://localhost:${port} as ${
|
||
|
|
dev ? "development" : process.env.NODE_ENV
|
||
|
|
}`
|
||
|
|
);
|
||
|
|
});
|