« get me outta code hell

data: make various wiki-properties fn's into compositions - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/composite/wiki-properties/fileExtension.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-12-06 13:55:33 -0400
committer(quasar) nebula <qznebula@protonmail.com>2025-12-06 13:55:33 -0400
commit722fe82043e74bdb7c10ed214a9f3006a26ff42b (patch)
tree2949fa4b4235acef5cf0b012c6071d7ed0b57bf2 /src/data/composite/wiki-properties/fileExtension.js
parentc7cc130f97c2a0f390ba0e07e3aa048395636817 (diff)
data: make various wiki-properties fn's into compositions
Diffstat (limited to 'src/data/composite/wiki-properties/fileExtension.js')
-rw-r--r--src/data/composite/wiki-properties/fileExtension.js29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/data/composite/wiki-properties/fileExtension.js b/src/data/composite/wiki-properties/fileExtension.js
index c926fa8b..fa933f56 100644
--- a/src/data/composite/wiki-properties/fileExtension.js
+++ b/src/data/composite/wiki-properties/fileExtension.js
@@ -1,13 +1,26 @@
 // A file extension! Or the default, if provided when calling this.
 
+import {input, templateCompositeFrom} from '#composite';
 import {isFileExtension} from '#validators';
 
-// TODO: Not templateCompositeFrom.
+export default templateCompositeFrom({
+  annotation: 'name',
 
-export default function(defaultFileExtension = null) {
-  return {
-    flags: {update: true, expose: true},
-    update: {validate: isFileExtension},
-    expose: {transform: (value) => value ?? defaultFileExtension},
-  };
-}
+  compose: false,
+
+  inputs: {
+    default: input({validate: isFileExtension, acceptsNull: true}),
+  },
+
+  update: {
+    validate: isFileExtension,
+  },
+
+  steps: () => [
+    {
+      dependencies: [input('default')],
+      transform: (value, {[input('default')]: defaultValue}) =>
+        value ?? defaultValue,
+    },
+  ],
+});
\ No newline at end of file