Skip to content

Commit 5ed548b

Browse files
authored
refactor ManagedStorage for save get (#727)
1 parent 7f63a01 commit 5ed548b

File tree

4 files changed

+24
-16
lines changed

4 files changed

+24
-16
lines changed

src/background.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ async function uploadBackup(service: string) {
508508
chrome.runtime.onInstalled.addListener(async (details) => {
509509
if (details.reason !== "install") {
510510
return;
511-
} else if (await ManagedStorage.get("disableInstallHelp")) {
511+
} else if (await ManagedStorage.get("disableInstallHelp", false)) {
512512
return;
513513
}
514514

@@ -565,7 +565,9 @@ chrome.commands.onCommand.addListener(async (command: string) => {
565565
});
566566

567567
async function setAutolock() {
568-
const enforcedAutolock = Number(await ManagedStorage.get("enforceAutolock"));
568+
const enforcedAutolock = Number(
569+
await ManagedStorage.get("enforceAutolock", false)
570+
);
569571

570572
if (enforcedAutolock && enforcedAutolock > 0) {
571573
autolockTimeout = window.setTimeout(() => {

src/definitions/module-interface.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ interface MenuState {
3636
smartFilter: boolean;
3737
theme: string;
3838
backupDisabled: boolean;
39-
storageArea: string;
39+
storageArea: "sync" | "local";
4040
}
4141

4242
interface StyleState {

src/models/storage.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import * as uuid from "uuid/v4";
44

55
export class BrowserStorage {
66
private static async getStorageLocation() {
7-
const managedLocation = await ManagedStorage.get("storageArea");
7+
const managedLocation = await ManagedStorage.get<"sync" | "local">(
8+
"storageArea"
9+
);
810
if (managedLocation === "sync" || managedLocation === "local") {
911
return new Promise((resolve) => {
1012
if (localStorage.storageLocation !== managedLocation) {
@@ -654,18 +656,20 @@ export class EntryStorage {
654656
}
655657

656658
export class ManagedStorage {
657-
static get(key: string) {
658-
return new Promise((resolve: (result: boolean | string) => void) => {
659+
static get<T>(key: string): T | undefined;
660+
static get<T>(key: string, defaultValue: T): T;
661+
static get<T>(key: string, defaultValue?: T) {
662+
return new Promise((resolve: (result: T | undefined) => void) => {
659663
chrome.storage.managed.get((data) => {
660664
if (chrome.runtime.lastError) {
661-
return resolve(false);
665+
return resolve(defaultValue);
662666
}
663667
if (data) {
664668
if (data[key]) {
665669
return resolve(data[key]);
666670
}
667671
}
668-
return resolve(false);
672+
return resolve(defaultValue);
669673
});
670674
});
671675
}

src/store/Menu.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ export class Menu implements Module {
1212
localStorage.theme ||
1313
(localStorage.highContrast === "true" ? "accessibility" : "normal"),
1414
autolock: Number(localStorage.autolock) || 0,
15-
backupDisabled: await ManagedStorage.get("disableBackup"),
16-
exportDisabled: await ManagedStorage.get("disableExport"),
17-
enforcePassword: await ManagedStorage.get("enforcePassword"),
18-
enforceAutolock: await ManagedStorage.get("enforceAutolock"),
19-
storageArea: await ManagedStorage.get("storageArea"),
20-
feedbackURL: await ManagedStorage.get("feedbackURL"),
21-
passwordPolicy: await ManagedStorage.get("passwordPolicy"),
22-
passwordPolicyHint: await ManagedStorage.get("passwordPolicyHint"),
15+
backupDisabled: await ManagedStorage.get("disableBackup", false),
16+
exportDisabled: await ManagedStorage.get("disableExport", false),
17+
enforcePassword: await ManagedStorage.get("enforcePassword", false),
18+
enforceAutolock: await ManagedStorage.get("enforceAutolock", false),
19+
storageArea: await ManagedStorage.get<"sync" | "local">("storageArea"),
20+
feedbackURL: await ManagedStorage.get<string>("feedbackURL"),
21+
passwordPolicy: await ManagedStorage.get<string>("passwordPolicy"),
22+
passwordPolicyHint: await ManagedStorage.get<string>(
23+
"passwordPolicyHint"
24+
),
2325
},
2426
mutations: {
2527
setZoom: (state: MenuState, zoom: number) => {

0 commit comments

Comments
 (0)