UNPKG

1.15 kBJavaScriptView Raw
1import { requestMethods } from '../core/constants.js';
2export const normalizeRequestMethod = (input) => requestMethods.includes(input) ? input.toUpperCase() : input;
3const retryMethods = ['get', 'put', 'head', 'delete', 'options', 'trace'];
4const retryStatusCodes = [408, 413, 429, 500, 502, 503, 504];
5const retryAfterStatusCodes = [413, 429, 503];
6const defaultRetryOptions = {
7 limit: 2,
8 methods: retryMethods,
9 statusCodes: retryStatusCodes,
10 afterStatusCodes: retryAfterStatusCodes,
11 maxRetryAfter: Number.POSITIVE_INFINITY,
12};
13export const normalizeRetryOptions = (retry = {}) => {
14 if (typeof retry === 'number') {
15 return {
16 ...defaultRetryOptions,
17 limit: retry,
18 };
19 }
20 if (retry.methods && !Array.isArray(retry.methods)) {
21 throw new Error('retry.methods must be an array');
22 }
23 if (retry.statusCodes && !Array.isArray(retry.statusCodes)) {
24 throw new Error('retry.statusCodes must be an array');
25 }
26 return {
27 ...defaultRetryOptions,
28 ...retry,
29 afterStatusCodes: retryAfterStatusCodes,
30 };
31};
32//# sourceMappingURL=normalize.js.map
\No newline at end of file