aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRitesh Ghosh <[email protected]>2024-03-12 22:57:39 +0530
committerRitesh Ghosh <[email protected]>2024-03-12 22:57:39 +0530
commit8565619f3ab2616b7fbeca7681f063730693a82e (patch)
treebce231de085e9cbd204ac7134d878a9e9b772370 /src
parentcccc00602b9929c4696bb6f877ade7e94add12c9 (diff)
downloadaniwatch-api-8565619f3ab2616b7fbeca7681f063730693a82e.tar.xz
aniwatch-api-8565619f3ab2616b7fbeca7681f063730693a82e.zip
feat: disabled `ratelimit` & `dont_sleep` for personal deployments
Diffstat (limited to 'src')
-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;