mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-11-04 08:10:28 +09:00
26 lines
697 B
TypeScript
26 lines
697 B
TypeScript
import type { FileMetadata } from "./types";
|
|
|
|
const MAX_FILE_METADATA_ENTRIES = 32;
|
|
|
|
const fileMetadata = new Map<number, FileMetadata>();
|
|
|
|
export const fileMetadataStore = {
|
|
get(fileId: number) {
|
|
const metadata = fileMetadata.get(fileId);
|
|
if (metadata) {
|
|
// Move to the end to keep the most recently used entries
|
|
fileMetadata.delete(fileId);
|
|
fileMetadata.set(fileId, metadata);
|
|
}
|
|
return metadata;
|
|
},
|
|
set(fileId: number, metadata: FileMetadata) {
|
|
fileMetadata.delete(fileId);
|
|
fileMetadata.set(fileId, metadata);
|
|
|
|
while (fileMetadata.size > MAX_FILE_METADATA_ENTRIES) {
|
|
fileMetadata.delete(fileMetadata.keys().next().value!);
|
|
}
|
|
},
|
|
};
|