diff --git a/src/scripts/common.ts b/src/scripts/common.ts index 0ba0948..b303d9c 100644 --- a/src/scripts/common.ts +++ b/src/scripts/common.ts @@ -96,7 +96,7 @@ export function groupTracksPerScheme( tracks: Track[], initial: Record = {}, ): Record { - const acc: Record = {}; + const acc: Record = initial; tracks.forEach((track) => { const scheme = track.uri.substring(0, track.uri.indexOf(":")); diff --git a/src/scripts/configurator/input/worker.ts b/src/scripts/configurator/input/worker.ts index 4dc43da..b3218e0 100644 --- a/src/scripts/configurator/input/worker.ts +++ b/src/scripts/configurator/input/worker.ts @@ -77,7 +77,7 @@ async function groupConsult(tracks: Track[]) { } const conn = await connections[scheme].promise; - const result = await conn.groupConsult(groups[scheme] || []); + const result = await conn.groupConsult(groups[scheme] || {}); return result; }), @@ -91,6 +91,10 @@ async function groupConsult(tracks: Track[]) { async function list(cachedTracks: Track[] = []) { const groups = await groupConsult(cachedTracks); + Object.keys(connections).forEach((scheme) => { + if (!groups[scheme]) groups[scheme] = { available: true, tracks: [] }; + }); + const promises = Object.entries(groups).map( async ([scheme, { available, tracks }]: [string, ConsultGrouping]) => { if (!available) return tracks;