https://github.com/moox/simple-json-fetch
whatwg fetch(), wrapped and enhanced for JSON response
https://github.com/moox/simple-json-fetch
Last synced: 6 months ago
JSON representation
whatwg fetch(), wrapped and enhanced for JSON response
- Host: GitHub
- URL: https://github.com/moox/simple-json-fetch
- Owner: MoOx
- License: mit
- Created: 2016-03-04T21:58:24.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2019-11-06T17:52:26.000Z (over 6 years ago)
- Last Synced: 2025-02-05T21:42:13.081Z (over 1 year ago)
- Language: JavaScript
- Size: 4.88 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# simple-json-fetch
> whatwg fetch(), wrapped and enhanced for JSON response.
## Install
**This module has no dependencies, so be sure to get your own fetch() polyfill if needed**
(eg: [whatwg-fetch](https://www.npmjs.com/package/whatwg-fetch)).
```console
$ npm i -S simple-json-fetch [whatwg-fetch]
```
## Usage
Use this module exactly like [fetch()](https://www.npmjs.com/package/whatwg-fetch),
with this in mind:
- promise will be resolved only if http code is between 200~300 AND response
is valid json
- otherwise promise is rejected
- http code >= 300
- json is invalid
```js
import "whatwg-fetch"
import jsonFetch from "simple-json-fetch"
jsonFetch(url, { /* ... */})
.then(
// in both "resolve" or "reject" callback, you will get the original
// response (with fields like .status, .statusText...)
// json is correct and http code is in the 2xx range
// resolved response got a json property which is the js object
(response) => {
response.json
// json property is an object here, not a method that return
// a promise that resolve with an object (that the point of this module)
},
// json is malformed or http code is NOT in the 2xx range
// rejected response got an error property, which is the error thrown if any
(response) => {
response.error
// the error thrown (eg: during parsing of the json)
}
)
```
## Warning
No automated tests because I am pushing this snippet I am using for one or two
years at midnight.
Feel free to add some :)
---
## CONTRIBUTING
* ⇄ Pull requests and ★ Stars are always welcome.
* For bugs and feature requests, please create an issue.
* Pull requests must be accompanied by passing automated tests (`$ npm test`).
## [CHANGELOG](CHANGELOG.md)
## [LICENSE](LICENSE)