aboutsummaryrefslogtreecommitdiff
path: root/src/server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server.ts')
-rw-r--r--src/server.ts33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/server.ts b/src/server.ts
index ce9f049..3520958 100644
--- a/src/server.ts
+++ b/src/server.ts
@@ -17,7 +17,14 @@ const PORT: number = Number(process.env.PORT) || 4000;
app.use(morgan("dev"));
app.use(corsConfig);
-app.use(ratelimit);
+
+// CAUTION: For personal deployments, "refrain" from having an env
+// named "ANIWATCH_API_HOSTNAME". You may face rate limitting
+// and other issues if you do.
+const ISNT_PERSONAL_DEPLOYMENT = Boolean(process?.env?.ANIWATCH_API_HOSTNAME);
+if (ISNT_PERSONAL_DEPLOYMENT) {
+ app.use(ratelimit);
+}
app.use(express.static(resolve("public")));
app.get("/health", (_, res) => res.sendStatus(200));
@@ -26,18 +33,28 @@ app.use("/anime", animeRouter);
app.use(notFoundHandler);
app.use(errorHandler);
+// NOTE: this env is "required" for vercel deployments
if (!Boolean(process?.env?.IS_VERCEL_DEPLOYMENT)) {
app.listen(PORT, () => {
console.log(`⚔️ api @ http://localhost:${PORT}`);
});
- // don't sleep
- // remove the setInterval below for personal deployments
- const intervalTime = 9 * 60 * 1000; // 9mins
- setInterval(() => {
- console.log("HEALTHCHECK ;)", new Date().toLocaleString());
- https.get("https://api-aniwatch.onrender.com/health");
- }, intervalTime);
+ // NOTE: remove the `if` block below for personal deployments
+ if (ISNT_PERSONAL_DEPLOYMENT) {
+ // don't sleep
+ const intervalTime = 9 * 60 * 1000; // 9mins
+ setInterval(() => {
+ console.log("HEALTHCHECK ;)", new Date().toLocaleString());
+ https
+ .get(
+ new URL("/health", `https://${process.env.ANIWATCH_API_HOSTNAME}`)
+ .href
+ )
+ .on("error", (err) => {
+ console.error(err.message);
+ });
+ }, intervalTime);
+ }
}
export default app;