« get me outta code hell

data: isOriginalRelease -> isMainRelease, etc - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/composite/things/track/inheritContributionListFromMainRelease.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-02-19 16:24:14 -0400
committer(quasar) nebula <qznebula@protonmail.com>2025-03-02 08:24:12 -0400
commit76e508ffe3818a78fb941ecde05fe9c269e8bc22 (patch)
tree3dcc62ca4b91799e59dab75a4dcf535e127d5e2b /src/data/composite/things/track/inheritContributionListFromMainRelease.js
parent2bbaa9a58728269f654e48fd9888a309ab890881 (diff)
data: isOriginalRelease -> isMainRelease, etc
Also isRerelease -> isSecondaryRelease

Im sure this is completely bug free and will not
involve squashing one million additional commits
Diffstat (limited to 'src/data/composite/things/track/inheritContributionListFromMainRelease.js')
-rw-r--r--src/data/composite/things/track/inheritContributionListFromMainRelease.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/data/composite/things/track/inheritContributionListFromMainRelease.js b/src/data/composite/things/track/inheritContributionListFromMainRelease.js
new file mode 100644
index 00000000..89252feb
--- /dev/null
+++ b/src/data/composite/things/track/inheritContributionListFromMainRelease.js
@@ -0,0 +1,44 @@
+// Like inheritFromMainRelease, but tuned for contributions.
+// Recontextualizes contributions for this track.
+
+import {input, templateCompositeFrom} from '#composite';
+
+import {exposeDependency, raiseOutputWithoutDependency}
+  from '#composite/control-flow';
+import {withRecontextualizedContributionList, withRedatedContributionList}
+  from '#composite/wiki-data';
+
+import withDate from './withDate.js';
+import withPropertyFromMainRelease
+  from './withPropertyFromMainRelease.js';
+
+export default templateCompositeFrom({
+  annotation: `inheritContributionListFromMainRelease`,
+
+  steps: () => [
+    withPropertyFromMainRelease({
+      property: input.thisProperty(),
+      notFoundValue: input.value([]),
+    }),
+
+    raiseOutputWithoutDependency({
+      dependency: '#isSecondaryRelease',
+      mode: input.value('falsy'),
+    }),
+
+    withRecontextualizedContributionList({
+      list: '#mainReleaseValue',
+    }),
+
+    withDate(),
+
+    withRedatedContributionList({
+      list: '#mainReleaseValue',
+      date: '#date',
+    }),
+
+    exposeDependency({
+      dependency: '#mainReleaseValue',
+    }),
+  ],
+});