new HttpTransportBuilder(transport)
- Source:
Configures HttpTransport client
Parameters:
| Name | Type | Description |
|---|---|---|
transport |
Transport | Transport instance. |
Methods
createClient()
- Source:
Instantiates a HttpTransport
Example
const client = httpTransport.createClient();
Returns:
a HttpTransport instance
criticalErrorDetector(criticalErrorDetector)
- Source:
- Default Value:
- (err, ctx) => { if (err && err.statusCode < 500) { return false; } return true; }
default the criticalErrorDetector which parses errors and decides if they are critical. This mainly enables retry logic.
Example
const httpTransport = require('@bbc/http-transport');
const builder = httpTransport.createBuilder();
builder.criticalErrorDetector(() => {
if (err && (err.statusCode < 500 || err.isBrokenCircuitError)) {
return false;
}
return true;
});
Parameters:
| Name | Type | Description |
|---|---|---|
criticalErrorDetector |
function | (err, ctx) => bool - a function that takes the error and the context and returns a boolean which evaluates whether an error is a critical error. This is useful if you want to customise error behaviour. See below for example that prevents circuitBreaker errors from being classed as critical errors. criticalErrors trigger retry behaviour and so may not be desirable in all scenarios. |
Returns:
a HttpTransportBuilder instance
retries(retries)
- Source:
Set the default number of retries
Example
const httpTransport = require('@bbc/http-transport');
const builder = httpTransport.createBuilder();
builder.retries(5);
Parameters:
| Name | Type | Description |
|---|---|---|
retries |
integer | number of retry attempts |
Returns:
a HttpTransportBuilder instance
retryDelay(delay)
- Source:
default time delay between retries
Example
const httpTransport = require('@bbc/http-transport');
const builder = httpTransport.createBuilder();
builder.retryDelay(1000);
Parameters:
| Name | Type | Description |
|---|---|---|
delay |
integer | delay time in ms |
Returns:
a HttpTransportBuilder instance
use(fn)
- Source:
Registers a global plugin, which is used for all requests
Example
const toError = require('@bbc/http-transport-errors');
const httpTransport = require('@bbc/http-transport');
const client = httpTransport.createClient();
client.useGlobal(toError(404));
Parameters:
| Name | Type | Description |
|---|---|---|
fn |
function | a global plugin |
Returns:
a HttpTransportBuilder instance
userAgent(agent)
- Source:
Sets a default user agent
Example
const httpTransport = require('@bbc/http-transport');
const builder = httpTransport.createBuilder();
builder.userAgent('some-user-agent');
Parameters:
| Name | Type | Description |
|---|---|---|
agent |
string | user agent |
Returns:
a HttpTransportBuilder instance