« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/data/composite/things/track/withAlwaysReferenceByDirectory.js29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/data/composite/things/track/withAlwaysReferenceByDirectory.js b/src/data/composite/things/track/withAlwaysReferenceByDirectory.js
index d27f7b23..52d72124 100644
--- a/src/data/composite/things/track/withAlwaysReferenceByDirectory.js
+++ b/src/data/composite/things/track/withAlwaysReferenceByDirectory.js
@@ -53,19 +53,28 @@ export default templateCompositeFrom({
     // logic on a completely unrelated context.
     {
       dependencies: [input.myself(), 'trackData', 'originalReleaseTrack'],
-      compute: (continuation, {
+      compute(continuation, {
         [input.myself()]: thisTrack,
         ['trackData']: trackData,
         ['originalReleaseTrack']: ref,
-      }) => continuation({
-        ['#originalRelease']:
-          (ref.startsWith('track:')
-            ? trackData.find(track => track.directory === ref.slice('track:'.length))
-            : trackData.find(track =>
-                track !== thisTrack &&
-                !CacheableObject.getUpdateValue(track, 'originalReleaseTrack') &&
-                track.name.toLowerCase() === ref.toLowerCase())),
-      })
+      }) {
+        let originalRelease;
+
+        if (ref.startsWith('track:')) {
+          const refDirectory = ref.slice('track:'.length);
+          originalRelease =
+            trackData.find(track => track.directory === refDirectory);
+        } else {
+          const refName = ref.toLowerCase();
+          originalRelease =
+            trackData.find(track =>
+              track.name.toLowerCase() === refName &&
+              track !== thisTrack &&
+              !CacheableObject.getUpdateValue(track, 'originalReleaseTrack'));
+        }
+
+        return continuation({['#originalRelease']: originalRelease});
+      },
     },
 
     exitWithoutDependency({