diff options
| author | Pinapelz <yukais@pinapelz.com> | 2026-06-07 21:25:28 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2026-06-07 21:25:28 -0700 |
| commit | 01e417ed08a8327169e6488a557c46b6a7b97a08 (patch) | |
| tree | 499cabb53a48e79f1f2f6379b6c4c8506b619798 /src/helpers/fetchSongs.ts | |
| parent | 4e54dfe40b0c20c5b4d4c20b288a8eb8a3805280 (diff) | |
Diffstat (limited to 'src/helpers/fetchSongs.ts')
| -rw-r--r-- | src/helpers/fetchSongs.ts | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/helpers/fetchSongs.ts b/src/helpers/fetchSongs.ts deleted file mode 100644 index f2d91a2..0000000 --- a/src/helpers/fetchSongs.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Song } from "../types/song"; -let cachedSongs: Song[] | null = null; -function fuzzyMatch(input: string): string { - return input.toLowerCase().replace(/[^0-9a-z ]/gi, ''); -} - - -export async function fetchSongs(useCache=true): Promise<Song[]> { - const API_URL = import.meta.env.VITE_HEARDLE_API_URL || "http://localhost:3001"; - if (useCache && cachedSongs) { - return cachedSongs; - } - - try { - const response = await fetch(`${API_URL}/songs`); - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); - } - const songsData: Song[] = await response.json(); - cachedSongs = songsData; - return songsData; - } catch (error) { - console.error("Failed to fetch songs:", error); - throw error; - } -} - -export async function searchSongs(searchTerm: string): Promise<Song[]> { - const songsToSearch = await fetchSongs(); - - const processedSearchTerm = fuzzyMatch(searchTerm); - - const matchingSongs = songsToSearch - .filter((song: Song) => { - const songName = fuzzyMatch(song.name); - const songArtist = fuzzyMatch(song.artist); - - if (songArtist.includes(processedSearchTerm) || songName.includes(processedSearchTerm)) { - return true; - } - return false; - }) - .sort((a, b) => - a.artist.toLowerCase().localeCompare(b.artist.toLocaleLowerCase()) - || a.name.toLowerCase().localeCompare(b.name.toLocaleLowerCase()) - ); - - return matchingSongs; -} -export function getCachedSongs(): Song[] | null { - return cachedSongs; -} |
