From e79ea6b6afab9c640c07c8979a3df90a8e9f59c7 Mon Sep 17 00:00:00 2001 From: FoxxMD Date: Wed, 15 Jul 2026 09:41:24 -0400 Subject: [PATCH] feat: Implement retry limit configuration Allow user config option to pass retryLimit for GET requests --- README.md | 6 +++++- lib/musicbrainz-api.ts | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) 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) {