diff --git a/src/utils.ts b/src/utils.ts index 4c1179c8..1025496f 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -3,11 +3,16 @@ import type { Storage, StorageValue } from "./types"; type StorageKeys = Array; const storageKeyProperties: StorageKeys = [ + "has", "hasItem", + "get", "getItem", "getItemRaw", + "set", "setItem", "setItemRaw", + "del", + "remove", "removeItem", "getMeta", "setMeta", diff --git a/test/storage.test.ts b/test/storage.test.ts index 498befdb..64f6f736 100644 --- a/test/storage.test.ts +++ b/test/storage.test.ts @@ -203,4 +203,23 @@ describe("Regression", () => { expect(setItem).toHaveBeenCalledTimes(0); expect(setItems).toHaveBeenCalledTimes(1); }); + + it("prefixed storage supports aliases", async () => { + const storage = createStorage(); + const pStorage = prefixStorage(storage, "foo"); + + await pStorage.set("x", "foo"); + await pStorage.set("y", "bar"); + + expect(await pStorage.get("x")).toBe("foo"); + expect(await pStorage.get("x")).toBe("foo"); + expect(await pStorage.has("x")).toBe(true); + expect(await pStorage.get("y")).toBe("bar"); + + await pStorage.del("x"); + expect(await pStorage.has("x")).toBe(false); + + await pStorage.remove("y"); + expect(await pStorage.has("y")).toBe(false); + }); });