Skip to content

Commit 09f9c78

Browse files
committed
refactor: displayName prop dupe
1 parent 0e75ae9 commit 09f9c78

3 files changed

Lines changed: 15 additions & 13 deletions

File tree

src/fetcher.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ async function fetchParallel(
9191
const { signal } = controller
9292

9393
type Tagged = { task: Promise<Tagged>; attempt: Attempt }
94-
let pending: Promise<Tagged>[] = entries.map(({ key, displayName }) => {
94+
let pending: Promise<Tagged>[] = entries.map(({ key, fetcher }) => {
9595
const p: Promise<Tagged> = fetchWithTimeout(
96-
displayName,
96+
fetcher.displayName,
9797
key,
9898
artist,
9999
song,
@@ -238,7 +238,8 @@ export async function fetchLyricsController(
238238
for (const key of fetcherKeys) {
239239
const descriptor = SOURCE_BY_KEY.get(key)
240240
if (!descriptor) continue
241-
const { displayName, fetcher } = descriptor
241+
const { fetcher } = descriptor
242+
const { displayName } = fetcher
242243
try {
243244
const raw = await Promise.race<LyricResult | null>([
244245
fetcher.fetch(artistName, songTitle, timestamps),

src/sources/base.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ export function parseLrc(lrcText: string, totalDurationMs?: number): TimedLine[]
7676
}
7777

7878
export interface Fetcher {
79+
displayName: string
7980
fetch(
8081
artist: string,
8182
song: string,
@@ -98,6 +99,7 @@ export interface FetcherDef {
9899
export function defineFetcher(def: FetcherDef): Fetcher {
99100
const log = getLogger(`fetcher/${def.source}`)
100101
return {
102+
displayName: def.displayName,
101103
async fetch(artist, song, timestamps, signal) {
102104
try {
103105
log.debug(`${def.displayName}: fetching '${artist}${song}'`)

src/sources/index.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,19 @@ import { youtubeFetcher } from './youtube'
1111

1212
export interface SourceDescriptor {
1313
key: string
14-
displayName: string
1514
fetcher: Fetcher
1615
}
1716

1817
export const SOURCES: readonly SourceDescriptor[] = [
19-
{ key: 'genius', displayName: 'Genius', fetcher: geniusFetcher },
20-
{ key: 'lrclib', displayName: 'LRCLIB', fetcher: lrclibFetcher },
21-
{ key: 'mxm', displayName: 'Musixmatch', fetcher: mxmFetcher },
22-
{ key: 'simpmusic', displayName: 'SimpMusic', fetcher: simpmusicFetcher },
23-
{ key: 'youtube', displayName: 'YouTube Music', fetcher: youtubeFetcher },
24-
{ key: 'lyricsovh', displayName: 'Lyrics.ovh', fetcher: lyricsovhFetcher },
25-
{ key: 'chartlyrics', displayName: 'ChartLyrics', fetcher: chartlyricsFetcher },
26-
{ key: 'letras', displayName: 'Letras', fetcher: letrasFetcher },
27-
{ key: 'lyricsfreek', displayName: 'LyricsFreek', fetcher: lyricsfreekFetcher },
18+
{ key: 'genius', fetcher: geniusFetcher },
19+
{ key: 'lrclib', fetcher: lrclibFetcher },
20+
{ key: 'mxm', fetcher: mxmFetcher },
21+
{ key: 'simpmusic', fetcher: simpmusicFetcher },
22+
{ key: 'youtube', fetcher: youtubeFetcher },
23+
{ key: 'lyricsovh', fetcher: lyricsovhFetcher },
24+
{ key: 'chartlyrics', fetcher: chartlyricsFetcher },
25+
{ key: 'letras', fetcher: letrasFetcher },
26+
{ key: 'lyricsfreek', fetcher: lyricsfreekFetcher },
2827
]
2928

3029
export const SOURCE_BY_KEY = new Map(SOURCES.map((s) => [s.key, s]))

0 commit comments

Comments
 (0)