« get me outta code hell

Merge branch 'preview' into time-tooltips - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/validators.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-12-03 17:53:51 -0400
committer(quasar) nebula <qznebula@protonmail.com>2023-12-03 17:53:51 -0400
commit7039d7fa471318df40c1905cd5ac52688dc6adcf (patch)
tree6c859ab2b0ee7bf86089475952ec529f40b95b83 /src/data/things/validators.js
parent168efd0f2685fa00259fffc9f26c7f6a30a61991 (diff)
parent2d054508f58147f5968a10f39c2f87ba62dd91f7 (diff)
Merge branch 'preview' into time-tooltips
Diffstat (limited to 'src/data/things/validators.js')
-rw-r--r--src/data/things/validators.js25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/data/things/validators.js b/src/data/things/validators.js
index 55eedbcf..ac91b456 100644
--- a/src/data/things/validators.js
+++ b/src/data/things/validators.js
@@ -429,13 +429,6 @@ export function isURL(string) {
   return true;
 }
 
-export const isAdditionalName = validateProperties({
-  name: isName,
-  annotation: optional(isStringNonEmpty),
-});
-
-export const isAdditionalNameList = validateArrayItems(isAdditionalName);
-
 export function validateReference(type = 'track') {
   return (ref) => {
     isStringNonEmpty(ref);
@@ -557,6 +550,24 @@ export function validateWikiData({
   };
 }
 
+export const isAdditionalName = validateProperties({
+  name: isName,
+  annotation: optional(isStringNonEmpty),
+
+  // TODO: This only allows indicating sourcing from a track.
+  // That's okay for the current limited use of "from", but
+  // could be expanded later.
+  from:
+    // Double TODO: Explicitly allowing both references and
+    // live objects to co-exist is definitely weird, and
+    // altogether questions the way we define validators...
+    optional(oneOf(
+      validateReferenceList('track'),
+      validateWikiData({referenceType: 'track'}))),
+});
+
+export const isAdditionalNameList = validateArrayItems(isAdditionalName);
+
 // Compositional utilities
 
 export function oneOf(...checks) {