Simple Duktape Javascript engine integration for node.js.
This package provides facilities for running a single script on an isolated Duktape virtual machine.
npm install duktape
Description
Runs a single script on duktape and returns error status and return value to callback.
Parameters
- functionName: function to run (string)
- parameter: parameter for function (string)
- script: whole javascript source of script (string)
- apiObject: API for script (object)
- properties:
- key: name for function
- value: function to call
- properties:
- callback: function with signature
function(error, returnValue)
- error: error status (boolean)
- returnValue: return value from script (string) or error string in case of an error
Example
var duktape = require('duktape');
var apiFunction = function(name) {
return "hello " + name;
}
var script = " \
function helloFun(parameterString) { \
return { \
value: hello(parameterString), \
extra: 'bye ' + parameterString \
}; \
}";
var apiObject = {
hello: apiFunction
};
duktape.run("helloFun", "world", script, apiObject, function(error, ret) {
if(error) {
console.log("got error: " + ret);
} else {
var retVal = JSON.parse(ret);
console.log(retVal.value);
console.log(retVal.extra);
}
});
Description
Runs a single script on duktape and returns script's return value. Errors are handled by exceptions. Otherwise functionality is the same as in async-version.
Parameters
- functionName: function to run (string)
- parameter: parameter for function (string)
- script: whole javascript source of script (string)
- apiObject: API for script (object)
- properties:
- key: name for function
- value: function to call
- properties:
Example
var duktape = require('duktape');
var apiFunction = function(name) {
return "hello " + name;
}
var apiObject = {
hello: apiFunction
};
var script = " \
function helloFun(parameterString) { \
return { \
value: hello(parameterString), \
extra: 'bye ' + parameterString \
}; \
}";
try {
var ret = duktape.runSync("helloFun", "world", script, apiObject);
var retVal = JSON.parse(ret);
console.log(retVal.value);
console.log(retVal.extra);
} catch(error) {
console.log("got error" + error);
}
This package just runs scripts on duktape VM without doing much else. Everything listed here is left for host programs responsibility.
- Limit resources (memory, cpu time, etc.)
- Input parameters and return values
- Sanity checks
- Formatting
- Probably does not compile on other compilers than gcc (has been tested on linux: gcc4.8.1, gcc4.6.4, gcc4.4.7).
- No async support from defined API-functions back to duktape (ie. no callbacks).
- Tested and compatible with node.js 0.10.x only.