« 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: bb3e8983d66c591457374529372481762cbf561b (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
// 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 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),
      }),
    },
  ],
});