rename back to handle

pull/306/head
Tim Robinson 2016-05-16 19:24:49 +00:00
rodzic 1e04331410
commit 833f3d1911
1 zmienionych plików z 10 dodań i 10 usunięć

20
node_modules/c9/ratelimit.js wygenerowano vendored
Wyświetl plik

@ -12,8 +12,8 @@ function ratelimit(key, duration, max) {
Object.keys(requests).forEach(expireRequests);
}, duration * 0.75);
function expireRequests(value) {
var requestsForHandle = requests[value];
function expireRequests(handle) {
var requestsForHandle = requests[handle];
var totalToSplice = 0;
var expireTime = Date.now() - duration;
/* Requests are already sorted by date as they are appended, so we just loop
@ -22,27 +22,27 @@ function ratelimit(key, duration, max) {
if (requestsForHandle[i] >= expireTime) break;
totalToSplice++;
}
requests[value].splice(0, totalToSplice);
if (requests[value].length == 0) {
delete requests[value];
requests[handle].splice(0, totalToSplice);
if (requests[handle].length == 0) {
delete requests[handle];
}
return true;
}
return function(req, res, next) {
var value = req.params[key];
var handle = req.params[key];
requests[value] = requests[value] || [];
if (requests[value].length >= max) {
if (expireRequests(value) && requests[value].length >= max) {
requests[handle] = requests[handle] || [];
if (requests[handle].length >= max) {
if (expireRequests(handle) && requests[handle].length >= max) {
var err = new error.TooManyRequests("Rate limit exceeded");
err.retryIn = Math.min(duration, 5000);
return next(err);
}
}
requests[value].push(Date.now());
requests[handle].push(Date.now());
return next();
};
}