This commit is contained in:
syuilo 2022-01-21 17:15:14 +09:00
parent ecca0d69a4
commit 8d502eba59
2 changed files with 5 additions and 5 deletions

View file

@ -1,5 +1,5 @@
import { performance } from 'perf_hooks';
import limiter from './limiter';
import { limiter } from './limiter';
import { User } from '@/models/entities/user';
import endpoints from './endpoints';
import { ApiError } from './error';

View file

@ -7,8 +7,8 @@ import Logger from '@/services/logger';
const logger = new Logger('limiter');
export default (endpoint: IEndpoint, user: User) => new Promise<void>((ok, reject) => {
const limitation = endpoint.meta.limit!;
export const limiter = (endpoint: IEndpoint & { meta: { limit: NonNullable<IEndpoint['meta']['limit']> } }, user: User) => new Promise<void>((ok, reject) => {
const limitation = endpoint.meta.limit;
const key = Object.prototype.hasOwnProperty.call(limitation, 'key')
? limitation.key
@ -30,7 +30,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise<void>((ok, rejec
}
// Short-term limit
function min() {
function min(): void {
const minIntervalLimiter = new Limiter({
id: `${user.id}:${key}:min`,
duration: limitation.minInterval,
@ -58,7 +58,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise<void>((ok, rejec
}
// Long term limit
function max() {
function max(): void {
const limiter = new Limiter({
id: `${user.id}:${key}`,
duration: limitation.duration,