Added operation: "JavaScript"

Operation "JavaScript" is added under category "Utils" and it adds option to write JS code to manipulate data.
This commit is contained in:
Andris Rubenis 2016-12-02 19:06:13 +02:00
parent 8b0112229e
commit 6c269dd204
3 changed files with 36 additions and 1 deletions

View file

@ -162,6 +162,7 @@ var Categories = [
"Parse UNIX file permissions",
"Swap endianness",
"Parse colour code",
"JavaScript",
]
},
{

View file

@ -2782,5 +2782,19 @@ var OperationConfig = {
input_type: "string",
output_type: "string",
args: []
}
},
"JavaScript": {
description: "Script in JavaScript",
run: StrUtils.run_javascript,
manual_bake: true,
input_type: "string",
output_type: "string",
args: [
{
name: "@param {string} input, @returns {string}",
type: "text",
value: "return input;"
},
]
},
};

View file

@ -508,5 +508,25 @@ var StrUtils = {
return output;
},
/**
* Script JS.
*
* @param {string} input
* @param {Object[]} args
* @returns {string}
*/
run_javascript: function (input, args) {
try {
/*jshint -W061 */
var fn = Function("input", args);
/*jshint +W061 */
return fn(input);
}
catch (err) {
return "JavaScript error: " + err.message;
}
},
};