refactor
This commit is contained in:
parent
ecca0d69a4
commit
8d502eba59
|
@ -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';
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue