« get me outta code hell

urls: /vgm-album/ -> /album/vgm/ - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/album/Album.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-05-28 14:50:30 -0300
committer(quasar) nebula <qznebula@protonmail.com>2026-05-28 14:50:30 -0300
commit938fa447722c5db6679d4c6ccbfbc876b6b54190 (patch)
tree38c8e2ed9eeb831d8f660f6a995961b14029d61c /src/data/things/album/Album.js
parent5dd1ffc055a3656d8f3fec3c8ffe4a2b1fd59237 (diff)
urls: /vgm-album/ -> /album/vgm/
Diffstat (limited to 'src/data/things/album/Album.js')
-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({