Skip to content

Commit b10a585

Browse files
fix(middleware): fix promise initialisation (#193)
fix promise initialisation GH-181
1 parent be67cb3 commit b10a585

File tree

2 files changed

+23
-22
lines changed

2 files changed

+23
-22
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/middleware/ratelimit.middleware.ts

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -54,34 +54,35 @@ export class RatelimitMiddlewareProvider implements Provider<Middleware> {
5454
}
5555

5656
// Perform rate limiting now
57-
const promise = new Promise<void>((resolve, reject) => {
58-
// First check if rate limit options available at method level
59-
const operationMetadata = metadata ? metadata.options : {};
57+
const promise = () =>
58+
new Promise<void>((resolve, reject) => {
59+
// First check if rate limit options available at method level
60+
const operationMetadata = metadata ? metadata.options : {};
6061

61-
// Create options based on global config and method level config
62-
const opts = {...this.config, ...operationMetadata};
62+
// Create options based on global config and method level config
63+
const opts = {...this.config, ...operationMetadata};
6364

64-
if (dataStore) {
65-
opts.store = dataStore;
66-
}
65+
if (dataStore) {
66+
opts.store = dataStore;
67+
}
6768

68-
opts.message = new HttpErrors.TooManyRequests(
69-
opts.message?.toString() ?? 'Method rate limit reached !',
70-
);
69+
opts.message = new HttpErrors.TooManyRequests(
70+
opts.message?.toString() ?? 'Method rate limit reached !',
71+
);
7172

72-
const limiter = RateLimit.default(opts);
73-
limiter(request, response, (err: unknown) => {
74-
if (err) {
75-
reject(err);
76-
}
77-
resolve();
73+
const limiter = RateLimit.default(opts);
74+
limiter(request, response, (err: unknown) => {
75+
if (err) {
76+
reject(err);
77+
}
78+
resolve();
79+
});
7880
});
79-
});
8081
if (enabledByDefault === true) {
81-
await promise;
82+
await promise();
8283
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
8384
} else if (enabledByDefault === false && metadata && metadata.enabled) {
84-
await promise;
85+
await promise();
8586
} else {
8687
return Promise.resolve();
8788
}

0 commit comments

Comments
 (0)