@kronos-integration/interceptor
v13.1.31
Published
intercepects / modifies requests as they pass between endpoints
Readme
@kronos-integration/interceptor
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);API
Table of Contents
- Endpoint
- Interceptor
- IntervalInterceptor
- LimitingInterceptor
- LoggingInterceptor
- StatsCollectorInterceptor
- TemplateInterceptor
- TimeoutInterceptor
- rejectUnlessResolvedWithin
Endpoint
Type: Object
Interceptor
Base interceptor. The base class for all the interceptors Calls configure() and reset().
Parameters
configObject?
type
The instance method returning the type. Defaults to the constructors name (class name)
Returns string
attributes
Meta description of the configuration.
Returns Object
configure
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
configObject?
toJSONWithOptions
Deliver the json representation.
Parameters
options
Returns Object json representation
reset
Forget all accumulated information.
receive
The receive method. This method receives the request from the leading interceptor and calls the trailing interceptor.
Parameters
Returns Promise<any>
attributes
Meta description of the configuration
Returns Object
IntervalInterceptor
Extends Interceptor
Only passes requests after inteval time has passed
Properties
intervalnumber
name
Returns string 'interval'
LimitingInterceptor
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
Parameters
configObject?
name
Returns string 'request-limit'
LoggingInterceptor
Extends Interceptor
logs args and result
name
Returns string 'logging'
StatsCollectorInterceptor
Extends Interceptor
Interceptor to collect processing time, number of processed and failed requests.
receive
Logs the time the requests takes
Parameters
endpointnextargs...any
name
Returns string 'collect-request-stats'
TemplateInterceptor
Extends Interceptor
Map params into requests.
name
Returns string 'template'
TimeoutInterceptor
Extends Interceptor
Rejects a request if it does not resolve in a given time.
Properties
timeoutnumber
name
Returns string 'timeout'
rejectUnlessResolvedWithin
Rejects promise when it is not resolved within given timeout.
Parameters
promisePromise<any>timeoutnumber in milisecondssourceInterceptor
Returns Promise<any>
install
With npm do:
npm install @kronos-integration/interceptorlicense
BSD-2-Clause
