From cc3ebb7ffe18d02b3e1ab88a781106b8f1f96f34 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Wed, 8 Feb 2023 14:17:59 +0100 Subject: [PATCH] fix: strip query param from keys --- src/utils.ts | 6 +++++- test/drivers/utils.ts | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/utils.ts b/src/utils.ts index 415a5540..40b76804 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -41,7 +41,11 @@ export function normalizeKey(key?: string) { if (!key) { return ""; } - return key.replace(/[/\\]/g, ":").replace(/:+/g, ":").replace(/^:|:$/g, ""); + return key + .split("?")[0] + .replace(/[/\\]/g, ":") + .replace(/:+/g, ":") + .replace(/^:|:$/g, ""); } export function joinKeys(...keys: string[]) { diff --git a/test/drivers/utils.ts b/test/drivers/utils.ts index cb14c00f..2adb0086 100644 --- a/test/drivers/utils.ts +++ b/test/drivers/utils.ts @@ -33,13 +33,15 @@ export function testDriver(opts: TestOptions) { it("setItem", async () => { await ctx.storage.setItem("s1:a", "test_data"); await ctx.storage.setItem("s2:a", "test_data"); + await ctx.storage.setItem("s3:a?q=1", "test_data"); expect(await ctx.storage.hasItem("s1:a")).toBe(true); expect(await ctx.storage.getItem("s1:a")).toBe("test_data"); + expect(await ctx.storage.getItem("s3:a?q=2")).toBe("test_data"); }); it("getKeys", async () => { expect(await ctx.storage.getKeys().then((k) => k.sort())).toMatchObject( - ["s1:a", "s2:a"].sort() + ["s1:a", "s2:a", "s3:a"].sort() ); expect(await ctx.storage.getKeys("s1").then((k) => k.sort())).toMatchObject( ["s1:a"].sort()