« get me outta code hell

data: load art tags from tags.yaml again, too - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-07-17 05:41:00 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-07-17 05:41:00 -0300
commit82a6098d64b17c7c21dd5c5db64b78da9a7e9bb3 (patch)
tree3aa5745da978701db8ff6147069190e248a00523
parent1ef73210b128dc63a77541c254825519c6b54808 (diff)
data: load art tags from tags.yaml again, too
-rw-r--r--src/data/things/art-tag.js17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/data/things/art-tag.js b/src/data/things/art-tag.js
index 5327d8f1..fff724cb 100644
--- a/src/data/things/art-tag.js
+++ b/src/data/things/art-tag.js
@@ -1,5 +1,7 @@
 export const DATA_ART_TAGS_DIRECTORY = 'art-tags';
+export const ART_TAG_DATA_FILE = 'tags.yaml';
 
+import {readFile} from 'node:fs/promises';
 import * as path from 'node:path';
 
 import {input} from '#composite';
@@ -193,10 +195,17 @@ export class ArtTag extends Thing {
     title: `Process art tags file`,
 
     files: dataPath =>
-      traverse(path.join(dataPath, DATA_ART_TAGS_DIRECTORY), {
-        filterFile: name => path.extname(name) === '.yaml',
-        prefixPath: DATA_ART_TAGS_DIRECTORY,
-      }),
+      Promise.allSettled([
+        readFile(path.join(dataPath, ART_TAG_DATA_FILE))
+          .then(() => [ART_TAG_DATA_FILE]),
+
+        traverse(path.join(dataPath, DATA_ART_TAGS_DIRECTORY), {
+          filterFile: name => path.extname(name) === '.yaml',
+          prefixPath: DATA_ART_TAGS_DIRECTORY,
+        }),
+      ]).then(results => results
+          .filter(({status}) => status === 'fulfilled')
+          .flatMap(({value}) => value)),
 
     documentMode: allTogether,
     documentThing: ArtTag,