diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2025-11-25 17:01:21 -0400 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2025-11-25 17:01:38 -0400 |
| commit | 3d6e0377e01a6c8c05ab3725cc0c30d02f318d0f (patch) | |
| tree | 6ef6be388e45bfa94d55247ff499f59434c0d446 /src/data/things | |
| parent | 8a20f2b849da363336d3f7f71b14762af954457f (diff) | |
data: Track: chop withTrackNumber
one """normative""" change: we're checking availability of #index correctly now (in index mode)
Diffstat (limited to 'src/data/things')
| -rw-r--r-- | src/data/things/track.js | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/data/things/track.js b/src/data/things/track.js index 31eed682..032171d0 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -49,7 +49,9 @@ import { fillMissingListItems, withFilteredList, withFlattenedList, + withIndexInList, withMappedList, + withPropertiesFromObject, withPropertyFromList, withPropertyFromObject, } from '#composite/data'; @@ -90,7 +92,6 @@ import { inheritContributionListFromMainRelease, inheritFromMainRelease, withPropertyFromAlbum, - withTrackNumber, } from '#composite/things/track'; export class Track extends Thing { @@ -657,8 +658,36 @@ export class Track extends Thing { ], trackNumber: [ - withTrackNumber(), - exposeDependency({dependency: '#trackNumber'}), + // Zero is the fallback, not one, but in most albums the first track + // (and its intended output by this composition) will be one. + exitWithoutDependency({ + dependency: 'trackSection', + value: input.value(0), + }), + + withPropertiesFromObject({ + object: 'trackSection', + properties: input.value(['tracks', 'startCountingFrom']), + }), + + withIndexInList({ + list: '#trackSection.tracks', + item: input.myself(), + }), + + exitWithoutDependency({ + dependency: '#index', + value: input.value(0), + mode: input.value('index'), + }), + + { + dependencies: ['#trackSection.startCountingFrom', '#index'], + compute: ({ + ['#trackSection.startCountingFrom']: startCountingFrom, + ['#index']: index, + }) => startCountingFrom + index, + }, ], // Whether or not the track has "unique" cover artwork - a cover which is |