UNPKG

@replyke/express

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

24 lines (23 loc) 882 B
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.rateLimiter = void 0; const express_rate_limit_1 = __importDefault(require("express-rate-limit")); const ms_1 = __importDefault(require("ms")); const rateLimiter = (window, max, message) => { const windowMs = (0, ms_1.default)(window); // Convert human-readable time to milliseconds if (!windowMs) { throw new Error(`Invalid time format: ${window}`); } return (0, express_rate_limit_1.default)({ windowMs, max, message: message ?? "Too many attempts, please try again shortly", skip: (req) => { return req.isMaster || req.isService; }, }); }; exports.rateLimiter = rateLimiter;