diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-01-01 11:58:16 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-01-01 11:58:16 +0900 |
| commit | ee6e022b2a523cfcd05154b2f88abb50e07104ed (patch) | |
| tree | cada081b816bf67a004830437d25185f1f979880 | |
| parent | :art: (diff) | |
| download | sharkey-ee6e022b2a523cfcd05154b2f88abb50e07104ed.tar.gz sharkey-ee6e022b2a523cfcd05154b2f88abb50e07104ed.tar.bz2 sharkey-ee6e022b2a523cfcd05154b2f88abb50e07104ed.zip | |
enhance(server): productionじゃない限りレートリミットを無効に
| -rw-r--r-- | packages/backend/src/server/api/RateLimiterService.ts | 11 |
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({ |