From fc6f11c435cb08f599ef139a668f52c6d20a770c Mon Sep 17 00:00:00 2001 From: bhargeym Date: Tue, 24 Feb 2026 15:16:19 +0530 Subject: [PATCH 1/4] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1f822f8..7b4adcf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/objectstoreprovider", - "version": "0.8.6", + "version": "0.9.0", "description": "A cross-browser object store library", "author": "DataStack Team eleretzk@microsoft.com", "scripts": { From 4ebc11b3ae08928c1a19c10cdae43d2c7bd8b22e Mon Sep 17 00:00:00 2001 From: bhargeym Date: Tue, 24 Feb 2026 15:16:59 +0530 Subject: [PATCH 2/4] Update ObjectStoreProvider.ts --- src/ObjectStoreProvider.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ObjectStoreProvider.ts b/src/ObjectStoreProvider.ts index af79074..245e6ce 100644 --- a/src/ObjectStoreProvider.ts +++ b/src/ObjectStoreProvider.ts @@ -240,7 +240,10 @@ export abstract class DbProvider { clearAllData(): Promise { var storeNames = this._schema!!!.stores.map((store) => store.name); + return this.clearStores(storeNames); + } + clearStores(storeNames: string[]): Promise { return this.openTransaction(storeNames, true).then((trans) => { const clearers = storeNames.map((storeName) => { const store = attempt(() => { From e38355229fbc1f11589c7a47a390c012d724e20e Mon Sep 17 00:00:00 2001 From: bhargeym Date: Thu, 5 Mar 2026 11:40:30 +0530 Subject: [PATCH 3/4] Update ObjectStoreProvider.spec.ts --- src/tests/ObjectStoreProvider.spec.ts | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/tests/ObjectStoreProvider.spec.ts b/src/tests/ObjectStoreProvider.spec.ts index 8580beb..ac29be0 100644 --- a/src/tests/ObjectStoreProvider.spec.ts +++ b/src/tests/ObjectStoreProvider.spec.ts @@ -234,6 +234,57 @@ describe("ObjectStoreProvider", function () { } }); + describe("clearStores and clearAllData", () => { + const schema = { + version: 1, + stores: [ + { + name: "store1", + primaryKeyPath: "id", + }, + { + name: "store2", + primaryKeyPath: "id", + }, + ], + }; + it("should delete the specific store", async () => { + if (provName.includes("memory")) return; + + const prov = await openProvider(provName, schema, true); + await prov.put("store1", { id: "a", val: "val-store-1" }); + await prov.put("store2", { id: "a", val: "val-store-2" }); + await prov.clearStores(["store1"]); + + const data = await prov.get("store1", "a"); + assert(!data, "store1 should be cleared"); + + const data2 = await prov.get("store2", "a"); + assert.equal((data2 as TestObj)?.val, "val-store-2", "store2 should remain intact"); + + await prov.close(); + }); + + it("should delete all stores", async () => { + if (provName.includes("memory")) return; + + const prov = await openProvider(provName, schema, true); + await prov.put("store1", { id: "a", val: "val-store-1" }); + await prov.put("store2", { id: "a", val: "val-store-2" }); + + const beforeDeletion = await prov.get("store1", "a"); + assert.equal((beforeDeletion as TestObj)?.val, "val-store-1", "store1 should contain data put before clearAllData"); + + await prov.clearAllData(); + + const data = await prov.get("store1", "a"); + assert(!data, "store1 should be cleared"); + const data2 = await prov.get("store2", "a"); + assert(!data2, "store2 should be cleared"); + await prov.close(); + }); + }); + describe("Expected database closure", () => { if (provName.indexOf("indexeddbonclose") === -1) { xit("Skip expected DB closure for in-memory provider", () => { From 7e7b5c0c345deb39fae76a3fb820d61bc66a774c Mon Sep 17 00:00:00 2001 From: Bhargey Mehta Date: Sat, 7 Mar 2026 11:20:08 +0530 Subject: [PATCH 4/4] prettier --- src/tests/ObjectStoreProvider.spec.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/tests/ObjectStoreProvider.spec.ts b/src/tests/ObjectStoreProvider.spec.ts index ac29be0..cbafb91 100644 --- a/src/tests/ObjectStoreProvider.spec.ts +++ b/src/tests/ObjectStoreProvider.spec.ts @@ -260,8 +260,12 @@ describe("ObjectStoreProvider", function () { assert(!data, "store1 should be cleared"); const data2 = await prov.get("store2", "a"); - assert.equal((data2 as TestObj)?.val, "val-store-2", "store2 should remain intact"); - + assert.equal( + (data2 as TestObj)?.val, + "val-store-2", + "store2 should remain intact" + ); + await prov.close(); }); @@ -273,7 +277,11 @@ describe("ObjectStoreProvider", function () { await prov.put("store2", { id: "a", val: "val-store-2" }); const beforeDeletion = await prov.get("store1", "a"); - assert.equal((beforeDeletion as TestObj)?.val, "val-store-1", "store1 should contain data put before clearAllData"); + assert.equal( + (beforeDeletion as TestObj)?.val, + "val-store-1", + "store1 should contain data put before clearAllData" + ); await prov.clearAllData();