« get me outta code hell

data: withMainReleaseTrack: main releases only - 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-10-08 06:10:38 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-10-08 06:10:38 -0300
commitf85c5329c825f259f0bc30fa0047f056b4f290ba (patch)
tree29873511145b339c0d4c148e996635ce83f6d54f /src
parent83cad814dcde98e6596502d74e48c9627bb95897 (diff)
data: withMainReleaseTrack: main releases only
Diffstat (limited to 'src')
-rw-r--r--src/data/composite/things/track/withMainReleaseTrack.js31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/data/composite/things/track/withMainReleaseTrack.js b/src/data/composite/things/track/withMainReleaseTrack.js
index e498582d..6371e895 100644
--- a/src/data/composite/things/track/withMainReleaseTrack.js
+++ b/src/data/composite/things/track/withMainReleaseTrack.js
@@ -8,8 +8,11 @@ import {input, templateCompositeFrom} from '#composite';
 import {onlyItem} from '#sugar';
 import {getKebabCase} from '#wiki-data';
 
-import {exitWithoutDependency, withResultOfAvailabilityCheck}
-  from '#composite/control-flow';
+import {
+  exitWithoutDependency,
+  withAvailabilityFilter,
+  withResultOfAvailabilityCheck,
+} from '#composite/control-flow';
 
 import {
   withFilteredList,
@@ -116,6 +119,30 @@ export default templateCompositeFrom({
 
     withPropertyFromList({
       list: '#mainRelease.tracks',
+      property: input.value('mainRelease'),
+      internal: input.value(true),
+    }),
+
+    withAvailabilityFilter({
+      from: '#mainRelease.tracks.mainRelease',
+    }),
+
+    withMappedList({
+      list: '#availabilityFilter',
+      map: input.value(item => !item),
+    }).outputs({
+      '#mappedList': '#availabilityFilter',
+    }),
+
+    withFilteredList({
+      list: '#mainRelease.tracks',
+      filter: '#availabilityFilter',
+    }).outputs({
+      '#filteredList': '#mainRelease.tracks',
+    }),
+
+    withPropertyFromList({
+      list: '#mainRelease.tracks',
       property: input.value('name'),
     }),