introspects / modifies requests as they pass between endpoints
npm install kronos-interceptor















introspects / modifies requests as they pass between endpoints
``javascript
const ki = require('kronos-interceptor');
const endpoint = { get name() { return 'aName'; }, receive() {}};
const interceptor1 = new ki.Interceptor({},endpoint);
const interceptor2 = new ki.Interceptor({},endpoint);
interceptor1.connected = interceptor2
const request = {};
const promise = interceptor1.receive(request);
`
- rejectingReceiver
- Parameters
- ConnectorMixin
- Parameters
- Interceptor
- Parameters
- logger
- type
- configurationAttributes
- configure
- Parameters
- toJSON
- reset
- receive
- Parameters
- configurationAttributes
- TimeoutInterceptor
- name
- rejectUnlessResolvedWithin
- Parameters
- StatsCollectorInterceptor
- receive
- Parameters
- name
- LimitingInterceptor
- Parameters
- name
rejecting receiver used to signal a not present connection
when used always delivers a rejecting promise
- request
Mixin to make endpoints/interceptors connectable
Forms a single linked list
- superclass
Extends ConnectorMixin(class {})
Base interceptor. The base class for all the interceptors
Calls configure() and reset().
- config Object The interceptor configuration object.endpoint
- Object the endpoint object this interceptor will be attached to.
use endpoint owner as logger
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 configurationAttributes
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
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
- request Object the request from the leading interceptoroldRequest
- Object the oldRequest from the leading interceptor.
This is a special case. As some interceptors are in charge of copying and creating the
request objects, the step will call the interceptor chain with the both requests.
At some point of the interceptor chain only the request itself will survive.
But all interceptors designed to be inserted early in the interceptor chain of a sending
endpoint should pass both requests to the next interceptor.
Returns Promise
Meta description of the configuration
Returns Object
Extends Interceptor
Rejects a request if it does not resolve in a given time
Returns string 'timeout'
- promise Promise timeout
- number in milisecondsname
- string
Returns Promise
Extends Interceptor
Interceptor to collect processing time, number of processed and
failed requests
Logs the time the requests takes
#### Parameters
- request oldRequest
-
Returns string 'collect-request-stats'
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 endpoint
-
Returns string 'request-limit'
With npm do:
`shell``
npm install kronos-interceptor
BSD-2-Clause