aboutsummaryrefslogtreecommitdiffstats
path: root/src/helpers/fetchSongs.ts
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2026-06-07 21:25:28 -0700
committerPinapelz <yukais@pinapelz.com>2026-06-07 21:25:28 -0700
commit01e417ed08a8327169e6488a557c46b6a7b97a08 (patch)
tree499cabb53a48e79f1f2f6379b6c4c8506b619798 /src/helpers/fetchSongs.ts
parent4e54dfe40b0c20c5b4d4c20b288a8eb8a3805280 (diff)
bundle song list statically, improve search timeHEADmaster
Diffstat (limited to 'src/helpers/fetchSongs.ts')
-rw-r--r--src/helpers/fetchSongs.ts52
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;
-}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage