@kronos-integration/interceptor
v10.3.1
Published
intercepects / modifies requests as they pass between endpoints
Downloads
3,952
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
- LimitingInterceptor
- LoggingInterceptor
- StatsCollectorInterceptor
- TemplateInterceptor
- TimeoutInterceptor
- rejectUnlessResolvedWithin
- expand
Endpoint
Type: Object
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
Promisetimeout
number in milisecondssource
Interceptor
Returns Promise<any>
expand
Expands '{{exp}}' expressions.
Parameters
value
anyparams
Object
Returns any expanded value
install
With npm do:
npm install @kronos-integration/interceptor
license
BSD-2-Clause