mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-02-04 08:06:56 +00:00
사소한 리팩토링
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import type { DataKey } from "$lib/modules/filesystem";
|
||||
|
||||
export interface SelectedCategory {
|
||||
id: number;
|
||||
dataKey?: { key: CryptoKey; version: Date };
|
||||
dataKey?: DataKey;
|
||||
name: string;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ export interface FileDownloadState {
|
||||
result?: ArrayBuffer;
|
||||
}
|
||||
|
||||
export type LiveFileDownloadState = FileDownloadState & {
|
||||
type LiveFileDownloadState = FileDownloadState & {
|
||||
status: "download-pending" | "downloading" | "decryption-pending" | "decrypting";
|
||||
};
|
||||
|
||||
@@ -34,9 +34,7 @@ export const getFileDownloadState = (fileId: number) => {
|
||||
};
|
||||
|
||||
export const getDownloadingFiles = () => {
|
||||
return downloadingFiles.filter((file): file is LiveFileDownloadState =>
|
||||
isFileDownloading(file.status),
|
||||
);
|
||||
return downloadingFiles.filter((file) => isFileDownloading(file.status));
|
||||
};
|
||||
|
||||
export const clearDownloadedFiles = () => {
|
||||
|
||||
@@ -3,7 +3,7 @@ import { unwrapDataKey, decryptString } from "$lib/modules/crypto";
|
||||
export class FilesystemCache<K, V extends RV, RV = V> {
|
||||
private map = new Map<K, V | Promise<V>>();
|
||||
|
||||
get(key: K, loader: (isInitial: boolean, resolve: (value: RV) => void) => void) {
|
||||
get(key: K, loader: (isInitial: boolean, resolve: (value: RV | undefined) => void) => void) {
|
||||
const info = this.map.get(key);
|
||||
if (info instanceof Promise) {
|
||||
return info;
|
||||
@@ -15,6 +15,8 @@ export class FilesystemCache<K, V extends RV, RV = V> {
|
||||
}
|
||||
|
||||
loader(!info, (loadedInfo) => {
|
||||
if (!loadedInfo) return;
|
||||
|
||||
let info = this.map.get(key)!;
|
||||
if (info instanceof Promise) {
|
||||
const state = $state(loadedInfo);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
type DataKey = { key: CryptoKey; version: Date };
|
||||
export type DataKey = { key: CryptoKey; version: Date };
|
||||
|
||||
interface LocalDirectoryInfo {
|
||||
id: number;
|
||||
@@ -13,7 +13,6 @@ interface RootDirectoryInfo {
|
||||
id: "root";
|
||||
parentId?: undefined;
|
||||
dataKey?: undefined;
|
||||
dataKeyVersion?: undefined;
|
||||
name?: undefined;
|
||||
subDirectories: SubDirectoryInfo[];
|
||||
files: SummarizedFileInfo[];
|
||||
@@ -39,7 +38,7 @@ export type CategoryFileInfo = SummarizedFileInfo & { isRecursive: boolean };
|
||||
|
||||
interface LocalCategoryInfo {
|
||||
id: number;
|
||||
dataKey?: DataKey | undefined;
|
||||
dataKey?: DataKey;
|
||||
name: string;
|
||||
subCategories: SubCategoryInfo[];
|
||||
files: CategoryFileInfo[];
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
export const monotonicResolve = <T>(
|
||||
promises: (Promise<T | undefined> | false)[],
|
||||
promises: (Promise<T> | false)[],
|
||||
callback: (value: T) => void,
|
||||
) => {
|
||||
let latestResolvedIndex = -1;
|
||||
|
||||
promises.forEach((promise, index) => {
|
||||
if (!promise) return;
|
||||
promises
|
||||
.filter((promise) => !!promise)
|
||||
.forEach((promise, index) => {
|
||||
promise.then((value) => {
|
||||
if (value !== undefined && index > latestResolvedIndex) {
|
||||
if (index > latestResolvedIndex) {
|
||||
latestResolvedIndex = index;
|
||||
callback(value);
|
||||
}
|
||||
|
||||
@@ -8,13 +8,14 @@ import {
|
||||
deleteFileThumbnailCache,
|
||||
uploadFile,
|
||||
} from "$lib/modules/file";
|
||||
import type { DataKey } from "$lib/modules/filesystem";
|
||||
import { hmacSecretStore, type MasterKey, type HmacSecret } from "$lib/stores";
|
||||
import { trpc } from "$trpc/client";
|
||||
|
||||
export interface SelectedEntry {
|
||||
type: "directory" | "file";
|
||||
id: number;
|
||||
dataKey: { key: CryptoKey; version: Date } | undefined;
|
||||
dataKey: DataKey | undefined;
|
||||
name: string;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user