From 542b4447c5d17c5b77823f34bc5bece60721a88d Mon Sep 17 00:00:00 2001 From: Tanya Byrne Date: Tue, 18 Aug 2020 13:43:14 +0100 Subject: [PATCH] updating slightly - fixed a few bugs as was bypassing errors say if auth failed --- api/package.json | 2 +- api/src/middleware/rate-limiter.ts | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/api/package.json b/api/package.json index 474ec85580..d7c87ed5fd 100644 --- a/api/package.json +++ b/api/package.json @@ -52,7 +52,7 @@ }, "scripts": { "start": "cross-env NODE_ENV=production node dist/server.js", - "build": "rm -rf dist && tsc -b && copyfiles \"src/**/*.*\" -e \"src/**/*.ts\" -u 1 dist", + "build": "rm -rf dist 2>nul && tsc -b && copyfiles \"src/**/*.*\" -e \"src/**/*.ts\" -u 1 dist", "dev": "cross-env NODE_ENV=development LOG_LEVEL=trace ts-node-dev --files src/server.ts --respawn --watch \"src/**/*.ts\" --transpile-only", "cli": "cross-env NODE_ENV=development ts-node --script-mode --transpile-only src/cli/index.ts", "prepublishOnly": "npm run build", diff --git a/api/src/middleware/rate-limiter.ts b/api/src/middleware/rate-limiter.ts index d037752cb7..723d5d716b 100644 --- a/api/src/middleware/rate-limiter.ts +++ b/api/src/middleware/rate-limiter.ts @@ -41,12 +41,15 @@ const rateLimiter: RequestHandler = asyncHandler(async (req, res, next) => { try { await rateLimiterRedis.consume(req.ip); - } catch (err) { - // If there is no error, rateLimiterRedis promise rejected with number of ms before next request allowed - const secs = Math.round(err.msBeforeNext / 1000) || 1; - res.set('Retry-After', String(secs)); - res.status(429).send('Too Many Requests'); - throw new HitRateLimitException(`Too many requests, retry after ${secs}.`); + } catch (rejRes) { + if (rejRes instanceof Error) { + throw Error; + } else { + // If there is no error, rateLimiterRedis promise rejected with number of ms before next request allowed + const secs = Math.round(rejRes.msBeforeNext / 1000) || 1; + res.set('Retry-After', String(secs)); + throw new HitRateLimitException(`Too many requests, retry after ${secs}.`); + } } return next();