« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data
diff options
context:
space:
mode:
Diffstat (limited to 'src/data')
-rw-r--r--src/data/things/album/Album.js29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/data/things/album/Album.js b/src/data/things/album/Album.js
index 369186f3..2a21d52e 100644
--- a/src/data/things/album/Album.js
+++ b/src/data/things/album/Album.js
@@ -32,8 +32,6 @@ import {
 } from '#yaml';
 
 import {withFlattenedList, withPropertyFromList} from '#composite/data';
-import {withRecontextualizedContributionList, withResolvedContribs}
-  from '#composite/wiki-data';
 
 import {
   exitWithoutDependency,
@@ -44,6 +42,12 @@ import {
 } from '#composite/control-flow';
 
 import {
+  withDirectory,
+  withRecontextualizedContributionList,
+  withResolvedContribs,
+} from '#composite/wiki-data';
+
+import {
   color,
   commentatorArtists,
   constitutibleArtwork,
@@ -51,7 +55,6 @@ import {
   contentString,
   contributionList,
   dimensions,
-  directory,
   fileExtension,
   flag,
   hasArtwork,
@@ -120,7 +123,25 @@ export class Album extends Thing {
       },
     },
 
-    directory: directory(),
+    directory: [
+      withDirectory({
+        directory:
+          input.updateValue({
+            validate(value) {
+              isDirectory(value);
+
+              if (value === 'vgm') {
+                throw new Error(
+                  `"vgm" is a reserved directory and can't be used albums`);
+              }
+
+              return true;
+            },
+          }),
+      }),
+
+      exposeDependency('#directory'),
+    ],
 
     directorySuffixForTracks: [
       exposeUpdateValueOrContinue({