From 6dcd96ab06b8379b1171fab13e2f7d7a95466474 Mon Sep 17 00:00:00 2001 From: Leandro Facchinetti Date: Thu, 19 Mar 2020 10:17:38 -0400 Subject: [PATCH] . --- src/index.tsx | 80 ++++++++++++++++++++++++--------------------------- src/test.ts | 4 +-- 2 files changed, 40 insertions(+), 44 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index f0ef9e1..8eebe42 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -8,29 +8,41 @@ import { Builder, Parser } from "xml2js"; import fs from "fs"; import cryptoRandomString from "crypto-random-string"; -const webApp = express() - .use(express.static("static")) - .use(express.urlencoded({ extended: true })) - .get("/", (req, res) => - res.send( - renderHTML( - -
-
- ) +const app = express(); +if (process.env.NODE_ENV === "production") + app.use((req, res, next) => { + if ( + req.protocol !== "https" || + req.hostname !== "www.kill-the-newsletter.com" + ) + return res.redirect( + 301, + `https://www.kill-the-newsletter.com${req.originalUrl}` + ); + next(); + }); +app.use(express.static("static")); +app.use(express.urlencoded({ extended: true })); +app.get("/", (req, res) => + res.send( + renderHTML( + +
+
) ) - .post("/", (req, res) => { - const inbox: Inbox = { name: req.body.name, token: newToken() }; - fs.writeFileSync(feedPath(inbox.token), renderXML(Feed(inbox))); - res.send( - renderHTML( - - - - ) - ); - }); +); +app.post("/", (req, res) => { + const inbox: Inbox = { name: req.body.name, token: newToken() }; + fs.writeFileSync(feedPath(inbox.token), renderXML(Feed(inbox))); + res.send( + renderHTML( + + + + ) + ); +}); export const emailServer = new SMTPServer({ authOptional: true, @@ -65,29 +77,13 @@ export const emailServer = new SMTPServer({ } }); -export let developmentWebServer: Server; - +export const webServer = app.listen( + process.env.NODE_ENV === "production" ? 80 : 8000 +); if (process.env.NODE_ENV === "production") { - const productionWebApp = express() - .use((req, res, next) => { - if ( - req.protocol !== "https" || - req.hostname !== "www.kill-the-newsletter.com" - ) - return res.redirect( - 301, - `https://www.kill-the-newsletter.com${req.originalUrl}` - ); - next(); - }) - .use(webApp); - productionWebApp.listen(80); - productionWebApp.listen(443); - emailServer.listen(25); -} else { - developmentWebServer = webApp.listen(8000); - emailServer.listen(2525); + app.listen(443); } +emailServer.listen(process.env.NODE_ENV === "production" ? 25 : 2525); type Inbox = { name: string; diff --git a/src/test.ts b/src/test.ts index 4b5f947..2c91b6d 100644 --- a/src/test.ts +++ b/src/test.ts @@ -1,4 +1,4 @@ -import { developmentWebServer, emailServer, feedPath, feedEmail } from "."; +import { webServer, emailServer, feedPath, feedEmail } from "."; import { createTransport } from "nodemailer"; import fetch from "node-fetch"; import fs from "fs"; @@ -58,7 +58,7 @@ describe("receive email", () => { }); afterAll(() => { - developmentWebServer.close(); + webServer.close(); emailServer.close(() => {}); });