FileTransform
Transform a file from Kestra with a JavaScript script using the GraalVM scripting engine.
yaml
type: "io.kestra.plugin.graalvm.js.FileTransform"Examples
yaml
id: transformJs
namespace: company.team
tasks:
  - id: download
    type: io.kestra.plugin.core.http.Download
    uri: https://dummyjson.com/carts/1
  - id: jsonToIon
    type: io.kestra.plugin.serdes.json.JsonToIon
    from: "{{outputs.download.uri}}"
  - id: transformJs
    type: io.kestra.plugin.graalvm.js.FileTransform
    from: "{{ outputs.jsonToIon.uri }}"
    script: |
      if (row['id'] === 666) {
        // remove un-needed row
        row = null
      } else {
        // remove the 'products' column
        row['products'] = null;
        // add a 'totalItems' column
        row['totalItems'] = row['totalProducts'] * row['totalQuantity']
      }
Properties
from *Requiredstring
Source file containing rows to transform.
Can be a Kestra internal storage URI, a map or a list.
script *Requiredstring
The script to evaluate
concurrent integerstring
Number of concurrent parallel transformations to execute.
Take care that the order is not respected if you use parallelism.
Outputs
uri string
 Format 
uriURI of a temporary result file.
The file will be serialized as an ION file.
Metrics
records counter
 Unit 
countNumber of records or entities processed by the JavaScript script. This includes both modified and filtered rows from the input file.