@apollo/datasource-rest
Advanced tools
Changelog
6.2.2
#270 f6cf377
Thanks @Sean-Y-X! - Use lodash's cloneDeep
to clone parsed body instead of JSON.parse(JSON.stringify(...))
#268 870ba80
Thanks @HishamAli81! - * Fix RequestOptions.cacheOptions function return type to also return a non-promise value.
RequestOptions
and AugmentedRequest
.Changelog
6.2.0
#185 147f820
Thanks @HishamAli81! - Added support to the RESTDatasource to be able to specify a custom cache set options type. The cache set options may need to be customized to include additional set options supported by the underlying key value cache implementation.
For example, if the InMemoryLRUCache is being used to cache HTTP responses, then noDisposeOnSet
, noUpdateTTL
, etc cache options can be provided to the LRU cache:
import { InMemoryLRUCache } from '@apollo/utils.keyvaluecache';
interface CustomCacheOptions {
ttl?: number;
noDisposeOnSet?: boolean;
}
class ExampleDataSource extends RESTDataSource<CustomCacheOptions> {
override baseURL = 'https://api.example.com';
constructor() {
super({ cache: new InMemoryLRUCache() });
}
getData(id: number) {
return this.get(`data/${id}`, {
cacheOptions: { ttl: 3600, noDisposeOnSet: true },
});
}
}
Changelog
6.1.0
#242 dfb8bcc
Thanks @trevor-scheer! - Add optional url
parameter to didEncounterErrors
hook
In previous versions of RESTDataSource
, the URL of the request was available on the Request
object passed in to the hook. The Request
object is no longer passed as an argument, so this restores the availability of the url
to the hook.
This is optional for now in order to keep this change forward compatible for existing this.didEncounterErrors
call sites in userland code. In the next major version, this might become a required parameter.
Changelog
6.0.1
#214 c7b190a
Thanks @trevor-scheer! - Fix bug in Cloudflare Worker usage where we try to call the .raw()
method on its response headers object when it doesn't exist.
For some reason, the Cloudflare Worker's global fetch
HeadersList
object is passing the instanceof check against node-fetch
's Headers
class, but it doesn't have the .raw()
method we expect on it. To be sure, we can just make sure it's there before we call it.
Changelog
6.0.0
#196 f8f0805
Thanks @trevor-scheer! - Drop Node v14 support
To take this major version, the only change necessary is to ensure your node runtime is using version 16.14.0 or later.
Node v14 is EOL, so we should drop support for it and upgrade packages and testing accordingly. Note this package has a dependency on @apollo/utils.keyvaluecache
which requires specifically node@>=16.14 due to its dependency on lru-cache
.