Tiny 500b fetch "barely-polyfill"
- Tiny: weighs about 500 bytes gzipped
- Minimal: just
fetch()with headers and text/json/xml responses - Familiar: a subset of the full API
- Supported: supports IE8+ (BYOP)
- Standalone: one function, no dependencies
🤔 What's Missing?
- Uses simple Arrays instead of Iterables, since Arrays are iterables
- No streaming, just Promisifies existing XMLHttpRequest response bodies
- Bare-bones
.blob()implementation - just proxiesxhr.response
This project uses node and npm. Go check them out if you don't have them locally installed.
$ npm install --save unfetchThen with a module bundler like rollup or webpack, use as you would anything else:
// using ES6 modules
import fetch from 'unfetch'
// using CommonJS modules
var fetch = require('unfetch')The UMD build is also available on unpkg:
<script src="https://unpkg.com/unfetch/dist/unfetch.umd.js"></script>This exposes a fetch global if not already present.
import fetch from 'unfetch'
fetch('/foo.json')
.then( r => r.json() )
.then( data => {
console.log(data)
})// simple GET request:
fetch('/foo')
.then( r => r.text() )
.then( txt => console.log(txt) )
// complex POST request with JSON, headers:
fetch('/bear', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ hungry: true })
}).then( r => {
open(r.headers.get('location'));
return r.json();
})First off, thanks for taking the time to contribute! Now, take a moment to be sure your contributions make sense to everyone else.
Found a problem? Want a new feature? First of all see if your issue or idea has already been reported. If it hasn't, just open a new clear and descriptive issue.
Pull requests are the greatest contributions, so be sure they are focused in scope, and do avoid unrelated commits.
- Fork it!
- Clone your fork:
git clone https://github.com/<your-username>/unfetch - Navigate to the newly cloned directory:
cd unfetch - Create a new branch for the new feature:
git checkout -b my-new-feature - Install the tools necessary for development:
npm install - Make your changes.
- Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request with full remarks documenting your changes.
