intercepects / modifies requests as they pass between endpoints
npm install @kronos-integration/interceptor









intercepects / modifies requests as they pass between endpoints
``javascript
const { Interceptor } from '@kronos-integration/interceptor';
const endpoint = { get name() { return 'aName'; }, receive() {}};
const interceptor = new Interceptor();
const response = interceptor.receive(endpoint, arg1, arg2);
`
* Endpoint
* Interceptor
* Parameters
* type
* attributes
* configure
* Parameters
* toJSONWithOptions
* Parameters
* reset
* receive
* Parameters
* attributes
* IntervalInterceptor
* Properties
* name
* LimitingInterceptor
* Parameters
* name
* LoggingInterceptor
* name
* StatsCollectorInterceptor
* receive
* Parameters
* name
* TemplateInterceptor
* name
* TimeoutInterceptor
* Properties
* name
* rejectUnlessResolvedWithin
* Parameters
Type: Object
Base interceptor. The base class for all the interceptors
Calls configure() and reset().
* config Object?
The instance method returning the type.
Defaults to the constructors name (class name)
Returns string
Meta description of the configuration.
Returns Object
Takes attribute values from config parameters
and copies them over to the object.
Copying is done according to attributes.
Which means we loop over all configuration attributes
and then for each attribute decide if we use the default, call
a setter function or simply assign the attribute value.
#### Parameters
* config Object?
Deliver the json representation.
#### Parameters
* options
Returns Object json representation
Forget all accumulated information.
The receive method. This method receives the request from the leading interceptor
and calls the trailing interceptor.
#### Parameters
* endpoint Endpoint next
* Function args
* Array\
Returns Promise\
Meta description of the configuration
Returns Object
Extends Interceptor
Only passes requests after inteval time has passed
* interval number
Returns string 'interval'
Extends Interceptor
Limits the number of concurrent requests.
Requests can be delayed or rejected.
Sample config:
\[
{ count: 20 },
{ count: 10, delay: 100 },
{ count: 5, delay: 10 }
]
1 - 4 : no delay
5 - 9 : 10ms delay
10 - 19 : 100ms delay
20 : reject
default is to reject when more than 10 requests are on the way
* config Object?
Returns string 'request-limit'
Extends Interceptor
logs args and result
Returns string 'logging'
Extends Interceptor
Interceptor to collect processing time, number of
processed and failed requests.
Logs the time the requests takes
#### Parameters
* endpoint next
* args
* ...any
Returns string 'collect-request-stats'
Extends Interceptor
Map params into requests.
Returns string 'template'
Extends Interceptor
Rejects a request if it does not resolve in a given time.
* timeout number
Returns string 'timeout'
Rejects promise when it is not resolved within given timeout.
* promise Promise\timeout
* number in milisecondssource
* Interceptor
Returns Promise\
With npm do:
`shell``
npm install @kronos-integration/interceptor
BSD-2-Clause