1
0
mirror of https://github.com/bitwarden/browser synced 2024-12-26 09:54:35 +01:00

Add support for removing values in migration helper (#8057)

This commit is contained in:
Oscar Hinton 2024-02-22 23:21:39 +01:00 committed by GitHub
parent 57ac4e141b
commit a553704f28
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -40,6 +40,18 @@ export class MigrationHelper {
return this.storageService.save(key, value); return this.storageService.save(key, value);
} }
/**
* Remove a value in the storage service at the given key.
*
* This is a brute force method to just remove a value in the storage service. If you can use {@link removeFromGlobal} or {@link removeFromUser}, you should.
* @param key location
* @returns void
*/
remove(key: string): Promise<void> {
this.logService.info(`Removing ${key}`);
return this.storageService.remove(key);
}
/** /**
* Gets a globally scoped value from a location derived through the key definition * Gets a globally scoped value from a location derived through the key definition
* *
@ -65,6 +77,18 @@ export class MigrationHelper {
return this.set(this.getGlobalKey(keyDefinition), value); return this.set(this.getGlobalKey(keyDefinition), value);
} }
/**
* Remove a globally scoped location derived through the key definition
*
* This is for use with the state providers framework, DO NOT use for values stored with {@link StateService},
* use {@link remove} for those.
* @param keyDefinition unique key definition
* @returns void
*/
removeFromGlobal(keyDefinition: KeyDefinitionLike): Promise<void> {
return this.remove(this.getGlobalKey(keyDefinition));
}
/** /**
* Gets a user scoped value from a location derived through the user id and key definition * Gets a user scoped value from a location derived through the user id and key definition
* *
@ -92,6 +116,18 @@ export class MigrationHelper {
return this.set(this.getUserKey(userId, keyDefinition), value); return this.set(this.getUserKey(userId, keyDefinition), value);
} }
/**
* Remove a user scoped location derived through the key definition
*
* This is for use with the state providers framework, DO NOT use for values stored with {@link StateService},
* use {@link remove} for those.
* @param keyDefinition unique key definition
* @returns void
*/
removeFromUser(userId: string, keyDefinition: KeyDefinitionLike): Promise<void> {
return this.remove(this.getUserKey(userId, keyDefinition));
}
info(message: string): void { info(message: string): void {
this.logService.info(message); this.logService.info(message);
} }