From bd0741dcf0c23489bf710249ab8fd9ba647db843 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 25 May 2023 08:54:29 -0300 Subject: Revert "contracts: initial commit" This reverts commit 4280c6240b88dadc8e5ea187b78c10aca9dfc163. --- src/content/dependencies/generateAlbumSidebar.js | 46 +++++++--------------- .../dependencies/generateAlbumSidebarGroupBox.js | 22 ++++------- 2 files changed, 21 insertions(+), 47 deletions(-) (limited to 'src/content/dependencies') diff --git a/src/content/dependencies/generateAlbumSidebar.js b/src/content/dependencies/generateAlbumSidebar.js index 4eef62b2..bf6b091a 100644 --- a/src/content/dependencies/generateAlbumSidebar.js +++ b/src/content/dependencies/generateAlbumSidebar.js @@ -7,44 +7,26 @@ export default { extraDependencies: ['html'], - contracts: { - relations: { - hook(contract, [relation, album, track]) { - contract.provide({ - relation, album, track, - groups: contract.selectProperty(album, 'groups'), - trackSections: contract.selectProperty(album, 'trackSections'), - }); - }, + relations(relation, album, track) { + const relations = {}; - compute({relation, album, track, groups, trackSections}) { - const relations = {}; + relations.albumLink = + relation('linkAlbum', album); - relations.albumLink = - relation('linkAlbum', album); + relations.groupBoxes = + album.groups.map(group => + relation('generateAlbumSidebarGroupBox', album, group)); - relations.groupBoxes = - groups.map(group => - relation('generateAlbumSidebarGroupBox', album, group)); + relations.trackSections = + album.trackSections.map(trackSection => + relation('generateAlbumSidebarTrackSection', album, track, trackSection)); - relations.trackSections = - trackSections.map(trackSection => - relation('generateAlbumSidebarTrackSection', album, track, trackSection)); - - return relations; - }, - }, - - data: { - hook(contract, [album, track]) { - contract.provide({track}); - }, + return relations; + }, - compute({track}) { - return {isAlbumPage: !track}; - }, - }, + data(album, track) { + return {isAlbumPage: !track}; }, generate(data, relations, {html}) { diff --git a/src/content/dependencies/generateAlbumSidebarGroupBox.js b/src/content/dependencies/generateAlbumSidebarGroupBox.js index 4e46c931..0679e8fc 100644 --- a/src/content/dependencies/generateAlbumSidebarGroupBox.js +++ b/src/content/dependencies/generateAlbumSidebarGroupBox.js @@ -4,28 +4,20 @@ export default { contentDependencies: ['linkAlbum', 'linkExternal', 'linkGroup'], extraDependencies: ['html', 'language', 'transformMultiline'], - contracts: { - relations(contract, [album, group]) { - contract.provide({ - group, album, - - urls: contract.selectProperty(group, 'urls'), - adjacentAlbums: contract.subcontract('adjacentAlbumsInGroup', album, group), - }); - }, - }, - - relations(relation, {group, album, urls, adjacentAlbums}) { + relations(relation, album, group) { const relations = {}; relations.groupLink = relation('linkGroup', group); relations.externalLinks = - urls.map(url => - relation('linkExternal', urls)); + group.urls.map(url => + relation('linkExternal', url)); - const {previousAlbum, nextAlbum} = adjacentAlbums; + const albums = group.albums.filter(album => album.date); + const index = albums.indexOf(album); + const previousAlbum = (index > 0) && albums[index - 1]; + const nextAlbum = (index < albums.length - 1) && albums[index + 1]; if (previousAlbum) { relations.previousAlbumLink = -- cgit 1.3.0-6-gf8a5