1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-11-26 12:25:20 +01:00

Add typing to localData object (#3368)

This commit is contained in:
Thomas Rittson 2022-09-02 06:09:06 +10:00 committed by GitHub
parent e2cb0cf11a
commit 063acfef40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 22 additions and 7 deletions

View File

@ -8,6 +8,7 @@ import { CollectionData } from "../models/data/collectionData";
import { EncryptedOrganizationKeyData } from "../models/data/encryptedOrganizationKeyData"; import { EncryptedOrganizationKeyData } from "../models/data/encryptedOrganizationKeyData";
import { EventData } from "../models/data/eventData"; import { EventData } from "../models/data/eventData";
import { FolderData } from "../models/data/folderData"; import { FolderData } from "../models/data/folderData";
import { LocalData } from "../models/data/localData";
import { OrganizationData } from "../models/data/organizationData"; import { OrganizationData } from "../models/data/organizationData";
import { PolicyData } from "../models/data/policyData"; import { PolicyData } from "../models/data/policyData";
import { ProviderData } from "../models/data/providerData"; import { ProviderData } from "../models/data/providerData";
@ -245,8 +246,11 @@ export abstract class StateService<T extends Account = Account> {
setLastActive: (value: number, options?: StorageOptions) => Promise<void>; setLastActive: (value: number, options?: StorageOptions) => Promise<void>;
getLastSync: (options?: StorageOptions) => Promise<string>; getLastSync: (options?: StorageOptions) => Promise<string>;
setLastSync: (value: string, options?: StorageOptions) => Promise<void>; setLastSync: (value: string, options?: StorageOptions) => Promise<void>;
getLocalData: (options?: StorageOptions) => Promise<any>; getLocalData: (options?: StorageOptions) => Promise<{ [cipherId: string]: LocalData }>;
setLocalData: (value: string, options?: StorageOptions) => Promise<void>; setLocalData: (
value: { [cipherId: string]: LocalData },
options?: StorageOptions
) => Promise<void>;
getLocale: (options?: StorageOptions) => Promise<string>; getLocale: (options?: StorageOptions) => Promise<string>;
setLocale: (value: string, options?: StorageOptions) => Promise<void>; setLocale: (value: string, options?: StorageOptions) => Promise<void>;
getMainWindowSize: (options?: StorageOptions) => Promise<number>; getMainWindowSize: (options?: StorageOptions) => Promise<number>;

View File

@ -0,0 +1,4 @@
export type LocalData = {
lastUsedDate?: number;
lastLaunched?: number;
};

View File

@ -1,6 +1,7 @@
import { CipherRepromptType } from "../../enums/cipherRepromptType"; import { CipherRepromptType } from "../../enums/cipherRepromptType";
import { CipherType } from "../../enums/cipherType"; import { CipherType } from "../../enums/cipherType";
import { CipherData } from "../data/cipherData"; import { CipherData } from "../data/cipherData";
import { LocalData } from "../data/localData";
import { CipherView } from "../view/cipherView"; import { CipherView } from "../view/cipherView";
import { Attachment } from "./attachment"; import { Attachment } from "./attachment";
@ -26,7 +27,7 @@ export class Cipher extends Domain {
edit: boolean; edit: boolean;
viewPassword: boolean; viewPassword: boolean;
revisionDate: Date; revisionDate: Date;
localData: any; localData: LocalData;
login: Login; login: Login;
identity: Identity; identity: Identity;
card: Card; card: Card;
@ -38,7 +39,7 @@ export class Cipher extends Domain {
deletedDate: Date; deletedDate: Date;
reprompt: CipherRepromptType; reprompt: CipherRepromptType;
constructor(obj?: CipherData, localData: any = null) { constructor(obj?: CipherData, localData: LocalData = null) {
super(); super();
if (obj == null) { if (obj == null) {
return; return;

View File

@ -3,6 +3,7 @@ import { Jsonify } from "type-fest";
import { CipherRepromptType } from "../../enums/cipherRepromptType"; import { CipherRepromptType } from "../../enums/cipherRepromptType";
import { CipherType } from "../../enums/cipherType"; import { CipherType } from "../../enums/cipherType";
import { LinkedIdType } from "../../enums/linkedIdType"; import { LinkedIdType } from "../../enums/linkedIdType";
import { LocalData } from "../data/localData";
import { Cipher } from "../domain/cipher"; import { Cipher } from "../domain/cipher";
import { AttachmentView } from "./attachmentView"; import { AttachmentView } from "./attachmentView";
@ -25,7 +26,7 @@ export class CipherView implements View {
organizationUseTotp = false; organizationUseTotp = false;
edit = false; edit = false;
viewPassword = true; viewPassword = true;
localData: any; localData: LocalData;
login = new LoginView(); login = new LoginView();
identity = new IdentityView(); identity = new IdentityView();
card = new CardView(); card = new CardView();

View File

@ -16,6 +16,7 @@ import { CollectionData } from "../models/data/collectionData";
import { EncryptedOrganizationKeyData } from "../models/data/encryptedOrganizationKeyData"; import { EncryptedOrganizationKeyData } from "../models/data/encryptedOrganizationKeyData";
import { EventData } from "../models/data/eventData"; import { EventData } from "../models/data/eventData";
import { FolderData } from "../models/data/folderData"; import { FolderData } from "../models/data/folderData";
import { LocalData } from "../models/data/localData";
import { OrganizationData } from "../models/data/organizationData"; import { OrganizationData } from "../models/data/organizationData";
import { PolicyData } from "../models/data/policyData"; import { PolicyData } from "../models/data/policyData";
import { ProviderData } from "../models/data/providerData"; import { ProviderData } from "../models/data/providerData";
@ -1747,12 +1748,16 @@ export class StateService<
); );
} }
async getLocalData(options?: StorageOptions): Promise<any> { async getLocalData(options?: StorageOptions): Promise<{ [cipherId: string]: LocalData }> {
return ( return (
await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskLocalOptions())) await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()))
)?.data?.localData; )?.data?.localData;
} }
async setLocalData(value: string, options?: StorageOptions): Promise<void> {
async setLocalData(
value: { [cipherId: string]: LocalData },
options?: StorageOptions
): Promise<void> {
const account = await this.getAccount( const account = await this.getAccount(
this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()) this.reconcileOptions(options, await this.defaultOnDiskLocalOptions())
); );