From b3020f06e44957c2e77e90efbf2c687dac344a81 Mon Sep 17 00:00:00 2001 From: Pavel Pashov Date: Tue, 12 Aug 2025 16:46:48 +0300 Subject: [PATCH] fix: parse database from Redis URL --- packages/client/lib/client/index.spec.ts | 8 ++++++++ packages/client/lib/client/index.ts | 10 ++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/client/lib/client/index.spec.ts b/packages/client/lib/client/index.spec.ts index 0aed98450d..9c33f2ce84 100644 --- a/packages/client/lib/client/index.spec.ts +++ b/packages/client/lib/client/index.spec.ts @@ -167,6 +167,14 @@ describe('Client', () => { } ); }); + + it('DB in URL should be parsed', async () => { + const client = RedisClient.create({ + url: 'redis://user:secret@localhost:6379/5' + }); + + assert.equal(client?.options?.database, 5); + }) }); describe('parseOptions', () => { diff --git a/packages/client/lib/client/index.ts b/packages/client/lib/client/index.ts index ccad872e22..1a27ea8898 100644 --- a/packages/client/lib/client/index.ts +++ b/packages/client/lib/client/index.ts @@ -496,8 +496,14 @@ export default class RedisClient< this._commandOptions = options.commandOptions; } - if (options) { - return RedisClient.parseOptions(options); + if (options?.url) { + const parsedOptions = RedisClient.parseOptions(options); + + if (parsedOptions?.database) { + this._self.#selectedDB = parsedOptions.database; + } + + return parsedOptions; } return options;