2.0.1 • Published 5 years ago

ensandbox v2.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago

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, admin@cryogena.net))

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 or String of code to be run initially outside the sandbox before execution.
    • code {Default: (function() {})} - Function or String 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 uses postMessage.
    • onOutput {Default: console.log} - console.log output of the sandbox.
  • All options 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.
2.0.1

5 years ago

2.0.0

5 years ago