Ignore linting healthcheck & exclue in rate-limiting

pull/116/head
Reginald Bondoc 1 year ago
parent 1ea75eb840
commit bcd18ab0af
No known key found for this signature in database
GPG Key ID: 554CE768E25A8C5F

@ -0,0 +1,3 @@
node_modules
built
healthcheck.js

@ -1,6 +1,3 @@
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable no-console */
/* eslint-disable no-undef */
const http = require('http');
const PORT = process.env.PORT || 4000;
const options = {
@ -20,7 +17,7 @@ const healthCheck = http.request(options, (res) => {
});
healthCheck.on('error', function (err) {
console.error(err);
console.error(`HEALTH CHECK ERROR: ${err}`);
process.exit(1);
});

@ -2,34 +2,35 @@ import rateLimit from 'express-rate-limit';
// 300 requests per 15 minutes
const apiLimiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 400,
standardHeaders: true,
legacyHeaders: false
windowMs: 15 * 60 * 1000,
max: 400,
standardHeaders: true,
legacyHeaders: false,
skip: (request) => request.path === '/healthcheck'
});
// 5 requests per hour
const signupLimiter = rateLimit({
windowMs: 60 * 60 * 1000,
max: 10,
standardHeaders: true,
legacyHeaders: false
windowMs: 60 * 60 * 1000,
max: 10,
standardHeaders: true,
legacyHeaders: false
});
// 10 requests per hour
const loginLimiter = rateLimit({
windowMs: 60 * 60 * 1000,
max: 20,
standardHeaders: true,
legacyHeaders: false
windowMs: 60 * 60 * 1000,
max: 20,
standardHeaders: true,
legacyHeaders: false
});
// 5 requests per hour
const passwordLimiter = rateLimit({
windowMs: 60 * 60 * 1000,
max: 10,
standardHeaders: true,
legacyHeaders: false
windowMs: 60 * 60 * 1000,
max: 10,
standardHeaders: true,
legacyHeaders: false
});
export { apiLimiter, signupLimiter, loginLimiter, passwordLimiter };

@ -51,9 +51,10 @@ const connectWithRetry = () => {
console.log(e);
}, 5000);
});
return mongoose.connection;
};
connectWithRetry();
const dbConnection = connectWithRetry();
app.enable('trust proxy');
app.use(cookieParser());
@ -97,7 +98,11 @@ const server = http.createServer(app);
const onSignal = () => {
console.log('Server is starting clean-up');
return Promise.all([
// your clean logic, like closing database connections
() => {
dbConnection.close(() => {
console.info('Database connection closed');
});
}
]);
};

@ -1,6 +1,3 @@
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable no-console */
/* eslint-disable no-undef */
const http = require('http');
const options = {
host: 'localhost',
@ -19,7 +16,7 @@ const healthCheck = http.request(options, (res) => {
});
healthCheck.on('error', function (err) {
console.error(err);
console.error(`HEALTH CHECK ERROR: ${err}`);
process.exit(1);
});

Loading…
Cancel
Save