« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/track.js
AgeCommit message (Collapse)Author
2023-09-07data: earlyExit -> exit in misc. utility names(quasar) nebula
2023-09-07data: move composite utilities related to wiki data into thing.js(quasar) nebula
2023-09-07data: directly import from #composite; define own utils at module(quasar) nebula
2023-09-06data: unused import fixes(quasar) nebula
2023-09-06data: dynamicThingFromSingleReference -> resolvedReference(quasar) nebula
2023-09-06data: reverseReferenceList refList -> list(quasar) nebula
2023-09-06data: dynamicThingsFromReferenceList -> resolvedReferenceList(quasar) nebula
2023-09-05data: clean up bad mapDependencies usages(quasar) nebula
2023-09-05data, test: update & test misc. Track reverse reference lists(quasar) nebula
* update & test Track.referencedByTracks * update & test Track.sampledByTracks * update & test Track.featuredInFlashes * update Thing.common.reverseReferenceList * add Thing.composite.withReverseReferenceList * add Track.composite.trackReverseReferenceList
2023-09-05test: Track.coverArtFileExtension (unit)(quasar) nebula
2023-09-05data: refactor Track.coverArtDate(quasar) nebula
2023-09-05data: remove lots of boilerplate {expose: true, compose: true}(quasar) nebula
2023-09-05data: misc. style consistency tweaks(quasar) nebula
2023-09-05data: fix mis-indented Thing.composite.from calls(quasar) nebula
2023-09-05data, test: update & test Track.originalReleaseTrack(quasar) nebula
2023-09-05data: update Track.composite.withAlbum implementation(quasar) nebula
2023-09-05data: Track: misc. minor fixes(quasar) nebula
2023-09-05data: update Track.otherReleases implementation(quasar) nebula
Also adds {selfIfOriginal} option to withOriginalRelease().
2023-09-05data: always define composite utilities with `key() {}` syntax(quasar) nebula
Sublime Text doesn't index the key in `key: () => {}` as a symbol for function definitions if the parameter list takes up more than one line, but always works for `key() {}`. This also just makes it a little easier to add "preamble" before the main return value, when relevant. Consistent syntax is usually a plus for recurring behavioral forms!
2023-09-05data: clean up Thing.composite.from debug messaging(quasar) nebula
* print annotation next to every log message, instead of just the begin/end messages * add Thing.composite.debug() to conveniently wrap one property access * don't output (and don't access) track album in inspect.custom when depth < 0
2023-09-05data: misc. additions, fixes & refactoring(quasar) nebula
Thing.composite.from: * Transparently support expose.transform steps inside nested compositions, w/ various Thing.composite.from clean-up * Support continuation.raise() without provided dependencies * add Thing.composite.exposeConstant * add Thing.composite.withResultOfAvailabilityCheck * supports {mode: 'null' | 'empty' | 'falsy'} * works with dependency or update value * add Thing.composite.earlyExitWithoutDependency * refactor Thing.composite.exposeDependencyOrContinue * refactor Thing.composite.exposeUpdateValueOrContinue * add Track.withHasUniqueCoverArt * refactor Track.coverArtFileExtension * refactor Track.hasUniqueCoverArt
2023-09-05data: Thing.composite.exposeDependencyOrContinue(quasar) nebula
2023-09-05data, test: Track.color inherits from track section(quasar) nebula
2023-09-05data, test: retain validator for Track.color(quasar) nebula
2023-09-05data, test: misc. additions(quasar) nebula
* Thing.composite.expose * Thing.composite.exposeUpdateValueOrContinue * Track.composite.withAlbumProperty * refactor: Track.color, Track.album, Track.date * refactor: Track.coverArtistContribs * test: Track.album (unit)
2023-09-05data: Track.composite.withAlbum(quasar) nebula
2023-09-05data: Track.artistContribs: be lazy, like coverArtistContribs(quasar) nebula
2023-09-05data: use continuation.exit and continuation.raise where needed(quasar) nebula
2023-09-05data: bug fixes & Thing.composite.from.debug mode(quasar) nebula
2023-09-05data: Track.coverArtistContribs: lazier steps(quasar) nebula
2023-09-05data: fix more bad function signatures(quasar) nebula
2023-09-05data: track.hasUniqueCoverArt: operate on resolved contributions(quasar) nebula
2023-09-05data: track: remove unneeded explicit {to} on withOriginalRelease call(quasar) nebula
2023-09-05data: composition docs, annotations, nesting(quasar) nebula
2023-09-05data: signature changes to misc compositional functions(quasar) nebula
2023-09-05data: filter only requested deps, require requesting 'this'(quasar) nebula
* Thing.composite.from() only provides the dependencies specified in each step and the base, and prevents '#'-prefixed keys from being specified on the main (composite) dependency list. * CacheableObject no longer provides a "reflection" dependency to every compute/transform function, and now requires the property 'this' to be specified instead of the constructor.instance symbol. (The static CacheableObject.instance, inherited by all subclasses, was also removed.) * Also minor improvements to sugar.js data processing utility functions.
2023-09-05data: 2x facepalm combobob(quasar) nebula
2023-09-05data: track: more composite shenanigans(quasar) nebula
2023-09-05data: track: experimental Thing.compose.from() processing style(quasar) nebula
2023-09-05data, test: track: inherit album props more declaratively(quasar) nebula
2023-08-19clean up imports & miscellaneous metastructures across codebase(quasar) nebula
2023-08-15data, yaml: inherit music-related properties from original release(quasar) nebula
When a track has 'Originally Released As', these fields are now automatically inherited: * Artists * Contributors * Referenced Tracks * Sampled Tracks Including any of these fields alongside 'Originally Released As' is an error. Corresponding properties are valid, but ignored. This uses a new "compositional" style to define how each of these properties inherits while retaining the original behavior for tracks that aren't re-releases, and avoids hard-coding much of anything!
2023-08-15data: track: indicate rereleases in util.inspect(quasar) nebula
2023-08-14data: remove 'Has Track Art', compute from credits(quasar) nebula
2023-04-27data: track: null coverArtistContribs if hasTrackArt false(quasar) nebula
Fixes #178. This commit also cleans up the documentation for the utility used here, dynamicInheritContribs. These are the only two uses of that utility at all but like, code comments very rarely hurt and d'accord are probably even more useful here lol
2023-03-02per-track color support(quasar) nebula
2023-02-26Merge branch 'preview' into sheet-music-midis(quasar) nebula
2023-02-26new 'Sheet Music Files' & 'MIDI Project Files' fields(quasar) nebula
2023-01-31data format cleanup: tracks(quasar) nebula
* Remove `Has URLs` (`hasURLs`), unused * Tidy `propertyFieldMapping` order
2023-01-15Merge pull request #117 from hsmusic/track-sections(quasar) nebula
Change trackGroups to trackSections, avoid usage of a dedicated "domain-specific" Thing subclass