update readme

This commit is contained in:
Randall Schmidt 2021-06-10 12:07:19 -04:00
parent 9c9d2b88e1
commit ff09dd8521

@ -18,7 +18,7 @@ fetch('http://google.com')
## API
Note that this does not support the full fetch API. Headers and some other things are not accessible.
This module aims to expose the same API as `node-fetch` does for the most common use cases, but may not support some of the less common use cases.
### async fetch(resource [, init])
@ -28,18 +28,71 @@ Returns a **CachedResponse**.
### async CachedResponse.text()
Returns the body as a string.
Returns the body as a string, same as node-fetch.
### async CachedResponse.json()
Returns the body as a JavaScript object, parsed from JSON.
Returns the body as a JavaScript object, parsed from JSON, same as node-fetch.
### async CachedResponse.buffer()
Returns the body as a Buffer.
Returns the body as a Buffer, same as node-fetch.
### async CachedResponse.textConverted()
### CachedResponse.status
Identical to CachedResponse.text(), except instead of always converting to UTF-8, encoding sniffing will be performed and text converted to UTF-8, if possible.
Returns the HTTP status code of the response, same as node-fetch.
(textConverted requires an optional dependency on [npm package encoding](https://www.npmjs.com/package/encoding), which you need to install manually.
### CachedResponse.statusText
Returns a text represention of the response status, same as node-fetch.
### CachedResponse.ok
Returns true if the request returned a successful response status, false otherwise, same as node-fetch.
### CachedResponse.redirected
Returns true if the request was redirected, false otherwise, same as node-fetch.
### CachedResponse.headers
Returns a **ResponseHeaders** object representing the headers of the response, same as node-fetch.
### ResponseHeaders.entries()
Returns the raw headers as an array of `[key, value]` pairs, same as node-fetch.
## ResponseHeaders.keys()
Returns an array of all header keys, same as node-fetch.
## ResponseHeaders.values()
Returns an array of all header values, same as node-fetch.
## ResponseHeaders.get(key)
Returns the value of the header with the given key, same as node-fetch.
## ResponseHeaders.has(key)
Returns true if the headers has a value for the given key, same as node-fetch.
## ResponseHeaders.raw
Returns the headers as an object of `{ "key": "value" }` pairs, same as node-fetch.
## Streaming
This module supports streams like `node-fetch` does, but with a couple of caveats you should be aware of if you want to use streams.
1. Response bodies are always read into memory even if you stream them to disk. That means if you need to stream large responses that don't fit into RAM, this module may be unsuitable.
2. When streaming a request body with fs.ReadStream, the cache key is generated based only on the path of the stream, not its content. That means if you stream `image.png` twice, you will get a cached response the second time, **even if the content of image.png has changed**. This module may be unsuitable if you need to stream files in requests and the content of those files can change.
## Bugs / Help / Feature Requests / Contributing
For feature requests or help, please visit [the discussions page on GitHub](https://github.com/mistval/node-fetch-cache/discussions).
For bug reports, please file an issue on [the issues page on GitHub](https://github.com/mistval/node-fetch-cache/issues).
Contributions welcome! Please open a [pull request on GitHub](https://github.com/mistval/node-fetch-cache/pulls) with your changes. You can run them by me first on [the discussions page](https://github.com/mistval/node-fetch-cache/discussions) if you'd like.