Entrypoint
The JS file consists of one or more functions, and they can be used in different filters or in combination between them.
The function must respect some constraints:
- the function’s name contained in the
functionparameter of the filter has to start with a capital letter; - the function prototype must 3 variables;
- the function must return a JS object with at least the
filteredfield;
Function’s prototype
The function’s name specified in the function parameter of the filter, receives 3 input parameters:
- main: it is a string with the content of the field
mainof the input Message; - extra: a JS object that can be seen like an associative array, containing the extra fields of the input Message;
- params: a JS object like the previous, but it contains the configurations from the
customand thegeneralsections.
So for example we can define a function like the follow:
| |
Return value
The JS function has to return a value back to the filter, so that the filter can use it to propagate the Message or drop it.
The method used on function parameter can return a JS object containing at least the filtered field.
If this field has been set to true, the Message will be sent to the next filter, otherwise if the filtered field has been set to false, the filter will drop the Message.
We would change the fields of the Message, and to do that we can use the data field in the returned object.
It could be an associative array or an array of associative array (for multiple messages to send through the pipeline) and it will be mapped in a map[string]string/[]map[string] object in the Go env.
The key of the array’s row is the name of the field to add or change, while the value is the string that field’s Message will contain after the return.
| |
| |