summaryrefslogtreecommitdiff
path: root/llama.cpp/tools/server/webui/src/lib/utils/file-preview.ts
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2026-02-12 20:57:17 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2026-02-12 20:57:17 +0100
commitb333b06772c89d96aacb5490d6a219fba7c09cc6 (patch)
tree211df60083a5946baa2ed61d33d8121b7e251b06 /llama.cpp/tools/server/webui/src/lib/utils/file-preview.ts
downloadllmnpc-b333b06772c89d96aacb5490d6a219fba7c09cc6.tar.gz
Engage!
Diffstat (limited to 'llama.cpp/tools/server/webui/src/lib/utils/file-preview.ts')
-rw-r--r--llama.cpp/tools/server/webui/src/lib/utils/file-preview.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/llama.cpp/tools/server/webui/src/lib/utils/file-preview.ts b/llama.cpp/tools/server/webui/src/lib/utils/file-preview.ts
new file mode 100644
index 0000000..26a6053
--- /dev/null
+++ b/llama.cpp/tools/server/webui/src/lib/utils/file-preview.ts
@@ -0,0 +1,36 @@
+/**
+ * Gets a display label for a file type from various input formats
+ *
+ * Handles:
+ * - MIME types: 'application/pdf' → 'PDF'
+ * - AttachmentType values: 'PDF', 'AUDIO' → 'PDF', 'AUDIO'
+ * - File names: 'document.pdf' → 'PDF'
+ * - Unknown: returns 'FILE'
+ *
+ * @param input - MIME type, AttachmentType value, or file name
+ * @returns Formatted file type label (uppercase)
+ */
+export function getFileTypeLabel(input: string | undefined): string {
+ if (!input) return 'FILE';
+
+ // Handle MIME types (contains '/')
+ if (input.includes('/')) {
+ const subtype = input.split('/').pop();
+ if (subtype) {
+ // Handle special cases like 'vnd.ms-excel' → 'EXCEL'
+ if (subtype.includes('.')) {
+ return subtype.split('.').pop()?.toUpperCase() || 'FILE';
+ }
+ return subtype.toUpperCase();
+ }
+ }
+
+ // Handle file names (contains '.')
+ if (input.includes('.')) {
+ const ext = input.split('.').pop();
+ if (ext) return ext.toUpperCase();
+ }
+
+ // Handle AttachmentType or other plain strings
+ return input.toUpperCase();
+}