Wrap fetch()
in a memoize.
Not only does this cache repeated requests for the same resource, it also de-dupes concurrent requests!
Notes:
- Caching the raw response object doesn't work, since the response body is a stream and can thus only be read once
- Instead, cache your already read body (optionally still including the original request, just read the body prior)