request.js/EXTRA.md

1.1 KiB

Extra

There are some niche features of @root/request which are beyond the request.js compatibility.

async/await & Promises

The differences in async support are explained in README.md, up near the top.

If you're familiar with Promises (and async/await), then it's pretty self-explanatory.

ok

Just like WHATWG fetch, we have resp.ok:

let resp = await request({
    url: 'https://example.com'
}).then(mustOk);
function mustOk(resp) {
    if (!resp.ok) {
        // handle error
        throw new Error('BAD RESPONSE');
    }
    return resp;
}

streams

The differences in stream support are explained in README.md, up near the top.

userAgent

There's a default User-Agent string describing the version of @root/request, node.js, and the OS.

Add to the default User-Agent

request({
    // ...
    userAgent: 'my-package/1.0' // add to agent
});

Replace the default User-Agent

request({
    // ...
    headers: { 'User-Agent': 'replace/0.0' }
});

Disable the default User-Agent:

request({
    // ...
    headers: { 'User-Agent': false }
});