diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2025-11-25 16:08:30 -0400 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2025-11-25 16:08:48 -0400 |
| commit | 9c3f0a79ee38ee5a13617ed0406d42e579ed49f3 (patch) | |
| tree | 716f3f64418ecd5df3725e437640fd7f62cb9bfa /src/data/composite/things/track/withAllReleases.js | |
| parent | e0ed41638ac5f76968499a16628f7054eae11158 (diff) | |
data: Track: chop withMainReleaseTrack
probably contains normative changes re: dropping notFoundValue behavior in properties which inherit from main release, but has no effect on good wiki data and maybe those compositions resolve the same anyway...
Diffstat (limited to 'src/data/composite/things/track/withAllReleases.js')
| -rw-r--r-- | src/data/composite/things/track/withAllReleases.js | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/src/data/composite/things/track/withAllReleases.js b/src/data/composite/things/track/withAllReleases.js index bd54384f..078209a9 100644 --- a/src/data/composite/things/track/withAllReleases.js +++ b/src/data/composite/things/track/withAllReleases.js @@ -10,40 +10,47 @@ import {sortByDate} from '#sort'; import {withPropertyFromObject} from '#composite/data'; -import withMainReleaseTrack from './withMainReleaseTrack.js'; - export default templateCompositeFrom({ annotation: `withAllReleases`, outputs: ['#allReleases'], steps: () => [ - withMainReleaseTrack({ - selfIfMain: input.value(true), - notFoundValue: input.value([]), - }), - - // We don't talk about bruno no no - // Yes, this can perform a normal access equivalent to - // `this.secondaryReleases` from within a data composition. - // Oooooooooooooooooooooooooooooooooooooooooooooooo - withPropertyFromObject({ - object: '#mainReleaseTrack', - property: input.value('secondaryReleases'), - }), + { + dependencies: [ + 'mainReleaseTrack', + 'secondaryReleases', + input.myself(), + ], + + compute: (continuation, { + mainReleaseTrack, + secondaryReleases, + [input.myself()]: thisTrack, + }) => + (mainReleaseTrack + ? continuation({ + ['#mainReleaseTrack']: mainReleaseTrack, + ['#secondaryReleaseTracks']: mainReleaseTrack.secondaryReleases, + }) + : continuation({ + ['#mainReleaseTrack']: thisTrack, + ['#secondaryReleaseTracks']: secondaryReleases, + })), + }, { dependencies: [ '#mainReleaseTrack', - '#mainReleaseTrack.secondaryReleases', + '#secondaryReleaseTracks', ], compute: (continuation, { ['#mainReleaseTrack']: mainReleaseTrack, - ['#mainReleaseTrack.secondaryReleases']: secondaryReleases, + ['#secondaryReleaseTracks']: secondaryReleaseTracks, }) => continuation({ ['#allReleases']: - sortByDate([mainReleaseTrack, ...secondaryReleases]), + sortByDate([mainReleaseTrack, ...secondaryReleaseTracks]), }), }, ], |