UNPKG

azure-devops-node-api

Version:
46 lines (45 loc) 1.68 kB
"use strict"; // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.extractRateLimitHeaders = void 0; /** * Extracts rate limit headers from the provided headers and attaches them to the target object * @param headers - source headers * @param target - target object to attach rate limit info to */ function extractRateLimitHeaders(headers, target) { if (!headers || !target) { return; } const rateLimit = {}; let hasRateLimitHeader = false; if (headers['x-ratelimit-resource']) { rateLimit.resource = headers['x-ratelimit-resource']; hasRateLimitHeader = true; } if (headers['x-ratelimit-delay']) { rateLimit.delay = parseFloat(headers['x-ratelimit-delay']); hasRateLimitHeader = true; } if (headers['x-ratelimit-limit']) { rateLimit.limit = parseInt(headers['x-ratelimit-limit'], 10); hasRateLimitHeader = true; } if (headers['x-ratelimit-remaining']) { rateLimit.remaining = parseInt(headers['x-ratelimit-remaining'], 10); hasRateLimitHeader = true; } if (headers['x-ratelimit-reset']) { rateLimit.reset = parseInt(headers['x-ratelimit-reset'], 10); hasRateLimitHeader = true; } if (headers['retry-after']) { rateLimit.retryAfter = parseInt(headers['retry-after'], 10); hasRateLimitHeader = true; } if (hasRateLimitHeader) { target.rateLimit = rateLimit; } } exports.extractRateLimitHeaders = extractRateLimitHeaders;