andy-stack_vaultkeeper-ai/Conversations/Reference.ts

48 lines
1.2 KiB
TypeScript
Raw Normal View History

import { isAudioFile, isImageFile, isKnownFileType, isTextFile, isVideoFile } from "Enums/FileType";
import { pathExtname } from "Helpers/Helpers";
export class Reference {
public fileName: string;
public size: number;
public constructor(fileName: string, size: number) {
this.fileName = fileName;
this.size = size;
}
public getIconName(): string {
const extension = pathExtname(this.fileName);
if (isTextFile(extension)) {
return "file-text";
}
if (isImageFile(extension)) {
return "file-image";
}
if (isAudioFile(extension)) {
return "file-music";
}
if (isVideoFile(extension)) {
return "file-play";
}
if (isKnownFileType(extension)) {
return "file";
}
return "file";
}
public static isReferenceData(this: void, data: unknown): data is {
fileName: string;
size: number;
} {
return (
data !== null &&
typeof data === "object" &&
"fileName" in data &&
"size" in data &&
typeof data.fileName === "string" &&
typeof data.size === "number"
);
}
}