Simple Duktape Javascript engine integration for node.js.
This package provides facilities for running a single script on an isolated Duktape virtual machine.
Package has been tested on linux and should be compatible with node.js versions: 0.10.x, 0.11.x, 0.12.x and 4.x.
npm install duktapegit clone https://github.com/ndob/duktape-node.git
cd duktape-node
git submodule init
git submodule update
npm install
npm testDescription
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
varduktape=require('duktape');varapiFunction=function(name){return"hello "+name;}varscript=" \ function helloFun(parameterString) { \ return { \ value: hello(parameterString), \ extra: 'bye ' + parameterString \ }; \ }";varapiObject={hello: apiFunction};duktape.run("helloFun","world",script,apiObject,function(error,ret){if(error){console.log("got error: "+ret);}else{varretVal=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
varduktape=require('duktape');varapiFunction=function(name){return"hello "+name;}varapiObject={hello: apiFunction};varscript=" \ function helloFun(parameterString) { \ return { \ value: hello(parameterString), \ extra: 'bye ' + parameterString \ }; \ }";try{varret=duktape.runSync("helloFun","world",script,apiObject);varretVal=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
- To use this package with node 4.0.0 you should build with gcc version >= 4.8 or clang >= 3.4.
- No async support from defined API-functions back to duktape (ie. no callbacks).