File tree Expand file tree Collapse file tree 5 files changed +23
-9
lines changed Expand file tree Collapse file tree 5 files changed +23
-9
lines changed Original file line number Diff line number Diff line change @@ -57,7 +57,12 @@ export class FetchTransport extends BaseTransport {
5757
5858 if ( status === Status . RateLimit ) {
5959 const now = Date . now ( ) ;
60- this . _disabledUntil = new Date ( now + parseRetryAfterHeader ( now , response . headers . get ( 'Retry-After' ) ) ) ;
60+ /**
61+ * "The name is case-insensitive."
62+ * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get
63+ */
64+ const retryAfterHeader = response . headers . get ( 'Retry-After' ) ;
65+ this . _disabledUntil = new Date ( now + parseRetryAfterHeader ( now , retryAfterHeader ) ) ;
6166 logger . warn ( `Too many requests, backing off till: ${ this . _disabledUntil } ` ) ;
6267 }
6368
Original file line number Diff line number Diff line change @@ -41,7 +41,12 @@ export class XHRTransport extends BaseTransport {
4141
4242 if ( status === Status . RateLimit ) {
4343 const now = Date . now ( ) ;
44- this . _disabledUntil = new Date ( now + parseRetryAfterHeader ( now , request . getResponseHeader ( 'Retry-After' ) ) ) ;
44+ /**
45+ * "The search for the header name is case-insensitive."
46+ * https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getResponseHeader
47+ */
48+ const retryAfterHeader = request . getResponseHeader ( 'Retry-After' ) ;
49+ this . _disabledUntil = new Date ( now + parseRetryAfterHeader ( now , retryAfterHeader ) ) ;
4550 logger . warn ( `Too many requests, backing off till: ${ this . _disabledUntil } ` ) ;
4651 }
4752
Original file line number Diff line number Diff line change @@ -106,9 +106,13 @@ export abstract class BaseTransport implements Transport {
106106 } else {
107107 if ( status === Status . RateLimit ) {
108108 const now = Date . now ( ) ;
109- let header = res . headers ? res . headers [ 'Retry-After' ] : '' ;
110- header = Array . isArray ( header ) ? header [ 0 ] : header ;
111- this . _disabledUntil = new Date ( now + parseRetryAfterHeader ( now , header ) ) ;
109+ /**
110+ * "Key-value pairs of header names and values. Header names are lower-cased."
111+ * https://nodejs.org/api/http.html#http_message_headers
112+ */
113+ let retryAfterHeader = res . headers ? res . headers [ 'retry-after' ] : '' ;
114+ retryAfterHeader = ( Array . isArray ( retryAfterHeader ) ? retryAfterHeader [ 0 ] : retryAfterHeader ) as string ;
115+ this . _disabledUntil = new Date ( now + parseRetryAfterHeader ( now , retryAfterHeader ) ) ;
112116 logger . warn ( `Too many requests, backing off till: ${ this . _disabledUntil } ` ) ;
113117 }
114118
Original file line number Diff line number Diff line change @@ -87,11 +87,11 @@ describe('HTTPTransport', () => {
8787 }
8888 } ) ;
8989
90- test ( 'back-off using Retry-After header' , async ( ) => {
90+ test ( 'back-off using retry-after header' , async ( ) => {
9191 const retryAfterSeconds = 10 ;
9292 mockReturnCode = 429 ;
9393 mockHeaders = {
94- 'Retry-After ' : retryAfterSeconds ,
94+ 'retry-after ' : retryAfterSeconds ,
9595 } ;
9696 const transport = createTransport ( { dsn } ) ;
9797
Original file line number Diff line number Diff line change @@ -93,11 +93,11 @@ describe('HTTPSTransport', () => {
9393 }
9494 } ) ;
9595
96- test ( 'back-off using Retry-After header' , async ( ) => {
96+ test ( 'back-off using retry-after header' , async ( ) => {
9797 const retryAfterSeconds = 10 ;
9898 mockReturnCode = 429 ;
9999 mockHeaders = {
100- 'Retry-After ' : retryAfterSeconds ,
100+ 'retry-after ' : retryAfterSeconds ,
101101 } ;
102102 const transport = createTransport ( { dsn } ) ;
103103
You can’t perform that action at this time.
0 commit comments