Skip to content

Releases: exogen/graphbrainz

v9.0.0

16 Apr 04:54
Compare
Choose a tag to compare

Breaking Change

  • This package is now written and distributed as native ECMAScript modules. The minimum Node.js version is now v12.18.0.
  • Public exports are now defined using the package.json exports field. No more reaching into graphbrainz/lib to import various helpers; instead, most helpers are exported from the package root (including everything necessary to implement extensions). The built-in extensions are still available as graphbrainz/extensions/cover-art-archive, graphbrainz/extensions/fanart-tv, graphbrainz/extensions/mediawiki, and graphbrainz/extensions/the-audio-db.
  • There is no longer a default export; the GraphBrainz middleware is now exported under the name middleware.
  • When calling createSchema or createContext, the extensions option must contain the already resolved extension objects to apply, rather than the module paths to import. Using module paths with dynamic import() would require making these functions asynchronous, which was too difficult to work with. You can still supply a list of module names to the GraphBrainz middleware function, since that can work asynchronously.
  • The HTTP client used by the built-in Client class now uses got instead of request (which has been deprecated). Extensions subclassing Client will potentially need to update the options they pass when making calls.
  • The various retry options previously implemented by Client are now deprecated. It now uses got’s retry support via the retry option, and will use got’s defaults if not specified.

Internal

  • All dependencies upgraded.
  • No more Babel, syntax supported by modern Node.js is used instead.
  • Migrated off of replayer and onto ava-nock for HTTP record & replay in tests.

v8.1.0

17 Sep 04:56
Compare
Choose a tag to compare

Added

  • Support for tracks via the tracks field on the Media type, which returns a list of the new Track type.

v8.0.4

16 Sep 23:26
Compare
Choose a tag to compare

Fixed

  • Fixed browsing recordings by ISRC (#86).
  • Fixed artistCredits field sending the wrong inc parameter (#86).

v8.0.3

16 Aug 03:54
Compare
Choose a tag to compare

Fixes

  • If a recording's isrcs field is null, assume it is because it was not fetched with isrcs included, and perform a new lookup request to get them. There are likely many other fields suffering from this problem, but it will not be fixed until a large refactor.

v8.0.2

11 Aug 01:59
Compare
Choose a tag to compare

Fixed

  • Some TheAudioDB music video URLs do not include the protocol. Add it automatically (assume https:) instead of returning null with an error.
  • Correctly return empty arrays instead of null for empty fanart.tv image lists.

v8.0.1

09 Aug 08:10
Compare
Choose a tag to compare

Fixed

  • Handle a case where the albums property is missing from fanart.tv artist responses.

v8.0.0

04 Aug 23:08
Compare
Choose a tag to compare

Changed

  • Node 8.10 is now the minimum supported version of Node.
  • All dependencies have been upgraded, including GraphQL.
  • Extensions defined using the GraphQL SDL now use the new type and field description syntax.
  • Batching has been disabled on all DataLoader instances, since the queries they make do not support batching anyway. This prevents a single error from causing every other query to bail out (due to Promise.all), limiting the number of null fields and errors returned.
  • Some fields in TheAudioDB extension have been updated from Int to Float, since Int only supports 32-bit integers. It turns out people have watched Despacito on YouTube an absurd number of times.
    • The updated fields are: salesCount, scoreVotes, viewCount, likeCount, dislikeCount, commentCount, scoreVotes.

Fixed

  • TheAudioDB now redirects traffic to HTTPS, but its SSL terminator is broken and only supports TLS 1.0. For the time being, TheAudioDB client forces requests to use TLS 1.0.
  • The MediaWiki client now properly encodes page titles that contain special characters instead of double encoding them. API requests for those pages will no longer fail.

See also

v7.3.0

19 Nov 00:46
Compare
Choose a tag to compare

Added

  • Added missing description for the lang argument in TheAudioDB extension.
  • Extension schemas now use a gql template tag, which parses them into a GraphQL AST. I didn't use graphql-tag because it currently doesn't support parsing descriptions. Instead I made a very simple tag that just uses graphql.parse(). This tag is exported as graphbrainz/lib/tag for any third-party extensions to use. The benefits of using it are ensuring syntactic correctness, allowing syntax highlighting of the schema literal, and allowing Prettier to format them.

v7.3.0-0

19 Nov 00:43
Compare
Choose a tag to compare
v7.3.0-0 Pre-release
Pre-release
v7.3.0-0

v7.2.0

18 Nov 08:50
Compare
Choose a tag to compare

Added

  • New defaultExtensions export. This makes it easier to add extensions while keeping the defaults.

Changed

  • Fixed a bug introduced by schema extensions, where the resolveType function for Node and Entity would return type instances that had been overwritten by extending the schema. See #49.