diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2025-11-25 14:55:54 -0400 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2025-11-25 14:56:22 -0400 |
| commit | ffffbc81426bb6ccd07ee6084a9c40fb126222ff (patch) | |
| tree | 0e677801df2bd91af8917bf2bfb0e7b977ce53da /src/data | |
| parent | 04589995da7ceae84aec112e44f7451e9bc47e0c (diff) | |
data: Track: chop withDate
Diffstat (limited to 'src/data')
| -rw-r--r-- | src/data/composite/things/track/index.js | 1 | ||||
| -rw-r--r-- | src/data/composite/things/track/inheritContributionListFromMainRelease.js | 5 | ||||
| -rw-r--r-- | src/data/composite/things/track/withDate.js | 42 | ||||
| -rw-r--r-- | src/data/composite/things/track/withTrackArtDate.js | 9 | ||||
| -rw-r--r-- | src/data/things/track.js | 32 |
5 files changed, 28 insertions, 61 deletions
diff --git a/src/data/composite/things/track/index.js b/src/data/composite/things/track/index.js index c7c43f4c..35deb93f 100644 --- a/src/data/composite/things/track/index.js +++ b/src/data/composite/things/track/index.js @@ -4,7 +4,6 @@ export {default as inheritContributionListFromMainRelease} from './inheritContri export {default as inheritFromMainRelease} from './inheritFromMainRelease.js'; export {default as withAllReleases} from './withAllReleases.js'; export {default as withCoverArtistContribs} from './withCoverArtistContribs.js'; -export {default as withDate} from './withDate.js'; export {default as withDirectorySuffix} from './withDirectorySuffix.js'; export {default as withMainRelease} from './withMainRelease.js'; export {default as withMainReleaseTrack} from './withMainReleaseTrack.js'; diff --git a/src/data/composite/things/track/inheritContributionListFromMainRelease.js b/src/data/composite/things/track/inheritContributionListFromMainRelease.js index 89252feb..d3d0a442 100644 --- a/src/data/composite/things/track/inheritContributionListFromMainRelease.js +++ b/src/data/composite/things/track/inheritContributionListFromMainRelease.js @@ -8,7 +8,6 @@ import {exposeDependency, raiseOutputWithoutDependency} import {withRecontextualizedContributionList, withRedatedContributionList} from '#composite/wiki-data'; -import withDate from './withDate.js'; import withPropertyFromMainRelease from './withPropertyFromMainRelease.js'; @@ -30,11 +29,9 @@ export default templateCompositeFrom({ list: '#mainReleaseValue', }), - withDate(), - withRedatedContributionList({ list: '#mainReleaseValue', - date: '#date', + date: 'date', }), exposeDependency({ diff --git a/src/data/composite/things/track/withDate.js b/src/data/composite/things/track/withDate.js deleted file mode 100644 index 1851c0d2..00000000 --- a/src/data/composite/things/track/withDate.js +++ /dev/null @@ -1,42 +0,0 @@ -// Gets the track's own date. This is either its dateFirstReleased property -// or, if unset, the album's date. - -import {input, templateCompositeFrom} from '#composite'; - -import withPropertyFromAlbum from './withPropertyFromAlbum.js'; - -export default templateCompositeFrom({ - annotation: `withDate`, - - outputs: ['#date'], - - steps: () => [ - { - dependencies: ['disableDate'], - compute: (continuation, {disableDate}) => - (disableDate - ? continuation.raiseOutput({'#date': null}) - : continuation()), - }, - - { - dependencies: ['dateFirstReleased'], - compute: (continuation, {dateFirstReleased}) => - (dateFirstReleased - ? continuation.raiseOutput({'#date': dateFirstReleased}) - : continuation()), - }, - - withPropertyFromAlbum({ - property: input.value('date'), - }), - - { - dependencies: ['#album.date'], - compute: (continuation, {['#album.date']: albumDate}) => - (albumDate - ? continuation.raiseOutput({'#date': albumDate}) - : continuation.raiseOutput({'#date': null})), - }, - ], -}) diff --git a/src/data/composite/things/track/withTrackArtDate.js b/src/data/composite/things/track/withTrackArtDate.js index b7eff5ad..d7d043d6 100644 --- a/src/data/composite/things/track/withTrackArtDate.js +++ b/src/data/composite/things/track/withTrackArtDate.js @@ -3,7 +3,6 @@ import {isDate} from '#validators'; import {raiseOutputWithoutDependency} from '#composite/control-flow'; -import withDate from './withDate.js'; import withPropertyFromAlbum from './withPropertyFromAlbum.js'; export default templateCompositeFrom({ @@ -50,8 +49,10 @@ export default templateCompositeFrom({ : continuation()), }, - withDate().outputs({ - '#date': '#trackArtDate', - }), + { + dependencies: ['date'], + compute: (continuation, {date}) => + continuation({'#trackArtDate': date}), + }, ], }); diff --git a/src/data/things/track.js b/src/data/things/track.js index 3c72468a..62333136 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -83,7 +83,6 @@ import { inheritFromMainRelease, withAllReleases, withCoverArtistContribs, - withDate, withDirectorySuffix, withMainRelease, withMainReleaseTrack, @@ -227,13 +226,11 @@ export class Track extends Thing { ], artistContribs: [ - withDate(), - withResolvedContribs({ from: input.updateValue({validate: isContributionList}), thingProperty: input.thisProperty(), artistProperty: input.value('trackArtistContributions'), - date: '#date', + date: 'date', }).outputs({ '#resolvedContribs': '#artistContribs', }), @@ -258,7 +255,7 @@ export class Track extends Thing { withRedatedContributionList({ list: '#album.trackArtistContribs', - date: '#date', + date: 'date', }), exposeDependency({dependency: '#album.trackArtistContribs'}), @@ -267,10 +264,8 @@ export class Track extends Thing { contributorContribs: [ inheritContributionListFromMainRelease(), - withDate(), - contributionList({ - date: '#date', + date: 'date', artistProperty: input.value('trackContributorContributions'), }), ], @@ -531,8 +526,25 @@ export class Track extends Thing { ], date: [ - withDate(), - exposeDependency({dependency: '#date'}), + { + dependencies: ['disableDate'], + compute: (continuation, {disableDate}) => + (disableDate + ? null + : continuation()), + }, + + exposeDependencyOrContinue({ + dependency: 'dateFirstReleased', + }), + + withPropertyFromAlbum({ + property: input.value('date'), + }), + + exposeDependency({ + dependency: '#album.date', + }), ], trackNumber: [ |