summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-01 11:58:16 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-01-01 11:58:16 +0900
commitee6e022b2a523cfcd05154b2f88abb50e07104ed (patch)
treecada081b816bf67a004830437d25185f1f979880 /packages/backend/src
parent:art: (diff)
downloadsharkey-ee6e022b2a523cfcd05154b2f88abb50e07104ed.tar.gz
sharkey-ee6e022b2a523cfcd05154b2f88abb50e07104ed.tar.bz2
sharkey-ee6e022b2a523cfcd05154b2f88abb50e07104ed.zip
enhance(server): productionじゃない限りレートリミットを無効に
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/server/api/RateLimiterService.ts11
1 files changed, 8 insertions, 3 deletions
diff --git a/packages/backend/src/server/api/RateLimiterService.ts b/packages/backend/src/server/api/RateLimiterService.ts
index 94a15f94bb..c893b60baf 100644
--- a/packages/backend/src/server/api/RateLimiterService.ts
+++ b/packages/backend/src/server/api/RateLimiterService.ts
@@ -4,12 +4,13 @@ import Redis from 'ioredis';
import { DI } from '@/di-symbols.js';
import type Logger from '@/logger.js';
import { LoggerService } from '@/core/LoggerService.js';
-import type { IEndpointMeta } from './endpoints.js';
import { bindThis } from '@/decorators.js';
+import type { IEndpointMeta } from './endpoints.js';
@Injectable()
export class RateLimiterService {
private logger: Logger;
+ private disabled = false;
constructor(
@Inject(DI.redis)
@@ -18,13 +19,17 @@ export class RateLimiterService {
private loggerService: LoggerService,
) {
this.logger = this.loggerService.getLogger('limiter');
+
+ if (process.env.NODE_ENV !== 'production') {
+ this.disabled = true;
+ }
}
@bindThis
public limit(limitation: IEndpointMeta['limit'] & { key: NonNullable<string> }, actor: string) {
return new Promise<void>((ok, reject) => {
- if (process.env.NODE_ENV === 'test') ok();
-
+ if (this.disabled) ok();
+
// Short-term limit
const min = (): void => {
const minIntervalLimiter = new Limiter({