From e477242f168d032e4a748bc44ba971ad995efbbf Mon Sep 17 00:00:00 2001 From: Sirttas Date: Wed, 22 May 2024 10:12:50 +0200 Subject: [PATCH] esi rate limit --- package-lock.json | 9 +++++++++ package.json | 1 + src/service.ts | 5 +++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4f34a5e..101bc24 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@vueuse/core": "^10.2.1", "@vueuse/integrations": "^10.2.1", "axios": "^1.4.0", + "axios-rate-limit": "^1.3.1", "loglevel": "^1.8.1", "loglevel-plugin-prefix": "^0.8.4", "oidc-client-ts": "^3.0.1", @@ -1364,6 +1365,14 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/axios-rate-limit": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/axios-rate-limit/-/axios-rate-limit-1.3.1.tgz", + "integrity": "sha512-jt5E4FKY8Crqpe8RcyKZUHR9aiNHFg2L9oM7DqeuYj1oj0pV9AJWUhvn2Z9xMwGMnU6VRBEcZJFmW7ruiVx4Hw==", + "peerDependencies": { + "axios": "*" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", diff --git a/package.json b/package.json index 87b28ce..5a9a8df 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@vueuse/core": "^10.2.1", "@vueuse/integrations": "^10.2.1", "axios": "^1.4.0", + "axios-rate-limit": "^1.3.1", "loglevel": "^1.8.1", "loglevel-plugin-prefix": "^0.8.4", "oidc-client-ts": "^3.0.1", diff --git a/src/service.ts b/src/service.ts index 62f3d6b..f6f6fa6 100644 --- a/src/service.ts +++ b/src/service.ts @@ -1,4 +1,5 @@ import axios, { AxiosInstance } from 'axios'; +import rateLimit from 'axios-rate-limit'; import log from 'loglevel'; export const logResource = (a: AxiosInstance) => { @@ -14,11 +15,11 @@ export const logResource = (a: AxiosInstance) => { }); } -export const esiAxiosInstance = axios.create({ +export const esiAxiosInstance = rateLimit(axios.create({ baseURL: import.meta.env.VITE_ESI_URL, headers: { 'Accept': 'application/json', "Content-Type": "application/json" }, -}) +}), { maxRPS: 10 }) logResource(esiAxiosInstance)