« get me outta code hell

data: {Album,TrackSection}.excludingTrackURLs - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/Track.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-05-19 16:29:21 -0300
committer(quasar) nebula <qznebula@protonmail.com>2026-05-19 16:29:21 -0300
commite9ec97e5063f1255b2f03a5dc31c1a88aa142aa0 (patch)
treeadd634a57869741f29b605a0f954e6838866528d /src/data/things/Track.js
parent06e32433951750f7c364b9faba9f6705a414d3b0 (diff)
data: {Album,TrackSection}.excludingTrackURLs
Diffstat (limited to 'src/data/things/Track.js')
-rw-r--r--src/data/things/Track.js20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/data/things/Track.js b/src/data/things/Track.js
index 9e35368b..f8eac729 100644
--- a/src/data/things/Track.js
+++ b/src/data/things/Track.js
@@ -16,6 +16,7 @@ import {
   isContentString,
   isContributionList,
   isDate,
+  isExcludingURLsReason,
   isFileExtension,
   validateReference,
 } from '#validators';
@@ -381,19 +382,14 @@ export class Track extends Thing {
       },
     ],
 
-    excludingURLs: {
-      flags: {update: true, expose: true},
+    excludingURLs: [
+      exposeUpdateValueOrContinue({
+        validate: input.value(isExcludingURLsReason),
+      }),
 
-      update: {
-        validate:
-          is(...[
-            'quietly',
-            'generic',
-            'not clearly public',
-            'paid bonus track',
-          ]),
-      },
-    },
+      withPropertyFromObject('trackSection', V('excludingTrackURLs')),
+      exposeDependency('#trackSection.excludingTrackURLs'),
+    ],
 
     urls: [
       {