Browse Source

feat: Make rate limit optional and configurable

Brett Zamir 3 years ago
parent
commit
34d122b05b
1 changed files with 9 additions and 4 deletions
  1. 9 4
      createServer.js

+ 9 - 4
createServer.js

@@ -1,6 +1,6 @@
 import express from 'express';
 import bodyParser from 'body-parser';
-import rateLimit from 'express-rate-limit';
+import expressRateLimit from 'express-rate-limit';
 
 import routes from './api/routes/bDateRoutes.js'; // importing routes
 
@@ -8,11 +8,16 @@ import routes from './api/routes/bDateRoutes.js'; // importing routes
  * @param {ExpressApp} app
  * @returns {ExpressApp}
  */
-function createServer (app = express()) {
-  app.use(rateLimit({
+function createServer ({
+  app = express(),
+  rateLimit = {
     windowMs: 1 * 60 * 1000, // 1 minute
     max: 20
-  }));
+  }
+} = {}) {
+  if (rateLimit) {
+    app.use(expressRateLimit(rateLimit));
+  }
 
   app.use(bodyParser.urlencoded({extended: true}));
   app.use(bodyParser.json());