From adde69358545596cb0d764dc32604cadf6500559 Mon Sep 17 00:00:00 2001 From: Tilman Date: Wed, 1 Oct 2025 15:16:58 +0200 Subject: [PATCH] Merge pull request #103 from medallyon/bugfix/101-ignore-case-for-sorting Make file and directory sorting case-insensitive --- lib/utils/files.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/utils/files.ts b/lib/utils/files.ts index d5f542d..e52271a 100644 --- a/lib/utils/files.ts +++ b/lib/utils/files.ts @@ -21,11 +21,14 @@ export function humanFileSize(bytes: number) { } export function sortEntriesByName(entryA: Deno.DirEntry, entryB: Deno.DirEntry) { - if (entryA.name > entryB.name) { + const nameA = entryA.name.toLocaleLowerCase(); + const nameB = entryB.name.toLocaleLowerCase(); + + if (nameA > nameB) { return 1; } - if (entryA.name < entryB.name) { + if (nameA < nameB) { return -1; } @@ -33,11 +36,14 @@ export function sortEntriesByName(entryA: Deno.DirEntry, entryB: Deno.DirEntry) } export function sortDirectoriesByName(directoryA: Directory, directoryB: Directory) { - if (directoryA.directory_name > directoryB.directory_name) { + const nameA = directoryA.directory_name.toLocaleLowerCase(); + const nameB = directoryB.directory_name.toLocaleLowerCase(); + + if (nameA > nameB) { return 1; } - if (directoryA.directory_name < directoryB.directory_name) { + if (nameA < nameB) { return -1; } @@ -45,11 +51,14 @@ export function sortDirectoriesByName(directoryA: Directory, directoryB: Directo } export function sortFilesByName(fileA: DirectoryFile, fileB: DirectoryFile) { - if (fileA.file_name > fileB.file_name) { + const nameA = fileA.file_name.toLocaleLowerCase(); + const nameB = fileB.file_name.toLocaleLowerCase(); + + if (nameA > nameB) { return 1; } - if (fileA.file_name < fileB.file_name) { + if (nameA < nameB) { return -1; }