« get me outta code hell

cacheable-object, data: depend on computed values; initial compat - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-11-25 12:03:13 -0400
committer(quasar) nebula <qznebula@protonmail.com>2025-11-25 12:04:49 -0400
commit95c7c7032556d3adfc3107d11a3e14ab0f4c9145 (patch)
tree800d4f7dfe0997d9be1a16cd9586228b1a832dbd /src/data/things
parent3afd5e8f8d6b08ccb9e49e53b0da4423a7d23542 (diff)
cacheable-object, data: depend on computed values; initial compat
reaches live-dev-server serve with no errors and serves
homepage at all and apparently correctly

no page navigation performed
no full build performed

aimed for preserving existing logic
should be no subsequent changes to this commit (amend)
Diffstat (limited to 'src/data/things')
-rw-r--r--src/data/things/album.js70
-rw-r--r--src/data/things/content.js2
-rw-r--r--src/data/things/group.js12
-rw-r--r--src/data/things/index.js10
-rw-r--r--src/data/things/track.js6
-rw-r--r--src/data/things/wiki-info.js2
6 files changed, 54 insertions, 48 deletions
diff --git a/src/data/things/album.js b/src/data/things/album.js
index defb8a87..594046b9 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -155,7 +155,7 @@ export class Album extends Thing {
     // > Update & expose - Credits and contributors
 
     artistContribs: contributionList({
-      date: 'date',
+      date: '_date',
       artistProperty: input.value('albumArtistContributions'),
     }),
 
@@ -166,7 +166,7 @@ export class Album extends Thing {
         from: input.updateValue({validate: isContributionList}),
         thingProperty: input.thisProperty(),
         artistProperty: input.value('albumTrackArtistContributions'),
-        date: 'date',
+        date: '_date',
       }).outputs({
         '#resolvedContribs': '#trackArtistContribs',
       }),
@@ -177,7 +177,7 @@ export class Album extends Thing {
       }),
 
       withResolvedContribs({
-        from: 'artistContribs',
+        from: '_artistContribs',
         thingProperty: input.thisProperty(),
         artistProperty: input.value('albumTrackArtistContributions'),
         date: 'date',
@@ -209,13 +209,9 @@ export class Album extends Thing {
     // > Update & expose - Artworks
 
     coverArtworks: [
-      // This works, lol, because this array describes `expose.transform` for
-      // the coverArtworks property, and compositions generally access the
-      // update value, not what's exposed by property access out in the open.
-      // There's no recursion going on here.
       exitWithoutArtwork({
-        contribs: 'coverArtistContribs',
-        artworks: 'coverArtworks',
+        contribs: '_coverArtistContribs',
+        artworks: '_coverArtworks',
         value: input.value([]),
       }),
 
@@ -244,8 +240,8 @@ export class Album extends Thing {
 
     coverArtFileExtension: [
       exitWithoutArtwork({
-        contribs: 'coverArtistContribs',
-        artworks: 'coverArtworks',
+        contribs: '_coverArtistContribs',
+        artworks: '_coverArtworks',
       }),
 
       fileExtension('jpg'),
@@ -253,8 +249,8 @@ export class Album extends Thing {
 
     coverArtDimensions: [
       exitWithoutArtwork({
-        contribs: 'coverArtistContribs',
-        artworks: 'coverArtworks',
+        contribs: '_coverArtistContribs',
+        artworks: '_coverArtworks',
       }),
 
       dimensions(),
@@ -262,8 +258,8 @@ export class Album extends Thing {
 
     artTags: [
       exitWithoutArtwork({
-        contribs: 'coverArtistContribs',
-        artworks: 'coverArtworks',
+        contribs: '_coverArtistContribs',
+        artworks: '_coverArtworks',
         value: input.value([]),
       }),
 
@@ -275,8 +271,8 @@ export class Album extends Thing {
 
     referencedArtworks: [
       exitWithoutArtwork({
-        contribs: 'coverArtistContribs',
-        artworks: 'coverArtworks',
+        contribs: '_coverArtistContribs',
+        artworks: '_coverArtworks',
         value: input.value([]),
       }),
 
@@ -286,7 +282,7 @@ export class Album extends Thing {
     trackCoverArtistContribs: contributionList({
       // May be null, indicating cover art was added for tracks on the date
       // each track specifies, or else the track's own release date.
-      date: 'trackArtDate',
+      date: '_trackArtDate',
 
       // This is the "correct" value, but it gets overwritten - with the same
       // value - regardless.
@@ -301,7 +297,7 @@ export class Album extends Thing {
 
     wallpaperArtwork: [
       exitWithoutDependency({
-        dependency: 'wallpaperArtistContribs',
+        dependency: '_wallpaperArtistContribs',
         mode: input.value('empty'),
         value: input.value(null),
       }),
@@ -321,8 +317,8 @@ export class Album extends Thing {
 
     wallpaperFileExtension: [
       exitWithoutArtwork({
-        contribs: 'wallpaperArtistContribs',
-        artwork: 'wallpaperArtwork',
+        contribs: '_wallpaperArtistContribs',
+        artwork: '_wallpaperArtwork',
       }),
 
       fileExtension('jpg'),
@@ -330,8 +326,8 @@ export class Album extends Thing {
 
     wallpaperStyle: [
       exitWithoutArtwork({
-        contribs: 'wallpaperArtistContribs',
-        artwork: 'wallpaperArtwork',
+        contribs: '_wallpaperArtistContribs',
+        artwork: '_wallpaperArtwork',
       }),
 
       simpleString(),
@@ -340,8 +336,8 @@ export class Album extends Thing {
     wallpaperParts: [
       // kinda nonsensical or at least unlikely lol, but y'know
       exitWithoutArtwork({
-        contribs: 'wallpaperArtistContribs',
-        artwork: 'wallpaperArtwork',
+        contribs: '_wallpaperArtistContribs',
+        artwork: '_wallpaperArtwork',
         value: input.value([]),
       }),
 
@@ -350,7 +346,7 @@ export class Album extends Thing {
 
     bannerArtwork: [
       exitWithoutDependency({
-        dependency: 'bannerArtistContribs',
+        dependency: '_bannerArtistContribs',
         mode: input.value('empty'),
         value: input.value(null),
       }),
@@ -370,8 +366,8 @@ export class Album extends Thing {
 
     bannerFileExtension: [
       exitWithoutArtwork({
-        contribs: 'bannerArtistContribs',
-        artwork: 'bannerArtwork',
+        contribs: '_bannerArtistContribs',
+        artwork: '_bannerArtwork',
       }),
 
       fileExtension('jpg'),
@@ -379,8 +375,8 @@ export class Album extends Thing {
 
     bannerDimensions: [
       exitWithoutArtwork({
-        contribs: 'bannerArtistContribs',
-        artwork: 'bannerArtwork',
+        contribs: '_bannerArtistContribs',
+        artwork: '_bannerArtwork',
       }),
 
       dimensions(),
@@ -388,8 +384,8 @@ export class Album extends Thing {
 
     bannerStyle: [
       exitWithoutArtwork({
-        contribs: 'bannerArtistContribs',
-        artwork: 'bannerArtwork',
+        contribs: '_bannerArtistContribs',
+        artwork: '_bannerArtwork',
       }),
 
       simpleString(),
@@ -445,15 +441,15 @@ export class Album extends Thing {
 
     hasCoverArt: [
       withHasArtwork({
-        contribs: 'coverArtistContribs',
-        artworks: 'coverArtworks',
+        contribs: '_coverArtistContribs',
+        artworks: '_coverArtworks',
       }),
 
       exposeDependency({dependency: '#hasArtwork'}),
     ],
 
-    hasWallpaperArt: contribsPresent({contribs: 'wallpaperArtistContribs'}),
-    hasBannerArt: contribsPresent({contribs: 'bannerArtistContribs'}),
+    hasWallpaperArt: contribsPresent({contribs: '_wallpaperArtistContribs'}),
+    hasBannerArt: contribsPresent({contribs: '_bannerArtistContribs'}),
 
     tracks: [
       withTracks(),
@@ -1087,7 +1083,7 @@ export class TrackSection extends Thing {
       }),
 
       withDirectory({
-        directory: 'unqualifiedDirectory',
+        directory: '_unqualifiedDirectory',
       }).outputs({
         '#directory': '#unqualifiedDirectory',
       }),
diff --git a/src/data/things/content.js b/src/data/things/content.js
index 95836abd..21ee88f8 100644
--- a/src/data/things/content.js
+++ b/src/data/things/content.js
@@ -51,7 +51,7 @@ export class ContentEntry extends Thing {
 
     accessKind: [
       exitWithoutDependency({
-        dependency: 'accessDate',
+        dependency: '_accessDate',
       }),
 
       exposeUpdateValueOrContinue({
diff --git a/src/data/things/group.js b/src/data/things/group.js
index ac051343..076f0c8f 100644
--- a/src/data/things/group.js
+++ b/src/data/things/group.js
@@ -119,8 +119,8 @@ export class Group extends Thing {
       flags: {expose: true},
 
       expose: {
-        dependencies: ['this', 'reverse'],
-        compute: ({this: group, reverse}) =>
+        dependencies: ['this', '_reverse'],
+        compute: ({this: group, _reverse: reverse}) =>
           reverse.albumsWhoseGroupsInclude(group),
       },
     },
@@ -129,8 +129,8 @@ export class Group extends Thing {
       flags: {expose: true},
 
       expose: {
-        dependencies: ['this', 'reverse'],
-        compute: ({this: group, reverse}) =>
+        dependencies: ['this', '_reverse'],
+        compute: ({this: group, _reverse: reverse}) =>
           reverse.groupCategoriesWhichInclude(group, {unique: true})
             ?.color,
       },
@@ -140,8 +140,8 @@ export class Group extends Thing {
       flags: {expose: true},
 
       expose: {
-        dependencies: ['this', 'reverse'],
-        compute: ({this: group, reverse}) =>
+        dependencies: ['this', '_reverse'],
+        compute: ({this: group, _reverse: reverse}) =>
           reverse.groupCategoriesWhichInclude(group, {unique: true}) ??
           null,
       },
diff --git a/src/data/things/index.js b/src/data/things/index.js
index 1e9a5e52..09765fd2 100644
--- a/src/data/things/index.js
+++ b/src/data/things/index.js
@@ -58,6 +58,7 @@ const __dirname = path.dirname(
 function niceShowAggregate(error, ...opts) {
   showAggregate(error, {
     pathToFileURL: (f) => path.relative(__dirname, fileURLToPath(f)),
+    showClasses: false,
     ...opts,
   });
 }
@@ -152,6 +153,15 @@ function descriptorAggregateHelper({
   } catch (error) {
     niceShowAggregate(error);
     showFailedClasses(failedClasses);
+
+    /*
+    if (error.errors) {
+      for (const sub of error.errors) {
+        console.error(sub);
+      }
+    }
+    */
+
     return false;
   }
 }
diff --git a/src/data/things/track.js b/src/data/things/track.js
index 4a24a9e0..ff27e665 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -209,7 +209,7 @@ export class Track extends Thing {
       }),
 
       exposeDependencyOrContinue({
-        dependency: 'artistText',
+        dependency: '_artistText',
       }),
 
       withPropertyFromAlbum({
@@ -318,13 +318,13 @@ export class Track extends Thing {
       }),
 
       exitWithoutDependency({
-        dependency: 'lyrics',
+        dependency: '_lyrics',
         mode: input.value('empty'),
         value: input.value(false),
       }),
 
       withPropertyFromList({
-        list: 'lyrics',
+        list: '_lyrics',
         property: input.value('helpNeeded'),
       }),
 
diff --git a/src/data/things/wiki-info.js b/src/data/things/wiki-info.js
index 89248d11..73470b7d 100644
--- a/src/data/things/wiki-info.js
+++ b/src/data/things/wiki-info.js
@@ -92,7 +92,7 @@ export class WikiInfo extends Thing {
 
     enableSearch: [
       exitWithoutDependency({
-        dependency: 'searchDataAvailable',
+        dependency: '_searchDataAvailable',
         mode: input.value('falsy'),
         value: input.value(false),
       }),