« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/track.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things/track.js')
-rw-r--r--src/data/things/track.js21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/data/things/track.js b/src/data/things/track.js
index 41c92092..fcfd39c7 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -411,21 +411,34 @@ function withAlbum({
         }),
     },
 
+    withResultOfAvailabilityCheck({
+      fromDependency: '#album',
+      mode: 'null',
+      into: '#albumAvailability',
+    }),
+
     {
-      dependencies: ['#album'],
+      dependencies: ['#albumAvailability'],
       options: {notFoundMode},
       mapContinuation: {into},
 
       compute: ({
-        '#album': album,
+        '#albumAvailability': albumAvailability,
         '#options': {notFoundMode},
       }, continuation) =>
-        (album
-          ? continuation.raise({into: album})
+        (albumAvailability
+          ? continuation()
           : (notFoundMode === 'exit'
               ? continuation.exit(null)
               : continuation.raise({into: null}))),
     },
+
+    {
+      dependencies: ['#album'],
+      mapContinuation: {into},
+      compute: ({'#album': album}, continuation) =>
+        continuation({into: album}),
+    },
   ]);
 }