From f12bbec38694c30a79655a0be54768cd83f1efb5 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 30 Jan 2024 10:50:47 -0400 Subject: data: artist: combine artistData with artistAliasData --- src/data/things/artist.js | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src/data/things/artist.js b/src/data/things/artist.js index 5e12f38..a12dc96 100644 --- a/src/data/things/artist.js +++ b/src/data/things/artist.js @@ -6,7 +6,7 @@ import CacheableObject from '#cacheable-object'; import {colors} from '#cli'; import {input} from '#composite'; import find from '#find'; -import {unique} from '#sugar'; +import {stitchArrays, unique} from '#sugar'; import Thing from '#thing'; import {isName, validateArrayItems} from '#validators'; import {sortAlphabetically} from '#wiki-data'; @@ -276,26 +276,34 @@ export class Artist extends Thing { documentThing: Artist, save(results) { - const artistData = results; - - const artistAliasData = results.flatMap((artist) => { - const origRef = Thing.getReference(artist); - return artist.aliasNames?.map((name) => { - const alias = new Artist(); - alias.name = name; - alias.isAlias = true; - alias.aliasedArtist = origRef; - alias.artistData = artistData; - return alias; - }) ?? []; - }); - - return {artistData, artistAliasData}; + const artists = results; + + const artistRefs = + artists.map(artist => Thing.getReference(artist)); + + const artistAliasNames = + artists.map(artist => artist.aliasNames); + + const artistAliases = + stitchArrays({ + originalArtistRef: artistRefs, + aliasNames: artistAliasNames, + }).flatMap(({originalArtistRef, aliasNames}) => + aliasNames.map(name => { + const alias = new Artist(); + alias.name = name; + alias.isAlias = true; + alias.aliasedArtist = originalArtistRef; + return alias; + })); + + const artistData = [...artists, ...artistAliases]; + + return {artistData}; }, - sort({artistData, artistAliasData}) { + sort({artistData}) { sortAlphabetically(artistData); - sortAlphabetically(artistAliasData); }, }); -- cgit 1.3.0-6-gf8a5