Value filters
Filters implement generic conversion of values during the import process. Plugins can add to the standard value filters provided by the data import framework.
To implement a value filter, you need to define a service, then declare it in a service metadata file.
The service should return a function that takes a value as a single argument, and returns a converted value, or undefined. This service will be called once and only once per Batch, so your implementation can keep state in a closure.
Example filter
This example filter value ‘doubles’ a string.
P.implementService("example:data:filter:double-string",
function() {
return function(value) {
if(typeof(value) === "string") {
return value + value;
}
};
}
);
To enable this value filter to be found by the data import framework, create a file/__service-metadata__.json in your plugin which declares the details of this filter:
{
"example:data:filter:double-string": {
"statements": [
"conforms-to haplo:data-import-framework:filter"
],
"metadata": {
"name": "example:double-string",
"description": "Doubles a string.",
"documentationURL":
"https://docs.example.org/filter/double-string"
}
}
}
The "documentationURL" is optional, but if supplied, will add a link under the value filter’s name in the admin UI.