« get me outta code hell

data: MusicVideo: constitute urls from url, the other way around - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-04-11 12:42:36 -0300
committer(quasar) nebula <qznebula@protonmail.com>2026-04-11 12:42:36 -0300
commit60eee911f93905704bd49f914cba850b0be873c0 (patch)
tree185bb32bd7ee883cbf6e8083e022ecedce8fa3c0 /src/data/things
parent9b7a21bc06e5568ceccdd72046e75f35fc11d58e (diff)
data: MusicVideo: constitute urls from url, the other way around
Diffstat (limited to 'src/data/things')
-rw-r--r--src/data/things/MusicVideo.js18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/data/things/MusicVideo.js b/src/data/things/MusicVideo.js
index c832072b..7037ee59 100644
--- a/src/data/things/MusicVideo.js
+++ b/src/data/things/MusicVideo.js
@@ -3,7 +3,8 @@ import {inspect} from 'node:util';
 import {colors} from '#cli';
 import {input, V} from '#composite';
 import Thing from '#thing';
-import {is, isDate, isStringNonEmpty, isURL} from '#validators';
+import {is, isDate, isStringNonEmpty, isURL, validateArrayItems}
+  from '#validators';
 import {parseContributors, parseDate} from '#yaml';
 
 import {constituteFrom} from '#composite/wiki-data';
@@ -23,7 +24,6 @@ import {
   soupyFind,
   soupyReverse,
   thing,
-  urls,
 } from '#composite/wiki-properties';
 
 export class MusicVideo extends Thing {
@@ -79,7 +79,19 @@ export class MusicVideo extends Thing {
       },
     ],
 
-    urls: urls(),
+    urls: [
+      exposeUpdateValueOrContinue({
+        validate: input.value(
+          validateArrayItems(isURL)),
+      }),
+
+      exitWithoutDependency('url', V([])),
+
+      {
+        dependencies: ['url'],
+        compute: ({url}) => [url],
+      },
+    ],
 
     coverArtFileExtension: fileExtension(V('jpg')),
     coverArtDimensions: dimensions(),