{
  "type": "transformer",
  "description": "Execute JS in a sandbox, broadcast result to a param.",
  "hasChildren": false,
  "propsSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
      "param": {
        "type": "string",
        "description": "Canvas parameter name to broadcast the result to."
      },
      "method": {
        "type": "string",
        "description": "JavaScript code string. Contains $param_name and {{udf_name}} references that are substituted before execution."
      },
      "maxRows": {
        "default": 10000,
        "description": "Row limit for UDF data queries. Defaults to 10000.",
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "required": [
      "param",
      "method"
    ],
    "description": "Non-visual component that runs JavaScript in a sandboxed iframe and broadcasts the return value to a canvas param. Use $param_name to inject canvas param values and {{udf_name}} to inject UDF result rows. UDF data is substituted as a JSON object of column arrays, e.g. {\"col1\":[\"a\",\"b\"],\"col2\":[1,2]}. The method string should be a self-invoking arrow function, e.g. \"()=>{ return $input; }\"."
  }
}
