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 { EventData } from "../models/data/eventData";
import { FolderData } from "../models/data/folderData";
import { LocalData } from "../models/data/localData";
import { OrganizationData } from "../models/data/organizationData";
import { PolicyData } from "../models/data/policyData";
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>;
getLastSync: (options?: StorageOptions) => Promise<string>;
setLastSync: (value: string, options?: StorageOptions) => Promise<void>;
getLocalData: (options?: StorageOptions) => Promise<any>;
setLocalData: (value: string, options?: StorageOptions) => Promise<void>;
getLocalData: (options?: StorageOptions) => Promise<{ [cipherId: string]: LocalData }>;
setLocalData: (
value: { [cipherId: string]: LocalData },
options?: StorageOptions
) => Promise<void>;
getLocale: (options?: StorageOptions) => Promise<string>;
setLocale: (value: string, options?: StorageOptions) => Promise<void>;
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 { CipherType } from "../../enums/cipherType";
import { CipherData } from "../data/cipherData";
import { LocalData } from "../data/localData";
import { CipherView } from "../view/cipherView";
import { Attachment } from "./attachment";
@ -26,7 +27,7 @@ export class Cipher extends Domain {
edit: boolean;
viewPassword: boolean;
revisionDate: Date;
localData: any;
localData: LocalData;
login: Login;
identity: Identity;
card: Card;
@ -38,7 +39,7 @@ export class Cipher extends Domain {
deletedDate: Date;
reprompt: CipherRepromptType;
constructor(obj?: CipherData, localData: any = null) {
constructor(obj?: CipherData, localData: LocalData = null) {
super();
if (obj == null) {
return;

View File

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

View File

@ -16,6 +16,7 @@ import { CollectionData } from "../models/data/collectionData";
import { EncryptedOrganizationKeyData } from "../models/data/encryptedOrganizationKeyData";
import { EventData } from "../models/data/eventData";
import { FolderData } from "../models/data/folderData";
import { LocalData } from "../models/data/localData";
import { OrganizationData } from "../models/data/organizationData";
import { PolicyData } from "../models/data/policyData";
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 (
await this.getAccount(this.reconcileOptions(options, await this.defaultOnDiskLocalOptions()))
)?.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(
this.reconcileOptions(options, await this.defaultOnDiskLocalOptions())
);