« get me outta code hell

data: concise-retouch remaining toplevel property descriptors - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/contribution.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-12-06 13:25:28 -0400
committer(quasar) nebula <qznebula@protonmail.com>2025-12-06 13:25:28 -0400
commitc7cc130f97c2a0f390ba0e07e3aa048395636817 (patch)
tree91e4e4b5b1d5c70b364dc7e530b424ea3e422b09 /src/data/things/contribution.js
parentf2161a3fe8ff9b574f53156d08ca7853427be8e4 (diff)
data: concise-retouch remaining toplevel property descriptors
Diffstat (limited to 'src/data/things/contribution.js')
-rw-r--r--src/data/things/contribution.js143
1 files changed, 36 insertions, 107 deletions
diff --git a/src/data/things/contribution.js b/src/data/things/contribution.js
index 41b57b7b..1187f75d 100644
--- a/src/data/things/contribution.js
+++ b/src/data/things/contribution.js
@@ -2,11 +2,10 @@ import {inspect} from 'node:util';
 
 import CacheableObject from '#cacheable-object';
 import {colors} from '#cli';
-import {input} from '#composite';
+import {input, V} from '#composite';
 import {empty} from '#sugar';
 import Thing from '#thing';
-import {isBoolean, isStringNonEmpty, isThing, validateReference}
-  from '#validators';
+import {isBoolean, isStringNonEmpty, isThing} from '#validators';
 
 import {simpleDate, singleReference, soupyFind}
   from '#composite/wiki-properties';
@@ -82,9 +81,7 @@ export class Contribution extends Thing {
             : continuation()),
       },
 
-      exposeConstant({
-        value: input.value(true),
-      }),
+      exposeConstant(V(true)),
     ],
 
     countInDurationTotals: [
@@ -94,15 +91,10 @@ export class Contribution extends Thing {
         validate: input.value(isBoolean),
       }),
 
-      withPropertyFromObject({
-        object: 'thing',
-        property: input.value('duration'),
-      }),
-
-      exitWithoutDependency({
-        dependency: '#thing.duration',
-        mode: input.value('falsy'),
+      withPropertyFromObject('thing', V('duration')),
+      exitWithoutDependency('#thing.duration', {
         value: input.value(false),
+        mode: input.value('falsy'),
       }),
 
       {
@@ -118,9 +110,7 @@ export class Contribution extends Thing {
             : continuation()),
       },
 
-      exposeConstant({
-        value: input.value(true),
-      }),
+      exposeConstant(V(true)),
     ],
 
     // Update only
@@ -129,11 +119,7 @@ export class Contribution extends Thing {
 
     // Expose only
 
-    isContribution: [
-      exposeConstant({
-        value: input.value(true),
-      }),
-    ],
+    isContribution: exposeConstant(V(true)),
 
     context: [
       withContributionContext(),
@@ -155,32 +141,24 @@ export class Contribution extends Thing {
     ],
 
     matchingPresets: [
-      withPropertyFromObject({
-        object: 'thing',
+      withPropertyFromObject('thing', {
         property: input.value('wikiInfo'),
         internal: input.value(true),
       }),
 
-      exitWithoutDependency({
-        dependency: '#thing.wikiInfo',
-        value: input.value([]),
-      }),
+      exitWithoutDependency('#thing.wikiInfo', V([])),
 
-      withPropertyFromObject({
-        object: '#thing.wikiInfo',
-        property: input.value('contributionPresets'),
-      }).outputs({
-        '#thing.wikiInfo.contributionPresets': '#contributionPresets',
-      }),
+      withPropertyFromObject('#thing.wikiInfo', V('contributionPresets'))
+        .outputs({'#thing.wikiInfo.contributionPresets': '#contributionPresets'}),
 
-      exitWithoutDependency({
-        dependency: '#contributionPresets',
-        mode: input.value('empty'),
+      exitWithoutDependency('#contributionPresets', {
         value: input.value([]),
+        mode: input.value('empty'),
       }),
 
       withContributionContext(),
 
+      // TODO: implementing this with compositional filters would be fun
       {
         dependencies: [
           '#contributionPresets',
@@ -206,7 +184,6 @@ export class Contribution extends Thing {
                 preset.annotation === annotation),
         })
       },
-
     ],
 
     // All the contributions from the list which includes this contribution.
@@ -214,27 +191,13 @@ export class Contribution extends Thing {
     // artist, but also this very contribution. It doesn't mix contributions
     // exposed on different properties.
     associatedContributions: [
-      exitWithoutDependency({
-        dependency: 'thing',
-        value: input.value([]),
-      }),
-
-      exitWithoutDependency({
-        dependency: 'thingProperty',
-        value: input.value([]),
-      }),
+      exitWithoutDependency('thing', V([])),
+      exitWithoutDependency('thingProperty', V([])),
 
-      withPropertyFromObject({
-        object: 'thing',
-        property: 'thingProperty',
-      }).outputs({
-        '#value': '#contributions',
-      }),
+      withPropertyFromObject('thing', 'thingProperty')
+        .outputs({'#value': '#contributions'}),
 
-      withPropertyFromList({
-        list: '#contributions',
-        property: input.value('annotation'),
-      }),
+      withPropertyFromList('#contributions', V('annotation')),
 
       {
         dependencies: ['#contributions.annotation', 'annotation'],
@@ -250,71 +213,37 @@ export class Contribution extends Thing {
         }),
       },
 
-      withFilteredList({
-        list: '#contributions',
-        filter: '#likeContributionsFilter',
-      }).outputs({
-        '#filteredList': '#contributions',
-      }),
+      withFilteredList('#contributions', '#likeContributionsFilter')
+        .outputs({'#filteredList': '#contributions'}),
 
-      exposeDependency({
-        dependency: '#contributions',
-      }),
+      exposeDependency('#contributions'),
     ],
 
     previousBySameArtist: [
-      withContainingReverseContributionList().outputs({
-        '#containingReverseContributionList': '#list',
-      }),
+      withContainingReverseContributionList()
+        .outputs({'#containingReverseContributionList': '#list'}),
 
-      exitWithoutDependency({
-        dependency: '#list',
-      }),
-
-      withNearbyItemFromList({
-        list: '#list',
-        item: input.myself(),
-        offset: input.value(-1),
-      }),
+      exitWithoutDependency('#list'),
 
-      exposeDependency({
-        dependency: '#nearbyItem',
-      }),
+      withNearbyItemFromList('#list', input.myself(), V(-1)),
+      exposeDependency('#nearbyItem'),
     ],
 
     nextBySameArtist: [
-      withContainingReverseContributionList().outputs({
-        '#containingReverseContributionList': '#list',
-      }),
+      withContainingReverseContributionList()
+        .outputs({'#containingReverseContributionList': '#list'}),
 
-      exitWithoutDependency({
-        dependency: '#list',
-      }),
-
-      withNearbyItemFromList({
-        list: '#list',
-        item: input.myself(),
-        offset: input.value(+1),
-      }),
+      exitWithoutDependency('#list'),
 
-      exposeDependency({
-        dependency: '#nearbyItem',
-      }),
+      withNearbyItemFromList('#list', input.myself(), V(+1)),
+      exposeDependency('#nearbyItem'),
     ],
 
     groups: [
-      withPropertyFromObject({
-        object: 'thing',
-        property: input.value('groups'),
-      }),
+      withPropertyFromObject('thing', V('groups')),
+      exposeDependencyOrContinue('#thing.groups'),
 
-      exposeDependencyOrContinue({
-        dependency: '#thing.groups',
-      }),
-
-      exposeConstant({
-        value: input.value([]),
-      }),
+      exposeConstant(V([])),
     ],
   });