in lib/builtin-types.ts [60:86]
export function createFunction(
definition: FunctionDefinition,
context: ObjectContext): Function {
if (definition.function != null) {
// Dynamicly created function.
// TODO: do security check.
return eval('(' + definition.function + ')');
}
if (definition.moduleName != null && definition.functionName != null) {
// create function from module and function name.
let moduleName = definition.moduleName;
if (moduleName.startsWith('.')) {
moduleName = path.resolve(context.baseDir, moduleName);
}
return utils.appendMessageOnException("Unable to create function '"
+ definition.function
+ "' in module '"
+ definition.moduleName
+ "'.",
() => {
return utils.loadFunction(moduleName, definition.functionName);
});
}
throw new Error("Either property group 'moduleName' and 'functionName' or property 'function' should be present for Function object.");
}