diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2024-06-09 17:01:36 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-06-09 17:53:30 -0300 |
commit | 36e2006bc9a24918ba886d9cef28d6288bf01c40 (patch) | |
tree | 114187513349e965bf0aa5a49bb5f694748390f0 /src/content/dependencies | |
parent | 7cf49b34db0a9aeee201594704798b69035c7036 (diff) |
content: generateTrackListDividedByGroups: inline util function
Diffstat (limited to 'src/content/dependencies')
-rw-r--r-- | src/content/dependencies/generateTrackListDividedByGroups.js | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/content/dependencies/generateTrackListDividedByGroups.js b/src/content/dependencies/generateTrackListDividedByGroups.js index a9326205..5ab53068 100644 --- a/src/content/dependencies/generateTrackListDividedByGroups.js +++ b/src/content/dependencies/generateTrackListDividedByGroups.js @@ -1,6 +1,26 @@ import {empty, stitchArrays} from '#sugar'; -import groupTracksByGroup from '../util/groupTracksByGroup.js'; +function groupTracksByGroup(tracks, groups) { + const lists = new Map(groups.map(group => [group, []])); + lists.set('other', []); + + for (const track of tracks) { + const group = groups.find(group => group.albums.includes(track.album)); + if (group) { + lists.get(group).push(track); + } else { + lists.get('other').push(track); + } + } + + for (const [key, tracks] of lists.entries()) { + if (empty(tracks)) { + lists.delete(key); + } + } + + return lists; +} export default { contentDependencies: [ |