diff --git a/README.md b/README.md index 595d6b6e..95fbd21a 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,11 @@ const config = { // Optional: Set max number of request with X seconds // (default: 15 requests every 18 seconds) - rateLimit: [15, 18] + rateLimit: [15, 18], + + // Optional: Set number of request retries for GET requests + // Default 10 + retryLimit: 10 }; const mbApi = new MusicBrainzApi(config); diff --git a/lib/musicbrainz-api.ts b/lib/musicbrainz-api.ts index d981f087..6fe2847b 100644 --- a/lib/musicbrainz-api.ts +++ b/lib/musicbrainz-api.ts @@ -160,6 +160,12 @@ export interface IMusicBrainzConfig { * Default is [15, 18], which allows up to 15 requests every 18 seconds */ rateLimit?: [number, number] + /** + * Number of times to retry a GET request + * + * Default is 10 + */ + retryLimit?: number } interface IInternalConfig extends IMusicBrainzConfig { @@ -264,7 +270,7 @@ export class MusicBrainzApi { const response = await this.httpClient.get(`/ws/2${relUrl}`, { query, - retryLimit: 10 + retryLimit: this.config.retryLimit ?? 10 }); if(response.status === 400) {