diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2024-01-30 14:04:41 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-01-30 14:30:06 -0400 |
commit | ad146774480bb29cff04b50d887e132f3bd3f64f (patch) | |
tree | 9c789f74cf21793d9e3672f92628aa237f61eec3 /src/data/things/track.js | |
parent | 7fbc5b87ed05bce433ed959ca18119b72835ee41 (diff) |
find, data: move find specs into Thing subclasses
Diffstat (limited to 'src/data/things/track.js')
-rw-r--r-- | src/data/things/track.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/data/things/track.js b/src/data/things/track.js index d1a12aa..5a8bec3 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -451,6 +451,35 @@ export class Track extends Thing { ], }; + static [Thing.findSpecs] = { + track: { + referenceTypes: ['track'], + bindTo: 'trackData', + + getMatchableNames: track => + (track.alwaysReferenceByDirectory + ? [] + : [track.name]), + }, + + trackOriginalReleasesOnly: { + referenceTypes: ['track'], + bindTo: 'trackData', + + include: track => + !CacheableObject.getUpdateValue(track, 'originalReleaseTrack'), + + // It's still necessary to check alwaysReferenceByDirectory here, since + // it may be set manually (with `Always Reference By Directory: true`), + // and these shouldn't be matched by name (as per usual). + // See the definition for that property for more information. + getMatchableNames: track => + (track.alwaysReferenceByDirectory + ? [] + : [track.name]), + }, + }; + // Track YAML loading is handled in album.js. static [Thing.getYamlLoadingSpec] = null; |