« get me outta code hell

Revert "contracts: highly dysfunctional ContractManager" - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateAlbumSidebarGroupBox.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-05-25 08:54:28 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-05-25 08:54:28 -0300
commitb11cd3418188b8c4e4c8346577f9f7577736f807 (patch)
tree93ea9f2986fc378e7054c99f7e59c536cc2d5e20 /src/content/dependencies/generateAlbumSidebarGroupBox.js
parent403c63afd7a9cc7ec2995d5200a6df8527fa3558 (diff)
Revert "contracts: highly dysfunctional ContractManager"
This reverts commit 63b1b5b6fd14d3bacdcb979298b4fa669de4f20b.
Diffstat (limited to 'src/content/dependencies/generateAlbumSidebarGroupBox.js')
-rw-r--r--src/content/dependencies/generateAlbumSidebarGroupBox.js68
1 files changed, 30 insertions, 38 deletions
diff --git a/src/content/dependencies/generateAlbumSidebarGroupBox.js b/src/content/dependencies/generateAlbumSidebarGroupBox.js
index b3ee0ab..4e46c93 100644
--- a/src/content/dependencies/generateAlbumSidebarGroupBox.js
+++ b/src/content/dependencies/generateAlbumSidebarGroupBox.js
@@ -5,53 +5,45 @@ export default {
   extraDependencies: ['html', 'language', 'transformMultiline'],
 
   contracts: {
-    relations: {
-      hook(contract, [relation, album, group]) {
-        contract.provide({
-          group, album,
-
-          urls: contract.selectProperty(group, 'urls'),
-          adjacentAlbums: contract.subcontract('adjacentAlbumsInGroup', album, group),
-        });
-      },
+    relations(contract, [album, group]) {
+      contract.provide({
+        group, album,
 
-      compute({relation, group, album, urls, adjacentAlbums}) {
-        const relations = {};
+        urls: contract.selectProperty(group, 'urls'),
+        adjacentAlbums: contract.subcontract('adjacentAlbumsInGroup', album, group),
+      });
+    },
+  },
 
-        relations.groupLink =
-          relation('linkGroup', group);
+  relations(relation, {group, album, urls, adjacentAlbums}) {
+    const relations = {};
 
-        relations.externalLinks =
-          urls.map(url =>
-            relation('linkExternal', urls));
+    relations.groupLink =
+      relation('linkGroup', group);
 
-        const {previousAlbum, nextAlbum} = adjacentAlbums;
+    relations.externalLinks =
+      urls.map(url =>
+        relation('linkExternal', urls));
 
-        if (previousAlbum) {
-          relations.previousAlbumLink =
-            relation('linkAlbum', previousAlbum);
-        }
+    const {previousAlbum, nextAlbum} = adjacentAlbums;
 
-        if (nextAlbum) {
-          relations.nextAlbumLink =
-            relation('linkAlbum', nextAlbum);
-        }
+    if (previousAlbum) {
+      relations.previousAlbumLink =
+        relation('linkAlbum', previousAlbum);
+    }
 
-        return relations;
-      },
-    },
+    if (nextAlbum) {
+      relations.nextAlbumLink =
+        relation('linkAlbum', nextAlbum);
+    }
 
-    data: {
-      hook(contract, [album, group]) {
-        contract.provide({
-          description: contract.selectProperty(group, 'descriptionShort'),
-        });
-      },
+    return relations;
+  },
 
-      compute({description}) {
-        return {description};
-      },
-    },
+  data(album, group) {
+    return {
+      description: group.descriptionShort,
+    };
   },
 
   generate(data, relations, {html, language, transformMultiline}) {