express-rate-limiter-ts
Version:
A powerful, flexible and modern rate limiter middleware for Express.js written in TypeScript.
64 lines (63 loc) • 2.97 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DummyStore = void 0;
// DummyStore: Gerçek limitleme yapmaz, sadece interface'in nasıl uygulanacağını gösterir.
// Her fonksiyonun başına ve önemli satırlara açıklama eklenmiştir.
class DummyStore {
// Sayaç artırma fonksiyonu. Her zaman limiti aşmamış gibi döner.
incr(key) {
return __awaiter(this, void 0, void 0, function* () {
// Her zaman 0 istek ve aşılmamış limit döndürülür.
return {
current: 0, // Şu anki istek sayısı
remaining: 0, // Kalan istek (dummy olduğu için 0)
resetTime: new Date(Date.now() + 60000), // 1 dakika sonra resetlenir gibi göster
exceeded: false, // Hiçbir zaman limit aşılmaz
};
});
}
// Sayaç okuma fonksiyonu. Her zaman 0 döner.
get(key) {
return __awaiter(this, void 0, void 0, function* () {
return { count: 0, resetTime: Date.now() + 60000 };
});
}
// Sayaç sıfırlama fonksiyonu. Dummy olduğu için işlem yapmaz.
reset(key) {
return __awaiter(this, void 0, void 0, function* () { });
}
// İstatistik kaydı. Dummy olduğu için işlem yapmaz.
recordStat(route) {
return __awaiter(this, void 0, void 0, function* () { });
}
// İstatistikleri döndürür. Dummy olduğu için boş nesne döner.
getStats() {
return __awaiter(this, void 0, void 0, function* () { return {}; });
}
// Ban fonksiyonu. Dummy olduğu için işlem yapmaz.
ban(key, seconds, reason) {
return __awaiter(this, void 0, void 0, function* () { });
}
// Ban kontrolü. Her zaman banlı değilmiş gibi döner.
isBanned(key) {
return __awaiter(this, void 0, void 0, function* () { return { banned: false }; });
}
// Banlı anahtarları döndürür. Dummy olduğu için boş nesne döner.
getBanned() {
return __awaiter(this, void 0, void 0, function* () { return {}; });
}
// Ban kaldırma fonksiyonu. Dummy olduğu için işlem yapmaz.
unban(key) {
return __awaiter(this, void 0, void 0, function* () { });
}
}
exports.DummyStore = DummyStore;