« 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/composite.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things/composite.js')
-rw-r--r--src/data/things/composite.js11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/data/things/composite.js b/src/data/things/composite.js
index c0f0ab0..34e550a 100644
--- a/src/data/things/composite.js
+++ b/src/data/things/composite.js
@@ -837,6 +837,16 @@ export function compositeFrom(description) {
       .filter(dependency => isInputToken(dependency))
       .some(token => getInputTokenShape(token) === 'input.updateValue');
 
+  // Update descriptions passed as the value in an input.updateValue() token,
+  // as provided as inputs for this composition.
+  const inputUpdateDescriptions =
+    Object.values(description.inputs ?? {})
+      .map(token =>
+        (getInputTokenShape(token) === 'input.updateValue'
+          ? getInputTokenValue(token)
+          : null))
+      .filter(Boolean);
+
   const base = composition.at(-1);
   const steps = composition.slice();
 
@@ -1396,6 +1406,7 @@ export function compositeFrom(description) {
     constructedDescriptor.update =
       Object.assign(
         {...description.update ?? {}},
+        ...inputUpdateDescriptions,
         ...stepUpdateDescriptions.flat());
   }