https://github.com/lakca/superagent-toolkit
Superagent plugin, providing frequently used tools. Such as reporting message of current request, and then silence error, directly retrieving specific property of response etc.
https://github.com/lakca/superagent-toolkit
superagent superagent-toolkit
Last synced: 6 months ago
JSON representation
Superagent plugin, providing frequently used tools. Such as reporting message of current request, and then silence error, directly retrieving specific property of response etc.
- Host: GitHub
- URL: https://github.com/lakca/superagent-toolkit
- Owner: lakca
- License: mit
- Created: 2020-07-31T09:12:50.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-08-12T04:55:46.000Z (about 5 years ago)
- Last Synced: 2025-03-18T04:05:06.477Z (7 months ago)
- Topics: superagent, superagent-toolkit
- Language: JavaScript
- Homepage:
- Size: 14.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
- License: LICENSE
Awesome Lists containing this project
README
# superagent-toolkit
> [Superagent][superagent] plugin, providing frequently used tools, like reporting message of current request, directly retrieving specific property of response, etc.
[](https://travis-ci.org/lakca/superagent-toolkit)
[](https://codecov.io/gh/lakca/superagent-toolkit)## Usage
### Agent
```js
const superagent = require('superagent')
const toolkit = require('@lakca/superagent-toolkit')const agent = new superagent.Agent()
agent.use(toolkit(options))
agent
.get('/test')
.configure('...', '...') // change config
```### General
```js
const superagent = require('superagent')
const toolkit = require('@lakca/superagent-toolkit')superagent
.get('/test')
.use(toolkit(options))
```## Options
### `options.configure` {function}
Set configure function, which can be called to change `config` later.
### `options.report` {(error: Error, message: string, response: superagent.Response): void}
Function to receive message of request.
**Note**: it will benefit from using this function for global notification of request status.
### `options.clientError` {true|string|string[]|function}
Dealing with `4xx` except `401` http code. If value is:
- `true`, report message retrieved using `config.messageProperty`;
- `string`, report message using the string instead;
- `string[]`, report message using ths first not nullable(`!= null`) property retrieving via the array element one by one, such as `['body.message', 'header.statusMessage']`;
- `function`, report message using returned value if which is not void.### `options.serverError` {true|string|string[]|function}
Dealing with `5xx` http code. Similar as `config.clientError`.
### `options.unauthorized` {true|string|string[]|function}
Dealing with `401` http code. If value is:
- `true`, reload current window;
- `string`, redirect using the string;
- `string[]`, redirect using ths first not nullable(`!= null`) property retrieving via the array element one by one, such as `['body.location']`;
- `function`, redirect using returned value if which is not void, **so you can provide your own redirection in the function without returning value.**### `options.messageProperty` {string=res.statusMessage}
Report message property.
when http code is `2xx`, using this to retrieve message.
also, this is the default message property for `true` value of `config.clientError` and `config.serverError`.
**Note**: support descendant property, such as `body.message`
### `options.returnProperty` {string}
Response property expected to be returned instead of the whole response object.
**Note**: support descendant property, such as `body.data`
### `options.swallowError` {boolean=false}
Silence error, no request/response error will be thrown since [superagent][superagent] does that by default.
**Note**: this is useful when we handle request status by general handler `config.report`, then focusing on handling business data in dealing with your business logic.
### `options.debug` {boolean=false}
log to console.
### `options.prefix` {string}
### `options.suffix` {string}
### `options.jsonp` {object}
Read more in [superagent-jsonp][jsonp]
### `options.jsonp.callbackParam` {string=callback}
### `options.jsonp.callbackName` {string}
### `options.jsonp.timeout` {number=1000}
## LICENSE
MIT
[superagent]: https://github.com/visionmedia/superagent
[jsonp]: https://github.com/lamp/superagent-jsonp