mirror of
https://github.com/bitwarden/browser.git
synced 2025-01-25 21:51:30 +01:00
[bug] Allow for toggling the account cache (#674)
* [bug] Allow for toggling the account cache * Add missing conditional * Ran prettier
This commit is contained in:
parent
609baece05
commit
240fc154ab
@ -76,7 +76,8 @@ export class StateService<
|
||||
protected secureStorageService: StorageService,
|
||||
protected logService: LogService,
|
||||
protected stateMigrationService: StateMigrationService,
|
||||
protected stateFactory: StateFactory<TGlobalState, TAccount>
|
||||
protected stateFactory: StateFactory<TGlobalState, TAccount>,
|
||||
protected useAccountCache: boolean = true
|
||||
) {
|
||||
this.accountDiskCache = new Map<string, TAccount>();
|
||||
}
|
||||
@ -2163,9 +2164,11 @@ export class StateService<
|
||||
return null;
|
||||
}
|
||||
|
||||
const cachedAccount = this.accountDiskCache.get(options.userId);
|
||||
if (cachedAccount != null) {
|
||||
return cachedAccount;
|
||||
if (this.useAccountCache) {
|
||||
const cachedAccount = this.accountDiskCache.get(options.userId);
|
||||
if (cachedAccount != null) {
|
||||
return cachedAccount;
|
||||
}
|
||||
}
|
||||
|
||||
const account = options?.useSecureStorage
|
||||
@ -2176,7 +2179,9 @@ export class StateService<
|
||||
))
|
||||
: await this.storageService.get<TAccount>(options.userId, options);
|
||||
|
||||
this.accountDiskCache.set(options.userId, account);
|
||||
if (this.useAccountCache) {
|
||||
this.accountDiskCache.set(options.userId, account);
|
||||
}
|
||||
return account;
|
||||
}
|
||||
|
||||
@ -2206,7 +2211,10 @@ export class StateService<
|
||||
: this.storageService;
|
||||
|
||||
await storageLocation.save(`${options.userId}`, account, options);
|
||||
this.accountDiskCache.delete(options.userId);
|
||||
|
||||
if (this.useAccountCache) {
|
||||
this.accountDiskCache.delete(options.userId);
|
||||
}
|
||||
}
|
||||
|
||||
protected async saveAccountToMemory(account: TAccount): Promise<void> {
|
||||
@ -2407,7 +2415,9 @@ export class StateService<
|
||||
|
||||
protected removeAccountFromMemory(userId: string = this.state.activeUserId): void {
|
||||
delete this.state.accounts[userId];
|
||||
this.accountDiskCache.delete(userId);
|
||||
if (this.useAccountCache) {
|
||||
this.accountDiskCache.delete(userId);
|
||||
}
|
||||
}
|
||||
|
||||
protected async pruneInMemoryAccounts() {
|
||||
|
Loading…
Reference in New Issue
Block a user