diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-09-07 14:50:41 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-09-07 14:50:41 -0300 |
commit | d33effa272c3388640974648fe2888a284c6701c (patch) | |
tree | 4649a70ae8c5f1c12c2f9e10de93b4f6ce876a48 /src/data/things/track.js | |
parent | eb00f2993a1aaaba171ad6c918656552f80bb748 (diff) |
data: withAlbum: perform proper availability check on album
Diffstat (limited to 'src/data/things/track.js')
-rw-r--r-- | src/data/things/track.js | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/data/things/track.js b/src/data/things/track.js index 41c9209..fcfd39c 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -411,21 +411,34 @@ function withAlbum({ }), }, + withResultOfAvailabilityCheck({ + fromDependency: '#album', + mode: 'null', + into: '#albumAvailability', + }), + { - dependencies: ['#album'], + dependencies: ['#albumAvailability'], options: {notFoundMode}, mapContinuation: {into}, compute: ({ - '#album': album, + '#albumAvailability': albumAvailability, '#options': {notFoundMode}, }, continuation) => - (album - ? continuation.raise({into: album}) + (albumAvailability + ? continuation() : (notFoundMode === 'exit' ? continuation.exit(null) : continuation.raise({into: null}))), }, + + { + dependencies: ['#album'], + mapContinuation: {into}, + compute: ({'#album': album}, continuation) => + continuation({into: album}), + }, ]); } |