@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
- Interceptor
- LimitingInterceptor
- LoggingInterceptor
- StatsCollectorInterceptor
- TemplateInterceptor
- TimeoutInterceptor
- rejectUnlessResolvedWithin
- expand
Interceptor
Base interceptor. The base class for all the interceptors Calls configure() and reset().
Parameters
-
config
Object The interceptor configuration object.
type
The instance method returning the type. Defaults to the constructors name (class name)
Returns string
configurationAttributes
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 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
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>
configurationAttributes
Meta description of the configuration
Returns Object
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
-
config
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
-
endpoint
-
args
...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
-
timeout
number
name
Returns string 'timeout'
rejectUnlessResolvedWithin
Rejects promise when it is not resolved within given timeout.
Parameters
-
promise
Promise -
timeout
number in miliseconds -
source
Interceptor
Returns Promise<any>
expand
Expands '{{exp}}' expressions.
Parameters
-
value
any -
params
Object
Returns any expanded value
install
With npm do:
npm install @kronos-integration/interceptor
license
BSD-2-Clause