Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A nifty javascript sandbox for node.js
branch: master

This branch is 14 commits behind gf3:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
example
lib
test
.gitignore
README.md
UNLICENSE
package.json

README.md

Node Sandbox

A nifty javascript sandbox for node.js.

Some features

  • Can be used to execute untrusted code.
  • Support for timeouts (e.g. prevent infinite loops)
  • Handles errors gracefully
  • Restricted code (cannot access node.js methods)
  • Supports console.log and print utility methods

Example

Be sure to check out example/example.js

var s = new Sandbox()
s.run( '1 + 1 + " apples"', function( output ) {
  // output.result == "2 apples"
})

Documentation

Basic syntax: sandbox_instance.run( code, hollaback )

code is the string of Javascript to be executed.

hollaback is a function, and it's called with a single argument, output.

output is an object with two properties: result and console. The result property is an inspected string of the return value of the code. The console property is an array of all console output.

For example, given the following code:

function add( a, b ){
  console.log( a )
  console.log( b )
  return a + b
}
add( 20, 22 )

The resulting output object is:

{ result: "42"
, console: [ "20", "22" ]
}

Installation & Running

Let's get it! The easiest way is through npm:

npm install sandbox

Or if you'd like to play with the code, see the examples, run the tests, what-the-fuck-ever...

git clone git://github.com/gf3/sandbox.git

And run some examples:

node example/example.js

Tests

To run the tests simply run the test file with node.

node test/sandbox_test.js

License

Sandbox is UNLICENSED.

Author

Something went wrong with that request. Please try again.