intercepects / modifies requests as they pass between endpoints
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
- LimitingInterceptor
- LoggingInterceptor
- StatsCollectorInterceptor
- TemplateInterceptor
- TimeoutInterceptor
- rejectUnlessResolvedWithin
- expand
Type: Object
Base interceptor. The base class for all the interceptors Calls configure() and reset().
config
Object The interceptor configuration 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 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.
config
Object
Deliver the json representation.
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.
Returns Promise<any>
Meta description of the configuration
Returns Object
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
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
endpoint
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
Promisetimeout
number in milisecondssource
Interceptor
Returns Promise<any>
Expands '{{exp}}' expressions.
value
anyparams
Object
Returns any expanded value
With npm do:
npm install @kronos-integration/interceptor
BSD-2-Clause