« get me outta code hell

data: Track: chop withTrackArtDate - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-11-25 15:07:40 -0400
committer(quasar) nebula <qznebula@protonmail.com>2025-11-25 15:07:40 -0400
commit44130f9e14852302ddbd4418229568b514253276 (patch)
tree158c1e558bb58197cfb04395d30b177f121150a2 /src
parentffffbc81426bb6ccd07ee6084a9c40fb126222ff (diff)
data: Track: chop withTrackArtDate
Diffstat (limited to 'src')
-rw-r--r--src/data/composite/things/track/index.js1
-rw-r--r--src/data/composite/things/track/withCoverArtistContribs.js7
-rw-r--r--src/data/composite/things/track/withTrackArtDate.js58
-rw-r--r--src/data/things/track.js24
4 files changed, 20 insertions, 70 deletions
diff --git a/src/data/composite/things/track/index.js b/src/data/composite/things/track/index.js
index 35deb93f..96865e09 100644
--- a/src/data/composite/things/track/index.js
+++ b/src/data/composite/things/track/index.js
@@ -11,5 +11,4 @@ export {default as withOtherReleases} from './withOtherReleases.js';
 export {default as withPropertyFromAlbum} from './withPropertyFromAlbum.js';
 export {default as withPropertyFromMainRelease} from './withPropertyFromMainRelease.js';
 export {default as withSuffixDirectoryFromAlbum} from './withSuffixDirectoryFromAlbum.js';
-export {default as withTrackArtDate} from './withTrackArtDate.js';
 export {default as withTrackNumber} from './withTrackNumber.js';
diff --git a/src/data/composite/things/track/withCoverArtistContribs.js b/src/data/composite/things/track/withCoverArtistContribs.js
index 313d4552..26f21160 100644
--- a/src/data/composite/things/track/withCoverArtistContribs.js
+++ b/src/data/composite/things/track/withCoverArtistContribs.js
@@ -11,7 +11,6 @@ import {
 
 import exitWithoutUniqueCoverArt from './exitWithoutUniqueCoverArt.js';
 import withPropertyFromAlbum from './withPropertyFromAlbum.js';
-import withTrackArtDate from './withTrackArtDate.js';
 
 export default templateCompositeFrom({
   annotation: `withCoverArtistContribs`,
@@ -31,13 +30,11 @@ export default templateCompositeFrom({
       value: input.value([]),
     }),
 
-    withTrackArtDate(),
-
     withResolvedContribs({
       from: input('from'),
       thingProperty: input.value('coverArtistContribs'),
       artistProperty: input.value('trackCoverArtistContributions'),
-      date: '#trackArtDate',
+      date: 'coverArtDate',
     }).outputs({
       '#resolvedContribs': '#coverArtistContribs',
     }),
@@ -58,7 +55,7 @@ export default templateCompositeFrom({
 
     withRedatedContributionList({
       list: '#album.trackCoverArtistContribs',
-      date: '#trackArtDate',
+      date: 'coverArtDate',
     }),
 
     {
diff --git a/src/data/composite/things/track/withTrackArtDate.js b/src/data/composite/things/track/withTrackArtDate.js
deleted file mode 100644
index d7d043d6..00000000
--- a/src/data/composite/things/track/withTrackArtDate.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import {input, templateCompositeFrom} from '#composite';
-import {isDate} from '#validators';
-
-import {raiseOutputWithoutDependency} from '#composite/control-flow';
-
-import withPropertyFromAlbum from './withPropertyFromAlbum.js';
-
-export default templateCompositeFrom({
-  annotation: `withTrackArtDate`,
-
-  inputs: {
-    from: input({
-      validate: isDate,
-      defaultDependency: '_coverArtDate',
-      acceptsNull: true,
-    }),
-  },
-
-  outputs: ['#trackArtDate'],
-
-  steps: () => [
-    raiseOutputWithoutDependency({
-      dependency: 'hasUniqueCoverArt',
-      mode: input.value('falsy'),
-      output: input.value({'#trackArtDate': null}),
-    }),
-
-    {
-      dependencies: [input('from')],
-      compute: (continuation, {
-        [input('from')]: from,
-      }) =>
-        (from
-          ? continuation.raiseOutput({'#trackArtDate': from})
-          : continuation()),
-    },
-
-    withPropertyFromAlbum({
-      property: input.value('trackArtDate'),
-    }),
-
-    {
-      dependencies: ['#album.trackArtDate'],
-      compute: (continuation, {
-        ['#album.trackArtDate']: albumTrackArtDate,
-      }) =>
-        (albumTrackArtDate
-          ? continuation.raiseOutput({'#trackArtDate': albumTrackArtDate})
-          : continuation()),
-    },
-
-    {
-      dependencies: ['date'],
-      compute: (continuation, {date}) =>
-        continuation({'#trackArtDate': date}),
-    },
-  ],
-});
diff --git a/src/data/things/track.js b/src/data/things/track.js
index 62333136..798f3ca3 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -89,7 +89,6 @@ import {
   withOtherReleases,
   withPropertyFromAlbum,
   withSuffixDirectoryFromAlbum,
-  withTrackArtDate,
   withTrackNumber,
 } from '#composite/things/track';
 
@@ -361,13 +360,26 @@ export class Track extends Thing {
     ],
 
     coverArtDate: [
-      withTrackArtDate({
-        from: input.updateValue({
-          validate: isDate,
-        }),
+      exitWithoutDependency({
+        dependency: 'hasUniqueCoverArt',
+        mode: input.value('falsy'),
       }),
 
-      exposeDependency({dependency: '#trackArtDate'}),
+      exposeUpdateValueOrContinue({
+        validate: input.value(isDate),
+      }),
+
+      withPropertyFromAlbum({
+        property: input.value('trackArtDate'),
+      }),
+
+      exposeDependencyOrContinue({
+        dependency: '#album.trackArtDate',
+      }),
+
+      exposeDependency({
+        dependency: 'date',
+      }),
     ],
 
     coverArtFileExtension: [