ensandbox
v2.0.1
Published
\
Downloads
2
Readme
NodeJS Sandbox
A nifty javascript sandbox for node.js. (If you wanna see the source, first npm i, then go into your node_modules folder) ((For any issues, please email, [email protected]))
Some features
- Can be used to execute untrusted code.
- Support for timeouts (e.g. prevent infinite loops)
- Support for memory errors (and memory errors)
- Handles errors gracefully
- Restricted code (cannot access node.js methods)
- Supports
console.log
method - Supports interprocess messaging with the sandboxed code
Documentation
new jsSandbox
(options
)
options
{Object
} - Object of settings for the sandbox.timeout
{Default:100
} - Timeout in MS for the sandbox.globals
{Default:{}
} - Object with values to be global in the sandboxed code.autostart
{Default:false
} - Start the sandbox immediately instead of running.start()
.init
{Default:(function() {})
} -Function
orString
of code to be run initially outside the sandbox before execution.code
{Default:(function() {})
} -Function
orString
of code to be run in the sandbox.onStart
{Default:(function() {})
} -Function
that is executed when the sandbox starts running the code.onStop
{Default:(function() {})
} -Function
that is executed whenever the sandbox stops running, via error or.stop()
, or stopped from inside the sandbox.onError
{Default:(function() {})
} -Function
that is executed when an error occurs within the sandbox.onMessage
{Default:(function(args) {})
} -Function
that is executed when the sandbox code usespostMessage
.onOutput
{Default:console.log
} -console.log
output of the sandbox.
- All
option
s are available as they are returned for changing when initialized.
jsSandbox
#start
() : bool
- Start the sandbox.
jsSandbox
#stop
() : bool
- Stop the sandbox.
jsSandbox
#isRunning
() : bool
- Check if the sandbox is started & running or not.
jsSandbox
#postMessage
(arg1
, ...
) : bool
arg1
,...
{Any
} Send data/info into the sandbox, to be processed by the code.