From 01e417ed08a8327169e6488a557c46b6a7b97a08 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sun, 7 Jun 2026 21:25:28 -0700 Subject: bundle song list statically, improve search time --- src/helpers/searchSong.ts | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'src/helpers/searchSong.ts') diff --git a/src/helpers/searchSong.ts b/src/helpers/searchSong.ts index 9ce36cf..62091b6 100644 --- a/src/helpers/searchSong.ts +++ b/src/helpers/searchSong.ts @@ -1,25 +1,26 @@ -import { fetchSongs } from "./fetchSongs"; +import { songs } from "../../server/data/songs"; import { Song } from "../types/song"; -export async function searchSong(searchTerm: string): Promise { - function fuzzyMatch(input: string){ - return input.toLowerCase().replace(/[^0-9a-z ]/gi, ''); - } - searchTerm = fuzzyMatch(searchTerm); +function fuzzyMatch(input: string): string { + return input.toLowerCase().replace(/[^0-9a-z ]/gi, ""); +} - const songs = await fetchSongs(); +export function searchSong(searchTerm: string): Song[] { + const normalizedSearch = fuzzyMatch(searchTerm); return songs .filter((song: Song) => { const songName = fuzzyMatch(song.name); const songArtist = fuzzyMatch(song.artist); - if (songArtist.includes(searchTerm) || songName.includes(searchTerm)) { - return song; - } + return ( + songArtist.includes(normalizedSearch) || + songName.includes(normalizedSearch) + ); }) - .sort((a, b) => - a.artist.toLowerCase().localeCompare(b.artist.toLocaleLowerCase()) - || a.name.toLowerCase().localeCompare(b.name.toLocaleLowerCase()) + .sort( + (a, b) => + a.artist.toLowerCase().localeCompare(b.artist.toLowerCase()) || + a.name.toLowerCase().localeCompare(b.name.toLowerCase()) ); } -- cgit v1.2.3