« get me outta code hell

withOtherReleases.js « track « things « composite « data « src - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/composite/things/track/withOtherReleases.js
blob: 0639742ffab72ffdcd01d0aa0504e4c40789c8c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Gets all releases of the current track *except* this track itself;
// in other words, all other releases of the current track.

import {input, templateCompositeFrom} from '#composite';

import {exitWithoutDependency} from '#composite/control-flow';
import {withPropertyFromObject} from '#composite/data';

import withAllReleases from './withAllReleases.js';

export default templateCompositeFrom({
  annotation: `withOtherReleases`,

  outputs: ['#otherReleases'],

  steps: () => [
    withAllReleases(),

    {
      dependencies: [input.myself(), '#allReleases'],
      compute: (continuation, {
        [input.myself()]: thisTrack,
        ['#allReleases']: allReleases,
      }) => continuation({
        ['#otherReleases']:
          allReleases.filter(track => track !== thisTrack),
      }),
    },
  ],
});