x-api-sdk-ts
Version:
TypeScript Library for the X (ex-twitter) API V2
39 lines • 1.35 kB
JavaScript
;
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