UNPKG

x-api-sdk-ts

Version:

TypeScript Library for the X (ex-twitter) API V2

39 lines 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseRateLimitHeaders = parseRateLimitHeaders; exports.isRateLimitExceeded = isRateLimitExceeded; exports.getTimeUntilReset = getTimeUntilReset; function parseRateLimitHeaders(headers) { const limit = headers.get('x-rate-limit-limit'); const remaining = headers.get('x-rate-limit-remaining'); const reset = headers.get('x-rate-limit-reset'); const udlimit = headers.get('x-user-limit-24hour-limit'); const udremaining = headers.get('x-user-limit-24hour-remaining'); const udreset = headers.get('x-user-limit-24hour-reset'); return { limit: Number(limit), remaining: Number(remaining), reset: new Date(Number(reset) * 1000), user: { daily: { limit: Number(udlimit), remaining: Number(udremaining), reset: new Date(Number(udreset) * 1000), }, }, }; } function isRateLimitExceeded(rateLimitInfo) { if (!rateLimitInfo) { return false; } return rateLimitInfo.remaining <= 0; } function getTimeUntilReset(rateLimitInfo) { if (!rateLimitInfo) { return 0; } const now = new Date(); return Math.max(0, rateLimitInfo.reset.getTime() - now.getTime()); } //# sourceMappingURL=rate-limit.js.map