Age | Commit message (Collapse) | Author |
|
|
|
Also adds {selfIfOriginal} option to withOriginalRelease().
|
|
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!
|
|
* 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
|
|
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
|
|
|
|
|
|
|
|
* Thing.composite.expose
* Thing.composite.exposeUpdateValueOrContinue
* Track.composite.withAlbumProperty
* refactor: Track.color, Track.album, Track.date
* refactor: Track.coverArtistContribs
* test: Track.album (unit)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
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!
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
* Remove `Has URLs` (`hasURLs`), unused
* Tidy `propertyFieldMapping` order
|
|
Change trackGroups to trackSections, avoid usage of a dedicated "domain-specific" Thing subclass
|
|
|
|
|
|
|
|
|
|
|