Package Exports
- smol-request
- smol-request/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (smol-request) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Smol Request
Small async request client for Node.js 10+ and newer with 0 dependencies.
Install
npm i smol-request
Usage
JSON
import { request } from 'smol-request'
request('https://ghibliapi.herokuapp.com/films', { responseType: 'json' })
.then(({ data }) => {
console.log(`Studio Ghibli has ${response.data.length} movies out there!`)
})Text
request('https://bbc.com')
.then(({ data }) => {
// bbc page is too big to log it to console, but we can save it to the drive!
fs.promises.writeFile('./bbc.html', data)
.then(() => {
console.log('bbc page saved!')
})
})Buffer
request('https://i.picsum.photos/id/1025/200/300.jpg', { responseType: 'buffer' })
.then(({ data }) => {
fs.promises.writeFile('./picture.jpg', data)
.then(() => {
console.log('picture saved!')
})
})Stream
request('https://i.picsum.photos/id/1025/200/300.jpg', { responseType: 'stream' })
.then(({ data }) => {
const stream = fs.createWriteStream('./picture.jpg')
data.pipe(stream)
data.once('finish', () => {
console.log('picture saved!')
})
})Headers
You can get only headers without parsing body from request using responseType: 'headers'
request('https://picsum.photos/200/300', { responseType: 'headers' })
.then(({ headers }) => {
console.log('Picture location - ', headers.location)
})Example
There are a few examples in example folder in the repo.
API
request(url[, options[, formData]]): Promise<Response>
Types
RequestOptions
This client uses base http/https Node.js request client, so it inherits all options from it. (Description)
| Name | Type | Default | Description |
|---|---|---|---|
| params | Object |
{} | URLSearchParams of request url.(Example: { q: 'my search query' } becomes -> http://myurl?q=my+search+query) |
| responseType | String |
text |
One of these values: text, buffer, json, stream, headers |
RequestResult
| Name | Type | Description |
|---|---|---|
| data | ReadableStream | Object | String | Buffer | Null |
Response data with choosen type from responseType . |
| headers | Object | Response headers. |
| status | Number | Reponse status. |
| statusText | String | Response status text. |
formData
If you are sending form data note that you can send form from FormData using it's method form.submit(path, err => {}).
This option can be Object(then it will become string) or your custom property that will be written to request body with req.write(). ( ‾ʖ̫‾)