Yam Shargil
Yam Shargil

Reputation: 565

Chrome Extension - Storage Set Specific Key In Object Without Override The Rest Of The Object?

I have this obejct in storage

chrome.storage.sync.set({
        user: {
            extensionMode: "filter",
            list: ["42", "42", "42"]
        }
    }, () => { });

Now, in a different place, I want to change the extensionMode:

chrome.storage.sync.set({user: { extensionMode: wantedMode }}, () => { });

That's overwriting user.list . How can I change just extensionMode without overwriting the rest of user?

Upvotes: 0

Views: 171

Answers (1)

Yam Shargil
Yam Shargil

Reputation: 565

My best answer so fat is this:

chrome.storage.sync.get("user", (res) => {
    let updatedUser = res.user;
    updatedUser.extensionMode = wantedMode;
    chrome.storage.sync.set({ user: updatedUser }, () => {
        // Code
    });
});

It works! Just a bit messy and makes the callback hell worse :
Any other ideas?

Upvotes: 1

Related Questions