Skip to content

Commit 29a07e7

Browse files
authored
Merge pull request #29 from Intevel/main
2 parents df8b41b + 846aec9 commit 29a07e7

File tree

3 files changed

+6
-11
lines changed

3 files changed

+6
-11
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
"@nozomuikuta/h3-cors": "^0.1.5",
2828
"@nuxt/kit": "^3.0.0-rc.11",
2929
"limiter": "^2.1.0",
30-
"memory-cache": "^0.2.0",
3130
"xss": "^1.0.14"
3231
},
3332
"devDependencies": {

src/runtime/server/middleware/rateLimiter.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
import { RateLimiter } from "limiter";
22
import { defineEventHandler, getRequestHeader, sendError, createError } from 'h3'
33
import { useRuntimeConfig } from '#imports'
4-
import cache from 'memory-cache'
54

65
const securityConfig = useRuntimeConfig().security
6+
const storage = useStorage()
77

88
export default defineEventHandler(async (event) => {
99
const ip = getRequestHeader(event, 'x-forwarded-for')
10+
1011
let cachedLimiter;
11-
if (!cache.get(ip)) {
12+
if (!storage.getItem(ip)) {
1213
// TODO: send rate limiting configuration from the module
1314
cachedLimiter = new RateLimiter(securityConfig.rateLimiter.value)
14-
cache.put(ip, cachedLimiter, 10000)
15+
storage.setItem(ip, cachedLimiter)
1516
} else {
16-
cachedLimiter = cache.get(ip)
17+
cachedLimiter = storage.getItem(ip)
1718
if (cachedLimiter.getTokensRemaining() > 1) {
1819
cachedLimiter.removeTokens(1)
19-
cache.put(ip, cachedLimiter, 10000)
20+
storage.setItem(ip, cachedLimiter)
2021
} else {
2122
const error = createError({ statusCode: 429, statusMessage: 'Too Many Requests' })
2223
sendError(event, error)

yarn.lock

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3661,11 +3661,6 @@ [email protected]:
36613661
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
36623662
integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
36633663

3664-
memory-cache@^0.2.0:
3665-
version "0.2.0"
3666-
resolved "https://registry.yarnpkg.com/memory-cache/-/memory-cache-0.2.0.tgz#7890b01d52c00c8ebc9d533e1f8eb17e3034871a"
3667-
integrity sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==
3668-
36693664
memory-fs@^0.5.0:
36703665
version "0.5.0"
36713666
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"

0 commit comments

Comments
 (0)