« get me outta code hell

Merge branch 'fast-link-wiki-data' into preview - 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:
author(quasar) nebula <qznebula@protonmail.com>2023-11-04 21:22:53 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-11-04 21:22:53 -0300
commit0175df41994ed44d2dded79ac21badf463140e14 (patch)
tree950f92e8ee963fced5b16d4e5052e6d9d38950b4 /src/data/things/composite.js
parent8e174abde6a6b9b46e2cf885115c58bedcfd0802 (diff)
parent527e4618fdc57d80ac79ca9ceb3eed60fca90d6b (diff)
Merge branch 'fast-link-wiki-data' into preview
Diffstat (limited to 'src/data/things/composite.js')
-rw-r--r--src/data/things/composite.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/data/things/composite.js b/src/data/things/composite.js
index 51525bc..113f0a4 100644
--- a/src/data/things/composite.js
+++ b/src/data/things/composite.js
@@ -637,6 +637,10 @@ export function compositeFrom(description) {
 
   const compositionNests = description.compose ?? true;
 
+  if (compositionNests && empty(steps)) {
+    aggregate.push(new TypeError(`Expected at least one step`));
+  }
+
   // Steps default to exposing if using a shorthand syntax where flags aren't
   // specified at all.
   const stepsExpose =
@@ -802,8 +806,8 @@ export function compositeFrom(description) {
     });
   }
 
-  if (!compositionNests && !anyStepsCompute && !anyStepsTransform) {
-    aggregate.push(new TypeError(`Expected at least one step to compute or transform`));
+  if (!compositionNests && !compositionUpdates && !anyStepsCompute) {
+    aggregate.push(new TypeError(`Expected at least one step to compute`));
   }
 
   aggregate.close();
@@ -1241,8 +1245,10 @@ export function compositeFrom(description) {
         expose.cache = base.cacheComposition;
       }
     } else if (compositionUpdates) {
-      expose.transform = (value, dependencies) =>
-        _wrapper(value, null, dependencies);
+      if (!empty(steps)) {
+        expose.transform = (value, dependencies) =>
+          _wrapper(value, null, dependencies);
+      }
     } else {
       expose.compute = (dependencies) =>
         _wrapper(noTransformSymbol, null, dependencies);