chore: add jimp dependency, icon padding script, and update configuration
This commit is contained in:
+144
@@ -0,0 +1,144 @@
|
||||
<p align="center" style="text-align: center;"><img src="https://github.com/ethanent/centra/blob/master/media/centraLogo.png?raw=true" width="400"/></p>
|
||||
|
||||
> The core lightweight HTTP client for Node
|
||||
|
||||
[GitHub](https://github.com/ethanent/centra) | [NPM](https://npmjs.com/package/centra)
|
||||
|
||||
## Install
|
||||
|
||||
```shell
|
||||
npm i centra
|
||||
```
|
||||
|
||||
## Why centra?
|
||||
|
||||
centra is the best request library for developers; it provides a number of extremely useful features while still being one of the most lightweight Node.js HTTP client libraries available.
|
||||
|
||||
## Use centra!
|
||||
|
||||
First, require the library.
|
||||
|
||||
```js
|
||||
const c = require('centra')
|
||||
```
|
||||
|
||||
Then let's make a request in an async function!
|
||||
|
||||
```js
|
||||
;(async () => {
|
||||
const res = await c('https://example.com').send()
|
||||
|
||||
console.log(await res.text())
|
||||
})()
|
||||
```
|
||||
|
||||
## More advanced usage
|
||||
|
||||
### Send data in a JSON body
|
||||
|
||||
```js
|
||||
c('https://example.com/nonexistentJSONAPI', 'POST').body({
|
||||
'name': 'Ethan'
|
||||
}, 'json').send().then((res) => {
|
||||
/*...*/
|
||||
})
|
||||
```
|
||||
|
||||
### Send data in a form body
|
||||
|
||||
```js
|
||||
c('https://example.com/nonexistentJSONAPI', 'POST').body({
|
||||
'name': 'Ethan'
|
||||
}, 'form').send().then((res) => {
|
||||
/*...*/
|
||||
})
|
||||
```
|
||||
|
||||
### Set query string parameters
|
||||
|
||||
One at a time:
|
||||
|
||||
```js
|
||||
c('https://example.com/user').query('id', 'u1817760').send().then((res) => {
|
||||
/*...*/
|
||||
})
|
||||
```
|
||||
|
||||
Many at a time:
|
||||
|
||||
```js
|
||||
c('https://example.com/user').query({
|
||||
'id', 'u1817760',
|
||||
'name': 'Ethan'
|
||||
}).send().then((res) => {
|
||||
/*...*/
|
||||
})
|
||||
```
|
||||
|
||||
### Set a request timeout
|
||||
|
||||
```js
|
||||
c('https://example.com').timeout(2000).send().then((res) => {
|
||||
// Success!
|
||||
}).catch((err) => {
|
||||
// Has the request timed out?
|
||||
})
|
||||
```
|
||||
|
||||
### Stream a request's response
|
||||
|
||||
In this example, the [stream](https://nodejs.org/api/stream.html) is piped to a file:
|
||||
|
||||
```js
|
||||
// require the fs module beforehand
|
||||
|
||||
c('https://example.com').stream().send().then((stream) => stream.pipe(fs.createWriteStream(path.join(__dirname, 'logo.png'))))
|
||||
```
|
||||
|
||||
### Follow redirects
|
||||
|
||||
```js
|
||||
c('https://example.com/').followRedirects(5).send()
|
||||
```
|
||||
|
||||
### Switch paths on the fly
|
||||
|
||||
```js
|
||||
c('https://example.com/test').path('/hello').send()
|
||||
|
||||
// This will make a request to https://example.com/test/hello
|
||||
```
|
||||
|
||||
### Specify request headers
|
||||
|
||||
One at a time:
|
||||
|
||||
```js
|
||||
c('https://example.com').header('Content-Type', 'application/json').send()
|
||||
```
|
||||
|
||||
Many at a time:
|
||||
|
||||
```js
|
||||
c('https://example.com').header({
|
||||
'Content-Type': 'application/json',
|
||||
'X-Connecting-With': 'centra'
|
||||
}).send()
|
||||
```
|
||||
|
||||
### Modify core HTTP request options
|
||||
|
||||
See [http.request](https://nodejs.org/dist/latest-v10.x/docs/api/http.html#http_http_request_url_options_callback)'s options for more information about core HTTP request options.
|
||||
Let's change our localAddress as an example.
|
||||
|
||||
```js
|
||||
c('https://example.com').option('localAddress', '127.0.0.2').send()
|
||||
```
|
||||
|
||||
### Accept compressed responses
|
||||
|
||||
```js
|
||||
c('https://example.com').compress().send()
|
||||
|
||||
// This will cause centra to accept compressed content from the server. (gzip and deflate are currently supported)
|
||||
```
|
||||
Reference in New Issue
Block a user